- 相關推薦
TinyOs2.x的電源管理策略及程序移植
實用技術
TinyOs2.x的電源管理策略及程序移植
朱佳慧 鄭子龍 韓久迪 黃宏光
(四川大學電氣信息學院, 成都 610065)
摘要:本文針對WSN的操作系統(tǒng)TinyOs,從結構、電源管理以及系統(tǒng)構成方面對2.x下的實現(xiàn)進行分析,并與1.x作了對比,給出了控制模型、機制、設備狀態(tài)和編程接口。從開發(fā)實現(xiàn)角度涉及了TinyOs2.x的一些新特性,同時以實例說明了程序設計過程及存在的問題。
關鍵詞:TinyOs;電源管理;控制模型;設備狀態(tài);程序設計;傳感器節(jié)點
1. 操作系統(tǒng)TinyOs
TinyOs[1]是由加州大學伯克利分校專門為無線傳感器網(wǎng)絡開發(fā)的一種微型操作系統(tǒng)。是目前主流的WSN的操作系統(tǒng),這種系統(tǒng)區(qū)別于傳統(tǒng)意義上的電腦操作系統(tǒng),準確的說,它是一個適用于網(wǎng)絡嵌入式系統(tǒng)的編程框架,具體應用結構如圖1所示。TinyOs由一系列的軟件組件和硬件組件構成,而一個完整的系統(tǒng)配置由一個調(diào)度器和組件表[2]組成。
隨著時間的推移,TinyOs聯(lián)盟也不斷地推出新版本,以滿足更高的技術需求。從最初的TinyOs1.x到最新的TinyOs2.x版本,在原有的基礎上,改進了對新的平臺和系統(tǒng)的支持,并增加了一些新特性,它們是:
1) 改進的內(nèi)核機制,
2) 支持mica2,micaZ,Telos revB/TMote Sky,IntelMote2,eyes, tinynode平臺,
3) 整合了外圍設備電源管理,
4) mica和telos平臺系列的非易失性存儲器支持,
5) 大幅改善了對傳感器的支持。
新的TinyOs2.x操作系統(tǒng)帶了很多新特性和更多設備和功能的支持,在無線傳感器網(wǎng)絡的主要方面:任務調(diào)度、通信協(xié)議、電源管理、平臺也有一系列性能上的變化。
2 TinyOs的電源管理
平臺的能量是有限的。對所有的外圍設備使用統(tǒng)一的電源管理策略是不合適的,因為它們在預熱階段、電源配置和工作延遲上有很大的不同。傳感器因為有預熱階段等因素,不能像微控制器那樣,迅速計算出功率最低的電源狀態(tài)。
在TinyOs 1.x 中,應用程序自己負責所有的電源管理。比如像SPI 總線這樣的子系統(tǒng)需要由高層抽象來顯式地啟動和關閉[3]。這種方法需要深層的StdControl.start() 和StdControl.stop() 調(diào)用,這可能會引入怪異的行為并且妨礙電源的節(jié)省。比如在Telos 平臺上關閉射頻模塊時需要關閉SPI 總線,這會導致Flash 驅動器不能工作。另外,即使SPI 總線不活動,微控制器也會為它保持在高功耗狀態(tài)。
表1 電源管理對比
TinyOs 1.x TinyOs 2.x
工作方式 應用程序負責 微控制器、外圍設備
功耗 高功耗 低功耗
性能 在Telos 平臺上flash驅動器不能工作 利用狀態(tài)轉換處理中斷
TinyOs 2.x 定義了兩類設備用于電源管理:微控制器和外圍設備,如圖2所示。微控制器通常有幾個電源狀態(tài),它們具有不同的電源功率、喚醒延遲和外圍支持。微控制器在能滿足程序需求的前提下,應當一直處于能耗盡量低的電源狀態(tài)。為了準確地決斷處理器該處于哪個狀態(tài),需要有大量外圍子系統(tǒng)和外圍設備的電源狀態(tài)信息。另外,狀態(tài)轉換是很常見的。每當微控制器處理一個中斷時,它從低功耗狀態(tài)切換到激活狀態(tài);當TinyOs 調(diào)度器發(fā)現(xiàn)任務隊列為空時,它回到低功耗狀態(tài)。TinyOs 2.x 使用三種機制來決定讓處理器處于哪種狀態(tài):狀態(tài)和控制寄存器、臟位、電源狀態(tài)覆蓋(override)[3]。外圍設備與微控制器不同,它沒有多個電源狀態(tài),只有兩個狀態(tài):開啟與關閉。外圍設備指的是使用仲裁訪問機制的硬件設備。這些設備不是虛擬化的,訪問它們時必須顯式地請求并釋放。在TinyOs 中有兩種不同的外圍設備電源狀態(tài)管理模型:顯式電源管理和隱式電源管理[4]。顯式電源管理模型提供單個客戶端手工控制已分配物理設備電源狀態(tài)的方法。隱式模型提供讓設備在驅動中控制自己的電源狀態(tài)的方法。
TinyOs 2.x 目前可以提供兩種默認的外設電源管理策略。該策略在TinyOs-2.x/lib/power中由多個組件實現(xiàn)。第一種策略使用立即電源控制模式,即設備在被請求或釋放時立即開啟或關閉電源。第二種策略是使用延遲電源控制模式,即設備在被請求是立即啟動,而在釋放時延遲一段時間后再關閉。該延遲的時間是可以配置的,以滿足各種不同設備驅動的需求。
每種策略都分別用StdControl,SplitControl,AsyncStdControl 接口實現(xiàn),如下所示:
1)立即電源管理
_ StdControlPowerManagerC
_ SplitControlPowerManagerC
_ AsyncStdControlPowerManagerC
2)延遲電源管理
_ StdControlDeferredPowerManagerC
_ SplitControlDeferredPowerManagerC
_ AsyncStdControlDeferredPowerManagerC
3 平臺
無線傳感器網(wǎng)絡節(jié)點是構成整個無線網(wǎng)絡的基礎,用于部署到研究區(qū)域中收集發(fā)送、協(xié)作完成指定任務。所有與之相關的協(xié)議、算法、機制等都需要在節(jié)點上運行才具有現(xiàn)實意義。無線節(jié)點一般包括以下幾個部分:處理器單元、存儲器單元、射頻單元、擴展接口單元、傳感器以及電源。由于節(jié)點處理能力及存儲能力有限,TinyOs操作系統(tǒng)引入了輕線程、主動信息、事件驅動和組件化編程四種技術。TinyOs支持多款平臺:Iris、Shimmer,mica2,micaZ,Telos revB/TMote Sky,IntelMote2,eyes, tinynode等。Imote2對TinyOs的支持比較完整。
Imote2 是一款先進的無線傳感器節(jié)點平臺。它集成了低功耗PXA271XScale CPU 和兼容 IEEE 802.15.4的射頻芯片。Imote2 的正反兩面都設計有擴展接口等標準組件:正面提供標準 I/O 接口,用于基本擴展芯片;反面附加高速接口,用于特殊 I/O。其基本構成及結構如圖3所示[5]:
由于TinyOs是基于層次設計的系統(tǒng)體系,其移植性與硬件抽象層相關。硬件抽象層對硬件平臺合理的描述,可以使操作系統(tǒng)內(nèi)核基本與具體的硬件無關,以實現(xiàn)不同平臺的移植[6]。作為實際應用, TinyOs2.x代碼在Imote2的運行,大部分還是流暢的。
TinyOs2.x上典型編程設計過程(以BLINK為例):
1) 檢查一下編譯環(huán)境是否安裝完畢,在Cygwin的shell中寫入tos-check-env,
2) 檢查TinyOs build system是否安裝完畢。這需要MAKERULES環(huán)境運行良好。在Shell中輸入printenv MAKERULES,
3) 用make 命令來編譯一個TinyOs應用系統(tǒng):make [platfrom],
4) 確定安裝正確版本的nesC編譯器,
5) 在以上基礎上,將已經(jīng)編譯好的應用程序灌入到節(jié)點上,
6) 將節(jié)點從板子上拔下來,打開電源開關,此時三個LED將會以4HZ為頻率進行計數(shù)閃爍。
TinyOs2.x在Imote2上也有一些問題[7]如:
radio driver,DMA版本的射頻驅動(默認)不能夠工作,對于SPI版本,多于十位的信息將使RX堆棧溢出;
DVFS,動態(tài)電壓頻率調(diào)整問題依然沒有解決。
4 結束語
TinyOs的電源管理、平臺支持上有了較大變化,使其在無線傳感器網(wǎng)絡上的應用更趨完善。平臺支持方面,與已經(jīng)接受廣泛試用,運行相對穩(wěn)定的TinyOs1.X版本相比,還存在一些不足之處,需要在實際運用中不斷改進。
參考文獻
[1] J Hill, R.Szewczyk,A. Woo,S. Hollar, D. E. Culler, and K. S. J. Pister. System architecture directions for networked sensors. In: Architectural Support for Programming Languages and Operating Systems, 2000, 93-104. TinyOS is available at http://webs.cs.berkeley.edu.
[ 2]于海斌,梁韡,曾鵬.智能無線傳感器網(wǎng)絡系統(tǒng) [M]. 北京:科學出版社,2006.
[3] http://TinyOs-network-protocol.googlecode.com/files/tep112-mcu-power-management.pdf
[4]http://TinyOs-network-protocol.googlecode.com/files/tep115-pwr-mngmnt-non-virtual-dev.pdf.
[5]http://www.xbow.com/Products/Product_pdf_files/Wireless_pdf/Imote2_Datasheet.pdf.
[6]錢開國 桑楠 基于TinyOs的無線傳感器網(wǎng)絡操作系統(tǒng)移植性研究與實現(xiàn) [J].福建電腦,2009,2(2):7-9.
[7] http://docs.tinyos.net/index.php/T2_on_Imote2.
【TinyOs2.x的電源管理策略及程序移植】相關文章:
基于先驗預知的動態(tài)電源管理技術08-06
移動通信終端電源管理設計原理08-06
談談校長的管理策略08-13
我的“午睡管理”策略08-15
知識管理:目標與策略08-05
知識管理的維度與策略08-07
嵌入式系統(tǒng)的動態(tài)電源管理架構08-06
通信電源的運行管理與應用研究08-06
班級管理“新策略”之我見08-08