引言
近幾年來,隨著電子技術(shù)、信息技術(shù)的發(fā)展和數(shù)字化產(chǎn)品的普及,嵌入式系統(tǒng)被廣泛應(yīng)用到汽車工業(yè)、網(wǎng)絡(luò)、手持通信設(shè)備、國防軍事、消費電子和自動化控制等各個領(lǐng)域。同時,嵌入式系統(tǒng)設(shè)計中的功耗問題也正受到普遍的關(guān)注。嵌入式系統(tǒng)一般是由電池來供電的,系統(tǒng)采用低功耗設(shè)計,不僅能夠延長電池的壽命,而且可以降低系統(tǒng)的熱耗,對提高可靠性與穩(wěn)定性有著重要意義。在這種應(yīng)用背景下,Infineon、Freescale、Atmel、TI等知名單片機(jī)生產(chǎn)廠家紛紛推出功能強(qiáng)大的低功耗單片機(jī)。
1 單片機(jī)功耗的來源
單片機(jī)是一種集成度較高的芯片。通常,集成電路的功耗分為靜態(tài)功耗和動態(tài)功耗2部分。靜態(tài)是指“0”和“1”的恒定狀態(tài),當(dāng)電路沒有狀態(tài)翻轉(zhuǎn)時產(chǎn)生的功耗為靜態(tài)功耗;動態(tài)是指“0”和“1“的跳變狀態(tài),當(dāng)電路狀態(tài)翻轉(zhuǎn)時產(chǎn)生的功耗為動態(tài)功耗。
目前絕大多數(shù)的單片機(jī)都采用CMOS工藝。CMOS電路為電壓控制型,一般情況下靜態(tài)功耗極小。它的動態(tài)功耗由瞬時導(dǎo)通功耗和電容充放電功耗2部分組成。在單片機(jī)運行時,開關(guān)電路不斷地由“1”變“0”,由“0”變“1”,內(nèi)部電容不停地充放電,要實現(xiàn)開關(guān)電路快速關(guān)斷和電容的快速充放電,需要比較大的動態(tài)電流[3]。因此CMOS的動態(tài)功耗要遠(yuǎn)大于靜態(tài)功耗,是單片機(jī)功耗的主要來源。動態(tài)功耗主要受工作頻率和工作電壓的影響。
通過對單片機(jī)功耗來源的分析,可得出結(jié)論:要降低單片機(jī)系統(tǒng)的功耗,可以采取降低工作頻率、降低工作電壓和盡可能使電路處于靜態(tài)的方法。事實上,現(xiàn)有的低功耗單片機(jī)也都提供了靈活的時鐘方案、電源管理方案,以及低功耗工作模式,在硬件上為降低工作頻率、降低工作電壓和使電路處于靜態(tài)工作狀態(tài)提供了可能。
2 TLE7810簡介
TLE7810是Infineon公司推出的一款高集成度低成本智能功率芯片,主要應(yīng)用于汽車工業(yè)。其功能模塊圖如圖1所示。它集成了1個支持片上調(diào)試功能并且與標(biāo)準(zhǔn)8051單片機(jī)兼容的8位微控制器XC866,以及1個SBC(System Basis Chip,系統(tǒng)基礎(chǔ)芯片)。這樣的結(jié)構(gòu)設(shè)計可以滿足汽車工業(yè)盡乎苛刻的應(yīng)用條件。同其他廠家的微控制器類似,Infineon XC866也提供了靈活的時鐘方案、電源管理方案和低功耗工作模式,本文對這些功能就不再多做介紹,而是著重介紹TLE7810特有的SBC的低功耗設(shè)計方案。
圖1 TLE7810功能模塊圖
從圖1中可以看出,SBC配備1個LIN收發(fā)器、1個低壓差電壓調(diào)節(jié)器、2個用于驅(qū)動繼電器的低邊開關(guān)、1個用于驅(qū)動LED的高邊開關(guān)、1個霍爾傳感器電源、5個喚醒輸入,以及1個標(biāo)準(zhǔn)的16位SPI(Serial Peripheral Interface,串行外設(shè)接口)接口等。通過SPI接口,XC866可以發(fā)送1個16位的命令來控制SBC的運行, SBC同時向XC866回復(fù)1個16位的數(shù)據(jù),指示SBC當(dāng)前的運行狀態(tài)。
3 SBC的低功耗設(shè)計方案
3.1 SBC集成的外設(shè)
SBC不僅將多個外設(shè)集成到1個芯片內(nèi)部,而且可以通過SPI接口控制這些外設(shè)的打開與關(guān)閉,根據(jù)實際應(yīng)用情況,可以靈活地控制這些外設(shè),以達(dá)到降低功耗的目的。
① LIN收發(fā)器。可以通過SPI命令將SBC的工作模式設(shè)置成“LIN Sleep”模式。在這個工作模式下,LIN收發(fā)器的內(nèi)部上拉電阻被關(guān)掉,以此來禁用LIN收發(fā)器,這樣就能夠減小一部分電流消耗。禁用的LIN收發(fā)器可以隨時通過主節(jié)點或其他從節(jié)點的LIN消息來激活。
② 低壓差電壓調(diào)節(jié)器。可以通過SPI命令將SBC的工作模式設(shè)置成“Sleep”模式。在這個工作模式下,該電壓調(diào)節(jié)器被關(guān)閉,以停止對微控制器供電,從而使系統(tǒng)進(jìn)入休眠狀態(tài),將功耗降到最小。
③ 高邊開關(guān)。高邊開關(guān)可以直接驅(qū)動LED。在不需要使用LED的場合,可以直接通過SPI命令將該開關(guān)關(guān)閉。
④ 霍爾傳感器電源。該電源可以直接為霍爾傳感器供電,驅(qū)動霍爾傳感器正常工作,也可以為其他一些設(shè)備,比如運算放大器供電。在不需要使用霍爾傳感器的場合,可以直接通過SPI命令將該電源關(guān)閉。
3.2 SBC的省電模式與喚醒測試
SBC可以在多個工作模式下工作,根據(jù)實際應(yīng)用情況,可以靈活地進(jìn)行工作狀態(tài)的切換。SBC提供了2種省電模式,“Sleep”模式和“Stop”模式。工作在這2種模式下,可以極大地降低系統(tǒng)的功耗。
[!--empirenews.page--]
3.2.1 SBC Sleep Mode
可以通過直接修改SPI命令來進(jìn)入該工作模式。在這個工作模式下,LIN收發(fā)器以及所有的內(nèi)部開關(guān)都被關(guān)閉,同時內(nèi)部的電壓調(diào)節(jié)器也被關(guān)閉,以停止對微控制供電。通過這種方式可以將系統(tǒng)的功耗降到最小??梢酝ㄟ^5個喚醒輸入引腳上的電平跳變或者LIN消息來退出該模式,將系統(tǒng)喚醒。被喚醒后,內(nèi)部的電壓調(diào)節(jié)器將自動激活,微控制器將產(chǎn)生1個復(fù)位信號,將系統(tǒng)復(fù)位。圖2為“Sleep”模式的測試波形。其中,曲線1為喚醒輸入引腳MON4的波形,曲線2為復(fù)位引腳RESET的波形。在“Sleep”模式下,MON4引腳的輸入為12 V高電平,RESET引腳輸出0 V低電平。當(dāng)MON4引腳的電平發(fā)生跳變,由高電平變?yōu)榈碗娖胶?,RESET引腳產(chǎn)生1個5 V高電平的復(fù)位信號,將系統(tǒng)喚醒并復(fù)位。從圖中可以看出這段喚醒時間持續(xù)約9.5 ms。根據(jù)進(jìn)一步的測量,在該模式下,系統(tǒng)的靜態(tài)電流約為9 mA。
圖2 SBC Sleep Mode 測試波形
3.2.2 SBC Stop Mode
需要先將XC866的工作模式設(shè)置成省電模式,再修改SPI命令才能進(jìn)入該工作模式。在這個工作模式下,LIN收發(fā)器以及所有的內(nèi)部開關(guān)也都被關(guān)閉,但是并不關(guān)閉電壓調(diào)節(jié)器,而是用微弱的靜態(tài)電流對微控制器供電,微控制器同時停止執(zhí)行指令??梢酝ㄟ^5個喚醒輸入引腳上的電平跳變或者LIN消息來退出該模式。圖3為“Stop”模式的測試波形。其中,曲線1為喚醒輸入引腳MON4的波形,曲線2為輸出引腳P0.5的波形。在“Stop”模式下,MON4引腳的輸入為12 V高電平,P0.5引腳輸出0 V低電平,當(dāng)MON4引腳的電平發(fā)生跳變,由高電平變?yōu)榈碗娖胶?,將系統(tǒng)喚醒,然后馬上讓P0.5引腳輸出5 V高電平。從圖中可以看出這段喚醒時間持續(xù)約265 μs。根據(jù)進(jìn)一步的測量,在該模式下,系統(tǒng)的靜態(tài)電流約為30 mA。與“Sleep”模式相比較,該模式不僅能夠極大地降低系統(tǒng)功耗,同時因為沒有關(guān)閉微控制器,能夠更快地將系統(tǒng)喚醒,而且喚醒后不產(chǎn)生復(fù)位信號,直接從停止的指令位置繼續(xù)執(zhí)行。
圖3 SBC Stop Mode 測試波形
4 TLE7810低功耗方案的應(yīng)用
TLE7810的一個具體應(yīng)用是電動車窗控制器?;赥LE7810的電動車窗控制器的硬件結(jié)構(gòu)框圖如圖4所示。其中,高邊開關(guān)(MON5引腳)為按鍵背光燈供電,霍爾傳感器電源(Supply引腳)同時為霍爾傳感器和運算放大器供電。
圖4 電動車窗控制器硬件結(jié)構(gòu)框圖
[!--empirenews.page--]
MON5引腳與Supply引腳的輸出電平由SPI命令直接控制。當(dāng)控制車窗升降的4個按鍵(MON1~MON4)未按下時,通過SPI命令控制MON5引腳輸出低電平,按鍵背光燈滅;當(dāng)有按鍵按下時,通過SPI命令控制MON5引腳輸出高電平,按鍵背光燈亮。當(dāng)電機(jī)處于停止?fàn)顟B(tài)時,通過SPI命令控制Supply引腳輸出低電平,關(guān)閉對霍爾傳感器與運算放大器的供電?;魻杺鞲衅魇窃陔姍C(jī)運轉(zhuǎn)時測量電機(jī)的轉(zhuǎn)速與轉(zhuǎn)向的,運算放大器用來對電機(jī)電流進(jìn)行采樣放大,因此在電機(jī)處于停止?fàn)顟B(tài)時這兩個外設(shè)都沒必要工作,關(guān)閉對它們的供電在一定程度上可以降低功耗。
當(dāng)后門側(cè)車窗在沒有收到任何由后車門按鍵發(fā)出的控制命令,也沒有收到任何由司機(jī)側(cè)車門通過LIN總線發(fā)出的命令時,可在延時一段時間后,直接通過SPI命令讓系統(tǒng)進(jìn)入“Sleep”模式。車窗控制器在正常工作模式下,系統(tǒng)電流約150 mA,而在該模式下,TLE7810內(nèi)部的電源模塊停止對所有負(fù)載供電,系統(tǒng)電流僅為9 mA,將控制器的功耗降到最小。休眠后,若司機(jī)側(cè)或者后門側(cè)按鍵重新發(fā)出命令,可將喚醒系統(tǒng),進(jìn)入正常工作狀態(tài)。
5 總結(jié)
本文分析了單片機(jī)功耗的來源,以Infineon TLE7810單片機(jī)為例,研究了TLE7810特有的SBC的低功耗設(shè)計方案,并結(jié)合具體電動車窗控制器的例子,簡單闡述了TLE7810低功耗設(shè)計方案的實際應(yīng)用。在復(fù)雜的實際應(yīng)用中,還需要綜合考慮系統(tǒng)硬件設(shè)計相應(yīng)的軟件,結(jié)合具體的應(yīng)用場合,選擇合適的低功耗設(shè)計方案,以達(dá)到降低系統(tǒng)功耗的目的。