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

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

圖2 傳感器節點硬件框圖
射頻子板實現系統的無線收發部分,硬件包括ZigBee系統芯片、時鐘模塊、RF匹配電路、天線和相應的對外接口等,射頻子板的結構如圖3所示。

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

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

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

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

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