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

          新聞中心

          EEPW首頁 > 嵌入式系統(tǒng) > 設(shè)計應(yīng)用 > 基于AT91RM9200的以太網(wǎng)接口模塊設(shè)計

          基于AT91RM9200的以太網(wǎng)接口模塊設(shè)計

          作者: 時間:2009-06-16 來源:網(wǎng)絡(luò) 收藏

          讀RAM見RTLReadRam函數(shù),代碼如下:

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


          這個函數(shù)表示從address開始讀取size個字節(jié)的內(nèi)容到buff指向的內(nèi)存中。設(shè)置CR寄存器指令為:writereg(cr,(0x00 | er_remote_read | cr_start_com-mand));然后從Remote DMA Port讀取size次,就得到所需的數(shù)據(jù)。
          寫RAM函數(shù),操作基本上和讀RAM函數(shù)差不多,只要將最后一步的讀size次改成寫size次就可以。
          4.3 發(fā)送數(shù)據(jù)包
          發(fā)送數(shù)據(jù)包的基本步驟如下:
          (1)首先將發(fā)送的起始頁,一般是發(fā)送緩沖區(qū)內(nèi)的頁(Ox40~Ox4b),寫入StartPage變量中。將要發(fā)送的數(shù)據(jù)寫入地址為StartPage8開始的緩沖區(qū)中,然后等待上一次發(fā)送結(jié)束。對于過大或者過小的數(shù)據(jù)包,不發(fā)送;對于過小的幀,在發(fā)送時要填充。
          TPSR為發(fā)送起始寄存器,將StartPage寫入TPSR寄存器,高字節(jié)寫入TBCRH(TBCRl),低字節(jié)寫入TBCRL(TBCRO)。當(dāng)寫發(fā)送命令時,RTL8019AS將從TPSR8地址開始發(fā)送size個字節(jié)的數(shù)據(jù)。
          (2)發(fā)送數(shù)據(jù)幀:發(fā)送緩沖區(qū)可以存儲2個最大的幀,一個起始頁為SEND_START_PAGEO,另一個起始頁SEND_START_PAGEl,兩個交替使用。發(fā)送數(shù)據(jù)幀時,CR寄存器設(shè)置為:writereg(cr,((prepageOxCO)|cr_abort_compile_dma|cr_txp |cr_start_command]));發(fā)送數(shù)據(jù)包函數(shù)代碼如下:


          4.4 接收數(shù)據(jù)包
          接收數(shù)據(jù)包的步驟如下:
          (1)接收緩沖操作。當(dāng)RTL8019AS接收到一個數(shù)據(jù)包后,自動將接收的數(shù)據(jù)包放到CURR頁。如果一頁放不下,則CURR加1;如果CURR=接收結(jié)束頁,則CURR自動變成接收開始頁,繼續(xù)寫入接收的數(shù)據(jù)。
          (2)用戶讀取接收數(shù)據(jù)包。RTL8019AS通過Local DMA把接收的數(shù)據(jù)寫入接收緩沖區(qū),并自動改變CURR和識別緩沖區(qū)的界限,這些都不需要用戶干預(yù)。
          當(dāng)一個無錯的數(shù)據(jù)接收完畢,則觸發(fā)中斷處理函數(shù)。然后讀取數(shù)據(jù)包到分配的內(nèi)存,可以從接收字節(jié)計數(shù)器中得知讀取數(shù)據(jù)。這里要處理一種情況:如果接收的數(shù)據(jù)包存儲不是連續(xù)的,在這種情況下要分2次才能讀取1個完整的數(shù)據(jù)包,判斷是否存儲不連續(xù)的條件是:
          bnry>Head[1]&&Head[1]!=RECEIVE_START_PAGE
          其中:bnry是這個包的起始頁;Head[1]是下一個包的起始頁。
          接收數(shù)據(jù)包函數(shù)與發(fā)送數(shù)據(jù)包函數(shù)相似,只需要修改相應(yīng)寄存器配置即可。然后將接收的數(shù)據(jù)寫入網(wǎng)絡(luò)層的輸入隊列,如果寫入失敗則釋放內(nèi)存。寫入后上層協(xié)議將提取這個數(shù)據(jù)包。最后網(wǎng)卡通過中斷控制器向ARM響應(yīng)中斷,中斷完畢清除中斷標(biāo)志。


          5 結(jié) 語
          ARM微處理器正以其極好的性價比和極低的功耗,與其他體系結(jié)構(gòu)的微處理器進(jìn)行激烈的競爭,其應(yīng)用將進(jìn)一步深入到各行各業(yè)。可以預(yù)測,在將來的一段時期內(nèi),ARM微處理器將成為32位微處理器市場的統(tǒng)治者。了解、學(xué)習(xí)、掌握和應(yīng)用ARM微處理器技術(shù)很有必要,也非常重要。在ARM系統(tǒng)采用高性能的控制器,系統(tǒng)通信和調(diào)試快速、可靠,具有很高的實時性。該構(gòu)造一個的嵌入式系統(tǒng)的應(yīng)用,該的主要任務(wù)是完成與外界的信息交互,以達(dá)到網(wǎng)絡(luò)監(jiān)控的目的。在實際應(yīng)用中,它運行穩(wěn)定,能夠十分方便地實現(xiàn)網(wǎng)絡(luò)互連。該系統(tǒng)已在視頻監(jiān)控光端機上得到成功應(yīng)用,傳輸速度相當(dāng)于PC機的10兆網(wǎng)口。


          上一頁 1 2 3 下一頁

          評論


          相關(guān)推薦

          技術(shù)專區(qū)

          關(guān)閉
          看屁屁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); })();