《電子技術應用》
您所在的位置:首頁 > 模擬設計 > 設計應用 > 基于AX88796B的網(wǎng)絡接口設計與實現(xiàn)
基于AX88796B的網(wǎng)絡接口設計與實現(xiàn)
摘要: 在網(wǎng)絡技術應用日益普及的今天,,許多數(shù)字設備需要網(wǎng)絡接口來進行網(wǎng)絡通信,。本設計是以TI公司的TMS320C6722為核心的信息處理系統(tǒng),,為滿足大量數(shù)據(jù)的實時網(wǎng)絡交換,,用ASIX公司的AX88796B擴展了網(wǎng)絡接口,。在此主要論述了該網(wǎng)絡接口的設計與實現(xiàn),。
Abstract:
Key words :

        0 引言

  在網(wǎng)絡技術應用日益普及的今天,,許多數(shù)字設備需要網(wǎng)絡接口來進行網(wǎng)絡通信,。本設計是以TI公司的TMS320C6722為核心的信息處理系統(tǒng),為滿足大量數(shù)據(jù)的實時網(wǎng)絡交換,,用ASIX公司的AX88796B擴展了網(wǎng)絡接口,。在此主要論述了該網(wǎng)絡接口的設計與實現(xiàn)。

  1 前言

  美國TI公司的TMS320C6722是一款主要面向嵌入式應用的高性能32位DSP,,它數(shù)據(jù)運算處理能力可達2 000 MIPS和1 500 FLOPS,,具有豐富的片上資源,目前已經(jīng)被廣泛應用在各種數(shù)字應用中,。AX88796B是由臺灣ASIX公司推出的一款與NE2000兼容的快速以太網(wǎng)控制器,,其內(nèi)部集成10/100M自適應的介質(zhì)訪問層MAC和物理層收發(fā)器PHY以及8K×16b的SRAM,SK支持8位,、16位的通用CPU總線類型,,執(zhí)行基于IEEE802.3/IE-EE80.3u局域網(wǎng)標準的以太網(wǎng)控制功能,并且提供發(fā)送隊列功能來增強標準NE2000的發(fā)送性能,。該控制器采用64LQFP封裝,,僅占用9 mm×9mm的印制板面積,分析其性能可以滿足系統(tǒng)需要,。

  2 系統(tǒng)硬件設計

  (1)AX88796B的硬件結(jié)構,。AX88796B芯片內(nèi)部集成了8/16位CPU接口、串行E2PROM接口,、8 K×16 b的SRAM,、包緩存管理、MAC,、PHY,、以及電源和時鐘等部件。DSP通過讀寫NE2000寄存器來控制AX88796B的工作狀態(tài),通過DMA方式與AX88796B的內(nèi)部緩存SRAM進行數(shù)據(jù)交換,。芯片自動在SRAM與MAC核之間進行數(shù)據(jù)發(fā)送接收,,再經(jīng)由內(nèi)部的PHY層發(fā)送至RJ45接口。串行 E2PROM接口可以用來連接串行EEPROM,,用于存儲MAC地址,,供AX88796B每次初始化時讀取。AX88796B芯片的內(nèi)部結(jié)構如圖1所示,。

AX88796B芯片的內(nèi)部結(jié)構

  (2)系統(tǒng)硬件連接,。主控制單元TMS320C6722B與網(wǎng)絡芯片AX88796B的連接方式如圖2所示。TMS320C6722B內(nèi)部為32 b的總線結(jié)構,,對外擴展EMIF為16 b的寬度,,采用異步總線方式可以直接與網(wǎng)絡芯片無縫連接。片選的連接,,用EM_CS2連接到網(wǎng)絡的CS,,使AX88796B工作在186_l-ike模式,在配置引腳EECK接上拉電阻,。本設計沒有連接EEPROM,所有對AX88796B的配置均由TMS320C6722B在初始化時寫入,。

主控制單元TMS320C6722B與網(wǎng)絡芯片AX88796B的連接方式

  3 系統(tǒng)的軟件設計

  AX88796B的網(wǎng)絡驅(qū)動程序是TMS320C6722和AX88796B硬件的接口,,因此編寫網(wǎng)絡驅(qū)動程序模塊應滿足的主要功能有:AX88796B的初始化、報文的接收,、報文的發(fā)送,;

  (1)初始化。在AX88796B的初始化過程中除了完成對相關寄存器的定義與賦值外,,還要完成對接收緩沖環(huán)的構造,。對TMS320C6722B,要完成對應EMIF的設置和中斷的初始化,。與網(wǎng)卡有關的初始化如下:

與網(wǎng)卡有關的初始化

  (2)報文的接收,。判斷AX88796B是否接收到新的數(shù)據(jù)包有2種方式:輪循和中斷。單片機用輪循方式較多,。由于TMS320C6722在此還要進行其他處理,,為了提高DSP性能和實時性要求,這里采用中斷方式,。當網(wǎng)卡接收到新數(shù)據(jù)包時進入中斷,,首先判斷cpr是否等于bnry,若相等,,則表示接收緩沖區(qū)已被存滿,,則停止接收數(shù)據(jù)包,而不會覆蓋舊的數(shù)據(jù);若不等,,則將接收緩沖區(qū)中待讀取的數(shù)據(jù)包的起始地址寫入rsar[0,,1]寄存器,數(shù)據(jù)包的開始4字節(jié)寫入rbcr[O,,1]寄存器,,并啟動遠端DMA讀命令,通過讀取4個信息字節(jié)得到待讀取數(shù)據(jù)包的長度,、接收狀態(tài)和下一個將被讀的頁的指針信息,。然后通過遠端DMA讀命令,將數(shù)據(jù)包從網(wǎng)卡sram中讀入TMS320C6722內(nèi)存中,,并更新讀頁指針寄存器bnr-y,,DSP每從網(wǎng)卡內(nèi)存中讀走一頁數(shù)據(jù),bnry便加一,,這需要通過程序?qū)崿F(xiàn),。網(wǎng)卡通過cpr將接收到的數(shù)據(jù)包寫入接收緩沖區(qū),每寫完一頁,,cpr將自動加一,,當加到最后的空頁(這里是 pstop="0x80")時,cpr將自動恢復為接收緩沖區(qū)的首頁(pstart=Ox4c),。網(wǎng)卡接收關鍵性代碼如下:

 

      網(wǎng)卡接收關鍵性代碼

     (3)報文的發(fā)送,。報文的發(fā)送過程就是調(diào)用寫網(wǎng)卡函數(shù),將報文發(fā)送到網(wǎng)卡的內(nèi)存中去,。然后將AX88796B的控制寄存器(CR)的發(fā)送位 TXP(transmit packet)位置1,,即將報文發(fā)送。DSP通過遠端dma通道將網(wǎng)卡發(fā)送緩沖區(qū)的起始地址和要發(fā)送的字節(jié)數(shù)分別寫入rsar[O,,1]和 rbcr[0,,1],然后啟動遠端dma寫命令即可將數(shù)據(jù)包寫入網(wǎng)卡內(nèi)存,,此后將字節(jié)數(shù)寫入tber[O,,1]寄存器,啟動發(fā)送命令就可將數(shù)據(jù)包發(fā)送到網(wǎng)絡上,。網(wǎng)卡發(fā)送的關鍵代碼如下:

網(wǎng)卡發(fā)送的關鍵代碼

網(wǎng)卡發(fā)送的關鍵代碼

  4 結(jié)語

  在如上所述的底層硬件和軟件設計基礎上,,完成了UDP和TCP/IP協(xié)議棧的軟件,系統(tǒng)主要使用這2個協(xié)議進行網(wǎng)絡數(shù)據(jù)傳輸,。長期的系統(tǒng)在線驗證證明,,在 TMS320C6722上擴展的網(wǎng)絡接口AX88796B,傳輸可靠,,性能穩(wěn)定,,在100 Mb/s的速度,,負荷超過90%的情況下,沒有丟包和錯包出現(xiàn),??梢姡瑢@種只有異步總線,,又需要網(wǎng)絡大數(shù)據(jù)量傳輸?shù)膽?,該設計是可行的。
 

此內(nèi)容為AET網(wǎng)站原創(chuàng),,未經(jīng)授權禁止轉(zhuǎn)載,。