虞致國,魏 斌,萬書芹,黃召軍,陳子逢
(中國電子科技集團公司第58研究所,江蘇 無錫 214035)
從物聯(lián)網(wǎng)通用的技術(shù)分類看,物聯(lián)網(wǎng)可分為三層構(gòu)架,即:感知層、網(wǎng)絡(luò)層和應(yīng)用層。其中感知層因為直接面向具體物體,產(chǎn)品的種類繁多,需要的數(shù)量也十分巨大。目前,感知層主要由無線傳感器網(wǎng)絡(luò)承擔(dān),該網(wǎng)絡(luò)包括傳感器節(jié)點、網(wǎng)關(guān)節(jié)點(或數(shù)據(jù)匯聚節(jié)點)和管理終端。傳感器節(jié)點分布于目標(biāo)區(qū)域,決定了網(wǎng)絡(luò)的功能和應(yīng)用范圍。如何設(shè)計新型高效的傳感器節(jié)點成為提高傳感器網(wǎng)絡(luò)性能、擴展其應(yīng)用范圍的關(guān)鍵問題[1]。另一方面,在不同的應(yīng)用范圍中,節(jié)點的大多數(shù)功能是類似的[2~8],因此需要設(shè)計一種能夠支持多種傳感器接入方式的傳感器節(jié)點,并具有可擴展性、可配置性及低功耗等特點,從而避免不同應(yīng)用系統(tǒng)的重復(fù)開發(fā)成本。
本文設(shè)計的傳感器節(jié)點采用ZigBee通信技術(shù),可兼容多種傳感器,包括模擬量傳感器、數(shù)字輸入輸出、智能傳感器接口(如I2C、UART、SPI接口等);可以兼容多種供電方式,方便不同的應(yīng)用場合;采用模塊化設(shè)計,增強了各個模塊的通用性,降低了硬件成本。
ZigBee是一種新興的短距離、低速率、低功耗、低成本和低復(fù)雜度的無線傳輸技術(shù),由IEEE802.15.4和ZigBee聯(lián)盟共同制訂完成。ZigBee協(xié)議采用2.4GHz ISM頻段時,傳輸速率為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é)點、路由節(jié)點、網(wǎng)關(guān)節(jié)點和后臺管理終端,結(jié)構(gòu)如圖1所示。傳感器節(jié)點安裝在使用現(xiàn)場(可用電池供電),周期性采集相關(guān)參數(shù),采用多跳的方式通過路由節(jié)點匯聚到網(wǎng)關(guān)節(jié)點,然后送到管理終端。網(wǎng)關(guān)節(jié)點完成網(wǎng)絡(luò)的組織、協(xié)調(diào)、管理和維護。管理終端負責(zé)維護系統(tǒng)數(shù)據(jù)庫、數(shù)據(jù)分析、報警、報表、網(wǎng)絡(luò)遠程配置等功能。用戶可以通過管理終端對目標(biāo)區(qū)域的傳感器數(shù)據(jù)進行讀取、存儲、分析。
圖1 系統(tǒng)網(wǎng)絡(luò)結(jié)構(gòu)圖
傳感器節(jié)點包括硬件設(shè)計和嵌入式軟件設(shè)計兩部分。硬件設(shè)計著重考慮MCU的選擇、低功耗、對外接口等,并為提高電池的使用效率和軟件低功耗提供硬件支撐。軟件設(shè)計考慮協(xié)議棧和應(yīng)用程序的實現(xiàn),并采用低功耗工作模式。為了使得節(jié)點具備更高的通用性,硬件采用模塊化設(shè)計思想,盡量將一些公用模塊獨立出來。射頻部分為各種類型節(jié)點所必須,為節(jié)點的核心部分,可單獨設(shè)計。
傳感器節(jié)點的硬件結(jié)構(gòu)如圖2所示,包括三個部分:射頻子板、傳感器節(jié)點主板、傳感器模塊。射頻子板和傳感器節(jié)點主板一起構(gòu)成節(jié)點的主體部分。傳感器模塊根據(jù)不同系統(tǒng)需求進行選擇,通過通用傳感器接口和節(jié)點主板連接在一起。
圖2 傳感器節(jié)點硬件框圖
射頻子板實現(xiàn)系統(tǒng)的無線收發(fā)部分,硬件包括ZigBee系統(tǒng)芯片、時鐘模塊、RF匹配電路、天線和相應(yīng)的對外接口等,射頻子板的結(jié)構(gòu)如圖3所示。
圖3 射頻子板框圖
4.1.1 MCU的選擇
芯片的選擇主要考慮其低功耗、集成度、價格等因素。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)時鐘模塊,包括兩個晶體振蕩器和一個環(huán)形振蕩器(2kHz);
(2)一個SPI接口、一個SSI接口,兩個UART接口,一個I2C接口;
(3)兩個12bit ADC(共八路外部輸入);
(4)低功耗管理模塊,芯片支持Hibernate和Doze兩種低功耗模式。
4.1.2 時鐘系統(tǒng)
外部設(shè)計采用了兩個晶振,一個是主晶振,振蕩頻率為24MHz;另一個為32.768kHz的輔助晶振。在正常工作狀態(tài)下,采用主晶振時鐘,當(dāng)處理器進入睡眠狀態(tài)時采用輔助晶振或2kHz的環(huán)形振蕩器(根據(jù)功耗及休眠間隔來定),達到降低功耗的目的。
射頻模塊接口有通用輸入輸出GPIO(和I2C、UART等接口復(fù)用)、模數(shù)轉(zhuǎn)換口、JTAG口三類。GPIO口用于數(shù)字信號通訊,模數(shù)轉(zhuǎn)換口可對所監(jiān)測的模擬量進行模數(shù)轉(zhuǎn)換。JTAG仿真下載接口,主要有兩個功能:一是在線調(diào)試,二是下載源程序。
傳感器節(jié)點的天線及其相關(guān)電路有其自身的特點與要求,在設(shè)計傳感器節(jié)點的時候,應(yīng)根據(jù)這些特點和要求重視天線及其相關(guān)電路的設(shè)計,注重提高天線的性能。由于MC13224V內(nèi)部集成了平衡-不平衡轉(zhuǎn)換器(即巴倫電路),故天線設(shè)計相對簡單,只需要重點考慮50Ω的電阻匹配。
傳感器節(jié)點主板完成狀態(tài)指示、供電、配置、下載編程、對外擴展等功能,其結(jié)構(gòu)如圖4所示。
圖4 傳感器節(jié)點結(jié)構(gòu)圖
4.4.1 配置接口
在實際使用中,常常需要對節(jié)點的相應(yīng)參數(shù)進行配置,如節(jié)點的休眠時間、節(jié)點的采集速度、相關(guān)的網(wǎng)絡(luò)參數(shù)等。為了讓用戶使用更加靈活,決定提供USB接口進行配置(這些參數(shù)也可等節(jié)點組網(wǎng)后再通過無線的方式進行配置)。MC13224V原本沒有USB接口,只有UART接口,考慮到現(xiàn)在很多臺式機和筆記本都沒有配備RS232接口,采用協(xié)議轉(zhuǎn)換芯片F(xiàn)T232RL進行轉(zhuǎn)換。
當(dāng)配置完畢時,系統(tǒng)將參數(shù)重新保存在芯片的Flash中。因為配置電路不常用,為了降低節(jié)點功耗,對FT323RL設(shè)置單獨的電源開關(guān)。在正常使用時,將配置電路關(guān)閉。
4.4.2 接口模塊
接口模塊為節(jié)點對外連接傳感器的通道及輸出控制通道,必須充分考慮其通用性。對于一般常見的應(yīng)用,只需要接上所需要的傳感器等設(shè)備。節(jié)點的接口主要有UART接口、I2C接口、SPI接口、ADC接口、電源VCC(5V)、GND,除電源外所有的接口均可以配置成通用輸入輸出口(GPIO)。ADC接口用于模擬量的輸入,可把傳感器的模擬信號轉(zhuǎn)換成數(shù)字信號,最大支持12bit。UART接口、I2C接口、SPI接口等可用來連接支持相應(yīng)接口的各種智能傳感器和設(shè)備。如果配置成GPIO,則可用作數(shù)量的采集和輸出,實現(xiàn)對外接設(shè)備的控制和狀態(tài)采集。接口模塊采用工業(yè)級的接插件,可多次插拔,插好之后接口穩(wěn)定。通過通用化的接口設(shè)計,增強了節(jié)點外接設(shè)備的靈活性,可以迅速組成應(yīng)用系統(tǒng)。
4.4.3 人機接口
人機接口包括按鍵、LED及LCD。為了便于人機對話,在主板上設(shè)置了多個按鍵以實現(xiàn)不同的控制功能,如網(wǎng)絡(luò)連接控制按鈕,設(shè)備之間的綁定、復(fù)位按鈕等。
為了快速開發(fā)和應(yīng)用其硬件平臺,F(xiàn)reeScale公司開發(fā)了BeeKit無線連接工具箱。BeeKit可以幫助開發(fā)人員快速創(chuàng)建ZigBee應(yīng)用,并修改、配置其參數(shù)。BeeKit生成的工程可以導(dǎo)入到IAR System,并進一步加入用戶自己的應(yīng)用,最終下載到MC13224V。
節(jié)點的ZigBee協(xié)議棧采用FreeScale公司的BeeStack協(xié)議棧,它是一個輪轉(zhuǎn)查詢式操作系統(tǒng)。BeeStack已經(jīng)編寫了從MAC層到ZigBee設(shè)備應(yīng)用層的事件處理函數(shù),一般情況下無需修改這些函數(shù),只需要按照自己的需求編寫應(yīng)用層的任務(wù)及事件處理函數(shù)。
傳感器節(jié)點負責(zé)數(shù)據(jù)采集和上傳任務(wù),節(jié)點在正常狀態(tài)和休眠狀態(tài)進行切換,其中工作時間和休眠周期由網(wǎng)關(guān)節(jié)點控制并實現(xiàn)同步。采集和整個軟件系統(tǒng)分為初始化、入網(wǎng)、命令處理、數(shù)據(jù)采集等部分,其工作流程圖如圖5所示。
圖5 傳感器節(jié)點軟件流程
因為傳感器節(jié)點大部分情況下是采用電池供電,但用戶也可采用外部5V供電或使用USB對節(jié)點進行配置(USB可提供5V電源)。采用USB供電時,節(jié)點會使用電壓轉(zhuǎn)換電路、USB與RS232轉(zhuǎn)換電路;采用外部5V供電時,節(jié)點會使用電壓轉(zhuǎn)換電路。因此,硬件在低功耗方面必須支持兩個特性:一是能盡可能提高電池使用效率;二是在電池供電時,配置電路、電壓轉(zhuǎn)換芯片、基準(zhǔn)源電路能夠進入低功耗模式或斷電。
5.1.1 射頻子板的Buck電路
為了提高電池使用效率,采用了MC13324V內(nèi)部提供的Buck電路。它可以將電池電壓降至1.8V~2.0V,從而有效降低網(wǎng)絡(luò)電流,延長了電池使用壽命。
5.1.2 節(jié)點主板的基準(zhǔn)源電路
MC13224V沒有提供ADC電路的基準(zhǔn)源,因此主板上必須提供基準(zhǔn)源芯片。另一方面,如該板采用數(shù)字接口對外進行通信,可將基準(zhǔn)源芯片關(guān)閉,以降低系統(tǒng)功耗?;鶞?zhǔn)源芯片采用LM285M,電路設(shè)計如圖6所示。
圖6 基準(zhǔn)源電路
5.1.3 節(jié)點的電源系統(tǒng)
考慮到節(jié)點板的通用性,兼顧到有穩(wěn)定電源和采用電池供電兩種工作方式。外部輸入電源時有兩種途徑:(1)通過USB接口,可由帶USB接口的設(shè)備提供電源;(2)直接由有線電源供電。非電池供電時輸入電壓為5V,電池供電采用2節(jié)1.5V電池。每一組電源都能夠單獨關(guān)閉。電路結(jié)構(gòu)如圖7所示。
傳感器節(jié)點消耗能量的模塊主要包括傳感器模塊、處理器模塊和無線通信模塊。低功耗設(shè)計包括硬件和軟件兩個層面,其中硬件為基礎(chǔ)。軟件低功耗設(shè)計主要從以下幾個方面考慮:
(1)充分利用MCU的低功耗工作模式。MC13224V共設(shè)有多種休眠模式,因此必須根據(jù)實際需求,使之在需要采集、發(fā)送數(shù)據(jù)時才正常工作,其余時間處于睡眠狀態(tài)。
(2)根據(jù)不同的傳感器節(jié)點和監(jiān)測需求設(shè)置合理的采樣間隔時間,以延長電池使用壽命。
(3)優(yōu)化節(jié)點的通信協(xié)議,包括:對節(jié)點采集到的數(shù)據(jù)進行處理,發(fā)送有用數(shù)據(jù),減少通信量;設(shè)計合理的綁定關(guān)系,使傳感器節(jié)點既能完成既定功能,又能避免不必要的通信造成的能量損耗。
圖7 節(jié)點的電源系統(tǒng)
節(jié)點的測試主要從軟件調(diào)試、網(wǎng)絡(luò)功能、功耗分析及接口測試等方面展開。
采用IAR System進行編譯調(diào)試,J-Link下載器進行燒寫。IAR System是為單片機開發(fā)的C/C++語言集成開發(fā)環(huán)境,提供多種向?qū)Ш凸ぞ?,可以在一定程度上實現(xiàn)了軟件的自動生成和可視化編程,同時支持多種類型工程。
為了測試節(jié)點的功能,主要是利用FreeScale ZTC進行抓包,采用協(xié)調(diào)器組網(wǎng)等方式。
接口測試的方法如下:通過USB對節(jié)點進行接口功能設(shè)定,并和協(xié)調(diào)器進行遠程通信,再外接相應(yīng)的傳感器或設(shè)備來測試其功能是否正常。
文獻表明[10~12],功耗的大小主要取決于睡眠狀態(tài)時的電流、降低正常工作狀態(tài)的工作時間,因此調(diào)試的重點在如何降低睡眠狀態(tài)的電流、減少通信容量等。經(jīng)過實際調(diào)試,在3V供電情況下,節(jié)點進入低功耗的電流為11μA,符合設(shè)計要求。
隨著無線傳感器網(wǎng)絡(luò)應(yīng)用系統(tǒng)所覆蓋的范圍越來越廣,對傳感器節(jié)點提出的功能要求也越來越高,越來越復(fù)雜。本文詳細闡述了一種面向多傳感器模塊接入的低功耗無線傳感器節(jié)點的硬件設(shè)計、軟件設(shè)計、低功耗設(shè)計及性能測試方法。設(shè)計的節(jié)點具備通用型、模塊化、功能可重構(gòu)等特點,能夠根據(jù)特定的應(yīng)用場景,快速進行應(yīng)用,從而節(jié)約了開發(fā)成本和時間。
[1] 彭東. 一種多傳感模塊無線傳感器網(wǎng)絡(luò)新型節(jié)點的設(shè)計與實現(xiàn)[D]. 北京交通大學(xué),2009.
[2] 陳安都,劉少強. 振動信號在線檢測的超低功耗無線傳感器節(jié)點設(shè)計[J]. 計算機工程與科學(xué),2008,30(4):95-97.
[3] 陳德海,梁毓明. 低功耗溫室無線測量節(jié)點的設(shè)計[J].自動化儀表,2010,31(5):65-68.
[4] 孫延明,劉志遠,蔡春麗,等. 低功耗無線傳感器網(wǎng)絡(luò)節(jié)點的設(shè)計[J]. 微計算機應(yīng)用,2009,30(2):21-25.
[5] 李明明,李偉. 低功耗無線傳感器網(wǎng)絡(luò)節(jié)點的設(shè)計技術(shù)[J]. 測控技術(shù),2010,29(6):8-11.
[6] 楊琦,陳輝煌,石江宏. 低功耗無線傳感器網(wǎng)絡(luò)終端節(jié)點設(shè)計[J]. 廈門大學(xué)學(xué)報(自然科學(xué)版),2008,47(3):357-360.
[7] 賴成瑜. 基于煤礦監(jiān)測的低功耗無線傳感器節(jié)點的研究與設(shè)計[J]. 通信技術(shù),2008,41(12):282-283.
[8] 奚大順,王洪輝,庹先國,等. 山體裂縫遠程監(jiān)測系統(tǒng)傳感器節(jié)點的低功耗設(shè)計[J]. 2010,29(8):43-45,49.
[9] 馮勇平,等. 一種低功耗無線傳感器網(wǎng)絡(luò)節(jié)點的設(shè)計[J].電子技術(shù)應(yīng)用,2009,4:33-35.
[10] 李文江,魏娟. ZigBee無線傳感器網(wǎng)絡(luò)節(jié)點的低功耗設(shè)計[J]. 成都大學(xué)學(xué)報(自然科學(xué)版),2008,27(3):239-241.
[11] 涂巧玲,張杰,潘建權(quán),等. 無線傳感器網(wǎng)絡(luò)節(jié)點低功耗設(shè)計策略[J]. 電子測量技術(shù),2009,32(1):158-161.
[12] 趙洪飛,國兵,杜曉通,等. 用于油管檢漏的WSNs 節(jié)點低功耗設(shè)計[J]. 微計算機信息(測控自動化),2009,25(8-1):91-93.