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

          新聞中心

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

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

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

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

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

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

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

          a.JPG


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

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

          b.JPG


          上一頁 1 2 下一頁

          評論


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