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

          新聞中心

          EEPW首頁(yè) > 嵌入式系統(tǒng) > 設(shè)計(jì)應(yīng)用 > 一種基于ARM和FPGA的可重構(gòu)MAC協(xié)議設(shè)計(jì)

          一種基于ARM和FPGA的可重構(gòu)MAC協(xié)議設(shè)計(jì)

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

          摘要:為了在實(shí)際信道條件下研究Ad Hoc網(wǎng)絡(luò),克服商業(yè)網(wǎng)卡芯片和理論仿真等帶來(lái)的局限性,搭建了相結(jié)合的硬件平臺(tái),與實(shí)現(xiàn)了CSMA/CA的可,并進(jìn)行了仿真測(cè)試,驗(yàn)證了該的正確性。對(duì)Ad Hoc網(wǎng)絡(luò)協(xié)議的實(shí)用化提供有益的參考。
          關(guān)鍵詞:媒體訪問(wèn)控制;帶沖突避免的載波偵聽(tīng)多路訪問(wèn);;

          0 引言
          CSMA/CA的MAC協(xié)議的優(yōu)勢(shì)在于其簡(jiǎn)單和健壯性,適用于分布式網(wǎng)絡(luò),每個(gè)節(jié)點(diǎn)無(wú)需維持和動(dòng)態(tài)更新周?chē)噜徆?jié)點(diǎn)的狀態(tài)信息,可以獨(dú)自決定何時(shí)接入信道,只要上層有數(shù)據(jù)需要傳輸,MAC層就會(huì)對(duì)信道進(jìn)行競(jìng)爭(zhēng),因此該協(xié)議的應(yīng)用也相當(dāng)廣泛。嵌入式技術(shù)的發(fā)展對(duì)MAC協(xié)議的實(shí)現(xiàn)也提供了很好的技術(shù)支撐。本文搭建了一種基于相結(jié)合的嵌入式開(kāi)發(fā)平臺(tái),并在此基礎(chǔ)上與實(shí)現(xiàn)了基于CSMA/CA的MAC協(xié)議。由于ARM和FPGA本身就是可器件,同時(shí)將FPGA中的一些協(xié)議參數(shù)由ARM來(lái)設(shè)置,通過(guò)修改ARM的代碼就可以實(shí)現(xiàn)對(duì)FPGA中協(xié)議功能的調(diào)整,方便快捷,不再需要重新生成比特文件下載,有利于MAC協(xié)議可的實(shí)現(xiàn)。

          1 協(xié)議功能描述
          1.1 報(bào)文結(jié)構(gòu)
          本設(shè)計(jì)實(shí)現(xiàn)的是基于CSMA/CA的MAC協(xié)議的基本訪問(wèn)模式,節(jié)點(diǎn)之間的通信只有數(shù)據(jù)幀(DATA)和應(yīng)答確認(rèn)幀(ACK)。圖1給出了報(bào)文結(jié)構(gòu),其中ACK沒(méi)有凈數(shù)據(jù)部分。由于考慮的是一跳范圍的無(wú)線通信,沒(méi)有中繼節(jié)點(diǎn)等,因此只有源節(jié)點(diǎn)號(hào)和目的節(jié)點(diǎn)號(hào)。

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

          a.JPG


          1.2 組網(wǎng)設(shè)計(jì)
          本文設(shè)計(jì)的MAC協(xié)議除了滿足基本的的物理載波偵聽(tīng)和虛擬載波偵聽(tīng)相結(jié)合檢測(cè)信道忙閑的機(jī)制外,還包括幀間間隔、隨機(jī)退避、應(yīng)答確認(rèn)和重傳機(jī)制。
          有數(shù)據(jù)要發(fā)送的節(jié)點(diǎn)會(huì)首先監(jiān)聽(tīng)媒介,若為忙則繼續(xù)等待,若空閑的時(shí)間超過(guò)或者等于DIFS或者EIFS則會(huì)進(jìn)入退避進(jìn)程。在執(zhí)行退避進(jìn)程過(guò)程中,節(jié)點(diǎn)將隨機(jī)產(chǎn)生一個(gè)退避時(shí)間來(lái)設(shè)置退避定時(shí)器,同時(shí)繼續(xù)監(jiān)聽(tīng)媒介,若空閑時(shí)間達(dá)到了一個(gè)時(shí)隙時(shí)間,則退避定時(shí)器減去一個(gè)時(shí)隙時(shí)間,如果在期間媒介變?yōu)榱嗣?,退避進(jìn)程將掛起,直到媒介空閑時(shí)間再次達(dá)到DIFS或者EIFS后才會(huì)接著繼續(xù)進(jìn)行退避進(jìn)程。當(dāng)退避定時(shí)器變?yōu)?時(shí),節(jié)點(diǎn)才允許開(kāi)始發(fā)送數(shù)據(jù),同時(shí)也會(huì)啟動(dòng)超時(shí)重傳機(jī)制,如果在規(guī)定的時(shí)間內(nèi)沒(méi)有收到所希望的ACK,則會(huì)重傳數(shù)據(jù)幀,當(dāng)節(jié)點(diǎn)重傳的次數(shù)超過(guò)了重傳門(mén)限將會(huì)丟棄該數(shù)據(jù)幀,或者超過(guò)了數(shù)據(jù)幀最長(zhǎng)允許的發(fā)送時(shí)間,也會(huì)丟棄該數(shù)據(jù)幀;當(dāng)節(jié)點(diǎn)收到ACK時(shí),就會(huì)開(kāi)始準(zhǔn)備下一次數(shù)據(jù)的發(fā)送。
          接收節(jié)點(diǎn)收到正確且是發(fā)送給本節(jié)點(diǎn)的數(shù)據(jù)幀將會(huì)立刻回復(fù)源節(jié)點(diǎn)ACK。如果節(jié)點(diǎn)沒(méi)有收到正確的數(shù)據(jù)幀,則將使用EIFS;如果收到正確的數(shù)據(jù)幀,但是不是給本節(jié)點(diǎn)的,節(jié)點(diǎn)將解析出持續(xù)時(shí)間,更新NAV,將信道視為已被占用。
          1.3 功能劃分
          本設(shè)計(jì)充分利用ARM靈活便捷的優(yōu)勢(shì),用來(lái)實(shí)現(xiàn)隨機(jī)退避算法和協(xié)議參數(shù)的管理,如重傳次數(shù),幀間間隔的設(shè)置等。隨機(jī)退避算法采用的是第i次退避就在2i個(gè)時(shí)隙中隨機(jī)地選出一個(gè)值作為節(jié)點(diǎn)需要退避的值。協(xié)議參數(shù)的設(shè)置由ARM來(lái)完成,主要是考慮到FPGA不利于參數(shù)的修改,這樣也可以增強(qiáng)協(xié)議的可重構(gòu)性。而FPGA以其卓越的實(shí)時(shí)信號(hào)處理優(yōu)點(diǎn),用于管理MAC幀的收發(fā)控制等。

          2 協(xié)議設(shè)計(jì)
          MAC層的工作狀態(tài)主要是由物理載波偵聽(tīng)和虛擬載波偵聽(tīng)共同決定的(即:MAC_flag=CS_flag or NAV_flag),當(dāng)兩者都顯示為空閑時(shí),MAC層才會(huì)進(jìn)入發(fā)送數(shù)據(jù)幀狀態(tài)。同時(shí)該協(xié)議也需要時(shí)鐘計(jì)數(shù)參與其中,IFS_time是每個(gè)節(jié)點(diǎn)在進(jìn)入退避進(jìn)程前需要等待的時(shí)間,實(shí)現(xiàn)幀間間隔的功能;Backoff_time是每個(gè)節(jié)點(diǎn)在退避進(jìn)程中退避的時(shí)間;NAV_time是沒(méi)有在通信的節(jié)點(diǎn)預(yù)留信道的時(shí)間。這三個(gè)時(shí)間也關(guān)系著整個(gè)協(xié)議所處的狀態(tài)。圖2給出了具體的實(shí)現(xiàn)流程圖,具體實(shí)現(xiàn)過(guò)程步驟如下:

          b.JPG


          上一頁(yè) 1 2 下一頁(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); })();