張文靜
(沈陽工學(xué)院信息與控制學(xué)院,遼寧 撫順113122)
無線傳感器網(wǎng)絡(luò)是由大量集成了傳感、數(shù)據(jù)、收集、處理和無線通信能力的小體積、低成本的傳感器節(jié)點(diǎn)構(gòu)成的自組織網(wǎng)絡(luò),廣泛應(yīng)用于軍事國防、國家安全、環(huán)境檢測(cè)等領(lǐng)域[1]。無線傳感器網(wǎng)絡(luò)主要由傳感器節(jié)點(diǎn)、匯聚節(jié)點(diǎn)、任務(wù)管理節(jié)點(diǎn)構(gòu)成。在無線傳感器網(wǎng)絡(luò)中,節(jié)點(diǎn)因采用電池供電而能量受限,因此,節(jié)點(diǎn)的低功耗設(shè)計(jì)成為無線傳感器網(wǎng)絡(luò)需要關(guān)注的重點(diǎn)因素之一。
ZigBee網(wǎng)絡(luò)的出現(xiàn)填補(bǔ)了無線通信市場(chǎng)上低成本、低功耗設(shè)備領(lǐng)域的空缺,目前已經(jīng)有上百家半導(dǎo)體、通信領(lǐng)域的公司加入了ZigBee聯(lián)盟,具有很大的市場(chǎng)潛力。本文主要分析基于CC2530芯片的Zig Bee網(wǎng)絡(luò)節(jié)點(diǎn)低功耗的設(shè)計(jì)方法。
ZigBee技術(shù)本身就是一種低功耗的無線數(shù)據(jù)傳輸技術(shù),在其協(xié)議棧的編寫過程中,已經(jīng)對(duì)其電源的使用進(jìn)行了管理。在網(wǎng)絡(luò)中低功耗方式僅用于由電池供電的終端設(shè)備,對(duì)于協(xié)調(diào)器和路由器來說,它們需要維持網(wǎng)絡(luò)的存在及路由,需要時(shí)時(shí)刻刻處于工作狀態(tài),因此需要使用主電源供電,不存在低功耗狀態(tài)。
節(jié)點(diǎn)電源管理主要針對(duì)的是利用電池供電的終端設(shè)備,盡量減少其短暫無線電通信之間的功耗。通常,一個(gè)終端設(shè)備在禁用功耗的外設(shè)和空閑期間進(jìn)入睡眠模式。Z-Stack還提供了2種睡眠模式,輕度休眠和深度休眠。輕度睡眠在系統(tǒng)需要喚醒去執(zhí)行與預(yù)定時(shí)間延遲的活動(dòng)時(shí)被使用。深度睡眠被使用的是沒有未來的活動(dòng)計(jì)劃,需要外部刺激(如按一個(gè)按鈕)喚醒設(shè)備時(shí)。輕度睡眠普遍降低功耗到幾毫安,而深度睡眠減少到幾微安。睡眠的終端設(shè)備的例子產(chǎn)品包括傳感器,它被定時(shí)地喚醒以報(bào)到它們采集到的信息,還有遠(yuǎn)程控制設(shè)備,它被用戶按鍵喚醒發(fā)送郵件。這些類型的設(shè)備的共同特點(diǎn)是:它們大部分時(shí)間處于睡眠模式,最大限度地減少功耗。
但是僅有這些電源管理是不夠的,雖然終端節(jié)點(diǎn)可以進(jìn)行睡眠狀態(tài),但是在整個(gè)數(shù)據(jù)實(shí)時(shí)采集系統(tǒng)中,畢竟處于睡眠狀態(tài)的時(shí)間是非常短暫的,而對(duì)于終端節(jié)點(diǎn)來說,發(fā)送和接收數(shù)據(jù)是能耗最大的時(shí)刻,因此還應(yīng)該采取其他方面(包括軟件、硬件)的設(shè)計(jì),進(jìn)一步減少節(jié)點(diǎn)的功耗,保證節(jié)點(diǎn)的壽命。
根據(jù)目前市場(chǎng)幾個(gè)公司提供的Zig Bee通信協(xié)議產(chǎn)品特點(diǎn)[2],目前市場(chǎng)上Zig Bee芯片的制造商主要有Freescale、TI、Ember、Jenic。芯片的主要特點(diǎn)如表1所示。通過表中數(shù)據(jù)可知,CC2530芯片較為合適。TI/chipcon公司的CC2530芯片,采用標(biāo)準(zhǔn)的8051微處理器,微控制器提供時(shí)鐘分配及電源管理等功能,且根據(jù)使用需求不同,其存儲(chǔ)器大小可調(diào),使用方便,其他幾家生產(chǎn)的Zig Bee芯片都采用自己的微處理器。而采用8051內(nèi)核的芯片,無需重新學(xué)習(xí)微處理器結(jié)構(gòu)原理,無需重新熟悉編譯/調(diào)試工具;對(duì)片上系統(tǒng)的I/O、定時(shí)器、A/D、PWM、看門狗等,也無需重新學(xué)習(xí)。
表1 Zig Bee主流芯片參數(shù)比較
結(jié)合表1所示,從Zig Bee芯片微處理器性能[3]、協(xié)議棧及市場(chǎng)價(jià)格到最后的開發(fā)成本以及對(duì)芯片內(nèi)核的熟悉程度等方面綜合考慮,本文最后采用TI公司提供的CC2530模塊。該模塊存儲(chǔ)容量大,并且采用大家熟悉的8051處理器內(nèi)核,性能滿足工業(yè)、農(nóng)業(yè)等領(lǐng)域需求,其較低的價(jià)格,符合低成本開發(fā)、低功耗的要求。
根據(jù)所選擇的微處理器,低功耗節(jié)點(diǎn)的硬件總體設(shè)計(jì)方案如圖1所示。微處理器CC2530本身帶有射頻功能,所以不需要外加射頻芯片,CC2530通過I/O口與按鍵單元、測(cè)溫單元、串口芯片相聯(lián),實(shí)現(xiàn)按鍵的讀取、溫度傳感器的讀寫、信息的傳輸。CC2530有32 MHz與32.768 k Hz 2個(gè)晶振。
圖1 硬件總體設(shè)計(jì)方案
從數(shù)據(jù)采集系統(tǒng)的整個(gè)應(yīng)用環(huán)境分析,為了能夠?qū)⑾到y(tǒng)功耗降到最小,除了需要在硬件上做一些合理的設(shè)計(jì)外,更重要的是通過軟件設(shè)計(jì)來降低,這樣可以減少整個(gè)系統(tǒng)的成本開銷。
由于傳感器節(jié)點(diǎn)長(zhǎng)期被放到需要檢測(cè)的位置,負(fù)責(zé)采集數(shù)據(jù),影響到整個(gè)檢測(cè)系統(tǒng)的性能。對(duì)于傳感器節(jié)點(diǎn)來說,可以使用電池進(jìn)行供電,能量消耗最大的時(shí)刻就是在數(shù)據(jù)發(fā)送和接收的時(shí)候,而在其他時(shí)刻可以使傳感器節(jié)點(diǎn)進(jìn)行數(shù)據(jù)采集就可以。
在Zig Bee網(wǎng)絡(luò)協(xié)議棧中,為了減小系統(tǒng)的功耗,已經(jīng)在程序中有一部分的設(shè)計(jì)。此部分設(shè)計(jì)如下,主要包含在以下3個(gè)文件中:
(1)OSAL_Pwr Mgr.h OSAL電源管理的 API頭文件;
(2)OSAL_Pwr Mgr.C OSAL電源管理的 API C文件;
(3)hal_sleep.c底層的電源管理文件。
這3個(gè)文件主要是定義了進(jìn)行的任務(wù)是否需要進(jìn)入低功耗功能、怎么進(jìn)入低功耗功能以及如何喚醒休眠狀態(tài)等,這些都是在網(wǎng)絡(luò)層進(jìn)行的設(shè)置。
對(duì)于應(yīng)用層來說,前面已經(jīng)介紹過對(duì)于傳感器節(jié)點(diǎn)與匯聚節(jié)點(diǎn)來說,消耗能量最大的時(shí)刻即為發(fā)送和接收階段,那么當(dāng)節(jié)點(diǎn)在不需要進(jìn)行信息發(fā)送和接收的時(shí)候,讓節(jié)點(diǎn)進(jìn)入系統(tǒng)休眠階段,這樣就可以降低節(jié)點(diǎn)的功耗。同時(shí)減少接收和發(fā)送數(shù)據(jù)的次數(shù),也可以減少節(jié)點(diǎn)運(yùn)行的功耗,從而保證節(jié)點(diǎn)能夠長(zhǎng)時(shí)間運(yùn)行。設(shè)計(jì)低功耗部分程序的流程如圖2所示。
圖2 軟件設(shè)計(jì)流程圖
本設(shè)計(jì)中使用萬用表進(jìn)行節(jié)點(diǎn)電流的測(cè)試,以確定節(jié)點(diǎn)的相應(yīng)特性。我們只測(cè)試終端節(jié)點(diǎn)的電流消耗,即負(fù)責(zé)進(jìn)行數(shù)據(jù)采集的傳感器節(jié)點(diǎn)的電流消耗測(cè)試。
對(duì)于無線傳感器網(wǎng)絡(luò)來說,終端節(jié)點(diǎn)使用2節(jié)5號(hào)電池進(jìn)行供電,節(jié)點(diǎn)入網(wǎng)后即處于休眠狀態(tài),使用萬用表對(duì)節(jié)點(diǎn)芯片進(jìn)行測(cè)試,可以得出以下數(shù)據(jù):測(cè)得休眠時(shí)候的電流僅為0.95 mA,在節(jié)點(diǎn)發(fā)送命令或者數(shù)據(jù)給協(xié)調(diào)器或路由器的瞬間,電流為27 mA,發(fā)送完畢后,節(jié)點(diǎn)定時(shí)休眠,定時(shí)醒來再次發(fā)送提取處理結(jié)果。無論在有數(shù)據(jù)傳輸還是無數(shù)據(jù)傳輸時(shí),終端節(jié)點(diǎn)運(yùn)行過程中的平均電流最高為8.8 mA,假設(shè)網(wǎng)絡(luò)協(xié)調(diào)器每2 min請(qǐng)求傳送數(shù)據(jù)1次,傳感器節(jié)點(diǎn)接收請(qǐng)求和處理的時(shí)間為2 000 ms,則節(jié)點(diǎn)的工作能耗為:
每日總能耗不會(huì)超過3.6 mAh,其他傳感器節(jié)點(diǎn)數(shù)據(jù)發(fā)送頻率等于或低于此。使用容量為1 200 mAh的2節(jié)7號(hào)或者5號(hào)電池可供電時(shí)間為:
根據(jù)式(2)計(jì)算,可供電近2年,因此滿足了系統(tǒng)的低功耗需求。參數(shù)如表2所示。
表2 參數(shù)測(cè)試表
為了實(shí)現(xiàn)基于ZigBee的低功耗、高性能的無線傳感器節(jié)點(diǎn),選擇CC2530芯片作為控制器,在硬件設(shè)計(jì)與軟件設(shè)計(jì)中采取了一些降低功耗的方法,在軟件設(shè)計(jì)中,通過降低節(jié)點(diǎn)發(fā)送數(shù)據(jù)與接收數(shù)據(jù)的次數(shù),來降低節(jié)點(diǎn)在運(yùn)行過程中的功耗。實(shí)驗(yàn)結(jié)果表明,節(jié)點(diǎn)具有良好的低功耗特性。
[1]孫亭,楊永田,李立宏.無線傳感器網(wǎng)絡(luò)技術(shù)發(fā)展現(xiàn)狀[J].電子技術(shù)應(yīng)用,2006(6)
[2]李文仲,段朝玉.ZigBee無線網(wǎng)絡(luò)技術(shù)入門與實(shí)戰(zhàn)[M].北京航空航天大學(xué)出版社,2007
[3]Gang Ding,Sahinoglu Z,Bhargava B,et al.Reliable broadcast in Zig Bee net wor ks[R].2005 Second Annual IEEE Co mmunications Society Conference on Sensor and Ad Hoc Co mmunications and Net wor ks,2005