低功耗嵌入式系統的設計考量:設計實例及功耗性能權衡
賽普拉斯提供經預先測試、生產就緒的易用型應用編程接口(API)來簡化對PSoC的編程。但在調用API時,需要多個時鐘周期在協議棧中存儲當前狀態,隨后執行API,最后再退出API。如果要降低功耗,每一個時鐘轉換都得考慮。要減少時鐘轉換數量,需要直接寫入寄存器,而不是調用API來完成。此外,賽普拉斯還可為您提供簡單易使的宏命令,以完成寄存器寫入。
SPI_TX_FIFO_WR_REG = WRITE | RX_ADDR_P0;
SPI_TX_FIFO_WR_REG = 0x12;
SPI_TX_FIFO_WR_REG = 0x34;
SPI_TX_FIFO_WR_REG = 0x56;
SPI_TX_FIFO_WR_REG = 0x78;
SPI_TX_FIFO_WR_REG = 0x9A;
WFI;
SPI_TX_FIFO_WR_REG = ACTIVATE;
SPI_TX_FIFO_WR_REG = 0x73;
WFI;
在該代碼中,沒有使用隨PSoC創建器提供的“SPI_SpiUartWriteTxData”,直接更新SCB FIFO發送數據。在加載具有所需值的FIFO后,調用“WFI”裝配函數使PSoC 4進入睡眠模式。當SPI發送完FIFO中存儲的全部數據后,它可生成一個中斷來喚醒PSoC 4,并重復這個過程。
與LCD顯示屏相似,PSoC創建器提供用于簡化編程的API。要優化系統實現低功耗,這些API可采用所需的寄存器寫入代替。使用這些寄存器寫入可減少系統周期數,從而可降低功耗:
CY_SET_REG32(CYREG_LCD_DATA02, 0x10000000);
CY_SET_REG32(CYREG_LCD_DATA03, 0x10000011);
電池使用壽命:
因為我們知道Q = CV …(i)
這里C = 2200 x 10-6 F x 4 = 8800 x 10-6,V = 3 V
Q = 8800 x 10-6 x 3 = 26.4 mC
發送器可從全部充滿電的大容量電容器發送回顯信息50次。系統在電壓達到1.65V時開始工作。因此系統使用的電荷量為:
Qused = 8800 x 10-6 x (3 – 1.65) = 11.88 mC …(ii)
Qper ping = Qused/發送回顯信息的次數= 11.88 mC / 50 = 236 μC …(iii)
標準鈕扣電池的額定容量為200mAHr。
由于我們知道Q = I x t
因此Qbatt = 200 x 10-3 x 1Hr = 200 x 10-3 x 3600s = 720 C
由于存在各種物理限制,因此我們永遠也無法完全使用電池的能量。假如我們能夠使用電池所存儲總能量的50%。
那么Qbatt-available = 720 x 0.5 = 360 C
電池能夠支持的發送回顯信息次數為 = Qbatt-available / Qper ping = 360 / (236 x 10-6) = 1.525 x 106
假如每天發送20次回顯信息,電池使用壽命就為= 1.525 x 106 / 20
= 76.2 x 103天
= 76.2 x 103 / 365年
= 208年(不可能)
整個系統的實際有效電池使用時間由電池的存儲壽命決定,而非系統本身的功耗。
評論