如何利用嵌入式單片機延長無線傳感器節(jié)點中電池的預期壽命
本文將著重介紹新一代嵌入式單片機所具有的各種超低功耗控制功能,以及工程師如何利用這些功能延長無線傳感器節(jié)點中電池的預期壽命。
功耗管理功能
那么,什么是"低功耗"呢?在繼續(xù)之前,讓我們首先討論一些術語。"能量"與所做功的總量相關,而"功率"測量的是做功的速率(單位時間使用的能量)。在電學中,能量 = 功率×時間,功率 =電壓×電流。因而,我們所要關注的關鍵系統(tǒng)參數(shù)為電壓、電流和時間。具體來說,就是我的應用在多大電壓下運行,要消耗多少電流,以及要運行多久?
從單片機的角度來研究這一問題,我們首先需要探討新型單片機的各種功耗模式。
功耗模式
根據(jù)處理需求,應用具有一組顯著不同的預設工作模式。嵌入式單片機可利用其眾多外設中的一個來采樣來自周圍環(huán)境的信號。在外設收集到一定數(shù)量的采樣之前,單片機可能無其他事要做。那么單片機可能會在每次數(shù)據(jù)采樣之間"休眠"或進入超低功耗待機模式。一旦應用程序讀到了足夠多的數(shù)據(jù)采樣,單片機即可輕松切換至"全速運行"模式,此時單片機被喚醒并以最大工作速度運行。
單片機通常會接收到某種類型的喚醒事件,才會從各種低功耗模式退出。喚醒事件可由諸如I/O引腳電平翻轉等外部激勵信號或諸如定時器外設產生的中斷事件等內部處理器活動觸發(fā)。單片機所支持的具體功耗模式有所不同,但通常各種功耗模式總有一些共同點。典型的功耗模式如下:
●"始終運行"模式
●"休眠"或"待機"模式,此時保持對存儲器供電
●"深睡"或"深度休眠"模式,此時存儲器斷電,以最大程度節(jié)省功耗 .
"始終運行"模式
"始終運行"模式嵌入式系統(tǒng)由持續(xù)供電且處于運行狀態(tài)的器件構成。這些系統(tǒng)的平均功耗需求極有可能在亞毫安范圍內,從而直接限制了單片機所能達到的處理性能。幸運的是,新一代嵌入式單片機具有動態(tài)控制其時鐘切換頻率的功能,因為在無需較高計算能力的情況下,有助于減少工作電流消耗。
待機模式
在"待機"模式下,系統(tǒng)工作或處于低功耗非活動模式。在這些系統(tǒng)中,工作和待機電流消耗都非常重要。在大多數(shù)待機模式系統(tǒng)中,由于保持對單片機存儲器通電,雖然電流消耗顯著減少,但仍可保持所有的內部狀態(tài)及存儲器內容。此外,可在數(shù)秒內喚醒單片機。通常,此類系統(tǒng)在大
多數(shù)時間處于低功耗模式,但仍需具備快速啟動能力來捕捉外部或對時間要求極高的事件。保持對存儲器的供電有助于保持軟件參數(shù)完整性以及應用程序軟件的當前狀態(tài)。從功耗模式退出的典型啟動時間通常在 5 -10 μs范圍內。
深度休眠模式
在深度休眠或"深睡"模式系統(tǒng)中,系統(tǒng)全速運行或處于可大幅節(jié)省功耗的"深度休眠"模式。由于該模式通過完全關斷嵌入式單片機內核(包括片上存儲器)來最大程度節(jié)省能耗,因而尤為引人注目。由于在該模式下存儲器斷電,因此必須在進入深度休眠模式前將關鍵信息寫入非易失性存儲器。該模式使單片機的功耗降至絕對最小值,有時低至 20 nA.此外,喚醒單片機后需重新初始化所有存儲器參數(shù),這樣會延長喚醒反應總時間。從該模式退出的典型啟動時間通常在 200 - 300 μs范圍內。
在這些超低功耗模式系統(tǒng)中,電池的壽命通常由電路中其他元件消耗的電流決定。因此,應注意不僅要關注單片機消耗的電流,而且要關注 PCB(印刷電路板)上其他元件消耗的電流。例如,可能的話,設計人員可使用陶瓷電容來替代鉭電容,因為后者的漏電流通常較高。設計人員還可以決定在應用處于低功耗狀態(tài)下給哪些其他電路供電。
利用功耗模式的優(yōu)勢
接下來,考慮一種具有代表性的情形,在這種情況下,選擇不同單片機功耗模式對系統(tǒng)所用總功率有巨大影響。以基本遠程溫度傳感器為例,該應用收集較長時間段內的數(shù)據(jù),可能運用較為成熟的噪聲濾波算法對數(shù)據(jù)進行處理,然后將單片機重新置于待機模式,直到需要更多采樣測量為止。它還采用無線射頻(RF)傳輸方式將溫度信息報告給中央控制臺。
對溫度進行采樣需要使用MCU的片上模數(shù)轉換器(ADC),并且僅需適當?shù)奶幚砟芰Α?在噪聲濾波階段,單片機必須采用處理能力較高的模式來計算高級濾波算法,并盡快將結果存回存儲器。因此,單片機運行并消耗功率的總時間縮短了。
每隔一段預定的時間間隔,單片機就會組合所有的采樣結果并采用RF收發(fā)器設備發(fā)送至中央控制臺。需要精確時序來確保無線傳感器在預先分配的時隙內發(fā)送這一信息,從而允許同一系統(tǒng)中的多個無線傳感器節(jié)點協(xié)同工作。
我們如何管理喚醒處理器的頻率呢?通過配合使用定時器外設和集成32 kHz振蕩器電路,單片機能很精確地每秒產生一次中斷,從而保證喚醒時間準確。此中斷事件還可以使單片機按預定的時間表向采樣緩沖區(qū)填充溫度數(shù)據(jù)。
單片機填充完溫度采樣緩沖區(qū)后,它將切換至處理器速度較高的模式,完成較為成熟的噪聲濾波算法計算,然后盡快返回休眠模式,以縮短工作時間。單片機采用同樣的實時時鐘功能來決定將捕捉到的采樣數(shù)據(jù)發(fā)送回中央控制臺的時間。確定單片機的最佳功耗模式以使總電流消耗最低取決于多個因素,下文將對此進行討論。
在低功耗應用中優(yōu)化功耗
要使總功耗最低,僅選擇單片機功耗最低的模式是不夠的。我們還必須確定單片機需要完成的每個任務的工作量--例如,采樣外部溫度傳感器。一旦確定每個任務的性能需求,我們還必須確定每個任務的最佳能源利用率。對于前面提到的公式:能量 = 時間 × 電壓 × 電流,由于系統(tǒng)總體需求和實際電源決定電壓值,因此我們通常無法改變公式中的電壓,這樣我們只能操作兩個參數(shù),時間和電流。我們需要權衡單片機的工作時間和電流消耗。下面將探討在執(zhí)行上述分析時要切記的一些特定于單片機的參數(shù)。
處理器喚醒
將單片機置于低功耗模式后,有一些外部源可將其喚醒。喚醒事件可通過USB事件、實時時鐘事件,甚至是I/O引腳上的外部觸發(fā)信號發(fā)生。單片機從低功耗"休眠"模式喚醒并開始執(zhí)行代碼的時間非常重要。通常,我們努力使這個時間盡可能短,這也是我們之所以要在"休眠"和"深度休眠"工作模式之間選擇的原因。若每秒喚醒一次單片機,由于從"休眠"模式喚醒時,單片機可在10 μs內開始執(zhí)行代碼,而無需首先初始化任何軟件存儲單元,因而該模式可能是最佳選擇。若單片機處于低功耗狀態(tài)的時間較長--例如,數(shù)分鐘甚至數(shù)小時才喚醒一次,則"深度休眠"模式可能是最佳選擇。關鍵是要使單片機的總電流消耗最小。如果單片機處于低功耗關斷模式的時間較長,那么 300 μs的喚醒時間與數(shù)分鐘或數(shù)小時的深度休眠時間相比就微不足道了。
系統(tǒng)級喚醒事件的另一個絕佳示例,可采用通過串行接口連接到處理器的外部RF芯片進行演示。不使用處理器時,可將其置于某個低功耗狀態(tài)下,僅保持 RF芯片運行。由于新一代 RF芯片的邏輯僅負責查找進入的RF數(shù)據(jù)包,因此在工作狀態(tài)下消耗的電流很小。一旦接收到與所分配給該單元的地址相關的有效數(shù)據(jù)包,就將喚醒單片機開始處理信息。此類功耗模式機制較常用于基于射頻網絡的解決方案中,諸如那些基于ZigBee .無線協(xié)議的解決方案。
時鐘頻率
單片機從外部或內部時鐘源獲取系統(tǒng)時鐘頻率。單片機采用該時鐘頻率并將其分頻以得到應用程序軟件所需的工作時鐘頻率。較低的頻率通常等同于較低的功耗。有時,單片機還可以采用鎖相環(huán)(Phase Locked Loop,PLL)將外部時鐘頻率倍頻。外部時鐘信號通常來自晶振或稱為晶體振蕩器。
當器件進入低功耗模式時,單片機還可以禁止輸入晶體放大器電路,這樣也許可節(jié)省幾毫安的電流,但會以恢復正常工作狀態(tài)時延長振蕩器的導通時間(由于外部晶振的起振延時)為代價。然而,有些單片機具有采用雙速啟動模式的能力,在這種模式下,單片機將使用內部振蕩器立即開始運行,并在更精確的外部時鐘源有足夠時間穩(wěn)定后,自動切換至外部時鐘源。
評論