虞致國,魏 斌,萬書芹,黃召軍,陳子逢
(中國電子科技集團(tuán)公司第58研究所,江蘇 無錫 214035)
從物聯(lián)網(wǎng)通用的技術(shù)分類看,物聯(lián)網(wǎng)可分為三層構(gòu)架,即:感知層、網(wǎng)絡(luò)層和應(yīng)用層。其中感知層因?yàn)橹苯用嫦蚓唧w物體,產(chǎn)品的種類繁多,需要的數(shù)量也十分巨大。目前,感知層主要由無線傳感器網(wǎng)絡(luò)承擔(dān),該網(wǎng)絡(luò)包括傳感器節(jié)點(diǎn)、網(wǎng)關(guān)節(jié)點(diǎn)(或數(shù)據(jù)匯聚節(jié)點(diǎn))和管理終端。傳感器節(jié)點(diǎn)分布于目標(biāo)區(qū)域,決定了網(wǎng)絡(luò)的功能和應(yīng)用范圍。如何設(shè)計(jì)新型高效的傳感器節(jié)點(diǎn)成為提高傳感器網(wǎng)絡(luò)性能、擴(kuò)展其應(yīng)用范圍的關(guān)鍵問題[1]。另一方面,在不同的應(yīng)用范圍中,節(jié)點(diǎn)的大多數(shù)功能是類似的[2~8],因此需要設(shè)計(jì)一種能夠支持多種傳感器接入方式的傳感器節(jié)點(diǎn),并具有可擴(kuò)展性、可配置性及低功耗等特點(diǎn),從而避免不同應(yīng)用系統(tǒng)的重復(fù)開發(fā)成本。
本文設(shè)計(jì)的傳感器節(jié)點(diǎn)采用ZigBee通信技術(shù),可兼容多種傳感器,包括模擬量傳感器、數(shù)字輸入輸出、智能傳感器接口(如I2C、UART、SPI接口等);可以兼容多種供電方式,方便不同的應(yīng)用場(chǎng)合;采用模塊化設(shè)計(jì),增強(qiáng)了各個(gè)模塊的通用性,降低了硬件成本。
ZigBee是一種新興的短距離、低速率、低功耗、低成本和低復(fù)雜度的無線傳輸技術(shù),由IEEE802.15.4和ZigBee聯(lián)盟共同制訂完成。ZigBee協(xié)議采用2.4GHz ISM頻段時(shí),傳輸速率為250 kb/s,傳輸距離為10m~75m;ZigBee的協(xié)議架構(gòu)由用戶層、應(yīng)用層、網(wǎng)絡(luò)層、MAC層和物理層組成。ZigBee物理層和MAC層采用802.15.4標(biāo)準(zhǔn),網(wǎng)絡(luò)層和應(yīng)用層由ZigBee聯(lián)盟定義,用戶層由用戶定義[10]。目前,已有眾多公司加入了ZigBee聯(lián)盟,支持ZigBee技術(shù)的芯片和產(chǎn)品也紛紛開始面世。
構(gòu)建的傳感網(wǎng)系統(tǒng)包括傳感器節(jié)點(diǎn)、路由節(jié)點(diǎn)、網(wǎng)關(guān)節(jié)點(diǎn)和后臺(tái)管理終端,結(jié)構(gòu)如圖1所示。傳感器節(jié)點(diǎn)安裝在使用現(xiàn)場(chǎng)(可用電池供電),周期性采集相關(guān)參數(shù),采用多跳的方式通過路由節(jié)點(diǎn)匯聚到網(wǎng)關(guān)節(jié)點(diǎn),然后送到管理終端。網(wǎng)關(guān)節(jié)點(diǎn)完成網(wǎng)絡(luò)的組織、協(xié)調(diào)、管理和維護(hù)。管理終端負(fù)責(zé)維護(hù)系統(tǒng)數(shù)據(jù)庫、數(shù)據(jù)分析、報(bào)警、報(bào)表、網(wǎng)絡(luò)遠(yuǎn)程配置等功能。用戶可以通過管理終端對(duì)目標(biāo)區(qū)域的傳感器數(shù)據(jù)進(jìn)行讀取、存儲(chǔ)、分析。

圖1 系統(tǒng)網(wǎng)絡(luò)結(jié)構(gòu)圖
傳感器節(jié)點(diǎn)包括硬件設(shè)計(jì)和嵌入式軟件設(shè)計(jì)兩部分。硬件設(shè)計(jì)著重考慮MCU的選擇、低功耗、對(duì)外接口等,并為提高電池的使用效率和軟件低功耗提供硬件支撐。軟件設(shè)計(jì)考慮協(xié)議棧和應(yīng)用程序的實(shí)現(xiàn),并采用低功耗工作模式。為了使得節(jié)點(diǎn)具備更高的通用性,硬件采用模塊化設(shè)計(jì)思想,盡量將一些公用模塊獨(dú)立出來。射頻部分為各種類型節(jié)點(diǎn)所必須,為節(jié)點(diǎn)的核心部分,可單獨(dú)設(shè)計(jì)。
傳感器節(jié)點(diǎn)的硬件結(jié)構(gòu)如圖2所示,包括三個(gè)部分:射頻子板、傳感器節(jié)點(diǎn)主板、傳感器模塊。射頻子板和傳感器節(jié)點(diǎn)主板一起構(gòu)成節(jié)點(diǎn)的主體部分。傳感器模塊根據(jù)不同系統(tǒng)需求進(jìn)行選擇,通過通用傳感器接口和節(jié)點(diǎn)主板連接在一起。

圖2 傳感器節(jié)點(diǎn)硬件框圖
射頻子板實(shí)現(xiàn)系統(tǒng)的無線收發(fā)部分,硬件包括ZigBee系統(tǒng)芯片、時(shí)鐘模塊、RF匹配電路、天線和相應(yīng)的對(duì)外接口等,射頻子板的結(jié)構(gòu)如圖3所示。

圖3 射頻子板框圖
4.1.1 MCU的選擇
芯片的選擇主要考慮其低功耗、集成度、價(jià)格等因素。MCU選用FreeScale公司MC13224V,工作電壓為2.0V~3.6V,芯片集成標(biāo)準(zhǔn)的ARM內(nèi)核、2.4GHz射頻收發(fā)器、IEEE 802.15.4 MAC硬件加速器和AES硬件加速器,并在開發(fā)環(huán)境中提供最新的ZigBee 2007/Pro協(xié)議棧。MC13224V上集成了較多的外圍資源,主要包括:
(1)時(shí)鐘模塊,包括兩個(gè)晶體振蕩器和一個(gè)環(huán)形振蕩器(2kHz);
(2)一個(gè)SPI接口、一個(gè)SSI接口,兩個(gè)UART接口,一個(gè)I2C接口;
(3)兩個(gè)12bit ADC(共八路外部輸入);
(4)低功耗管理模塊,芯片支持Hibernate和Doze兩種低功耗模式。
4.1.2 時(shí)鐘系統(tǒng)
外部設(shè)計(jì)采用了兩個(gè)晶振,一個(gè)是主晶振,振蕩頻率為24MHz;另一個(gè)為32.768kHz的輔助晶振。在正常工作狀態(tài)下,采用主晶振時(shí)鐘,當(dāng)處理器進(jìn)入睡眠狀態(tài)時(shí)采用輔助晶振或2kHz的環(huán)形振蕩器(根據(jù)功耗及休眠間隔來定),達(dá)到降低功耗的目的。
射頻模塊接口有通用輸入輸出GPIO(和I2C、UART等接口復(fù)用)、模數(shù)轉(zhuǎn)換口、JTAG口三類。GPIO口用于數(shù)字信號(hào)通訊,模數(shù)轉(zhuǎn)換口可對(duì)所監(jiān)測(cè)的模擬量進(jìn)行模數(shù)轉(zhuǎn)換。JTAG仿真下載接口,主要有兩個(gè)功能:一是在線調(diào)試,二是下載源程序。
傳感器節(jié)點(diǎn)的天線及其相關(guān)電路有其自身的特點(diǎn)與要求,在設(shè)計(jì)傳感器節(jié)點(diǎn)的時(shí)候,應(yīng)根據(jù)這些特點(diǎn)和要求重視天線及其相關(guān)電路的設(shè)計(jì),注重提高天線的性能。由于MC13224V內(nèi)部集成了平衡-不平衡轉(zhuǎn)換器(即巴倫電路),故天線設(shè)計(jì)相對(duì)簡(jiǎn)單,只需要重點(diǎn)考慮50Ω的電阻匹配。
傳感器節(jié)點(diǎn)主板完成狀態(tài)指示、供電、配置、下載編程、對(duì)外擴(kuò)展等功能,其結(jié)構(gòu)如圖4所示。

圖4 傳感器節(jié)點(diǎn)結(jié)構(gòu)圖
4.4.1 配置接口
在實(shí)際使用中,常常需要對(duì)節(jié)點(diǎn)的相應(yīng)參數(shù)進(jìn)行配置,如節(jié)點(diǎn)的休眠時(shí)間、節(jié)點(diǎn)的采集速度、相關(guān)的網(wǎng)絡(luò)參數(shù)等。為了讓用戶使用更加靈活,決定提供USB接口進(jìn)行配置(這些參數(shù)也可等節(jié)點(diǎn)組網(wǎng)后再通過無線的方式進(jìn)行配置)。MC13224V原本沒有USB接口,只有UART接口,考慮到現(xiàn)在很多臺(tái)式機(jī)和筆記本都沒有配備RS232接口,采用協(xié)議轉(zhuǎn)換芯片F(xiàn)T232RL進(jìn)行轉(zhuǎn)換。
當(dāng)配置完畢時(shí),系統(tǒng)將參數(shù)重新保存在芯片的Flash中。因?yàn)榕渲秒娐凡怀S茫瑸榱私档凸?jié)點(diǎn)功耗,對(duì)FT323RL設(shè)置單獨(dú)的電源開關(guān)。在正常使用時(shí),將配置電路關(guān)閉。
4.4.2 接口模塊
接口模塊為節(jié)點(diǎn)對(duì)外連接傳感器的通道及輸出控制通道,必須充分考慮其通用性。對(duì)于一般常見的應(yīng)用,只需要接上所需要的傳感器等設(shè)備。節(jié)點(diǎn)的接口主要有UART接口、I2C接口、SPI接口、ADC接口、電源VCC(5V)、GND,除電源外所有的接口均可以配置成通用輸入輸出口(GPIO)。ADC接口用于模擬量的輸入,可把傳感器的模擬信號(hào)轉(zhuǎn)換成數(shù)字信號(hào),最大支持12bit。UART接口、I2C接口、SPI接口等可用來連接支持相應(yīng)接口的各種智能傳感器和設(shè)備。如果配置成GPIO,則可用作數(shù)量的采集和輸出,實(shí)現(xiàn)對(duì)外接設(shè)備的控制和狀態(tài)采集。接口模塊采用工業(yè)級(jí)的接插件,可多次插拔,插好之后接口穩(wěn)定。通過通用化的接口設(shè)計(jì),增強(qiáng)了節(jié)點(diǎn)外接設(shè)備的靈活性,可以迅速組成應(yīng)用系統(tǒng)。
4.4.3 人機(jī)接口
人機(jī)接口包括按鍵、LED及LCD。為了便于人機(jī)對(duì)話,在主板上設(shè)置了多個(gè)按鍵以實(shí)現(xiàn)不同的控制功能,如網(wǎng)絡(luò)連接控制按鈕,設(shè)備之間的綁定、復(fù)位按鈕等。
為了快速開發(fā)和應(yīng)用其硬件平臺(tái),F(xiàn)reeScale公司開發(fā)了BeeKit無線連接工具箱。BeeKit可以幫助開發(fā)人員快速創(chuàng)建ZigBee應(yīng)用,并修改、配置其參數(shù)。BeeKit生成的工程可以導(dǎo)入到IAR System,并進(jìn)一步加入用戶自己的應(yīng)用,最終下載到MC13224V。
節(jié)點(diǎn)的ZigBee協(xié)議棧采用FreeScale公司的BeeStack協(xié)議棧,它是一個(gè)輪轉(zhuǎn)查詢式操作系統(tǒng)。BeeStack已經(jīng)編寫了從MAC層到ZigBee設(shè)備應(yīng)用層的事件處理函數(shù),一般情況下無需修改這些函數(shù),只需要按照自己的需求編寫應(yīng)用層的任務(wù)及事件處理函數(shù)。
傳感器節(jié)點(diǎn)負(fù)責(zé)數(shù)據(jù)采集和上傳任務(wù),節(jié)點(diǎn)在正常狀態(tài)和休眠狀態(tài)進(jìn)行切換,其中工作時(shí)間和休眠周期由網(wǎng)關(guān)節(jié)點(diǎn)控制并實(shí)現(xiàn)同步。采集和整個(gè)軟件系統(tǒng)分為初始化、入網(wǎng)、命令處理、數(shù)據(jù)采集等部分,其工作流程圖如圖5所示。

圖5 傳感器節(jié)點(diǎn)軟件流程
因?yàn)閭鞲衅鞴?jié)點(diǎn)大部分情況下是采用電池供電,但用戶也可采用外部5V供電或使用USB對(duì)節(jié)點(diǎn)進(jìn)行配置(USB可提供5V電源)。采用USB供電時(shí),節(jié)點(diǎn)會(huì)使用電壓轉(zhuǎn)換電路、USB與RS232轉(zhuǎn)換電路;采用外部5V供電時(shí),節(jié)點(diǎn)會(huì)使用電壓轉(zhuǎn)換電路。因此,硬件在低功耗方面必須支持兩個(gè)特性:一是能盡可能提高電池使用效率;二是在電池供電時(shí),配置電路、電壓轉(zhuǎn)換芯片、基準(zhǔn)源電路能夠進(jìn)入低功耗模式或斷電。
5.1.1 射頻子板的Buck電路
為了提高電池使用效率,采用了MC13324V內(nèi)部提供的Buck電路。它可以將電池電壓降至1.8V~2.0V,從而有效降低網(wǎng)絡(luò)電流,延長(zhǎng)了電池使用壽命。
5.1.2 節(jié)點(diǎn)主板的基準(zhǔn)源電路
MC13224V沒有提供ADC電路的基準(zhǔn)源,因此主板上必須提供基準(zhǔn)源芯片。另一方面,如該板采用數(shù)字接口對(duì)外進(jìn)行通信,可將基準(zhǔn)源芯片關(guān)閉,以降低系統(tǒng)功耗。基準(zhǔn)源芯片采用LM285M,電路設(shè)計(jì)如圖6所示。

圖6 基準(zhǔn)源電路
5.1.3 節(jié)點(diǎn)的電源系統(tǒng)
考慮到節(jié)點(diǎn)板的通用性,兼顧到有穩(wěn)定電源和采用電池供電兩種工作方式。外部輸入電源時(shí)有兩種途徑:(1)通過USB接口,可由帶USB接口的設(shè)備提供電源;(2)直接由有線電源供電。非電池供電時(shí)輸入電壓為5V,電池供電采用2節(jié)1.5V電池。每一組電源都能夠單獨(dú)關(guān)閉。電路結(jié)構(gòu)如圖7所示。
傳感器節(jié)點(diǎn)消耗能量的模塊主要包括傳感器模塊、處理器模塊和無線通信模塊。低功耗設(shè)計(jì)包括硬件和軟件兩個(gè)層面,其中硬件為基礎(chǔ)。軟件低功耗設(shè)計(jì)主要從以下幾個(gè)方面考慮:
(1)充分利用MCU的低功耗工作模式。MC13224V共設(shè)有多種休眠模式,因此必須根據(jù)實(shí)際需求,使之在需要采集、發(fā)送數(shù)據(jù)時(shí)才正常工作,其余時(shí)間處于睡眠狀態(tài)。
(2)根據(jù)不同的傳感器節(jié)點(diǎn)和監(jiān)測(cè)需求設(shè)置合理的采樣間隔時(shí)間,以延長(zhǎng)電池使用壽命。
(3)優(yōu)化節(jié)點(diǎn)的通信協(xié)議,包括:對(duì)節(jié)點(diǎn)采集到的數(shù)據(jù)進(jìn)行處理,發(fā)送有用數(shù)據(jù),減少通信量;設(shè)計(jì)合理的綁定關(guān)系,使傳感器節(jié)點(diǎn)既能完成既定功能,又能避免不必要的通信造成的能量損耗。

圖7 節(jié)點(diǎn)的電源系統(tǒng)
節(jié)點(diǎn)的測(cè)試主要從軟件調(diào)試、網(wǎng)絡(luò)功能、功耗分析及接口測(cè)試等方面展開。
采用IAR System進(jìn)行編譯調(diào)試,J-Link下載器進(jìn)行燒寫。IAR System是為單片機(jī)開發(fā)的C/C++語言集成開發(fā)環(huán)境,提供多種向?qū)Ш凸ぞ撸梢栽谝欢ǔ潭壬蠈?shí)現(xiàn)了軟件的自動(dòng)生成和可視化編程,同時(shí)支持多種類型工程。
為了測(cè)試節(jié)點(diǎn)的功能,主要是利用FreeScale ZTC進(jìn)行抓包,采用協(xié)調(diào)器組網(wǎng)等方式。
接口測(cè)試的方法如下:通過USB對(duì)節(jié)點(diǎn)進(jìn)行接口功能設(shè)定,并和協(xié)調(diào)器進(jìn)行遠(yuǎn)程通信,再外接相應(yīng)的傳感器或設(shè)備來測(cè)試其功能是否正常。
文獻(xiàn)表明[10~12],功耗的大小主要取決于睡眠狀態(tài)時(shí)的電流、降低正常工作狀態(tài)的工作時(shí)間,因此調(diào)試的重點(diǎn)在如何降低睡眠狀態(tài)的電流、減少通信容量等。經(jīng)過實(shí)際調(diào)試,在3V供電情況下,節(jié)點(diǎn)進(jìn)入低功耗的電流為11μA,符合設(shè)計(jì)要求。
隨著無線傳感器網(wǎng)絡(luò)應(yīng)用系統(tǒng)所覆蓋的范圍越來越廣,對(duì)傳感器節(jié)點(diǎn)提出的功能要求也越來越高,越來越復(fù)雜。本文詳細(xì)闡述了一種面向多傳感器模塊接入的低功耗無線傳感器節(jié)點(diǎn)的硬件設(shè)計(jì)、軟件設(shè)計(jì)、低功耗設(shè)計(jì)及性能測(cè)試方法。設(shè)計(jì)的節(jié)點(diǎn)具備通用型、模塊化、功能可重構(gòu)等特點(diǎn),能夠根據(jù)特定的應(yīng)用場(chǎng)景,快速進(jìn)行應(yīng)用,從而節(jié)約了開發(fā)成本和時(shí)間。
[1] 彭東. 一種多傳感模塊無線傳感器網(wǎng)絡(luò)新型節(jié)點(diǎn)的設(shè)計(jì)與實(shí)現(xiàn)[D]. 北京交通大學(xué),2009.
[2] 陳安都,劉少強(qiáng). 振動(dòng)信號(hào)在線檢測(cè)的超低功耗無線傳感器節(jié)點(diǎn)設(shè)計(jì)[J]. 計(jì)算機(jī)工程與科學(xué),2008,30(4):95-97.
[3] 陳德海,梁毓明. 低功耗溫室無線測(cè)量節(jié)點(diǎn)的設(shè)計(jì)[J].自動(dòng)化儀表,2010,31(5):65-68.
[4] 孫延明,劉志遠(yuǎn),蔡春麗,等. 低功耗無線傳感器網(wǎng)絡(luò)節(jié)點(diǎn)的設(shè)計(jì)[J]. 微計(jì)算機(jī)應(yīng)用,2009,30(2):21-25.
[5] 李明明,李偉. 低功耗無線傳感器網(wǎng)絡(luò)節(jié)點(diǎn)的設(shè)計(jì)技術(shù)[J]. 測(cè)控技術(shù),2010,29(6):8-11.
[6] 楊琦,陳輝煌,石江宏. 低功耗無線傳感器網(wǎng)絡(luò)終端節(jié)點(diǎn)設(shè)計(jì)[J]. 廈門大學(xué)學(xué)報(bào)(自然科學(xué)版),2008,47(3):357-360.
[7] 賴成瑜. 基于煤礦監(jiān)測(cè)的低功耗無線傳感器節(jié)點(diǎn)的研究與設(shè)計(jì)[J]. 通信技術(shù),2008,41(12):282-283.
[8] 奚大順,王洪輝,庹先國,等. 山體裂縫遠(yuǎn)程監(jiān)測(cè)系統(tǒng)傳感器節(jié)點(diǎn)的低功耗設(shè)計(jì)[J]. 2010,29(8):43-45,49.
[9] 馮勇平,等. 一種低功耗無線傳感器網(wǎng)絡(luò)節(jié)點(diǎn)的設(shè)計(jì)[J].電子技術(shù)應(yīng)用,2009,4:33-35.
[10] 李文江,魏娟. ZigBee無線傳感器網(wǎng)絡(luò)節(jié)點(diǎn)的低功耗設(shè)計(jì)[J]. 成都大學(xué)學(xué)報(bào)(自然科學(xué)版),2008,27(3):239-241.
[11] 涂巧玲,張杰,潘建權(quán),等. 無線傳感器網(wǎng)絡(luò)節(jié)點(diǎn)低功耗設(shè)計(jì)策略[J]. 電子測(cè)量技術(shù),2009,32(1):158-161.
[12] 趙洪飛,國兵,杜曉通,等. 用于油管檢漏的WSNs 節(jié)點(diǎn)低功耗設(shè)計(jì)[J]. 微計(jì)算機(jī)信息(測(cè)控自動(dòng)化),2009,25(8-1):91-93.