摘 要: 針對小區管理的需求,將無線傳感器網絡引入到小區自行車防盜系統中。以ATmega128L單片機為核心擴展了斷線檢測模塊和以CC1000芯片為基礎的無線通信模塊,設計了無線傳感器網絡的電子鎖節點和Sink節點。規劃了無線傳感器網絡拓撲,設計了具有較高穩定性的簡單無線通信協議,基于監控主機以多線程的方式實現了防盜監控軟件。實驗驗證了方案的可行性,仿真驗證了多節點情況下,通信協議的穩定性。
關鍵詞: 無線傳感器網絡;監控軟件;通信協議
近年來,隨著無線通信、微電子技術、傳感器技術以及嵌入式計算等技術的不斷進步,推動了低成本、低功耗的無線傳感器網絡WSN(Wireless Sensor Network)的發展,促使WSN成為當今活躍的研究領域[1]。WSN由部署在監測區域內大量的廉價微型傳感器節點組成,通過無線通信方式形成的一個多跳的自組織網絡系統,其目的是協作地感知、采集和處理網絡覆蓋區域中感知對象的信息,并發送給觀察者[2]。無線傳感器網絡在軍事和民用領域都有廣闊的應用前景。本文把WSN引入到小區的自行車防盜系統中,給出了一套基于WSN的小區自行車防盜系統的設計方案。為小區自行車的管理,尤其是防盜提供保障。
1 系統方案
居民小區通常規劃在兩幢居民樓中間或集中的一片區域停放自行車等兩輪車輛。如圖1所示,自行車通常被放置在指定車位中,為了加強對自行車的管理,本文引入WSN技術。防盜系統由信息采集和報警提示兩部分組成。
(1)信息采集
首先,為每一輛自行車配備一塊具有唯一ID的電子鎖作為小區內自行車的標識。該電子鎖具有WSN節點功能,可以檢測是否斷線、電池電量,同時具有無線通信能力,能夠將檢測到的信息以多跳方式向觀測點發送。為便于收集信息,同時為觀測者提供定位信息參考,在指定位置(如車棚、居民樓、路燈桿)部署匯節點,如圖1的Sink裝置所示。與傳統WSN不同的是,匯節點的位置不是隨機的,其部署要考慮到小區自行車停放區域的大小、小區的布局等因素。匯節點接收傳感節點的信息,并轉發給觀測者。
(2)報警提示
觀測站設置在值班室內,如圖1所示。由運行于PC機上的監控軟件管理WSN收集到的信息,監控軟件能夠顯示自行車在小區中的大致位置,顯示電子鎖的電池電量,提示更換電子鎖電池,提示電子鎖暴力開啟,提示自行車越界。
值班人員在得到監控系統的提示后,可以快速采取相應行動,避免自行車失竊。
2 系統硬件設計
小區自行車防盜系統硬件設計的核心是WSN節點設計。按照在系統中承擔的任務劃分,可將WSN節點劃分成一般傳感節點和Sink節點。但這兩類節點只是在軟件功能上存在差異,而硬件設計并無本質不同。
本文將電子鎖和Sink節點劃分成六大硬件模塊,如圖2所示,以微控制器為核心,擴展了無線通信模塊、電源模塊、斷線檢測模塊、LED指示模塊、電壓采集模塊、按鍵模塊。
2.1 微控制器
本文選用ATmega128L作為主處理器。ATmega128L是基于AVR RISC結構的8 bit低功耗CMOS微處理器[3],數據吞吐率高達1 MIPS/MHz,可緩解系統在功耗和處理器之間的矛盾。芯片自帶128 KB的可編程Flash,在本應用中無需外擴存儲器。另外,ATmega128L有豐富的接口資源(如SPI、USART、TWI、ADC等),為本應用提供了重要支持。
2.2 無線通信模塊
無線通信模塊采用CC1000,它是根據Chipcon公司的SmartRF技術,在0.35 μm CMOS工藝下制造的一種理想的超高頻單片收發通信芯片[4]。其工作頻帶在315 MHz、868 MHz及915 MHz,但CC1000很容易通過編程使其工作在300 MHz~1 000 MHz范圍內。它具有低電壓(2.3 V~3.6 V)、極低的功耗、可編程輸出功率(-20 dBm~10 dBm)、高靈敏度(一般-109 dBm)、小尺寸(TSSOP-28封裝)、集成了位同步器等特點。其FSK數據率可達72.8 kb/s,具有250 Hz步長可編程頻率能力,適用于跳頻協議;主要工作參數能通過串行總線接口編程改變,使用非常靈活。
ATmega128L通過PCLK、PDATA、PALE三線數字串行接口來操作CC1000芯片,控制它的工作狀態以及參數設置。DIO是CC1000與ATmega128L數據交換雙向管腳,數據交換時鐘始終由CC1000的DCLK提供,即CC1000總是處于主設備狀態[5]。
2.3 斷線報警模塊
斷線報警模塊是電子鎖的一個構成部分,其基本原理如圖3所示,在警戒狀態下,BG的基極偏置電壓經警戒線S對地短路,BG不工作。如遇盜情,S被斷開,BG立即得電工作,SCR導通,發光二極管點亮。微控制ATmega128L通過電壓檢測模塊檢測b、e兩點的電壓,判定電子鎖狀態。
2.4 其他模塊
電源模塊為ATmega128L、CC1000、斷線報警模塊供電。電壓檢測模塊有兩項功能:一是檢測電源電壓,以判定是否更換電池;二是檢測斷線報警模塊b、e兩點電壓,以判定電子鎖是否被暴力開啟。LED指示模塊用于指示WSN節點的運行狀態,服務于調試。按鍵模塊用于電子鎖的密碼設置、狀態設置。
為了達到節能的目標,硬件設計除了考慮處理器的幾種低功耗處理模式外,還設計了一個模擬開關,在電子鎖處于非保護模式且開啟時,該開關才能顯露出來,供用戶關閉電源,降低能耗。
3 系統軟件設計
小區自行車防盜系統軟件主要有兩大部分:一是運行于WSN節點上的軟件,二是運行于PC機上的監控軟件。WSN節點軟件即信息感知和通信協議,下面從網絡拓撲、通信協議、監控軟件三個方面論述。
3.1 網絡拓撲
因為小區停放自行車的區域相對規整,自行車的擺放也會相對整齊,所以本文使用圖4所示的簇形樹狀拓撲結構。將車棚區域劃分成幾個區,每個區形成一個簇,以Sink節點為簇首,電子鎖節點和簇首節點形成星形網絡,簇首采集到信息通過Sink節點依次轉發到觀測站的PC機,供監控軟件分析處理。
電子鎖和Sink節點的ID用16 bit二進制數表示,這是節點的唯一標識。電子鎖和Sink節點的網絡地址也用16 bit二進制數表示,可以分為簇首序號和節點序號兩部分,各占8 bit,該網絡地址是在組網階段形成的。將網絡地址分成簇首序號和節點序號的目的是過濾報文。節點在接收到一條報文后,將簇首序號和節點序號分別與自身網絡地址匹配,如果不同可以直接刪除報文,降低報文轉發處理造成的能耗。
3.2 通信協議設計
小區自行車防盜系統中Sink節點的部署是固定的,而自行車何時擺放在車棚,擺放在哪個車棚,擺放在車棚的哪個位置是不確定的,即電子鎖節點的進入是隨機的。因此,通信協議[6]的運行分為兩個階段:主鏈網組網階段和信息感知階段。
(1)主鏈網組網階段協議
Sink節點部署在既定位置之后,如圖4所示,網絡包含一個與監控主機相連的網關節點、若干個Sink節點和一些電子鎖傳感器節點。網關節點是路由的發起者和數據的收集者。上電初始化后,網關節點發送組網報文,如圖5所示,發布自己的網絡地址和同步時間列表。網關鄰居節點收到組網報文后,根據同步時間列表,發送確認報文,確認報文中包含自己的ID。網關節點收到確認報文后,向鄰居節點發送配置報文,配置報文包含網關節點為鄰居節點分配的網絡地址。這樣網關節點就和鄰居節點建立了父子層次關系。得到了網絡地址的子節點發布組網報文,如此重復,建立了主鏈網絡拓撲。
(2)信息感知階段協議
主鏈網絡拓撲建立后,電子鎖節點會隨機進入信息感知區域。網絡進入信息感知階段,該階段電子鎖節點與Sink節點的交互過程如圖6所示。Sink節點按照自己的時序列表,定時發送組網報文,進入Sink節點檢測區域的電子鎖在設置為保護狀態后,未獲得網絡地址之前,會持續監聽組網報文。電子鎖節點收到Sink節點的組網報文后,依據報文中指示的同步時間列表,響應電子鎖加入報文,報文中包含電子鎖的ID號。Sink節點收到電子鎖加入報文后,向電子鎖節點發送配置報文,為電子鎖分配網絡地址。電子鎖擁有網絡地址后,會定時將采集到的信息發送給Sink節點,并逐層轉發到觀測站監控計算機。如果用戶需要使用自行車正常外出,輸入正確的密碼正常開啟電子鎖后,電子鎖向Sink節點發送正常離開報文,然后進入休眠狀態。
3.3 監控軟件設計
電子鎖向Sink節點發送的數據報文包含的信息主要有斷線報警狀態、正常外出狀態、電池電壓值和網絡地址,其中網絡地址中包含電子鎖的簇首序號。運行于PC機上的監控軟件收集、分析處理這些信息,達到監控小區自行車的目的。監控軟件基于VC和SQL Server 平臺開發,實現越界報警、斷線報警、電子鎖電池更換提示等功能。
監控程序在系統初始化后,啟動Socket數據接收和數據處理兩個線程,分別完成數據采集、數據處理功能。兩個線程以數據庫為數據交換的媒介,以信號量同步數據庫訪問。
Socket數據接收線程的流程如圖7所示,線程初始化后,首先啟動Socket監聽,然后向網關發送組網命令,以建立主鏈網絡拓撲。該線程監聽Socket端口,接收來自網關的數據報文,從數據報文中解析WSN感知到的數據信息,寫入數據庫表中。在訪問數據庫之前需要和數據處理線程以信號量保持同步。如果線程檢測到主進程發送的終止線程信號,線程將釋放占用的資源,結束自己。
數據處理線程的執行流程如圖8所示,數據處理線程以數據庫為數據源,訪問數據庫前通過征用信號量與Socket線程同步,得到數據庫的訪問權后,數據處理線程依次做三項查詢,其中,斷線狀態優先級最高,越界次之,更換電池提示最低。根據查詢結果做報警或提示處理,周而復始,直到檢測到進程設置的線程結束標志,才結束線程自身。
該系統是一個基于無線傳感器網絡的小區自行車管理系統。系統設計結合現階段小區自行車管理現狀及WSN技術的發展現狀,將ATmega128L微控制器和CC1000無線芯片技術結合到一起,除電子鎖的機械結構外,完成了電子鎖節點及Sink節點的實驗室模型設計。實驗表明,根據節點檢測到的信息,監控程序能夠正確分析并顯示電子鎖節點的進入、越界、斷線、正常離開等狀態,越界或斷線時,監控軟件發出警報,提醒安保人員注意,達到了模型系統的效果。為了驗證通信協議在多節點時的穩定性,基于NS2平臺[7]做了仿真實驗,在節點數達到1 000時,協議仍能運行良好。
本文選用的硬件解決方案具有低成本、低能耗的特點,設計的通信協議雖然簡單,但是穩定性良好,具有較好的實用價值。
參考文獻
[1] 孫利民,李建中,陳渝,等.無線傳感器網絡[M].北京:清華大學出版社,2005.
[2] YICK J,MUKHERJEE B,GHOSAL D.Wireless sensor net-work survey[J].Computer Networks,2008,52(12):2292-2330.
[3] 陳東云,杜敬倉,任柯燕.ATmega 128單片機原理與開發指導[M].北京:機械工業出版社,2006.
[4] 李倩.基于AT89LV52和CC1000的無線測溫系統的設計[J].中國科技信息,2010(10):145-146,136.
[5] 袁朝輝.基于CC1000的小型無線傳感器網絡的設計[J].計算機測量與控制,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與網絡模擬[M].北京:人民郵電出版社,2003:32-58.