韓 磊
(南京工程學(xué)院 計(jì)算機(jī)工程學(xué)院,江蘇 南京 211167)
基于WSN的小區(qū)自行車(chē)防盜系統(tǒng)的設(shè)計(jì)*
韓 磊
(南京工程學(xué)院 計(jì)算機(jī)工程學(xué)院,江蘇 南京 211167)
針對(duì)小區(qū)管理的需求,將無(wú)線傳感器網(wǎng)絡(luò)引入到小區(qū)自行車(chē)防盜系統(tǒng)中。以ATmega128L單片機(jī)為核心擴(kuò)展了斷線檢測(cè)模塊和以CC1000芯片為基礎(chǔ)的無(wú)線通信模塊,設(shè)計(jì)了無(wú)線傳感器網(wǎng)絡(luò)的電子鎖節(jié)點(diǎn)和Sink節(jié)點(diǎn)。規(guī)劃了無(wú)線傳感器網(wǎng)絡(luò)拓?fù)洌O(shè)計(jì)了具有較高穩(wěn)定性的簡(jiǎn)單無(wú)線通信協(xié)議,基于監(jiān)控主機(jī)以多線程的方式實(shí)現(xiàn)了防盜監(jiān)控軟件。實(shí)驗(yàn)驗(yàn)證了方案的可行性,仿真驗(yàn)證了多節(jié)點(diǎn)情況下,通信協(xié)議的穩(wěn)定性。
無(wú)線傳感器網(wǎng)絡(luò);監(jiān)控軟件;通信協(xié)議
近年來(lái),隨著無(wú)線通信、微電子技術(shù)、傳感器技術(shù)以及嵌入式計(jì)算等技術(shù)的不斷進(jìn)步,推動(dòng)了低成本、低功耗的無(wú)線傳感器網(wǎng)絡(luò)WSN(Wireless Sensor Network)的發(fā)展,促使WSN成為當(dāng)今活躍的研究領(lǐng)域[1]。WSN由部署在監(jiān)測(cè)區(qū)域內(nèi)大量的廉價(jià)微型傳感器節(jié)點(diǎn)組成,通過(guò)無(wú)線通信方式形成的一個(gè)多跳的自組織網(wǎng)絡(luò)系統(tǒng),其目的是協(xié)作地感知、采集和處理網(wǎng)絡(luò)覆蓋區(qū)域中感知對(duì)象的信息,并發(fā)送給觀察者[2]。無(wú)線傳感器網(wǎng)絡(luò)在軍事和民用領(lǐng)域都有廣闊的應(yīng)用前景。本文把WSN引入到小區(qū)的自行車(chē)防盜系統(tǒng)中,給出了一套基于WSN的小區(qū)自行車(chē)防盜系統(tǒng)的設(shè)計(jì)方案。為小區(qū)自行車(chē)的管理,尤其是防盜提供保障。
居民小區(qū)通常規(guī)劃在兩幢居民樓中間或集中的一片區(qū)域停放自行車(chē)等兩輪車(chē)輛。如圖1所示,自行車(chē)通常被放置在指定車(chē)位中,為了加強(qiáng)對(duì)自行車(chē)的管理,本文引入WSN技術(shù)。防盜系統(tǒng)由信息采集和報(bào)警提示兩部分組成。
首先,為每一輛自行車(chē)配備一塊具有唯一ID的電子鎖作為小區(qū)內(nèi)自行車(chē)的標(biāo)識(shí)。該電子鎖具有WSN節(jié)點(diǎn)功能,可以檢測(cè)是否斷線、電池電量,同時(shí)具有無(wú)線通信能力,能夠?qū)z測(cè)到的信息以多跳方式向觀測(cè)點(diǎn)發(fā)送。為便于收集信息,同時(shí)為觀測(cè)者提供定位信息參考,在指定位置(如車(chē)棚、居民樓、路燈桿)部署匯節(jié)點(diǎn),如圖1的Sink裝置所示。與傳統(tǒng)WSN不同的是,匯節(jié)點(diǎn)的位置不是隨機(jī)的,其部署要考慮到小區(qū)自行車(chē)停放區(qū)域的大小、小區(qū)的布局等因素。匯節(jié)點(diǎn)接收傳感節(jié)點(diǎn)的信息,并轉(zhuǎn)發(fā)給觀測(cè)者。
觀測(cè)站設(shè)置在值班室內(nèi),如圖1所示。由運(yùn)行于PC機(jī)上的監(jiān)控軟件管理WSN收集到的信息,監(jiān)控軟件能夠顯示自行車(chē)在小區(qū)中的大致位置,顯示電子鎖的電池電量,提示更換電子鎖電池,提示電子鎖暴力開(kāi)啟,提示自行車(chē)越界。
值班人員在得到監(jiān)控系統(tǒng)的提示后,可以快速采取相應(yīng)行動(dòng),避免自行車(chē)失竊。
小區(qū)自行車(chē)防盜系統(tǒng)硬件設(shè)計(jì)的核心是WSN節(jié)點(diǎn)設(shè)計(jì)。按照在系統(tǒng)中承擔(dān)的任務(wù)劃分,可將WSN節(jié)點(diǎn)劃分成一般傳感節(jié)點(diǎn)和Sink節(jié)點(diǎn)。但這兩類節(jié)點(diǎn)只是在軟件功能上存在差異,而硬件設(shè)計(jì)并無(wú)本質(zhì)不同。
本文將電子鎖和Sink節(jié)點(diǎn)劃分成六大硬件模塊,如圖2所示,以微控制器為核心,擴(kuò)展了無(wú)線通信模塊、電源模塊、斷線檢測(cè)模塊、LED指示模塊、電壓采集模塊、按鍵模塊。
本文選用ATmega128L作為主處理器。ATmega128L是基于AVR RISC結(jié)構(gòu)的8 bit低功耗CMOS微處理器[3],數(shù)據(jù)吞吐率高達(dá)1 MIPS/MHz,可緩解系統(tǒng)在功耗和處理器之間的矛盾。芯片自帶128 KB的可編程Flash,在本應(yīng)用中無(wú)需外擴(kuò)存儲(chǔ)器。另外,ATmega128L有豐富的接口資 源(如 SPI、USART、TWI、ADC 等),為本應(yīng) 用提 供了重要支持。
無(wú)線通信模塊采用CC1000,它是根據(jù)Chipcon公司的SmartRF技術(shù),在0.35 μm CMOS工藝下制造的一種理想的超高頻單片收發(fā)通信芯片[4]。其工作頻帶在315 MHz、868 MHz及915 MHz,但 CC1000很容易通過(guò)編程使其工作在300 MHz~1 000 MHz范圍內(nèi)。它具有低電壓(2.3 V~3.6 V)、極低的功耗、可編程輸出功率(-20 dBm~10 dBm)、高靈敏度(一般-109 dBm)、小尺寸(TSSOP-28封裝)、集成了位同步器等特點(diǎn)。其FSK數(shù)據(jù)率可達(dá)72.8 kb/s,具有250 Hz步長(zhǎng)可編程頻率能力,適用于跳頻協(xié)議;主要工作參數(shù)能通過(guò)串行總線接口編程改變,使用非常靈活。
ATmega128L通過(guò) PCLK、PDATA、PALE三線數(shù)字串行接口來(lái)操作CC1000芯片,控制它的工作狀態(tài)以及參數(shù)設(shè)置。DIO是CC1000與ATmega128L數(shù)據(jù)交換雙向管腳,數(shù)據(jù)交換時(shí)鐘始終由CC1000的DCLK提供,即CC1000總是處于主設(shè)備狀態(tài)[5]。
斷線報(bào)警模塊是電子鎖的一個(gè)構(gòu)成部分,其基本原理如圖3所示,在警戒狀態(tài)下,BG的基極偏置電壓經(jīng)警戒線S對(duì)地短路,BG不工作。如遇盜情,S被斷開(kāi),BG立即得電工作,SCR導(dǎo)通,發(fā)光二極管點(diǎn)亮。微控制ATmega128L通過(guò)電壓檢測(cè)模塊檢測(cè)b、e兩點(diǎn)的電壓,判定電子鎖狀態(tài)。
電源模塊為ATmega128L、CC1000、斷線報(bào)警模塊供電。電壓檢測(cè)模塊有兩項(xiàng)功能:一是檢測(cè)電源電壓,以判定是否更換電池;二是檢測(cè)斷線報(bào)警模塊b、e兩點(diǎn)電壓,以判定電子鎖是否被暴力開(kāi)啟。LED指示模塊用于指示W(wǎng)SN節(jié)點(diǎn)的運(yùn)行狀態(tài),服務(wù)于調(diào)試。按鍵模塊用于電子鎖的密碼設(shè)置、狀態(tài)設(shè)置。
為了達(dá)到節(jié)能的目標(biāo),硬件設(shè)計(jì)除了考慮處理器的幾種低功耗處理模式外,還設(shè)計(jì)了一個(gè)模擬開(kāi)關(guān),在電子鎖處于非保護(hù)模式且開(kāi)啟時(shí),該開(kāi)關(guān)才能顯露出來(lái),供用戶關(guān)閉電源,降低能耗。
小區(qū)自行車(chē)防盜系統(tǒng)軟件主要有兩大部分:一是運(yùn)行于WSN節(jié)點(diǎn)上的軟件,二是運(yùn)行于PC機(jī)上的監(jiān)控軟件。WSN節(jié)點(diǎn)軟件即信息感知和通信協(xié)議,下面從網(wǎng)絡(luò)拓?fù)?、通信協(xié)議、監(jiān)控軟件三個(gè)方面論述。
因?yàn)樾^(qū)停放自行車(chē)的區(qū)域相對(duì)規(guī)整,自行車(chē)的擺放也會(huì)相對(duì)整齊,所以本文使用圖4所示的簇形樹(shù)狀拓?fù)浣Y(jié)構(gòu)。將車(chē)棚區(qū)域劃分成幾個(gè)區(qū),每個(gè)區(qū)形成一個(gè)簇,以Sink節(jié)點(diǎn)為簇首,電子鎖節(jié)點(diǎn)和簇首節(jié)點(diǎn)形成星形網(wǎng)絡(luò),簇首采集到信息通過(guò)Sink節(jié)點(diǎn)依次轉(zhuǎn)發(fā)到觀測(cè)站的PC機(jī),供監(jiān)控軟件分析處理。
電子鎖和Sink節(jié)點(diǎn)的ID用16 bit二進(jìn)制數(shù)表示,這是節(jié)點(diǎn)的唯一標(biāo)識(shí)。電子鎖和Sink節(jié)點(diǎn)的網(wǎng)絡(luò)地址也用16 bit二進(jìn)制數(shù)表示,可以分為簇首序號(hào)和節(jié)點(diǎn)序號(hào)兩部分,各占8 bit,該網(wǎng)絡(luò)地址是在組網(wǎng)階段形成的。將網(wǎng)絡(luò)地址分成簇首序號(hào)和節(jié)點(diǎn)序號(hào)的目的是過(guò)濾報(bào)文。節(jié)點(diǎn)在接收到一條報(bào)文后,將簇首序號(hào)和節(jié)點(diǎn)序號(hào)分別與自身網(wǎng)絡(luò)地址匹配,如果不同可以直接刪除報(bào)文,降低報(bào)文轉(zhuǎn)發(fā)處理造成的能耗。
小區(qū)自行車(chē)防盜系統(tǒng)中Sink節(jié)點(diǎn)的部署是固定的,而自行車(chē)何時(shí)擺放在車(chē)棚,擺放在哪個(gè)車(chē)棚,擺放在車(chē)棚的哪個(gè)位置是不確定的,即電子鎖節(jié)點(diǎn)的進(jìn)入是隨機(jī)的。因此,通信協(xié)議[6]的運(yùn)行分為兩個(gè)階段:主鏈網(wǎng)組網(wǎng)階段和信息感知階段。
(1)主鏈網(wǎng)組網(wǎng)階段協(xié)議
Sink節(jié)點(diǎn)部署在既定位置之后,如圖4所示,網(wǎng)絡(luò)包含一個(gè)與監(jiān)控主機(jī)相連的網(wǎng)關(guān)節(jié)點(diǎn)、若干個(gè)Sink節(jié)點(diǎn)和一些電子鎖傳感器節(jié)點(diǎn)。網(wǎng)關(guān)節(jié)點(diǎn)是路由的發(fā)起者和數(shù)據(jù)的收集者。上電初始化后,網(wǎng)關(guān)節(jié)點(diǎn)發(fā)送組網(wǎng)報(bào)文,如圖 5所示,發(fā)布自己的網(wǎng)絡(luò)地址和同步時(shí)間列表。網(wǎng)關(guān)鄰居節(jié)點(diǎn)收到組網(wǎng)報(bào)文后,根據(jù)同步時(shí)間列表,發(fā)送確認(rèn)報(bào)文,確認(rèn)報(bào)文中包含自己的ID。網(wǎng)關(guān)節(jié)點(diǎn)收到確認(rèn)報(bào)文后,向鄰居節(jié)點(diǎn)發(fā)送配置報(bào)文,配置報(bào)文包含網(wǎng)關(guān)節(jié)點(diǎn)為鄰居節(jié)點(diǎn)分配的網(wǎng)絡(luò)地址。這樣網(wǎng)關(guān)節(jié)點(diǎn)就和鄰居節(jié)點(diǎn)建立了父子層次關(guān)系。得到了網(wǎng)絡(luò)地址的子節(jié)點(diǎn)發(fā)布組網(wǎng)報(bào)文,如此重復(fù),建立了主鏈網(wǎng)絡(luò)拓?fù)洹?/p>
(2)信息感知階段協(xié)議
主鏈網(wǎng)絡(luò)拓?fù)浣⒑?,電子鎖節(jié)點(diǎn)會(huì)隨機(jī)進(jìn)入信息感知區(qū)域。網(wǎng)絡(luò)進(jìn)入信息感知階段,該階段電子鎖節(jié)點(diǎn)與Sink節(jié)點(diǎn)的交互過(guò)程如圖6所示。Sink節(jié)點(diǎn)按照自己的時(shí)序列表,定時(shí)發(fā)送組網(wǎng)報(bào)文,進(jìn)入Sink節(jié)點(diǎn)檢測(cè)區(qū)域的電子鎖在設(shè)置為保護(hù)狀態(tài)后,未獲得網(wǎng)絡(luò)地址之前,會(huì)持續(xù)監(jiān)聽(tīng)組網(wǎng)報(bào)文。電子鎖節(jié)點(diǎn)收到Sink節(jié)點(diǎn)的組網(wǎng)報(bào)文后,依據(jù)報(bào)文中指示的同步時(shí)間列表,響應(yīng)電子鎖加入報(bào)文,報(bào)文中包含電子鎖的ID號(hào)。Sink節(jié)點(diǎn)收到電子鎖加入報(bào)文后,向電子鎖節(jié)點(diǎn)發(fā)送配置報(bào)文,為電子鎖分配網(wǎng)絡(luò)地址。電子鎖擁有網(wǎng)絡(luò)地址后,會(huì)定時(shí)將采集到的信息發(fā)送給Sink節(jié)點(diǎn),并逐層轉(zhuǎn)發(fā)到觀測(cè)站監(jiān)控計(jì)算機(jī)。如果用戶需要使用自行車(chē)正常外出,輸入正確的密碼正常開(kāi)啟電子鎖后,電子鎖向Sink節(jié)點(diǎn)發(fā)送正常離開(kāi)報(bào)文,然后進(jìn)入休眠狀態(tài)。
電子鎖向Sink節(jié)點(diǎn)發(fā)送的數(shù)據(jù)報(bào)文包含的信息主要有斷線報(bào)警狀態(tài)、正常外出狀態(tài)、電池電壓值和網(wǎng)絡(luò)地址,其中網(wǎng)絡(luò)地址中包含電子鎖的簇首序號(hào)。運(yùn)行于PC機(jī)上的監(jiān)控軟件收集、分析處理這些信息,達(dá)到監(jiān)控小區(qū)自行車(chē)的目的。監(jiān)控軟件基于VC和SQL Server平臺(tái)開(kāi)發(fā),實(shí)現(xiàn)越界報(bào)警、斷線報(bào)警、電子鎖電池更換提示等功能。
監(jiān)控程序在系統(tǒng)初始化后,啟動(dòng)Socket數(shù)據(jù)接收和數(shù)據(jù)處理兩個(gè)線程,分別完成數(shù)據(jù)采集、數(shù)據(jù)處理功能。兩個(gè)線程以數(shù)據(jù)庫(kù)為數(shù)據(jù)交換的媒介,以信號(hào)量同步數(shù)據(jù)庫(kù)訪問(wèn)。
Socket數(shù)據(jù)接收線程的流程如圖7所示,線程初始化后,首先啟動(dòng)Socket監(jiān)聽(tīng),然后向網(wǎng)關(guān)發(fā)送組網(wǎng)命令,以建立主鏈網(wǎng)絡(luò)拓?fù)?。該線程監(jiān)聽(tīng)Socket端口,接收來(lái)自網(wǎng)關(guān)的數(shù)據(jù)報(bào)文,從數(shù)據(jù)報(bào)文中解析WSN感知到的數(shù)據(jù)信息,寫(xiě)入數(shù)據(jù)庫(kù)表中。在訪問(wèn)數(shù)據(jù)庫(kù)之前需要和數(shù)據(jù)處理線程以信號(hào)量保持同步。如果線程檢測(cè)到主進(jìn)程發(fā)送的終止線程信號(hào),線程將釋放占用的資源,結(jié)束自己。
圖7 Socket數(shù)據(jù)接收線程流程圖
圖8 數(shù)據(jù)處理線程流程圖
數(shù)據(jù)處理線程的執(zhí)行流程如圖8所示,數(shù)據(jù)處理線程以數(shù)據(jù)庫(kù)為數(shù)據(jù)源,訪問(wèn)數(shù)據(jù)庫(kù)前通過(guò)征用信號(hào)量與Socket線程同步,得到數(shù)據(jù)庫(kù)的訪問(wèn)權(quán)后,數(shù)據(jù)處理線程依次做三項(xiàng)查詢,其中,斷線狀態(tài)優(yōu)先級(jí)最高,越界次之,更換電池提示最低。根據(jù)查詢結(jié)果做報(bào)警或提示處理,周而復(fù)始,直到檢測(cè)到進(jìn)程設(shè)置的線程結(jié)束標(biāo)志,才結(jié)束線程自身。
該系統(tǒng)是一個(gè)基于無(wú)線傳感器網(wǎng)絡(luò)的小區(qū)自行車(chē)管理系統(tǒng)。系統(tǒng)設(shè)計(jì)結(jié)合現(xiàn)階段小區(qū)自行車(chē)管理現(xiàn)狀及WSN技術(shù)的發(fā)展現(xiàn)狀,將ATmega128L微控制器和CC1000無(wú)線芯片技術(shù)結(jié)合到一起,除電子鎖的機(jī)械結(jié)構(gòu)外,完成了電子鎖節(jié)點(diǎn)及Sink節(jié)點(diǎn)的實(shí)驗(yàn)室模型設(shè)計(jì)。實(shí)驗(yàn)表明,根據(jù)節(jié)點(diǎn)檢測(cè)到的信息,監(jiān)控程序能夠正確分析并顯示電子鎖節(jié)點(diǎn)的進(jìn)入、越界、斷線、正常離開(kāi)等狀態(tài),越界或斷線時(shí),監(jiān)控軟件發(fā)出警報(bào),提醒安保人員注意,達(dá)到了模型系統(tǒng)的效果。為了驗(yàn)證通信協(xié)議在多節(jié)點(diǎn)時(shí)的穩(wěn)定性,基于NS2平臺(tái)[7]做了仿真實(shí)驗(yàn),在節(jié)點(diǎn)數(shù)達(dá)到1 000時(shí),協(xié)議仍能運(yùn)行良好。
本文選用的硬件解決方案具有低成本、低能耗的特點(diǎn),設(shè)計(jì)的通信協(xié)議雖然簡(jiǎn)單,但是穩(wěn)定性良好,具有較好的實(shí)用價(jià)值。
[1]孫利民,李建中,陳渝,等.無(wú)線傳感器網(wǎng)絡(luò)[M].北京:清華大學(xué)出版社,2005.
[2]YICK J,MUKHERJEE B,GHOSAL D.Wireless sensor network survey[J].Computer Networks,2008,52(12):2292-2330.
[3]陳東云,杜敬倉(cāng),任柯燕.ATmega 128單片機(jī)原理與開(kāi)發(fā)指導(dǎo)[M].北京:機(jī)械工業(yè)出版社,2006.
[4]李倩.基于AT89LV52和 CC1000的無(wú)線測(cè)溫系統(tǒng)的設(shè)計(jì)[J].中國(guó)科技信息,2010(10):145-146,136.
[5]袁朝輝.基于CC1000的小型無(wú)線傳感器網(wǎng)絡(luò)的設(shè)計(jì)[J].計(jì)算機(jī)測(cè)量與控制,2008,16(11):1761-1765.
[6]KASTNER W,NEUGSCHWANDTNER G,SOUCEK S,et al.Communication systems for building automation and control[J].Proceedings of the IEEE,2005,93(6):1178-1203.
[7]徐雷鳴,龐博,趙耀.NS與網(wǎng)絡(luò)模擬[M].北京:人民郵電出版社,2003:32-58.
Design of bicycle anti-theft system for community based on WSN
Han Lei
(School of Computer Engineering,Nanjing Institute of Technology,Nanjing 211167,China)
In order to meet the needs of community management,this paper applies the technology of wireless sensor networks to bicycle anti-theft system for community.We use ATmega128L chip as microcontroller of WSN’s node,and extend the break detection module and the wireless communication module with CC1000.On the other hand,we propose a simple self-organized protocol for wireless sensor networks,and then design anti-theft software on monitoring host using multi-thread technology.The feasibility of bicycle anti-theft system is verified by experimental conclusions,and the stability of the communication protocol under multi-node circumstance is proved by simulation results.The bicycle anti-theft system will be useful for community management.
wireless sensor networks;monitoring software;communication protocol
TP393
A
1674-7720(2011)02-0112-04
南京工程學(xué)院科研基金項(xiàng)目(KXJ08069)
2010-07-30)
韓磊,男,1982年生,碩士,講師,主要研究方向:無(wú)線傳感器網(wǎng)絡(luò),智能系統(tǒng)。
網(wǎng)絡(luò)安全與數(shù)據(jù)管理2011年2期