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