董 萍
(三門峽職業(yè)技術學院 信息工程系,河南 三門峽472000)
無線傳感器網(wǎng)絡是由部署在監(jiān)測區(qū)域內大量的廉價微型傳感器節(jié)點組成,每一個微型節(jié)點通過短距離無線通信方式與其他節(jié)點進行通信,最終形成的一個多跳自組織網(wǎng)絡[1]。無線傳感器網(wǎng)絡最初應用于軍用偵察、環(huán)境探測等方面,但是目前隨著嵌入式技術的進步,目前無線傳感器網(wǎng)絡可使用的范圍也越來越廣泛。
無線傳感器網(wǎng)絡的核心是自組織網(wǎng)絡算法[2]。一般適用于無線傳感器網(wǎng)絡中的自組織算法較為復雜,并且考慮到保證功耗、安全等性能,算法的復雜度是非常高的。而本文由于僅將無線傳感器網(wǎng)絡部署于室內,且功能簡單、電源充足,因此算法得以大幅簡化。
智能家居系統(tǒng)[3]是基于嵌入式系統(tǒng)技術并隨著人民生活水平提高而演化出的一種智能家居管理終端,它能夠通過多種通信手段從使用者那里獲取控制指令,并且能夠根據(jù)目前傳感器網(wǎng)絡提供的信息做出智能判斷和執(zhí)行。
一個完整的智能家居系統(tǒng)主要由以下幾個部分組成。首先是核心的智能家居主控端[4]。此端點負責進行無線傳感器網(wǎng)絡的管理和控制,并且需要接受用戶的指令(遙控器、短信等)并進行執(zhí)行。
其次是無線傳感器網(wǎng)絡[5]。在本文的智能家居系統(tǒng)中,無線傳感器網(wǎng)絡被設計為星型結構:以主控端為中心,各個傳感器為分支。這樣設計的原因主要有兩個:
(1)所有的傳感器數(shù)據(jù)均由主控端處理,傳感器之間的數(shù)據(jù)交互非常少,因此星型結構效率最高;
(2)主控端接受用戶指令后,星型結構下執(zhí)行指令的效率最高。
最后是用戶交互界面和控制器。這些外圍器件的主要作用是用來合理的控制主控端功能,并可以實現(xiàn)系統(tǒng)軟件的維護和升級功能。
完整的智能家居系統(tǒng)如圖1所示。
圖1 智能家居系統(tǒng)示意
主控端由于擔負了網(wǎng)絡信息交互、用戶指令響應以及人機交互等工作,因此對硬件要求較高。本設計主要采用三星S3C6410 ARM11處理器作為主CPU。無線設計上考慮到是民用產品,因此使用了工作在2.4G頻段上的nRF2401A[6]無線模塊來實現(xiàn)無線通信。
主控端還配備了一臺串口GSM設備,可以接入運營商的GSM網(wǎng)絡。這樣主控端就可以接收來自用戶指定的手機號碼的指令,完成網(wǎng)絡內傳感器支持的功能;或者在室內發(fā)生火情、被入侵等情況時,使用短信及時通知用戶。
在人機接口的硬件上,主控端將使用標準的4:3LCD屏幕與配套的觸摸屏實現(xiàn)與用戶交互。
軟件方面,本設計采用了Android2.3智能操作系統(tǒng)來作為主控端的基本軟件系統(tǒng)。Android2.3智能系統(tǒng)可以為用戶提供友好、便捷的人機界面,極大的增加用戶的使用效率。圖2是主控端的硬件結構。
圖2 主控端硬件結構
主控端的功能主要有以下幾點:
(1)使用LCD、觸摸屏、GSM模塊等人機接口設備與用戶進行互動并接收用戶指令;
(2)定時掃描各個下屬傳感器狀態(tài);
(3)接收各個下屬傳感器發(fā)出的告警信號并進行處理。
在告警管理方面,主要由一個Android內核進程來實現(xiàn)。這個Linux內核進程直接監(jiān)視無線通信數(shù)據(jù)包并會立即對告警進行響應[7]。告警的響應主要根據(jù)駐防方式不同而不同,系統(tǒng)主要支持以下幾種駐防方式:
(1)白晝駐防模式。發(fā)出一定分貝數(shù)的警報聲,同時通知物業(yè)人員。
(2)睡眠駐防模式。依靠特殊的振動手環(huán),提醒用戶有侵入警情發(fā)生,主要考慮保護用戶人身安全。
在無線傳感器節(jié)點的硬件設計中,主CPU使用ST公司下的Cortex-M3核心的STM32103F系列,此系列CPU擁有較高的運算速度、極低的功耗和高速SPI接口,對于傳感器的設計是十分合適的(圖3)。
圖3 無線傳感器節(jié)點硬件結構
除了主CPU之外,無線傳感器最重要的是傳感器本身。在本設計中,無線傳感器可以分為以下幾種:
(1)紅外光柵侵入檢測傳感器。
(2)煙霧及可燃氣體傳感器。
(3)門禁系統(tǒng)。
(4)電器遙控系統(tǒng)。
(5)震動報警手環(huán)。
傳感器的軟件,設計時為了提高效率,全部使用前后臺方式進行,不使用任何操作系統(tǒng)。
在電源管理方面,有的固定式傳感器使用市電作為主電源,電池作為備用電源。而類似電器遙控節(jié)點由于其必須具有便攜屬性,因此只能使用電池作為電源。電源管理模塊會對電池電壓進行監(jiān)測管理,并及時提醒用戶更換電池。
在下屬傳感器管理方面,主要由Android系統(tǒng)Java程序來實現(xiàn)。這些程序主要由一個系統(tǒng)定時器控制,定時對下屬傳感器進行輪詢操作,并在LCD上顯示出來,以便用戶查詢。
目前針對系統(tǒng)需要解決的問題有兩點:
(1)由于整個網(wǎng)絡都工作在室內,但是仍有可能覆蓋到室外,因此需要設計無線傳感器網(wǎng)絡的通信方式、保密模式;
(2)用戶可能會逐步擴大網(wǎng)絡,加入新的設備,因此需要設計無線傳感器網(wǎng)絡的擴展方式。
針對以上需要解決的問題,解決的基本方法:
(1)對于網(wǎng)絡的通信方式,硬件可以使用2.4GHz的全球公用頻段;軟件可以使用私有通信幀格式實現(xiàn)。通信加密方式,硬件可以采用多點跳頻的方式,軟件使用AES加密算法來實現(xiàn);
(2)對于網(wǎng)絡的擴展方式,硬件使用每個設備唯一的物理地址方式來實現(xiàn),軟件使用主控端受控登記的方式來控制。
下文以nRF2401A芯片+S3C6410作為主控端,nRF2401A+STM32103F作為傳感器端點為例的實現(xiàn)進行詳細說明。
3.2.1 網(wǎng)絡加密通信方式的實現(xiàn)
在硬件實現(xiàn)上,為了解決功耗和通信的保密性,系統(tǒng)在設計時加入突發(fā)傳輸模式,在此模式下,可以短時間內傳送大量數(shù)據(jù),最高速度可以達到1Mbps的速率,在使用電池供電的環(huán)境中可以較大的延長系統(tǒng)工作時間。同時,硬件本身支持跳頻通信,可以極大地提高數(shù)據(jù)的安全性。
在軟件實現(xiàn)上,考慮到嵌入式平臺有限的計算能力,同時本設計也是應用于民用的產品平臺,因此本文使用自有幀格式和AES算法來對端點之間的通信進行加密。
首先,在數(shù)據(jù)傳輸過程中,采用了自有幀格式作為傳輸方式,如圖4所示。
圖4 端點數(shù)據(jù)傳輸幀格式
由于每個數(shù)據(jù)包的長度是不定的,因此每個數(shù)據(jù)包的第二個字節(jié)中存放了這個數(shù)據(jù)包的Payload長度。系統(tǒng)處理時只需根據(jù)長度信息提取數(shù)據(jù)即可。
其次,數(shù)據(jù)提取后,需要使用AES算法進行解密,解密之后的數(shù)據(jù)才能應用于系統(tǒng)。
最后,關于AES加密算法的嵌入式實現(xiàn)問題。AES加密算法在嵌入式系統(tǒng)中的應用已經非常成熟,并且ARM11和CortexM3處理器對AES算法的硬件支持也沒有任何問題,因此應用AES算法在軟硬件上是沒有任何問題的。
3.2.2 無線傳感器節(jié)點的管理
為了更好地對無線傳感器節(jié)點進行管理,主控端采用了一種類似于SNMP網(wǎng)絡協(xié)議棧的管理方式:為每個注冊的傳感器節(jié)點建立MIB庫,并且使用TCA(Threshold Cross Alarm,門限越界告警)。
圖5是主控端的MIB庫管理方式示意?;驹砣缦拢?/p>
圖5 主控端MIB管理方式
(1)主控端在系統(tǒng)初始化階段初始化已經支持的傳感器軟件模型,并為他們創(chuàng)建對應的Struct。每個Struct有若干個屬性,對應于不同的傳感器上報數(shù)值,這些數(shù)值從傳感器中輪詢得到。
(2)每個Struct會指向一個Threshold數(shù)據(jù)結構,這個Threshold數(shù)據(jù)結構中有一系列的門限值 (由用戶設置的)。每次主控端從無線傳感器獲得新的屬性值后,就會和Threshold中對應的門限值進行比較,如果超過設定的門限值,主控端就會發(fā)送告警信息。
MIB Struct和Threshold的關系如圖6所示。
圖6 Sensor Struct結構
3.2.3 主從端點功能實現(xiàn)
在完成傳感器網(wǎng)絡通信功能設計之后,需要對主從端點進行軟件設計。圖7就是主控端點的軟件架構。
如圖7所示,主控端的軟件主要由內核驅動程序和Java應用程序組成。內核驅動程序主要處理對實時性比較敏感的應用,可以及時處理底層需求;而Java應用程序主要用于對人機接口的實現(xiàn)。
主控端的子端點注冊流程如圖8所示。
圖7 主控端軟件架構
圖8 主控端注冊流程
主控端對于子端點的注冊,采用單線程控制的定時廣播方式。一旦子端點接收到來自主控端的廣播包,就自動回復自身的設備信息。主控端收到后會進行一系列的處理流程來完成對設備的注冊或者加入黑名單等動作。
通過如圖8的方式,系統(tǒng)實現(xiàn)了自動擴展功能,解決了3.1節(jié)提出的問題。
如圖9所示,從端點的軟件架構就是經典的單片機前后臺軟件架構,這里就不贅述了。
圖9 從端點軟件架構
基于無線傳感器網(wǎng)絡的智能家居系統(tǒng)的測試分為三個部分。
第一,硬件可靠性測試。由于各個從節(jié)點的工作環(huán)境不同,因此主要針對各個從節(jié)點的硬件進行全面測試。主要包括ESD、高低溫、陽光直曬、跌落等各項測試。測試結果如下表所示。
硬件測試結果表
第二,軟件可靠性測試。測試方法主要是進行各模塊功能測試。測試方法為等價值劃分法、邊界值測量法和場景法。測試步驟主要是使用等價值劃分法來劃分測試模塊邊界,然后使用邊界值測量法來對邊界進行檢驗,最后使用場景法模擬用戶使用來測試實際功能。
測試結果顯示各模塊工作良好,對用戶操作的響應及時,界面友好。
第三,無線網(wǎng)絡的抗干擾測試。本系統(tǒng)的設計目標是家用系統(tǒng),主要測試方法是在系統(tǒng)正常工作后,同時運行一些常見的2.4G無線設備進行同時工作,觀察本系統(tǒng)的工作狀況。主要測試設備是WIFI和藍牙系統(tǒng)。
結果表明在同時使用WIFI和藍牙的環(huán)境下,系統(tǒng)工作良好,并沒有受到任何干擾,顯示出良好的無線抗干擾性能。
以上分析與測試表明,基于無線傳感器網(wǎng)絡的智能家居系統(tǒng)使用方便,界面友好,擴展性與可靠性較強,對于想要提高生活質量,提升家居管理方式的應用場合,具有很高的使用價值。
[1]王漫,何寧,裴俊,等.面向無線傳感器網(wǎng)絡應用的嵌入式操作系統(tǒng)綜述[J].計算機應用與軟件,2007(6):79-84.
[2]何寧,王漫,方昀,等.面向無線傳感器網(wǎng)絡應用的傳感器技術綜述[J].計算機應用與軟件,2007(9):87-92.
[3]王淑華,陳國定,趙國炳.一種無線傳感器網(wǎng)絡能耗模型及有效性分析[J].計算機應用與軟件,2011(2):112-116.
[4]SamsungNAND FlashMemory[S].MemoryProduct&Technology Division,March,2000.
[5]黃力,周新蓮.無線傳感器網(wǎng)絡基于簇的數(shù)據(jù)傳輸可靠性研究[J].計算機應用與軟件,2010(8):70-74.
[6]蔣承延,吳思遠,陳偉.基于無線傳感器網(wǎng)絡的智能家居系統(tǒng)[J].微計算機信息,2007(13):85-90.
[7]鄭君剛,吳成東,劉大任,等.基于無線傳感器網(wǎng)絡技術智能家居報警系統(tǒng)設計[J].沈陽建筑大學學報(自然科學版),2008(2):111-114.