<meter id="pryje"><nav id="pryje"><delect id="pryje"></delect></nav></meter>
          <label id="pryje"></label>

          新聞中心

          EEPW首頁 > 元件/連接器 > 設(shè)計應(yīng)用 > 無線傳感器網(wǎng)絡(luò)基于μC/OS-II的低功耗改進

          無線傳感器網(wǎng)絡(luò)基于μC/OS-II的低功耗改進

          作者: 時間:2009-10-12 來源:網(wǎng)絡(luò) 收藏

          研究是網(wǎng)絡(luò)研究的一個熱點,可分成硬件和軟件兩個層面進行研究。本文從軟件層面,特別是操作系統(tǒng)的角度介紹了研究的技術(shù)背景,并分析了現(xiàn)有的典型傳感器網(wǎng)絡(luò)操作系統(tǒng)在管理方面采取的策略,提出了μC/OS-II在網(wǎng)絡(luò)中應(yīng)用的低功耗改進方法。經(jīng)過移植、測試,改進后的μC/OS-II在低功耗方面有了顯著的提高。

            引言

            網(wǎng)絡(luò)是由一個個具有數(shù)據(jù)采集、計算和通信能力的傳感器節(jié)點,通過自組織網(wǎng)絡(luò)形成的一個動態(tài)、自適應(yīng)的分布式計算平臺。每個傳感器都是典型的嵌入式系統(tǒng),具有存儲容量小、運算能力差、功耗低、易失效的特點。因此,它對傳統(tǒng)嵌入式應(yīng)用開發(fā)者提出了更高的要求,迫切需要系統(tǒng)軟件的精心設(shè)計,以滿足其可靠性和持久性的要求。無線傳感器網(wǎng)絡(luò)的特點決定了盡可能地降低系統(tǒng)功耗成為系統(tǒng)設(shè)計的核心要素之一。為此,在目前開發(fā)的一些傳感器網(wǎng)絡(luò)操作系統(tǒng)中,都把功耗管理作為一個重要的模塊來設(shè)計。例如美國加州大學伯克利分校的TinyOS,加州大學紐約分校的SOS和美國科羅拉多大學的MantisOS等專為傳感器網(wǎng)絡(luò)節(jié)點設(shè)計的操作系統(tǒng)都有自己的低功耗管理策略。

            本文主要從軟件的角度研究降低無線傳感器網(wǎng)絡(luò)系統(tǒng)功耗的機制與策略,提出了基于μC/OS-II的低功耗改進策略。這對于延長無線傳感器網(wǎng)絡(luò)系統(tǒng)生存周期和普及應(yīng)用有著重要意義。

            1 低功耗軟件系統(tǒng)設(shè)計原理

            嵌入式系統(tǒng)中,在硬件平臺已經(jīng)確定的情況下,軟件系統(tǒng)主要從CPU和外部設(shè)備兩方面來降低功耗。

            CPU相關(guān)的功耗管理可以通過控制CPU的工作模式來實現(xiàn)。CPU一般有運行模式、空閑模式、休眠模式、睡眠模式和掉電模式,分別對應(yīng)CPU內(nèi)部的不同工作頻率。它們之間的轉(zhuǎn)化關(guān)系以及功耗消耗順序如圖1所示。省電的原則就是處理器只有在有用戶操作或任務(wù)處理時才處于運行模式,其他時間都處于睡眠模式,以最大程度地提高電源效率。

            外圍設(shè)備的功耗管理,可以根據(jù)系統(tǒng)在進入特定功耗模式時所發(fā)出的事件進入設(shè)備相應(yīng)的功耗模式來宴現(xiàn),也可以由用戶設(shè)定外圍設(shè)備控制器來使能外圍設(shè)備,達到控制外圍設(shè)備功耗的目的。在最近的研究中,已經(jīng)開始考慮同時動態(tài)改變處理器的電壓和頻率來進一步降低功率,這是一個更為復雜、更為系統(tǒng)的工程,涉及從硬件到操作系統(tǒng)以及應(yīng)用層的有關(guān)內(nèi)容。

            2 無線傳感器網(wǎng)絡(luò)操作系統(tǒng)的低功耗策略

            無線傳感器網(wǎng)絡(luò)操作系統(tǒng)是傳感器節(jié)點硬件和應(yīng)用軟件的結(jié)合部分,對功耗的管理模塊也在此實現(xiàn)。該模塊設(shè)計的好壞直接決定著整個傳感器網(wǎng)絡(luò)系統(tǒng)壽命的長短。下面介紹幾種典型無線傳感器網(wǎng)絡(luò)操作系統(tǒng)的功耗管理方式。

            TinyOS是美國加州大學伯克里分校開發(fā)的,一個專為無線嵌入式傳感器網(wǎng)絡(luò)設(shè)計的開放源代碼的操作系統(tǒng)。它具有基于組件的特性,在傳感器網(wǎng)絡(luò)天生就嚴格限制內(nèi)存的條件下,可以用最小代碼快速來創(chuàng)新和實現(xiàn)。其功耗管理主要體現(xiàn)為以下幾點:

            ◇TinyOS的每項服務(wù)都可以通過StdControl.stop命令被停止;

            ◇控制外圍設(shè)備的構(gòu)件可以將外圍設(shè)備切換到低功耗模式;

            ◇TinyOS的HPLPowerManagement構(gòu)件通過檢查處理器的I/O引腳和寄存器狀態(tài),將處理器置于相應(yīng)的低功耗模式;

            ◇調(diào)度器會在就緒任務(wù)隊列為空時,自動將處理器置于低功耗模式。

            SOS是加州大學紐約分校開發(fā)的一個采用動態(tài)重編程思想,實現(xiàn)在單個節(jié)點動態(tài)裝卸代碼模塊的無線傳感器網(wǎng)絡(luò)操作系統(tǒng)。與TinyOS類似,它提供一般的抽象接口來管理傳感器節(jié)點外圍設(shè)備的功耗狀態(tài),且調(diào)度器也會在就緒任務(wù)隊列為空時自動將處理器置于低功耗模式。

            MantisOS是美國科羅拉多大學開發(fā)的是一個以易用性和靈活性為主要目標的無線傳感器操作系統(tǒng),支持快速、靈活地搭建無線傳感器網(wǎng)絡(luò)原型系統(tǒng)。它通過管理與Unix系統(tǒng)類似的SLEEP函數(shù)來實現(xiàn)能量的優(yōu)化配置。當所有的用戶線程都睡眠后,調(diào)度器就可以控制系統(tǒng)進入低功耗模式,從而避免進入耗費能量的忙等待狀態(tài)。具體任務(wù)調(diào)度過程如圖2所示。

            Contiki是瑞典科學院開發(fā)的一款專門為8位機設(shè)計的輕量級操作系統(tǒng)。它沒有顯式的功耗管理策略,但是它將控制權(quán)轉(zhuǎn)交給各個應(yīng)用模塊,由調(diào)度器提供當前狀態(tài)下事件隊列的信息。這些信息可以幫助應(yīng)用程序在沒有事件任務(wù)調(diào)度時關(guān)閉處理器,進入低功耗模式。

            3 基于ATmegal28L和μC/OS-II的低功耗策略

            3.1 硬件特性

            本低功耗模型中,數(shù)據(jù)處理單元選用Atmel公司的ATmegal28L微控制器。它采用低功耗CMOS工藝生產(chǎn)的基于RISC結(jié)構(gòu)的8位微控制器,是目前AVR系列中功能最強大的單片機,具有豐富的資源和極低的功耗。它具有片內(nèi)128KB的程序Flash和4KB的數(shù)據(jù)SRAM,可外擴到64KB的E2PROM;8個lO位ADC通道,2個8位和2個16位硬件定時/計數(shù)器,并可在多種不同的模式下工作;8個PWM通道,可編程看門狗定時器和片上振蕩器、片上模擬比較器;UART、SPI、I2C總線接口和JTAG接口。除了正常操作模式外,還具有6種不同等級的低功耗模式。每種模式具有不同的特點,如表1所列。

            3.2 軟件特性

            μC/OS-II是一個簡單、高效的嵌入式實時操作系統(tǒng)內(nèi)核,它具有可搶占的實時多任務(wù)調(diào)度系統(tǒng)功能,而且提供了用于任務(wù)間同步、互斥、通信的系統(tǒng)服務(wù)。這些功能可以根據(jù)不同需求進行裁減,它的最小化內(nèi)核能編譯到2KB,目前已經(jīng)被移植到x86、ARM、PowerPC、MIPS等眾多體系結(jié)構(gòu)上?;诙绦【?、可移植性強的特點,μC/OS-II很適用于無線傳感器網(wǎng)絡(luò)節(jié)點芯片。

            3.3 μC/OS-II在ATmegal28L上的移植

            (1)定義基本配置

            ◇定義編譯器相關(guān)的數(shù)據(jù)類型;

            ◇定義允許和禁止中斷宏;

            ◇定義棧的增長方向;

            ◇定義用于任務(wù)切換的宏OS_TASK_SW()。

            (2)實現(xiàn)OS_CPU_A.ASM文件的系統(tǒng)結(jié)構(gòu)相關(guān)函數(shù)

            OSStaerHighRdy:負責獲取新任務(wù)的堆棧指針,并從堆棧指針中恢復新任務(wù)的所有處理器寄存器。

            OSCtxSW:負責保存當前任務(wù)的處理器寄存器到堆棧中,并根據(jù)需要恢復任務(wù)的堆棧指針恢復處理器寄存器。

            OSIntCtxSW:在中斷時保存當前任務(wù)的處理器寄存器,恢復新任務(wù)的處理器寄存器。

            OSTickISR:定時中斷函數(shù)。

            3.4 μC/OS-II的低功耗改進策略

            μC/OS-II是一個可搶占的多任務(wù)嵌入式實時操作系統(tǒng)。任務(wù)調(diào)度采用64級位圖優(yōu)先級算法,每個優(yōu)先級只允許有一個任務(wù),因此,除去系統(tǒng)保留的8個任務(wù),μC/OS-II共允許用戶使用56個優(yōu)先級不同的任務(wù)。這種優(yōu)先級算法有利于保證系統(tǒng)的實時性,使高優(yōu)先級任務(wù)及時得到響應(yīng),但是,這種多任務(wù)并發(fā)調(diào)度并沒有考慮低功耗的應(yīng)用,在資源極其有限的無線傳感器網(wǎng)絡(luò)中很難發(fā)揮作用,因此需要對它作些改進。

            在μC/OS-II中,當系統(tǒng)中沒有其他任務(wù)被調(diào)度執(zhí)行時,調(diào)度器開始執(zhí)行空閑任務(wù)。該任務(wù)執(zhí)行一個忙等待操作,不斷地循環(huán)等待中斷.因此處理器一直處于運行狀態(tài),消耗較多能量。

            為保證系統(tǒng)功耗管理的高效率和靈活性,我們提供了相應(yīng)的機制來確保應(yīng)用對功耗模式的直接控制,主要包括以下三方面內(nèi)容:

            第一,在設(shè)計應(yīng)用程序時,可以根據(jù)需要設(shè)置系統(tǒng)的功耗工作模式。在μC/OS-II中為應(yīng)用程序提供了專門的系統(tǒng)調(diào)用接口。

            第二,系統(tǒng)在運行過程中,能夠根據(jù)系統(tǒng)的工作狀態(tài)自動進行功耗管理,從而使系統(tǒng)工作于與系統(tǒng)狀態(tài)相適應(yīng)的功耗模式。

            當系統(tǒng)中沒有其他活動任務(wù)時,空閑任務(wù)得到執(zhí)行,系統(tǒng)自動進入空閑模式;如果有外部事件發(fā)生,則系統(tǒng)將回到運行模式。系統(tǒng)在空閑模式的工作時問超過預先設(shè)定的值時,系統(tǒng)自動進入休眠功耗模式;如果發(fā)生了需要系統(tǒng)應(yīng)用處理的外部事件,則系統(tǒng)將自動回到運行模式。在休眠模式下,如果沒有發(fā)生需要系統(tǒng)處理的事件,則系統(tǒng)自動進入睡眠摸式。對于睡眠模式,若發(fā)生外部事件,則系統(tǒng)回到休眠模式。若該事件對系統(tǒng)來說為有效事件,則系統(tǒng)將進入運行模式。當有任務(wù)睡眠時,將該任務(wù)掛入睡眠隊列。當系統(tǒng)中所有任務(wù)都睡眠時,系統(tǒng)進入睡眠模式。當睡眠隊列中有任務(wù)睡眠時間到期時,觸發(fā)中斷,激活CPU,重新開始調(diào)度。

            第三,可以使能或不使能某種特定的功耗模式。

            在具體實現(xiàn)過程中,采取了如下策略:

           ?、僭讦藽/OS-II內(nèi)核中擴展了一個睡眠任務(wù)隊列。該隊列接收睡眠的任務(wù),并將這些任務(wù)按照睡眠時間長短進行排序。如果位于隊列頭的任務(wù)睡眠時間到期,則從隊列中取下該任務(wù),并重新調(diào)整隊列中的睡眠時間。

            ②修改μC/OS-II內(nèi)核的任務(wù)調(diào)度器,當就緒隊列中沒有任務(wù)執(zhí)行時,不再執(zhí)行消耗能量的空循環(huán)操作。它首先判斷是否有任務(wù)被掛起在I/O操作上。如果是,則讓系統(tǒng)進入休眠模式。此時,如果外部有效I/O操作發(fā)生,則系統(tǒng)恢復運行模式。如果所有任務(wù)都調(diào)用了SLEEP函數(shù),則使系統(tǒng)進入睡眠模式,然后由睡眠任務(wù)隊列維護的外部定時器來負責喚醒睡眠的系統(tǒng)。

           ?、蹖崿F(xiàn)任務(wù)睡眠和功耗模式切換等相關(guān)函數(shù)。

           ?、軐崿F(xiàn)并封裝功耗模式使能、切換等相關(guān)函數(shù),提供相應(yīng)接口供用戶任務(wù)顯式調(diào)用。

            4 性能測試結(jié)果

            改進后的μC/OS-II已移植到ATmegal28L開發(fā)板上,系統(tǒng)運行穩(wěn)定。表2和表3分別為改進前和改進后在各種軟件狀態(tài)下測得的系統(tǒng)功耗。

            性能測試結(jié)果

            5 結(jié)論

            無線傳感器網(wǎng)絡(luò)節(jié)點作為一種嵌入式設(shè)備,很長時間都處于無任務(wù)運行的空閑狀態(tài)。如果能夠根據(jù)系統(tǒng)的工作狀態(tài)自動進行功耗管理,使系統(tǒng)上作于與系統(tǒng)狀態(tài)相適應(yīng)的功耗模式,那么能夠極大地降低系統(tǒng)功耗.從而延長系統(tǒng)的壽命。這在塒能耗要求極高的無線傳感器網(wǎng)絡(luò)中有著重要意義。



          關(guān)鍵詞: 無線傳感器 uC/OS-II 低功耗

          評論


          相關(guān)推薦

          技術(shù)專區(qū)

          關(guān)閉
          看屁屁www成人影院,亚洲人妻成人图片,亚洲精品成人午夜在线,日韩在线 欧美成人 (function(){ var bp = document.createElement('script'); var curProtocol = window.location.protocol.split(':')[0]; if (curProtocol === 'https') { bp.src = 'https://zz.bdstatic.com/linksubmit/push.js'; } else { bp.src = 'http://push.zhanzhang.baidu.com/push.js'; } var s = document.getElementsByTagName("script")[0]; s.parentNode.insertBefore(bp, s); })();