基于TMS320F2812的快速以太網(wǎng)通信系統平臺(圖)
隨著(zhù)Internet應用的日益普及,信息共享程度的不斷提高。嵌入式設備的數字化和網(wǎng)絡(luò )化已經(jīng)成為必然趨勢,目前市場(chǎng)上的主流嵌入式操作系統都包含了TCP/IP網(wǎng)絡(luò )協(xié)議棧。這些商品化的TCP/IP協(xié)議棧運行可靠、性能也非常好,但是價(jià)格較高,降低了市場(chǎng)競爭力。因此,開(kāi)發(fā)自主知識產(chǎn)權的TCP/IP協(xié)議棧的要求變的日益迫切而有意義。
本文的研究目標是建立一個(gè)DSP系統的網(wǎng)絡(luò )通信平臺,實(shí)現DSP系統與網(wǎng)絡(luò )中其他通信設備的高速數據傳輸。雖然選擇了TI公司的TMS320F2812 DSP,但是本文提出的方案,具有很大程度的通用性,對其他系列的DSP或CPU系統也有一定的參考價(jià)值。
TCP/IP協(xié)議棧的體系結構
以太網(wǎng)最典型的應用形式是Ethernet+TCP/IP,即在由以太網(wǎng)構建的底層傳輸網(wǎng)絡(luò )上采用已成為通用標準的網(wǎng)絡(luò )傳輸協(xié)議TCP/IP進(jìn)行數據通信,這是當今最流行,應用最廣泛的以太網(wǎng)通信方式。
國際標準化組織(ISO)制定了開(kāi)放式系統互連(OSI)參考模型,將通信會(huì )話(huà)需要的各個(gè)過(guò)程劃分為7個(gè)相對獨立的功能層次,與OSI參考模型不同,TCP/IP模型側重于互連設備之間的數據傳輸,而不是嚴格的層次劃分。
通常,OSI參考模型在從理論上解釋互聯(lián)網(wǎng)通信機制時(shí)比較適合,而TCP/IP模型則在具體的軟件實(shí)現中更為適合。
系統硬件設計
1 系統的總體結構
本文的以太網(wǎng)通信系統大致分為5個(gè)層次,由下向上分別為:硬件層、設備驅動(dòng)層、操作系統、網(wǎng)絡(luò )模塊和用戶(hù)代碼。系統硬件電路,包括DSP系統和以太網(wǎng)控制芯片Ax88796的接口電路,是系統的物理基礎。快速以太網(wǎng)驅動(dòng)程序處于硬件抽象層,本身雖為軟件,但與硬件結合緊密,為操作系統提供了訪(fǎng)問(wèn)快速以太網(wǎng)控制芯片Ax88796或改變其工作行為的系統調用。μC/OS-Ⅱ操作系統處于系統內核,為用戶(hù)代碼統一管理系統軟硬件資源,提供用戶(hù)所需的底層服務(wù)。TCP/IP協(xié)議棧軟件為μC/OS-Ⅱ操作系統擴展了網(wǎng)絡(luò )通信能力。用戶(hù)代碼處理特定的應用程序細節,可以直接使用TCP/IP協(xié)議模塊提供的API函數,開(kāi)發(fā)基于以太網(wǎng)的通信項目。
2 系統硬件框圖
系統硬件包括TMS320F2812與IS61LV51216存儲器芯片的接口電路、TMS320F2812與快速以太網(wǎng)控制芯片Ax88796的接口電路。系統的軟件代碼在調試階段存放在擴展的RAM中,脫機運行后,用于存儲傳輸的圖像數據,故擴展了512KB。使用了ISSI公司生成的IS61LV51216存儲器芯片。以太網(wǎng)控制芯片Ax88796通過(guò)ISA接口與DSP相連,通過(guò)網(wǎng)絡(luò )隔離器16ST8515后,接入以太網(wǎng)絡(luò )中。電源監控電路在系統電源電壓出現波動(dòng)時(shí),給DSP系統提供復位信號,使系統程序重新初始化并運行,避免出現不可預知的錯誤。
圖1 硬件框圖
3 DSP系統硬件設計
?、傧到y電源設計
為了降低芯片功耗,TMS320F2812采用1.8V(1.9V@150MHz)內核電壓,但GPIO、FLASH等模塊采用3.3V供電。本課題選用TI公司的TPS767D301電源芯片。該芯片輸出兩路電壓,一路3.3V,另一路1.5~5.5V可調,支持1A電流輸出。系統中DSP芯片正常工作下消耗電流230mA,以太網(wǎng)接口芯片最大消耗電流120mA,RAM最大消耗電流180mA,系統總功耗為530mA,故TPS767D301能滿(mǎn)足系統要求。
?、谙到y時(shí)鐘設計
系統的時(shí)鐘電路有兩種方案可選擇,一種是使用外部時(shí)鐘源,即有源晶振。另一種是使用DSP內部的振蕩驅動(dòng)電路,外接一個(gè)晶體和兩個(gè)電容。有源晶振的特點(diǎn)是不需要芯片內部振蕩器,加上額定的電壓就能輸出規則的方波,缺點(diǎn)是輸出波形只能是固定的兩個(gè)電壓值:低電平(0V)和高電平(輸入供電電壓),另外器件成本高。外接晶體的特點(diǎn)是使用芯片內部振蕩電路,輸出的波形為正弦波,波形幅度由控制器決定,不存在電壓匹配的問(wèn)題。
TMS320F2812的I/O引腳一般為3.3V,但時(shí)鐘輸入腳卻是個(gè)例外,只能承受1.8V/1.9V的輸入電壓,而1.8V/1.9V的有源晶振市場(chǎng)上罕有出售,故采用無(wú)源晶振。
?、?a class="contentlabel" href="http://dyxdggzs.com/news/listbylabel/label/復位電路">復位電路設計
系統中有兩個(gè)芯片需要復位信號:DSP芯片和以太網(wǎng)控制芯片Ax88796。但二者對復位信號的要求各不相同,DSP是低電平復位,而Ax88796是高電平復位,故采用TI公司的專(zhuān)用復位芯片TPS3307。該芯片具有上電復位、手動(dòng)復位和電源監控三項功能。電路如圖2所示。
上電復位電路保證系統在上電200ms后自動(dòng)產(chǎn)生一個(gè)復位信號,使DSP進(jìn)入正常的程序入口,Ax88796初始化內部寄存器。手動(dòng)復位的功能是當系統出現程序跑飛或需要系統重新初始化并運行時(shí),按下復位按鍵產(chǎn)生復位信號,使DSP進(jìn)入正常的程序入口。
?、芟到yRAM擴展
TMS320F2812內部已經(jīng)集成了18KB的RAM,對于一般的應用來(lái)說(shuō),已經(jīng)無(wú)須再擴展外部RAM。但是片內RAM能以150MIPS的速度進(jìn)行訪(fǎng)問(wèn),在對運算速度要求很高的處理程序中,通常將經(jīng)常訪(fǎng)問(wèn)的程序段放到內部RAM中運行,這樣能大大提高運行速度,因此片內RAM顯得格外寶貴。而且本系統是一個(gè)網(wǎng)絡(luò )通信系統,將來(lái)會(huì )用于進(jìn)行大量圖像的網(wǎng)絡(luò )傳輸,因而也要求外括RAM用于存放圖像文件。
圖2 復位電路
RAM選用ISSI公司的IS61LV51216,存儲容量為512K×16位,3.3V的供電電壓,訪(fǎng)問(wèn)速度有8ns、10ns、12ns、15ns可選擇。當CPU運行在150MHz的時(shí)候,地址和數據的最小有效時(shí)間為3個(gè)時(shí)鐘周期,即20ns,所以該存儲器接口不用考慮時(shí)序設計的問(wèn)題。
4 快速以太網(wǎng)硬件接口設計
Ax88796內部集成有10/100Mb/s自適應的物理層收發(fā)器和8K×16位的SRAM,支持MCS-51系列、80186系列、ISA以及MC68K系列等多種CPU總線(xiàn)類(lèi)型。Ax88796提供基于IEEE802.3/IEEE 802.3u局域網(wǎng)標準的10Mb/s和100Mb/s以太網(wǎng)控制功能,并采用IEEE 802.3u兼容的媒質(zhì)無(wú)關(guān)接口MII(Media Independent Interface)。此外,Ax88796還提供可選的標準打印接口,用于連接打印設備或作通用I/O端口。
?、貯x88796的ISA接口設計
Ax88796有兩個(gè)輸入引腳CPU[1:0]設置不同的工作模式,用于和不同的CPU總線(xiàn)相連。在與TMS320F2812連接時(shí),將CPU[1:0]都拉低,設置為ISA總線(xiàn)接口。Ax88796的地址總線(xiàn)SA與數據總線(xiàn)SD分別與TMS320F2812的地址/數據總線(xiàn)相連,TMS320F2812通過(guò)I/O讀寫(xiě)Ax88796的寄存器來(lái)控制其狀態(tài),通過(guò)遠程DMA FIFOs與Ax88796的內部SRAM進(jìn)行數據交換。Ax88796的基地址默認值200H,所以基地址范圍為200H~21FH。Ax88796的ISA接口有10根地址線(xiàn),SA[9:0]。
?、贏(yíng)x88796電源設計
Ax88796具有多種電壓類(lèi)型:VDD、VDDA、VDDPD和VDDO,分別為芯片內部的數字電路、模擬電路、相位偵測模塊、收發(fā)器驅動(dòng)模塊提供電源。雖然同為3.3V電壓,但為了防止各個(gè)模塊通過(guò)電源線(xiàn)發(fā)生串繞,要求各電源獨立供電,于是設計了電源隔離、濾波電路,將系統的3.3V供電電壓,通過(guò)LC濾波分為Ax88796所需的四路電壓。
系統軟件設計
1 系統軟件結構
除應用層用戶(hù)程序外,系統軟件可看做操作系統μC/OS-Ⅱ的功能擴展:Ax88796驅動(dòng)程序屏蔽底層硬件,為操作系統擴展了訪(fǎng)問(wèn)網(wǎng)絡(luò )設備的能力;TCP/IP協(xié)議軟件為操作系統擴展了網(wǎng)絡(luò )通信能力。
TCP/IP通常被劃分為一個(gè)四層協(xié)議系統,每一層負責不同的功能。
● 接口層:Ax88796的驅動(dòng)程序,直接訪(fǎng)問(wèn)Ax88796硬件設備,控制Ax88796的行為模式。
● 網(wǎng)絡(luò )層:處理分組在網(wǎng)絡(luò )中的活動(dòng),例如分組的選路。
● 運輸層:為兩臺主機上的應用程序提供端到端的通信。
● 應用層:負責處理特定的應用程序細節。
在DSP上實(shí)現的100M快速以太網(wǎng)通信,關(guān)鍵要考慮兩個(gè)方面:
● 如何控制硬件設備將數據發(fā)送到以太網(wǎng)中(或者將以太網(wǎng)中的數據接收到DSP內)。
● 如何生成待發(fā)送的數據(或者如何解釋接收到的數據)。
二者分別由網(wǎng)絡(luò )設備驅動(dòng)程序和TCP/IP協(xié)議軟件解決。
本系統的軟件部分包含3個(gè)方面:快速以太網(wǎng)驅動(dòng)程序、μC/OS-Ⅱ操作系統和TCP/IP協(xié)議棧軟件。
2 快速以太網(wǎng)驅動(dòng)程序開(kāi)發(fā)
?、貯x88796的寄存器
Ax88796的寄存器映射在從基地址200H到21FH地址空間內,共32個(gè)地址空間,因此Ax88796采取了分頁(yè)機制,各寄存器分別存放在不同寄存器頁(yè)內。
對Ax88796的寄存器進(jìn)行正確的設置是系統運行的基礎,下面是幾個(gè)重要寄存器:
● CR(命令寄存器):用于選擇寄存器頁(yè),啟動(dòng)和停止網(wǎng)卡。
● ISR(中斷狀態(tài)寄存器):反映Ax88796當前狀態(tài),CPU通過(guò)讀取它判斷引起中斷的原因。
● DCR(數據控制寄存器):字節順序、DMA字節/字傳輸模式選擇。
● PSTART、PSTOP、BNRY、CPR:這四個(gè)寄存器與接收緩沖區有關(guān)。PSTART設置起始頁(yè),PSTOP設置停止頁(yè),這兩個(gè)寄存器設置了接收緩沖區的首尾。BNRY指示最后一個(gè)被取走的緩沖區頁(yè),CPR指示第一個(gè)用于接收的緩沖區頁(yè)。
● TPSR、TBCR0、TBCR1:這三個(gè)寄存器與發(fā)送緩沖區有關(guān)。TPSR設置發(fā)送緩沖區的起始頁(yè),TBCR0、TBCR1設置發(fā)送字節數。
● RSAR0、RSAR1、RBCR0、RBCR1:Ax88796通過(guò)遠程DMA和系統交換數據,前兩個(gè)寄存器設置遠程DMA的起始地址,后兩個(gè)設置遠程DMA數據字節數。
?、诮邮者^(guò)程
接收數據幀的過(guò)程涉及到的寄存器主要有兩個(gè):CPR和BNRY。CPR寄存器指向新接收到的數據幀要存放的起始頁(yè)地址,作為本地DMA的寫(xiě)指針;BNRY寄存器指向還未讀取的數據幀的起始頁(yè)地址,作為遠程DMA的讀指針。當CPR追上BNRY時(shí),表示接收緩沖區已滿(mǎn),后續的數據幀將會(huì )被丟棄;當BNRY追上CPR時(shí),表示接收緩沖區已空。
?、郯l(fā)送過(guò)程
圖3 發(fā)送過(guò)程
發(fā)送過(guò)程比較簡(jiǎn)單,發(fā)送過(guò)程的流程如圖3所示。
3 嵌入式多任務(wù)操作系統μC/OS-Ⅱ的移植
所謂移植,就是使μC/OS-Ⅱ內核能在某個(gè)微處理器或微控制器上運行。為了方便移植,大部分的μC/OS-Ⅱ代碼是用C語(yǔ)言寫(xiě)的;但仍需要用C和匯編語(yǔ)言寫(xiě)一些與處理器相關(guān)的代碼,這是因為在讀寫(xiě)處理器寄存器時(shí)只能通過(guò)匯編語(yǔ)言來(lái)實(shí)現。因此要使 μC/OS-Ⅱ正常運行,處理器必須滿(mǎn)足以下要求:
● 處理器支持中斷,并且能產(chǎn)生定時(shí)中斷(通常在10~1kHz之間)。
● 使用C語(yǔ)言可以打開(kāi)和關(guān)閉處理器的中斷。
● 處理器支持能夠容納一定量數據的硬件堆棧。
● 處理器有將堆棧指針和其他寄存器讀出和存儲到堆?;騼却嬷械闹噶?。
μC/OS-Ⅱ的移植工作主要包括兩個(gè)內容:
● OS_CPU_C.C文件中的一個(gè)C語(yǔ)言函數
● OS_CPU_A.ASM文件中的四個(gè)匯編語(yǔ)言函數
由于篇幅有限,這里就不詳細說(shuō)明這兩個(gè)文件的具體編寫(xiě)了。
4 TCP/IP協(xié)議棧的系統結構
?、倬W(wǎng)絡(luò )接口層模塊
網(wǎng)絡(luò )接口層模塊包含Ax88796設備驅動(dòng)、緩沖區管理和接口調度三方面。定義了網(wǎng)絡(luò )接口抽象模型,屏蔽了網(wǎng)絡(luò )物理細節,使上層軟件能使用相同的數據結構作用于不同的物理網(wǎng)絡(luò )。
?、贏(yíng)RP模塊
ARP協(xié)議將上層的協(xié)議地址(IP地址)與底層的硬件地址進(jìn)行映射,從而形成了只能使用IP地址的上層軟件和只能使用物理地址的下層設備驅動(dòng)程序之間的分界線(xiàn)。ARP模塊處理來(lái)自于網(wǎng)絡(luò )的ARP數據分組,更新和維護ARP高速緩存,并為發(fā)送數據報提供相應的硬件地址綁定。
?、跧CMP模塊
ICMP協(xié)議內容比較豐富,最常用的就是PC上ping程序所實(shí)現的回送請求和回送應答功能。本課題中,主要就是實(shí)現了回送應答功能,這樣用戶(hù)可以使用PC探測DSP是否網(wǎng)絡(luò )暢通,其他功能目前暫時(shí)預留,待將來(lái)升級。
?、躀P模塊
IP模塊是整個(gè)協(xié)議棧的中心環(huán)節,它接收來(lái)自網(wǎng)絡(luò )的輸入數據報,同時(shí)也接收來(lái)自上層協(xié)議的輸出數據報,IP為數據報選擇路由,或者將其發(fā)往一個(gè)網(wǎng)絡(luò )接口,或者將其交給本機的上層協(xié)議軟件(回環(huán))。
⑤TCP模塊
TCP為不可靠的IP連接提供可靠的、具有流量控制的、端到端的數據傳輸。TCP模塊中包含三個(gè)關(guān)鍵過(guò)程:數據輸入、數據輸出和超時(shí)重發(fā)。自適應重發(fā)機制是TCP的核心組成部分,自適應的修改連接的平均往返時(shí)間。
⑥UDP模塊
UDP協(xié)議提供無(wú)連接的通信,相對于TCP協(xié)議,它非常簡(jiǎn)單。雖然UDP不能保證可靠性,但是效率非常高。
⑦Socket接口模塊
Socket模塊主要是為了封裝底層協(xié)議軟件,使得用戶(hù)在DSP上開(kāi)發(fā)網(wǎng)絡(luò )程序更加方便。
系統測試舉例
Internet Explorer(IE)是Windows操作系統內嵌的網(wǎng)頁(yè)瀏覽器。Web(網(wǎng)頁(yè))是這個(gè)信息共享社會(huì )使用最廣泛的信息組織形式。通過(guò)往DSP軟件中添加Web服務(wù)功能,可以使本系統能夠更好的融入Internet之中,用戶(hù)可以通過(guò)IE瀏覽器直接對本系統進(jìn)行設置和查看系統的反饋數據。打開(kāi)IE瀏覽器,在地址欄鍵入“192.168.8.66”,即可訪(fǎng)問(wèn)預存在DSP系統中的遠程數據采集頁(yè)面。
結束語(yǔ)
測試表明本系統完全滿(mǎn)足了網(wǎng)絡(luò )通信系統所具備的各項功能,它將DSP的強大運算處理能力和Internet聯(lián)系起來(lái),使得DSP系統不再是“信息孤島”,能夠方便的與網(wǎng)絡(luò )上的其他設備進(jìn)行信息共享,進(jìn)一步擴展DSP的應用前景。
tcp/ip相關(guān)文章:tcp/ip是什么
評論