<meter id="pryje"><nav id="pryje"><delect id="pryje"></delect></nav></meter>
          <label id="pryje"></label>

          關 閉

          新聞中心

          EEPW首頁 > 工控自動化 > 設計應用 > 基于AX88796B的網(wǎng)絡接口設計與實現(xiàn)

          基于AX88796B的網(wǎng)絡接口設計與實現(xiàn)

          作者: 時間:2011-01-05 來源:網(wǎng)絡 收藏


          (2)報文的接收。判斷是否接收到新的數(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內存中,并更新讀頁指針寄存器bnr-y,DSP每從網(wǎng)卡內存中讀走一頁數(shù)據(jù),bnry便加一,這需要通過程序實現(xiàn)。網(wǎng)卡通過cpr將接收到的數(shù)據(jù)包寫入接收緩沖區(qū),每寫完一頁,cpr將自動加一,當加到最后的空頁(這里是 pstop=0x80)時,cpr將自動恢復為接收緩沖區(qū)的首頁(pstart=Ox4c)。網(wǎng)卡接收關鍵性代碼如下:
          e.JPG

          (3)報文的發(fā)送。報文的發(fā)送過程就是調用寫網(wǎng)卡函數(shù),將報文發(fā)送到網(wǎng)卡的內存中去。然后將的控制寄存器(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)卡內存,此后將字節(jié)數(shù)寫入tber[O,1]寄存器,啟動發(fā)送命令就可將數(shù)據(jù)包發(fā)送到上。網(wǎng)卡發(fā)送的關鍵代碼如下:

          本文引用地址:http://www.ex-cimer.com/article/202487.htm


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


          上一頁 1 2 3 下一頁

          關鍵詞: 88796B AX 網(wǎng)絡

          評論


          相關推薦

          技術專區(qū)

          關閉
          看屁屁www成人影院,亚洲人妻成人图片,亚洲精品成人午夜在线,日韩在线 欧美成人 (function(){ var bp = document.createElement('script'); var curProtocol = window.location.protocol.split(':')[0]; if (curProtocol === 'https') { bp.src = 'https://zz.bdstatic.com/linksubmit/push.js'; } else { bp.src = 'http://push.zhanzhang.baidu.com/push.js'; } var s = document.getElementsByTagName("script")[0]; s.parentNode.insertBefore(bp, s); })();