基于WSN的小區(qū)自行車防盜系統(tǒng)的設(shè)計(jì)
近年來(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ū)的自行車防盜系統(tǒng)中,給出了一套基于WSN的小區(qū)自行車防盜系統(tǒng)的設(shè)計(jì)方案。為小區(qū)自行車的管理,尤其是防盜提供保障。
1 系統(tǒng)方案
居民小區(qū)通常規(guī)劃在兩幢居民樓中間或集中的一片區(qū)域停放自行車等兩輪車輛。如圖1所示,自行車通常被放置在指定車位中,為了加強(qiáng)對(duì)自行車的管理,本文引入WSN技術(shù)。防盜系統(tǒng)由信息采集和報(bào)警提示兩部分組成。
(1)信息采集
首先,為每一輛自行車配備一塊具有唯一ID的電子鎖作為小區(qū)內(nèi)自行車的標(biāo)識(shí)。該電子鎖具有WSN節(jié)點(diǎn)功能,可以檢測(cè)是否斷線、電池電量,同時(shí)具有無(wú)線通信能力,能夠?qū)z測(cè)到的信息以多跳方式向觀測(cè)點(diǎn)發(fā)送。為便于收集信息,同時(shí)為觀測(cè)者提供定位信息參考,在指定位置(如車棚、居民樓、路燈桿)部署匯節(jié)點(diǎn),如圖1的Sink裝置所示。與傳統(tǒng)WSN不同的是,匯節(jié)點(diǎn)的位置不是隨機(jī)的,其部署要考慮到小區(qū)自行車停放區(qū)域的大小、小區(qū)的布局等因素。匯節(jié)點(diǎn)接收傳感節(jié)點(diǎn)的信息,并轉(zhuǎn)發(fā)給觀測(cè)者。
(2)報(bào)警提示
觀測(cè)站設(shè)置在值班室內(nèi),如圖1所示。由運(yùn)行于PC機(jī)上的監(jiān)控軟件管理WSN收集到的信息,監(jiān)控軟件能夠顯示自行車在小區(qū)中的大致位置,顯示電子鎖的電池電量,提示更換電子鎖電池,提示電子鎖暴力開(kāi)啟,提示自行車越界。
值班人員在得到監(jiān)控系統(tǒng)的提示后,可以快速采取相應(yīng)行動(dòng),避免自行車失竊。
2 系統(tǒng)硬件設(shè)計(jì)
小區(qū)自行車防盜系統(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指示模塊、電壓采集模塊、按鍵模塊。
2.1 微控制器
本文選用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)用提供了重要支持。
2.2 無(wú)線通信模塊
無(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]。
2.3 斷線報(bào)警模塊
斷線報(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)。
2.4 其他模塊
電源模塊為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)閉電源,降低能耗。
3 系統(tǒng)軟件設(shè)計(jì)
小區(qū)自行車防盜系統(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è)方面論述。
3.1 網(wǎng)絡(luò)拓?fù)?/p>
因?yàn)樾^(qū)停放自行車的區(qū)域相對(duì)規(guī)整,自行車的擺放也會(huì)相對(duì)整齊,所以本文使用圖4所示的簇形樹(shù)狀拓?fù)浣Y(jié)構(gòu)。將車棚區(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ā)處理造成的能耗。
3.2 通信協(xié)議設(shè)計(jì)
小區(qū)自行車防盜系統(tǒng)中Sink節(jié)點(diǎn)的部署是固定的,而自行車何時(shí)擺放在車棚,擺放在哪個(gè)車棚,擺放在車棚的哪個(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ù)浣⒑螅娮渔i節(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ī)。如果用戶需要使用自行車正常外出,輸入正確的密碼正常開(kāi)啟電子鎖后,電子鎖向Sink節(jié)點(diǎn)發(fā)送正常離開(kāi)報(bào)文,然后進(jìn)入休眠狀態(tài)。
3.3 監(jiān)控軟件設(shè)計(jì)
電子鎖向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ū)自行車的目的。監(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ù)洹T摼€程監(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é)束自己。
數(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ū)自行車管理系統(tǒng)。系統(tǒng)設(shè)計(jì)結(jié)合現(xiàn)階段小區(qū)自行車管理現(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à)值。