TM1300 DSP系統以太網接口的設計
5 CS8900A網絡接口驅動程序設計
本文引用地址:http://www.104case.com/article/266272.htmpSOS+是WindRiver公司專門為嵌入式系統設計和開發提供的一個模塊化、高性能的實時操作系統。它采用模塊化結構,包含的一系列軟件功能模塊有:實時多任務內核pSOS+、多處理器多任務內核pSOS+m、TCP/IP協議棧pNA+、遠程調用函數庫pRPC+和文件系統pHILE+等。
基于pSOS+實時操作系統的網絡接口框圖如圖3所示。

下面根據網絡結構的分層依次進行分析。
(1)物理層
以太網接口的物理實現前面已經分析過。
(2)NI(網絡接口)層
pNA+通過一個用戶提供的稱為網絡接口(NI)的軟件訪問網絡。一方面它直接驅動網絡接口芯片,控制太網數據幀的收發;另一方面它向pNA+提供符合pNA+要求的函數接口。在pNA+和NI之間的函數接口是標準的,和網絡的物理媒介以及網絡拓撲無關。這些函數可以使得pNA+不需要知道網絡接口底層的細節,可以理解它是pSOS+中的硬件抽象層(HAL)。這些函數如表1所列。
表1 各函數的功能

這些函數的實現是網絡驅動程序設計的主要任務,它們的代碼在cs8900a.c中。這些函數一方面驅動網卡收發,另一方面為pNA+提供了一套屏蔽硬件底層細節的函數實現。另外,NI還包括一個用于處理數據包中斷的中斷例程。
每一個NI都應該分配一個唯一的IP地址,可以在pSOS+配置文件sys_conf.h中設定IP地址、網關、掩碼等網絡接口參數。如:
#define SD_LAN1 YES
#define SD_LAN1_IP 0xca726878 /*202.114.104.120設定IP地址*/
#define SD_LAN1_SUBNET_MASK 0xffffff00
/*設定掩碼*/
#define SD_DEF_GTWY_IP 0xca726821 /*202.114.104.33設定網關*/
另外,還要給這個CS8900A網卡設定一個MAC物理地址。這個地址可以在配置文件mybsp.h中設定為不與網上其它網卡沖突的任意值,如:
#define BSP_CS8900_IND_ADDR "00:24:20:10:FF:41"
(3)網絡層及傳輸層pSOS+的pNA+模塊集成了網絡層和傳輸層。PNA+在整個網絡體系結構中處在第3層,包含IP協議、ARP協議的實理,ICMP協議、IGMP協議的實現;提供了對用戶數據報UDP和流式TCP兩種傳輸協議的支持,還提供了符合BSD標準的Socket接口,為應用的實現提供了方便的編程環境。
(4)應用層在應用層實現用戶的網絡應用。
網絡接口的調試是在PC機上PING這個CS8900A的網絡接口。如果PING通,表明整個NI層和pNA+已經正常工作了。這個過程中,可以采用tmdbg.exe調試環境支持的DP()來測試一些結果,克服了TM1300系統沒有顯示支持的不足。
6 小結
本系統在實驗室局域網環境下,采用雙絞線連接,實現了TM1300與CS8900A的以太網接口的設計,實驗結果可以成功PING通。基于Socket的簡單的C/S結構的網絡測試程序也正常工作,在網絡低負荷時,可以用于音視頻多媒體數據網上傳輸,具有一定的使用價值。
tcp/ip相關文章:tcp/ip是什么
評論