摘 要:本文以數(shù)字信號處理器和網(wǎng)絡(luò)控制器為核心,設(shè)計了嵌入式DSP系統(tǒng)接入以太網(wǎng)硬件平臺,并簡化網(wǎng)絡(luò)層次體系結(jié)構(gòu),完成相應(yīng)的網(wǎng)絡(luò)應(yīng)用軟件的設(shè)計,實(shí)現(xiàn)了嵌入式系統(tǒng)通過以太網(wǎng)與計算機(jī)進(jìn)行通信功能。
關(guān)鍵詞:嵌入式系統(tǒng); 網(wǎng)絡(luò)接口; 數(shù)字信號處理器
1、引言
結(jié)合DSP技術(shù)與計算機(jī)網(wǎng)絡(luò)技術(shù),將網(wǎng)絡(luò)技術(shù)融入以數(shù)字信號處理器為核心的嵌入式系統(tǒng)中,利于各種設(shè)備共享互聯(lián)網(wǎng)絡(luò)中龐大的信息資源,使其嵌入式設(shè)備在性價比與實(shí)時性方面有著通用計算機(jī)無法比擬的優(yōu)越性,因此嵌入式DSP技術(shù)越來越廣泛地被應(yīng)用于網(wǎng)絡(luò)產(chǎn)品開發(fā)中。由于嵌入式網(wǎng)絡(luò)開發(fā)的應(yīng)用前景非常廣闊,現(xiàn)在已經(jīng)成為研究的熱點(diǎn)。
本文利用數(shù)字信號處理器DSP和以太網(wǎng)控制器構(gòu)建嵌入式智能接入以太網(wǎng),完成了以DSP為核心的以太網(wǎng)嵌入式系統(tǒng)的硬件平臺,并在此硬件平臺上實(shí)現(xiàn)嵌入式TCP/IP協(xié)議,完成DSP嵌入式系統(tǒng)通過以太網(wǎng)絡(luò)與通用計算機(jī)的通信交換數(shù)據(jù)功能。
2、對以太網(wǎng)控制器分析
以太網(wǎng)控制器主要是實(shí)現(xiàn)以太網(wǎng)媒介訪問層MAC(Media Access Control)和物理層的功能,包括MAC數(shù)據(jù)幀收發(fā)、地址識別、循環(huán)冗余檢驗(yàn)CRC(Cyclic Redundancy Check)編碼與校驗(yàn)、曼徹斯特編碼、超時重傳、鏈路完整性測試、信號極性監(jiān)測與糾正等。而主處理器只需要通過網(wǎng)絡(luò)控制器的外部總線來讀取其接收或發(fā)送的幀數(shù)據(jù)。以太網(wǎng)絡(luò)控制器RTL8019AS內(nèi)部原理框圖,如圖1所示。
[align=center]
圖1 網(wǎng)絡(luò)控制器RTL8019AS內(nèi)部原理框圖[/align]
接收邏輯在接收時鐘控制下將串行數(shù)據(jù)并成字節(jié)送到FIFO(First-In First-Out)和CRC;發(fā)送邏輯將FIFO送來的字節(jié)在發(fā)送時鐘控制下逐步按位移出,并送到CRC;CRC邏輯在接收時對輸入數(shù)據(jù)進(jìn)行CRC校驗(yàn),將結(jié)果與幀尾的CRC比較,如不同,該數(shù)據(jù)幀將被拒收,在發(fā)送時CRC對幀數(shù)據(jù)產(chǎn)生CRC并附加在數(shù)據(jù)尾傳送;地址識別邏輯對接收幀的目的地址與設(shè)置的本地物理地址進(jìn)行比較,如不同且不是廣播地址,則該數(shù)據(jù)幀被拒收;FIFO邏輯對收發(fā)數(shù)據(jù)做16個字節(jié)緩沖,以減少對近端DMA(Local Direct Memory Access)請求的頻率。
以太網(wǎng)控制器DMA操作原理框圖,如圖2所示。對于主處理器來說,可以把網(wǎng)絡(luò)控制器看作是一個向以太網(wǎng)收發(fā)數(shù)據(jù)的從設(shè)備。按服務(wù)對象的不同,可將網(wǎng)絡(luò)控制器內(nèi)部分為遠(yuǎn)端DMA(Remote Direct Memory Access)通道和近端DMA(Local Direct Memory Access)通道兩個部分。遠(yuǎn)端DMA主要負(fù)責(zé)以太網(wǎng)控制器內(nèi)部RAM與主處理器之間數(shù)據(jù)交換:即主處理器通過對遠(yuǎn)端DMA讀寫操作,來完成對網(wǎng)絡(luò)控制器的數(shù)據(jù)收發(fā)控制操作。近端DMA主要負(fù)責(zé)自動完成以太網(wǎng)控制器與網(wǎng)絡(luò)上的數(shù)據(jù)交換:即接收數(shù)據(jù)時,網(wǎng)絡(luò)控制器將接收到的數(shù)據(jù)存到內(nèi)部的接收緩沖區(qū),收滿一幀后,以中斷或寄存器標(biāo)志的方式通知處理器;發(fā)送數(shù)據(jù)時,當(dāng)收到傳送命令后,網(wǎng)絡(luò)控制器自動將發(fā)送緩沖區(qū)的數(shù)據(jù)按標(biāo)準(zhǔn)幀格式送出去。
[align=center]
圖2 以太網(wǎng)控制器DMA操作原理框圖[/align]
3、網(wǎng)絡(luò)接口硬件電路的設(shè)計
DSP與網(wǎng)絡(luò)控制器RTL8019AS硬件接口電路圖,如圖3所示。網(wǎng)絡(luò)控制器RTL8019AS的工作電壓標(biāo)稱為5V供電,但是經(jīng)過實(shí)際測試驗(yàn)證RTL8019AS芯片能在3.3V供電情況正常使用,而DSP芯片TMS320VC5409的工作電壓也為3.3V,因此網(wǎng)絡(luò)控制器的輸入/輸出可與TMS320VC5409直接接口。
[align=center]
圖3 DSP與網(wǎng)絡(luò)控制芯片RTL8019AS硬件接口電路圖[/align]
RTL8019AS在復(fù)位的上升沿鎖定IOCS16腳的電平,高電平時為16位總線方式,低電平時為8位總線方式。如連接到8位主設(shè)備上,可以選擇47kΩ的下拉電阻,SD[8:15]空懸;如連接到16位主設(shè)備上,可以選擇510Ω的上拉電阻即可。由于RTL8019AS沒有外接初始化的EPROM,故復(fù)位時命令寄存器(CR)的I/O地址的值為缺省值0300H,所以為滿足RTL8019AS的時序要求,A5~A19地址連接必須使網(wǎng)絡(luò)控制器的地址鎖定在0300H,否則主控制器就無法訪問到網(wǎng)絡(luò)控制器RTL8019AS的寄存器。
在本設(shè)計中,采用了16位數(shù)據(jù)總線方式對網(wǎng)絡(luò)控制器操作,把網(wǎng)絡(luò)控制器的地址映射到DSP的I/O空間,以I/O方式來訪問網(wǎng)絡(luò)控制器寄存器,所以這就需要將網(wǎng)絡(luò)控制器地址線SA[0:4]與DSP芯片地址線A[0:4]地址線相接,網(wǎng)絡(luò)控制器地址端SA[8:9]接高電平,地址端SA[10:19]接低電平。將網(wǎng)絡(luò)控制器RTL8019AS的其余的控制信號引腳直接接到CPLD上,DSP對網(wǎng)絡(luò)控制器的邏輯控制則通過對CPLD編程來實(shí)現(xiàn)。
網(wǎng)絡(luò)控制器的網(wǎng)絡(luò)連接指示(LEDBNC)、網(wǎng)絡(luò)沖突指示(LED)、接收指示(LED1)、發(fā)送指示(LED2)引腳接發(fā)光二極管來指示網(wǎng)絡(luò)控制器工作狀態(tài)。由于在芯片RTL8019AS中的輸入引腳內(nèi)部被100K的電阻下拉接地,所以芯片中任何懸空的引腳狀態(tài)都是低電平狀態(tài)。
4、網(wǎng)絡(luò)軟件的設(shè)計
4.1、軟件實(shí)現(xiàn)結(jié)構(gòu)網(wǎng)絡(luò)協(xié)議層次劃分
系統(tǒng)參照ISO標(biāo)準(zhǔn)的7層OSI 模型,根據(jù)實(shí)際應(yīng)用要求,可采用縮減的網(wǎng)絡(luò)軟件體系結(jié)構(gòu),如圖4所示,可把網(wǎng)絡(luò)體系結(jié)構(gòu)劃分為三層:網(wǎng)絡(luò)數(shù)據(jù)訪問驅(qū)動控制層、操作系統(tǒng)控制層和用戶應(yīng)用數(shù)據(jù)層。網(wǎng)絡(luò)數(shù)據(jù)訪問驅(qū)動控制層規(guī)定了網(wǎng)絡(luò)拓?fù)湫问郊皵?shù)據(jù)通信信號的電氣特性,實(shí)現(xiàn)點(diǎn)到點(diǎn)的通信規(guī)程,并完全執(zhí)行IEEE802.3的CSMA/CD協(xié)議;操作系統(tǒng)控制層集成了TCP/IP協(xié)議族組件,完成把從數(shù)據(jù)鏈路層獲得的數(shù)據(jù)解析成用戶應(yīng)用程序所需的數(shù)據(jù);用戶應(yīng)用數(shù)據(jù)層則是對數(shù)據(jù)進(jìn)行處理分析工作。
[align=center]
圖4 網(wǎng)絡(luò)軟件體系結(jié)構(gòu)[/align]
4.2、數(shù)據(jù)幀結(jié)構(gòu)分析
網(wǎng)絡(luò)控制芯片執(zhí)行IEEE802.3協(xié)議的幀結(jié)構(gòu),如圖5所示。
[align=center]
圖5 IEEE802.3協(xié)議幀結(jié)構(gòu)[/align]
62位前導(dǎo)位PR碼與2位幀起始位SD碼由網(wǎng)絡(luò)控制芯片硬件自動生成物理層同步信號。48位目的IP的物理地址DA碼指示著該數(shù)據(jù)幀所要到達(dá)的目的物理地址,48位源IP地址SA碼攜帶著發(fā)送該數(shù)據(jù)幀的源物理地址。16位的TYPE/LEN碼代表該數(shù)據(jù)幀類型或數(shù)據(jù)幀長度。DATA數(shù)據(jù)段,是該類型包的有效數(shù)據(jù),PAD可填充段是用來保證該數(shù)據(jù)幀的最小包長度滿足不小于60字節(jié)的IEEE802.3幀數(shù)據(jù)結(jié)構(gòu)要求。32位的硬件產(chǎn)生自動數(shù)據(jù)校驗(yàn)FCS段,是對所傳輸數(shù)據(jù)幀進(jìn)行累加奇偶和的校驗(yàn),以保證傳輸數(shù)據(jù)的正確性。
在這里需要注意的是網(wǎng)絡(luò)控制器RTL8019AS在接收到數(shù)據(jù)包的幀結(jié)構(gòu),如圖6所示。對比IEEE802.3幀結(jié)構(gòu)可以看出,網(wǎng)絡(luò)控制器RTL8019AS在接收數(shù)據(jù),為使網(wǎng)絡(luò)驅(qū)動程序編寫方便而添加了芯片報頭,包括接收狀態(tài)RS(Receive State)指示數(shù)據(jù)接收的狀態(tài),下一頁指針NP(Next Page)指示下一操作頁面地址,接收數(shù)據(jù)幀長度FL(Frame Length)指示此接收到的數(shù)據(jù)幀總字節(jié)數(shù),這三段內(nèi)容的添加,使得軟硬件能更好地互相配合協(xié)同工作。
[align=center]
圖6 網(wǎng)絡(luò)控制器RTL8019AS接收數(shù)據(jù)幀結(jié)構(gòu)[/align]
4.3、數(shù)據(jù)幀的接收與發(fā)送程序設(shè)計
本系統(tǒng)所要實(shí)現(xiàn)的功能是把嵌入式系統(tǒng)的語音進(jìn)行編碼壓縮后得到的數(shù)據(jù)格式轉(zhuǎn)換成以太網(wǎng)幀格式,通過以太網(wǎng)傳輸給計算機(jī),并把從以太網(wǎng)上接收到的幀數(shù)據(jù)解包,轉(zhuǎn)換成所需的語音數(shù)據(jù)格式解碼還原成語音輸出。根據(jù)我們簡化的網(wǎng)絡(luò)軟件體系結(jié)構(gòu)來進(jìn)行層次設(shè)計軟件,其中最關(guān)鍵的是與操作系統(tǒng)接口的網(wǎng)絡(luò)控制驅(qū)動程序設(shè)計,它包括對數(shù)據(jù)的發(fā)送操作和接收操作,其流程如圖7和圖8所示。
[align=center]
圖7 數(shù)據(jù)幀的發(fā)送程序流程[/align]
[align=center]
圖8 數(shù)據(jù)幀的接收程序流程[/align]
5、結(jié)論語
作者針對基于DSP的嵌入式以太網(wǎng)系統(tǒng)進(jìn)行研究,根據(jù)對系統(tǒng)需求的分析,設(shè)計并實(shí)現(xiàn)嵌入式網(wǎng)絡(luò)硬件平臺,并在嵌入式DSP系統(tǒng)網(wǎng)絡(luò)硬件平臺上完成了TCP/IP協(xié)議的軟件開發(fā),使嵌入式系統(tǒng)通過以太網(wǎng)與計算機(jī)進(jìn)行數(shù)據(jù)交換通信,最終實(shí)現(xiàn)嵌入式系統(tǒng)網(wǎng)絡(luò)功能。其中利用簡化網(wǎng)絡(luò)軟件體系結(jié)構(gòu)來設(shè)計軟件系統(tǒng),使整個軟件代碼量小,軟件層次結(jié)構(gòu)清晰明了,易于擴(kuò)充及移植。
本文作者創(chuàng)新點(diǎn):作者利用DSP和網(wǎng)絡(luò)控制器,設(shè)計實(shí)現(xiàn)嵌入式網(wǎng)絡(luò)應(yīng)用平臺,給出程序框圖,可為嵌入式應(yīng)用提供參考。應(yīng)用整個設(shè)計軟件代碼量小,軟件層次結(jié)構(gòu)清晰,易于擴(kuò)展及移植。
參考文獻(xiàn):
[1] 馬增強(qiáng), 燕延, 尹士閃. 基于DSP和以太網(wǎng)的鐵路道口監(jiān)測系統(tǒng). 微計算機(jī)信息[J], 2005, 7-2: 140-141
[2] 葉克松, 馮濤, 武自芳. 基于DSP芯片外圍接口技術(shù)應(yīng)用. 微計算機(jī)信息[J], 2004, 5: 55-56
[3] 李宏濤, 李臘元. 寬帶IP城域網(wǎng)的設(shè)計與實(shí)現(xiàn). 武漢理工大學(xué)學(xué)報(交通科學(xué)與工程版)[J] , 2003, 27 (2) : 182-186
[4] 吳曉蓉, 涂時亮. 互連網(wǎng)技術(shù)在嵌入式系統(tǒng)中的實(shí)現(xiàn). 計算機(jī)工程[J], 2001, 27 (4) : 1-2
作者簡介:
劉曉杰 (1978-),男 (漢族),云南個舊人,吉林大學(xué)博士生,通信與信息系統(tǒng)專業(yè),主要從事數(shù)字信號處理和路由算法研究;
趙曉暉 (1957-),男 (滿族),吉林大學(xué)教授,博士生導(dǎo)師,通信與信息系統(tǒng)專業(yè),主要從事信號處理理論及其在通信中的應(yīng)用;通訊作者:
顧海軍 (1970- ),男 (漢族),吉林大學(xué)副教授,碩士生導(dǎo)師,通信與信息系統(tǒng)專業(yè),主要從事數(shù)字信號處理及其嵌入式應(yīng)用