【導讀】關(guān)于低功耗嵌入式的設計,之前介紹過(guò)創(chuàng )建低功耗系統的設計考量,本文主要講述低功耗嵌入式系統設計的設計實(shí)例及低功耗系統性能之間的權衡。在本文中將提供一般設計考量的設計實(shí)例。
低功耗應用
1. 超低功耗遠程應用 — 這類(lèi)系統的要求包括能夠在一天的大部分時(shí)間里保持睡眠狀態(tài)。該系統需要在用戶(hù)輸入時(shí)喚醒,執行某些任務(wù)(比如發(fā)送一些命令)后,再進(jìn)入睡眠狀態(tài)。最大限度縮短所用時(shí)間可最大限度延長(cháng)電池使用壽命。
2. 心率監視器 — 這類(lèi)系統的要求包括能夠定期自動(dòng)喚醒CPU。時(shí)間間隔取決于該設備的工作狀態(tài),比如是否連接至人體。如果綁縛在人體上,它將以較短時(shí)間間隔讀取心率。如果沒(méi)有,它將在較長(cháng)時(shí)間間隔內喚醒,檢查是否綁縛到人體上,是否需要改變其工作狀態(tài)。
3. 無(wú)線(xiàn)傳感系統 — 這類(lèi)系統的要求包括能夠持續監控系統環(huán)境并發(fā)送數據到中央系統以進(jìn)一步處理和分析數據。該系統應該能夠在傳感器與中央系統互動(dòng)和通信期間最大限度降低電源損耗。
4. 機械按鈕替換(MBR)— MBR可用于采用電容式觸摸按鈕替換機械按鈕。該系統必須每隔50~100ms對觸摸按鈕進(jìn)行一次采樣,然后進(jìn)入睡眠模式以節省電源。
低功耗與性能的權衡
大多數低功耗系統都可節省電源。正如本系列文章第1部分所討論的那樣,我們可通過(guò)讓系統在較低時(shí)鐘速率下運行來(lái)降低動(dòng)態(tài)功耗。但這種變化會(huì )降低系統響應輸入的能力。對于一些應用而言,這一時(shí)間間隔有時(shí)會(huì )造成危險。
為彌補這一時(shí)間間隔,應先確定它可以接受多長(cháng)的響應延時(shí),然后再設置系統時(shí)鐘,以確保實(shí)際時(shí)延不高于所需值。這樣可以以功耗為代價(jià),改善系統響應性。
低功耗嵌入式系統設計的實(shí)例
在本節中,我們將討論如何使用賽普拉斯提供的PSoC流程及其低功耗模式設計低功耗雙工通信系統。該系統的基本功能是遙控其它設備。本實(shí)例將演示低功耗鈕扣電池供電(使用PSoC 4構建)的發(fā)送器以及低功耗低成本2.4GHz收發(fā)器。
無(wú)線(xiàn)發(fā)送器不僅可使用鈕扣電池工作,而且還可觸發(fā)接收器的電源狀態(tài)(鎖定/打開(kāi))。在按下開(kāi)關(guān)頭兩秒鐘時(shí),它會(huì )顯示電流狀態(tài),然后在2秒鐘超時(shí)之后用反狀態(tài)發(fā)送回顯信息給接收器。如果接收器發(fā)回確認信號,隨后它就會(huì )更新閃存(用作EEPROM)中的狀態(tài)。
這里開(kāi)發(fā)的系統功耗很低,系統工作時(shí)間只受電池儲存壽命限制,與系統功耗無(wú)關(guān)。下面我們將介紹該系統發(fā)送器部分的設計
發(fā)送器:
該模塊發(fā)送鎖定狀態(tài)至接收端,等待響應,以使用新?tīng)顟B(tài)更新閃存。
在整個(gè)系統未使用時(shí),它會(huì )保持在“關(guān)斷”狀態(tài)。當用戶(hù)按下發(fā)送器上的開(kāi)關(guān)時(shí),整個(gè)系統的電源就會(huì )打開(kāi)。系統初始化后,PSoC 4會(huì )讀取自己的閃存行,獲得當前的鎖定狀態(tài),然后用該鎖定狀態(tài)更新該段LCD。接下來(lái)2秒鐘后,CPU會(huì )配置看門(mén)狗定時(shí)器,喚醒系統,然后再進(jìn)入深度睡眠低功耗模式。
2秒鐘的深度睡眠時(shí)間可用來(lái)為最終用戶(hù)提供兩種特性:
1. 濾除用戶(hù)誤按按鈕操作。
如果用戶(hù)在系統喚醒前釋放開(kāi)關(guān)(2秒鐘),系統會(huì )在不改變當前狀態(tài)的情況下返回低功耗模式。這種延遲可用作一種特性,允許用戶(hù)在不觸發(fā)狀態(tài)的情況下檢查當前狀態(tài)。為此,用戶(hù)可以短暫地按下開(kāi)關(guān),在屏幕上出現之前狀態(tài)后將其釋放。
[page]
低功耗嵌入式系統的設計考量:設計實(shí)例及功耗性能權衡

圖1
賽普拉斯提供經(jīng)預先測試、生產(chǎn)就緒的易用型應用編程接口(API)來(lái)簡(jiǎn)化對PSoC的編程。但在調用API時(shí),需要多個(gè)時(shí)鐘周期在協(xié)議棧中存儲當前狀態(tài),隨后執行API,最后再退出API。如果要降低功耗,每一個(gè)時(shí)鐘轉換都得考慮。要減少時(shí)鐘轉換數量,需要直接寫(xiě)入寄存器,而不是調用API來(lái)完成。此外,賽普拉斯還可為您提供簡(jiǎn)單易使的宏命令,以完成寄存器寫(xiě)入。
在該代碼中,沒(méi)有使用隨PSoC創(chuàng )建器提供的“SPI_SpiUartWriteTxData”,直接更新SCB FIFO發(fā)送數據。在加載具有所需值的FIFO后,調用“WFI”裝配函數使PSoC 4進(jìn)入睡眠模式。當SPI發(fā)送完FIFO中存儲的全部數據后,它可生成一個(gè)中斷來(lái)喚醒PSoC 4,并重復這個(gè)過(guò)程。
與LCD顯示屏相似,PSoC創(chuàng )建器提供用于簡(jiǎn)化編程的API。要優(yōu)化系統實(shí)現低功耗,這些API可采用所需的寄存器寫(xiě)入代替。使用這些寄存器寫(xiě)入可減少系統周期數,從而可降低功耗:
CY_SET_REG32(CYREG_LCD_DATA02, 0x10000000);
CY_SET_REG32(CYREG_LCD_DATA03, 0x10000011);
電池使用壽命:


相關(guān)閱讀:
設計低功耗嵌入式系統需要考量的因素(一):一般設計考量
黑客比你更懂嵌入式保護!怎么防范?
技術(shù)詳解:利用嵌入式降低電池功耗