高加杰,張雷
(安徽工業大學計算機科學與技術學院,安徽 馬鞍山 243032)
一種太陽能供電的低功耗WSN節點的設計與實現
高加杰,張雷
(安徽工業大學計算機科學與技術學院,安徽 馬鞍山 243032)
無線傳感器節點的電源因受模塊體積的限制,電源能量極其有限。如要保證節點正常工作,需要經常更換電池,而手工方式更換電池極為不便,故限制了無線傳感器網絡的應用。現設計了一種太陽能自供電的傳感器節點模塊,并在節點上移植TinyOS系統,從節點硬件、軟件方面進行改進,實現低功耗功能。測試結果表明,這種太陽能供電的低功耗節點能夠大大延長節點的使用壽命,可以在實際項目中廣泛使用。
無線傳感器網絡;太陽能供電;低功耗;TinyOS
無線傳感器網絡(WSN,Wireless Sensor Network)是由大量監測物理環境數據的傳感器節點自組織而形成的網絡。傳感器節點通常會相互協作地完成對特定環境的實時監測,并通過無線的方式將數據傳送給匯聚節點。[1]由于這些傳感器節點通常是布署在無人看守或惡劣的環境中,所以節點一般是以電池作為主要的供電方式,這決定了解決傳感器節點軟硬件設計如何降低功耗、延長節點生命周期的問題的重要性。因此對無線傳感器網絡中監測節點的供電、低功耗問題的研究,具有重要的理論意義和應用價值。TinyOS系統是專門為嵌入式無線傳感器網絡設計的,可以從系統層面對無線傳感器網絡進行低功耗研究和設計。[2]
為了解決無線傳感器網絡缺少系統軟件的問題,加州大學伯克利分校的學者們專門開發了TinyOS系統。該系統組件式的架構使傳感器節點的代碼長度得以減少。同時非搶占式的任務處理方式降低了系統對節點硬件的要求,使該系統可以運行在8位微型處理器上。
WSN通用監測系統節點采用TI公司最新ZigBee芯片CC2530F256。CC2530具有5種運行模式,各運行模式之間切換的時間非常短,這一特性確保了CC2530的超低能源消耗。所以CC2530尤其能夠滿足超低功耗應用的要求。
TinyOS系統沒有對應于CC2530平臺的支持代碼,因此為了在設計的節點上使用TinyOS操作系統,必須將標準的TinyOS進行改進后在目標平臺上實現。[3]
在TinyOS系統中實現通用監測系統的功能,最重要的工作是編寫傳感器采集的通用組件和接口。監測系統中傳感器類型眾多,大致可以分為AD、數字、開關、I2C、485等類型。本文設計編寫了3層結構組件,硬件層組件去實現各自傳感器底層的驅動,如AD、I2C接口組件。硬件抽象層給硬件層每種傳感器賦予唯一的類型號和ID號,使之對應于硬件層提供的組件,并向應用層提供組件。這樣用戶在編寫應用層代碼時,就可以屏蔽掉傳感器類型和傳感器接口的差別,只要調用應用層組件的接口AtoSensorCollection就可以了。3層組件及接口之間的關系如圖1所示。

圖1 3層組件及接口之間的關系圖
雖然傳感器節點會在系統層面實現低功耗的處理,但節點電池能量終究會枯竭,因此如果能夠設計出能從外部環境有效獲取能源的節點,將會大大延長整個監測系統的生命周期。
無線傳感器網絡中高效的能源系統設計已經被越來越多的研究者所關注,其中如何從環境中有效地采集和存儲能源能量的技術更是目前研究熱門。目前提出的方案主要有:基于太陽能的能量收集器、基于震動能量的收集器、基于聲音能量的收集器、基于溫差能量的收集器。[4]通過研究發現,在廣泛采用的能量挖掘方式中利用太陽能電池是功率密度最高的。[5]
因此設計實現了一種基于太陽能收集存儲的無線傳感器網絡節點。該節點選用2 000 mAh鋰電池作為能量儲備,充放電芯片選用APL3202芯片。當鋰電池為傳感器節點供電時,太陽能電池板就可以為鋰電池供電。但太陽能電池板充電時電壓不穩定,不能直接給傳感器節點供電,必須由升壓電路升到5 V,再統一降到3.3 V才可以給節點供電。當然選用的太陽能電池板大小,需要根據實際項目中的需求及成本來定。節點板給太陽能電池板留了雙針插座XH-2P,方便太陽能電池板插拔。傳感器節點的供電原理如圖2所示。本設計與文獻[4]的區別是選用較少的器件來實現太陽能供電的功能,并且在實際的環境中測試了太陽能供電的效果。

圖2 傳感器節點的供電原理圖
為了測試太陽能供電的性能,選用16 cm×10 cm的太陽能電池板(如圖3所示),進行了輔助供電實驗,并記錄了2組實驗數據如表1所示。

圖3 太陽能電池板

表1 不同天氣對太陽能供電的影響
3.1.1 CPU在PM2模式休眠
CC2530具有5種工作模式,分別為主動模式、空閑模式、PM1、PM2和PM3,其中主動模式是具有完全功能的模式,CPU和射頻收發模塊都是正常工作的。主動模式到PM3模式功耗逐漸降低。一般低功耗設計CPU休眠會進入PM2或PM3模式。在PM2模式下IO中斷、所選的低頻振蕩器和睡眠定時器是活動的,可以通過睡眠定時器或使能的外部IO中斷來喚醒CPU到主動模式。而在PM3模式下,低頻振蕩器在內的所有內部電路都會關閉,只有復位條件或使能的外部IO中斷喚醒CPU到主動模式[6]。對于無人看守的通用監測系統的節點,沒有外部IO中斷去喚醒設備,所以CPU休眠最好選擇PM2模式。同時由于監測系統對傳感器節點上報數據的時間要求不是很苛刻(幾秒甚至幾分鐘)。如果讓節點一直處于主動模式,必將浪費大量的能量。所以節點采集傳感器數據進行數據上報后,能夠實現工作模式轉換,必將從節點硬件自身降低功耗。CC2530本身硬件的特性也決定了這一設計的可行性,因為從空閑模式、PM1、PM2、PM3與主動模式的轉換時間非常短,基本在3 ms左右。本文在TinyOS系統實現了一種CC2530CPU休眠以及喚醒的組件接口,這樣采集傳感器數據上報后,就可以調用休眠的接口讓CPU在PM2模式休眠。在下個周期采集傳感器數據上報時,調用喚醒的接口讓CPU在主動模式下工作。[7]
在TinyOS系統實現的CPU休眠組件接口為McuSleepControl和 McuSleep,其中 McuSleepControl接口是用于設置CPU休眠時間和喚醒CPU,McuSleep接口是使CC2530CPU休眠。McuSleep接口休眠的實現:通過設置CC2530睡眠定時器定時,定時的時間為McuSleepControl接口設置的時間。然后系統切換CPU工作模塊,從主動模式變成PM2模式,讓CPU進入低功耗模式。當設置休眠結束,休眠定時器會向喚醒 CPU,切換CPU到主動模式,并由McuSleepControl接口釋放CPU喚醒事件。這2個接口具體實現的程序代碼如圖4所示。

圖4 CPU PM2休眠具體實現程序代碼
3.1.2 傳感器電源控制開關
當CPU處于PM2模式下休眠時,只有使能外部IO中斷、所選的32 kHz振蕩器和睡眠定時器是活動的。由于32 kHz的振蕩器是保證睡眠定時器在PM2下能夠工作所必須開啟的,睡眠定時器是用于把CPU從PM2喚醒到主動模式,所以二者必須要正常運轉的。所以想在硬件基礎上進一下降低無線傳感器節點的功耗,必須降低外部IO的功耗。傳感器節點的IO最大的功耗是傳感器模塊。傳感器模塊是由電池直接供電的,即使CC2530CPU進入到PM2模式,電池還是一直給傳感器模塊供電,這樣就會浪費大量的能量。所以為了進一步降低硬件的功耗,選用ME6211電源芯片控制傳感器模塊的供電。ME6211芯片有一個使能端CE,使能端CE連接CC2530的P0.1引腳。該芯片的特性:只有使能CE端,電源芯片才會給傳感器模塊供電。當傳感器采集數據完畢后,可以禁止使能CE端,這樣就可以避免了CPU休眠后,傳感器模塊還在工作,浪費大量的能量。當進入到下一個采集周期時,由睡眠定時器喚醒CPU到主動模式,此時再使能CE端,讓電池給傳感器模塊供電。傳感器電源控制開關的原理圖如圖5所示。

圖5 傳感器電源控制原理圖
針對硬件兩方面低功耗的設計,在設計的傳感器節點上進行了一組測試,分別記錄下CPU模塊和光照傳感器模塊在正常工作狀態下的平均電流和低功耗設計下的平均電流,如表2所示。

表2 硬件低功耗節點能耗統計
根據測試結果,可以發現進行硬件低功耗設計可以大大降低節點的能耗。
為進一步降低節點功耗,本設計在系統軟件方面也作了功耗設計處理。
大量無線傳感器網絡相關研究表明,傳感器節點的能耗包括射頻通信的能源消耗、數據采集的能源消耗和通信數據計算能源消耗,無線射頻通信能源消耗所占的比重最大。[8]而隨著通信數據量的增大,能耗必然會隨之增大。所以設計好通用監測系統的數據通訊協議,也必然會降低整個WSN能耗。
為了降低通信能耗,設計了一種低功耗通信協議。通用監測系統傳感器數量龐大,為區分不同傳感器,通信協議必須為每種傳感器分配了一個唯一的ID號。為使通信數據量最少,通信協議包含的內容就必須最少。所以設計的TLV通信協議[9]只包含三部分,即傳感器類型ID號、傳感器數據長度和傳感器數據,減少了一般通信協議載有的數據包頭、包尾和校驗等部分。
在通用監測系統中,可能需要長時間去收集周圍環境數據,但周圍環境數據可能在一段時間內趨于一致。如果對這些趨于一致的數據進行適當的數據處理,會降低WSN通信能耗。因此設計了一種傳感器節點上報數據的規則來進一步降低通信能耗。這個規則:當傳感器節點采集完數據后,會與上一次采集的數據進行比較,如果2次采集的數據的差值在一個范圍內,給基站節點上發一個特定格式的簡短數據,通知基站節點這個周期該傳感器數據與前一次采集的數據基本一致。如果數據差值超出了范圍,則必須按照正常的通信協議上報數據給基站節點。[10]這樣的上報規則雖然增大了節點的計算能耗,但相對減少了通信能耗,根據測試結果發現協議低功耗設計是可行的。
對協議功耗設計的性能進行了一組測試,選用10個光照傳感器節點與1個基站節點,10個光照傳感器都沒有硬件低功耗設計,其中5個節點實現了協議低功耗設計,另外5個節點沒有實現協議低功耗設計,按照設計的TLV協議上報傳感器數據。10個節點進行了光照監測實驗,統計出在相同時間里2種節點發送的字節數與相應的丟包率,如表3所示。根據測量出實驗后的電池電壓值繪制了2種節點隨著測量時間變化的電池能量損耗圖,如圖6所示。
根據實驗數據計算出2種節點的丟包率,說明了協議低功耗設計在通信質量上是可以接受的。

表3 節點丟包率統計統計

圖6 節點電池能量損耗圖
根據圖5可以發現實現協議低功耗的節點在相同時間內對電池的損耗明顯小于未實現低功耗設計的節點。
綜合軟硬件低功耗設計,監測系統具體實現的思路:在系統啟動的事件中,啟動一個傳感器采集定時器;當采集傳感器時間間隔到了,節點會去采集傳感器數據;傳感器數據采集完成后,與前一次采集的數據進行比較,比較后按照相應的通信協議格式將數據打包,打包完畢后通知系統打開射頻的功能;將采集的數據通過射頻發送給基站,數據發送完畢后,關閉節點的傳感器模塊的供電,設置睡眠定時器定時,并通知系統讓CPU休眠;待下一個采集的周期到來,睡眠定時器喚醒CPU切換到主動模式,使能電源芯片給傳感器模塊供電,開始下一個周期的采集與上報傳感器數據。
為了評測提出的系統層面的低功耗設計性能,在自主設計的節點上進行了實際光照監測。選擇了10個光照傳感器節點和1個基站節點進行實驗。每個傳感器節點都是由容量為2 000 mAh的鋰電池供電的,并且每次實驗前電池都是滿容量工作。另外實驗中選用的是16 cm×10 cm的太陽能電池板,該規格的電池板售價低于20元,可以廣泛運用在實際項目中。
10個實驗節點分為A、B兩組,各5個節點。A組是實現了硬件、軟件低功耗設計,有太陽能電池板輔助供電的節點,B組是普通的且沒有太陽能供電的節點。光照監測實驗進行10 h,測試天氣為晴天,氣溫為20~32℃。實驗時分別對10個節點進行電池電壓測試,記錄下1~10 h各時刻的電壓值,計算出A、B兩組節點隨著時間變化的電壓變化值,并繪制了太陽能供電的系統低功耗節點與普通節點電池能量損耗圖,如圖7所示。

圖7 A、B兩組節點電池能量損耗圖
因為電池的電壓下降程度可以用來反映電池能量的損耗程度,電壓下降越大表明節點消耗能耗越大,電壓下降的越小表明節點能量損耗越小。所以根據實驗數據,發現有太陽能供電的A組節點電池損耗比較平穩,整體損耗情況也比B組節點小很多。10 h測試時間里A組節點能量損耗率為3.49%,而B組節點能量損耗率為12.79%。因此,由實驗數據證明了所提出的太陽能供電的系統低功耗節點具有降低無線傳感器網絡節點功耗、有效地延長整個網絡的生命周期的作用。
詳述了一種太陽能供電的低功耗通用監測節點的設計與實現。太陽能供電設計從硬件方案可行性與價格兩方面進行了分析與論證[9]。從CC2530芯片本身以及無線傳感器網絡特性,設計實現了硬件低功耗。在TinyOS系統中實現了相應傳感器采集、數據打包等組件和接口,并實現了設計的軟件低功耗。最終通過實驗測試出所設計的系統低功耗節點平均電流比普通節點減少了29.76 mA,電池能量損耗降低了68.1%,太陽能供電則會大大地延長節點電池的壽命。所以實驗驗證了本設計的確能夠有效地降低整個WSN的功耗,延長整個網絡的生命周期。
[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]高藝.能源自給低功耗無線傳感器網絡關鍵技術研究[D].天津:南開大學,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— ),男,碩士研究生。
責任編輯:陳 亮