0 引言
基于CSMA/CA的MAC協(xié)議的優(yōu)勢在于其簡單和健壯性,適用于分布式網(wǎng)絡,每個節(jié)點無需維持和動態(tài)更新周圍相鄰節(jié)點的狀態(tài)信息,可以獨自決定何時接入信道,只要上層有數(shù)據(jù)需要傳輸,MAC層就會對信道進行競爭,因此該協(xié)議的應用也相當廣泛。嵌入式技術的發(fā)展對MAC協(xié)議的實現(xiàn)也提供了很好的技術支撐。本文搭建了一種基于ARM和FPGA相結合的嵌入式開發(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)榱嗣Γ吮苓M程將掛起,直到媒介空閑時間再次達到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ù)幀,轉入(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ā)送成功。
上一篇:基于ARM9和μC/OSII高速實時多任務數(shù)據(jù)采集的智能化設計
下一篇:基于VirtualBox虛擬機-Ubuntu操作系統(tǒng)的ARM嵌入式平臺搭建
推薦閱讀
史海拾趣
為了保證產(chǎn)品質(zhì)量和客戶滿意度,中匯瑞德一直將質(zhì)量管理體系的建設放在重要位置。公司引入了國際先進的質(zhì)量管理理念和方法,建立了完善的質(zhì)量管理體系,并通過了多項國際認證。同時,公司還加強了對供應商的管理和評估,確保原材料的質(zhì)量符合公司要求。這些措施有效地提高了產(chǎn)品的質(zhì)量穩(wěn)定性和可靠性,贏得了客戶的信任和認可。
隨著國內(nèi)市場的飽和,中匯瑞德開始將目光投向海外市場。為了更好地服務全球客戶,公司在美國設立了子公司,并在全球范圍內(nèi)建立了銷售網(wǎng)絡。同時,公司還積極參與國際展會和交流活動,與國際同行建立了廣泛的合作關系。這些舉措不僅拓展了公司的業(yè)務范圍,也提升了公司的國際影響力。
BTCPower深知技術創(chuàng)新是公司發(fā)展的核心動力。因此,公司不斷加大研發(fā)投入,積極引進和培養(yǎng)高素質(zhì)的研發(fā)人才。同時,公司還建立了完善的研發(fā)體系和創(chuàng)新機制,鼓勵員工提出新的想法和創(chuàng)意。這些舉措使得BTCPower在技術創(chuàng)新方面始終保持領先地位。
在電子行業(yè)中,技術創(chuàng)新是企業(yè)發(fā)展的核心驅動力。DAESAN公司深知這一點,因此一直致力于技術研發(fā)和創(chuàng)新。他們投入大量資金和資源,引進先進的生產(chǎn)設備和技術人才,不斷推出具有競爭力的新產(chǎn)品。其中,一款高性能的電子芯片引起了行業(yè)的廣泛關注。這款芯片采用了最新的納米技術和低功耗設計,不僅性能卓越,而且節(jié)能環(huán)保。DAESAN公司憑借這一技術創(chuàng)新,成功打開了高端電子市場的大門。
Datapro International Inc公司成立于20世紀90年代初,當時正值電子信息技術飛速發(fā)展的時期。公司的創(chuàng)始人是一群充滿激情和創(chuàng)新精神的年輕工程師,他們看到了在數(shù)據(jù)存儲和處理方面的巨大潛力。于是,他們決定成立Datapro International Inc公司,致力于開發(fā)高效、穩(wěn)定的數(shù)據(jù)存儲解決方案。
在創(chuàng)立初期,Datapro International Inc公司面臨著重重困難,包括資金短缺、技術挑戰(zhàn)和市場競爭等。然而,他們憑借堅定的信念和不懈的努力,成功開發(fā)出了第一款具有創(chuàng)新性的數(shù)據(jù)存儲產(chǎn)品,該產(chǎn)品憑借其卓越的性能和穩(wěn)定性迅速贏得了市場的認可。這一成功為Datapro International Inc公司的發(fā)展奠定了堅實的基礎。
Atmel(Microchip)一直注重技術創(chuàng)新和產(chǎn)品升級。公司不斷投入研發(fā)資金,推動新產(chǎn)品的研發(fā)和現(xiàn)有產(chǎn)品的改進。通過引入新技術、優(yōu)化產(chǎn)品設計等方式,Atmel的產(chǎn)品在性能、功耗、可靠性等方面都得到了顯著提升。這些創(chuàng)新成果不僅滿足了客戶日益增長的需求,也為公司贏得了更多的市場份額。
Make the most of the unlicensed ISM band Combat interference and achieve better link range for RF transceivers operating in the 915-MHz ISM band. By ShreHarsha Rao, Texas Instruments Due to its unlicensed nature, the 915-MHz U.S. ISM (Industrial, Scientific, and Medi ...… 查看全部問答∨ |
SM24C02是一種電可擦除只讀存儲器 (EEPROM),它內(nèi)含256×8位存儲空間,具有工作電壓寬,擦寫次數(shù)多,寫入速度快等特點。可多達8個該器件同時連接到二線制總線,通過SDA(串行數(shù)據(jù)線)及SCL(串行時鐘線)在連接總線上的器件之間傳送數(shù)據(jù),并根據(jù)地 ...… 查看全部問答∨ |
http:www.guangdongdz.com 2005-12-26 23:37:31 隨著數(shù)字音頻和視頻設備的不斷涌現(xiàn),家庭影院、DVD接收器和 A/V接收器對D類放大器的需求越來越多。與傳統(tǒng)的模擬放大器相比,數(shù)字放大器所具有的低功耗、高效率從而降低對電源及散熱要求的特性,使之 ...… 查看全部問答∨ |
|
本帖最后由 paulhyde 于 2014-9-15 09:05 編輯 我的大學六年 --郭天祥 在哈爾濱工程大學六年,我在學校電子創(chuàng)新實驗室呆了四年,這四年里創(chuàng)新實驗室給我提供了良好的學習環(huán)境和完善的實驗設備;在與眾多電子愛好者的交流中,使我學到了更多的專業(yè) ...… 查看全部問答∨ |
我現(xiàn)在編寫了一個數(shù)據(jù)轉換的程序,但是工作頻率始終不能達到我的要求,我在程序中需要125MHZ的頻率,但是現(xiàn)在只有82MHZ,我現(xiàn)在把程序列出來,希望大家給點改進意見。 我說一下程序的大概意思吧:將連續(xù)輸入的24個24bit寬的數(shù)據(jù)重排,將24個數(shù)據(jù)分 ...… 查看全部問答∨ |
各位大俠: 鄙人在做一個帶接IPOD功能的音響,可是不知道這個電路怎樣設計?請知道的同行給我提供下,非常急,謝謝,知道的話可以發(fā)到我的油箱:zouhaunming@163.com… 查看全部問答∨ |
|
菜鳥提問,希望得到幫助!! 最近剛使用STR711,看了DATASHEET和相關例程,收獲不少,但是還是有些疑問: 將str711設置為內(nèi)部FLASH啟動,也就是說將FLASH的地址映射到0x0,那么當運用程序讀FLASH的地址為什么要使用0x4****x,而不是0;寫的 ...… 查看全部問答∨ |
設計資源 培訓 開發(fā)板 精華推薦
- 英飛凌微控制器:以全新實惠套件和強大開發(fā)環(huán)境為開發(fā)者提供支持
- iTOP-i.MX6開發(fā)板設備數(shù)驅動Menuconfig的用法
- 迅為IMX6ULL開發(fā)板Qt for Android搭建開發(fā)環(huán)境
- 迅為i.MX8M mini開發(fā)板Windots QT系統(tǒng)開發(fā)環(huán)境搭建
- 迅為IMX8MM開發(fā)板Yocto系統(tǒng)使用Gstarwmra(一)
- 迅為IMX8M mini開發(fā)板Linix系統(tǒng)修改默認屏幕
- iTOP-4412開發(fā)板支持4G以上文件系統(tǒng)擴展
- 迅為IMX8MM開發(fā)板Yocto系統(tǒng)設置開機自啟動
- 迅為IMX6Q開發(fā)板 Buildroot文件系統(tǒng)mqtt測試
- 強強聯(lián)合再進階!理想AD Pro輔助駕駛正式升級搭載地平線征程6M
- 英特爾與黑芝麻智能簽署合作備忘錄,聯(lián)合發(fā)布艙駕融合平臺
- 英特爾與面壁智能宣布建立戰(zhàn)略合作伙伴關系,共同研發(fā)端側原生智能座艙
- 芯馳科技發(fā)布X10,打造全民AI時代座艙處理器新標桿
- 精準適配,輕裝全能!芯馳發(fā)布E3系列高端智控MCU三大應用場景
- 場景定義、精準創(chuàng)「芯」,芯馳全新發(fā)布AI座艙處理器和高端智控系列
- Arm 技術加持,地平線以 HSD 及征程 6P 推動汽車智能化變革
- 華為自動駕駛技術解讀
- 加速電動化轉型,邦迪汽車系統(tǒng)攜多款創(chuàng)新產(chǎn)品首秀2025上海車展
- 數(shù)據(jù)中心面臨電力約束挑戰(zhàn),推動GenAI終端發(fā)展