徐蛟
【摘要】隨著社會的發(fā)展,人類對便攜式設(shè)備、物聯(lián)網(wǎng)設(shè)備、可穿戴設(shè)備等的需求大大增加,而這些設(shè)備的續(xù)航要求也越來越高,必須對其進(jìn)行低功耗設(shè)計。大部分低功耗設(shè)備都以單片機(jī)為控制核心,本文分析了電路系統(tǒng)中的功耗模型,并從硬件和固件兩個角度分析了單片機(jī)電路低功耗設(shè)計的方法。
【關(guān)鍵詞】單片機(jī);低功耗;睡眠模式;電源管理
一、單片機(jī)電路系統(tǒng)功耗
低功耗電路是在CMOS集成電路的基礎(chǔ)上發(fā)展起來的,要分析功耗,應(yīng)從CMOS集成電路的原理著手。CMOS電路功耗包含動態(tài)功耗和靜態(tài)功耗。靜態(tài)功耗即為電源電壓和電流的乘積,在系統(tǒng)電源加大時,對應(yīng)的電流也會加大;動態(tài)功耗包含瞬時導(dǎo)通功耗和電容充放電功耗。瞬時導(dǎo)通功耗是指電路在信號轉(zhuǎn)換時,P溝道管和N溝道管同時導(dǎo)通而形成一個回路,回路電流產(chǎn)生的功耗。當(dāng)電路工作的頻率越高,則CMOS管導(dǎo)通頻率越高,瞬時導(dǎo)通功耗越高。系統(tǒng)電壓越高,CMOS管導(dǎo)通時的電流越大,瞬時導(dǎo)通功耗也越大。當(dāng)電路輸出端邏輯電平改變時,輸出端電容伴隨著充放電過程。當(dāng)輸出端由邏輯低電平變成邏輯高電平時,系統(tǒng)電源會通過導(dǎo)通的P溝道電阻對輸出端電容充電,而當(dāng)輸出端由邏輯高電平變成邏輯低電平時,輸出端電容會通過導(dǎo)通的N溝道電阻放電,這種充放電過程會產(chǎn)生功耗,即為電容充放電功耗。將電容充放電電流與電源電壓積分,可計算出電容充放電功耗P。假如電容大小為C,充放電頻率為f,系統(tǒng)電源為VDD,則P=fCVDD2。由式可知,電容充放電功耗與電路工作頻率、電容大小,和系統(tǒng)電壓大小都成正比。
二、單片機(jī)硬件電路設(shè)計方法
(一)低功耗單片機(jī)選型
TI公司MSP430系列單片機(jī)在功耗設(shè)計上較優(yōu)良,一般為低功耗設(shè)計時的首選單片機(jī);意法半導(dǎo)體公司推出的STM32L4+系列低功耗單片機(jī)也有較好的市場反響,其實現(xiàn)超低功耗的同時也追求高性能。越簡單的單片機(jī),其功耗越小,在選型單片機(jī)時注意夠用就好,譬如單片機(jī)ROM和RAM過大時,其能耗也將大大增加,因為每個存儲單元都是由CMOS構(gòu)成,即使不使用,其上也會消耗電能。
(二)系統(tǒng)供電電壓的選擇
系統(tǒng)供電電壓大小是系統(tǒng)功耗最重要的指標(biāo)。以前51單片機(jī)都采用與TTL兼容的5V電壓供電,現(xiàn)在主流單片機(jī)已降到3.3V供電。隨著半導(dǎo)體工藝的不斷發(fā)展,CMOS電路的門限電平越來越低,需求的供電電壓越來越低,后續(xù)1.8V供電的芯片將成為主流。對于低功耗設(shè)計,供電電壓越小則系統(tǒng)功耗越小,應(yīng)盡量選擇低供電電壓。
(三)系統(tǒng)電源管理
電源芯片一般有兩種類型:開關(guān)電源和線性電源。對于線性電源,其噪聲較小,但輸入輸出上的壓差會造成能量損耗。開關(guān)電源效率較高,很多芯片能量轉(zhuǎn)換效率達(dá)95%以上。在低功耗設(shè)計中,電源部分應(yīng)首選開關(guān)電源。針對單片機(jī)電路的外圍各功能模塊,可設(shè)計成獨(dú)立供電的模式,需要使用相應(yīng)功能時就對其供電,不需要時則關(guān)閉供電。獨(dú)立供電的模式可通過單片機(jī)管腳控制MOS管開關(guān)來實現(xiàn)。
(四)系統(tǒng)時鐘選擇
系統(tǒng)運(yùn)行頻率快,則系統(tǒng)性能高,但由上文可知,運(yùn)行頻率越快,系統(tǒng)的動態(tài)功耗越大。在滿足系統(tǒng)性能的同時,應(yīng)盡量使用低頻率時鐘。對于單片機(jī),在運(yùn)行中可根據(jù)功能需求,切換其工作時鐘。
三、單片機(jī)固件設(shè)計方法
(一)及時進(jìn)入低功耗模式
以STM32L4+系列單片機(jī)為例,該單片機(jī)提供了豐富的低功耗模式,包含睡眠模式、兩種停止模式、兩種待機(jī)模式和關(guān)斷模式等等。系統(tǒng)空閑或不工作時,應(yīng)使單片機(jī)及時進(jìn)入相對的低功耗模式,并在固件中設(shè)置其喚醒的事件或中斷。
(二)減少單片機(jī)的運(yùn)算量
單片機(jī)運(yùn)算量越大,其功耗越大。在固件設(shè)計時,對一些已知量可以設(shè)定成常量。對于運(yùn)算公式中常量的計算,可以在程序里先計算出定值,譬如計算圓的周長為2πr,可以直接寫成6.28r。對一系列的運(yùn)算結(jié)果可預(yù)先算好制成表存放在Flash中,讓單片機(jī)查表。對于必須處理的實時計算,注意計算精度,只計算到需求精度就結(jié)束。數(shù)據(jù)計算時首選加減法,后考慮乘除法,在乘除法選擇時選擇乘法而不選擇除法,能夠進(jìn)行移位運(yùn)算代替乘除法時,優(yōu)選移位運(yùn)算。
(三)多使用中斷或DMA方式
固件設(shè)計應(yīng)盡量不使用查詢的方式,相比于中斷,單片機(jī)不斷的查詢會產(chǎn)生較大功耗。在中斷或DMA模式下,單片機(jī)空閑后便可進(jìn)入睡眠等低功耗模式,等待中斷的喚醒。
(四)其他設(shè)計要點(diǎn)
單片機(jī)讀Flash會比讀RAM節(jié)省功耗,在固件設(shè)計中,應(yīng)多進(jìn)行宏定義,即可降低功耗,也便于程序的維護(hù)升級。設(shè)計電源管理程序配合硬件按需求對各功能塊進(jìn)行供電;對于外圍器件有顯示設(shè)備的,不要動態(tài)掃描,而使用靜態(tài)顯示方式。對于外圍器件有按鍵的,也不要動態(tài)掃描,盡量設(shè)置按鍵中斷方式。能夠固件處理的事情,盡量用固件,不要加外圍電路處理。
四、結(jié)語
對于單片機(jī)電路的功耗設(shè)計是一個系統(tǒng)工程,應(yīng)綜合考慮硬件和固件的設(shè)計。低功耗和高性能的需求常常是一對矛盾體,設(shè)計時需在兩者間折中。本文針對單片機(jī)電路,從硬件和固件的角度提出了一些較實用的低功耗設(shè)計方法。
參考文獻(xiàn)
[1]徐曉磊.單片機(jī)系統(tǒng)的低功耗設(shè)計與應(yīng)用[J].電測與儀表,2000,418(37):28~31.
[2]胡儉波.單片機(jī)系統(tǒng)的超低功耗設(shè)計[J].工業(yè)控制計算機(jī),2001(10):65~68.