一種無線通信mac協(xié)議實現方法
【技術領域】
[0001]本發(fā)明涉及一種無線通信MAC協(xié)議實現方法,屬于無線通信技術領域。
【背景技術】
[0002]無線通信中的MAC協(xié)議根據不同的信道訪問策略可以分為:爭用型MAC協(xié)議、調度型MAC協(xié)議。
[0003]爭用型MAC協(xié)議使用信道的方式為按需分配,當節(jié)點產生了需要發(fā)送的數據時,即開始爭用無線信道的使用權,如果產生了數據碰撞,就按照預定的規(guī)則進行數據重發(fā),直到成功上報數據或者放棄數據上報。
[0004]調度型MAC協(xié)議的信道訪問方式主要采用TDMA。調度型MAC協(xié)議的基本原理是:基于一定的調度算法給每個節(jié)點分配時隙,經過分配后,每一個節(jié)點只被允許使用規(guī)定的時隙來完成對信道的無碰撞訪問。因此調度型MAC協(xié)議實質上就是沒有沖突或者說沒有競爭的MAC協(xié)議。
[0005]當前對無線通信中的MAC協(xié)議的實現和測試大多是通過仿真軟件來實現,這種方法大多只能實現理論上的分析和驗證,并不能完全反映MAC協(xié)議實際運行中的性能。
【發(fā)明內容】
[0006]發(fā)明目的:針對現有技術中存在的問題與不足,本發(fā)明提供一種無線通信中的MAC協(xié)議實現和測試方法。
[0007]技術方案:一種無線通信MAC協(xié)議實現方法。實現方法的硬件平臺采用基于CC2530平臺的開發(fā)套件,主要包括一個中心節(jié)點、三個傳感器節(jié)點和一個測試PC ;軟件平臺基于TinyOS上成熟的ZigBee/802.15.4協(xié)議棧來實現?;谝陨宪浻布脚_,本發(fā)明分別實現了爭用型和調度型兩種類型的MAC協(xié)議:爭用型協(xié)議采用中心節(jié)點定期廣播,傳感器節(jié)點隨機上報的方式來實現;調度型協(xié)議采用中心節(jié)點定期廣播,傳感器節(jié)點按照規(guī)定的時隙依次上報的方式來實現。
[0008]本發(fā)明米用TinyOS操作系統(tǒng)下的nesC編程語言實現了爭用型和調度型兩種MAC協(xié)議,主要實現過程如下:
[0009](I)爭用型MAC協(xié)議中心節(jié)點程序的主要實現過程如下:
[0010]①中心節(jié)點參數初始化;
[0011]②開啟中心節(jié)點的射頻模塊以及串口模塊,射頻收發(fā)信道號相同,均采用默認值;
[0012]③中心節(jié)點的射頻模塊以10秒為周期(周期可調整)定時往所有傳感器節(jié)點發(fā)送廣播信息,信息內容為可以為任意自定義格式。
[0013]④中心節(jié)點等待接收傳感器節(jié)點發(fā)來的測試數據,并從串口打印收到消息。(2)爭用型MAC協(xié)議傳感器節(jié)點程序的主要實現過程如下:
[0014]①傳感器節(jié)點參數初始化;
[0015]②開啟傳感器節(jié)點的射頻模塊以及串口模塊,射頻收發(fā)信道號相同,和中心節(jié)點一樣,均采用默認值。
[0016]③傳感器節(jié)點等待接收從中心節(jié)點發(fā)來的周期性廣播信息;
[0017]④接收到中心節(jié)點的廣播信息后,產生隨機延時(隨機延時的取值在0-9秒之間),然后根據傳感器節(jié)點自身的id號向中心節(jié)點回送不同的測試數據。
[0018](3)調度型MAC協(xié)議中心節(jié)點程序實現的主要過程與爭用型相同。
[0019](4)調度型MAC協(xié)議傳感器節(jié)點的程序實現過程如下:
[0020]①傳感器節(jié)點參數初始化;
[0021]②開啟傳感器節(jié)點的射頻模塊以及串口模塊,射頻收發(fā)信道號相同,和中心節(jié)點一樣,均采用默認值。
[0022]③等待接收從中心節(jié)點發(fā)來的周期性廣播信息;
[0023]④接收到中心節(jié)點的廣播信息后,產生規(guī)定的延時(節(jié)點A,B,C分別延時3,6,9秒),然后根據傳感器節(jié)點自身的id號向中心節(jié)點回送不同的測試數據。
[0024]從實現過程可看出,調度型MAC協(xié)議與爭用型MAC協(xié)議實現的主要區(qū)別在于,傳感器節(jié)點收到中心節(jié)點的廣播信息后,按照規(guī)定的不同延時向中心節(jié)點上報收到消息。
[0025]有益效果:采用本發(fā)明的MAC協(xié)議實現過程中,中心節(jié)點周期廣播信息,傳感器節(jié)點根據不同的MAC協(xié)議采用不同的數據上報方法。本方法在測試驗證過程中可以很直觀地看出各種MAC協(xié)議的運行情況,使得MAC協(xié)議的測試驗證過程變得非常方便。
【附圖說明】
[0026]圖1為硬件平臺的結構框圖;
[0027]圖2為爭用型協(xié)議測試過程中的串口輸出打?。?br>[0028]圖3為爭用型協(xié)議測試過程中的無線數據包;
[0029]圖4為調度型協(xié)議測試過程中的串口輸出打?。?br>[0030]圖5為調度型協(xié)議測試過程中的無線數據包。
【具體實施方式】
[0031]下面結合具體實施例,進一步闡明本發(fā)明,應理解這些實施例僅用于說明本發(fā)明而不用于限制本發(fā)明的范圍,在閱讀了本發(fā)明之后,本領域技術人員對本發(fā)明的各種等價形式的修改均落于本申請所附權利要求所限定的范圍。
[0032]無線通信中的MAC協(xié)議測試驗證方法,包括如下步驟:
[0033]步驟一:軟硬件平臺搭建。如圖1所示,硬件平臺采用基于CC2530平臺的開發(fā)套件,主要包括一個中心節(jié)點、三個傳感器節(jié)點(命名為A、B、C,分別對應不同的節(jié)點id號)和一個測試PC,中心節(jié)點和傳感器節(jié)點構成了一個星形網絡,用來進行MAC協(xié)議的實際驗證,測試PC主要用于程序編寫和下載以及測試驗證結果的收集;軟件平臺基于TinyOS上成熟的ZigBee/802.15.4協(xié)議棧來實現,是測試驗證程序實現的基礎。本發(fā)明實現最基礎的爭用型和調度型MAC協(xié)議的過程中,為了避免其它因素的干擾,對802.15.4協(xié)議棧的源代碼進行了改動,主要包括:關閉ACK請求、關閉鏈路層重發(fā)、關閉CSMA/CA等。
[0034]步驟二:爭用型MAC協(xié)議實現和測試?;谇拔臄⑹龅臓幱眯蚆AC協(xié)議的實現方法采用nesC語言進行了中心節(jié)點和傳感器節(jié)點的程序編寫。程序編寫完成后進行編譯并分別下載到中心節(jié)點和傳感器節(jié)點中,然后開始運行測試。
[0035]將中心節(jié)點和3個傳感器節(jié)點均加電運行后進行測試,測試過程中串口打印輸出如圖2所示,輸出可通過測試PC上的串口調試工具軟件查看。從打印輸出中可以看出,在收到中心節(jié)點的廣播信息后,傳感器節(jié)點A、B、C隨機上報數據,上報數據的順序是不固定的。
[0036]測試過程中還通過CC2531USB軟件狗配合SmartRF Packet Sniffer軟件對無線信道中收發(fā)的報文進行了抓包,并可通過測試PC顯示測試數據,如圖3所示。從“SourceAddress” 以及“Dest.Address” 列中可以看出,中心節(jié)點(Source Address: 1,即 id:1)定時廣播信息后,傳感器節(jié)點(Source Address:6、7、8,即id:6、7、8)隨機上報數據HCpayload”列中可以看出,每個傳感器節(jié)點上報的內容不同;從“Time (us) ”列中可以看出,傳感器節(jié)點收到中心節(jié)點的廣播信息后,隨機延時后再上報信息。
[0037]通過以上測試可以看出,爭用型MAC層協(xié)議下,傳感器節(jié)點隨機向中心節(jié)點上報數據,上報數據的順序也是隨機的,因此存在數據碰撞的可能性。
[0038]步驟三:調度型MAC協(xié)議實現和測試?;谇拔臄⑹龅恼{度型MAC協(xié)議的實現方法采用nesC語言進行了中心節(jié)點和傳感器節(jié)點的程序編寫。程序編寫完成后進行編譯并分別下載到中心節(jié)點和傳感器節(jié)點中,然后開始運行測試。
[0039]將中心節(jié)點和3個傳感器節(jié)點均加電運行后進行測試,測試過程中串口打印輸出如圖4所示。從打印輸出中可以看出,在收到中心節(jié)點的廣播信息后,傳感器節(jié)點A、B、C按照規(guī)定的延時依次上報數據,上報數據的順序是一致的。
[0040]測試過程中對無線信道中收發(fā)的數據抓包的結果如圖5所示。從“SourceAddress”和“Dest.Address”列中可以看出,中心節(jié)點定時廣播信息后,傳感器節(jié)點依次上報數據;從“MAC payload”列中可以看出,每個傳感器節(jié)點上報的內容不同;W“Time(us)”列中可以看出,傳感器節(jié)點收到中心節(jié)點的廣播信息后,依次延時3、6、9秒后再上報信息。
[0041]通過以上測試可以看出,調度型MAC層協(xié)議下,傳感器節(jié)點按照規(guī)定的延時依次向中心節(jié)點上報數據,上報數據的順序也是受控的,所以不存在數據碰撞的可能。
【主權項】
1.一種無線通信MAC協(xié)議實現方法,其特征在于,方法的硬件平臺采用基于CC2530平臺的開發(fā)套件,主要包括一個中心節(jié)點、三個傳感器節(jié)點;基于上述硬件平臺分別實現了爭用型和調度型兩種類型的MAC協(xié)議:爭用型協(xié)議采用中心節(jié)點定期廣播,傳感器節(jié)點隨機上報的方式來實現;調度型協(xié)議采用中心節(jié)點定期廣播,傳感器節(jié)點按照規(guī)定的時隙依次上報的方式來實現。
2.如權利要求1所述的無線通信MAC協(xié)議實現方法,其特征在于,爭用型MAC協(xié)議中心節(jié)點程序的主要實現過程如下: ①中心節(jié)點參數初始化; ②開啟中心節(jié)點的射頻模塊以及串口模塊,射頻收發(fā)信道號相同,均采用默認值; ③中心節(jié)點的射頻模塊以預設周期定時往所有傳感器節(jié)點發(fā)送廣播信息,信息內容為可以為任意自定義格式; ④中心節(jié)點等待接收傳感器節(jié)點發(fā)來的測試數據,并從串口打印收到信息。
3.如權利要求2所述的無線通信MAC協(xié)議實現方法,其特征在于,爭用型MAC協(xié)議傳感器節(jié)點程序的主要實現過程如下: ①傳感器節(jié)點參數初始化; ②開啟傳感器節(jié)點的射頻模塊以及串口模塊,射頻收發(fā)信道號相同,和中心節(jié)點一樣,均采用默認值; ③傳感器節(jié)點等待接收從中心節(jié)點發(fā)來的周期性廣播信息; ④接收到中心節(jié)點的廣播信息后,產生隨機延時(隨機延時的取值在0-9秒之間),然后根據傳感器節(jié)點自身的id號向中心節(jié)點回送不同的測試數據;調度型MAC協(xié)議中心節(jié)點程序實現的主要過程與爭用型相同。
4.如權利要求1所述的無線通信MAC協(xié)議實現方法,其特征在于,調度型MAC協(xié)議傳感器節(jié)點的程序實現過程如下: ①傳感器節(jié)點參數初始化; ②開啟傳感器節(jié)點的射頻模塊以及串口模塊,射頻收發(fā)信道號相同,和中心節(jié)點一樣,均采用默認值; ③等待接收從中心節(jié)點發(fā)來的周期性廣播信息; ④接收到中心節(jié)點的廣播信息后,產生規(guī)定的延時,然后根據傳感器節(jié)點自身的id號向中心節(jié)點回送不同的收到消息。
5.如權利要求2-4任意一項所述的無線通信MAC協(xié)議實現方法,其特征在于,在該實現方法的測試過程中,中心節(jié)點等待接收傳感器節(jié)點發(fā)來的測試數據,并從串口打印收到信息;其中測試數據可通過無線抓包軟件獲取,并顯示在測試Pc上,收到信息也可以通過測試pc顯不。
【專利摘要】本發(fā)明公開了一種無線通信中的MAC協(xié)議實現方法。實現方法的硬件平臺采用基于CC2530平臺的開發(fā)套件,主要包括一個中心節(jié)點、三個傳感器節(jié)點;軟件平臺基于TinyOS上成熟的ZigBee/802.15.4協(xié)議棧來實現?;谝陨宪浻布脚_,實現了爭用型和調度型兩種類型的MAC協(xié)議:爭用型協(xié)議采用中心節(jié)點定期廣播,傳感器節(jié)點隨機上報的方式來實現;調度型協(xié)議采用中心節(jié)點定期廣播,傳感器節(jié)點按照規(guī)定的時隙依次上報的方式來實現。通過本方法實現的MAC協(xié)議在軟硬件平臺上進行實際運行測試時,可以通過串口打印和無線抓包的方式,分別對兩種協(xié)議的運行結果進行分析比較。
【IPC分類】H04W24-00, H04W80-02, H04L29-06
【公開號】CN104811456
【申請?zhí)枴緾N201510254318
【發(fā)明人】黃永明, 高承志, 許道峰
【申請人】東南大學
【公開日】2015年7月29日
【申請日】2015年5月18日