關(guān) 閉

新聞中心

EEPW首頁 > 工控自動化 > 設(shè)計應(yīng)用 > 基于TMS320F2812的快速以太網(wǎng)通信系統(tǒng)平臺(圖)

基于TMS320F2812的快速以太網(wǎng)通信系統(tǒng)平臺(圖)

作者: 時間:2008-07-21 來源:網(wǎng)絡(luò) 收藏

  隨著Internet應(yīng)用的日益普及,信息共享程度的不斷提高。嵌入式設(shè)備的數(shù)字化和網(wǎng)絡(luò)化已經(jīng)成為必然趨勢,目前市場上的主流嵌入式操作系統(tǒng)都包含了/IP網(wǎng)絡(luò)協(xié)議棧。這些商品化的/IP協(xié)議棧運行可靠、性能也非常好,但是價格較高,降低了市場競爭力。因此,開發(fā)自主知識產(chǎn)權(quán)的/IP協(xié)議棧的要求變的日益迫切而有意義。

  本文的研究目標(biāo)是建立一個DSP系統(tǒng)的網(wǎng)絡(luò)通信平臺,實現(xiàn)DSP系統(tǒng)與網(wǎng)絡(luò)中其他通信設(shè)備的高速數(shù)據(jù)傳輸。雖然選擇了TI公司的TMS320F2812 DSP,但是本文提出的方案,具有很大程度的通用性,對其他系列的DSP或CPU系統(tǒng)也有一定的參考價值。

  TCP/IP協(xié)議棧的體系結(jié)構(gòu)

  以太網(wǎng)最典型的應(yīng)用形式是Ethernet+TCP/IP,即在由以太網(wǎng)構(gòu)建的底層傳輸網(wǎng)絡(luò)上采用已成為通用標(biāo)準(zhǔn)的網(wǎng)絡(luò)傳輸協(xié)議TCP/IP進(jìn)行數(shù)據(jù)通信,這是當(dāng)今最流行,應(yīng)用最廣泛的以太網(wǎng)通信方式。

  國際標(biāo)準(zhǔn)化組織(ISO)制定了開放式系統(tǒng)互連(OSI)參考模型,將通信會話需要的各個過程劃分為7個相對獨立的功能層次,與不同,TCP/IP模型側(cè)重于互連設(shè)備之間的數(shù)據(jù)傳輸,而不是嚴(yán)格的層次劃分。

  通常,在從理論上解釋互聯(lián)網(wǎng)通信機(jī)制時比較適合,而TCP/IP模型則在具體的軟件實現(xiàn)中更為適合。

  系統(tǒng)硬件設(shè)計

  1 系統(tǒng)的總體結(jié)構(gòu)

  本文的以太網(wǎng)通信系統(tǒng)大致分為5個層次,由下向上分別為:硬件層、設(shè)備驅(qū)動層、操作系統(tǒng)、網(wǎng)絡(luò)模塊和用戶代碼。系統(tǒng)硬件電路,包括DSP系統(tǒng)和以太網(wǎng)控制芯片Ax88796的接口電路,是系統(tǒng)的物理基礎(chǔ)。驅(qū)動程序處于,本身雖為軟件,但與硬件結(jié)合緊密,為操作系統(tǒng)提供了訪問控制芯片Ax88796或改變其工作行為的系統(tǒng)調(diào)用。μC/OS-Ⅱ操作系統(tǒng)處于系統(tǒng)內(nèi)核,為用戶代碼統(tǒng)一管理系統(tǒng)軟硬件資源,提供用戶所需的底層服務(wù)。TCP/IP協(xié)議棧軟件為μC/OS-Ⅱ操作系統(tǒng)擴(kuò)展了網(wǎng)絡(luò)通信能力。用戶代碼處理特定的應(yīng)用程序細(xì)節(jié),可以直接使用TCP/IP協(xié)議模塊提供的API函數(shù),開發(fā)基于以太網(wǎng)的通信項目。

  2 系統(tǒng)硬件框圖

  系統(tǒng)硬件包括TMS320F2812與IS61LV51216存儲器芯片的接口電路、TMS320F2812與控制芯片Ax88796的接口電路。系統(tǒng)的軟件代碼在調(diào)試階段存放在擴(kuò)展的RAM中,脫機(jī)運行后,用于存儲傳輸?shù)膱D像數(shù)據(jù),故擴(kuò)展了512KB。使用了ISSI公司生成的IS61LV51216存儲器芯片。以太網(wǎng)控制芯片Ax88796通過ISA接口與DSP相連,通過網(wǎng)絡(luò)隔離器16ST8515后,接入以太網(wǎng)絡(luò)中。電源監(jiān)控電路在系統(tǒng)電源電壓出現(xiàn)波動時,給DSP系統(tǒng)提供復(fù)位信號,使系統(tǒng)程序重新初始化并運行,避免出現(xiàn)不可預(yù)知的錯誤。

  

  圖1 硬件框圖

  3 DSP系統(tǒng)硬件設(shè)計

 ?、傧到y(tǒng)電源設(shè)計

  為了降低芯片功耗,TMS320F2812采用1.8V(1.9V@150MHz)內(nèi)核電壓,但GPIO、FLASH等模塊采用3.3V供電。本課題選用TI公司的TPS767D301電源芯片。該芯片輸出兩路電壓,一路3.3V,另一路1.5~5.5V可調(diào),支持1A電流輸出。系統(tǒng)中DSP芯片正常工作下消耗電流230mA,以太網(wǎng)接口芯片最大消耗電流120mA,RAM最大消耗電流180mA,系統(tǒng)總功耗為530mA,故TPS767D301能滿足系統(tǒng)要求。

 ?、谙到y(tǒng)時鐘設(shè)計

  系統(tǒng)的時鐘電路有兩種方案可選擇,一種是使用外部時鐘源,即有源晶振。另一種是使用DSP內(nèi)部的振蕩驅(qū)動電路,外接一個晶體和兩個電容。有源晶振的特點是不需要芯片內(nèi)部振蕩器,加上額定的電壓就能輸出規(guī)則的方波,缺點是輸出波形只能是固定的兩個電壓值:低電平(0V)和高電平(輸入供電電壓),另外器件成本高。外接晶體的特點是使用芯片內(nèi)部振蕩電路,輸出的波形為正弦波,波形幅度由控制器決定,不存在電壓匹配的問題。

  TMS320F2812的I/O引腳一般為3.3V,但時鐘輸入腳卻是個例外,只能承受1.8V/1.9V的輸入電壓,而1.8V/1.9V的有源晶振市場上罕有出售,故采用無源晶振。

 ?、?a class="contentlabel" href="http://2s4d.com/news/listbylabel/label/復(fù)位電路">復(fù)位電路設(shè)計

  系統(tǒng)中有兩個芯片需要復(fù)位信號:DSP芯片和以太網(wǎng)控制芯片Ax88796。但二者對復(fù)位信號的要求各不相同,DSP是低電平復(fù)位,而Ax88796是高電平復(fù)位,故采用TI公司的專用復(fù)位芯片TPS3307。該芯片具有上電復(fù)位、手動復(fù)位和電源監(jiān)控三項功能。電路如圖2所示。

  上電保證系統(tǒng)在上電200ms后自動產(chǎn)生一個復(fù)位信號,使DSP進(jìn)入正常的程序入口,Ax88796初始化內(nèi)部寄存器。手動復(fù)位的功能是當(dāng)系統(tǒng)出現(xiàn)程序跑飛或需要系統(tǒng)重新初始化并運行時,按下復(fù)位按鍵產(chǎn)生復(fù)位信號,使DSP進(jìn)入正常的程序入口。

  ④系統(tǒng)RAM擴(kuò)展

  TMS320F2812內(nèi)部已經(jīng)集成了18KB的RAM,對于一般的應(yīng)用來說,已經(jīng)無須再擴(kuò)展外部RAM。但是片內(nèi)RAM能以150MIPS的速度進(jìn)行訪問,在對運算速度要求很高的處理程序中,通常將經(jīng)常訪問的程序段放到內(nèi)部RAM中運行,這樣能大大提高運行速度,因此片內(nèi)RAM顯得格外寶貴。而且本系統(tǒng)是一個網(wǎng)絡(luò)通信系統(tǒng),將來會用于進(jìn)行大量圖像的網(wǎng)絡(luò)傳輸,因而也要求外括RAM用于存放圖像文件。

  

  圖2

  RAM選用ISSI公司的IS61LV51216,存儲容量為512K×16位,3.3V的供電電壓,訪問速度有8ns、10ns、12ns、15ns可選擇。當(dāng)CPU運行在150MHz的時候,地址和數(shù)據(jù)的最小有效時間為3個時鐘周期,即20ns,所以該存儲器接口不用考慮時序設(shè)計的問題。

  4 快速以太網(wǎng)硬件接口設(shè)計

  Ax88796內(nèi)部集成有10/100Mb/s自適應(yīng)的物理層收發(fā)器和8K×16位的SRAM,支持MCS-51系列、80186系列、ISA以及MC68K系列等多種CPU總線類型。Ax88796提供基于IEEE802.3/IEEE 802.3u局域網(wǎng)標(biāo)準(zhǔn)的10Mb/s和100Mb/s以太網(wǎng)控制功能,并采用IEEE 802.3u兼容的媒質(zhì)無關(guān)接口MII(Media Independent Interface)。此外,Ax88796還提供可選的標(biāo)準(zhǔn)打印接口,用于連接打印設(shè)備或作通用I/O端口。

 ?、貯x88796的ISA接口設(shè)計

  Ax88796有兩個輸入引腳CPU[1:0]設(shè)置不同的工作模式,用于和不同的CPU總線相連。在與TMS320F2812連接時,將CPU[1:0]都拉低,設(shè)置為ISA總線接口。Ax88796的地址總線SA與數(shù)據(jù)總線SD分別與TMS320F2812的地址/數(shù)據(jù)總線相連,TMS320F2812通過I/O讀寫Ax88796的寄存器來控制其狀態(tài),通過遠(yuǎn)程DMA FIFOs與Ax88796的內(nèi)部SRAM進(jìn)行數(shù)據(jù)交換。Ax88796的基地址默認(rèn)值200H,所以基地址范圍為200H~21FH。Ax88796的ISA接口有10根地址線,SA[9:0]。

 ?、贏x88796電源設(shè)計

  Ax88796具有多種電壓類型:VDD、VDDA、VDDPD和VDDO,分別為芯片內(nèi)部的數(shù)字電路、模擬電路、相位偵測模塊、收發(fā)器驅(qū)動模塊提供電源。雖然同為3.3V電壓,但為了防止各個模塊通過電源線發(fā)生串繞,要求各電源獨立供電,于是設(shè)計了、濾波電路,將系統(tǒng)的3.3V供電電壓,通過LC濾波分為Ax88796所需的四路電壓。

  系統(tǒng)軟件設(shè)計

  1 系統(tǒng)軟件結(jié)構(gòu)

  除應(yīng)用層用戶程序外,系統(tǒng)軟件可看做操作系統(tǒng)μC/OS-Ⅱ的功能擴(kuò)展:Ax88796驅(qū)動程序屏蔽底層硬件,為操作系統(tǒng)擴(kuò)展了訪問網(wǎng)絡(luò)設(shè)備的能力;TCP/IP協(xié)議軟件為操作系統(tǒng)擴(kuò)展了網(wǎng)絡(luò)通信能力。

  TCP/IP通常被劃分為一個四層協(xié)議系統(tǒng),每一層負(fù)責(zé)不同的功能。

  ● 接口層:Ax88796的驅(qū)動程序,直接訪問Ax88796硬件設(shè)備,控制Ax88796的行為模式。

  ● 網(wǎng)絡(luò)層:處理分組在網(wǎng)絡(luò)中的活動,例如分組的選路。

  ● 運輸層:為兩臺主機(jī)上的應(yīng)用程序提供端到端的通信。

  ● 應(yīng)用層:負(fù)責(zé)處理特定的應(yīng)用程序細(xì)節(jié)。

  在DSP上實現(xiàn)的100M快速以太網(wǎng)通信,關(guān)鍵要考慮兩個方面:

  ● 如何控制硬件設(shè)備將數(shù)據(jù)發(fā)送到以太網(wǎng)中(或者將以太網(wǎng)中的數(shù)據(jù)接收到DSP內(nèi))。

  ● 如何生成待發(fā)送的數(shù)據(jù)(或者如何解釋接收到的數(shù)據(jù))。

  二者分別由網(wǎng)絡(luò)設(shè)備驅(qū)動程序和TCP/IP協(xié)議軟件解決。

  本系統(tǒng)的軟件部分包含3個方面:快速以太網(wǎng)驅(qū)動程序、μC/OS-Ⅱ操作系統(tǒng)和TCP/IP協(xié)議棧軟件。

  2 快速以太網(wǎng)驅(qū)動程序開發(fā)

 ?、貯x88796的寄存器

  Ax88796的寄存器映射在從基地址200H到21FH地址空間內(nèi),共32個地址空間,因此Ax88796采取了分頁機(jī)制,各寄存器分別存放在不同寄存器頁內(nèi)。

  對Ax88796的寄存器進(jìn)行正確的設(shè)置是系統(tǒng)運行的基礎(chǔ),下面是幾個重要寄存器:

  ● CR(命令寄存器):用于選擇寄存器頁,啟動和停止網(wǎng)卡。

  ● ISR(中斷):反映Ax88796當(dāng)前狀態(tài),CPU通過讀取它判斷引起中斷的原因。

  ● DCR(數(shù)據(jù)控制寄存器):字節(jié)順序、DMA字節(jié)/字傳輸模式選擇。

  ● PSTART、PSTOP、BNRY、CPR:這四個寄存器與接收緩沖區(qū)有關(guān)。PSTART設(shè)置起始頁,PSTOP設(shè)置停止頁,這兩個了接收緩沖區(qū)的首尾。BNRY指示最后一個被取走的緩沖區(qū)頁,CPR指示第一個用于接收的緩沖區(qū)頁。

  ● TPSR、TBCR0、TBCR1:這三個寄存器與發(fā)送緩沖區(qū)有關(guān)。TPSR設(shè)置發(fā)送緩沖區(qū)的起始頁,TBCR0、TBCR1設(shè)置發(fā)送字節(jié)數(shù)。

  ● RSAR0、RSAR1、RBCR0、RBCR1:Ax88796通過遠(yuǎn)程DMA和系統(tǒng)交換數(shù)據(jù),前兩個遠(yuǎn)程DMA的起始地址,后兩個設(shè)置遠(yuǎn)程DMA數(shù)據(jù)字節(jié)數(shù)。

  ②接收過程

  接收數(shù)據(jù)幀的過程涉及到的寄存器主要有兩個:CPR和BNRY。CPR寄存器指向新接收到的數(shù)據(jù)幀要存放的起始頁地址,作為本地DMA的寫指針;BNRY寄存器指向還未讀取的數(shù)據(jù)幀的起始頁地址,作為遠(yuǎn)程DMA的讀指針。當(dāng)CPR追上BNRY時,表示接收緩沖區(qū)已滿,后續(xù)的數(shù)據(jù)幀將會被丟棄;當(dāng)BNRY追上CPR時,表示接收緩沖區(qū)已空。

 ?、郯l(fā)送過程

  

  

  圖3 發(fā)送過程

  發(fā)送過程比較簡單,發(fā)送過程的流程如圖3所示。

  3 嵌入式多任務(wù)操作系統(tǒng)μC/OS-Ⅱ的移植

  所謂移植,就是使μC/OS-Ⅱ內(nèi)核能在某個微處理器或微控制器上運行。為了方便移植,大部分的μC/OS-Ⅱ代碼是用C語言寫的;但仍需要用C和匯編語言寫一些與處理器相關(guān)的代碼,這是因為在讀寫處理器寄存器時只能通過匯編語言來實現(xiàn)。因此要使 μC/OS-Ⅱ正常運行,處理器必須滿足以下要求:

  ● 處理器支持中斷,并且能產(chǎn)生定時中斷(通常在10~1kHz之間)。

  ● 使用C語言可以打開和關(guān)閉處理器的中斷。

  ● 處理器支持能夠容納一定量數(shù)據(jù)的硬件堆棧。

  ● 處理器有將堆棧指針和其他寄存器讀出和存儲到堆棧或內(nèi)存中的指令。

  μC/OS-Ⅱ的移植工作主要包括兩個內(nèi)容:

  ● OS_CPU_C.中的一個C語言函數(shù)

  ● OS_CPU_A.ASM文件中的四個匯編語言函數(shù)

  由于篇幅有限,這里就不詳細(xì)說明這兩個文件的具體編寫了。

  4 TCP/IP協(xié)議棧的系統(tǒng)結(jié)構(gòu)

 ?、倬W(wǎng)絡(luò)接口層模塊

  網(wǎng)絡(luò)接口層模塊包含Ax88796設(shè)備驅(qū)動、緩沖區(qū)管理和接口調(diào)度三方面。定義了網(wǎng)絡(luò)接口抽象模型,屏蔽了網(wǎng)絡(luò)物理細(xì)節(jié),使上層軟件能使用相同的數(shù)據(jù)結(jié)構(gòu)作用于不同的物理網(wǎng)絡(luò)。

 ?、贏RP模塊

  ARP協(xié)議將上層的協(xié)議地址(IP地址)與底層的硬件地址進(jìn)行映射,從而形成了只能使用IP地址的上層軟件和只能使用物理地址的下層設(shè)備驅(qū)動程序之間的分界線。ARP模塊處理來自于網(wǎng)絡(luò)的ARP數(shù)據(jù)分組,更新和維護(hù)ARP高速緩存,并為發(fā)送數(shù)據(jù)報提供相應(yīng)的硬件地址綁定。

  ③ICMP模塊

  ICMP協(xié)議內(nèi)容比較豐富,最常用的就是PC上ping程序所實現(xiàn)的回送請求和功能。本課題中,主要就是實現(xiàn)了功能,這樣用戶可以使用PC探測DSP是否網(wǎng)絡(luò)暢通,其他功能目前暫時預(yù)留,待將來升級。

 ?、躀P模塊

  IP模塊是整個協(xié)議棧的中心環(huán)節(jié),它接收來自網(wǎng)絡(luò)的輸入數(shù)據(jù)報,同時也接收來自上層協(xié)議的輸出數(shù)據(jù)報,IP為數(shù)據(jù)報選擇路由,或者將其發(fā)往一個網(wǎng)絡(luò)接口,或者將其交給本機(jī)的上層協(xié)議軟件(回環(huán))。

  ⑤TCP模塊

  TCP為不可靠的IP連接提供可靠的、具有流量控制的、端到端的數(shù)據(jù)傳輸。TCP模塊中包含三個關(guān)鍵過程:數(shù)據(jù)輸入、數(shù)據(jù)輸出和超時重發(fā)。自適應(yīng)重發(fā)機(jī)制是TCP的核心組成部分,自適應(yīng)的修改連接的平均往返時間。

  ⑥UDP模塊

  UDP協(xié)議提供無連接的通信,相對于TCP協(xié)議,它非常簡單。雖然UDP不能保證可靠性,但是效率非常高。

  ⑦Socket接口模塊

  Socket模塊主要是為了封裝底層協(xié)議軟件,使得用戶在DSP上開發(fā)網(wǎng)絡(luò)程序更加方便。

  系統(tǒng)測試舉例

  Internet Explorer(IE)是Windows操作系統(tǒng)內(nèi)嵌的網(wǎng)頁瀏覽器。Web(網(wǎng)頁)是這個信息共享社會使用最廣泛的信息組織形式。通過往DSP軟件中添加Web服務(wù)功能,可以使本系統(tǒng)能夠更好的融入Internet之中,用戶可以通過IE瀏覽器直接對本系統(tǒng)進(jìn)行設(shè)置和查看系統(tǒng)的反饋數(shù)據(jù)。打開IE瀏覽器,在地址欄鍵入“192.168.8.66”,即可訪問預(yù)存在DSP系統(tǒng)中的遠(yuǎn)程數(shù)據(jù)采集頁面。

  結(jié)束語

  測試表明本系統(tǒng)完全滿足了網(wǎng)絡(luò)通信系統(tǒng)所具備的各項功能,它將DSP的強(qiáng)大運算處理能力和Internet聯(lián)系起來,使得DSP系統(tǒng)不再是“信息孤島”,能夠方便的與網(wǎng)絡(luò)上的其他設(shè)備進(jìn)行信息共享,進(jìn)一步擴(kuò)展DSP的應(yīng)用前景。

tcp/ip相關(guān)文章:tcp/ip是什么




評論


相關(guān)推薦

技術(shù)專區(qū)

關(guān)閉