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

          新聞中心

          EEPW首頁(yè) > 嵌入式系統(tǒng) > 設(shè)計(jì)應(yīng)用 > 嵌入式MICREL網(wǎng)卡驅(qū)動(dòng)設(shè)計(jì)

          嵌入式MICREL網(wǎng)卡驅(qū)動(dòng)設(shè)計(jì)

          作者: 時(shí)間:2011-08-11 來(lái)源:網(wǎng)絡(luò) 收藏


          在網(wǎng)卡發(fā)送模式正確初始化后,即可進(jìn)行數(shù)據(jù)發(fā)送操作。首先用戶層發(fā)出發(fā)送數(shù)據(jù)的請(qǐng)求,然后該請(qǐng)求通過(guò)HEROS系統(tǒng)協(xié)議棧發(fā)給層,最后發(fā)出數(shù)據(jù)。發(fā)送前要注意:
          (1)此時(shí)該網(wǎng)卡沒(méi)有在接收數(shù)據(jù)包,否則會(huì)引起時(shí)序混亂,導(dǎo)致網(wǎng)卡最后失效,所以在發(fā)送的時(shí)候要去判斷信號(hào)量micrel_int_1_flag是否為0,如果為0,則可以發(fā)送,為1則表明此時(shí)正在接收數(shù)據(jù)包,不可以發(fā)送。
          (2)發(fā)送長(zhǎng)度要以四個(gè)字節(jié)對(duì)齊。GET_4BYTES_AUGNMENT(uOrgPktLen,len);
          實(shí)際發(fā)送長(zhǎng)度為len。
          2.4 接收處理函數(shù)
          Micrel網(wǎng)卡接收寄存器的初始化框圖如圖3所示。在網(wǎng)卡接收模式正確初始化后,即可進(jìn)行數(shù)據(jù)接收操作。首先用戶層發(fā)出接收數(shù)據(jù)的請(qǐng)求,然后該請(qǐng)求通過(guò)HEROS系統(tǒng)協(xié)議棧發(fā)給層,最后接收數(shù)據(jù)。接收時(shí)需注意:

          d.jpg


          (1)首先要從幀頭中獲取幀長(zhǎng)度byte_count,最大為1518,并且必須把byte_count按4個(gè)字節(jié)對(duì)齊;
          (2)其次要將Micrel芯片的接收中斷關(guān)閉,接收完畢后,再打開(kāi)接收中斷。
          (3)注意幀開(kāi)始的2個(gè)字節(jié)和最后4個(gè)字節(jié)不要讀到接收緩沖區(qū)。

          3 結(jié)束語(yǔ)
          本文介紹了以HEROS為核心、KS8851作為網(wǎng)絡(luò)接口芯片的終端接口,通過(guò)TCP/IP協(xié)議棧與本文討論的,用ping ip地址命令可以得到ICMP reply響應(yīng)。芯片具有性價(jià)比高、連接方便等特點(diǎn),是進(jìn)行以太網(wǎng)終端時(shí)的主要控制芯片之一。

          linux操作系統(tǒng)文章專題:linux操作系統(tǒng)詳解(linux不再難懂)

          tcp/ip相關(guān)文章:tcp/ip是什么



          上一頁(yè) 1 2 3 下一頁(yè)

          評(píng)論


          相關(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); })();