歡迎來到溫州瑞川電子有限公司!

關(guān)于我們

新聞中心

當(dāng)前位置: 首頁 > 新聞中心 > 公司新聞

基于AX88796B的網(wǎng)絡(luò)接口設(shè)計(jì)與實(shí)現(xiàn)

2022-01-08 09:55:08

網(wǎng)絡(luò)接口設(shè)計(jì);網(wǎng)絡(luò)接口設(shè)計(jì)公司


摘要:介紹了一種基于AX88796B的網(wǎng)絡(luò)接口設(shè)計(jì)。詳細(xì)介紹了該網(wǎng)絡(luò)芯片的硬件結(jié)構(gòu)和功能特性。創(chuàng)新完成了AX88796B與DSP處理器TMS320C 6722連接的硬件設(shè)計(jì)和軟件驅(qū)動(dòng)設(shè)計(jì)。涉及的關(guān)鍵技術(shù)主要有AX88796B的本地總線連接、物理層網(wǎng)絡(luò)驅(qū)動(dòng)的設(shè)計(jì)、網(wǎng)絡(luò)報(bào)文的發(fā)送、網(wǎng)絡(luò)報(bào)文的接收,以及協(xié)議層軟件的開發(fā)。系統(tǒng)完成后與其他網(wǎng)絡(luò)設(shè)備連接,經(jīng)測試,網(wǎng)絡(luò)通信穩(wěn)定可靠,在100 Mb/s的速度,負(fù)荷超過90%的情況下,沒有丟包和錯(cuò)包出現(xiàn),可以滿足大數(shù)據(jù)量、高速通信的要求。

關(guān)鍵詞:AX88796B;TMS320C6722;網(wǎng)絡(luò)驅(qū)動(dòng);報(bào)文


0 引言

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


1 前言

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


2 系統(tǒng)硬件設(shè)計(jì)

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


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


3 系統(tǒng)的軟件設(shè)計(jì)

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

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

  

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

 

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

  

4 結(jié)語

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

近期瀏覽: