李蔚,童玲,田雨
(電子科技大學自動化工程學院,成都611731)
李蔚(碩士研究生),研究方向為測控技術與儀器;童玲(教授、博士生導師),研究方向為測試計量技術及儀器;田雨(講師、博士),研究方向為微波與通信測試。
微機電系統(tǒng)、片上系統(tǒng)、無線通信和低功耗嵌入式技術的飛速發(fā)展孕育出無線傳感器網(wǎng)絡(wireless sensor networks,WSN),并以其低功耗、低成本、分布式和自組織的特點帶來了信息感知的一場變革。無線傳感器網(wǎng)絡具有能量受限、多跳通信、拓撲結構頻繁多變等特征[1]。ZigBee[2]規(guī)范是基于IEEE802.15.4[3]標準的,具有低傳輸速率、低功耗、協(xié)議簡單、時延短、網(wǎng)絡容量大、優(yōu)良的網(wǎng)絡拓撲能力等優(yōu)點。這些優(yōu)點極好地支持了無線傳感器網(wǎng)絡,因此許多研究機構把ZigBee作為事實上的無線傳感器網(wǎng)絡國際標準[4]。
如圖1所示,無線傳感器網(wǎng)絡的體系結構類似于TCP/IP協(xié)議體系,由物理層、數(shù)據(jù)鏈路層(MAC)、網(wǎng)絡層、傳輸層和應用層組成[5]。物理層負責數(shù)據(jù)的調制解調、信道編碼、無線發(fā)送與接收;MAC層負責數(shù)據(jù)成幀、幀檢測、媒體訪問和差錯控制;網(wǎng)絡層負責路由生成與路由選擇,維護等;傳輸層負責控制數(shù)據(jù)流的傳輸,保障數(shù)據(jù)通信質量。
本文以TI公司推出的符合IEEE802.15.4標準芯片CC2531為核心的硬件平臺。CC2531以8051微處理器為內核,自身攜帶的射頻收發(fā)模塊既滿足無線通信需求,又滿足了低功耗設計。
在無線傳感器網(wǎng)絡中,網(wǎng)絡層是體系結構中的核心,主要功能:
①為上層提供網(wǎng)絡管理接口,上層可通過接口有效監(jiān)視、控制網(wǎng)絡運行,查詢路由表、鄰居表等信息;
②負責路由生成與維護,路由選擇及數(shù)據(jù)轉發(fā)。
圖2是ZigBee規(guī)范給出的網(wǎng)絡層的參考模型。數(shù)據(jù)服務可以通過網(wǎng)絡層數(shù)據(jù)服務訪問點訪問(NLDE_SAP),管理服務可以通過網(wǎng)絡管理服務訪問點(NLME_SAP)訪問。
圖1 無線傳感器網(wǎng)絡體系結構
圖2 網(wǎng)絡層參考模型
如圖3所示,網(wǎng)絡層的數(shù)據(jù)服務分為發(fā)送和接收服務。網(wǎng)絡層接收到MAC數(shù)據(jù)幀,由函數(shù) handle_mcps_data_ind()對其進行解析,交給網(wǎng)絡層數(shù)據(jù)幀或命令幀處理函數(shù)處理。對于網(wǎng)絡層數(shù)據(jù)幀,處理函數(shù)將判斷自己是否是目的地或該幀是否是廣播幀。如果是,則送上層處理;反之將數(shù)據(jù)幀交給轉發(fā)函數(shù) nwk_forward()處理,為該幀尋找路由,并通過發(fā)送函數(shù)nwk_tx()發(fā)送到MAC層。對于需要轉發(fā)的命令幀,則同樣交由轉發(fā)函數(shù)處理。
圖3 網(wǎng)絡層數(shù)據(jù)服務實現(xiàn)
對于上層實體,可通過 nlde_data_request()發(fā)送數(shù)據(jù),網(wǎng)絡層同樣將交由轉發(fā)函數(shù)處理并發(fā)送出去。轉發(fā)函數(shù)在發(fā)送和接收處理過程中,實現(xiàn)網(wǎng)絡層一個重要功能,即數(shù)據(jù)幀選擇路由,或選擇性地把數(shù)據(jù)幀緩沖起來并發(fā)起路由發(fā)現(xiàn)。
網(wǎng)絡管理服務主要是為上層提供網(wǎng)絡管理接口。
網(wǎng)絡的建立進程由協(xié)調器上層通過調用nlme_network_formation_req()發(fā)起。首先通過調用MAC層的能量掃描服務,對指定的信道進行能量檢測。掃描完成之后選擇能量可接受范圍的信道,接著調用MAC層的主動掃描服務對選擇出來的信道進行網(wǎng)絡發(fā)現(xiàn)。主動掃描完成之后,選擇存在網(wǎng)絡最少的信道,進行網(wǎng)絡建立。
設備加入網(wǎng)絡進程是設備的上層通過調用nlme_discovery_network_req()發(fā)起的。函數(shù)首先調用MAC層的主動掃描服務在指定信道上進行網(wǎng)絡發(fā)現(xiàn),旨在發(fā)現(xiàn)通信范圍內的網(wǎng)絡設備,并存儲到自己的鄰居表中。網(wǎng)絡發(fā)現(xiàn)完成之后,選擇一個網(wǎng)絡深度最小設備作為父節(jié)點,并發(fā)出入網(wǎng)請求。父節(jié)點收到入網(wǎng)請求之后,給請求設備分配一個網(wǎng)絡地址并附在請求響應中。請求設備接收到響應之后,設備成功的加入網(wǎng)絡。
設備離開網(wǎng)絡的進程是上層通過調用nlme_leave_req()發(fā)起的,函數(shù)將廣播一個離開命令,其他設備收到離開命令后,將刪除對應設備的路由表項和鄰居表項,表示設備已經(jīng)離開了網(wǎng)絡。
路由算法是網(wǎng)絡層的核心和難點,無線傳感器網(wǎng)絡的應用特點要求路由算法簡單高效。本文基于ZigBee規(guī)范,主要實現(xiàn)最小路由成本的多跳路由算法和多對一路由算法。最小路由成本算法是以最小路由成本選擇最優(yōu)路徑,多對一路由算法是輔助算法。為了減輕匯聚節(jié)點附近的節(jié)點負載,本文把支持該算法的設備定義為集中器。為實現(xiàn)路由算法,本文制定了3個命令:路由請求命令、路由響應命令、路由記錄命令。同時制定3種表:路由表(表1)、路由發(fā)現(xiàn)表(表2),路由記錄表(表3)。路由器需要維護路由發(fā)現(xiàn)表和路由表,集中器需要維護3種表。
表1 路由表項
表2 路由發(fā)現(xiàn)表項
表3 路由記錄表項
路由發(fā)現(xiàn)的發(fā)起一般在轉發(fā)函數(shù)處理過程中,沒有相應到目的設備的路由時,則調用nwk_init_discovery_route()發(fā)起路由發(fā)現(xiàn)。該函數(shù)將檢查路由發(fā)現(xiàn)表,看其是否有與發(fā)起者和路由請求命令幀序列號相對應的表項。如果有,則認為已經(jīng)發(fā)起了路由發(fā)現(xiàn),這時就可以等待路由發(fā)現(xiàn)完成;反之,則廣播一般的路由請求命令,同時向路由發(fā)現(xiàn)表添加新的表項,表項的路由請求命令幀序列號設為路由請求命令幀的序列號,發(fā)起者地址設為節(jié)點地址,發(fā)送者地址設為發(fā)送路由請求命令的地址,累積的前向成本設為0。網(wǎng)絡層還需向路由表添加新的表項,表項的目的地址設置目的設備的地址,狀態(tài)域設置為路由發(fā)現(xiàn)中其他標志域名都設置為FALSE。
對于支持多對一路由算法的集中器,路由發(fā)現(xiàn)的發(fā)起是周期性的,廣播多對一路由請求命令幀,路由請求的目的地址為廣播地址,這是為了讓其他設備可以維持到集中器的路由。集中器不用添加新的路由表和路由發(fā)現(xiàn)表項。
其他設備接收到廣播的路由請求命令時,分為一般路由請求和多對一路由請求處理。處理一般的路由請求的處理流程如圖4所示。
圖4 處理一般路由請求流程
對于多對一路由請求,路由發(fā)現(xiàn)表項的處理和一般的路由請求的處理是一樣的,區(qū)別在于路由表中是建立到集中器的路由。路由表項的Many-to-one域和路由記錄發(fā)起域設為TRUE,同時還應轉發(fā)該路由請求命令幀。
路由回復命令是一般的路由請求發(fā)起的,設備的接收到路由回復命令時,處理流程如圖5所示。
集中器周期性發(fā)起路由發(fā)現(xiàn)時,接收設備都建立了到集中器的路由,但集中器并沒有到其他設備路由。多對一路由算法采取了一種策略:設備在向集中器發(fā)送數(shù)據(jù)之前,向集中器發(fā)送一個路由記錄命令,目的是讓集中器可以記錄設備轉發(fā)數(shù)據(jù)的路徑,路徑是由到集中器的路由確定。初始時,路由記錄命令在載荷域記錄當前設備的地址,中繼計數(shù)記為1。
圖5 處理路由回復流程
設備接收到路由記錄命令時,把自己的網(wǎng)絡地址附在命令幀的載荷中,并把中繼計數(shù)加1,同時轉發(fā)該路由記錄命令到下一跳設備。如果是集中器接收到路由記錄命令,則向路由記錄表添加新的表項,表項的目的地址域設為路由記錄命令的發(fā)起者,中繼計數(shù)設為命令幀載荷中的中繼計數(shù),載荷中的地址集合則存儲在路徑域。
當集中器向設備發(fā)送數(shù)據(jù)時,則把相應的路由記錄表項的路徑域附在數(shù)據(jù)幀中,設備中繼該數(shù)據(jù)幀時,則根據(jù)數(shù)據(jù)幀的路徑域來轉發(fā)到目的設備。
本文的實現(xiàn)方案在CC2531的硬件平臺上進行了驗證,實驗表明,路由算法滿足無線傳感網(wǎng)絡的多跳通信和低功耗要求,同時有效減輕了網(wǎng)絡設備的負載。網(wǎng)絡組網(wǎng)具有自組織性,網(wǎng)絡管理接口擴展性強。
[1]Akyildiz IF,Su W,Sankarasubramaniam Y,et al.A Survey On Sensor Networks[J].IEEE Communications M agazine,2002,40(8):102-114.
[2]ZigBee Alliance.ZigBee Specification ZigBee Document 053474r17[S],2008-01-17.
[3]IEEE 802.15.4-2003.Wireless Medium Access Control(MAC)and Physical Layer(PHY)Specification for Low Rate Wireless Personal Area Networks[S],2003.
[4]孫利民,李建中,陳渝.無線傳感器網(wǎng)絡[M].北京:清華大學出版社,2005.
[5]王殊,等.無線傳感器網(wǎng)絡的理論及應用[M].北京:北京航空航天大學出版社,2007.