趙 坤,陳子平,夏勇明,錢松榮
無線傳感網(wǎng)(Wireless Sensor Network,WSN)結(jié)合了無線通信技術(shù)與傳感器技術(shù),采用專用的通信方式從而將感知從復(fù)雜的高成本的有線數(shù)據(jù)傳輸中解脫出來。WSN由大量的廉價(jià)終端傳感節(jié)點(diǎn)和網(wǎng)絡(luò)支撐節(jié)點(diǎn)組成,這些節(jié)點(diǎn)通過各種類型的傳感器完成環(huán)境信息的搜集,通過無線網(wǎng)絡(luò)來完成監(jiān)控區(qū)域信息的傳輸、處理和響應(yīng),廣泛于包括人員監(jiān)控、戰(zhàn)場(chǎng)感知、設(shè)施農(nóng)業(yè)、安全監(jiān)測(cè)和工業(yè)自動(dòng)化等。
隨著無線傳感網(wǎng)應(yīng)用中節(jié)點(diǎn)規(guī)模的增長,必須對(duì)節(jié)點(diǎn)與WSN網(wǎng)絡(luò)狀況進(jìn)行有效的監(jiān)控、管理和組織、實(shí)時(shí)響應(yīng)故障、調(diào)整運(yùn)行參數(shù)、提供安全的訪問、以保證WSNs的資源有效分配、有效組織與有效維護(hù)。無線傳感網(wǎng)管理系統(tǒng)(WSN Management System,WSNMS),是在無線傳感網(wǎng)基礎(chǔ)上的管理系統(tǒng),是保障無線傳感器網(wǎng)絡(luò)靈活、有效、可靠和安全地滿足系統(tǒng)設(shè)計(jì)目標(biāo)的支撐技術(shù),對(duì)于傳感器網(wǎng)絡(luò)具有重要的意義,是無線傳感器網(wǎng)絡(luò)大規(guī)模應(yīng)用的關(guān)鍵技術(shù)之一。具體來說,WSN網(wǎng)絡(luò)管理有兩個(gè)功能,首先,它能夠監(jiān)視和控制WsN的運(yùn)行狀態(tài),使之能夠提供可靠、有效、安全和經(jīng)濟(jì)的服務(wù);其次,它基于對(duì)運(yùn)行狀態(tài)的監(jiān)視,提供WSN的狀態(tài)控制。第一個(gè)任務(wù)的目標(biāo)是發(fā)現(xiàn)系統(tǒng)瓶頸和系統(tǒng)隱患,第二個(gè)任務(wù)則是通過合理的控制和調(diào)整,提升系統(tǒng)性能以保證提供可靠的服務(wù)[1]。
需要指出的是,現(xiàn)在WSN仍然沒有像數(shù)十年前想像的那樣得到大規(guī)模推廣,其原因大致可以歸結(jié)為以下幾點(diǎn):
1) WSN節(jié)點(diǎn)的處理器-通信芯片和傳感器件的成本仍然太高,并沒有達(dá)到實(shí)現(xiàn)所謂的“一美元節(jié)點(diǎn)”的水平;
2) WSN技術(shù)仍然局限太大,以最廣泛使用的ZigBee為例,盡管理論上支持65536個(gè)節(jié)點(diǎn),但在PAN內(nèi)節(jié)點(diǎn)超過數(shù)百個(gè)時(shí),會(huì)發(fā)生信道阻塞情況,從而發(fā)生某些節(jié)點(diǎn)不可到達(dá)的狀況,這種不可靠的狀況可以部分歸因于這些低功耗低成本器件工作于高度擁擠的ISM頻段;
3) 很多應(yīng)用部署起來太困難,使得其很難得到推廣;
4) 缺乏通用的大規(guī)模系統(tǒng)架構(gòu)。
應(yīng)用現(xiàn)有的一些WSN協(xié)議標(biāo)準(zhǔn)在實(shí)際使用時(shí),會(huì)很大地制約WSN應(yīng)用的規(guī)模。
本文作者就上述問題的一部分,在一個(gè)具體涉及人員安防監(jiān)控項(xiàng)目中,提出了一種大規(guī)模的空間高密度節(jié)點(diǎn)WSN集群的構(gòu)建方法,并開發(fā)了名為Sumlock的原型系統(tǒng),采用德州儀器(TI)的CC2530與CC430芯片作為WSN節(jié)點(diǎn)構(gòu)建了異構(gòu)WSN集群,分別使用了Z-Stack和底層開發(fā),作為系統(tǒng)感知層,采用Friendly ARM mini2440在其上基于Linux 2.6.32用C++語言編寫構(gòu)建了WSN網(wǎng)關(guān)Agent作為系統(tǒng)網(wǎng)絡(luò)層,以SQL Server 2008和C#.Net技術(shù)開發(fā)了系統(tǒng)應(yīng)用層。
Sumlock架構(gòu)的設(shè)計(jì)目標(biāo)是:
a) 可擴(kuò)展能力,特別地,Sumlock非常關(guān)注實(shí)現(xiàn)空間高密度特點(diǎn)的應(yīng)用解決方案;
b) 異構(gòu)WSN支持能力;
c) 通用性,獨(dú)立于具體的WSN應(yīng)用領(lǐng)域,抽象出統(tǒng)一指令集與傳輸協(xié)議和管理協(xié)議;
d) 快速部署能力。
囿于篇幅限制,本文無法闡述全部的技術(shù)細(xì)節(jié),將會(huì)就一些重要的設(shè)計(jì),特別是作者主要參與的感知層和網(wǎng)絡(luò)層的設(shè)計(jì)實(shí)現(xiàn)方法進(jìn)行討論。文章將按下述結(jié)構(gòu)組織第1章將介紹相關(guān)的技術(shù)背景。第2章介紹相關(guān)的硬件架構(gòu)設(shè)計(jì)與組織。第3章介紹Sumlock的高層次架構(gòu)和系統(tǒng)調(diào)試設(shè)計(jì)方法。第4章介紹Sumlock的感知層設(shè)計(jì)與實(shí)現(xiàn)。第5章介紹Sumlock的網(wǎng)絡(luò)層設(shè)計(jì)與實(shí)現(xiàn)。最后,第6章給出相關(guān)的測(cè)試結(jié)果。
L.B.Ruiz在2003年提出了WSNMS的概念,設(shè)計(jì)了MANNA架構(gòu),從3個(gè)層面對(duì)WSNMS進(jìn)行了定義,包括功能架構(gòu),信息架構(gòu)和物理架構(gòu),但并未具體實(shí)現(xiàn),后續(xù)的一些研究也尚處于理論研究階段。這篇文獻(xiàn)指出,按照具體的拓?fù)浣Y(jié)構(gòu),這種規(guī)模化的WSNMS大致可以分為集中式,分布式和分級(jí)式的架構(gòu)[2]。
在集中式管理系統(tǒng)中,如BOSS、MOTE-VIEW、WSNView,和Sympath等等,管理站點(diǎn)從其他節(jié)點(diǎn)獲取到信息并且控制整個(gè)WSN的運(yùn)行。相對(duì)來說,管理站點(diǎn)可以有近乎無限的資源,因此它可以實(shí)施很復(fù)雜的管理任務(wù),減少WSN內(nèi)節(jié)點(diǎn)的運(yùn)算和存儲(chǔ)負(fù)擔(dān)。另外,居于一個(gè)中央的地位,管理站點(diǎn)也可以輕易地獲取關(guān)于WSN的一個(gè)全局的信息以作出正確的管理決策。但集中式的管理站點(diǎn)也會(huì)有一些缺陷,比如像在匯聚節(jié)點(diǎn)會(huì)造成很大的通信流量,匯聚節(jié)點(diǎn)與管理站之間會(huì)有很大的額外通信開銷,而且一旦中央服務(wù)器發(fā)生故障,則會(huì)令整個(gè)WSN陷入癱瘓。
分布式網(wǎng)絡(luò)管理系統(tǒng),諸如Agilla和Sectoral Sweeper一類WSN節(jié)點(diǎn)級(jí)別的管理,它們具有多個(gè)管理站,每個(gè)管理站控制一個(gè)子網(wǎng)絡(luò),每個(gè)子網(wǎng)絡(luò)的管理站可以跟其它的子網(wǎng)管理站通信來保持協(xié)作管理。
由于分布式系統(tǒng)的本地化管理策略降低了網(wǎng)絡(luò)開銷,避免了網(wǎng)絡(luò)瓶頸,但是它的缺陷在于它過于復(fù)雜而且配置很困難,而在節(jié)點(diǎn)上直接進(jìn)行的網(wǎng)絡(luò)管理。
在分級(jí)式管理系統(tǒng)中,如TopDisc,STREAM,RRP,WinMS和PFMA等等系統(tǒng)架構(gòu)上,也是有多個(gè)管理站,但是這些管理站分為一般管理站與中繼管理站,一般而言,中繼管理站負(fù)責(zé)分布網(wǎng)絡(luò)管理的相關(guān)處理,但中繼管理站之間不進(jìn)行通訊。每個(gè)一般管理站負(fù)責(zé)該個(gè)子網(wǎng)的網(wǎng)絡(luò)管理。每個(gè)一般管理站用于采集下層子網(wǎng)的數(shù)據(jù)并向上層轉(zhuǎn)發(fā),同時(shí)也接收上層管理站的命令解析發(fā)給下面的子網(wǎng),很容易看到,分級(jí)式網(wǎng)絡(luò)管理系統(tǒng)是介于集中式網(wǎng)絡(luò)管理和分布式管理之間的一種管理方案。
隨著WSN應(yīng)用的增長,WSN的管理變得越來越重要。鑒于上述各類網(wǎng)絡(luò)系統(tǒng)各有其優(yōu)缺點(diǎn),我們需要一種方法盡可能多地采用其優(yōu)點(diǎn)而且盡可能多地回避其缺點(diǎn)。
在我們前面所做的研究[1]中提出一種3層異構(gòu)網(wǎng)絡(luò)管理的架構(gòu),但當(dāng)時(shí)尚未對(duì)其系統(tǒng)實(shí)現(xiàn)和實(shí)證研究,本文依據(jù)其主要架構(gòu)思想,實(shí)施了該架構(gòu),并進(jìn)行相應(yīng)的驗(yàn)證工作。
需要提及的是幾個(gè)已經(jīng)完成或者正在進(jìn)行中的WSN項(xiàng)目:
EMMON[4],這是目前在歐洲最大規(guī)模的一個(gè)WSN試驗(yàn)項(xiàng)目,目前網(wǎng)絡(luò)容納超過300個(gè)節(jié)點(diǎn),EMMON2架構(gòu)也正在實(shí)施,EMMON的架構(gòu)與本文有相關(guān)性,其對(duì)空間高密度的WSN的解決思路上與Sumlock是一致的,但是EMMON的架構(gòu)是基于IEEE 802.15.4標(biāo)準(zhǔn)構(gòu)建,其對(duì)協(xié)議的定義主要是針對(duì)是同構(gòu)的無線傳感網(wǎng)絡(luò)的, Sumlock則對(duì)異構(gòu)WSN進(jìn)行了支持,對(duì)已存在的應(yīng)用,可以進(jìn)行相應(yīng)的組件移植便可融合構(gòu)造協(xié)同網(wǎng)絡(luò),這種前向兼容性使得Sumlock更適用于對(duì)一些已經(jīng)存在的小規(guī)模WSN進(jìn)行升級(jí)擴(kuò)展整合。
ExScal使用瓶頸數(shù)量在200多個(gè)節(jié)點(diǎn)的WSN節(jié)點(diǎn)構(gòu)建了包含了1000多個(gè)節(jié)點(diǎn)的LS-WSN,應(yīng)用于入侵檢測(cè)領(lǐng)域,該項(xiàng)目是迄今布署的最大的WSN項(xiàng)目,但其完全標(biāo)準(zhǔn)化的網(wǎng)絡(luò)拓?fù)涫沟闷鋺?yīng)用非常局限。
VigilNet試圖構(gòu)建的是集成生存系統(tǒng),著力在功耗控制方面,目標(biāo)是在現(xiàn)有硬件的條件下,實(shí)現(xiàn)持續(xù)工作至少3~6個(gè)月,與本文關(guān)系不大。
Tenet關(guān)注于WSN應(yīng)用開發(fā)的簡化和軟件重用技術(shù),設(shè)計(jì)采用兩層架構(gòu),分別是處理能力很弱的低層和處理能力較強(qiáng)的高層,Tenet的思想是底層的設(shè)備不參與處理,而只負(fù)責(zé)采集,由處理能力相對(duì)較強(qiáng)的高層設(shè)備來完成信息的處理工作,與本文關(guān)系不大。
如圖1所示:
圖1 Sumlock的硬件框架
如圖1所示,Sumlock的硬件架構(gòu)包括3層,最上層為應(yīng)用層,硬件上主要包括服務(wù)器、數(shù)據(jù)庫與客戶端,集中處理采集到的數(shù)據(jù),響應(yīng)用戶請(qǐng)求,存儲(chǔ)相關(guān)數(shù)據(jù)。對(duì)WSN事件進(jìn)行快速響應(yīng)。
網(wǎng)絡(luò)層負(fù)責(zé)進(jìn)行區(qū)域內(nèi)的WSNs之間的協(xié)調(diào)、互聯(lián)以及管理工作以及對(duì)數(shù)據(jù)的轉(zhuǎn)發(fā)。
感知層主要是各種相對(duì)獨(dú)立的WSNs,實(shí)驗(yàn)中采用了CC2530構(gòu)建了兩個(gè)ZigBee網(wǎng)絡(luò),CC430構(gòu)建了一個(gè)非ZigBee網(wǎng)絡(luò),前者工作于2.4 GHz頻段,后者工作于 433 MHz頻段,其硬件實(shí)物,如圖2所示:
圖2 Sumlock系統(tǒng)Demo的硬件實(shí)物
感知層采用異構(gòu)組網(wǎng),其中,采用CC2530搭載ZStack協(xié)議棧組建了運(yùn)行了2.4 GHz的ZigBee網(wǎng)絡(luò),該網(wǎng)絡(luò)應(yīng)用于安防監(jiān)控與人員定位,采用CC430構(gòu)建了無協(xié)議方式通信(點(diǎn)對(duì)點(diǎn),廣播)的網(wǎng)絡(luò)[3],用于設(shè)施農(nóng)業(yè)環(huán)境監(jiān)測(cè),能夠?qū)崟r(shí)地將各個(gè)標(biāo)簽捕獲的信息存儲(chǔ)并顯示,并參照一些農(nóng)作物生長模型合理提醒報(bào)警。
CC2530結(jié)合了一個(gè)完全集成的,高性能的RF收發(fā)器與一個(gè)8051微處理器,8 kB的RAM ,32/64/128/256 KB閃存,以及其他強(qiáng)大的支持功能和外設(shè)。射頻部分采用巴倫匹配和外置高增益SMA天線,接收靈敏度高。
CC430網(wǎng)絡(luò)用的芯片是TI公司生產(chǎn)的超低功耗CC430,該芯片集成了單片機(jī)MSP430和無線傳輸模塊CCll01,比普通的兩塊芯片面積減少50%的覆蓋面積[3]。
圖展示的是項(xiàng)目DEMO中WSN匯聚節(jié)點(diǎn)的硬件實(shí)物,包括兩個(gè)由CC2530構(gòu)成的ZigBee協(xié)調(diào)器和一個(gè)由CC430構(gòu)建的非標(biāo)準(zhǔn)網(wǎng)絡(luò)的匯聚節(jié)點(diǎn),終端節(jié)點(diǎn)的硬件實(shí)物,如圖3所示:
圖1 終端節(jié)點(diǎn)的硬件實(shí)物圖
基礎(chǔ)協(xié)議棧上,CC2530搭載了Z-Stack協(xié)議棧,Z-Stack采用操作系統(tǒng)的思想來構(gòu)建,其硬件實(shí)物,如圖4所示:
圖4 Sumlock系統(tǒng)匯聚系統(tǒng)硬件實(shí)物圖
采用事件輪循機(jī)制,當(dāng)各層初始化之后,系統(tǒng)進(jìn)入低功耗模式,當(dāng)事件發(fā)生時(shí),喚醒系統(tǒng),開始進(jìn)入中斷處理事件,結(jié)束后繼續(xù)進(jìn)入低功耗模式。如果同時(shí)有幾個(gè)事件發(fā)生,判斷優(yōu)先級(jí),逐次處理事件。這種軟件構(gòu)架可以極大地降級(jí)系統(tǒng)的功耗。Z-Stack采用分層的架構(gòu)方法,主要的層次有OSAL層,NWK層,HAL層,MAC層和PHY層,以及輔助的ZDO接口和用于管理調(diào)試的MT層。Sumlock在實(shí)際架構(gòu)的時(shí)候,對(duì)Z-Stack的一些細(xì)節(jié)進(jìn)行修改,不關(guān)涉架構(gòu)體系,不在此處贅述。
而CC430的部分則是采用的自定義協(xié)議,無線數(shù)據(jù)幀結(jié)構(gòu)包括8*n的前導(dǎo)比特、16/32比特的同步字市、8比特的長度、8比特的地址字節(jié)、8*n比特的數(shù)據(jù)域和16比特的CRC 校驗(yàn)[3]。
網(wǎng)絡(luò)層的目標(biāo)是提供相對(duì)一般化的無線傳感網(wǎng)管理功能,提供對(duì)計(jì)算機(jī)網(wǎng)絡(luò)信息轉(zhuǎn)發(fā),解析并執(zhí)行相關(guān)的命令并進(jìn)行有效的監(jiān)控。網(wǎng)絡(luò)層主要由WSN網(wǎng)關(guān)和相應(yīng)的服務(wù)器中間件構(gòu)成,如圖5所示:
圖5 Sumlock網(wǎng)絡(luò)層的軟件層次
WSN網(wǎng)關(guān)采用ARM+linux+yaffs的嵌入式系統(tǒng)的基礎(chǔ)架構(gòu)來完成主要功能。ARM板采用mini2440開發(fā)板,該板采用三星s3c2440為處理器,系A(chǔ)RM7內(nèi)核處理器,板載DM9000網(wǎng)卡芯片和串口等外設(shè)。采用linux-2.3.26內(nèi)核和yaffs2文件系統(tǒng)。bootloader選用了vivi,如圖6所示:
圖6 Sumlock系統(tǒng)WSN網(wǎng)關(guān)硬件與設(shè)備端口
為配置和系統(tǒng)調(diào)試上的便利,在系統(tǒng)中移植了包括FreeTDS,BOA服務(wù)器等在內(nèi)的組件,其中,F(xiàn)reeTDS是為WSN網(wǎng)關(guān)直接訪問SQL SERVER服務(wù)器而引入的,F(xiàn)reeTDS為Linux系統(tǒng)提供了TDS協(xié)議的開源客戶端。由于Microsoft SQL Server使用的恰是TDS協(xié)議,所以在Linux中可以用FreeTDS連接Microsoft SQL Server,后文將會(huì)闡釋引入FreeTDS的原因。
BOA是一種非常小巧的Web服務(wù)器,其可執(zhí)行代碼只有大約60KB左右,源代碼開放、性能高。作為一種單任務(wù)Web服務(wù)器,Boa只能依次完成用戶的請(qǐng)求,而不會(huì)fork出新的進(jìn)程來處理并發(fā)連接請(qǐng)求。但Boa支持CGI,能夠?yàn)镃GI程序fork出一個(gè)進(jìn)程來執(zhí)行。Boa的設(shè)計(jì)目標(biāo)是速度和安全。BOA的引入,是為WSN在開發(fā)調(diào)試過程中引入用戶配置環(huán)境,如圖7所示:
圖7 Sumlock的WSN的console模式
還有一些邊緣的電路設(shè)計(jì),包括串口電平轉(zhuǎn)換,總線協(xié)議轉(zhuǎn)換、操作系統(tǒng)的移植、驅(qū)動(dòng)編寫和組件移植等等技術(shù)細(xì)節(jié),也是無關(guān)架構(gòu),就不在此處一一列舉了。
為避免歧義,術(shù)語WSN在下文中專指運(yùn)行于單一信道的無線傳感網(wǎng)。Sumlock架構(gòu)設(shè)計(jì)的主要目標(biāo)是解決在區(qū)域空間高密度節(jié)點(diǎn)的情形下,提供有效的解決方案,使得基于WSN的系統(tǒng)能夠有效運(yùn)行,在此基礎(chǔ)上,提供對(duì)全域范圍內(nèi)WSNs的有效管控。其核心思想,是利用多信道覆蓋節(jié)點(diǎn)密集區(qū)域,以避免單一信道所可能帶來的節(jié)點(diǎn)上限瓶頸,而現(xiàn)有的WSN成熟技術(shù)和應(yīng)用通常運(yùn)行于單一信道,采用多信道的方案會(huì)面臨多個(gè)WSN之間互聯(lián)通信的問題,解決這一矛盾會(huì)有兩種思路:
a) 利用WSN通信方式解決WSN間的通信問題;
b) 利用非WSN通信方式解決WSN間的通信問題。
對(duì)于a)方法,在我們前面的研究中已經(jīng)指出,其實(shí)質(zhì)是用一個(gè)公共節(jié)點(diǎn)作為網(wǎng)關(guān),在運(yùn)行周期內(nèi)以分時(shí)方式加入各個(gè)WSN并對(duì)其進(jìn)行數(shù)據(jù)采集和其他的管控工作,其問題是業(yè)務(wù)邏輯上的匯聚節(jié)點(diǎn)在協(xié)議上是一個(gè)公共子節(jié)點(diǎn),其分時(shí)方式一方面會(huì)加劇WSN的通信負(fù)載,另一方面,這個(gè)網(wǎng)關(guān)匯聚節(jié)點(diǎn)在節(jié)點(diǎn)密集時(shí)得不到相適應(yīng)的通信優(yōu)先級(jí)。
因此,要根本解決WSN間通信問題,非WSN通信方式的WSN間通信解決方案更有效。Sumlock采用的是基于串口通信協(xié)議的多接口通信方案。
盡管Sumlock支持異構(gòu)WSN架構(gòu),但是它同樣具有一些同構(gòu)WSN的功能,主要是匯聚節(jié)點(diǎn)的負(fù)載均衡,這是解決空間高密度應(yīng)用的核心技術(shù),提供了在區(qū)域內(nèi)均衡各個(gè)同構(gòu)WSN的負(fù)載的功能。
Sumlock的布署模式是“一區(qū)一網(wǎng)關(guān)多WSN”,在WSN啟動(dòng),匯聚節(jié)點(diǎn)發(fā)起注冊(cè)的時(shí)候,會(huì)向網(wǎng)關(guān)申報(bào)系統(tǒng)類型、設(shè)備類型與工作信道,網(wǎng)關(guān)將以此為基準(zhǔn)來進(jìn)行同構(gòu)系統(tǒng)識(shí)別和負(fù)載均衡調(diào)整。
在開發(fā)的過程中,為實(shí)現(xiàn)相應(yīng)的分離層次開發(fā),在調(diào)試模式使用了數(shù)據(jù)庫作為中間媒介,作為網(wǎng)絡(luò)層與應(yīng)用層的調(diào)試接口,這是前面在網(wǎng)絡(luò)層中引入FreeTDS組件的原因,待邏輯層面的調(diào)試無誤后再行轉(zhuǎn)到Socket。采用BOA服務(wù)器是提供一個(gè)配置的接口,使得配置可視化,把配置工作從與系統(tǒng)開發(fā)相關(guān)的工作中分離出來。
本項(xiàng)目將以CC2530上基于Z-Stack的開發(fā)舉例說明感知層的設(shè)計(jì)。整體將在調(diào)用改進(jìn)的Z-Stack的OSAL層、HAL層與MT層API基礎(chǔ)上進(jìn)行開發(fā)。
ZigBee分配的用戶NV空間范圍為0x0201~0x0FFF。其他地址由各層使用。在Sumlock-ZStack感知層設(shè)計(jì)中,擴(kuò)展了這個(gè)地址,原來的NV空間地址為0x0010 0201~0x 0010 0FFF作為傳感器等的讀寫地址,具體的地址解析工作是由具體應(yīng)用來定義的。
作為所有的在同一系統(tǒng)內(nèi)識(shí)別的基本信息(System Identify Information,SII),是Sumlock的設(shè)備必須進(jìn)行定義的,用于識(shí)別系統(tǒng)類型、設(shè)備類型與設(shè)備唯一標(biāo)識(shí),包括以下部分,如表1所示:
表1 Sumlock-ZigBee的SII地址定義
前文提到過,WSN網(wǎng)關(guān)與匯聚節(jié)點(diǎn)(Sink Node/Cluster Head),
感知層匯聚節(jié)點(diǎn)接受的串口指令集由以下部分組成:
1) WSN管理指令
2) WSN數(shù)據(jù)讀寫指令
3) 調(diào)試指令
WSN管理指令格式:
0xDA 數(shù)據(jù)長度 0x3x xx 數(shù)據(jù)內(nèi)容 校驗(yàn)字節(jié)1byte 1 byte 2bytes N bytes 2 bytes
響應(yīng)包/事件包:
0xDA 數(shù)據(jù)長度 0x4x xx 數(shù)據(jù)內(nèi)容 校驗(yàn)字節(jié)1byte 1 byte 2bytes N bytes 2 bytes
WSN透明數(shù)據(jù)讀寫指令:
0xDA 數(shù)據(jù)長度0x71 xx目標(biāo)地址擴(kuò)展NV空間索引校驗(yàn)字節(jié)
1byte 1 byte 2bytes 8 bytes 4 bytes 2 bytes
響應(yīng)包:
0xDA 數(shù)據(jù)長度0x72 xx目標(biāo)地址數(shù)據(jù)(明文)校驗(yàn)字節(jié)1byte 1 byte 2bytes 8 bytes N bytes 2 bytes
WSN權(quán)限數(shù)據(jù)讀寫指令:
0xDA 數(shù)據(jù)長度0x73xx 目標(biāo)地址擴(kuò)展NV空間索引校驗(yàn)字節(jié)1byte 1 byte 2bytes 8 bytes 4 bytes 2 bytes
響應(yīng)包
0xDA 數(shù)據(jù)長度0x74 xx目標(biāo)地址數(shù)據(jù)(密文)校驗(yàn)字節(jié)1byte 1 byte 2bytes 8 bytes N bytes 2 bytes
調(diào)試指令:
0xDA 數(shù)據(jù)長度 0x01 xx 數(shù)據(jù)內(nèi)容 校驗(yàn)字節(jié)1byte 1 byte 2bytes N bytes 2 bytes
Sumlock-ZStack的WSN匯聚節(jié)點(diǎn)亦即ZigBee的協(xié)調(diào)器(Coordinator),在啟動(dòng)后自行組網(wǎng),并向默認(rèn)的UART口周期性地(默認(rèn)是5s)發(fā)起連接請(qǐng)求(0x4030包),在網(wǎng)關(guān)正確響應(yīng)請(qǐng)求后建立起一個(gè)空的域內(nèi)節(jié)點(diǎn)映射表。WSN網(wǎng)關(guān)隨后會(huì)發(fā)出節(jié)點(diǎn)信息搜集指令(0x3002包)。
匯聚節(jié)點(diǎn)在收到該命令后,其OTA模式進(jìn)入域內(nèi)標(biāo)簽發(fā)現(xiàn)模式,將廣播一個(gè)無線RSSI與SII請(qǐng)求(OTA,0x80簇),標(biāo)簽/路由將自己的System ID,DeviceType,DeviceID和IEEE Addr用公鑰加密后給Coordinator(OTA,0x81簇),Coordinator解析相關(guān)信息,填寫串口0x4031幀信息,送給上位機(jī),返回給標(biāo)簽一個(gè)回執(zhí)(OTA,0x82簇),確認(rèn)入網(wǎng)。
搜集標(biāo)簽超時(shí)事件發(fā)生后,Coordinator轉(zhuǎn)入空閑狀態(tài)。如有網(wǎng)絡(luò)狀態(tài)發(fā)生變化,則再次廣播(OTA,80簇),保持上位機(jī)的網(wǎng)絡(luò)狀態(tài)表更新。
其它的管理指令響應(yīng)過程類似,大體的流程,如圖8所示:
圖8 Sumlock-Zigbee的Coordinator主要工作流程
網(wǎng)絡(luò)層采用消息驅(qū)動(dòng)架構(gòu),如圖9所示:
圖9 Sumlock網(wǎng)絡(luò)層的主要層次
具體地,使用了select/pool查詢文件描述符,這種架構(gòu)較好地適應(yīng)了上位機(jī)和下位機(jī)事件。采用select/pool而非epool的原因是,考量實(shí)際應(yīng)用的狀況,接入WSN個(gè)數(shù)超過select所能接受的1024個(gè)的上限是完全足夠的,而在上位機(jī),接入的是LAN,且是對(duì)單一的客戶請(qǐng)求進(jìn)行響應(yīng),所以并不會(huì)產(chǎn)生大量的socket請(qǐng)求。
在協(xié)議驅(qū)動(dòng)層上,設(shè)計(jì)采用了協(xié)議標(biāo)準(zhǔn)化的方法,即將消息進(jìn)行格式標(biāo)準(zhǔn)化提供給事件處理層處理。而業(yè)務(wù)邏輯層則定義了與應(yīng)用相關(guān)的一些業(yè)務(wù)邏輯,并將其交給協(xié)議驅(qū)動(dòng)層進(jìn)行相應(yīng)的轉(zhuǎn)發(fā)工作,業(yè)務(wù)邏輯層的另一個(gè)功能是進(jìn)行相應(yīng)的配置管理工作,還有一個(gè)功能則是執(zhí)行一些定時(shí)任務(wù),如設(shè)置一些定時(shí)查詢?nèi)蝿?wù)等等。
Sumlock架構(gòu)的實(shí)現(xiàn)證明可以顯著地提升空間高密度WSN系統(tǒng)的性能。具體體現(xiàn)在以下幾個(gè)方面:
1) 可靠性。Sumlock通過多信道復(fù)用技術(shù)顯著提升了高密度節(jié)點(diǎn)應(yīng)用的可靠性。在服務(wù)端故障狀況下,仍然能夠進(jìn)區(qū)域內(nèi)的各PAN交互,能夠?qū)^(qū)域內(nèi)的緊急狀況采取域內(nèi)響應(yīng)措施,并能夠在服務(wù)器恢復(fù)后利用PAN快速建網(wǎng)能力迅速恢復(fù)系統(tǒng)運(yùn)行。
2) 異構(gòu)WSN兼容能力。Sumlock能夠?qū)ΜF(xiàn)有小規(guī)模WSN進(jìn)行集成而只需升級(jí)各個(gè)匯聚節(jié)點(diǎn)的固件。使已有的PAN加入Sumlock架構(gòu)擴(kuò)展其能力更加容易。
3) 通用性。Sumlock抽象統(tǒng)一了感知層與網(wǎng)絡(luò)層數(shù)據(jù)封裝,提供了良好的應(yīng)用一致性與可擴(kuò)展性。
[1]趙坤,錢松榮.“LS—Sumlock:高密度異構(gòu)無線傳感網(wǎng)管理”[J]2012《微型電腦應(yīng)用》第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]范庭芳,錢松榮,“一種應(yīng)用于設(shè)施農(nóng)業(yè)的有源RFID系統(tǒng)設(shè)計(jì)”[J]2012《微型電腦應(yīng)用》第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