當(dāng)前位置:首頁(yè) > 通信技術(shù) > 通信技術(shù)
[導(dǎo)讀]詳細(xì)介紹一種基于AT91M40800 ARM7處理器和W3100A芯片的網(wǎng)絡(luò)處理平臺(tái)的設(shè)計(jì)與實(shí)現(xiàn)。在概述嵌入式網(wǎng)絡(luò)的前景之后,提出一種TCP/IP網(wǎng)絡(luò)處理平臺(tái)的方案,并詳細(xì)分析這種平臺(tái)的硬件模塊設(shè)計(jì)、軟件模塊設(shè)計(jì)與實(shí)現(xiàn)。

    摘要:詳細(xì)介紹一種基于AT91M40800 ARM7處理器和W3100A芯片的網(wǎng)絡(luò)處理平臺(tái)的設(shè)計(jì)與實(shí)現(xiàn)。在概述嵌入式網(wǎng)絡(luò)的前景之后,提出一種TCP/IP網(wǎng)絡(luò)處理平臺(tái)的方案,并詳細(xì)分析這種平臺(tái)的硬件模塊設(shè)計(jì)、軟件模塊設(shè)計(jì)與實(shí)現(xiàn)。

    關(guān)鍵詞:TCP/IP AT91M40800 網(wǎng)絡(luò)協(xié)議棧芯片 W3100A

引言

越來(lái)越多的人已經(jīng)認(rèn)知到后PC時(shí)代的到來(lái),越來(lái)越多的嵌入式產(chǎn)品走到了現(xiàn)實(shí)應(yīng)用的前臺(tái)。嵌入式產(chǎn)品從出生到繁榮一直秉承著與應(yīng)用緊耦合這個(gè)宗旨。過(guò)去它們基本上都是獨(dú)立的工作,最多是通過(guò)485、CAN總線之類(lèi)的互相交換信息;但隨著信息時(shí)代的信息大爆炸的到來(lái),這些簡(jiǎn)單的傳遞內(nèi)部少量信息的方案已經(jīng)不能夠能很地滿足實(shí)現(xiàn)的市場(chǎng)需求,越來(lái)越多的嵌入式產(chǎn)品有了與Internet互連、進(jìn)入互聯(lián)網(wǎng)這個(gè)浩瀚的信息庫(kù)的要求。嵌入式Internet技術(shù)是一種將嵌入式設(shè)備接入Internet的技術(shù)。利用該技術(shù)可將Internet從PC機(jī)延伸到8位、16位、32位單片機(jī),并實(shí)現(xiàn)基于Internet的遠(yuǎn)程數(shù)據(jù)采集、遠(yuǎn)程控制、自動(dòng)報(bào)警、上傳/下載數(shù)據(jù)文件、自動(dòng)發(fā)送E-mail等功能,大大擴(kuò)展Intenrt的應(yīng)用范圍和嵌入式產(chǎn)品觸及的領(lǐng)域。為此本人提出一種基于W3100A芯處的TCP/IP網(wǎng)絡(luò)處理開(kāi)發(fā)平臺(tái)的方案,并予以實(shí)現(xiàn)。

1 嵌入式網(wǎng)絡(luò)處理平臺(tái)方案的介紹

目前,國(guó)內(nèi)外嵌入式網(wǎng)絡(luò)處理平臺(tái)基本上是采用軟件來(lái)實(shí)現(xiàn)TCP/IP協(xié)議棧。這種方案在大批量生產(chǎn)時(shí),具有成本低的優(yōu)點(diǎn)。因?yàn)橛密浖O(shè)計(jì)的TCP/IP協(xié)議棧,是一次投次多次使用;但這種方案開(kāi)發(fā)周期比較長(zhǎng),對(duì)開(kāi)發(fā)人員的要求高,要求對(duì)操作系統(tǒng)和TCP/IP協(xié)議都要有一定程度的熟悉,并且高檔MCU和RTOS的價(jià)格也很高。為此本人提出了一種直接利用TCP/IP協(xié)議棧芯片的實(shí)現(xiàn)方案。它由W3100A、RTL8201、AT91M40800組成,如圖1所示。這種方案,盡管在大批量生產(chǎn)時(shí)成本高,因?yàn)槊總€(gè)智能設(shè)備都要嵌入TCP/IP協(xié)議棧芯片;但是在非大批量生產(chǎn)時(shí)個(gè)有設(shè)計(jì)簡(jiǎn)單、靈活的特點(diǎn),因?yàn)椴恍枰獙?shí)時(shí)操作系統(tǒng)的支持,并且在本人給出的各種工具和芯片廠商提供的函數(shù)庫(kù)的支持下可以實(shí)現(xiàn)上一種方案能實(shí)現(xiàn)的絕大部分功能。

2 W3100A的介紹

W3100A是TCP/IP協(xié)議芯片。它有如下特點(diǎn):首先,自帶TCP/IP協(xié)議棧(如TCP、UDP、Ipver.4、ICMP、ARP、DLC、MAC協(xié)議);其次,能同時(shí)支持四個(gè)獨(dú)立的連接通道,具有高速傳輸速率,同時(shí),具有與MCU和物理層電路接口。雖然數(shù)據(jù)手冊(cè)中只提取了Intel和Motorola的MCU,但是經(jīng)過(guò)筆者的實(shí)際證明,W3100A對(duì)Atmel的AT91M400800也能很好的支持。W3100A還提供了Socket應(yīng)用程序編程接口,為那種需要進(jìn)行因特網(wǎng)連接的智能設(shè)備,提供了一種簡(jiǎn)便、廉價(jià)、高效的方案。其功能框圖如圖2所示。

W3100A的寄存器分成四類(lèi):①與控制寄存器相關(guān)的命令、狀態(tài)和中斷寄存器;②設(shè)置網(wǎng)關(guān)地址、子網(wǎng)掩碼、源IP地址、源硬件地址和超時(shí)變量的關(guān)系寄存器;③管理發(fā)送和接收數(shù)據(jù)的指針寄存器;④控制每個(gè)通道操作的通道寄存器。

    W3100A的0X4000~0X5FFF為發(fā)送數(shù)據(jù)緩沖區(qū),該緩沖區(qū)只能寫(xiě)不能讀;0X6000~0X7FFF為接收數(shù)據(jù)緩沖區(qū),只能讀不能寫(xiě)。

W3100A與MCU的接口包括直接總線模式、非直接總線模式和I2C接口模式。第1種是15根地址線全部與MCU相連;第2種只要0、1兩根地址線與MCU相連,2、3地址線接高電平,剩下的地址線全部接地;第3種方式是把W3100A當(dāng)作I2C設(shè)備來(lái)使用,其中8~14地址用來(lái)提供I2C設(shè)備的地址。這里使用了第2種方式與MCU相連。其中這些模式的選擇由MODE0、MODE1、MODE2三個(gè)引腳的電位所決定。

3 硬件電路設(shè)計(jì)

如圖1所法,本電路主要由基于ARM7的AT91M40800、W3100A、RTL8201來(lái)實(shí)現(xiàn)網(wǎng)絡(luò)的功能,但是本系統(tǒng)設(shè)計(jì)的目的是實(shí)現(xiàn)一個(gè)嵌入式TCP/IP網(wǎng)絡(luò)開(kāi)發(fā)平臺(tái),以便使工程師把精力從大量的底層細(xì)節(jié)開(kāi)發(fā)轉(zhuǎn)移到面向應(yīng)用的層面上來(lái),所以硬件電路外擴(kuò)了SDRAM、Flash、LED、KEYBARD、RS232等接口電路。其中Flash、SDRAM、W3100A分別占用CS0、CS1、CS2三個(gè)地址空間。LED、KEYBARD共占用CS4一個(gè)地址空間。SDRAM使用了16位數(shù)據(jù)線的方式,F(xiàn)lash、W3100A都使用了8位數(shù)據(jù)線的方式。AT91M40800接口電路如圖3所示。SDRAM、Flash都提供了較大的剩余空間,以便將來(lái)用戶(hù)在其上開(kāi)發(fā)自己的用戶(hù)程序。其中Flash片選線為NCS0,8位數(shù)據(jù)總線寬度,初始化程序?qū)⑵浠刂范ㄎ辉?x01000000,地址范圍是0x01000000~0x011FFFFF。系統(tǒng)使用了2片SDRAM,其片選線為NCS1,再使用SN74HC139D分別進(jìn)行片選,初始化程序?qū)⑵浠刂范ㄎ辉?x02000000,地址范圍是0x02000000~0x02FFFFFF。除此以外,AT91M40800還有8KB的內(nèi)部RAM,32位數(shù)據(jù)總線寬度,在初始化結(jié)束后,重射定位在0x00000000。

W3100A片選線為NCS3,8位數(shù)據(jù)總線寬度,初始化程序?qū)⑵浠刂范ㄎ辉?x0300000,其硬件連接如圖4所示。由于采用了第二種接入方式,只需用到四個(gè)地址寄存器地址,且偏移量分別為0x0c、0x0d、0x0e、0x0f,所以其地址范圍為0x0300000C~0x0300000F。W3100A與主MCU的通信采用中斷方式,其INT引腳接到AT91M40800的P9/IRQ0的引腳,以實(shí)現(xiàn)中斷觸發(fā)。其中W3100A與AT91M40800分別進(jìn)行復(fù)位,以便分別調(diào)試。

圖3

    為了便于用戶(hù)在平臺(tái)上開(kāi)發(fā)自己的應(yīng)用程序,本人在平臺(tái)上面實(shí)現(xiàn)了初始化和調(diào)試程序代碼。系統(tǒng)提供了兩個(gè)DB-9插頭,分別連接到AT91M40800的UART0和UART1:一個(gè)用于與筆者的調(diào)試程序?qū)崿F(xiàn)通信,一個(gè)用于用戶(hù)其它調(diào)試應(yīng)用。在系統(tǒng)上還使用了一個(gè)撥碼開(kāi)關(guān),以便用戶(hù)執(zhí)行自己的應(yīng)用程序和對(duì)Flash進(jìn)行編程保護(hù),。

其中撥碼開(kāi)關(guān)的1、2腳分別接高、低電平并且與AT91M40800的P23腳相連,以決定MCU初始化后執(zhí)行程序的起始地址;3、4腳分別接高電平和AT91M40800的NWR0/NWR引腳,并且與Flash的寫(xiě)使能腳相連,以決定Flash是否可編程。

4 軟件模塊設(shè)計(jì)

本系統(tǒng)中軟件主要包括三大部分:AT91M40800的初始化代碼、監(jiān)控程序的目標(biāo)板與PC平臺(tái)的實(shí)現(xiàn)、Flash的編程實(shí)現(xiàn)。

4.1 AT91M40800的初始化模塊

在這個(gè)模塊里,主要以目標(biāo)板的硬件設(shè)計(jì)為基礎(chǔ),實(shí)現(xiàn)MCU的寄存器初始化、異常向量表的初始化、異常處理程序和各種處理器模式下的堆棧的分配并實(shí)現(xiàn)重映射。然后,把系統(tǒng)運(yùn)行權(quán)交給監(jiān)控程序或者是用戶(hù)的應(yīng)用程序(由撥碼開(kāi)關(guān)來(lái)實(shí)現(xiàn))。其中寄存器初始化既包括ARM7核內(nèi)的寄存器的初始化,也包括AT91M40800芯片內(nèi)外圍寄存器的初始化,具體的有R15、EBL_CS0、EBL_CS1、EBL_CS2、EBL_CS3、AIC_SVR0、PIO_IDR、PIO_PDR、US_CR等。這里的代碼部分全部是用ARM的指令集來(lái)實(shí)現(xiàn)。為了增加源程序的可讀性、可移植性,將寄存器的地址和數(shù)據(jù)全部重定義命名,如addr_SVR8 EQU 0x0202000,CODE_SVR8 EQU 0x01010000,CODE_SVR8_END EQU 0x01011000。

4.2 監(jiān)控程序的實(shí)現(xiàn)

監(jiān)控程序可以實(shí)現(xiàn)以下幾個(gè)功能:顯示處理器各狀態(tài)下寄存器的值,修改指定地址的SDRAM、FlashROM中的內(nèi)容,查看指定地址的存儲(chǔ)器中的內(nèi)容,將用戶(hù)編寫(xiě)的代碼下載到目標(biāo)板指不定期地址的SDRAM、FlashROM中,從指定地址開(kāi)始執(zhí)行用戶(hù)代碼,支持用戶(hù)設(shè)置的軟件中斷。

    監(jiān)控程序包括兩部分:一是運(yùn)行在目標(biāo)板上的程序,二是運(yùn)行在PC機(jī)上的應(yīng)用程序。目標(biāo)板上的程序?qū)崿F(xiàn)與PC機(jī)上程序的交互操作,并按照PC機(jī)上程序的指令要求來(lái)完成讀寫(xiě)寄存器、SDRAM、Flash和執(zhí)行指定地址的代碼程序。這段代碼也是用ARM指令集來(lái)實(shí)現(xiàn)的,它與PC機(jī)的交互是使用指定ASCII碼字符的方式來(lái)實(shí)現(xiàn)的。比如,按下PC機(jī)上的Memory按鈕以后,PC機(jī)將發(fā)送一個(gè)V字符,這些信息將以ASCII碼的方式通過(guò)串口發(fā)送到目標(biāo)機(jī)上。當(dāng)目標(biāo)板上的監(jiān)控程序收到V字符后,馬上跳轉(zhuǎn)到Memory標(biāo)號(hào)段,在這段程序中回應(yīng)一個(gè)OK。PC機(jī)收到OK后,就發(fā)送地址信息,目標(biāo)板上的監(jiān)控程序收到地址后緊接著就處理相應(yīng)的要求。PC機(jī)端的應(yīng)用程序是使用VB開(kāi)發(fā)環(huán)境來(lái)實(shí)現(xiàn)的,其界面如圖5所示。它提供給用戶(hù)一個(gè)交互的界面。這樣開(kāi)發(fā)工具給那些沒(méi)有昂貴的ARM仿真器的用戶(hù)提供了一個(gè)較為簡(jiǎn)便的調(diào)試方法。

4.3 Flash的編程實(shí)現(xiàn)

Flash的編程作為一個(gè)獨(dú)立的代碼部分與調(diào)試程序代碼部分協(xié)同工作,使用C語(yǔ)言來(lái)實(shí)現(xiàn),并最終與前兩個(gè)部分鏈部到一起。它主要由以下幾個(gè)部分組成:Flash編程模塊void Program(void);擦除整個(gè)Flash芯片Void EraseAll(void);擦除扇區(qū)void EraseSector(void);擦除一個(gè)扇區(qū)int OneSectorErase(ulong targetAddr);空字節(jié)檢查int BlankCheck(ulong targetAddr,ulong targetSize);編程結(jié)果校驗(yàn)int Verification(ulong targetAddr,ulong limit,ulong srcAddr);等待延時(shí)int Wait(ulong tAddr).其中擦除與編程操作利用AM291V160D的指令字就可以完成。空字節(jié)檢查是讀出Flash中的數(shù)據(jù)并且與0xFF比較得到結(jié)果。編程結(jié)果校驗(yàn)是在編程結(jié)束后調(diào)用的函數(shù),它是通過(guò)讀出Flash當(dāng)中的數(shù)據(jù)與源數(shù)據(jù)相比較的方法來(lái)實(shí)現(xiàn)的,以確保編程結(jié)果正確。由于擦除操作與編程操作需要一定的時(shí)間,為了保證擦除與編程操作的正確性和判斷它們所處的階段,一般Flash芯片都提供三種判斷方法:一是應(yīng)用引腳電平方式,二是采用TOGGLE位的方式,三是采用POLLING位的方式。這里在等待延時(shí)程序中采用TOGGLE位和超時(shí)判斷位DQ5相結(jié)合的方式來(lái)實(shí)現(xiàn)判斷擦除編程操作的具體狀態(tài)。具體的判斷算法流程可以參考AM291V160D的數(shù)據(jù)手冊(cè)。

4.4 函數(shù)庫(kù)的支持

用戶(hù)在開(kāi)發(fā)自己的應(yīng)用程序時(shí),還有兩個(gè)強(qiáng)大的函數(shù)庫(kù)可以利用:一個(gè)是Atmel公司提供的AT91M開(kāi)發(fā)庫(kù)(在Atmel公司的主頁(yè)上可以下載),另一個(gè)是Wiznet公司提供的W3100A的API函數(shù)(可在Wiznet公司的主頁(yè)下載)。

結(jié)語(yǔ)

用戶(hù)在采用此系統(tǒng)以后,可以免除對(duì)大量實(shí)時(shí)操作系統(tǒng)和底層TCP/IP協(xié)議細(xì)節(jié)的了解。應(yīng)用本人提供的底層軟件、工具和芯片廠商提供的開(kāi)發(fā)庫(kù),將能夠靈活、快速地實(shí)現(xiàn)自己的嵌入式上網(wǎng)方案和應(yīng)用。此方案為加快用戶(hù)的產(chǎn)品上市提供了一個(gè)不可多得的平臺(tái)。

本站聲明: 本文章由作者或相關(guān)機(jī)構(gòu)授權(quán)發(fā)布,目的在于傳遞更多信息,并不代表本站贊同其觀點(diǎn),本站亦不保證或承諾內(nèi)容真實(shí)性等。需要轉(zhuǎn)載請(qǐng)聯(lián)系該專(zhuān)欄作者,如若文章內(nèi)容侵犯您的權(quán)益,請(qǐng)及時(shí)聯(lián)系本站刪除。
換一批
延伸閱讀

9月2日消息,不造車(chē)的華為或?qū)⒋呱龈蟮莫?dú)角獸公司,隨著阿維塔和賽力斯的入局,華為引望愈發(fā)顯得引人矚目。

關(guān)鍵字: 阿維塔 塞力斯 華為

倫敦2024年8月29日 /美通社/ -- 英國(guó)汽車(chē)技術(shù)公司SODA.Auto推出其旗艦產(chǎn)品SODA V,這是全球首款涵蓋汽車(chē)工程師從創(chuàng)意到認(rèn)證的所有需求的工具,可用于創(chuàng)建軟件定義汽車(chē)。 SODA V工具的開(kāi)發(fā)耗時(shí)1.5...

關(guān)鍵字: 汽車(chē) 人工智能 智能驅(qū)動(dòng) BSP

北京2024年8月28日 /美通社/ -- 越來(lái)越多用戶(hù)希望企業(yè)業(yè)務(wù)能7×24不間斷運(yùn)行,同時(shí)企業(yè)卻面臨越來(lái)越多業(yè)務(wù)中斷的風(fēng)險(xiǎn),如企業(yè)系統(tǒng)復(fù)雜性的增加,頻繁的功能更新和發(fā)布等。如何確保業(yè)務(wù)連續(xù)性,提升韌性,成...

關(guān)鍵字: 亞馬遜 解密 控制平面 BSP

8月30日消息,據(jù)媒體報(bào)道,騰訊和網(wǎng)易近期正在縮減他們對(duì)日本游戲市場(chǎng)的投資。

關(guān)鍵字: 騰訊 編碼器 CPU

8月28日消息,今天上午,2024中國(guó)國(guó)際大數(shù)據(jù)產(chǎn)業(yè)博覽會(huì)開(kāi)幕式在貴陽(yáng)舉行,華為董事、質(zhì)量流程IT總裁陶景文發(fā)表了演講。

關(guān)鍵字: 華為 12nm EDA 半導(dǎo)體

8月28日消息,在2024中國(guó)國(guó)際大數(shù)據(jù)產(chǎn)業(yè)博覽會(huì)上,華為常務(wù)董事、華為云CEO張平安發(fā)表演講稱(chēng),數(shù)字世界的話語(yǔ)權(quán)最終是由生態(tài)的繁榮決定的。

關(guān)鍵字: 華為 12nm 手機(jī) 衛(wèi)星通信

要點(diǎn): 有效應(yīng)對(duì)環(huán)境變化,經(jīng)營(yíng)業(yè)績(jī)穩(wěn)中有升 落實(shí)提質(zhì)增效舉措,毛利潤(rùn)率延續(xù)升勢(shì) 戰(zhàn)略布局成效顯著,戰(zhàn)新業(yè)務(wù)引領(lǐng)增長(zhǎng) 以科技創(chuàng)新為引領(lǐng),提升企業(yè)核心競(jìng)爭(zhēng)力 堅(jiān)持高質(zhì)量發(fā)展策略,塑強(qiáng)核心競(jìng)爭(zhēng)優(yōu)勢(shì)...

關(guān)鍵字: 通信 BSP 電信運(yùn)營(yíng)商 數(shù)字經(jīng)濟(jì)

北京2024年8月27日 /美通社/ -- 8月21日,由中央廣播電視總臺(tái)與中國(guó)電影電視技術(shù)學(xué)會(huì)聯(lián)合牽頭組建的NVI技術(shù)創(chuàng)新聯(lián)盟在BIRTV2024超高清全產(chǎn)業(yè)鏈發(fā)展研討會(huì)上宣布正式成立。 活動(dòng)現(xiàn)場(chǎng) NVI技術(shù)創(chuàng)新聯(lián)...

關(guān)鍵字: VI 傳輸協(xié)議 音頻 BSP

北京2024年8月27日 /美通社/ -- 在8月23日舉辦的2024年長(zhǎng)三角生態(tài)綠色一體化發(fā)展示范區(qū)聯(lián)合招商會(huì)上,軟通動(dòng)力信息技術(shù)(集團(tuán))股份有限公司(以下簡(jiǎn)稱(chēng)"軟通動(dòng)力")與長(zhǎng)三角投資(上海)有限...

關(guān)鍵字: BSP 信息技術(shù)
關(guān)閉
關(guān)閉