全球?qū)?ldquo;綠色”科技和能源使用效率的需求推動(dòng)著新一代超低功耗無(wú)線網(wǎng)絡(luò)的發(fā)展。這種新一代網(wǎng)絡(luò)正在不斷發(fā)展以用于工業(yè)和控制應(yīng)用中基于傳感器的遠(yuǎn)程系統(tǒng);此外,它也促使更多應(yīng)用更好地使用無(wú)須任何網(wǎng)絡(luò)電纜或電源線的真正無(wú)線解決方案。
用于監(jiān)視和控制的基于傳感器網(wǎng)絡(luò)并非新概念,現(xiàn)有技術(shù)可實(shí)現(xiàn)有線和專有無(wú)線系統(tǒng)。由于有線方案廉價(jià)又簡(jiǎn)便,因而得以廣泛使用;無(wú)線方案,與之相對(duì),僅限用于一些特定的應(yīng)用。
如今,采用僅需極少功耗的設(shè)計(jì),可使開(kāi)發(fā)這些類型的無(wú)線系統(tǒng)成為可能。新一代無(wú)線網(wǎng)絡(luò)可依靠其電池工作更長(zhǎng)時(shí)間,并且在應(yīng)用的生命周期中僅需很少或者根本無(wú)須維護(hù)。未來(lái),能量收集甚至可以提供所需能源,而不再需要電池。.
本文將著重介紹新一代嵌入式單片機(jī)所具有的各種超低功耗控制功能,以及工程師如何利用這些功能延長(zhǎng)無(wú)線傳感器節(jié)點(diǎn)中電池的預(yù)期壽命。
功耗管理功能
那么,什么是“低功耗”呢?在繼續(xù)之前,讓我們首先討論一些術(shù)語(yǔ)。“能量”與所做功的總量相關(guān),而“功率”測(cè)量的是做功的速率(單位時(shí)間使用的能量)。在電子學(xué)中,能量=功率×時(shí)間,功率=電壓×電流。因而,我們所要關(guān)注的關(guān)鍵系統(tǒng)參數(shù)為電壓、電流和時(shí)間。具體來(lái)說(shuō),就是應(yīng)用在多大電壓下運(yùn)行,要消耗多少電流,以及要運(yùn)行多久?
從單片機(jī)的角度來(lái)研究這一問(wèn)題,我們首先需要探討新型單片機(jī)的各種功耗模式。
1 功耗模式
根據(jù)處理需求,應(yīng)用具有一組顯著不同的預(yù)設(shè)工作模式。嵌入式單片機(jī)可利用其眾多外設(shè)中的一個(gè)來(lái)采樣周圍環(huán)境的信號(hào)。在外設(shè)收集到一定數(shù)量的采樣之前,單片機(jī)可能無(wú)其他事要做。那么,單片機(jī)可能會(huì)在每次數(shù)據(jù)采樣之間“休眠”或進(jìn)入超低功耗待機(jī)模式。一旦應(yīng)用程序讀到了足夠多的數(shù)據(jù)采樣,單片機(jī)即可輕松切換至“全速運(yùn)行”模式,此時(shí)單片機(jī)被喚醒并以最大工作速度運(yùn)行。
單片機(jī)通常會(huì)接收到某種類型的喚醒事件,才會(huì)從各種低功耗模式中退出。喚醒事件可由諸如I/O引腳電平翻轉(zhuǎn)等外部激勵(lì)信號(hào)或諸如定時(shí)器外設(shè)產(chǎn)生的中斷事件等內(nèi)部處理器活動(dòng)觸發(fā)。單片機(jī)所支持的具體功耗模式有所不同,但通常各種功耗模式總有一些共同點(diǎn)。典型的功耗模式如下:
● “始終運(yùn)行”模式
● “休眠”或“待機(jī)”模式,此時(shí)保持對(duì)存儲(chǔ)器供電
● “深睡”或“深度休眠”模式,此時(shí)存儲(chǔ)器斷電,以最大程度節(jié)省功耗。
2 “始終運(yùn)行”模式
“始終運(yùn)行”模式嵌入式系統(tǒng)由持續(xù)供電且處于運(yùn)行狀態(tài)的器件構(gòu)成。這些系統(tǒng)的平均功耗需求極有可能在亞毫安范圍內(nèi),從而直接限制了單片機(jī)所能達(dá)到的處理性能。幸運(yùn)的是,新一代嵌入式單片機(jī)具有動(dòng)態(tài)控制其時(shí)鐘切換頻率的功能,因?yàn)樵跓o(wú)須較高計(jì)算能力的情況下,有助于減少工作電流消耗。
3 待機(jī)模式
在“待機(jī)”模式下,系統(tǒng)工作或處于低功耗非活動(dòng)模式。在這些系統(tǒng)中,工作和待機(jī)電流消耗都非常重要。在大多數(shù)待機(jī)模式系統(tǒng)中,由于保持對(duì)單片機(jī)存儲(chǔ)器通電,雖然電流消耗顯著減少,但仍可保持所有的內(nèi)部狀態(tài)及存儲(chǔ)器內(nèi)容。此外,可在數(shù)秒內(nèi)喚醒單片機(jī)。通常,此類系統(tǒng)在大多數(shù)時(shí)間處于低功耗模式,但仍需具備快速啟動(dòng)能力來(lái)捕捉外部或?qū)r(shí)間要求極高的事件。保持對(duì)存儲(chǔ)器的供電有助于保持軟件參數(shù)完整性以及應(yīng)用程序軟件的當(dāng)前狀態(tài)。從功耗模式退出的典型啟動(dòng)時(shí)間通常在5~10μs范圍內(nèi)。
4 深度休眠模式
在深度休眠或“深睡”模式系統(tǒng)中,系統(tǒng)全速運(yùn)行或處于可大幅節(jié)省功耗的“深度休眠”模式。由于該模式通過(guò)完全關(guān)斷嵌入式單片機(jī)內(nèi)核(包括片上存儲(chǔ)器)來(lái)最大程度節(jié)省能耗,因而尤為引人注目。由于在該模式下存儲(chǔ)器斷電,因此必須在進(jìn)入深度休眠模式前將關(guān)鍵信息寫入非易失性存儲(chǔ)器。該模式使單片機(jī)的功耗降至絕對(duì)最小值,有時(shí)低至20nA。此外,喚醒單片機(jī)后需重新初始化所有存儲(chǔ)器參數(shù),這樣會(huì)延長(zhǎng)喚醒反應(yīng)總時(shí)間。從該模式退出的典型啟動(dòng)時(shí)間通常在200~300μs范圍內(nèi)。
在這些超低功耗模式系統(tǒng)中,電池的壽命通常由電路中其他元件消耗的電流決定。因此,應(yīng)注意不僅要關(guān)注單片機(jī)消耗的電流,而且要關(guān)注PCB(印刷電路板)上其他元件消耗的電流。例如,如果可能,設(shè)計(jì)人員可使用陶瓷電容來(lái)替代鉭電容,因?yàn)楹笳叩穆╇娏魍ǔ]^高。設(shè)計(jì)人員還可以決定在應(yīng)用處于低功耗狀態(tài)下給哪些其他電路供電。
利用功耗模式的優(yōu)勢(shì)
接下來(lái),考慮一種具有代表性的情形,在這種情況下,選擇不同單片機(jī)功耗模式對(duì)系統(tǒng)所用總功率有巨大影響。以基本遠(yuǎn)程溫度傳感器為例,該應(yīng)用收集較長(zhǎng)時(shí)間段內(nèi)的數(shù)據(jù),可能運(yùn)用較為成熟的噪聲濾波算法對(duì)數(shù)據(jù)進(jìn)行處理,然后將單片機(jī)重新置于待機(jī)模式,直到需要更多采樣測(cè)量為止。它還采用無(wú)線射頻(RF)傳輸方式將溫度信息報(bào)告給中央控制臺(tái)。
對(duì)溫度進(jìn)行采樣需要使用MCU的片上模數(shù)轉(zhuǎn)換器(ADC),并且僅需適當(dāng)?shù)奶幚砟芰?。在噪聲濾波階段,單片機(jī)必須采用處理能力較高的模式來(lái)計(jì)算高級(jí)濾波算法,并盡快將結(jié)果存回存儲(chǔ)器。因此,單片機(jī)運(yùn)行并消耗功率的總時(shí)間縮短了。
每隔一段預(yù)定的時(shí)間間隔,單片機(jī)就會(huì)組合所有的采樣結(jié)果并采用RF收發(fā)器設(shè)備發(fā)送至中央控制臺(tái)。需要精確時(shí)序來(lái)確保無(wú)線傳感器在預(yù)先分配的時(shí)隙內(nèi)發(fā)送這一信息,從而允許同一系統(tǒng)中的多個(gè)無(wú)線傳感器節(jié)點(diǎn)協(xié)同工作。
我們?nèi)绾喂芾韱拘烟幚砥鞯念l率呢?通過(guò)配合使用定時(shí)器外設(shè)和集成32 kHz振蕩器電路,單片機(jī)能很精確地每秒產(chǎn)生一次中斷,從而保證喚醒時(shí)間準(zhǔn)確。此中斷事件還可以使單片機(jī)按預(yù)定的時(shí)間表向采樣緩沖區(qū)填充溫度數(shù)據(jù)。
單片機(jī)填充完溫度采樣緩沖區(qū)后,它將切換至處理器速度較高的模式,完成較為成熟的噪聲濾波算法計(jì)算,然后盡快返回休眠模式,以縮短工作時(shí)間。單片機(jī)采用同樣的實(shí)時(shí)時(shí)鐘功能來(lái)決定將捕捉到的采樣數(shù)據(jù)發(fā)送回中央控制臺(tái)的時(shí)間。確定單片機(jī)的最優(yōu)功耗模式以使總電流消耗最低取決于多個(gè)因素,下文將對(duì)此進(jìn)行討論。
在低功耗應(yīng)用中優(yōu)化功耗
要使總功耗最低,僅選擇單片機(jī)功耗最低的模式是不夠的。我們還必須確定單片機(jī)需要完成的每個(gè)任務(wù)的工作量——例如,采樣外部溫度傳感器。一旦確定每個(gè)任務(wù)的性能需求,我們還必須確定每個(gè)任務(wù)的最優(yōu)能源利用率。對(duì)于前面提到的公式:能量=時(shí)間×電壓×電流,由于系統(tǒng)總體需求和實(shí)際電源決定電壓值,因此我們通常無(wú)法改變公式中的電壓,這樣我們只能操作兩個(gè)參數(shù):時(shí)間和電流。我們需要權(quán)衡單片機(jī)的工作時(shí)間和電流消耗。下面將探討在執(zhí)行上述分析時(shí)要切記的一些特定于單片機(jī)的參數(shù)。
處理器喚醒
將單片機(jī)置于低功耗模式后,有一些外部源可將其喚醒。喚醒事件可通過(guò)USB事件、實(shí)時(shí)時(shí)鐘事件,甚至是I/O引腳上的外部觸發(fā)信號(hào)發(fā)生。單片機(jī)從低功耗“休眠”模式喚醒并開(kāi)始執(zhí)行代碼的時(shí)間非常重要。通常,我們努力使這個(gè)時(shí)間盡可能短,這也是我們之所以要在“休眠”和“深度休眠”工作模式之間選擇的原因。若每秒喚醒一次單片機(jī),由于從“休眠”模式喚醒時(shí),單片機(jī)可在10μs內(nèi)開(kāi)始執(zhí)行代碼,而無(wú)須首先初始化任何軟件存儲(chǔ)單元,因而該模式可能是最優(yōu)選擇。若單片機(jī)處于低功耗狀態(tài)的時(shí)間較長(zhǎng)——例如,數(shù)分鐘甚至數(shù)小時(shí)才喚醒一次,則“深度休眠”模式可能是最優(yōu)選擇。關(guān)鍵是要使單片機(jī)的總電流消耗最小。如果單片機(jī)處于低功耗關(guān)斷模式的時(shí)間較長(zhǎng),那么300μs 的喚醒時(shí)間與數(shù)分鐘或數(shù)小時(shí)的深度休眠時(shí)間相比就微不足道了。
系統(tǒng)級(jí)喚醒事件的另一個(gè)絕佳示例,可采用通過(guò)串行接口連接到處理器的外部RF芯片進(jìn)行演示。不使用處理器時(shí),可將其置于某個(gè)低功耗狀態(tài)下,僅保持RF芯片運(yùn)行。由于新一代RF芯片的邏輯僅負(fù)責(zé)查找進(jìn)入的RF數(shù)據(jù)包,因此在工作狀態(tài)下消耗的電流很小。一旦接收到與所分配給該單元的地址相關(guān)的有效數(shù)據(jù)包,就將喚醒單片機(jī)開(kāi)始處理信息。此類功耗模式機(jī)制較常用于基于射頻網(wǎng)絡(luò)的解決方案中,諸如那些基于ZigBee無(wú)線協(xié)議的解決方案。
時(shí)鐘頻率
單片機(jī)從外部或內(nèi)部時(shí)鐘源獲取系統(tǒng)時(shí)鐘頻率。單片機(jī)采用該時(shí)鐘頻率并將其分頻以得到應(yīng)用程序軟件所需的工作時(shí)鐘頻率。較低的頻率通常等同于較低的功耗。有時(shí),單片機(jī)還可以采用鎖相環(huán)將外部時(shí)鐘頻率倍頻。外部時(shí)鐘信號(hào)通常來(lái)自晶振或稱為晶體振蕩器。
當(dāng)器件進(jìn)入低功耗模式時(shí),單片機(jī)還可以禁止輸入晶體放大器電路,這樣也許可節(jié)省幾毫安的電流,但會(huì)以恢復(fù)正常工作狀態(tài)時(shí)延長(zhǎng)振蕩器的導(dǎo)通時(shí)間(由于外部晶振的起振延時(shí))為代價(jià)。然而,有些單片機(jī)具有采用雙速啟動(dòng)模式的能力,在這種模式下,單片機(jī)將使用內(nèi)部振蕩器立即開(kāi)始運(yùn)行,并在更精確的外部時(shí)鐘源有足夠時(shí)間穩(wěn)定后,自動(dòng)切換至外部時(shí)鐘源。
單片機(jī)控制自身時(shí)鐘頻率的能力允許軟件工程師在保證總電流消耗最少的情況下,選擇適合于特定任務(wù)的時(shí)鐘速度。因此,工程師需要評(píng)估能量公式中的時(shí)間×電流元素,以確定哪種方案比較好:在較短時(shí)間段內(nèi)全速運(yùn)行,在較長(zhǎng)時(shí)間段內(nèi)較慢運(yùn)行,或者選個(gè)中間速度。
實(shí)時(shí)時(shí)鐘
在本文所述的遠(yuǎn)程無(wú)線傳感器應(yīng)用示例中,系統(tǒng)需要保持精確的時(shí)間觀念。除了系統(tǒng)時(shí)鐘外,還可采用實(shí)時(shí)時(shí)鐘和日歷(RTCC)外設(shè)輕松實(shí)現(xiàn)這一點(diǎn)。RTCC的主要功能是跟蹤日期和時(shí)間。在本文的情形中,RTCC對(duì)于控制功耗模式非常有用。RTCC還有助于單片機(jī)安排精確的喚醒事件、觸發(fā)采樣測(cè)量或發(fā)起與中央控制臺(tái)的RF同步。
在系統(tǒng)中實(shí)現(xiàn)RTCC有多種方法??蓪S肦TCC芯片連接至單片機(jī);采用集成32kHz晶振及基本計(jì)時(shí)軟件;以及使用單片機(jī)內(nèi)的專用RTCC外設(shè)。對(duì)系統(tǒng)成本的限制通常第一時(shí)間就排除了第一種選擇。對(duì)后兩種的選擇通常由單片機(jī)應(yīng)用的其他需求以及一定程度的成本限制決定。本次討論將采用第二種方法,即32kHz振蕩器與一些非?;镜能浖?。
外部32kHz晶振驅(qū)動(dòng)電路與16位定時(shí)器配合使用,來(lái)每秒喚醒一次處理器。每秒喚醒一次處理器來(lái)更新RTCC定時(shí)器,也可能測(cè)量當(dāng)前溫度,然后處理器返回到相應(yīng)的低功耗模式。此方法提供了一種“導(dǎo)通”占空比非常小的機(jī)制,器件運(yùn)行的大多數(shù)時(shí)間僅消耗600nA的電流。
構(gòu)建RF無(wú)線傳感節(jié)點(diǎn)
高集成度的單芯片通用ISM帶寬FSK收發(fā)器解決方案與低功耗單片機(jī)配合工作,簡(jiǎn)化了無(wú)線傳感應(yīng)用的實(shí)現(xiàn)。在本例中,單片機(jī)采用SPI接口作為與射頻設(shè)備連接的串行通信端口。還要使用單片機(jī)來(lái)初始化收發(fā)器設(shè)備的射頻配置設(shè)置。配置完成后,收發(fā)器設(shè)備將通過(guò)來(lái)自單片機(jī)的非?;镜拇忻钔瓿纱蠖鄶?shù)RF數(shù)據(jù)發(fā)送和接收操作。簡(jiǎn)單地組合這兩種技術(shù),即可構(gòu)建一種基本網(wǎng)絡(luò),遠(yuǎn)程監(jiān)視各種數(shù)字或模擬無(wú)線傳感器節(jié)點(diǎn),如本文中的遠(yuǎn)程溫度傳感器。
考慮無(wú)線系統(tǒng)的總功耗預(yù)算,我們最關(guān)注的數(shù)據(jù)手冊(cè)參數(shù)為射頻系統(tǒng)的發(fā)送功耗、接收功耗、待機(jī)功耗以及啟動(dòng)時(shí)間。了解了這些參數(shù)后,我們將能確定系統(tǒng)通過(guò)無(wú)線RF通道發(fā)送和接收數(shù)據(jù)所消耗的電流。開(kāi)發(fā)RF解決方案時(shí)還需注意的關(guān)鍵因素還有發(fā)送的數(shù)據(jù)長(zhǎng)度和安全性。以下部分將簡(jiǎn)要說(shuō)明這兩個(gè)因素。
RF發(fā)送時(shí)間
常常被忽視的一個(gè)重要參數(shù)是需要發(fā)送的RF數(shù)據(jù)包的長(zhǎng)度。事實(shí)上,RF發(fā)送時(shí)間對(duì)無(wú)線解決方案的性能、質(zhì)量和功耗影響很大。較短的數(shù)據(jù)包有助于減少對(duì)電源的能源需求,甚至可以縮小電池體積。在定義新的低功耗RF協(xié)議時(shí),必須牢記這一點(diǎn)。
我們已針對(duì)無(wú)線溫度傳感器設(shè)計(jì),評(píng)估了當(dāng)今可用的各種RF通信協(xié)議。諸如ZigBee、ZigBee Pro、Microchip的MiWi和MiWi P2P(點(diǎn)對(duì)點(diǎn))協(xié)議均已一一評(píng)估。由于本應(yīng)用的低功耗需求,我們決定采用非?;镜臅r(shí)分多址(Time Divisional Multi Access,TDMA)時(shí)間片協(xié)議機(jī)制。
通過(guò)在RF數(shù)據(jù)幀中分配預(yù)定義時(shí)隙并使用第一個(gè)時(shí)隙作為中央單片機(jī)發(fā)送的幀起始標(biāo)記,即可方便地確保整個(gè)傳感器監(jiān)視系統(tǒng)的精確時(shí)序,同時(shí)降低功耗。采用這種基本時(shí)間片機(jī)制,單片機(jī)和RF收發(fā)器可在生命周期的大多數(shù)時(shí)間內(nèi)處于低功耗待機(jī)模式。
安全性
意識(shí)到無(wú)線網(wǎng)絡(luò)所涉及的安全性問(wèn)題,大多數(shù)RF系統(tǒng)均采用了強(qiáng)大的算法來(lái)保護(hù)其數(shù)據(jù)。具有128位密鑰的高級(jí)加密標(biāo)準(zhǔn)(Advanced Encryption Standard,AES)確保了數(shù)據(jù)完整性以及系統(tǒng)抵抗黑客的能力,這兩者對(duì)于商業(yè)應(yīng)用至關(guān)重要??赏ㄟ^(guò)軟件實(shí)現(xiàn)AES安全性。對(duì)于需要使工作時(shí)間最短的無(wú)線傳感器節(jié)點(diǎn),能夠盡快執(zhí)行AES計(jì)算非常重要,因?yàn)楣?jié)點(diǎn)工作時(shí)的功耗最大。單片機(jī)可按需動(dòng)態(tài)更改處理功耗以幫助實(shí)現(xiàn)上述目標(biāo)。別說(shuō)是電池供電設(shè)備就是采用有線電源的系統(tǒng),要使AES計(jì)算盡可能快也同樣是不爭(zhēng)的事實(shí)。功耗對(duì)所有系統(tǒng)(有線或無(wú)線)的溫度、體積及成本均有影響。
系統(tǒng)成本
眾所周知,系統(tǒng)的總成本在設(shè)計(jì)任何系統(tǒng)(如無(wú)線溫度傳感器)的過(guò)程中始終起著非常重要的作用。確定無(wú)線單片機(jī)成本的關(guān)鍵因素是所需程序和數(shù)據(jù)存儲(chǔ)區(qū)的數(shù)量。傳感器網(wǎng)絡(luò)和相關(guān)產(chǎn)品的開(kāi)發(fā)人員希望采用存儲(chǔ)空間最優(yōu)的一系列單片機(jī)來(lái)滿足應(yīng)用程序的需求。開(kāi)發(fā)基于網(wǎng)絡(luò)協(xié)議層(如ZigBee)的較大應(yīng)用程序時(shí),需要較大的存儲(chǔ)空間——在有些情況下,大于250KB。若要實(shí)現(xiàn)較為簡(jiǎn)單的傳輸協(xié)議,尤其是在對(duì)成本極度敏感的設(shè)計(jì)中,可使用單片機(jī)的許多功耗控制功能來(lái)最大程度降低成本和功耗。
硬件/軟件
本文中的設(shè)計(jì)示例組合使用了一片高集成度通用ISM帶寬FSK收發(fā)器芯片和一片超低功耗單片機(jī)。超低功耗PIC16LF1827單片機(jī)用在傳感器單元中,用于每秒測(cè)量一次模擬溫度傳感器,將結(jié)果存入數(shù)據(jù)緩沖區(qū),運(yùn)行復(fù)雜的噪聲濾波算法,然后采用RF收發(fā)器發(fā)送結(jié)果數(shù)據(jù)。出于安全性考慮,此信息采用AES算法保護(hù)并在已分配的預(yù)定時(shí)隙內(nèi)發(fā)送。此外,單片機(jī)在上電后初始化RF收發(fā)器射頻配置設(shè)置,并按需控制射頻設(shè)備的功耗模式。
結(jié)論
本文探討了輕松實(shí)現(xiàn)非?;镜牡凸臒o(wú)線傳感器網(wǎng)絡(luò)的過(guò)程。更好地理解超低功耗單片機(jī)的各種功耗管理功能,有助于系統(tǒng)工程師開(kāi)發(fā)“綠色”無(wú)線解決方案。