當前位置:首頁 > 單片機 > 單片機
[導讀] 引言 基于CSMA/CA的MAC協(xié)議的優(yōu)勢在于其簡單和健壯性,適用于分布式網(wǎng)絡,每個節(jié)點無需維持和動態(tài)更新周圍相鄰節(jié)點的狀態(tài)信息,可以獨自決定何時接入信道,只要上層有數(shù)據(jù)需要傳輸,MAC層就會對信道

引言


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

1 協(xié)議功能描述

1.1 報文結構

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

1.2 組網(wǎng)設計

本文設計的MAC協(xié)議除了滿足基本的的物理載波偵聽和虛擬載波偵聽相結合檢測信道忙閑的機制外,還包括幀間間隔、隨機退避、應答確認和重傳機制。

有數(shù)據(jù)要發(fā)送的節(jié)點會首先監(jiān)聽媒介,若為忙則繼續(xù)等待,若空閑的時間超過或者等于DIFS或者EIFS則會進入退避進程。在執(zhí)行退避進程過程中,節(jié)點將隨機產(chǎn)生一個退避時間來設置退避定時器,同時繼續(xù)監(jiān)聽媒介,若空閑時間達到了一個時隙時間,則退避定時器減去一個時隙時間,如果在期間媒介變?yōu)榱嗣?,退避進程將掛起,直到媒介空閑時間再次達到DIFS或者EIFS后才會接著繼續(xù)進行退避進程。當退避定時器變?yōu)?時,節(jié)點才允許開始發(fā)送數(shù)據(jù),同時也會啟動超時重傳機制,如果在規(guī)定的時間內(nèi)沒有收到所希望的ACK,則會重傳數(shù)據(jù)幀,當節(jié)點重傳的次數(shù)超過了重傳門限將會丟棄該數(shù)據(jù)幀,或者超過了數(shù)據(jù)幀最長允許的發(fā)送時間,也會丟棄該數(shù)據(jù)幀;當節(jié)點收到ACK時,就會開始準備下一次數(shù)據(jù)的發(fā)送。

接收節(jié)點收到正確且是發(fā)送給本節(jié)點的數(shù)據(jù)幀將會立刻回復源節(jié)點ACK。如果節(jié)點沒有收到正確的數(shù)據(jù)幀,則將使用EIFS;如果收到正確的數(shù)據(jù)幀,但是不是給本節(jié)點的,節(jié)點將解析出持續(xù)時間,更新NAV,將信道視為已被占用。

1.3 功能劃分

本設計充分利用ARM靈活便捷的優(yōu)勢,用來實現(xiàn)隨機退避算法和協(xié)議參數(shù)的管理,如重傳次數(shù),幀間間隔的設置等。隨機退避算法采用的是第i次退避就在2i個時隙中隨機地選出一個值作為節(jié)點需要退避的值。協(xié)議參數(shù)的設置由ARM來完成,主要是考慮到FPGA不利于參數(shù)的修改,這樣也可以增強協(xié)議的可重構性。而FPGA以其卓越的實時信號處理優(yōu)點,用于管理MAC幀的收發(fā)控制等。

2 協(xié)議設計

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

(1)若MAC_flag為false時,表明信道空閑,此時進入(2);若MAC_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)退避進程。退避時間的大小主要是由ARM提供,當節(jié)點經(jīng)歷了一個時隙時間,退避時隙數(shù)減1,但當節(jié)點沒有完全經(jīng)歷一個時隙時間,退避時隙數(shù)就不會變化。退避進程結束后就會進入(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,而且還需要ARM的隨機退避算法根據(jù)重傳次數(shù)重新給一個退避時隙數(shù),同時修改數(shù)據(jù)幀中的重傳位以便接收節(jié)點識別。

(7)保存當前退避進程中的Backoff_time和剛剛結束的幀間間隔的大小IFS_time,接收MAC幀并解析其中相關的數(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)將FPGA解析出來的目的節(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,F(xiàn)PGA將接收到的數(shù)據(jù)幀上傳ARM;同時將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é)點將初始化相關參數(shù),計時停止等,F(xiàn)PGA釋放空間,表明該數(shù)據(jù)幀已發(fā)送成功。

3 仿真驗證

基于CSMA/CA的MAC協(xié)議的實現(xiàn)關鍵在于各個節(jié)點對各種情況的處理,因此對一個節(jié)點協(xié)議功能的仿真驗證也能說明設計的正確性。本設計中FPGA部分的設計是重點,所以使用ModelSim進行仿真觀察節(jié)點FPGA的處理過程。

3.1 信道競爭過程

基于CSMA/CA的MAC協(xié)議中各個節(jié)點也不知道自身周圍的節(jié)點情況,因此節(jié)點競爭信道時隨時都可能檢測到信道已被占用。圖3給出了節(jié)點在退避過程中檢測到物理載波偵聽變?yōu)槊Γ⒖掏V雇吮苓M程,將此時的退避時隙數(shù)掛起,即退避時隙數(shù)保留為31。待到信道重新空閑超過幀間間隔DIFS后,將以保留的退避時隙數(shù)繼續(xù)進行退避進程,變?yōu)?后開始發(fā)送數(shù)據(jù)幀。在圖中還可以看到節(jié)點收到正確的ACK后,更新NAV的過程。從仿真圖的執(zhí)行流程可以說明所設計的MAC協(xié)議滿足載波偵聽機制、幀間間隔、隨機退避的功能要求。

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 結語

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


本站聲明: 本文章由作者或相關機構授權發(fā)布,目的在于傳遞更多信息,并不代表本站贊同其觀點,本站亦不保證或承諾內(nèi)容真實性等。需要轉(zhuǎn)載請聯(lián)系該專欄作者,如若文章內(nèi)容侵犯您的權益,請及時聯(lián)系本站刪除。
換一批
延伸閱讀

9月2日消息,不造車的華為或?qū)⒋呱龈蟮莫毥谦F公司,隨著阿維塔和賽力斯的入局,華為引望愈發(fā)顯得引人矚目。

關鍵字: 阿維塔 塞力斯 華為

加利福尼亞州圣克拉拉縣2024年8月30日 /美通社/ -- 數(shù)字化轉(zhuǎn)型技術解決方案公司Trianz今天宣布,該公司與Amazon Web Services (AWS)簽訂了...

關鍵字: AWS AN BSP 數(shù)字化

倫敦2024年8月29日 /美通社/ -- 英國汽車技術公司SODA.Auto推出其旗艦產(chǎn)品SODA V,這是全球首款涵蓋汽車工程師從創(chuàng)意到認證的所有需求的工具,可用于創(chuàng)建軟件定義汽車。 SODA V工具的開發(fā)耗時1.5...

關鍵字: 汽車 人工智能 智能驅(qū)動 BSP

北京2024年8月28日 /美通社/ -- 越來越多用戶希望企業(yè)業(yè)務能7×24不間斷運行,同時企業(yè)卻面臨越來越多業(yè)務中斷的風險,如企業(yè)系統(tǒng)復雜性的增加,頻繁的功能更新和發(fā)布等。如何確保業(yè)務連續(xù)性,提升韌性,成...

關鍵字: 亞馬遜 解密 控制平面 BSP

8月30日消息,據(jù)媒體報道,騰訊和網(wǎng)易近期正在縮減他們對日本游戲市場的投資。

關鍵字: 騰訊 編碼器 CPU

8月28日消息,今天上午,2024中國國際大數(shù)據(jù)產(chǎn)業(yè)博覽會開幕式在貴陽舉行,華為董事、質(zhì)量流程IT總裁陶景文發(fā)表了演講。

關鍵字: 華為 12nm EDA 半導體

8月28日消息,在2024中國國際大數(shù)據(jù)產(chǎn)業(yè)博覽會上,華為常務董事、華為云CEO張平安發(fā)表演講稱,數(shù)字世界的話語權最終是由生態(tài)的繁榮決定的。

關鍵字: 華為 12nm 手機 衛(wèi)星通信

要點: 有效應對環(huán)境變化,經(jīng)營業(yè)績穩(wěn)中有升 落實提質(zhì)增效舉措,毛利潤率延續(xù)升勢 戰(zhàn)略布局成效顯著,戰(zhàn)新業(yè)務引領增長 以科技創(chuàng)新為引領,提升企業(yè)核心競爭力 堅持高質(zhì)量發(fā)展策略,塑強核心競爭優(yōu)勢...

關鍵字: 通信 BSP 電信運營商 數(shù)字經(jīng)濟

北京2024年8月27日 /美通社/ -- 8月21日,由中央廣播電視總臺與中國電影電視技術學會聯(lián)合牽頭組建的NVI技術創(chuàng)新聯(lián)盟在BIRTV2024超高清全產(chǎn)業(yè)鏈發(fā)展研討會上宣布正式成立。 活動現(xiàn)場 NVI技術創(chuàng)新聯(lián)...

關鍵字: VI 傳輸協(xié)議 音頻 BSP

北京2024年8月27日 /美通社/ -- 在8月23日舉辦的2024年長三角生態(tài)綠色一體化發(fā)展示范區(qū)聯(lián)合招商會上,軟通動力信息技術(集團)股份有限公司(以下簡稱"軟通動力")與長三角投資(上海)有限...

關鍵字: BSP 信息技術
關閉
關閉