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

          新聞中心

          EEPW首頁 > 嵌入式系統(tǒng) > 設(shè)計(jì)應(yīng)用 > 基于ARM9的UDP協(xié)議棧的設(shè)計(jì)與實(shí)現(xiàn)

          基于ARM9的UDP協(xié)議棧的設(shè)計(jì)與實(shí)現(xiàn)

          作者: 時(shí)間:2016-11-27 來源:網(wǎng)絡(luò) 收藏

            2. 2. 4 數(shù)據(jù)的接收

            系統(tǒng)接收數(shù)據(jù)采用的是中斷模式.當(dāng)網(wǎng)卡接收到數(shù)據(jù)時(shí),就觸發(fā)一個(gè)中斷,啟動(dòng)中斷服務(wù)程序.在中斷服務(wù)程序中首先清除中斷標(biāo)志位,以防在接收數(shù)據(jù)的時(shí)候再次引發(fā)中斷,然后判斷寄存器MRMDX 的值,確定網(wǎng)卡是否接收到了數(shù)據(jù),如果接收到了數(shù)據(jù)就要進(jìn)行數(shù)據(jù)處理,也就是對(duì)數(shù)據(jù)包的解封,得到應(yīng)用程序發(fā)送來的數(shù)據(jù),如果沒有得到數(shù)據(jù)則說明網(wǎng)卡初始化失敗,重新初始化網(wǎng)卡.中斷接收程序的流程圖如圖4所示.

            在接收到以太網(wǎng)數(shù)據(jù)幀中,首先判斷數(shù)據(jù)類型字段,如果是ARP 協(xié)議,則進(jìn)入ARP 處理流程,如果是IP 協(xié)議,則進(jìn)入IP 協(xié)議流程.ARP 協(xié)議處理過程:

            首先判斷ARP 包目的IP 地址是否與本地IP 地址一致,如果不一致,丟棄不處理;如果一致,再判斷ARP類型,操作類型字段為1 時(shí)表示ARP 請(qǐng)求,調(diào)用ARP發(fā)送函數(shù)發(fā)送ARP 響應(yīng)包.操作類型字段為2 時(shí),記錄下對(duì)方的MAC 地址,以后通信就是根據(jù)這個(gè)MAC傳送數(shù)據(jù)的.

            IP 協(xié)議處理過程如下所述:首先判斷IP 包目的IP地址是否與本地IP 一致,如果不一致,丟棄不處理,如果一致,則再判斷協(xié)議類型,是否為UDP 數(shù)據(jù)包,是就進(jìn)入U(xiǎn)DP 處理過程,不是就進(jìn)入其他協(xié)議處理過程.

            3 實(shí)驗(yàn)結(jié)果和分析

            3. 1 ARP 通信測(cè)試

            實(shí)驗(yàn)中測(cè)試了ARP 請(qǐng)求和UDP 通信,設(shè)置ARM開發(fā)板的IP 地址為219. 243. 50. 187,MAC 地址為0×52,0×54,0x4c,0×38,0xf7,0×42,PC 機(jī)的IP 地址為219. 243. 50. 188,MAC 地址為0×00,0×23,0x5A,0×15,0×73,0xF4.經(jīng)過測(cè)試當(dāng)開板向PC 發(fā)送ARP 請(qǐng)求時(shí),PC 能夠正確應(yīng)答響應(yīng)包,并且多次請(qǐng)求都能夠得到正確的響應(yīng),證明ARP 協(xié)議能夠穩(wěn)定運(yùn)行,實(shí)驗(yàn)結(jié)果如圖5 所示.

            當(dāng)開發(fā)板得到了PC 機(jī)的MAC 地址之后,就可以與它進(jìn)行正常的UDP 通信了.在中斷程序之中判定協(xié)議類型,接收到的數(shù)據(jù)包是ARP 協(xié)議還是UDP 協(xié)議,當(dāng)接收的是ARP 協(xié)議,則進(jìn)行ARP 協(xié)議處理,得出圖5 的實(shí)驗(yàn)結(jié)果,當(dāng)?shù)玫降氖荱DP 協(xié)議,則進(jìn)行UDP 協(xié)議處理,得出的實(shí)驗(yàn)結(jié)果如圖6 所示.經(jīng)過長(zhǎng)時(shí)間的通信可以發(fā)現(xiàn),傳輸?shù)臄?shù)據(jù)沒有出現(xiàn)誤碼,可以說明這種通信方式比較穩(wěn)定可行.

            3. 2 UDP 通信測(cè)試

            在UDP 通信實(shí)驗(yàn)中,設(shè)置兩個(gè)數(shù)據(jù)終端的IP 地址和通信端口分別為219.243.50.187:6000,219.243.50.186:10005,然后發(fā)送數(shù)據(jù),用抓包工具sniffer 抓包的結(jié)果如圖6 所示.通過圖中結(jié)果可以看出,SrcIP 為219. 243. 50. 87,Src Port 為6000,DestIP 為219. 243.50. 186,Dst Port 為10005,這都與設(shè)置的相同.Protocol為0×800 表示為UDP 協(xié)議類型,而且能夠正確地接收到發(fā)送的數(shù)據(jù),并且經(jīng)過多次的實(shí)驗(yàn),結(jié)果都是正確的,這證明系統(tǒng)通信穩(wěn)定可靠,通過移植的協(xié)議棧能夠正常的工作,達(dá)到了預(yù)期的目標(biāo).

            4 結(jié)束語

            文中實(shí)現(xiàn)了基于ARM9 和DM9000 芯片的UDP通信,成功地對(duì)TCP/ IP 協(xié)議棧裁剪移植實(shí)現(xiàn)UDP.ARP 等協(xié)議通信.詳細(xì)介紹了DM9000 網(wǎng)卡驅(qū)動(dòng)程序過程,并且實(shí)現(xiàn)了網(wǎng)口接收發(fā)送數(shù)據(jù)的功能,通過對(duì)大量數(shù)據(jù)的傳輸實(shí)驗(yàn),證明了ARM9 和DM9000 構(gòu)成的通信系統(tǒng)性能的穩(wěn)定性.能夠較好地解決大量數(shù)據(jù)通過UDP 協(xié)議通信的問題.


          上一頁 1 2 下一頁

          關(guān)鍵詞: ARM9UDP協(xié)議

          評(píng)論


          技術(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); })();