- 物聯(lián)網(wǎng)與無線傳感器網(wǎng)絡(luò)(第2版)
- 劉偉榮編著
- 5120字
- 2022-05-06 18:42:42
6.1.2 IEEE 802.15.4協(xié)議棧
IEEE 802.15.4協(xié)議棧是根據(jù)開放系統(tǒng)互聯(lián)(OSI)參考模型制定的,其中定義了兩個層:物理層和MAC層,物理層是由射頻收發(fā)器和底層控制模塊組成的,MAC層為高層訪問提供了訪問物理信道的服務接口,IEEE 802.15.4協(xié)議棧結(jié)構(gòu)如圖6.3所示。

圖6.3 IEEE 802.15.4協(xié)議棧結(jié)構(gòu)
1. 物理層規(guī)范
在OSI參考模型中,物理層是模型的最底層,是保障信號傳輸?shù)墓δ軐樱琁EEE 802.15.4的物理層與OSI模型類似,主要負責信號的發(fā)送與接收,提供無線物理信道和MAC層之間的接口等,它為鏈路層提供的服務包括物理連接的建立、維持與釋放,物理服務數(shù)據(jù)單元的傳輸,物理層管理和數(shù)據(jù)編碼。
1)信道分配及調(diào)制方式
無線傳感器網(wǎng)絡(luò)的物理層定義了三個載波頻段用于收發(fā)數(shù)據(jù),這三個頻段被稱為工業(yè)、科學和醫(yī)療(ISM)頻段,即2 400 MHz、868 MHz、915 MHz頻段,在這三個頻段上采用的發(fā)送數(shù)據(jù)的速率、信號處理過程以及調(diào)制方式上面都有一定的協(xié)議,如表6.1所示。
表6.1 載波信道特性表

其中,在2 450 MHz頻段上定義了16個信道,在915 MHz頻段上定義了30個信道,在868 MHz頻段上定義了3個信道,根據(jù)信道的編號我們可以很容易地計算出各個物理信道的中心頻率。
2)物理層幀結(jié)構(gòu)
物理層的數(shù)據(jù)幀也可以稱為物理層協(xié)議數(shù)據(jù)單元(PPDU),每個PPDU幀由同步頭、物理幀頭和PHY負載組成,如圖6.4所示。同步頭包括1個前導碼和1個幀起始分隔符(Start of Frame Delimiter,SFD),前導碼由4個全0的字節(jié)組成,收發(fā)器在接收前導碼期間會根據(jù)前導碼序列的特征完成片同步和符號同步;幀起始分隔符字段長度為1字節(jié),它的值固定為0xA7,表明前導碼已經(jīng)完成了同步,開始接收數(shù)據(jù)幀。物理幀頭中低7位用來表示幀長度,高位是保留位。物理幀的負載長度可變,它又稱為物理服務數(shù)據(jù)單元(PHY Service Data Unit,PSDU)負載,一般用來承載MAC幀。

圖6.4 PPDU幀結(jié)構(gòu)
3)物理層功能的實現(xiàn)
所有的物理層服務均是通過物理層服務訪問接口實現(xiàn)的,數(shù)據(jù)服務是通過物理層數(shù)據(jù)訪問接口(PD-SAP)實現(xiàn)的,管理服務則是通過物理層管理實體訪問接口(PLME-SAP)實現(xiàn)的,每個接口都提供了相關(guān)的訪問原語。
(1)數(shù)據(jù)的發(fā)送與接收。通過PD-SAP提供的PD-data原語可以實現(xiàn)兩個MAC層的MPDU(MAC Protocol Data Unit)傳輸。IEEE 802.15.4特意定義了三個與傳輸數(shù)據(jù)有關(guān)的原語:數(shù)據(jù)請求原語(PD-DATA.request)、數(shù)據(jù)確認原語(PD-DATA.confirm)和數(shù)據(jù)指示原語(PD-DATA.indication)。
數(shù)據(jù)請求原語主要用于處理MAC層的數(shù)據(jù)發(fā)送請求,參數(shù)為待發(fā)送數(shù)據(jù)報文長度以及待發(fā)送報文,由MAC層產(chǎn)生,物理層在接收到該原語時,首先確認底層的射頻收發(fā)器已置于發(fā)送打開狀態(tài),然后控制底層射頻硬件把數(shù)據(jù)發(fā)送出去。如果物理層在發(fā)送數(shù)據(jù)時,發(fā)現(xiàn)底層的射頻收發(fā)器處于接收狀態(tài)(RX-ON)或者未打開狀態(tài)(TRX-OFF),則將通過數(shù)據(jù)確認原語告知上層,其中原語的參數(shù)為失效的原因;否則視為發(fā)送成功(SUCCESS),同樣通過確認原語報告給上層。
數(shù)據(jù)指示原語主要用于向MAC層報告接收的數(shù)據(jù)。在物理層成功接收到一個數(shù)據(jù)報文后,將產(chǎn)生該原語并通告MAC層,其中參數(shù)為接收到的報文長度、具體的報文(PSDU)和LQI。LQI與數(shù)據(jù)無關(guān),是物理層在接收當前數(shù)據(jù)報文時鏈路質(zhì)量的一個量化值,上層可以借助這個參數(shù)進行路由的選擇。
(2)物理信道的能量監(jiān)測(Energy Detection,ED)。在IEEE 802.15.4網(wǎng)絡(luò)形成時,先是一個FFD把自己設(shè)置為網(wǎng)絡(luò)協(xié)調(diào)器,網(wǎng)絡(luò)協(xié)調(diào)器在構(gòu)建一個新的網(wǎng)絡(luò)時,需要負責掃描所有的信道(在MAC層稱為ED-SCAN),然后為自己的網(wǎng)絡(luò)選擇一個新的空閑信道。這個過程在底層是借助物理信道的能量監(jiān)測來完成的。如果一個信道被別的網(wǎng)絡(luò)占用,則體現(xiàn)在信道能量上的值是不一樣的。標準定義了與之相關(guān)的兩個原語:能量檢測請求原語(PLME-ED.request)和能量檢測確認原語(PLME-ED.confirm)。
能量檢測請求原語由MAC層產(chǎn)生,為一個無參數(shù)的原語。物理層在接收到該原語后,將產(chǎn)生能量檢測確認原語,把當前信道的狀態(tài)和當前信道的能量值返回給MAC層。在具體的實現(xiàn)中,一般射頻芯片會使用特定寄存器存放當前的信道狀態(tài)信道的能量值。
(3)射頻收發(fā)器的激活和關(guān)閉。出于對低功耗等要求的考慮,在高層無數(shù)據(jù)收發(fā)時,可以選擇關(guān)閉底層射頻收發(fā)器。標準定義了與之相關(guān)的兩個原語:收發(fā)器狀態(tài)設(shè)置請求原語(PLME-SET0TRX-STATE.request)和收發(fā)器狀態(tài)設(shè)置確認原語(PLME-SET-TRX0STATE. confirm)。
收發(fā)器狀態(tài)設(shè)置請求原語由MAC層產(chǎn)生,參數(shù)為需要設(shè)置的目標狀態(tài),包括射頻接收打開、發(fā)送打開、收發(fā)關(guān)閉和強行收發(fā)關(guān)閉。物理層在接收到該原語后,將射頻設(shè)置為對應的狀態(tài),并通過設(shè)置確認原語返回操作的結(jié)果。如果請求原語要求的狀態(tài)與當前的射頻狀態(tài)不沖突,設(shè)備將通過設(shè)置確認原語返回操作成功。當收發(fā)器正在發(fā)送數(shù)據(jù),要求設(shè)置為接收狀態(tài)或關(guān)閉狀態(tài)時,設(shè)置確認原語將返回發(fā)送忙(BUSY-TX)。同樣地,如果收發(fā)器正在接收數(shù)據(jù),卻被要求設(shè)置成發(fā)送狀態(tài)或關(guān)閉狀態(tài),設(shè)置確認原語將返回接收忙(BUSY-RX)。如果收發(fā)器要求設(shè)置的狀態(tài)與當前狀態(tài)一致,設(shè)置確認原語將直接返回該狀態(tài)。如果設(shè)置原語要求的是強行關(guān)閉狀態(tài),則不考慮當前的射頻收發(fā)狀態(tài),直接強制關(guān)閉射頻收發(fā)器。
(4)空閑信道評估(Clear Channel Assessment,CCA)。由于IEEE 802.15.4標準的MAC層采用的是CSMA-CA機制訪問信道,需要探測當前的物理信道是否空閑,物理層提供的CCA監(jiān)測功能就是專門為此定義的。標準專門定義了兩個與之相關(guān)的原語:CCA請求原語(PLME-CCA.request)與CCA確認原語(PLME-CCA.confirm)。
CCA請求原語由MAC層產(chǎn)生,用于向物理層詢問當前的信道狀況,物理層在收到該原語后,如果當前的射頻收發(fā)狀態(tài)設(shè)置為接收狀態(tài),將進行CCA操作(讀取物理芯片中相關(guān)的狀態(tài)寄存器),然后通過CCA確認原語返回信道空閑(IDLE)或信道繁忙(BUSY)狀態(tài)。如果當前射頻收發(fā)器處于關(guān)閉狀態(tài)或者發(fā)送狀態(tài),CCA確認原語將對應返回TRX=OFF或TRX-OFF。
(5)鏈路質(zhì)量指示(LQI)。高層的協(xié)議往往需要依據(jù)底層的鏈路質(zhì)量來選擇路由,物理層在接收一個報文時可以順帶返回當前的LQI值。物理層主要通過底層的射頻硬件支持來獲取LQI。
(6)物理層屬性參數(shù)的獲取與設(shè)置。在協(xié)議棧里面,每一層協(xié)議都維護著一個信息庫(PAN Information Base,PIB)用于管理該層,里面具體存放著與該層相關(guān)的一些屬性參數(shù),如最大報文長度等。在高層可以通過原語獲取或修改下一層信息庫里面的屬性參數(shù)。IEEE 802.15.4物理層同樣維護著這樣一個信息庫,并提供了4個相關(guān)的原語:屬性參數(shù)獲取請求原語(PLME-GET.request)、屬性參數(shù)獲取確認原語(PLME-GET.confirm)、屬性參數(shù)設(shè)置請求原語(PLME-SET.request)和屬性參數(shù)設(shè)置確認原語(PLME-SET.confirm)。
2. MAC層規(guī)范
在無線傳感器網(wǎng)絡(luò)中,存在一個競爭使用問題,因此,和OSI模型不同的是,IEEE 802.15.4標準將無線傳感器網(wǎng)絡(luò)的數(shù)據(jù)鏈路層分為兩個子層,即邏輯鏈路子層(LLC)和介質(zhì)控制訪問子層(MAC),MAC層主要負責解決共享信道問題。
IEEE 802.15.4標準規(guī)定MAC層實現(xiàn)的功能有:
? 采用CSMA/CA機制來解決信道沖撞問題;
? 網(wǎng)絡(luò)協(xié)調(diào)器產(chǎn)生并發(fā)送信標幀,用于協(xié)調(diào)整個網(wǎng)絡(luò);
? 支持PAN網(wǎng)絡(luò)的關(guān)聯(lián)和取消關(guān)聯(lián)操作;
? 支持時隙保障(CTS)機制;
? 支持不同設(shè)備的MAC層間可靠傳輸。
IEEE 802.15.4標準根據(jù)網(wǎng)絡(luò)配置的不同提供了兩種信道訪問機制:在無信標使能的網(wǎng)絡(luò)中采用無時隙的CSMA/CA機制,在信標使能的網(wǎng)絡(luò)中采用帶時隙的CSMA/CA機制。
1)信道的時段分配
在開始講解信道的時段分配之前,我們首先來認識一個概念—超幀。超幀是一種用來組織網(wǎng)絡(luò)通信時間分配的邏輯結(jié)構(gòu),它將通信時間劃分為活躍和不活躍兩個時段,如圖6.5所示。在不活躍期間,PAN網(wǎng)絡(luò)中的設(shè)備不會相互通信,從而進入睡眠狀態(tài)來節(jié)省能量。網(wǎng)絡(luò)的通信在活躍期間進行,活躍期間又可以分為三個階段,即信標幀發(fā)送時段、競爭訪問時段(CAP)和非競爭訪問時段(CFP),總共16個等長的時隙,每個時隙的長度、競爭訪問時段包含的時隙數(shù)等參數(shù)都由網(wǎng)絡(luò)協(xié)調(diào)器來控制設(shè)定,并通過信標幀廣播到整個網(wǎng)絡(luò)。

圖6.5 超幀結(jié)構(gòu)
在競爭訪問時段,設(shè)備通過CSMA/CA機制與網(wǎng)絡(luò)協(xié)調(diào)器通信。非競爭訪問時段又可分為幾個GTS,網(wǎng)絡(luò)協(xié)調(diào)器在這個時段內(nèi)只能與指定的設(shè)備進行通信。網(wǎng)絡(luò)協(xié)調(diào)器在每個超幀時段最多可以分配7個GTS,1個GTS可以占有多個時隙。
在協(xié)議實現(xiàn)時,設(shè)置合適的參數(shù)可以使每個設(shè)備的活躍時段只占超幀周期很短的一部分,設(shè)備大部分時間可以處于睡眠狀態(tài),還可以為低能耗應用提供支持。此外,協(xié)議還可以通過超幀方式實現(xiàn)多簇網(wǎng)絡(luò),每個簇在自己的活躍時段內(nèi)傳送數(shù)據(jù),將各個簇的活躍時段完全錯開,每個設(shè)備在活躍時段內(nèi)與自己的簇頭(協(xié)調(diào)器)通信,以此實現(xiàn)創(chuàng)建信道無沖突的訪問。不過這種方式需要整個網(wǎng)絡(luò)保持精確的時鐘同步,并且中間協(xié)調(diào)器要維護本簇內(nèi)的信標同步,又要與其父節(jié)點實現(xiàn)信標同步。
2)CSMA/CA算法
在CAP內(nèi),各個設(shè)備采用CSMA/CA機制競爭訪問信道,在設(shè)備與網(wǎng)絡(luò)協(xié)調(diào)器之間傳送數(shù)據(jù)幀或命令幀(不包含信標幀與應答幀)。CSMA/CA機制的時間計算以回退周期(Backoff Period)為單位,可以理解為將整個CAP離散地劃分成多個回退周期,然后CSMA/CA里面的所有時間長度都以多少個回退周期來度量。特別地,在基于時隙的CSMA/CA機制里,回退周期必須與超幀邊界保持對齊,對于非時隙的CSMA/CA沒有這個限制。
CSMA/CA算法的流程如圖6.6所示,每個采用CSMA/CA算法的設(shè)備需要維護三個變量:NB、CW和BE。NB記錄在當前幀傳輸時已經(jīng)回退的次數(shù),初始值設(shè)置為0,每回退一次值增加1。CW記錄競爭窗口的尺寸,即監(jiān)測到信道空閑后還需等待多長時間才能真正開始發(fā)送數(shù)據(jù),初始值為2,這個變量僅用在基于時隙的CSMA-CA中,在非時隙的CSMA/CA中監(jiān)測到信道空閑后將立即發(fā)送。BE是一個回退指數(shù),指在沖突后再次開始監(jiān)測信道需要等待的時間(2BE?1),BE的初始值為一個常數(shù),不同網(wǎng)絡(luò)設(shè)置的BE值不同。在信道訪問期間,由于CCA監(jiān)測要求將射頻收發(fā)器置為接收狀態(tài),這時將直接忽略接收到的數(shù)據(jù)。
按要求初始化上述參數(shù)后,對于基于時隙的CSMA/CA算法,需要首先定位到回退時間的邊界,然后等待指定的時間,開始CCA信道探測,直到信道為空閑狀態(tài)后,再等CW個回退周期長度,最后發(fā)送數(shù)據(jù)。考慮到CAP與CFP的邊界,發(fā)送程序必須確保當前的數(shù)據(jù)可以在CAP內(nèi)完成,才會進行發(fā)送,否則將保存到下一個超幀中發(fā)送。非時隙的CSMA/CA機制算法更簡單,沒有競爭窗口的概念,也不用定位到回退時間的邊界,監(jiān)測到空閑信道后就可以直接發(fā)送數(shù)據(jù)。在發(fā)送過程中,如果多次探測信道的結(jié)果都為忙(NB大于某個設(shè)定的值),則需要向上層報告發(fā)送失敗,由上層處理。
為減少沖突以提高整個網(wǎng)絡(luò)的吞吐量,在兩種特殊情況時不采用CSMA/CA進行數(shù)據(jù)的發(fā)送:一種是應答幀,另外一種就是緊接在數(shù)據(jù)請求幀之后的數(shù)據(jù)幀,它們可以直接發(fā)送。
3)數(shù)據(jù)傳輸模型
LR WPAN中存在三種數(shù)據(jù)傳輸方式,即設(shè)備發(fā)送數(shù)據(jù)給網(wǎng)絡(luò)協(xié)調(diào)器、網(wǎng)絡(luò)協(xié)調(diào)器發(fā)送數(shù)據(jù)給設(shè)備、對等設(shè)備之間的數(shù)據(jù)傳輸。星狀拓撲網(wǎng)絡(luò)中只存在前兩種數(shù)據(jù)傳輸方式,因為只在網(wǎng)絡(luò)協(xié)調(diào)器與設(shè)備之間交換數(shù)據(jù);而在點到點拓撲網(wǎng)絡(luò)中,三種數(shù)據(jù)傳輸方式都存在。同時標準還提供兩種可以選擇的通信方式,即信標使能通信(Beacon-Enabled)和無信標使能通信(Nonbeacon-Enabled)。
在信標使能的網(wǎng)絡(luò)中,網(wǎng)絡(luò)建好后,網(wǎng)絡(luò)協(xié)調(diào)器周期性廣播信標幀以標示超幀的開始。在這種方式下,如果設(shè)備需要傳輸數(shù)據(jù)給網(wǎng)絡(luò)協(xié)調(diào)器,則設(shè)備在收到網(wǎng)絡(luò)協(xié)調(diào)器廣播的信標幀后將進行網(wǎng)絡(luò)同步,定位各時隙,然后采用基于時隙的CSMA-CA信道訪問機制在競爭訪問時段內(nèi)進行信道競爭訪問,最后完成數(shù)據(jù)的傳輸。設(shè)備依據(jù)上層的要求,在傳輸?shù)膸性O(shè)置是否需要應答,網(wǎng)絡(luò)協(xié)調(diào)器據(jù)此發(fā)送應答幀。如果網(wǎng)絡(luò)協(xié)調(diào)器需要傳輸數(shù)據(jù)給目標設(shè)備,則網(wǎng)絡(luò)協(xié)調(diào)器在信標幀中攜帶目標設(shè)備相關(guān)信息;目標設(shè)備在收到信標幀后,采用基于時隙的CSMA/CA機制發(fā)送MAC層數(shù)據(jù)請求命令幀。網(wǎng)絡(luò)協(xié)調(diào)器首先按要求決定是否發(fā)送應答幀,然后也采用基于時隙的CSMA/CA機制把數(shù)據(jù)發(fā)送出去。在得到確認后,網(wǎng)絡(luò)協(xié)調(diào)器從自己的發(fā)送緩存中刪除對應的數(shù)據(jù);若未收到確認,網(wǎng)絡(luò)協(xié)調(diào)器重發(fā)數(shù)據(jù)。在信標使能的網(wǎng)絡(luò)中,如果存在應答確認幀,則其一般直接跟在對應幀后傳輸給源設(shè)備,不采用信道競爭訪問,因為應答幀長一般比較短。

圖6.6 CSMA/CA算法的流程圖
在無信標使能的網(wǎng)絡(luò)中,網(wǎng)絡(luò)協(xié)調(diào)器不發(fā)送信標幀,各個設(shè)備采用無時隙的CSMA/CA機制訪問信道,完成信息的傳輸。在這種方式下,如果設(shè)備需要傳輸數(shù)據(jù)給網(wǎng)絡(luò)協(xié)調(diào)器,設(shè)備將直接采用非時隙的CSMA/CA機制將數(shù)據(jù)傳送給網(wǎng)絡(luò)協(xié)調(diào)器;網(wǎng)絡(luò)協(xié)調(diào)器同樣依據(jù)數(shù)據(jù)幀中的應答域來決定是否發(fā)送應答幀。如果網(wǎng)絡(luò)協(xié)調(diào)器需要傳輸數(shù)據(jù)給目標設(shè)備,由于沒有信標幀,網(wǎng)絡(luò)協(xié)調(diào)器只能為目標設(shè)備保存好數(shù)據(jù),然后被動地等待目標設(shè)備的數(shù)據(jù)請求命令幀。目標設(shè)備可能會根據(jù)應用層的要求周期性地詢問網(wǎng)絡(luò)協(xié)調(diào)器,網(wǎng)絡(luò)協(xié)調(diào)器通過回應一個確認幀表示是否有數(shù)據(jù)存在,如果有,網(wǎng)絡(luò)協(xié)調(diào)器同樣采用無時隙的CSMA/CA機制發(fā)送數(shù)據(jù)給目標設(shè)備。在無信標使能的網(wǎng)絡(luò)中,如果存在應答幀,也直接跟在對應幀后傳輸給源設(shè)備,而不采用信道競爭訪問機制。
在點到點的IEEE 802.15.4網(wǎng)絡(luò)中,每個設(shè)備均可以與其無線輻射范圍內(nèi)的設(shè)備進行通信。為了保證通信的有效性,這些設(shè)備需要持續(xù)保持接收狀態(tài)或?qū)崿F(xiàn)嚴格的同步。
3. MAC層的幀格式
MAC層幀結(jié)構(gòu)的設(shè)計目標就是在保持低復雜度的前提下,實現(xiàn)多噪聲無線信道環(huán)境下的可靠數(shù)據(jù)傳輸。MAC幀格式如圖6.7所示。

圖6.7 MAC幀格式
每個MAC層的幀包括三部分:幀頭、負載和幀尾。幀頭由幀控制信息、幀序列號和地址信息組成。負載長度大小可變,具體內(nèi)容由幀類型決定。幀尾是一個16位的FCS校驗碼。
- 連接未來:從古登堡到谷歌的網(wǎng)絡(luò)革命
- Modern JavaScript Web Development Cookbook
- 網(wǎng)管員典藏書架:網(wǎng)絡(luò)管理與運維實戰(zhàn)寶典
- Hands-On Full Stack Development with Spring Boot 2 and React(Second Edition)
- 計算機網(wǎng)絡(luò)工程實用教程(第2版)
- 數(shù)字通信同步技術(shù)的MATLAB與FPGA實現(xiàn):Altera/Verilog版(第2版)
- 電力物聯(lián)網(wǎng)工程技術(shù)原理與應用
- Getting Started with Grunt:The JavaScript Task Runner
- 城域網(wǎng)與廣域網(wǎng)(第2版)
- INSTANT KineticJS Starter
- 物聯(lián)網(wǎng)與智能家居
- Learning Windows 8 Game Development
- 大型企業(yè)微服務架構(gòu)實踐與運營
- 網(wǎng)絡(luò)空間全球治理觀察
- Selenium WebDriver 3 Practical Guide