ZigBee TI ZStack CC2530 5.3 例項(二)終端裝置低功耗與電池壽命01-理論
(配套原始碼、軟體、開發板等資源,可移步部落格同名QQ群:拿破崙940911)
本節與下一節都將講述關於ZigBee終端裝置的低功耗。
本節主要講解關於基於CC2530晶片的ZigBee技術的低功耗理論部分。
一、應用背景
無論是在智慧家居,還是醫療,亦或是在工業控制等領域,“功耗”都是一個非常重要的問題。因為在很多實際情況下,裝置只能使用電池供電,而不能使用220V交流電或24V直流電等方式給裝置保持常供電。這個時候,低功耗技術就顯得尤為重要。否則,頻繁地更換電池會對人力和物力造成極大的浪費。
而“低功耗”正是ZigBee技術諸多重要特點及優勢之一,因此ZigBee技術在很多領域都有著非常廣泛的應用。
二、ZigBee基本概念回顧
講到ZigBee技術的低功耗,在這裡就不得不再重申一下一些ZigBee的基本概念了。ZigBee網路中有三種邏輯裝置:協調器(Coordinator)、路由器(Router)和終端(EndDevice)。
協調器節點:是網路中的第一個裝置。負責建立、維持和管理網路等,必須要由主電源常供電。
路由器節點:主要負責路由發現、訊息傳輸、允許其他裝置通過它加入網路等,一般也多采用主電源常供電。
終端節點:一般負責資料採集或控制功能,只能通過協調器或路由器加入網路,且其他裝置不能通過它加入網路。因為它沒有特定的維持網路結構的責任,所以可以睡眠或者喚醒,功耗較低,一般採用電池供電。
由此可見,ZigBee技術中真正的低功耗
只是針對於終端裝置而言的。而對於常供電的ZigBee協調器和ZigBee路由器,我們一般不去考慮它們的功耗。PS:本文後面提到的“裝置”,非特殊說明,均指“ZigBee終端裝置”。
三、動態功耗與靜態功耗
對於ZigBee終端裝置來說,有的時候它是“有事可做”的,但更多的時候它其實是“無事可做”的!在這裡,我們就把ZigBee終端裝置在“有事可做”和“無事可做”兩種不同情況下功耗,分別稱為“動態功耗”和“靜態功耗”。那麼這樣一來,ZigBee終端裝置的功耗就主要是由“動態功耗”和“靜態功耗”兩部分組成的了。
這裡我們以下一節中將會用到的一張圖來簡單說明:
上圖是一個ZigBee終端裝置在入網時及入網後的實時功耗圖,可以看到如圖所示的交點處的電流大小為8.087mA
。從圖中可以看到有很多“毛刺”,其實在這個時候,ZigBee終端裝置正在與其父節點互動,或者是正在採集感測資料等,這個時候的功耗就是我們所說的“動態功耗”;更多時候,甚至是90%以上的時間,它其實都是“無事可做”的,也就是圖中所示的“平滑區”,這個時候的功耗就是我們所說的“靜態功耗”。
由此可見,實際占主導地位的其實是“靜態功耗”。
四、CC2530的休眠模式
如手冊《CC253x User's Guide》 4.1 Power Management Introduction所述:
CC2530總共有5種工作模式,其中有3種是休眠模式,分別為PM1、PM2和PM3。
此外手冊中還提到:雖然CC2530有三種不同的休眠模式,但Z-Stack協議棧中只用了其中兩種。
協議棧中的程式碼也確實如此,只用到了PM2和PM3,分別稱為TIMER_SLEEP(定時睡眠)模式和DEEP_SLEEP(深度睡眠)模式。
文件中還有如下說明:
由於DEEP_SLEEP(深度睡眠)模式必須要“復位( 重啟)”或者“外部中斷”來喚醒,所以一般只適合用於需要按鍵這一型別的裝置。如果不能產生外部中斷,則一般使用PM2模式,也就是TIMER_SLEEP(定時睡眠)模式。
(配套原始碼、軟體、開發板等資源,可移步部落格同名QQ群:拿破崙940911)