優(yōu)化BLE應(yīng)用以實(shí)現(xiàn)最小能耗運(yùn)行是一項(xiàng)挑戰(zhàn)。了解BLE協(xié)議和底層的系統(tǒng)級(jí)芯片(SoC)架構(gòu)對(duì)于延長(zhǎng)電池壽命至關(guān)重要。其中對(duì)BLE工作模式(例如廣播和睡眠)的見(jiàn)解尤其重要。通過(guò)向堆棧提供正確的輸入以及利用BLE SoC的硬件功能,我們可以采用多種不同的方法來(lái)最小化整個(gè)系統(tǒng)的功耗。
在藍(lán)牙通信中,BLE已保護(hù)了大量的連接設(shè)備插座(socket)。而在無(wú)線設(shè)計(jì)中選擇BLE的最關(guān)鍵原因之一在于它的普及性,這要?dú)w功于它在智能手機(jī)中的廣泛部署以及能夠延長(zhǎng)電池使用壽命的能力。由于大多數(shù)物聯(lián)網(wǎng)(IoT)終端節(jié)點(diǎn)都由電池供電,因此較長(zhǎng)的電池壽命就顯得極為珍貴。
盡管是眾所周知的事情,但還是要強(qiáng)調(diào)選擇BLE器件時(shí)首先要評(píng)估其文檔。雖然最初的數(shù)據(jù)挖掘過(guò)程看起來(lái)微不足道,但是很快你就會(huì)發(fā)現(xiàn)半導(dǎo)體器件數(shù)據(jù)手冊(cè)的比較過(guò)程將是一項(xiàng)相當(dāng)復(fù)雜的任務(wù)。
例如,考慮無(wú)線SoC的接收或發(fā)送模式中的工作電流。許多BLE SoC文檔顯示的電流消耗為幾毫安。例如,Silicon Labs的EFR32BG22 SoC在0 dBm時(shí)的射頻接收電流為2.6 mA,發(fā)射電流為3.5 mA。請(qǐng)注意,這些數(shù)字僅與SoC RF收發(fā)器有關(guān)。而在SoC級(jí)別,這些電流都會(huì)稍高一些,分別為3.6 mA和4.1 mA。一個(gè)常見(jiàn)的錯(cuò)誤是僅依靠SoC電流消耗(current drain)的射頻數(shù)字(radio numbers)來(lái)做判斷。器件文檔首頁(yè)的數(shù)據(jù)通常要通過(guò)對(duì)數(shù)據(jù)手冊(cè)進(jìn)行全面分析才能得以驗(yàn)證。
另一個(gè)例子是數(shù)據(jù)手冊(cè)中顯示的以微安/兆赫(μA/MHz)為單位的CPU功耗。在密集計(jì)算應(yīng)用中,該數(shù)值會(huì)成為決定性的選擇標(biāo)準(zhǔn)。當(dāng)然,這一數(shù)值通常指的是CPU在最高頻率時(shí)的最佳情況。換句話說(shuō),當(dāng)SoC CPU的工作頻率與制造商數(shù)據(jù)手冊(cè)中指定的頻率不同時(shí),數(shù)據(jù)手冊(cè)中顯示的數(shù)值可能會(huì)被證明是非常不準(zhǔn)確的。
第三個(gè)例子是深度睡眠電流,這對(duì)于電池供電的終端產(chǎn)品至關(guān)重要。該數(shù)值通常在數(shù)百納安至幾微安之間。非常重要的是,須確保深度睡眠電流的數(shù)值與保留的RAM大小相關(guān),并且包含實(shí)時(shí)時(shí)鐘(RTC)電流消耗。RTC與精確的睡眠時(shí)鐘源結(jié)合在一起是為了維持BLE正常工作所需的時(shí)序。對(duì)于EFR32BG22 SoC,其數(shù)據(jù)手冊(cè)的首頁(yè)提到了在EM2模式中深度睡眠電流為1.40 µA,保留的RAM為32 KB,同時(shí)RTC從LXCO(低頻晶體振蕩器)產(chǎn)生。更多信息可以參考該數(shù)據(jù)手冊(cè)的電流消耗部分。
因此,數(shù)據(jù)手冊(cè)中的功耗數(shù)值缺乏標(biāo)準(zhǔn)化可能會(huì)造成錯(cuò)誤的比較,最終可能導(dǎo)致選擇錯(cuò)誤的器件。
了解應(yīng)用需求
評(píng)估BLE SoC時(shí)考慮應(yīng)用需求很重要。大多數(shù)供應(yīng)商都試圖以負(fù)責(zé)任的態(tài)度來(lái)展示他們器件的數(shù)值,但是對(duì)于一個(gè)可能要支持多種不同應(yīng)用的器件而言,所提供的數(shù)值顯然不可能適合所有應(yīng)用案例。在這種情況下,終端應(yīng)用的知識(shí)就變得至關(guān)重要。
選擇BLE SoC時(shí),工作電流和睡眠電流是關(guān)鍵指標(biāo)。必須將這些電流數(shù)值置入與應(yīng)用環(huán)境緊密匹配的模型中,以產(chǎn)生對(duì)平均功耗的合理評(píng)估。此類模型通常包括開(kāi)/關(guān)占空比,我們知道低占空比更適合使用具有最低深度睡眠電流的SoC,而高占空比則更適合具有最低工作電流的SoC。
另一個(gè)重要參數(shù)可能是終端產(chǎn)品的環(huán)境溫度。BLE SoC在25℃時(shí)的漏電流與85℃或更高溫度時(shí)的漏電流明顯不同。高溫下的漏電流是工業(yè)應(yīng)用中的關(guān)鍵選擇標(biāo)準(zhǔn),例如子計(jì)量表(sub-metering),因?yàn)槠湫枰诟邷叵麓_保電池壽命。
應(yīng)用的另一個(gè)重要元素在于所使用的電池技術(shù)類型(在電池供電的終端產(chǎn)品中)。電池要為集成在最新BLE SoC中的片上DC-DC轉(zhuǎn)換器供電。使用DC-DC轉(zhuǎn)換器將顯著降低整個(gè)SoC的工作電流消耗。一些復(fù)雜的SoC可能會(huì)為射頻和CPU集成獨(dú)立的DC-DC轉(zhuǎn)換器。這種做法提供了一種優(yōu)化的解決方案,但趨勢(shì)顯然是只使用一個(gè)轉(zhuǎn)換器,從而最小化SoC的成本。
圖2:EFR32BG22是集成了一個(gè)片上DC-DC轉(zhuǎn)換器的BLE SoC的例子。使用dc-dc轉(zhuǎn)換器將顯著降低整個(gè)SoC的工作電流消耗。一些復(fù)雜的SoC可能會(huì)為射頻和CPU集成獨(dú)立的dc-dc轉(zhuǎn)換器。這種做法提供了一種優(yōu)化的解決方案,但趨勢(shì)顯然是只使用一個(gè)轉(zhuǎn)換器,從而最小化SoC的成本。
最后,了解如何使用片內(nèi)或片外存儲(chǔ)器也很重要。BLE終端節(jié)點(diǎn)的一個(gè)常見(jiàn)需求是執(zhí)行軟件的無(wú)線(OTA)更新。根據(jù)傳輸?shù)墓碳诚竦拇笮。褂猛饨娱W存可能成本更低。但事實(shí)證明,其增加的功耗和潛在的安全問(wèn)題可能比使用片上閃存要高得多。對(duì)OTA更新進(jìn)行詳細(xì)分析將有助于確定最合適的內(nèi)存物料清單。
近年來(lái),BLE SoC大幅降低了總工作電流消耗,同時(shí)保持了更低的深度睡眠電流。原因是硅技術(shù)從較大的尺寸(0.18 µm,90 nm和65 nm)遷移到了更優(yōu)化的工藝節(jié)點(diǎn)(55 nm和40 nm)。采用40 nm節(jié)點(diǎn),再加上集成片上dc-dc轉(zhuǎn)換器,極大地降低了EFR32BG22 SoC的總體電流消耗。
例如,當(dāng)禁用片上dc-dc轉(zhuǎn)換器而從片上閃存運(yùn)行Coremark時(shí),Arm Cortex-M33 CPU需要54 µA/MHz的功耗。當(dāng)激活同一個(gè)dc-dc轉(zhuǎn)換器時(shí),相同的操作僅需要37 µA/MHz的功耗。
在深度睡眠模式下,保留的RAM至關(guān)重要,因?yàn)樗谴蟛糠止念A(yù)算的來(lái)源,而且當(dāng)BLE SoC必須返回到工作模式時(shí),保留的RAM可以加快啟動(dòng)速度。從設(shè)計(jì)角度看,低漏電流SRAM的使用能讓芯片設(shè)計(jì)人員將深度睡眠電流保持在1µA范圍內(nèi)。選擇BLE SoC的另一個(gè)關(guān)鍵考量因素是每個(gè)SRAM的大小可能有所不同。選擇保留RAM大小的能力將有助于最小化深度睡眠模式的功耗。EFR32BG22 SoC在32 KB片上RAM中集成了可獨(dú)立選擇的SRAM。
最后,時(shí)鐘門控和電源門控技術(shù)的結(jié)合使BLE SoC可以根據(jù)其工作模式完全關(guān)閉設(shè)備的某些功能。這些功能的激活是自動(dòng)的,應(yīng)用開(kāi)發(fā)人員基本上不需要去了解詳細(xì)的信息。
軟件支持
最小化BLE應(yīng)用的功耗需要對(duì)射頻操作進(jìn)行高度優(yōu)化的調(diào)度,并且在保持協(xié)議所需的精確時(shí)序的同時(shí),最大限度地處于盡可能低的能耗模式下。為了精確控制發(fā)射功率,BLE堆棧集成了dc-dc轉(zhuǎn)換器的配置。堆棧來(lái)自于軟件開(kāi)發(fā)套件(SDK),該套件與集成開(kāi)發(fā)環(huán)境(IDE)完美整合在一起。IDE包括一個(gè)網(wǎng)絡(luò)分析器,可直接從SoC射頻獲取數(shù)據(jù);一個(gè)先進(jìn)的能量監(jiān)控器,可將功耗與代碼位置相關(guān)聯(lián);以及一個(gè)可視的通用屬性配置文件(Generic Attribute profile,GATT)配置器,可實(shí)現(xiàn)標(biāo)準(zhǔn)藍(lán)牙SIG配置文件或自定義服務(wù)。這些工具支持BLE應(yīng)用的開(kāi)發(fā)與硬件設(shè)計(jì)完全整合,從而使開(kāi)發(fā)人員可以專注于影響功耗的高級(jí)設(shè)計(jì)選擇。此外,SDK還集成了安全的引導(dǎo)加載程序,支持通過(guò)OTA和串行接口進(jìn)行固件更新。
先進(jìn)硬件和強(qiáng)大軟件的結(jié)合支持應(yīng)用開(kāi)發(fā)人員在多個(gè)設(shè)備上執(zhí)行自己的基準(zhǔn)測(cè)試。這是推薦在選擇BLE SoC之前所應(yīng)采取的方法。雖然最初耗時(shí)較多,但這種方法已被證明是非常有價(jià)值的,有助于發(fā)現(xiàn)因硬件功能短缺或軟件功能不佳所導(dǎo)致的潛藏挑戰(zhàn)。
開(kāi)發(fā)一種標(biāo)準(zhǔn)化的基準(zhǔn)測(cè)試策略還可以幫助開(kāi)發(fā)人員對(duì)各個(gè)供應(yīng)商的器件進(jìn)行對(duì)比。嵌入式微處理器基準(zhǔn)聯(lián)盟(EEMBC)開(kāi)發(fā)的IoTMark-BLE基準(zhǔn)配置文件提供了一種有用的功耗評(píng)估工具。IoTMark-BLE基準(zhǔn)配置文件構(gòu)建了一個(gè)真實(shí)的IoT邊緣節(jié)點(diǎn)模型,其由I2C傳感器與涵蓋睡眠、廣告和連接模式操作的BLE射頻所組成。
盡管IoTMark-BLE基準(zhǔn)測(cè)試可能并不適合所有應(yīng)用案例,但它可以作為基礎(chǔ)來(lái)支持為任何特定的應(yīng)用探索適合的場(chǎng)景。
簡(jiǎn)而言之,對(duì)供應(yīng)商數(shù)據(jù)手冊(cè)的并行比較可能會(huì)導(dǎo)致代價(jià)高昂的誤解和錯(cuò)誤陳述。當(dāng)比較SoC中的板載和外部DC-DC轉(zhuǎn)換器模塊時(shí),必須在系統(tǒng)層級(jí)上對(duì)BLE SoC進(jìn)行分析。第三方基準(zhǔn)測(cè)試通??梢詭椭_定比較分析的真實(shí)情況。