虞致國,萬書芹,陳子逢,魏 斌,黃召軍
(中國電子科技集團公司第58研究所,江蘇 無錫 214035)
近年來,隨著傳感網(wǎng)技術(shù)的快速發(fā)展,如何實現(xiàn)對監(jiān)測對象的遠程數(shù)據(jù)采集和實時監(jiān)控成為了一個研究和開發(fā)熱點。無線數(shù)據(jù)采集和監(jiān)測系統(tǒng)在智能農(nóng)業(yè)、智能醫(yī)療、智能安防和智能家居等領(lǐng)域獲得了廣泛的應(yīng)用[1~6]。在上述應(yīng)用中,系統(tǒng)的很多功能和要求是類似的[7~11],且大多數(shù)要求節(jié)點具備低功耗特性。
因此,如何設(shè)計適用于多種環(huán)境和應(yīng)用領(lǐng)域的多功能、低功耗無線數(shù)據(jù)采集平臺具有重要意義。為此,設(shè)計實現(xiàn)了基于ZigBee的可配置無線數(shù)據(jù)采集平臺,利用ZigBee通信標準來實現(xiàn)各采集點和管理終端的無線傳輸。在該平臺的實現(xiàn)過程中,重點考慮節(jié)點的多功能化、低功耗特性,以及管理終端軟件對網(wǎng)絡(luò)的管理和配置。
系統(tǒng)由采集網(wǎng)絡(luò)和監(jiān)控軟件組成,系統(tǒng)結(jié)構(gòu)如圖1所示。采集網(wǎng)絡(luò)基于網(wǎng)狀(Mesh)網(wǎng)絡(luò)實現(xiàn),包括一個協(xié)調(diào)器節(jié)點、多個路由器節(jié)點和采集節(jié)點。協(xié)調(diào)器節(jié)點主要實現(xiàn)網(wǎng)絡(luò)管理和與監(jiān)控軟件通信的功能。路由器節(jié)點主要實現(xiàn)節(jié)點的數(shù)據(jù)轉(zhuǎn)發(fā)功能。采集節(jié)點可根據(jù)應(yīng)用情況接傳感器,實現(xiàn)數(shù)據(jù)采集。監(jiān)控軟件安裝在管理終端上(一般采用PC),通過計算機接口和協(xié)調(diào)器節(jié)點進行通信,從而實現(xiàn)對整個網(wǎng)絡(luò)的管理和數(shù)據(jù)的采集。
圖1 采集平臺系統(tǒng)結(jié)構(gòu)
采集平臺的特征如下。
(1)節(jié)點包括協(xié)調(diào)器、路由器節(jié)點,無線數(shù)據(jù)采集節(jié)點,采用模塊化設(shè)計;
(2)節(jié)點采用ZigBee協(xié)議棧進行無線自組網(wǎng),使用2.4 GHz ISM頻段;
(3)節(jié)點可遠程配置系統(tǒng)采集周期、休眠間隔、發(fā)送功率和節(jié)點類型等多種網(wǎng)絡(luò)參數(shù);
(4)采集終端傳感器接口豐富,可接多種模擬傳感器、智能傳感器(SPI/IIC/UART/PWM/GPIO)等;
(5)節(jié)點參數(shù)采用Flash存儲,節(jié)點上電后自動讀取配置參數(shù):網(wǎng)絡(luò)參數(shù)存儲在芯片的Flash里,若芯片斷電后再上電,不需要對節(jié)點進行重新配置,直接讀取Flash中的網(wǎng)絡(luò)參數(shù)即可;
(6)監(jiān)控軟件具有發(fā)送功率配置、模擬通道配置、數(shù)字通道配置、節(jié)點休眠配置和報表生成等功能。
為了節(jié)省硬件開發(fā)成本,所有的節(jié)點采用同樣的設(shè)計,只是在具體器件的焊接時可以根據(jù)節(jié)點的類型進行取舍。節(jié)點由傳感器接口、MCU模塊、人機接口和供電系統(tǒng)等組成,節(jié)點系統(tǒng)結(jié)構(gòu)如圖2所示。對于采集節(jié)點,LCD顯示部分及電源指示燈不予焊接。PC機的監(jiān)控軟件通過USB接口與節(jié)點相連。
多功能無線采集節(jié)點的MCU擔負著系統(tǒng)管理、控制及無線收發(fā)等作用,是節(jié)點的核心單元。在選擇硬件方案時,重點從節(jié)點實際應(yīng)用方面考慮,如芯片的集成度、軟件開發(fā)、芯片的低功耗模式和對外接口等幾個方面。經(jīng)過比較,選用FreeScale公司的ZigBee集成芯片MC1322X作為核心芯片,該芯片集成度高,并在開發(fā)環(huán)境中提供了ZigBee 2007/PRO協(xié)議棧。MC1322X內(nèi)含射頻通信電路,支持ZigBee通信協(xié)議,最高傳輸率達250 Kbps。該芯片內(nèi)含巴倫電路,無線部分硬件設(shè)計比較簡單,只要外接2.4 GHz的單端天線即可。
圖2 節(jié)點硬件設(shè)計方案
MC1322X接口豐富,為了適應(yīng)將來多類型傳感器,節(jié)點保留了多種類型的傳感器接口,節(jié)點引出了MC1322X的大部分接口進行傳感器接入,包括數(shù)字量狀態(tài)接口(GPIO)、模擬量接口(ADC),智能傳感器接口(包括 IIC,UART/485/422,SPI和 PWM 等)。其中模擬量的接口內(nèi)部還要考慮信號的調(diào)理和ADC穩(wěn)壓源的實現(xiàn)。對于ADC采集部分,采用芯片LM385-2.5提供ADC轉(zhuǎn)換的外部參考電壓輸入。
系統(tǒng)包含5 V電源、USB和電池三種供電方式,其中5 V電源和USB5V電源經(jīng)過TPS79533后變成3.3 V。TPS79533功耗低、噪聲小,適合于射頻系統(tǒng)設(shè)計。不使用USB接口時,如采用5V或電池供電,為了降低功耗,可考慮斷開USB接口電路電源;在使用接口時,無需采用5 V供電(因為USB接口含5 V輸入);此外,采用5 V或USB接口時,為了防止它們對電池充電,必須自動斷開電池供電。因此,系統(tǒng)內(nèi)部設(shè)計了電源接入方式識別電路,當接入5 V電源時,USB芯片的供電會自動斷開;接入電池時,USB芯片和TPS79533的供電也會自動斷開。
MC1322X芯片帶有兩個UART接口,由于目前大多數(shù)計算機都不帶RS232接口,所以,節(jié)點添加了UART轉(zhuǎn)USB芯片(FT232RL)。
(1)配置接口
為了能夠現(xiàn)場更好對節(jié)點進行配置,節(jié)點參數(shù)還可以通過USB接口進行現(xiàn)場配置。具體實現(xiàn)的思路是,節(jié)點啟動后,等待UART參數(shù)配置;如不配置可通過按鍵加入網(wǎng)絡(luò)。
(2)軟件升級
MC1322X主要有三種方式對軟件進行升級,一是JTAG,二是USB,三是采用無線升級。其中JTAG接口太大,不便于現(xiàn)場升級,只適用于調(diào)試或第一次寫入程序。無線升級的優(yōu)勢是可以遠程升級,缺點是必需兩個節(jié)點。采用USB接口寫入程序,F(xiàn)reeS-cale提供了上位機的擦寫程序,使用也比較方便,但擦寫前,芯片要求先對Flash進行擦除。擦除片內(nèi)Flash,F(xiàn)reeScale公司推薦的方法是:先對引腳ADC2_VERFH、ADC2_VREFL分別進行接地和接高電平,然后再去除接觸(目的是擦除內(nèi)部Flash),這樣就帶來了操作上的不方便,也不便于現(xiàn)場升級。本文對此進行了改進,如要升級程序,可對其中一個按鍵進行長按,軟件識別長按后對 Flash進行擦除。Flash被擦除后,再采用USB接口進行寫入。
(3)按鍵和顯示
顯示包括LCD顯示屏、LED指示燈。按鍵功能由軟件設(shè)計,可包括重置、加入網(wǎng)絡(luò)及采集功能啟動等。LED指示燈包括電源指示、系統(tǒng)狀態(tài)指示燈。LCD顯示屏采用SPI接口進行控制,模塊內(nèi)置升壓電路。
對于采集節(jié)點來說,大多需要采用電池供電,因此,采集節(jié)點的低功耗設(shè)計尤為重要。硬件低功耗要充分利用芯片的硬件特性,下面從兩個方面進行重點考慮:電源、時鐘。
(1)電源可控
當MC1322X進入低功耗后,MCU消耗的功耗很低。如果外圍芯片不能及時關(guān)閉,它的靜態(tài)電流仍然存在,其數(shù)值或?qū)⑦h超過MCU的低功耗電流,大大影響了系統(tǒng)的低功耗設(shè)計性能,因此,在本設(shè)計中,需要關(guān)閉的芯片主要有基準源芯片、UART轉(zhuǎn)USB接口芯片等。為了降低芯片功耗,MC1322X在進入低功耗狀態(tài)后,芯片引腳(PAD)可以不保持電源驅(qū)動,但KBI[3∶0]引腳除外,它們可以保持自己進入低功耗前的狀態(tài)。因此,可以采用這些引腳來控制P溝道FET,用FET的關(guān)斷來控制相關(guān)芯片的電源,從而達到最低功耗設(shè)計。節(jié)點的電源可控設(shè)計結(jié)構(gòu)如圖3所示。
(2)采用低功耗時鐘
圖3 節(jié)點的電源可控設(shè)計結(jié)構(gòu)
MC1322X設(shè)有兩種睡眠模式:Doze(淺睡眠)、Hibernate(深度睡眠)。分別要求不同的時鐘源。因此,在設(shè)計上采用了三個時鐘晶振:主晶振(24 MHz)、輔助晶振(32.768 kHz)及內(nèi)部 2 kHz環(huán)形振蕩器。在正常工作狀態(tài)和Doze狀態(tài)下,采用主晶振時鐘;當處理器進入Hibernate狀態(tài)時采用輔助晶振或內(nèi)部振蕩器,達到降低功耗的目的。
系統(tǒng)軟件設(shè)計主要包括各類節(jié)點軟件設(shè)計、PC的監(jiān)控軟件設(shè)計,軟件功能如圖4所示。節(jié)點軟件的開發(fā)以FreeScale公司的Beekit為基礎(chǔ),采用IAR System進行編譯。PC的監(jiān)控軟件設(shè)計以VB、數(shù)據(jù)庫軟件為基礎(chǔ)進行開發(fā)。系統(tǒng)工作過程如下。
(1)開啟協(xié)調(diào)器節(jié)點和監(jiān)控軟件,監(jiān)控軟件選擇二者的通信接口;
(2)通過按鍵使協(xié)調(diào)器組建網(wǎng)絡(luò);開啟路由器和采集節(jié)點,并通過按鍵使其加入網(wǎng)絡(luò),加入網(wǎng)絡(luò)成功后,路由器和采集節(jié)點通過協(xié)調(diào)器向監(jiān)控軟件發(fā)送自身信息;
(3)通過監(jiān)控軟件設(shè)置網(wǎng)絡(luò)、節(jié)點的接口類型和相關(guān)參數(shù),如休眠時間、發(fā)射功率等;
(4)通過節(jié)點自身的按鍵或監(jiān)控軟件的命令控制使節(jié)點進入工作狀態(tài)。
需要說明的是,節(jié)點參數(shù)配置后會被自身記憶,如無變化,下一次無需重新配置。
圖4 軟件功能結(jié)構(gòu)
節(jié)點軟件包括協(xié)調(diào)器節(jié)點、路由器節(jié)點和采集節(jié)點三個方面。
協(xié)調(diào)器節(jié)點首先建立網(wǎng)絡(luò),然后等待從PC監(jiān)控中心接收數(shù)據(jù)和從ZigBee網(wǎng)絡(luò)接收數(shù)據(jù),協(xié)調(diào)器節(jié)點的工作流程圖如圖5所示。協(xié)調(diào)器節(jié)點在從PC監(jiān)控中心接收到命令后,首先要判斷命令是否只是發(fā)送給自己的。如果是,則執(zhí)行命令并不會將該命令發(fā)送給ZigBee網(wǎng)絡(luò)中,否則將該命令通過廣播或者單播的方式,發(fā)送給ZigBee網(wǎng)絡(luò)。
圖5 協(xié)調(diào)器節(jié)點軟件流程圖
對于從ZigBee網(wǎng)絡(luò)中接收到的數(shù)據(jù),主要有兩種情況
(1)其他節(jié)點加入網(wǎng)絡(luò)后發(fā)送的自身信息(節(jié)點類型+MAC地址+短地址)。協(xié)調(diào)器節(jié)點接收到該信息后,會發(fā)送給監(jiān)控軟件,監(jiān)控軟件將數(shù)據(jù)存儲到相應(yīng)的數(shù)據(jù)庫中。
(2)采集節(jié)點采集的傳感器數(shù)據(jù)。協(xié)調(diào)器接收到數(shù)據(jù)后轉(zhuǎn)發(fā)給監(jiān)控軟件。
路由器節(jié)點首先要加入網(wǎng)絡(luò),加入網(wǎng)絡(luò)成功后,立即發(fā)送自己信息(包括節(jié)點類型,MAC地址,短地址)給協(xié)調(diào)器,供監(jiān)控中心備案,然后路由器等待配置命令或者網(wǎng)絡(luò)數(shù)據(jù)轉(zhuǎn)發(fā)。
采集節(jié)點的流程圖如圖6所示。采集節(jié)點加入網(wǎng)絡(luò)成功后,立即發(fā)送自己信息給協(xié)調(diào)器,然后采集節(jié)點等待配置命令。若接收到的命令為配置參數(shù)命令,則配置相關(guān)網(wǎng)絡(luò)參數(shù)。若接收到命令為啟動采集命令,啟動采集系統(tǒng),采集傳感器數(shù)據(jù)并將數(shù)據(jù)發(fā)送給協(xié)調(diào)器,然后判斷是否低功耗使能,若低功耗使能,則進入休眠狀態(tài);待休眠T時間(可設(shè)定的時間)后,則再次進入采集傳感器數(shù)據(jù)并發(fā)送給協(xié)調(diào)器的循環(huán)。若低功耗未使能,則延遲T時間后再次進入采集傳感器數(shù)據(jù)并發(fā)送給協(xié)調(diào)器的循環(huán)。
圖6 采集節(jié)點工作流程圖
監(jiān)控軟件主要用于監(jiān)測和處理各種傳感器采集參數(shù)值,如空氣溫濕度,氣壓,光照度,氣體濃度等。軟件功能模塊主要有串口配置、發(fā)射功率配置、模擬通道配置、數(shù)字通道配置、節(jié)點休眠配置、節(jié)點配置查詢、啟動系統(tǒng)、報表生成、查看和幫助菜單等功能。
協(xié)調(diào)器、路由器和終端采集設(shè)備組成了無線數(shù)據(jù)采集網(wǎng)絡(luò),采集設(shè)備通過無線網(wǎng)絡(luò)與上位機實現(xiàn)通信。網(wǎng)絡(luò)建立成功后,上位機一方面實現(xiàn)無線網(wǎng)絡(luò)的參數(shù)配置,另一方面對網(wǎng)絡(luò)的運行狀態(tài)和采集到的環(huán)境參數(shù)值實現(xiàn)實時的顯示和保存。監(jiān)控軟件運行的界面如圖7所示,圖中顯示了一個節(jié)點的狀態(tài)查詢畫面和采集到的參數(shù)實時變化曲線。
圖7 PC機軟件界面
MC1322X軟件庫中設(shè)置了7種低功耗模式,從而應(yīng)對不同的實際應(yīng)用。在實際節(jié)點設(shè)計時,采集節(jié)點的功耗要綜合考慮軟件和硬件,并充分利用MCU的低功耗特性。重點從以下幾個方面進行考慮。
(1)采集節(jié)點不焊接電源指示燈,一個發(fā)光LED至少需要5 mA左右的電流才能比較好的工作,電源指示燈長亮將無法真正實現(xiàn)系統(tǒng)的低功耗;
(2)節(jié)點正常工作,關(guān)閉一切不必要的外設(shè),使其功耗最低;
(3)ADC的穩(wěn)壓芯片工作電流不要太大,只要符合MCU中ADC的驅(qū)動要求即可;
(4)進入低功耗狀態(tài)后芯片的對外引腳盡量不要出現(xiàn)上拉的情況;
(5)進入低功耗狀態(tài)后,關(guān)閉一切不必要工作芯片的電源。
在采用低功耗硬件技術(shù)的基礎(chǔ)上,對節(jié)點進行電源接入方式的功率測試,實際節(jié)點的測試結(jié)果(電流表:VC9805A+),見表1。
表1 采集節(jié)點低功耗電流測試結(jié)果 單位:mA
從表1可看出:(1)基于USB接口比基于5 V電源接口的電流大8 mA左右,這是由于前者的UART轉(zhuǎn)USB接口電路工作電流帶來的。(2)基于5 V電源接入方式的節(jié)點休眠電流比基于3 V電池接入方式的節(jié)點休眠電流要大,這主要是由電源管理電路的功耗引起的。結(jié)果表明,采用電池供電,休眠期間功耗很低,僅12 μA左右,能夠滿足一般的應(yīng)用需求。
以ZigBee技術(shù)和MC1322X為基礎(chǔ),提出了多功能、低功耗無線數(shù)據(jù)采集平臺。還介紹了系統(tǒng)的節(jié)點軟硬件設(shè)計、上位機監(jiān)控軟件。針對采集節(jié)點的低功耗設(shè)計、多功能傳感器接口進行重點闡述。經(jīng)過實驗室測試,系統(tǒng)能夠完成無線數(shù)據(jù)的采集,具有一定的實際應(yīng)用價值。
[1]鞏偉,孫永欣.無線數(shù)據(jù)采集技術(shù)在燃氣監(jiān)控中的應(yīng)用研究[J].自動化技術(shù)與應(yīng)用,2011,30(8):102-104.
[2]張杰,石為人,涂巧玲.基于無線傳感器網(wǎng)絡(luò)的信息采集監(jiān)測系統(tǒng)設(shè)計[J].傳感技術(shù)學報,2009,22(6):861-864.
[3]郭斌,錢建平,張?zhí)t.基于Zigbee的果蔬冷鏈配送環(huán)境信息采集系統(tǒng)[J].農(nóng)業(yè)工程學報,2011,27(6):208-212.
[4]高廷金.一種基于Zigbee技術(shù)的能源計量數(shù)據(jù)采集系統(tǒng)[J].計量與測試技術(shù),2011,38(6):1-2.
[5]劉映輝,樊曉平,張純和,等.基于ZigBee技術(shù)的無線數(shù)據(jù)采集系統(tǒng)設(shè)計[J].工業(yè)控制計算機,2008,21(8):5-7.
[6]鄧中華.基于ZigBee的無線溫度采集系統(tǒng)設(shè)計[J].計算機工程與科學,2011,33(6):164-167.
[7]沈曉昱,李文軍,孫斌.基于ZigBee的工業(yè)儀表無線數(shù)據(jù)采集系統(tǒng)的設(shè)計[J].工業(yè)控制計算機,2009,22(11):1-2,5.
[8]陳德海,梁毓明.低功耗溫室無線測量節(jié)點的設(shè)計[J].自動化儀表,2010,31(5):65-68.
[9]李明明,李偉.低功耗無線傳感器網(wǎng)絡(luò)節(jié)點的設(shè)計技術(shù)[J].測控技術(shù),2010,29(6):8-11.
[10]楊琦,陳輝煌,石江宏.低功耗無線傳感器網(wǎng)絡(luò)終端節(jié)點設(shè)計[J].廈門大學學報(自然科學版),2008,47(3):357-360.
[11]賴成瑜.基于煤礦監(jiān)測的低功耗無線傳感器節(jié)點的研究與設(shè)計[J].通信技術(shù),2008,41(12):282-283.