μCOS-II實(shí)時(shí)操作系統在μ′nSPTM中的低功耗研究
在當今普遍使用的手持式移動(dòng)設備中,如何降低嵌入式系統的功耗、延長(cháng)電池使用的時(shí)間等問(wèn)題一直是困擾開(kāi)發(fā)人員的一個(gè)難題。大量的功耗不僅導致移動(dòng)設備的待機時(shí)間縮短,還會(huì )導致芯片熱量增加,降低可靠性,而且也會(huì )增加散熱系統的成本。待機時(shí)間問(wèn)題雖然可以通過(guò)提高電池容量解決,但實(shí)際情況是嵌入式系統的功耗增長(cháng)超過(guò)電池技術(shù)的發(fā)展,因此單純依靠電池技術(shù)的發(fā)展是不可能在短期內解決現在正遇到的功耗問(wèn)題。
CMOS邏輯電路被認為是現今最通用的大規模集成電路技術(shù),因為CMOS可以高度集成,并具有低功耗、輸入電流小等特性,而且從理論上,理想的CMOS電路的靜態(tài)功耗可以認為是零,是一種“理想”的邏輯器件。但實(shí)際的CMOS器件依然需要消耗功率,而且頻率越高,消耗的動(dòng)態(tài)功耗越高。雖然芯片的封裝、使用散熱片和風(fēng)扇能夠散掉芯片和系統所產(chǎn)生的熱量,然而隨著(zhù)芯片和系統尺寸持續地增加,要提供充分的散熱就必須付出更多的代價(jià),而且系統的尺寸也會(huì )增加,散熱系統的機械部分也會(huì )降低系統的可靠性。
嵌入式系統由硬件和軟件共同組成,因此降低嵌入式系統功耗的方法也有硬件方法和軟件方法。本文以移植到凌陽(yáng)16位處理器μ′nSPTM上的嵌入式實(shí)時(shí)操作系統μCOS-Ⅱ為例,使用凌陽(yáng)公司提供的SPCE061A開(kāi)發(fā)板,討論如何利用μCOS-Ⅱ給出的內核擴展接口,實(shí)現一個(gè)低功耗的嵌入式系統。
1 嵌入式系統的功耗
嵌入式系統的平均功耗和電池容量共同決定待機時(shí)間,平均功耗越小、電池容量越大則待機時(shí)間越長(cháng)。而嵌入式系統的功耗可以分為靜態(tài)功耗和動(dòng)態(tài)功耗,靜態(tài)功耗是由CMOS電路的漏電流形成,現在的技術(shù)已經(jīng)使漏電流減少到盡可能小,因此靜態(tài)功耗一般占總功耗的比例很??;動(dòng)態(tài)功耗是由CMOS電路的分布電容充放電形成,該功耗占總功耗的比例很大,因此也是主要的研究對象。動(dòng)態(tài)功耗的大小可由式PD=CL×VDD2×f表示,CL是CMOS電路的分布電容,與芯片尺寸和工藝有關(guān);VDD是電源電壓;f是系統的工作頻率,降低工作頻率有助于降低系統功耗,但會(huì )使系統工作速度下降。
由上述分析可知,降低嵌入式系統的功耗主要有兩種途徑。第一種是動(dòng)態(tài)頻率調節(DFS),它可以改變不同電壓域上的時(shí)鐘頻率。雖然這種方法可以消除空閑等待的時(shí)間,但是卻不能減少能量的消耗。比如將一個(gè)任務(wù)以通常情況的一半頻率來(lái)運行,意味著(zhù)完成這個(gè)任務(wù)要通常的兩倍時(shí)間。DFS有用的地方在于,它可以降低峰值功耗。第二種方式是動(dòng)態(tài)地電壓和頻率調節(DVFS)。DVFS是建立在DFS基礎之上的,它既要降低頻率,又要降低電壓。由于電壓對動(dòng)態(tài)功耗二次方的關(guān)系,DVFS確實(shí)能將能量的消耗節省下來(lái)。為此ARM公司的Faisal M.Goriawalla先生提出IEM(智能能量管理)方案,該方案采用步進(jìn)策略、前瞻策略或平均數策略等算法調節系統的頻率和電壓,對于最終產(chǎn)品來(lái)說(shuō),則可以節省15%~20%的能量消耗(來(lái)源于A(yíng)RM公司OEM合作伙伴的數據)。
2 實(shí)時(shí)操作系統μCOS-Ⅱ和凌陽(yáng)處理器μ′nSPTM簡(jiǎn)介
μCOS-Ⅱ是一個(gè)簡(jiǎn)單、高效的嵌入式實(shí)時(shí)操作系統內核,具有可搶占的實(shí)時(shí)多任務(wù)調度系統功能。μCOS-Ⅱ提供很多系統服務(wù),例如郵箱、消息隊列、信號量、塊大小固定的內存的申請與釋放、時(shí)間相關(guān)函數等。μCOS-Ⅱ2.5版本支持64個(gè)任務(wù),每個(gè)任務(wù)一個(gè)特定的優(yōu)先級。優(yōu)先級越高,數字越小。系統占用了8個(gè)任務(wù),保留優(yōu)先級為0,1,2,3,OS LOWEST_PRIO-3,OS_LOWEST_PRIO_2,OS_LOWEST_PRIO_1,OS_LOWEST_PRIO_0。
凌陽(yáng)16位處理器μ′nSPTM被廣泛應用在家用電器控制器、儀器儀表、工業(yè)控制、娛樂(lè )和語(yǔ)音控制等場(chǎng)合。在功耗控制方面,μ′nSPTM采用CMOS制造工藝,同時(shí)增加了軟件激發(fā)的弱振方式、空閑方式和掉電方式,極大地降低了其功耗??梢酝ㄟ^(guò)對P SystemClock的設置進(jìn)行選擇CPU的時(shí)鐘可以在O.32~49.152 MHz范圍內可編程調節。當系統處于備用狀態(tài)下(時(shí)鐘處于停止狀態(tài)),耗電僅為2μA@3.6 V。μ′nSPTM處理器滿(mǎn)足μCOS-Ⅱ實(shí)時(shí)操作系統移植的條件。
凌陽(yáng)16位處理器μ′nSPTM的時(shí)鐘有多種選擇。系統采用32 768 Hz的實(shí)時(shí)時(shí)鐘,實(shí)時(shí)時(shí)鐘經(jīng)過(guò)PLL倍頻電路以后,產(chǎn)生系統時(shí)鐘頻率FOSC,FOSC再經(jīng)過(guò)分頻得到CPU時(shí)鐘頻率。其工作原理如圖1所示。
由圖1可知:μ′nSPTM的時(shí)鐘有多種選擇,從O.32~49.152 MHz范圍內可編程調節,另外還可以關(guān)閉32 768 Hz實(shí)時(shí)時(shí)鐘進(jìn)入睡眠狀態(tài)。在3.6 V電源電壓下,處理器的工作電流見(jiàn)表1。
3 μCOS-Ⅱ實(shí)現低功耗的原理
μCOS-Ⅱ總是運行進(jìn)入就緒狀態(tài)的優(yōu)先級最高的任務(wù)。一旦優(yōu)先級高的任務(wù)進(jìn)入就緒態(tài),就可以將CPU從低優(yōu)先級任務(wù)中搶過(guò)來(lái)。在μCOS-Ⅱ初始化時(shí),會(huì )建立一個(gè)優(yōu)先級最低的任務(wù)――空閑任務(wù),在沒(méi)有任務(wù)進(jìn)入就緒態(tài)的時(shí)候,空閑任務(wù)就會(huì )開(kāi)始運行??臻e任務(wù)會(huì )調用一個(gè)函數――OSTaskIdleHook()。這是留給用戶(hù)使用的內核擴展接口??臻e任務(wù)實(shí)際上并沒(méi)有什么事情可做,只是一個(gè)等待中斷的無(wú)限循環(huán)。因此用戶(hù)可以利用OSTaskIdleHook(),降低或者關(guān)閉系統時(shí)鐘,使CPU進(jìn)入低功耗模式。在實(shí)際的測試中,可修改文件OS_CPU_A.ASM,添加控制實(shí)時(shí)時(shí)鐘的例程,然后在應用程序或函數OSTaskIdleHook()中調用,這樣更便于程序閱讀。
p2p機相關(guān)文章:p2p原理
評論