在线看毛片网站电影-亚洲国产欧美日韩精品一区二区三区,国产欧美乱夫不卡无乱码,国产精品欧美久久久天天影视,精品一区二区三区视频在线观看,亚洲国产精品人成乱码天天看,日韩久久久一区,91精品国产91免费

<menu id="6qfwx"><li id="6qfwx"></li></menu>
    1. <menu id="6qfwx"><dl id="6qfwx"></dl></menu>

      <label id="6qfwx"><ol id="6qfwx"></ol></label><menu id="6qfwx"></menu><object id="6qfwx"><strike id="6qfwx"><noscript id="6qfwx"></noscript></strike></object>
        1. <center id="6qfwx"><dl id="6qfwx"></dl></center>

            新聞中心

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

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

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

            (1)若_flag為false時,表明信道空閑,此時進入(2);若_flag為true,則說明現(xiàn)在信道已被占用,此時不管節(jié)點已經(jīng)處于什么狀態(tài)都會進入第七步,除了正在發(fā)送數(shù)據(jù)的節(jié)點,由于正在發(fā)送的節(jié)點是不可能監(jiān)聽信道的,而且也無法接收其他節(jié)點的數(shù)據(jù),載波偵聽機制在這種狀態(tài)下是失效的,因此不會出現(xiàn)正在發(fā)送數(shù)據(jù)的節(jié)點從發(fā)送狀態(tài)突然變?yōu)榻邮諣顟B(tài)。
            (2)執(zhí)行幀間間隔進程,遞減IFS_time大小,直到為0就進入(3)。IFS_time的初始值為DIFS。
            (3)退避進程。退避時間的大小主要是由提供,當節(jié)點經(jīng)歷了一個時隙時間,退避時隙數(shù)減1,但當節(jié)點沒有完全經(jīng)歷一個時隙時間,退避時隙數(shù)就不會變化。退避進程結(jié)束后就會進入(4)。
            (4)判斷發(fā)送類型,中發(fā)送類型Tx_tpye的初始值為1。若Tx_tpye為0,則為節(jié)點發(fā)送ACK,根據(jù)接收到的數(shù)據(jù)幀中的源/目的節(jié)點號以及序列號等組裝回復發(fā)送節(jié)點ACK,并初始化IFS_time和Backoff_time以備節(jié)點發(fā)送數(shù)據(jù)幀使用,同時設置NAV_flag為true,更新NAV_time的值,繼續(xù)虛擬載波偵聽,避免出現(xiàn)發(fā)送ACK的節(jié)點會優(yōu)先占用信道的情況;若Tx_tpye不為0,則表明節(jié)點可以開始發(fā)送數(shù)據(jù)幀,轉(zhuǎn)入(5)。
            (5)發(fā)送數(shù)據(jù)幀前首先判斷是否超過最大允許發(fā)送的時間,若超過了就丟棄該數(shù)據(jù)幀,將IFS_time設置為EIFS,Backof_time初始化,超時計時器停止;若沒有超過最大允許發(fā)送時間,則節(jié)點正式發(fā)送數(shù)據(jù)幀,并啟動單次超時計時,發(fā)送完畢后就等待ACK,此時進入(6)。
            (6)在等待ACK到來的同時判斷是否超時單次允許發(fā)送的時間,若超過了,則重傳次數(shù)遞加;然后判斷是否超過重傳門限,如果超過了門限,則丟棄該數(shù)據(jù)幀;如果沒有超過,則將IFS_time設置為EIFS,而且還需要的隨機退避算法根據(jù)重傳次數(shù)重新給一個退避時隙數(shù),同時修改數(shù)據(jù)幀中的重傳位以便接收節(jié)點識別。
            (7)保存當前退避進程中的Backoff_time和剛剛結(jié)束的幀間間隔的大小IFS_time,接收幀并解析其中相關的數(shù)據(jù),為后續(xù)的組裝ACK做準備,然后進入(8),同時將NAV_flag設置為true,保證MAC層能處理完數(shù)據(jù)。
            (8)校驗接收到的MAC幀是否正確,若不正確,則將IFS_time設置為EIFS,NAV_flag設置為false,NAV_time設置為0,這樣節(jié)點就進入執(zhí)行幀間間隔進程。若校驗正確,則進入(9)。
            (9)將解析出來的目的節(jié)點號與本節(jié)點的比較,判斷是否是發(fā)送給本節(jié)點的。如果不是發(fā)送給本節(jié)點的,那么就再比較本節(jié)點現(xiàn)在的NAV_time值是否大于接收到的MAC幀內(nèi)的NAV,若大于則本節(jié)點繼續(xù)按照現(xiàn)有的NAV_time值執(zhí)行下去;若小于接收到的MAC幀內(nèi)的NAV,則使用MAC幀內(nèi)的NAV來更新本節(jié)點的NAV_time值,然后以最新的NAV_time值遞減下去直到為0,虛擬載波偵聽顯示空閑。但是在執(zhí)行NAV_time遞減過程中隨時都有可能收到新MAC幀,而且也不是發(fā)送給本節(jié)點的,照樣要執(zhí)行本步驟,并不是等到NAV_time變?yōu)?后再更新。如果是發(fā)送給本節(jié)點的,則會進入(10)。
            (10)若節(jié)點接收到的是數(shù)據(jù)幀。即Rx_type為1,將接收到的數(shù)據(jù)幀上傳;同時將IFS_time更新為SIFS,Backoff_time設置為0,這樣使得接收到數(shù)據(jù)幀到發(fā)送ACK之間的時間間隔為SIFS,并將Tx_tpye設置為0,NAV_flag變?yōu)閒alse,進入(2),開始準備發(fā)送ACK。如果Rx_type為0,則節(jié)點接收到的是ACK,說明一次數(shù)據(jù)收發(fā)過程結(jié)束,節(jié)點將初始化相關參數(shù),計時停止等,釋放空間,表明該數(shù)據(jù)幀已發(fā)送成功。

            3 仿真驗證
            CSMA/CA的MAC的實現(xiàn)關鍵在于各個節(jié)點對各種情況的處理,因此對一個節(jié)點功能的仿真驗證也能說明的正確性。本中FPGA部分的設計是重點,所以使用ModelSim進行仿真觀察節(jié)點FPGA的處理過程。
            3.1 信道競爭過程
            CSMA/CA的MAC中各個節(jié)點也不知道自身周圍的節(jié)點情況,因此節(jié)點競爭信道時隨時都可能檢測到信道已被占用。圖3給出了節(jié)點在退避過程中檢測到物理載波偵聽變?yōu)槊?,立刻停止退避進程,將此時的退避時隙數(shù)掛起,即退避時隙數(shù)保留為31。待到信道重新空閑超過幀間間隔DIFS后,將以保留的退避時隙數(shù)繼續(xù)進行退避進程,變?yōu)?后開始發(fā)送數(shù)據(jù)幀。在圖中還可以看到節(jié)點收到正確的ACK后,更新NAV的過程。從仿真圖的執(zhí)行流程可以說明所設計的MAC協(xié)議滿足載波偵聽機制、幀間間隔、隨機退避的功能要求。

            本文引用地址:http://www.biyoush.com/article/148811.htm

            c.JPG


            3.2 數(shù)據(jù)傳輸過程
            從圖4中可以觀察到節(jié)點發(fā)送第一個數(shù)據(jù)幀后,超時計數(shù)器開始計時,但在規(guī)定時間內(nèi)沒有收到ACK,則重傳數(shù)據(jù)幀,重傳退避的時間是重新賦值的,并且?guī)g間隔不再是DIFS,而是EIFS;當節(jié)點接收到正確的ACK后,開始發(fā)送新的數(shù)據(jù)幀。說明了所設計的MAC協(xié)議能夠?qū)崿F(xiàn)確認重傳機制。

            4 結(jié)語
            在以ARM和FPGA為主的硬件結(jié)構(gòu)上,設計與實現(xiàn)了CSMA/CA的MAC協(xié)議,該協(xié)議具有載波偵聽機制、隨機退避、確認重傳等功能。經(jīng)過仿真測試,驗證了所設計MAC協(xié)議的可行性。


            上一頁 1 2 下一頁

            評論


            相關推薦

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

            關閉