高加杰,張雷
(安徽工業(yè)大學(xué)計算機(jī)科學(xué)與技術(shù)學(xué)院,安徽 馬鞍山 243032)
一種太陽能供電的低功耗WSN節(jié)點的設(shè)計與實現(xiàn)
高加杰,張雷
(安徽工業(yè)大學(xué)計算機(jī)科學(xué)與技術(shù)學(xué)院,安徽 馬鞍山 243032)
無線傳感器節(jié)點的電源因受模塊體積的限制,電源能量極其有限。如要保證節(jié)點正常工作,需要經(jīng)常更換電池,而手工方式更換電池極為不便,故限制了無線傳感器網(wǎng)絡(luò)的應(yīng)用?,F(xiàn)設(shè)計了一種太陽能自供電的傳感器節(jié)點模塊,并在節(jié)點上移植TinyOS系統(tǒng),從節(jié)點硬件、軟件方面進(jìn)行改進(jìn),實現(xiàn)低功耗功能。測試結(jié)果表明,這種太陽能供電的低功耗節(jié)點能夠大大延長節(jié)點的使用壽命,可以在實際項目中廣泛使用。
無線傳感器網(wǎng)絡(luò);太陽能供電;低功耗;TinyOS
無線傳感器網(wǎng)絡(luò)(WSN,Wireless Sensor Network)是由大量監(jiān)測物理環(huán)境數(shù)據(jù)的傳感器節(jié)點自組織而形成的網(wǎng)絡(luò)。傳感器節(jié)點通常會相互協(xié)作地完成對特定環(huán)境的實時監(jiān)測,并通過無線的方式將數(shù)據(jù)傳送給匯聚節(jié)點。[1]由于這些傳感器節(jié)點通常是布署在無人看守或惡劣的環(huán)境中,所以節(jié)點一般是以電池作為主要的供電方式,這決定了解決傳感器節(jié)點軟硬件設(shè)計如何降低功耗、延長節(jié)點生命周期的問題的重要性。因此對無線傳感器網(wǎng)絡(luò)中監(jiān)測節(jié)點的供電、低功耗問題的研究,具有重要的理論意義和應(yīng)用價值。TinyOS系統(tǒng)是專門為嵌入式無線傳感器網(wǎng)絡(luò)設(shè)計的,可以從系統(tǒng)層面對無線傳感器網(wǎng)絡(luò)進(jìn)行低功耗研究和設(shè)計。[2]
為了解決無線傳感器網(wǎng)絡(luò)缺少系統(tǒng)軟件的問題,加州大學(xué)伯克利分校的學(xué)者們專門開發(fā)了TinyOS系統(tǒng)。該系統(tǒng)組件式的架構(gòu)使傳感器節(jié)點的代碼長度得以減少。同時非搶占式的任務(wù)處理方式降低了系統(tǒng)對節(jié)點硬件的要求,使該系統(tǒng)可以運(yùn)行在8位微型處理器上。
WSN通用監(jiān)測系統(tǒng)節(jié)點采用TI公司最新ZigBee芯片CC2530F256。CC2530具有5種運(yùn)行模式,各運(yùn)行模式之間切換的時間非常短,這一特性確保了CC2530的超低能源消耗。所以CC2530尤其能夠滿足超低功耗應(yīng)用的要求。
TinyOS系統(tǒng)沒有對應(yīng)于CC2530平臺的支持代碼,因此為了在設(shè)計的節(jié)點上使用TinyOS操作系統(tǒng),必須將標(biāo)準(zhǔn)的TinyOS進(jìn)行改進(jìn)后在目標(biāo)平臺上實現(xiàn)。[3]
在TinyOS系統(tǒng)中實現(xiàn)通用監(jiān)測系統(tǒng)的功能,最重要的工作是編寫傳感器采集的通用組件和接口。監(jiān)測系統(tǒng)中傳感器類型眾多,大致可以分為AD、數(shù)字、開關(guān)、I2C、485等類型。本文設(shè)計編寫了3層結(jié)構(gòu)組件,硬件層組件去實現(xiàn)各自傳感器底層的驅(qū)動,如AD、I2C接口組件。硬件抽象層給硬件層每種傳感器賦予唯一的類型號和ID號,使之對應(yīng)于硬件層提供的組件,并向應(yīng)用層提供組件。這樣用戶在編寫應(yīng)用層代碼時,就可以屏蔽掉傳感器類型和傳感器接口的差別,只要調(diào)用應(yīng)用層組件的接口AtoSensorCollection就可以了。3層組件及接口之間的關(guān)系如圖1所示。
圖1 3層組件及接口之間的關(guān)系圖
雖然傳感器節(jié)點會在系統(tǒng)層面實現(xiàn)低功耗的處理,但節(jié)點電池能量終究會枯竭,因此如果能夠設(shè)計出能從外部環(huán)境有效獲取能源的節(jié)點,將會大大延長整個監(jiān)測系統(tǒng)的生命周期。
無線傳感器網(wǎng)絡(luò)中高效的能源系統(tǒng)設(shè)計已經(jīng)被越來越多的研究者所關(guān)注,其中如何從環(huán)境中有效地采集和存儲能源能量的技術(shù)更是目前研究熱門。目前提出的方案主要有:基于太陽能的能量收集器、基于震動能量的收集器、基于聲音能量的收集器、基于溫差能量的收集器。[4]通過研究發(fā)現(xiàn),在廣泛采用的能量挖掘方式中利用太陽能電池是功率密度最高的。[5]
因此設(shè)計實現(xiàn)了一種基于太陽能收集存儲的無線傳感器網(wǎng)絡(luò)節(jié)點。該節(jié)點選用2 000 mAh鋰電池作為能量儲備,充放電芯片選用APL3202芯片。當(dāng)鋰電池為傳感器節(jié)點供電時,太陽能電池板就可以為鋰電池供電。但太陽能電池板充電時電壓不穩(wěn)定,不能直接給傳感器節(jié)點供電,必須由升壓電路升到5 V,再統(tǒng)一降到3.3 V才可以給節(jié)點供電。當(dāng)然選用的太陽能電池板大小,需要根據(jù)實際項目中的需求及成本來定。節(jié)點板給太陽能電池板留了雙針插座XH-2P,方便太陽能電池板插拔。傳感器節(jié)點的供電原理如圖2所示。本設(shè)計與文獻(xiàn)[4]的區(qū)別是選用較少的器件來實現(xiàn)太陽能供電的功能,并且在實際的環(huán)境中測試了太陽能供電的效果。
圖2 傳感器節(jié)點的供電原理圖
為了測試太陽能供電的性能,選用16 cm×10 cm的太陽能電池板(如圖3所示),進(jìn)行了輔助供電實驗,并記錄了2組實驗數(shù)據(jù)如表1所示。
圖3 太陽能電池板
表1 不同天氣對太陽能供電的影響
3.1.1 CPU在PM2模式休眠
CC2530具有5種工作模式,分別為主動模式、空閑模式、PM1、PM2和PM3,其中主動模式是具有完全功能的模式,CPU和射頻收發(fā)模塊都是正常工作的。主動模式到PM3模式功耗逐漸降低。一般低功耗設(shè)計CPU休眠會進(jìn)入PM2或PM3模式。在PM2模式下IO中斷、所選的低頻振蕩器和睡眠定時器是活動的,可以通過睡眠定時器或使能的外部IO中斷來喚醒CPU到主動模式。而在PM3模式下,低頻振蕩器在內(nèi)的所有內(nèi)部電路都會關(guān)閉,只有復(fù)位條件或使能的外部IO中斷喚醒CPU到主動模式[6]。對于無人看守的通用監(jiān)測系統(tǒng)的節(jié)點,沒有外部IO中斷去喚醒設(shè)備,所以CPU休眠最好選擇PM2模式。同時由于監(jiān)測系統(tǒng)對傳感器節(jié)點上報數(shù)據(jù)的時間要求不是很苛刻(幾秒甚至幾分鐘)。如果讓節(jié)點一直處于主動模式,必將浪費大量的能量。所以節(jié)點采集傳感器數(shù)據(jù)進(jìn)行數(shù)據(jù)上報后,能夠?qū)崿F(xiàn)工作模式轉(zhuǎn)換,必將從節(jié)點硬件自身降低功耗。CC2530本身硬件的特性也決定了這一設(shè)計的可行性,因為從空閑模式、PM1、PM2、PM3與主動模式的轉(zhuǎn)換時間非常短,基本在3 ms左右。本文在TinyOS系統(tǒng)實現(xiàn)了一種CC2530CPU休眠以及喚醒的組件接口,這樣采集傳感器數(shù)據(jù)上報后,就可以調(diào)用休眠的接口讓CPU在PM2模式休眠。在下個周期采集傳感器數(shù)據(jù)上報時,調(diào)用喚醒的接口讓CPU在主動模式下工作。[7]
在TinyOS系統(tǒng)實現(xiàn)的CPU休眠組件接口為McuSleepControl和 McuSleep,其中 McuSleepControl接口是用于設(shè)置CPU休眠時間和喚醒CPU,McuSleep接口是使CC2530CPU休眠。McuSleep接口休眠的實現(xiàn):通過設(shè)置CC2530睡眠定時器定時,定時的時間為McuSleepControl接口設(shè)置的時間。然后系統(tǒng)切換CPU工作模塊,從主動模式變成PM2模式,讓CPU進(jìn)入低功耗模式。當(dāng)設(shè)置休眠結(jié)束,休眠定時器會向喚醒 CPU,切換CPU到主動模式,并由McuSleepControl接口釋放CPU喚醒事件。這2個接口具體實現(xiàn)的程序代碼如圖4所示。
圖4 CPU PM2休眠具體實現(xiàn)程序代碼
3.1.2 傳感器電源控制開關(guān)
當(dāng)CPU處于PM2模式下休眠時,只有使能外部IO中斷、所選的32 kHz振蕩器和睡眠定時器是活動的。由于32 kHz的振蕩器是保證睡眠定時器在PM2下能夠工作所必須開啟的,睡眠定時器是用于把CPU從PM2喚醒到主動模式,所以二者必須要正常運(yùn)轉(zhuǎn)的。所以想在硬件基礎(chǔ)上進(jìn)一下降低無線傳感器節(jié)點的功耗,必須降低外部IO的功耗。傳感器節(jié)點的IO最大的功耗是傳感器模塊。傳感器模塊是由電池直接供電的,即使CC2530CPU進(jìn)入到PM2模式,電池還是一直給傳感器模塊供電,這樣就會浪費大量的能量。所以為了進(jìn)一步降低硬件的功耗,選用ME6211電源芯片控制傳感器模塊的供電。ME6211芯片有一個使能端CE,使能端CE連接CC2530的P0.1引腳。該芯片的特性:只有使能CE端,電源芯片才會給傳感器模塊供電。當(dāng)傳感器采集數(shù)據(jù)完畢后,可以禁止使能CE端,這樣就可以避免了CPU休眠后,傳感器模塊還在工作,浪費大量的能量。當(dāng)進(jìn)入到下一個采集周期時,由睡眠定時器喚醒CPU到主動模式,此時再使能CE端,讓電池給傳感器模塊供電。傳感器電源控制開關(guān)的原理圖如圖5所示。
圖5 傳感器電源控制原理圖
針對硬件兩方面低功耗的設(shè)計,在設(shè)計的傳感器節(jié)點上進(jìn)行了一組測試,分別記錄下CPU模塊和光照傳感器模塊在正常工作狀態(tài)下的平均電流和低功耗設(shè)計下的平均電流,如表2所示。
表2 硬件低功耗節(jié)點能耗統(tǒng)計
根據(jù)測試結(jié)果,可以發(fā)現(xiàn)進(jìn)行硬件低功耗設(shè)計可以大大降低節(jié)點的能耗。
為進(jìn)一步降低節(jié)點功耗,本設(shè)計在系統(tǒng)軟件方面也作了功耗設(shè)計處理。
大量無線傳感器網(wǎng)絡(luò)相關(guān)研究表明,傳感器節(jié)點的能耗包括射頻通信的能源消耗、數(shù)據(jù)采集的能源消耗和通信數(shù)據(jù)計算能源消耗,無線射頻通信能源消耗所占的比重最大。[8]而隨著通信數(shù)據(jù)量的增大,能耗必然會隨之增大。所以設(shè)計好通用監(jiān)測系統(tǒng)的數(shù)據(jù)通訊協(xié)議,也必然會降低整個WSN能耗。
為了降低通信能耗,設(shè)計了一種低功耗通信協(xié)議。通用監(jiān)測系統(tǒng)傳感器數(shù)量龐大,為區(qū)分不同傳感器,通信協(xié)議必須為每種傳感器分配了一個唯一的ID號。為使通信數(shù)據(jù)量最少,通信協(xié)議包含的內(nèi)容就必須最少。所以設(shè)計的TLV通信協(xié)議[9]只包含三部分,即傳感器類型ID號、傳感器數(shù)據(jù)長度和傳感器數(shù)據(jù),減少了一般通信協(xié)議載有的數(shù)據(jù)包頭、包尾和校驗等部分。
在通用監(jiān)測系統(tǒng)中,可能需要長時間去收集周圍環(huán)境數(shù)據(jù),但周圍環(huán)境數(shù)據(jù)可能在一段時間內(nèi)趨于一致。如果對這些趨于一致的數(shù)據(jù)進(jìn)行適當(dāng)?shù)臄?shù)據(jù)處理,會降低WSN通信能耗。因此設(shè)計了一種傳感器節(jié)點上報數(shù)據(jù)的規(guī)則來進(jìn)一步降低通信能耗。這個規(guī)則:當(dāng)傳感器節(jié)點采集完數(shù)據(jù)后,會與上一次采集的數(shù)據(jù)進(jìn)行比較,如果2次采集的數(shù)據(jù)的差值在一個范圍內(nèi),給基站節(jié)點上發(fā)一個特定格式的簡短數(shù)據(jù),通知基站節(jié)點這個周期該傳感器數(shù)據(jù)與前一次采集的數(shù)據(jù)基本一致。如果數(shù)據(jù)差值超出了范圍,則必須按照正常的通信協(xié)議上報數(shù)據(jù)給基站節(jié)點。[10]這樣的上報規(guī)則雖然增大了節(jié)點的計算能耗,但相對減少了通信能耗,根據(jù)測試結(jié)果發(fā)現(xiàn)協(xié)議低功耗設(shè)計是可行的。
對協(xié)議功耗設(shè)計的性能進(jìn)行了一組測試,選用10個光照傳感器節(jié)點與1個基站節(jié)點,10個光照傳感器都沒有硬件低功耗設(shè)計,其中5個節(jié)點實現(xiàn)了協(xié)議低功耗設(shè)計,另外5個節(jié)點沒有實現(xiàn)協(xié)議低功耗設(shè)計,按照設(shè)計的TLV協(xié)議上報傳感器數(shù)據(jù)。10個節(jié)點進(jìn)行了光照監(jiān)測實驗,統(tǒng)計出在相同時間里2種節(jié)點發(fā)送的字節(jié)數(shù)與相應(yīng)的丟包率,如表3所示。根據(jù)測量出實驗后的電池電壓值繪制了2種節(jié)點隨著測量時間變化的電池能量損耗圖,如圖6所示。
根據(jù)實驗數(shù)據(jù)計算出2種節(jié)點的丟包率,說明了協(xié)議低功耗設(shè)計在通信質(zhì)量上是可以接受的。
表3 節(jié)點丟包率統(tǒng)計統(tǒng)計
圖6 節(jié)點電池能量損耗圖
根據(jù)圖5可以發(fā)現(xiàn)實現(xiàn)協(xié)議低功耗的節(jié)點在相同時間內(nèi)對電池的損耗明顯小于未實現(xiàn)低功耗設(shè)計的節(jié)點。
綜合軟硬件低功耗設(shè)計,監(jiān)測系統(tǒng)具體實現(xiàn)的思路:在系統(tǒng)啟動的事件中,啟動一個傳感器采集定時器;當(dāng)采集傳感器時間間隔到了,節(jié)點會去采集傳感器數(shù)據(jù);傳感器數(shù)據(jù)采集完成后,與前一次采集的數(shù)據(jù)進(jìn)行比較,比較后按照相應(yīng)的通信協(xié)議格式將數(shù)據(jù)打包,打包完畢后通知系統(tǒng)打開射頻的功能;將采集的數(shù)據(jù)通過射頻發(fā)送給基站,數(shù)據(jù)發(fā)送完畢后,關(guān)閉節(jié)點的傳感器模塊的供電,設(shè)置睡眠定時器定時,并通知系統(tǒng)讓CPU休眠;待下一個采集的周期到來,睡眠定時器喚醒CPU切換到主動模式,使能電源芯片給傳感器模塊供電,開始下一個周期的采集與上報傳感器數(shù)據(jù)。
為了評測提出的系統(tǒng)層面的低功耗設(shè)計性能,在自主設(shè)計的節(jié)點上進(jìn)行了實際光照監(jiān)測。選擇了10個光照傳感器節(jié)點和1個基站節(jié)點進(jìn)行實驗。每個傳感器節(jié)點都是由容量為2 000 mAh的鋰電池供電的,并且每次實驗前電池都是滿容量工作。另外實驗中選用的是16 cm×10 cm的太陽能電池板,該規(guī)格的電池板售價低于20元,可以廣泛運(yùn)用在實際項目中。
10個實驗節(jié)點分為A、B兩組,各5個節(jié)點。A組是實現(xiàn)了硬件、軟件低功耗設(shè)計,有太陽能電池板輔助供電的節(jié)點,B組是普通的且沒有太陽能供電的節(jié)點。光照監(jiān)測實驗進(jìn)行10 h,測試天氣為晴天,氣溫為20~32℃。實驗時分別對10個節(jié)點進(jìn)行電池電壓測試,記錄下1~10 h各時刻的電壓值,計算出A、B兩組節(jié)點隨著時間變化的電壓變化值,并繪制了太陽能供電的系統(tǒng)低功耗節(jié)點與普通節(jié)點電池能量損耗圖,如圖7所示。
圖7 A、B兩組節(jié)點電池能量損耗圖
因為電池的電壓下降程度可以用來反映電池能量的損耗程度,電壓下降越大表明節(jié)點消耗能耗越大,電壓下降的越小表明節(jié)點能量損耗越小。所以根據(jù)實驗數(shù)據(jù),發(fā)現(xiàn)有太陽能供電的A組節(jié)點電池?fù)p耗比較平穩(wěn),整體損耗情況也比B組節(jié)點小很多。10 h測試時間里A組節(jié)點能量損耗率為3.49%,而B組節(jié)點能量損耗率為12.79%。因此,由實驗數(shù)據(jù)證明了所提出的太陽能供電的系統(tǒng)低功耗節(jié)點具有降低無線傳感器網(wǎng)絡(luò)節(jié)點功耗、有效地延長整個網(wǎng)絡(luò)的生命周期的作用。
詳述了一種太陽能供電的低功耗通用監(jiān)測節(jié)點的設(shè)計與實現(xiàn)。太陽能供電設(shè)計從硬件方案可行性與價格兩方面進(jìn)行了分析與論證[9]。從CC2530芯片本身以及無線傳感器網(wǎng)絡(luò)特性,設(shè)計實現(xiàn)了硬件低功耗。在TinyOS系統(tǒng)中實現(xiàn)了相應(yīng)傳感器采集、數(shù)據(jù)打包等組件和接口,并實現(xiàn)了設(shè)計的軟件低功耗。最終通過實驗測試出所設(shè)計的系統(tǒng)低功耗節(jié)點平均電流比普通節(jié)點減少了29.76 mA,電池能量損耗降低了68.1%,太陽能供電則會大大地延長節(jié)點電池的壽命。所以實驗驗證了本設(shè)計的確能夠有效地降低整個WSN的功耗,延長整個網(wǎng)絡(luò)的生命周期。
[1]Jennifer Y,Biswanath M,Dipak J,et al.Wireless Sensor Network Survey[J].Computer Networks,2008,52(12):2292 -2330.
[2]Al-Karaki J N,Kamal A E.Routing Techniques in Wireless Sensor Networks:A Survey [J].IEEE Wireless Communications,2004,11(6):6 -28.
[3]IEEE 802.15 Working Group for WPAN [EB/OL].[2014 -01 -10].http://www.ieee802.org/15/.
[4]高藝.能源自給低功耗無線傳感器網(wǎng)絡(luò)關(guān)鍵技術(shù)研究[D].天津:南開大學(xué),2010.
[5]Nallusamy R,Duraiswamy K.Solar Powered Wireless Sensor Networks for Environmental Applications with Energy Efficient Routing Concepts:A Review[J].Information Technology Journal,2011,10(1):1 -10.
[6]Chatzigiannakis I,Mylonas G,Nikdetseas S,et al.The Design of an Environment for Monitoring and Controlling Remote Sensor Networks[J].International Journal of Distributed Sensor Networks,2009,5:262 -282.
[7]Simon C,Huggard,Mcgoladrick.An End-to-end Routing Protocol for Peer-to-peer Communication in Wireless Sensor Networks[C]//Proceedings of the 6th Workshop on Middleware for Network Eccentric and Mobile Applications,NY,USA,2008:5 -9.
[8]Jafer E,O'Flynn B,O'Mathuna C,et al.Developing Wireless Measurement System for Building Deployed Capacitive Sensors with Optimized RF Front End Circuit[J].IEEE SENS J,2008,2:1161-1164.
[9]Willig A.Recent and Emerging Topics in Wireless Industrial Communication:A Selection[J].Industrial Informatics,2008,4(2):102-104.
[10]Yang Dongxuan,Chen Yan,Wang Kedong,et al.Design of Environmental Monitoring Node of Coal Mine Based on CC2530[C]//2010 International Conference on Computer Application and System Modeling.Tai Yuan:North University of China,IACSIT,2010.
Design and Implementation of WSN Low Power Node Powered by Solar Energy
GAO Jiajie1,ZHANG Lei2
(School of Computer Science & Technology,Anhui University of Technology,Maanshan 243032)
Since the nodes of WSN are limited to the volume of power supply module,the energy is limited.However manual replacement of batteries limits the application of WSN.A node module which is powered by solar energy is designed,and TinyOS is transplanted onto the node module so as to achieve low power consumption from the hardware and software.A lot of experimental results show that this design can greatly prolong the working life of the nodes,and they can be widely used in practical projects.
WSN;powered by solar energy;low power;TinyOS
TN915
A
1671-0436(2014)03-0027-06
2014-05-27
高加杰(1989— ),男,碩士研究生。
責(zé)任編輯:陳 亮