wifi ble二合一芯片esp32 c2量產樂鑫方案深圳代理商嵌入式系統能耗優化,移動互聯網和物聯網等產業的快速發展,使嵌入式系統的能耗管理技術成為研究和用熱點。能耗管理策略和案已經成為嵌入式系統軟硬件設計中的一項重要內容。本文將分析嵌入式系統的能耗模型和能管理技術,wifi ble二合一芯片esp32 c2量產樂鑫方案深圳代理商討論嵌入式系統能耗管理方法。
嵌入式系統能耗估計
如圖7.1 所示,嵌入式系統包括處理器和板上器件。系統工作時總能耗是處理器能耗與板上所有器件的能耗之和。
根據能量計算公式,能量 E 與功率 P 和時間 T 的關系如下:
E= P x T (8.2)
器件功率 P 由靜態功率 Ps和動態功率 Pd組成,動態功率通常遠大于靜態功率。處理器或其他器件上電后處于不工作狀態時的功率為靜態功率。例如,串口沒有數據傳輸、存儲芯片沒有被訪問,以及處理器處于睡眠狀態時的功率就是靜態功率。處理器運行程序和器件處于工作狀態時增加的功率稱為動態功率??偣β时硎救缦?
P= Ps + Pd (8.3)
為了有效管理嵌入式系統的能耗,處理器內核通常支持多級功率模式。例如S3C2410 ARM 處理器支持正常(Normal)、低速(Slow)、空閑(Idle)三種工作狀態正常狀態功率大,空閑狀態時只有靜態功率。wifi ble二合一芯片esp32 c2量產樂鑫方案深圳代理商處理器內部外設和板上器件通常支持靜態和動態兩種工作狀態。如果處理器能夠控制板上器件的供電和工作時鐘,則可以管理系統中處理器芯片以外的器件的功耗狀態。
程序運行期間,處理器可能處于正常運行狀態、低速運行狀態或者空閑狀態,外部器件也可能處于靜態和動態工作狀態。設某程序運行時間為 Ttotal,處理器的靜態以耗為Pcs,處理器K 個動態功耗狀態的功耗為 Pkcd,系統中 N 個外部芯片的靜態功耗為Pnps、動態功耗為 Pnpd。如果程序運行期間處理器處于k狀態的時間為Tkc,第n器件處于動態狀態的時間為Tnp,則系統運行程序時總的能耗 Etotal如下;
Etotal=Ttotal x (Pcs + Pnps ) + (Tkc x Pkcd) + (Tnp x Pnpd) (8.4)
式(8.4)中,一項是系統的靜態能耗,一項是處理器的動態能耗,第三順是處理器外部器件的動態能耗。
從式(8.4)可見,優化系統能耗的途徑是減少程序運行時各芯片動態工作的時間,以及降低芯片的動態功耗。
嵌入式系統能耗優化
減少器件動態工作時間和動態功耗是程序中優化系統功耗的主要途徑。在程序運行過程中,wifi ble二合一芯片esp32 c2量產樂鑫方案深圳代理商處理器根據任務中的計算負擔以及所需要使用外設和外部器件的情況,選擇自身工作時的功耗模式,控制外設和外部器件的工作狀態。
1.處理器能耗優化
(1)工作頻率調整
數字電路的功耗與時鐘頻率成正比。降低處理器的工作頻率,可以降低處理器的功率。處理器的時鐘控制和管理單元提供了改變工作頻率及管理處理器內各部分時鐘的手段。例如,處理器通過查詢方式訪問慢速外設時,可以降低處理器的工作頻率,這樣能減少處理器功耗,但不影響程序運行的結果。
(2)工作電壓調整
數字電路的功耗與工作電壓的平方成正比。降低處理器的工作電壓,能夠降低其功率。wifi ble二合一芯片esp32 c2量產樂鑫方案深圳代理商GD32VF103 處理器的時鐘控制和管理單元提供了改變工作電壓的方法一些其他處理器也可以通過程序調整工作電壓。當處理器計算負擔比較輕時,降低處理器工作電壓,可以降低系統的動態和靜態能耗。
(3)睡眠(Sleep)狀態管理
如圖 8.7 所示為某處理器不同功耗的狀態圖。系統復位后,處理器進入正常(Normal)功耗狀態,功率大。如果在正常狀態時將控制位IDLE BIT 置1,則處理器進入空閑狀態。如果在正常狀態時將控制位 SLEEP_BIT 置1,則處理器進人睡眠狀態。外部中斷喚醒處理器,從空閑狀態或睡眠狀態回到正常狀態。由于在睡眠狀態下關閉了更多內部功能單元,所以能夠把處理器從睡眠狀態下喚醒的中斷源數目較少。
當處理器需要等待時,通過設置處理器內部特殊寄存器,或使用處理器的專有指令,可以使處理器進入空閑或睡眠狀態,減少處理器動態運行的時間,降低能耗。
目前,主流嵌入式處理器都擁有多個功耗狀態,但不同處理器的狀態數量和管理方法有所差別。
(4)內部功能設置
處理器內部集成了總線控制器、定時器、中斷控制器、ROM、RAM 以及多種外設。wifi ble二合一芯片esp32 c2量產樂鑫方案深圳代理商處理器內部時鐘管理單元為各功能模塊提供驅動時鐘。關斷所選定功能單元的驅動時鐘,可以使該功能單元進入靜態功耗模式。另外,一些處理器內置電源管理單元,能夠控制內部功能單元的供電狀態。
在程序運行時,處理器利用內部時鐘控制器或電源管理單元,停止處理器內部未被使用功能單元的驅動時鐘或供電,降低處理器的動態功率,降低系統能耗。
IDLE_BIT=1
---> (IDLE)
<----
INT,EINT,RTC
(RESET)
SLOW(SLOW_BIT=1) --->
<--- NORMAL(SLOW_BIT=0 <--- EINT RTC
---> (SLEEP)
SLEEP_BIT=1
圖8.7 處理器功耗狀態圖
2.外部芯片能耗優化
(1)電源控制
在系統電路板上芯片的電源輸入端與電源之間連接開關器件,wifi ble二合一芯片esp32 c2量產樂鑫方案深圳代理商通過處理器 I/O引腳控制芯片的供電狀態。程序運行時,關斷系統板上所有不需工作芯片的電源,使這些芯片的功耗為零,降低系統能耗。
(2)片選管理
一些外部芯片,例如存儲器、ADC、DAC 以及通信接口等,具有片選引腳。當該引腳有效時,器件被選通,進人工作狀態。當該引腳無效時,器件進入靜態功耗狀態將外部芯片的片選端與處理器的 I/O引腳相連,在不能控制外部芯片電源的情況下,通過片選信號使未工作的芯片進入靜態功耗狀態,降低系統能耗。
(3)訪問控制
存儲器和通信接口等芯片的功耗與被訪問狀態和傳輸狀態有關。在沒有數據訪同時,SRAM 的功耗遠低于動態功耗。wifi ble二合一芯片esp32 c2量產樂鑫方案深圳代理商在沒有數據傳輸時,網絡接口芯片的功耗同樣遠低于其動態功耗。因此,在程序中優化對存儲器、通信接口等設備的訪問方式,以及減少訪問時間和次數,能夠降低系統能耗。在示例 8.12(a)中,將長度為 L的數組array 成員值進行累加,然后把總和存人內存的 ptotal 位置。在(a)中,每一次循環需要讀、寫內存各 1次。如果將(a)改成(b),循環過程中將累加結果保存在寄存器中,循環結束后 1次性地將數據寫人內存。修改后的程序減少了讀/寫內存的次數從而降低了程序執行過程中的 SRAM 的能耗。
示例8.12: 改進存儲訪問。
(a)
for(i = 0;i< L;i++)
{
*ptotal +=*array++ ;
}
---------------------------------------------------------------------
(b)
register int temp = * ptotal;
for (i = 0;i<L;i++)
{
temp +=*array ++;
}
* ptotal = temp;
3.程序優化
在 之前介紹的一些常用程序優化方法中,那些既減少程序執行時間,又減少程序中所使用存儲空間的方法,同樣能夠降低程序執行過程中處理器的能耗。