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