為低功耗應(yīng)用選擇正確的uC外圍器件
設(shè)計人員可能會提出以下問題:是否能夠重新充電?尺寸能夠做到多?。康湫偷墓ぷ鲿r間是多少?速度必須多快?要連接哪種類型的外圍器件?這些答案將最終為確立設(shè)計標(biāo)準(zhǔn)和功率要求積累原始資料。
圖 1:典型 μC 環(huán)境中的器件
處理功率
首先應(yīng)該考慮 CPU 的處理功率,一般來說,CPU 是功耗最高的外圍器件。處理器全速運行時,耗電量非常大,因此 CPU 處于待機或關(guān)閉狀態(tài)的時間越多,電池壽命越長。例如,4 位處理器比 32 位處理器的功率消耗低;而處于休眠或停機狀態(tài)的任何位數(shù)的處理器均比工作中的處理器的功耗要低。因此,如果 32 位處理器執(zhí)行功能所耗的時間僅為 4 位處理器的1/10,那么,它在整個系統(tǒng)生命周期內(nèi)要少消耗 9/10 的功率。因此,大多數(shù)制造商建議以較高的頻率運行 CPU,迅速完成任務(wù),并立即返回到功耗最低的休眠狀態(tài)。總之,在選擇處理器速度時,要考慮能夠迅速處理預(yù)期工作量并盡可能長時間地處于休眠狀態(tài)。
其次應(yīng)考慮大多數(shù)便攜式應(yīng)用的中斷服務(wù)例程 (ISR)。ISR 會定期喚醒處理器執(zhí)行預(yù)排程序的或用戶啟動的任務(wù),然后讓處理器返回到休眠狀態(tài)。進(jìn)入和退出 ISR 所用的 CPU 時鐘周期越少越好。事實上,許多 ISR(例如端口 I/O)有多個標(biāo)志,這些標(biāo)志可能會觸發(fā)同一中斷。采用程序計數(shù)器相對尋址方式的處理器會大大縮短識別和處理適當(dāng)中斷源所需的必要周期-尤其是在鍵盤掃描應(yīng)用中。如果 ISR 編寫得好,通過限制喚醒 CPU、執(zhí)行任務(wù)和返回休眠狀態(tài)所需的程序分支,可以確保處理時間最短。采用中斷向量表的處理器中,程序計數(shù)器加載 ISR 地址,這種處理器有助于減少額外的程序分支,并降低功耗。自動上下文保存以及算術(shù)邏輯單元 (ALU) 標(biāo)志和功率模式的恢復(fù)功能也可以促進(jìn)節(jié)能。
此外,由于在低速或時鐘停止的環(huán)境中,動態(tài)內(nèi)核處理器不能保持?jǐn)?shù)據(jù)的完整性,因而應(yīng)盡可能使用靜態(tài)內(nèi)核處理器。
工作模式
休眠和“低功耗”模式也是必須考慮的重要問題。通過減慢喚醒時間實現(xiàn)低功耗狀態(tài)(或關(guān)閉對喚醒器件非常重要的功能)會增加功耗,而不是降低功耗。
大多數(shù)低功耗器件的休眠或空閑模式會關(guān)閉處理器和時鐘,通常流耗低于一微安。然后,需要 I/O 中斷把處理器從休眠模式喚醒。使用 32kHz 時鐘驅(qū)動定時器或?qū)崟r時鐘能以更靈活的方式喚醒處理器?;?2kHz 振蕩器的功耗不像“深度睡眠”模式那樣低,但它能以幾微安的電流提供時鐘功能。由于許多便攜式應(yīng)用需要實時時鐘功能,這種改進(jìn)可以讓系統(tǒng)選用多種不同的外圍器件。
需要注意的一點是,如果處理器必須使用 RESET 信號從停機狀態(tài)喚醒,它必須運行所有硬件初始化程序。事實上,即使處理器SRAM 中的內(nèi)容沒有改變且仍然能夠?qū)ぶ分袛?它也將不得不重新初始化處理器外圍器件,這將消耗能量。
振蕩器
在通過復(fù)位喚醒時,由于穩(wěn)定振蕩器晶體所花費的時間不同,內(nèi)部振蕩器能比外部振蕩器多執(zhí)行將近 1,000 條指令。例如,使用外部振蕩器的100 MIP 機器啟動、穩(wěn)定和處理指令需要的時間為1 毫秒。與此相比,同一臺機器僅需要1 微秒時間就可以使內(nèi)部振蕩器全速工作。讓外部振蕩器穩(wěn)定的時間里,內(nèi)部振蕩器可以完成加電,執(zhí)行 1000 條指令,然后恢復(fù)斷電狀態(tài)。這一時間通常已足夠找到中斷地址,并恢復(fù)斷電狀態(tài)。那么,為什么要考慮使用外部振蕩器呢?外部振蕩器通常在整個工作溫度范圍內(nèi)更準(zhǔn)確。事實上,在低功耗應(yīng)用中,嵌入式程序裝置經(jīng)常習(xí)慣對照外部振蕩器校準(zhǔn)內(nèi)部振蕩器。這是因為驅(qū)動外部振蕩器并使其達(dá)到速度所需的電路比內(nèi)部振蕩器消耗的功率更大。
選擇內(nèi)部振蕩器時應(yīng)慎重。雖然某些內(nèi)部振蕩器可以在數(shù)微秒內(nèi)喚醒處理器,但是,必須在經(jīng)過數(shù)毫秒,當(dāng)外部晶體達(dá)到穩(wěn)定之后, 才能以更高的速度運行,然后 CPU 時鐘才能切換到更高的頻率。例如,如果一個 100 MIP 的處理器有一個 20kHz 的內(nèi)部時鐘,該時鐘與外部振蕩器的 1 MHz 時鐘同時啟動,內(nèi)部振蕩器將仍然能夠執(zhí)行 999 條指令,而更高速度的處理器用同樣的時間只能執(zhí)行 20 條指令。
定時器
利用好定時器有助于在處理器保持待機狀態(tài)的情況下實現(xiàn)系統(tǒng)處理功能。由于定時器功耗非常小,因此這有助于大大降低功耗。應(yīng)該使用實時時鐘模塊接受 32kHz 計時器定時器輸入和設(shè)置不同時間間隔的“警報”或中斷,在無需處理器干預(yù)的情況下,使計時器計數(shù)增加。同樣,應(yīng)該使用影子寄存器更新和比較來自 ISR 的值。一旦寄存器讀到有效的預(yù)編程值,即觸發(fā) ISR,使處理器脫離休眠或待機狀態(tài),而不需要 CPU 尋找 ISR 地址、更新周期或比較值。
管理開銷
管理開銷系統(tǒng)監(jiān)視程序、監(jiān)管工作有助于防范不安全的狀況,有關(guān)器件包括電壓監(jiān)控器和看門狗定時器。由于數(shù)字電路依賴觸發(fā)器或從負(fù)到正(或相反亦然)狀態(tài)的轉(zhuǎn)換,因此,即使工作電壓有稍小的下降,也可能會意外觸發(fā) RESET 條件,從而造成系統(tǒng)無法工作。電力減弱保護作為電壓監(jiān)控的一部分,一般用于確保電壓瞬變不會強制處理器進(jìn)入和退出RESET 狀態(tài)。
只要有可能,在電壓監(jiān)控解決方案中應(yīng)采用不可屏蔽的中斷 (NMI) 來識別電壓瞬變。這種方法讓用戶能隨心所欲地設(shè)定電壓觸發(fā)的門限電平,無需系統(tǒng)復(fù)位條件,其功耗一般比模擬-數(shù)字轉(zhuǎn)換器 (ADC) 通道更低。
評論