摘 要:本文以數字信號處理器和網絡控制器為核心,設計了嵌入式DSP系統接入以太網硬件平臺,并簡化網絡層次體系結構,完成相應的網絡應用軟件的設計,實現了嵌入式系統通過以太網與計算機進行通信功能。
關鍵詞:嵌入式系統; 網絡接口; 數字信號處理器
1、引言
結合DSP技術與計算機網絡技術,將網絡技術融入以數字信號處理器為核心的嵌入式系統中,利于各種設備共享互聯網絡中龐大的信息資源,使其嵌入式設備在性價比與實時性方面有著通用計算機無法比擬的優越性,因此嵌入式DSP技術越來越廣泛地被應用于網絡產品開發中。由于嵌入式網絡開發的應用前景非常廣闊,現在已經成為研究的熱點。
本文利用數字信號處理器DSP和以太網控制器構建嵌入式智能接入以太網,完成了以DSP為核心的以太網嵌入式系統的硬件平臺,并在此硬件平臺上實現嵌入式TCP/IP協議,完成DSP嵌入式系統通過以太網絡與通用計算機的通信交換數據功能。
2、對以太網控制器分析
以太網控制器主要是實現以太網媒介訪問層MAC(Media Access Control)和物理層的功能,包括MAC數據幀收發、地址識別、循環冗余檢驗CRC(Cyclic Redundancy Check)編碼與校驗、曼徹斯特編碼、超時重傳、鏈路完整性測試、信號極性監測與糾正等。而主處理器只需要通過網絡控制器的外部總線來讀取其接收或發送的幀數據。以太網絡控制器RTL8019AS內部原理框圖,如圖1所示。
[align=center]

圖1 網絡控制器RTL8019AS內部原理框圖[/align]
接收邏輯在接收時鐘控制下將串行數據并成字節送到FIFO(First-In First-Out)和CRC;發送邏輯將FIFO送來的字節在發送時鐘控制下逐步按位移出,并送到CRC;CRC邏輯在接收時對輸入數據進行CRC校驗,將結果與幀尾的CRC比較,如不同,該數據幀將被拒收,在發送時CRC對幀數據產生CRC并附加在數據尾傳送;地址識別邏輯對接收幀的目的地址與設置的本地物理地址進行比較,如不同且不是廣播地址,則該數據幀被拒收;FIFO邏輯對收發數據做16個字節緩沖,以減少對近端DMA(Local Direct Memory Access)請求的頻率。
以太網控制器DMA操作原理框圖,如圖2所示。對于主處理器來說,可以把網絡控制器看作是一個向以太網收發數據的從設備。按服務對象的不同,可將網絡控制器內部分為遠端DMA(Remote Direct Memory Access)通道和近端DMA(Local Direct Memory Access)通道兩個部分。遠端DMA主要負責以太網控制器內部RAM與主處理器之間數據交換:即主處理器通過對遠端DMA讀寫操作,來完成對網絡控制器的數據收發控制操作。近端DMA主要負責自動完成以太網控制器與網絡上的數據交換:即接收數據時,網絡控制器將接收到的數據存到內部的接收緩沖區,收滿一幀后,以中斷或寄存器標志的方式通知處理器;發送數據時,當收到傳送命令后,網絡控制器自動將發送緩沖區的數據按標準幀格式送出去。
[align=center]

圖2 以太網控制器DMA操作原理框圖[/align]
3、網絡接口硬件電路的設計
DSP與網絡控制器RTL8019AS硬件接口電路圖,如圖3所示。網絡控制器RTL8019AS的工作電壓標稱為5V供電,但是經過實際測試驗證RTL8019AS芯片能在3.3V供電情況正常使用,而DSP芯片TMS320VC5409的工作電壓也為3.3V,因此網絡控制器的輸入/輸出可與TMS320VC5409直接接口。
[align=center]

圖3 DSP與網絡控制芯片RTL8019AS硬件接口電路圖[/align]
RTL8019AS在復位的上升沿鎖定IOCS16腳的電平,高電平時為16位總線方式,低電平時為8位總線方式。如連接到8位主設備上,可以選擇47kΩ的下拉電阻,SD[8:15]空懸;如連接到16位主設備上,可以選擇510Ω的上拉電阻即可。由于RTL8019AS沒有外接初始化的EPROM,故復位時命令寄存器(CR)的I/O地址的值為缺省值0300H,所以為滿足RTL8019AS的時序要求,A5~A19地址連接必須使網絡控制器的地址鎖定在0300H,否則主控制器就無法訪問到網絡控制器RTL8019AS的寄存器。
在本設計中,采用了16位數據總線方式對網絡控制器操作,把網絡控制器的地址映射到DSP的I/O空間,以I/O方式來訪問網絡控制器寄存器,所以這就需要將網絡控制器地址線SA[0:4]與DSP芯片地址線A[0:4]地址線相接,網絡控制器地址端SA[8:9]接高電平,地址端SA[10:19]接低電平。將網絡控制器RTL8019AS的其余的控制信號引腳直接接到CPLD上,DSP對網絡控制器的邏輯控制則通過對CPLD編程來實現。
網絡控制器的網絡連接指示(LEDBNC)、網絡沖突指示(LED)、接收指示(LED1)、發送指示(LED2)引腳接發光二極管來指示網絡控制器工作狀態。由于在芯片RTL8019AS中的輸入引腳內部被100K的電阻下拉接地,所以芯片中任何懸空的引腳狀態都是低電平狀態。
4、網絡軟件的設計
4.1、軟件實現結構網絡協議層次劃分
系統參照ISO標準的7層OSI 模型,根據實際應用要求,可采用縮減的網絡軟件體系結構,如圖4所示,可把網絡體系結構劃分為三層:網絡數據訪問驅動控制層、操作系統控制層和用戶應用數據層。網絡數據訪問驅動控制層規定了網絡拓撲形式及數據通信信號的電氣特性,實現點到點的通信規程,并完全執行IEEE802.3的CSMA/CD協議;操作系統控制層集成了TCP/IP協議族組件,完成把從數據鏈路層獲得的數據解析成用戶應用程序所需的數據;用戶應用數據層則是對數據進行處理分析工作。
[align=center]

圖4 網絡軟件體系結構[/align]
4.2、數據幀結構分析
網絡控制芯片執行IEEE802.3協議的幀結構,如圖5所示。
[align=center]

圖5 IEEE802.3協議幀結構[/align]
62位前導位PR碼與2位幀起始位SD碼由網絡控制芯片硬件自動生成物理層同步信號。48位目的IP的物理地址DA碼指示著該數據幀所要到達的目的物理地址,48位源IP地址SA碼攜帶著發送該數據幀的源物理地址。16位的TYPE/LEN碼代表該數據幀類型或數據幀長度。DATA數據段,是該類型包的有效數據,PAD可填充段是用來保證該數據幀的最小包長度滿足不小于60字節的IEEE802.3幀數據結構要求。32位的硬件產生自動數據校驗FCS段,是對所傳輸數據幀進行累加奇偶和的校驗,以保證傳輸數據的正確性。
在這里需要注意的是網絡控制器RTL8019AS在接收到數據包的幀結構,如圖6所示。對比IEEE802.3幀結構可以看出,網絡控制器RTL8019AS在接收數據,為使網絡驅動程序編寫方便而添加了芯片報頭,包括接收狀態RS(Receive State)指示數據接收的狀態,下一頁指針NP(Next Page)指示下一操作頁面地址,接收數據幀長度FL(Frame Length)指示此接收到的數據幀總字節數,這三段內容的添加,使得軟硬件能更好地互相配合協同工作。
[align=center]

圖6 網絡控制器RTL8019AS接收數據幀結構[/align]
4.3、數據幀的接收與發送程序設計
本系統所要實現的功能是把嵌入式系統的語音進行編碼壓縮后得到的數據格式轉換成以太網幀格式,通過以太網傳輸給計算機,并把從以太網上接收到的幀數據解包,轉換成所需的語音數據格式解碼還原成語音輸出。根據我們簡化的網絡軟件體系結構來進行層次設計軟件,其中最關鍵的是與操作系統接口的網絡控制驅動程序設計,它包括對數據的發送操作和接收操作,其流程如圖7和圖8所示。
[align=center]

圖7 數據幀的發送程序流程[/align]
[align=center]

圖8 數據幀的接收程序流程[/align]
5、結論語
作者針對基于DSP的嵌入式以太網系統進行研究,根據對系統需求的分析,設計并實現嵌入式網絡硬件平臺,并在嵌入式DSP系統網絡硬件平臺上完成了TCP/IP協議的軟件開發,使嵌入式系統通過以太網與計算機進行數據交換通信,最終實現嵌入式系統網絡功能。其中利用簡化網絡軟件體系結構來設計軟件系統,使整個軟件代碼量小,軟件層次結構清晰明了,易于擴充及移植。
本文作者創新點:作者利用DSP和網絡控制器,設計實現嵌入式網絡應用平臺,給出程序框圖,可為嵌入式應用提供參考。應用整個設計軟件代碼量小,軟件層次結構清晰,易于擴展及移植。
參考文獻:
[1] 馬增強, 燕延, 尹士閃. 基于DSP和以太網的鐵路道口監測系統. 微計算機信息[J], 2005, 7-2: 140-141
[2] 葉克松, 馮濤, 武自芳. 基于DSP芯片外圍接口技術應用. 微計算機信息[J], 2004, 5: 55-56
[3] 李宏濤, 李臘元. 寬帶IP城域網的設計與實現. 武漢理工大學學報(交通科學與工程版)[J] , 2003, 27 (2) : 182-186
[4] 吳曉蓉, 涂時亮. 互連網技術在嵌入式系統中的實現. 計算機工程[J], 2001, 27 (4) : 1-2
作者簡介:
劉曉杰 (1978-),男 (漢族),云南個舊人,吉林大學博士生,通信與信息系統專業,主要從事數字信號處理和路由算法研究;
趙曉暉 (1957-),男 (滿族),吉林大學教授,博士生導師,通信與信息系統專業,主要從事信號處理理論及其在通信中的應用;通訊作者:
顧海軍 (1970- ),男 (漢族),吉林大學副教授,碩士生導師,通信與信息系統專業,主要從事數字信號處理及其嵌入式應用