摘要:介紹了一種基于AX88796B的網絡接口設計。詳細介紹了該網絡芯片的硬件結構和功能特性。創新完成了AX88796B與DSP處理器TMS320C 6722連接的硬件設計和軟件驅動設計。涉及的關鍵技術主要有AX88796B的本地總線連接、物理層網絡驅動的設計、網絡報文的發送、網絡報文的接收,以及協議層軟件的開發。系統完成后與其他網絡設備連接,經測試,網絡通信穩定可靠,在100 Mb/s的速度,負荷超過90%的情況下,沒有丟包和錯包出現,可以滿足大數據量、高速通信的要求。
關鍵詞:AX88796B;TMS320C6722;網絡驅動;報文
0 引言
在網絡技術應用日益普及的今天,許多數字設備需要網絡接口來進行網絡通信。本設計是以TI公司的TMS320C6722為核心的信息處理系統,為滿足大量數據的實時網絡交換,用ASIX公司的AX88796B擴展了網絡接口。在此主要論述了該網絡接口的設計與實現。
1 前言
美國TI公司的TMS320C6722是一款主要面向嵌入式應用的高性能32位DSP,它數據運算處理能力可達2 000 MIPS和1 500 FLOPS,具有豐富的片上資源,目前已經被廣泛應用在各種數字應用中。AX88796B是由臺灣ASIX公司推出的一款與NE2000兼容的快速以太網控制器,其內部集成10/100M自適應的介質訪問層MAC和物理層收發器PHY以及8K×16b的SRAM,SK支持8位、16位的通用CPU總線類型,執行基于IEEE802.3/IE-EE80.3u局域網標準的以太網控制功能,并且提供發送隊列功能來增強標準NE2000的發送性能。該控制器采用64LQFP封裝,僅占用9 mm×9mm的印制板面積,分析其性能可以滿足系統需要。
2 系統硬件設計
(1)AX88796B的硬件結構。AX88796B芯片內部集成了8/16位CPU接口、串行E2PROM接口、8 K×16 b的SRAM、包緩存管理、MAC、PHY、以及電源和時鐘等部件。DSP通過讀寫NE2000寄存器來控制AX88796B的工作狀態,通過DMA方式與AX88796B的內部緩存SRAM進行數據交換。芯片自動在SRAM與MAC核之間進行數據發送接收,再經由內部的PHY層發送至RJ45接口。串行 E2PROM接口可以用來連接串行EEPROM,用于存儲MAC地址,供AX88796B每次初始化時讀取。AX88796B芯片的內部結構如圖1所示。
(2)系統硬件連接。主控制單元TMS320C6722B與網絡芯片AX88796B的連接方式如圖2所示。TMS320C6722B內部為32 b的總線結構,對外擴展EMIF為16 b的寬度,采用異步總線方式可以直接與網絡芯片無縫連接。片選的連接,用EM_CS2連接到網絡的CS,使AX88796B工作在186_l-ike模式,在配置引腳EECK接上拉電阻。本設計沒有連接EEPROM,所有對AX88796B的配置均由TMS320C6722B在初始化時寫入。
3 系統的軟件設計
AX88796B的網絡驅動程序是TMS320C6722和AX88796B硬件的接口,因此編寫網絡驅動程序模塊應滿足的主要功能有:AX88796B的初始化、報文的接收、報文的發送;
(1)初始化。在AX88796B的初始化過程中除了完成對相關寄存器的定義與賦值外,還要完成對接收緩沖環的構造。對TMS320C6722B,要完成對應EMIF的設置和中斷的初始化。與網卡有關的初始化如下:
(2)報文的接收。判斷AX88796B是否接收到新的數據包有2種方式:輪循和中斷。單片機用輪循方式較多。由于TMS320C6722在此還要進行其他處理,為了提高DSP性能和實時性要求,這里采用中斷方式。當網卡接收到新數據包時進入中斷,首先判斷cpr是否等于bnry,若相等,則表示接收緩沖區已被存滿,則停止接收數據包,而不會覆蓋舊的數據;若不等,則將接收緩沖區中待讀取的數據包的起始地址寫入rsar[0,1]寄存器,數據包的開始4字節寫入rbcr[O,1]寄存器,并啟動遠端DMA讀命令,通過讀取4個信息字節得到待讀取數據包的長度、接收狀態和下一個將被讀的頁的指針信息。然后通過遠端DMA讀命令,將數據包從網卡sram中讀入TMS320C6722內存中,并更新讀頁指針寄存器bnr-y,DSP每從網卡內存中讀走一頁數據,bnry便加一,這需要通過程序實現。網卡通過cpr將接收到的數據包寫入接收緩沖區,每寫完一頁,cpr將自動加一,當加到最后的空頁(這里是 pstop=0x80)時,cpr將自動恢復為接收緩沖區的首頁(pstart=Ox4c)。網卡接收關鍵性代碼如下:
(3)報文的發送。報文的發送過程就是調用寫網卡函數,將報文發送到網卡的內存中去。然后將AX88796B的控制寄存器(CR)的發送位 TXP(transmit packet)位置1,即將報文發送。dsp通過遠端dma通道將網卡發送緩沖區的起始地址和要發送的字節數分別寫入rsar[O,1]和 rbcr[0,1],然后啟動遠端dma寫命令即可將數據包寫入網卡內存,此后將字節數寫入tber[O,1]寄存器,啟動發送命令就可將數據包發送到網絡上。網卡發送的關鍵代碼如下:
4 結語
在如上所述的底層硬件和軟件設計基礎上,完成了UDP和TCP/IP協議棧的軟件,系統主要使用這2個協議進行網絡數據傳輸。長期的系統在線驗證證明,在TMS320C6722上擴展的網絡接口AX88796B,傳輸可靠,性能穩定,在100 Mb/s的速度,負荷超過90%的情況下,沒有丟包和錯包出現。可見,對這種只有異步總線,又需要網絡大數據量傳輸的應用,該設計是可行的。