趙 坤,陳子平,夏勇明,錢松榮
無線傳感網(Wireless Sensor Network,WSN)結合了無線通信技術與傳感器技術,采用專用的通信方式從而將感知從復雜的高成本的有線數據傳輸中解脫出來。WSN由大量的廉價終端傳感節點和網絡支撐節點組成,這些節點通過各種類型的傳感器完成環境信息的搜集,通過無線網絡來完成監控區域信息的傳輸、處理和響應,廣泛于包括人員監控、戰場感知、設施農業、安全監測和工業自動化等。
隨著無線傳感網應用中節點規模的增長,必須對節點與WSN網絡狀況進行有效的監控、管理和組織、實時響應故障、調整運行參數、提供安全的訪問、以保證WSNs的資源有效分配、有效組織與有效維護。無線傳感網管理系統(WSN Management System,WSNMS),是在無線傳感網基礎上的管理系統,是保障無線傳感器網絡靈活、有效、可靠和安全地滿足系統設計目標的支撐技術,對于傳感器網絡具有重要的意義,是無線傳感器網絡大規模應用的關鍵技術之一。具體來說,WSN網絡管理有兩個功能,首先,它能夠監視和控制WsN的運行狀態,使之能夠提供可靠、有效、安全和經濟的服務;其次,它基于對運行狀態的監視,提供WSN的狀態控制。第一個任務的目標是發現系統瓶頸和系統隱患,第二個任務則是通過合理的控制和調整,提升系統性能以保證提供可靠的服務[1]。
需要指出的是,現在WSN仍然沒有像數十年前想像的那樣得到大規模推廣,其原因大致可以歸結為以下幾點:
1) WSN節點的處理器-通信芯片和傳感器件的成本仍然太高,并沒有達到實現所謂的“一美元節點”的水平;
2) WSN技術仍然局限太大,以最廣泛使用的ZigBee為例,盡管理論上支持65536個節點,但在PAN內節點超過數百個時,會發生信道阻塞情況,從而發生某些節點不可到達的狀況,這種不可靠的狀況可以部分歸因于這些低功耗低成本器件工作于高度擁擠的ISM頻段;
3) 很多應用部署起來太困難,使得其很難得到推廣;
4) 缺乏通用的大規模系統架構。
應用現有的一些WSN協議標準在實際使用時,會很大地制約WSN應用的規模。
本文作者就上述問題的一部分,在一個具體涉及人員安防監控項目中,提出了一種大規模的空間高密度節點WSN集群的構建方法,并開發了名為Sumlock的原型系統,采用德州儀器(TI)的CC2530與CC430芯片作為WSN節點構建了異構WSN集群,分別使用了Z-Stack和底層開發,作為系統感知層,采用Friendly ARM mini2440在其上基于Linux 2.6.32用C++語言編寫構建了WSN網關Agent作為系統網絡層,以SQL Server 2008和C#.Net技術開發了系統應用層。
Sumlock架構的設計目標是:
a) 可擴展能力,特別地,Sumlock非常關注實現空間高密度特點的應用解決方案;
b) 異構WSN支持能力;
c) 通用性,獨立于具體的WSN應用領域,抽象出統一指令集與傳輸協議和管理協議;
d) 快速部署能力。
囿于篇幅限制,本文無法闡述全部的技術細節,將會就一些重要的設計,特別是作者主要參與的感知層和網絡層的設計實現方法進行討論。文章將按下述結構組織第1章將介紹相關的技術背景。第2章介紹相關的硬件架構設計與組織。第3章介紹Sumlock的高層次架構和系統調試設計方法。第4章介紹Sumlock的感知層設計與實現。第5章介紹Sumlock的網絡層設計與實現。最后,第6章給出相關的測試結果。
L.B.Ruiz在2003年提出了WSNMS的概念,設計了MANNA架構,從3個層面對WSNMS進行了定義,包括功能架構,信息架構和物理架構,但并未具體實現,后續的一些研究也尚處于理論研究階段。這篇文獻指出,按照具體的拓撲結構,這種規模化的WSNMS大致可以分為集中式,分布式和分級式的架構[2]。
在集中式管理系統中,如BOSS、MOTE-VIEW、WSNView,和Sympath等等,管理站點從其他節點獲取到信息并且控制整個WSN的運行。相對來說,管理站點可以有近乎無限的資源,因此它可以實施很復雜的管理任務,減少WSN內節點的運算和存儲負擔。另外,居于一個中央的地位,管理站點也可以輕易地獲取關于WSN的一個全局的信息以作出正確的管理決策。但集中式的管理站點也會有一些缺陷,比如像在匯聚節點會造成很大的通信流量,匯聚節點與管理站之間會有很大的額外通信開銷,而且一旦中央服務器發生故障,則會令整個WSN陷入癱瘓。
分布式網絡管理系統,諸如Agilla和Sectoral Sweeper一類WSN節點級別的管理,它們具有多個管理站,每個管理站控制一個子網絡,每個子網絡的管理站可以跟其它的子網管理站通信來保持協作管理。
由于分布式系統的本地化管理策略降低了網絡開銷,避免了網絡瓶頸,但是它的缺陷在于它過于復雜而且配置很困難,而在節點上直接進行的網絡管理。
在分級式管理系統中,如TopDisc,STREAM,RRP,WinMS和PFMA等等系統架構上,也是有多個管理站,但是這些管理站分為一般管理站與中繼管理站,一般而言,中繼管理站負責分布網絡管理的相關處理,但中繼管理站之間不進行通訊。每個一般管理站負責該個子網的網絡管理。每個一般管理站用于采集下層子網的數據并向上層轉發,同時也接收上層管理站的命令解析發給下面的子網,很容易看到,分級式網絡管理系統是介于集中式網絡管理和分布式管理之間的一種管理方案。
隨著WSN應用的增長,WSN的管理變得越來越重要。鑒于上述各類網絡系統各有其優缺點,我們需要一種方法盡可能多地采用其優點而且盡可能多地回避其缺點。
在我們前面所做的研究[1]中提出一種3層異構網絡管理的架構,但當時尚未對其系統實現和實證研究,本文依據其主要架構思想,實施了該架構,并進行相應的驗證工作。
需要提及的是幾個已經完成或者正在進行中的WSN項目:
EMMON[4],這是目前在歐洲最大規模的一個WSN試驗項目,目前網絡容納超過300個節點,EMMON2架構也正在實施,EMMON的架構與本文有相關性,其對空間高密度的WSN的解決思路上與Sumlock是一致的,但是EMMON的架構是基于IEEE 802.15.4標準構建,其對協議的定義主要是針對是同構的無線傳感網絡的, Sumlock則對異構WSN進行了支持,對已存在的應用,可以進行相應的組件移植便可融合構造協同網絡,這種前向兼容性使得Sumlock更適用于對一些已經存在的小規模WSN進行升級擴展整合。
ExScal使用瓶頸數量在200多個節點的WSN節點構建了包含了1000多個節點的LS-WSN,應用于入侵檢測領域,該項目是迄今布署的最大的WSN項目,但其完全標準化的網絡拓撲使得其應用非常局限。
VigilNet試圖構建的是集成生存系統,著力在功耗控制方面,目標是在現有硬件的條件下,實現持續工作至少3~6個月,與本文關系不大。
Tenet關注于WSN應用開發的簡化和軟件重用技術,設計采用兩層架構,分別是處理能力很弱的低層和處理能力較強的高層,Tenet的思想是底層的設備不參與處理,而只負責采集,由處理能力相對較強的高層設備來完成信息的處理工作,與本文關系不大。
如圖1所示:

圖1 Sumlock的硬件框架
如圖1所示,Sumlock的硬件架構包括3層,最上層為應用層,硬件上主要包括服務器、數據庫與客戶端,集中處理采集到的數據,響應用戶請求,存儲相關數據。對WSN事件進行快速響應。
網絡層負責進行區域內的WSNs之間的協調、互聯以及管理工作以及對數據的轉發。
感知層主要是各種相對獨立的WSNs,實驗中采用了CC2530構建了兩個ZigBee網絡,CC430構建了一個非ZigBee網絡,前者工作于2.4 GHz頻段,后者工作于 433 MHz頻段,其硬件實物,如圖2所示:

圖2 Sumlock系統Demo的硬件實物
感知層采用異構組網,其中,采用CC2530搭載ZStack協議棧組建了運行了2.4 GHz的ZigBee網絡,該網絡應用于安防監控與人員定位,采用CC430構建了無協議方式通信(點對點,廣播)的網絡[3],用于設施農業環境監測,能夠實時地將各個標簽捕獲的信息存儲并顯示,并參照一些農作物生長模型合理提醒報警。
CC2530結合了一個完全集成的,高性能的RF收發器與一個8051微處理器,8 kB的RAM ,32/64/128/256 KB閃存,以及其他強大的支持功能和外設。射頻部分采用巴倫匹配和外置高增益SMA天線,接收靈敏度高。
CC430網絡用的芯片是TI公司生產的超低功耗CC430,該芯片集成了單片機MSP430和無線傳輸模塊CCll01,比普通的兩塊芯片面積減少50%的覆蓋面積[3]。
圖展示的是項目DEMO中WSN匯聚節點的硬件實物,包括兩個由CC2530構成的ZigBee協調器和一個由CC430構建的非標準網絡的匯聚節點,終端節點的硬件實物,如圖3所示:

圖1 終端節點的硬件實物圖
基礎協議棧上,CC2530搭載了Z-Stack協議棧,Z-Stack采用操作系統的思想來構建,其硬件實物,如圖4所示:

圖4 Sumlock系統匯聚系統硬件實物圖
采用事件輪循機制,當各層初始化之后,系統進入低功耗模式,當事件發生時,喚醒系統,開始進入中斷處理事件,結束后繼續進入低功耗模式。如果同時有幾個事件發生,判斷優先級,逐次處理事件。這種軟件構架可以極大地降級系統的功耗。Z-Stack采用分層的架構方法,主要的層次有OSAL層,NWK層,HAL層,MAC層和PHY層,以及輔助的ZDO接口和用于管理調試的MT層。Sumlock在實際架構的時候,對Z-Stack的一些細節進行修改,不關涉架構體系,不在此處贅述。
而CC430的部分則是采用的自定義協議,無線數據幀結構包括8*n的前導比特、16/32比特的同步字市、8比特的長度、8比特的地址字節、8*n比特的數據域和16比特的CRC 校驗[3]。
網絡層的目標是提供相對一般化的無線傳感網管理功能,提供對計算機網絡信息轉發,解析并執行相關的命令并進行有效的監控。網絡層主要由WSN網關和相應的服務器中間件構成,如圖5所示:

圖5 Sumlock網絡層的軟件層次
WSN網關采用ARM+linux+yaffs的嵌入式系統的基礎架構來完成主要功能。ARM板采用mini2440開發板,該板采用三星s3c2440為處理器,系ARM7內核處理器,板載DM9000網卡芯片和串口等外設。采用linux-2.3.26內核和yaffs2文件系統。bootloader選用了vivi,如圖6所示:

圖6 Sumlock系統WSN網關硬件與設備端口
為配置和系統調試上的便利,在系統中移植了包括FreeTDS,BOA服務器等在內的組件,其中,FreeTDS是為WSN網關直接訪問SQL SERVER服務器而引入的,FreeTDS為Linux系統提供了TDS協議的開源客戶端。由于Microsoft SQL Server使用的恰是TDS協議,所以在Linux中可以用FreeTDS連接Microsoft SQL Server,后文將會闡釋引入FreeTDS的原因。
BOA是一種非常小巧的Web服務器,其可執行代碼只有大約60KB左右,源代碼開放、性能高。作為一種單任務Web服務器,Boa只能依次完成用戶的請求,而不會fork出新的進程來處理并發連接請求。但Boa支持CGI,能夠為CGI程序fork出一個進程來執行。Boa的設計目標是速度和安全。BOA的引入,是為WSN在開發調試過程中引入用戶配置環境,如圖7所示:

圖7 Sumlock的WSN的console模式
還有一些邊緣的電路設計,包括串口電平轉換,總線協議轉換、操作系統的移植、驅動編寫和組件移植等等技術細節,也是無關架構,就不在此處一一列舉了。
為避免歧義,術語WSN在下文中專指運行于單一信道的無線傳感網。Sumlock架構設計的主要目標是解決在區域空間高密度節點的情形下,提供有效的解決方案,使得基于WSN的系統能夠有效運行,在此基礎上,提供對全域范圍內WSNs的有效管控。其核心思想,是利用多信道覆蓋節點密集區域,以避免單一信道所可能帶來的節點上限瓶頸,而現有的WSN成熟技術和應用通常運行于單一信道,采用多信道的方案會面臨多個WSN之間互聯通信的問題,解決這一矛盾會有兩種思路:
a) 利用WSN通信方式解決WSN間的通信問題;
b) 利用非WSN通信方式解決WSN間的通信問題。
對于a)方法,在我們前面的研究中已經指出,其實質是用一個公共節點作為網關,在運行周期內以分時方式加入各個WSN并對其進行數據采集和其他的管控工作,其問題是業務邏輯上的匯聚節點在協議上是一個公共子節點,其分時方式一方面會加劇WSN的通信負載,另一方面,這個網關匯聚節點在節點密集時得不到相適應的通信優先級。
因此,要根本解決WSN間通信問題,非WSN通信方式的WSN間通信解決方案更有效。Sumlock采用的是基于串口通信協議的多接口通信方案。
盡管Sumlock支持異構WSN架構,但是它同樣具有一些同構WSN的功能,主要是匯聚節點的負載均衡,這是解決空間高密度應用的核心技術,提供了在區域內均衡各個同構WSN的負載的功能。
Sumlock的布署模式是“一區一網關多WSN”,在WSN啟動,匯聚節點發起注冊的時候,會向網關申報系統類型、設備類型與工作信道,網關將以此為基準來進行同構系統識別和負載均衡調整。
在開發的過程中,為實現相應的分離層次開發,在調試模式使用了數據庫作為中間媒介,作為網絡層與應用層的調試接口,這是前面在網絡層中引入FreeTDS組件的原因,待邏輯層面的調試無誤后再行轉到Socket。采用BOA服務器是提供一個配置的接口,使得配置可視化,把配置工作從與系統開發相關的工作中分離出來。
本項目將以CC2530上基于Z-Stack的開發舉例說明感知層的設計。整體將在調用改進的Z-Stack的OSAL層、HAL層與MT層API基礎上進行開發。
ZigBee分配的用戶NV空間范圍為0x0201~0x0FFF。其他地址由各層使用。在Sumlock-ZStack感知層設計中,擴展了這個地址,原來的NV空間地址為0x0010 0201~0x 0010 0FFF作為傳感器等的讀寫地址,具體的地址解析工作是由具體應用來定義的。
作為所有的在同一系統內識別的基本信息(System Identify Information,SII),是Sumlock的設備必須進行定義的,用于識別系統類型、設備類型與設備唯一標識,包括以下部分,如表1所示:

表1 Sumlock-ZigBee的SII地址定義
前文提到過,WSN網關與匯聚節點(Sink Node/Cluster Head),
感知層匯聚節點接受的串口指令集由以下部分組成:
1) WSN管理指令
2) WSN數據讀寫指令
3) 調試指令
WSN管理指令格式:

0xDA 數據長度 0x3x xx 數據內容 校驗字節1byte 1 byte 2bytes N bytes 2 bytes
響應包/事件包:

0xDA 數據長度 0x4x xx 數據內容 校驗字節1byte 1 byte 2bytes N bytes 2 bytes
WSN透明數據讀寫指令:

0xDA 數據長度0x71 xx目標地址擴展NV空間索引校驗字節

1byte 1 byte 2bytes 8 bytes 4 bytes 2 bytes
響應包:

0xDA 數據長度0x72 xx目標地址數據(明文)校驗字節1byte 1 byte 2bytes 8 bytes N bytes 2 bytes
WSN權限數據讀寫指令:

0xDA 數據長度0x73xx 目標地址擴展NV空間索引校驗字節1byte 1 byte 2bytes 8 bytes 4 bytes 2 bytes
響應包

0xDA 數據長度0x74 xx目標地址數據(密文)校驗字節1byte 1 byte 2bytes 8 bytes N bytes 2 bytes
調試指令:

0xDA 數據長度 0x01 xx 數據內容 校驗字節1byte 1 byte 2bytes N bytes 2 bytes
Sumlock-ZStack的WSN匯聚節點亦即ZigBee的協調器(Coordinator),在啟動后自行組網,并向默認的UART口周期性地(默認是5s)發起連接請求(0x4030包),在網關正確響應請求后建立起一個空的域內節點映射表。WSN網關隨后會發出節點信息搜集指令(0x3002包)。
匯聚節點在收到該命令后,其OTA模式進入域內標簽發現模式,將廣播一個無線RSSI與SII請求(OTA,0x80簇),標簽/路由將自己的System ID,DeviceType,DeviceID和IEEE Addr用公鑰加密后給Coordinator(OTA,0x81簇),Coordinator解析相關信息,填寫串口0x4031幀信息,送給上位機,返回給標簽一個回執(OTA,0x82簇),確認入網。
搜集標簽超時事件發生后,Coordinator轉入空閑狀態。如有網絡狀態發生變化,則再次廣播(OTA,80簇),保持上位機的網絡狀態表更新。
其它的管理指令響應過程類似,大體的流程,如圖8所示:

圖8 Sumlock-Zigbee的Coordinator主要工作流程
網絡層采用消息驅動架構,如圖9所示:

圖9 Sumlock網絡層的主要層次
具體地,使用了select/pool查詢文件描述符,這種架構較好地適應了上位機和下位機事件。采用select/pool而非epool的原因是,考量實際應用的狀況,接入WSN個數超過select所能接受的1024個的上限是完全足夠的,而在上位機,接入的是LAN,且是對單一的客戶請求進行響應,所以并不會產生大量的socket請求。
在協議驅動層上,設計采用了協議標準化的方法,即將消息進行格式標準化提供給事件處理層處理。而業務邏輯層則定義了與應用相關的一些業務邏輯,并將其交給協議驅動層進行相應的轉發工作,業務邏輯層的另一個功能是進行相應的配置管理工作,還有一個功能則是執行一些定時任務,如設置一些定時查詢任務等等。
Sumlock架構的實現證明可以顯著地提升空間高密度WSN系統的性能。具體體現在以下幾個方面:
1) 可靠性。Sumlock通過多信道復用技術顯著提升了高密度節點應用的可靠性。在服務端故障狀況下,仍然能夠進區域內的各PAN交互,能夠對區域內的緊急狀況采取域內響應措施,并能夠在服務器恢復后利用PAN快速建網能力迅速恢復系統運行。
2) 異構WSN兼容能力。Sumlock能夠對現有小規模WSN進行集成而只需升級各個匯聚節點的固件。使已有的PAN加入Sumlock架構擴展其能力更加容易。
3) 通用性。Sumlock抽象統一了感知層與網絡層數據封裝,提供了良好的應用一致性與可擴展性。
[1]趙坤,錢松榮.“LS—Sumlock:高密度異構無線傳感網管理”[J]2012《微型電腦應用》第28卷第11期.
[2]Ruiz,L.B.,Nogueira,J.M.,Loureiro,A.A.F.“MANNA:A ManagementArchitecture for Wireless Sensor Networks”,Communications Magazine, [J]IEEE(Volume:41,Issue:2),Feb 2003
[3]范庭芳,錢松榮,“一種應用于設施農業的有源RFID系統設計”[J]2012《微型電腦應用》第28卷第4期.
[4]Tennina,S;CISTER Res.;Bouroche,M.等,“EMMON:A WSN System Architecture for Large Scale and Dense Real-Time Embedded Monitoring,” [C]in Proc.Embedded and Ubiquitous Computing(EUC),2011 IFIP 9th International Conference on,2011
[5]Zhonghua Zhao,Wei Huangfu,Yan Liu,Linmin Sun Design and Implementation of Network Management System for Large-scale[C]Wireless Sensor Networks.
[6][6]H.Song,D.Kim,K.Lee,and J.Sung,“Upnp-Based Sensor Network Management Architecture,”[C]in Proc.ICMU Conf.,Apr.2005
[7]Bellifemine,F.L.G.Fortino“ASPINE:An Agent-oriented Design of SPINE,”[OL]www.aspine.net
[8]P.Javier,D.Cid,Danny Hughes,J.Ueyama,et al.DARMA:adaptable service and resource management for wireless sensor networks[C].proc of the 4th International Workshop on Middleware Tools,Services and Run-Time Support for Sensor Networks.New York:ACM,2009:1-6