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

          新聞中心

          EEPW首頁 > 嵌入式系統(tǒng) > 設(shè)計(jì)應(yīng)用 > 基于嵌基于μC/OS-II嵌入式實(shí)時(shí)操作系統(tǒng)的低功耗開發(fā)

          基于嵌基于μC/OS-II嵌入式實(shí)時(shí)操作系統(tǒng)的低功耗開發(fā)

          作者: 時(shí)間:2009-09-01 來源:網(wǎng)絡(luò) 收藏

            本文將依次從系統(tǒng)硬件設(shè)計(jì)、系統(tǒng)軟件設(shè)計(jì)、利用μC/OS-II給出的內(nèi)核擴(kuò)展接口和產(chǎn)品應(yīng)用特點(diǎn)這四個(gè)方面系統(tǒng)地討論系統(tǒng)設(shè)計(jì)。

            3.2 硬件設(shè)計(jì)

            3.2.1 設(shè)計(jì)的器件

            選擇低功耗的電子器件可以從根本上降低整個(gè)硬件系統(tǒng)的功耗。處理器是系統(tǒng)的硬件核心,消耗大量的功率,因此設(shè)計(jì)時(shí)應(yīng)選用低功耗的處理器;另外,選擇低功耗的通信收發(fā)器(對(duì)于通信應(yīng)用系統(tǒng))、低功耗的外圍電路。

            本文中使用的微控制器是夏普公司的LH79520。LH79520有五種工作模式,分別是:運(yùn)行模式、休眠模式、睡眠模式、停止模式1、停止模式2。處于不同的工作模式下,微控制器消耗的功率不同,處于運(yùn)行模式的微控制器消耗的功率最多,處于停止模式2的微控制器消耗的功率最少。

            3.2.2 低功耗電路

            目前的半導(dǎo)體工藝主要有TTL工藝和CMOS工藝,CMOS工藝具有很低的功耗,在電路設(shè)計(jì)上盡量選用,使用CMLS系列電路時(shí),其不用的輸入端不要懸空,因?yàn)閼铱盏妮斎攵丝赡艽嬖诘母袘?yīng)信號(hào)造成高低電平的轉(zhuǎn)換,轉(zhuǎn)換器件的功耗很大,盡量采用輸出為高的原則。同時(shí)盡量使用集成度高的器件,減少電路中使用的元件的個(gè)數(shù),從而減少整機(jī)的功耗。

            3.2.3 分區(qū)/分時(shí)供電技術(shù)

            一個(gè)系統(tǒng)的所有組成部分并非時(shí)刻在工作,基于此,可采用分時(shí)/分區(qū)供電技術(shù)。原理是利用“開關(guān)”控制電源供電單元,在某一部分電路處于休眠狀態(tài)時(shí),關(guān)閉其供電電源,僅保留工作部分的電源。

            本文使用的硬件平臺(tái),使用了TI公司的直流電源轉(zhuǎn)換芯片TPS5430,給其他輔助板和主控板上的外設(shè)提供電源。

            3.2.4 降低處理器的時(shí)鐘頻率

            處理器的工作頻率和功耗的關(guān)系很大,頻率越高,功耗越大。可以動(dòng)態(tài)改變處理器的時(shí)鐘以降低系統(tǒng)的總功耗。微控制器空閑時(shí)降低時(shí)鐘頻率;處于工作狀態(tài)時(shí),提高時(shí)鐘頻率,全速運(yùn)行處理事務(wù)。

            本文使用的硬件平臺(tái)的控制板所使用的時(shí)鐘,使用了外部晶振和鎖相環(huán)技術(shù),可以在很寬的范圍內(nèi)調(diào)整系統(tǒng)時(shí)鐘。

            3.3 軟件部分的設(shè)計(jì)

            至今,還沒有一個(gè)嚴(yán)格的標(biāo)準(zhǔn)來判斷一個(gè)軟件的低功耗特性,但是,設(shè)計(jì)者仍需盡量將應(yīng)用的低功耗特性反映在軟件中,以避免那些“看不見”的功耗損失。

            3.3.1 中斷與查詢

            一個(gè)程序使用中斷方式還是查詢方式對(duì)于一些簡(jiǎn)單的應(yīng)用并不那么重要,但在其低功耗特性上卻相去甚遠(yuǎn)。使用中斷方式,微控制器可以什么都不做,甚至可以進(jìn)入等待模式或停止模式;而查詢方式下,微控制器必須不停地訪問I/O寄存器,這會(huì)帶來很多額外的功耗。

            本文是通過中斷通信方式與片上的兩個(gè)串口資源進(jìn)行通信,而非采用查詢的方式,減少了串口占用處理器的工作時(shí)間,有效地降低了系統(tǒng)的功耗。

            3.3.2 宏的使用

            讀RAM會(huì)比讀Flash帶來更大的功耗,正是因?yàn)槿绱?,低功耗性能突出的ARM微控制器在設(shè)計(jì)上僅允許一次子程序調(diào)用。因?yàn)槲⒖刂破鬟M(jìn)入子程序時(shí),會(huì)首先將當(dāng)前微控制器寄存器推入堆棧(RAM),在離開時(shí)又將微控制器寄存器彈出堆棧,這樣至少帶來兩次對(duì)RAM的操作。因此,考慮用宏定義來代替子程序調(diào)用。調(diào)用一個(gè)子程序還是一個(gè)宏在程序?qū)懛ㄉ喜]有什么不同,但宏會(huì)在編譯時(shí)展開,微控制器只是順序執(zhí)行指令,避免了調(diào)用子程序。這實(shí)際上是一種以空間換時(shí)間的思想。這樣做,不儀提高了程序的執(zhí)行效率,同時(shí)可以減少系統(tǒng)的功耗。

            3.3.3 減少微控制器的運(yùn)算量

            將一些運(yùn)算的結(jié)果預(yù)先算好,放在Flash中,用查表的方法替代的計(jì)算,減少微控制器的運(yùn)算工作量,可以有效地降低微控制器的功耗;不可避免的計(jì)算,算到精度夠了就結(jié)束,避免“過度”的計(jì)算;盡量使用短的數(shù)據(jù)類型,在精度允許的情況下,使用簡(jiǎn)單函數(shù)代替復(fù)雜函數(shù)作近似,也可以減少功耗。

            3.3.4 減少微處理器的工作時(shí)間

            盡量減少CPU的全速運(yùn)行時(shí)間以降低系統(tǒng)的功耗,使微控制器較長(zhǎng)地處于空閑方式或掉電方式是用軟件設(shè)計(jì)降低系統(tǒng)功耗的關(guān)鍵。讓它盡量在短時(shí)間內(nèi)完成對(duì)信息或數(shù)據(jù)的處理,然后就進(jìn)入空閑或掉電方式,在關(guān)機(jī)狀態(tài)下讓它完全進(jìn)入掉電方式,用定時(shí)中斷、外部中斷或系統(tǒng)復(fù)位將它喚醒。

            3.4 基于μC/OS-II內(nèi)核擴(kuò)展接口的低功耗模式

            利用任務(wù)調(diào)度的空閑時(shí)間使微控制器進(jìn)入低功耗模式,以降低系統(tǒng)功耗這一思想在μC/OS-II內(nèi)核設(shè)計(jì)之初就被注意到了。為此設(shè)計(jì)者特意留出了相應(yīng)的內(nèi)核擴(kuò)展接口。用戶可以利用此接口,實(shí)現(xiàn)一個(gè)的低功耗系統(tǒng)。

            3.4.1、μC/OS-II的空閑任務(wù)擴(kuò)展接口

            實(shí)現(xiàn)μC/OS-II低功耗特性的方法:利用μC/OS-II中空閑任務(wù)的擴(kuò)展接口,使系統(tǒng)在空閑狀態(tài)下進(jìn)入某種低功耗模式,降低系統(tǒng)功耗;利用時(shí)鐘節(jié)拍(本文使用LH79520內(nèi)部定時(shí)器0作為時(shí)鐘節(jié)拍),周期性地喚醒CPU。CPU被喚醒之后,將執(zhí)行節(jié)拍中斷服務(wù)程序,重新判斷是否有任務(wù)處于就緒態(tài),如果有,就執(zhí)行該任務(wù);如果沒有,則重復(fù)上面的過程。

            μC/OS-II最多可以管理64個(gè)任務(wù),并為每一個(gè)任務(wù)分配一個(gè)不同的優(yōu)先級(jí)。每一個(gè)任務(wù)有五種可能的狀態(tài)――睡眠態(tài)、就緒態(tài)、運(yùn)行態(tài)、等待態(tài)和中斷服務(wù)態(tài)。μC/OS-II屬于可剝奪型內(nèi)核,也就是說,μC/OS-II總是運(yùn)行進(jìn)入就緒狀態(tài)的優(yōu)先級(jí)最高的任務(wù)。一旦優(yōu)先級(jí)高的任務(wù)進(jìn)入就緒態(tài),就可以將CPU從低優(yōu)先級(jí)任務(wù)中搶過來。在μC/OS-II初始化時(shí),會(huì)建立一個(gè)優(yōu)先級(jí)最低的任務(wù)――空閑任務(wù),在沒有任務(wù)進(jìn)人就緒態(tài)的時(shí)候,空閑任務(wù)就會(huì)開始運(yùn)行??臻e任務(wù)會(huì)調(diào)用一個(gè)函數(shù)――OSTaskI-dleHook()。這是留給用戶使用的內(nèi)核擴(kuò)展接口。空閑任務(wù)實(shí)際上并沒有什么事情可做,只是一個(gè)等待中斷的無限循環(huán)。因此用戶可以利用OSTaskIdleHook(),使CPU進(jìn)入低功耗模式。

          linux操作系統(tǒng)文章專題:linux操作系統(tǒng)詳解(linux不再難懂)


          評(píng)論


          相關(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); })();