作者:Stephen Evanczuk.
對于那些能夠快速將概念轉(zhuǎn)化為可行的物聯(lián)網(wǎng) (IoT)應(yīng)用的開發(fā)者來說,市場在智能互聯(lián)產(chǎn)品方面的需求為他們提供了廣闊的機(jī)會。高能效處理器、各種可選的無線連接和廣泛的硬件外設(shè),為實現(xiàn)合適的、可投入生產(chǎn)的低功耗設(shè)計奠定了堅實的基礎(chǔ)。
然而,在產(chǎn)品定義的早期階段,開發(fā)者需要一個靈活的開發(fā)平臺,用來快速構(gòu)建基于同級別處理器、連接子系統(tǒng)和外設(shè)的原型。能夠快速構(gòu)建工作原型并輕松添加功能,對于提供早期概念驗證并支持定制軟件開發(fā)來說至關(guān)重要。
本文展示了開發(fā)者如何使用 Silicon Labs 的硬件和軟件,以及大量現(xiàn)成的擴(kuò)展板快速構(gòu)建專門的節(jié)能互連型物聯(lián)網(wǎng)設(shè)備原型。
實現(xiàn)快速原型開發(fā)
在探索電池供電型無線物聯(lián)網(wǎng)設(shè)備的各種新的可能性時,開發(fā)者會發(fā)現(xiàn)自己已陷入了與構(gòu)建有效開發(fā)平臺有關(guān)的諸多細(xì)節(jié)的困擾中。憑借其集成子系統(tǒng),先進(jìn)的片上系統(tǒng)(SoC) 設(shè)備可以提供這樣一個核心平臺,但開發(fā)者仍然需要圍繞這些設(shè)備構(gòu)建完整的系統(tǒng)。
為了給這些設(shè)備構(gòu)建一個合適的開發(fā)平臺,開發(fā)者不僅需要滿足強(qiáng)大性能和更長電池壽命的基本要求,還需要實現(xiàn)靈活性,以滿足每個應(yīng)用的具體要求。SiliconLabs 的 BGM220-EK4314A Explorer套件滿足這種組合要求,使開發(fā)人員能夠?qū)W⒂谛略O(shè)計概念的快速原型開發(fā),而無需處理構(gòu)建開發(fā)平臺所涉及的各種細(xì)節(jié)。
靈活的快速開發(fā)平臺
BGM220-EK4314A Explorer 套件是開發(fā)基于藍(lán)牙的各種應(yīng)用的低成本平臺,該平臺整合了 SiLabs 的 BGM220P Wireless Gecko 模塊 (BGM220PC22HNA)、1 個板載 SEGGER J-Link 調(diào)試器、1 個按鈕、1 個發(fā)光二極管 (LED) 以及多種擴(kuò)展選項(圖 1)。
BGM220P 模塊可作為小型電池供電型物聯(lián)網(wǎng)設(shè)備的一個完整解決方案。其集成的 EFR32BG22 Blue Gecko SoC 具有超低功耗、藍(lán)牙到達(dá)角(AoA) 和離開角 (AoD) 能力以及次 1 米定位精度——所有這些都是越來越多的流行藍(lán)牙應(yīng)用所必需的,包括資產(chǎn)追蹤標(biāo)簽、智能門鎖、健身等應(yīng)用。
BGM220P 模塊可作為獨立系統(tǒng)運(yùn)行,它將 EFR32BG22 系統(tǒng)芯片與 512KB 閃存、32KB 隨機(jī)存取存儲器 (RAM)、高頻 (HF)和低頻 (LF) 晶體 (XTAL) 以及一個用于無線連接的 2.4 GHz 匹配網(wǎng)絡(luò)和陶瓷天線組合在一起(圖2)。
除了可用作小型物聯(lián)網(wǎng)設(shè)計的獨立主機(jī),該模塊還可以作為通過其 UART 接口連接的主機(jī)處理器的網(wǎng)絡(luò)協(xié)處理器(NCP)。該模塊的集成藍(lán)牙堆棧為獨立設(shè)計中在模塊上運(yùn)行的應(yīng)用執(zhí)行無線服務(wù),或在 NCP 設(shè)計中運(yùn)行時處理從主機(jī)收到的指令。
高能效無線 SoC
BGM220P 模塊的 EFR32BG22 藍(lán)牙無線 SoC 集成了一個 32 位 ArmCortex-M33 內(nèi)核、1 個 2.4GHz
無線電、安全、能量管理子系統(tǒng),以及多個定時器和接口選擇。EFR32BG22系統(tǒng)芯片專門為超低功耗、電池供電型設(shè)備而設(shè)計,具有多種能量管理功能,可使紐扣電池的運(yùn)行壽命達(dá)到 10 年。
通過單一的外部電壓供電,該 SoC 使用其內(nèi)部能量管理單元來產(chǎn)生內(nèi)部電源電壓。在運(yùn)行期間,由能量管理單元控制 SoC 的五種能量模式 (EM)之間的轉(zhuǎn)換。當(dāng) SoC 從激活模式 (EM0) 過渡到睡眠模式 (EM1)、深度睡眠模式 (EM2)、停止模式 (EM3) 或停機(jī)模式 (EM4)時,每種模式都通過保持逐漸減少的激活功能塊來進(jìn)一步降低功耗(圖 3)。
在 76.8 MHz 和 3 V 的激活模式 (EM0) 下,使用其內(nèi)部的 DC/DC 轉(zhuǎn)換器,該 SoC 的功耗為 27 μA/MHz。EM0是正常工作模式,也是唯一可以使用 Cortex M33 處理器內(nèi)核和所有外設(shè)模塊的模式。
所有的外設(shè)都可以在睡眠模式 (EM1)下使用,當(dāng)系統(tǒng)進(jìn)入功耗更低的模式時,保持激活狀態(tài)的外設(shè)會更少。低功耗模式下,處于激活狀態(tài)的時鐘和功能塊數(shù)量的減少會使功耗水平顯著降低:
睡眠模式下 (EM1):17 μA/MHz
深度睡眠模式 (EM2):1.40μA,保留 32KB RAM,實時時鐘 (RTC) 通過 LFXO 運(yùn)行
停止模式 (EM3) 下:1.05 μA,保留 8KB RAM,RTC 通過 SoC 集成超低頻 1 kHz 電阻電容 (RC) 振蕩器 (ULFRCO)運(yùn)行
0.17 μA 停機(jī)模式 (EM4)
一些電池供電型設(shè)備需要的不只是在低功耗工作模式下運(yùn)行處理器的能力。許多支持藍(lán)牙的應(yīng)用通常都會長期處于很少激活或者非激活狀態(tài),但在恢復(fù)激活狀態(tài)時需要低延遲響應(yīng)。事實上,即使一個應(yīng)用具有更寬松的延遲要求,緩慢喚醒操作也會浪費電力,因為處理器在完成喚醒過程并進(jìn)入激活模式(或完成從高功耗模式進(jìn)入低功耗模式的過程)時不會進(jìn)行任何有用的工作。
隨著激活狀態(tài)之間的時間縮短,當(dāng)緩慢喚醒或進(jìn)入電源模式的時間相比處理器在非激活期保持高功耗模式所消耗的能量更多時,使用低功耗睡眠模式甚至?xí)鸬椒醋饔?。因此,致力于?yōu)化電池壽命的開發(fā)人員有時會將處理器維持在更高的功耗模式,以滿足應(yīng)用處理需求。
通過使用具有更快的喚醒和電源進(jìn)入時間的處理器,開發(fā)者可以更充分地利用處理器的低功耗模式。在 EM1 中,EFG32BG22 在三個時鐘/1.24 μs內(nèi)喚醒,進(jìn)入時間為 1.29 μs,在 EM4 中則分別延長至 8.81 ms 和 9.96 μs (表 1)。
用于在恢復(fù)激活狀態(tài)時喚醒處理器的方法也可能會顯著影響電池壽命。盡管如工業(yè)應(yīng)用等一些應(yīng)用會要求系統(tǒng)使用輪詢處理方式來確保嚴(yán)格的周期性計時,但消費領(lǐng)域的許多應(yīng)用都采用基于事件的處理方式來響應(yīng)特定活動。例如,對基于事件的應(yīng)用使用輪詢方法,當(dāng)處理器被反復(fù)無謂地喚醒時,會大大影響電池壽命。
許多基于傳感器的設(shè)計使用“中斷時喚醒”功能來避免只是為了檢查激活狀態(tài)而重復(fù)喚醒處理器的情況。與此相同,EFG32BG22系統(tǒng)芯片無線電子系統(tǒng)的內(nèi)置“射頻喚醒”功能也采用了類似的中斷驅(qū)動方法。這樣,開發(fā)人員能夠使處理器保持在功耗較低的能量模式下,直到發(fā)生射頻 (RF)激活情況。
在實際中,開發(fā)人員將 EFG32BG22 無線 SoC 置于超低功耗的 EM2、EM3 或 EM4 模式,并依靠“射頻喚醒”功能在檢測到 RF 能量時喚醒SoC。當(dāng)僅限于檢測超過閾值的能量時,RFSENS 的能耗為 131 nA。RFSENSE 模式的選擇性更強(qiáng),電流消耗略多,為 138nA,但在這種模式下,RFSENSE 會過濾進(jìn)入的射頻信號,確保在出現(xiàn)有效射頻信號而不是射頻噪聲時喚醒。
在某些情況下,EFG32BG22 SoC 可能根本不需要喚醒處理器內(nèi)核來響應(yīng)外部事件:SiLabs 的外設(shè)反射系統(tǒng) (PRS)使外設(shè)對事件作出反應(yīng),在不喚醒處理器內(nèi)核的情況下進(jìn)行操作。外設(shè)之間可以直接通信,其功能可以組合使用,以實現(xiàn)復(fù)雜的功能。通過使用具有較低能量模式的 PRS功能,開發(fā)者可以在不影響傳感器數(shù)據(jù)采集等關(guān)鍵功能的情況下大幅降低功耗。
內(nèi)置調(diào)試功能,易于擴(kuò)展
BGM220P 模塊內(nèi)置于 BGM220 Explorer 套件板中,為電池供電型藍(lán)牙設(shè)計帶來 EFR32BG22 SoC
的全套能量管理和處理能力。當(dāng)需要快速建立原型來探索新的設(shè)計概念時,該板的其他功能有助于加速開發(fā)。
通過板上 USB Micro-B 接口訪問,板上 SEGGER J-Link 調(diào)試器可實現(xiàn)代碼下載和調(diào)試以及一個用于主機(jī)控制臺訪問的虛擬 COM端口。該調(diào)試器還支持 SiLabs 的數(shù)據(jù)包跟蹤接口 (PTI) 功能,用于分析通過無線網(wǎng)絡(luò)傳輸或接收的數(shù)據(jù)包。
用于快速原型設(shè)計時,該板支持多種擴(kuò)展選項,便于靈活地探索需要不同組合的傳感器、致動器、連接選項和其他外設(shè)的新設(shè)計理念。依托多個供應(yīng)商提供的大量mikroBUS 擴(kuò)展板和 Qwiic 連接系統(tǒng)硬件,開發(fā)人員可以快速地為每個應(yīng)用配置一個開發(fā)平臺。
插入該板的 mikroBUS 插座后,mikroBUS 板可通過 I2C、SPI 或 UART 接口與 BGM220P 模塊連接。Qwiic 連接器提供了Qwiic 系統(tǒng)的 I2C 接口,用于連接一個或多個 Qwiic 板,連接距離最長可達(dá) 4 英尺。對于較長距離的連接,開發(fā)者可以使用 SparkFun QwiicBus EndPoint 板 (COM-16988),該板使用差分信號來保持 I2C 信號的完整性,連接距離長約 100 英尺。
快速應(yīng)用開發(fā)
SiLabs 將快速擴(kuò)張的概念應(yīng)用于應(yīng)用軟件開發(fā)。除了用于定制開發(fā)的板卡支持包、驅(qū)動程序、庫和頭文件外,該公司還提供了在 Simplicity Studio 開發(fā)環(huán)境中捆綁的幾個示例應(yīng)用,以及可從 SiLabs 的 GitHub資源庫中獲得的其他項目。事實上,開發(fā)者可將捆綁的溫度應(yīng)用樣例作為切入點,探索傳感器應(yīng)用的開發(fā)。該樣例使用 EFR32BG22 SoC的內(nèi)部溫度傳感器作為數(shù)據(jù)源。
該溫度應(yīng)用圍繞標(biāo)準(zhǔn)的藍(lán)牙健康溫度服務(wù)構(gòu)建,可直接通過基于 SiLabs軟件架構(gòu)的通用藍(lán)牙物聯(lián)網(wǎng)應(yīng)用演示處理流程。該應(yīng)用會為系統(tǒng)服務(wù)、設(shè)置中斷處理和回調(diào)功能的應(yīng)用服務(wù)調(diào)用一系列初始化例程。完成初始化后,該應(yīng)用進(jìn)入一個無休止循環(huán),等待事件發(fā)生(列表 1)。
int main(void)
{
// Initialize Silicon Labs device, system, service(s) and protocol
stack(s)。
// Note that if the kernel is present, processing task(s) will be created
by
// this call.
sl_system_init();
// Initialize the application. For example, create periodic timer(s) or
// task(s) if the kernel is present.
app_init();
#if defined(SL_CATALOG_KERNEL_PRESENT)
// Start the kernel. Task(s) created in app_init() will start running.
sl_system_kernel_start();
#else // SL_CATALOG_KERNEL_PRESENT
while (1) {
// Do not remove this call: Silicon Labs components process action
routine
// must be called from the super loop.
sl_system_process_action();
// Application process.
app_process_action();
#if defined(SL_CATALOG_POWER_MANAGER_PRESENT)
// Let the CPU go to sleep if the system allows it.
sl_power_manager_sleep();
#endif
}
#endif // SL_CATALOG_KERNEL_PRESENT
}
列表 1:SiLabs 的藍(lán)牙樣例應(yīng)用使用通用執(zhí)行框架,其中無限循環(huán)允許回調(diào)功能和事件處理程序在初始化后處理系統(tǒng)和應(yīng)用行為。(代碼來源:Silicon Labs)
在該應(yīng)用中,當(dāng)初始化過程中設(shè)置的定時器進(jìn)行倒計時時,一個相關(guān)的回調(diào)例程就會進(jìn)行溫度測量。開發(fā)人員在構(gòu)建應(yīng)用并點亮電路板后,可以使用 SiLabs EFRConnect 應(yīng)用——一種通用型藍(lán)牙移動應(yīng)用,可與所有 Silicon Labs藍(lán)牙套件和設(shè)備一起使用。除了提供定制應(yīng)用的框架外,該應(yīng)用還通過提供一個與藍(lán)牙服務(wù)相關(guān)的支持特性視圖來協(xié)助開發(fā),例如本例應(yīng)用中使用的藍(lán)牙健康溫度計服務(wù)(圖 4)。
在 Simplicity Studio 中,開發(fā)人員可以導(dǎo)入一些不同的藍(lán)牙應(yīng)用實例,展示各種使用場景,包括單獨或組合使用 Qwiic 或 mikroBUS板的設(shè)計。例如,樣例應(yīng)用演示了標(biāo)準(zhǔn)藍(lán)牙心率 (HR) 脈搏血氧儀 (pO2) 服務(wù)與 MikroElektronika 的 MIKROE-4037 心率 2Click mikroBUS 板結(jié)合使用,其中包含 Maxim Integrated 的 MAX86161 生物傳感器。MAX86161提供了一個完整的低功耗子系統(tǒng),能夠為通過其 I2C 接口連接的主機(jī)處理器提供準(zhǔn)確的心率和 SpO2 測量值。(關(guān)于 MAX86161的詳細(xì)使用信息,參見《構(gòu)建真正的無線健身耳穿戴設(shè)備 — 第 1 部分:心率和 SpO2 測量》)。
由于需要另外的驅(qū)動器和比溫度應(yīng)用更苛刻的處理算法,該應(yīng)用展示了更復(fù)雜的物聯(lián)網(wǎng)設(shè)備軟件應(yīng)用架構(gòu)(圖 5)。
與上文提到的溫度應(yīng)用一樣,這個應(yīng)用依賴一系列初始化例程來設(shè)置系統(tǒng)和應(yīng)用服務(wù)。在溫度應(yīng)用中,例程 app_process_action 為空,本應(yīng)用在app_process_action 中增加了對例程 hrm_loop 的調(diào)用。這將導(dǎo)致在每次穿過列表 1 中所示的頂層無限循環(huán)時調(diào)用hrm_loop。此外,采用軟件定時器定期更新 HR 和 SpO2 數(shù)據(jù)。
hrm_loop 例程反過來調(diào)用maxm86161_hrm_process,它從一個由輔助函數(shù)維護(hù)的隊列中提取樣本,并將其傳遞至樣本處理例程。這反過來又調(diào)用一對例程:maxm86161_hrm_frame_process和maxm86161_hrm_spo2_frame_process,它們分別執(zhí)行算法來驗證和生成 HR 和 SpO2 結(jié)果。開發(fā)人員可以使用上文提到的 EFR Connect 應(yīng)用查看結(jié)果和其他服務(wù)特征。
另一個軟件應(yīng)用樣例顯示了開發(fā)者如何在擴(kuò)展其硬件平臺時基于復(fù)雜的應(yīng)用進(jìn)行開發(fā),如這里的 HR/SpO2 應(yīng)用。使用 BGM220-EK4314AExplorer 套件板和 SiLabs 軟件生態(tài)系統(tǒng),圍繞現(xiàn)有的軟硬件進(jìn)行構(gòu)建是相對簡單的。SiLabs 通過一個樣例應(yīng)用演示了這種方法,該應(yīng)用在上述HR/SpO2 應(yīng)用的硬件/軟件平臺上增加了 OLED 顯示屏。本例中,SparkFun 的 OLED 顯示屏 Qwiic 擴(kuò)展板 (LCD-14532)與該板的 Qwiic 連接器連接,而 MikroElektronika Heart Rate 2 Click 擴(kuò)展板來自之前的 HR/SpO2 樣例應(yīng)用中(圖 6)。
除了為 OLED 板增加一個驅(qū)動程序和支持服務(wù)外,該 HR/SpO2 應(yīng)用的擴(kuò)展版本的軟件應(yīng)用基本保持不變。前面提到的 HR/SpO2應(yīng)用的軟件定時器增加了對函數(shù) hrm_update_display 的調(diào)用,顯示 HR 和 SpO2 數(shù)據(jù)(列表 2)。
除了為 OLED 板增加一個驅(qū)動程序和支持服務(wù)外,該 HR/SpO2 應(yīng)用的擴(kuò)展版本的軟件應(yīng)用基本保持不變。前面提到的 HR/SpO2應(yīng)用的軟件定時器增加了對函數(shù) hrm_update_display 的調(diào)用,顯示 HR 和 SpO2 數(shù)據(jù)(列表 2)。
/* Software Timer event */
case sl_bt_evt_system_soft_timer_id:
/* Check which software timer handle is in question */
if (evt-》data.evt_system_soft_timer.handle == HEART_RATE_TIMER) {
heart_rate_send_new_data(connection_handle);
break;
}
if (evt-》data.evt_system_soft_timer.handle == PULSE_OXIMETER_TIMER) {
pulse_oximeter_send_new_data(connection_handle);
break;
}
if (evt-》data.evt_system_soft_timer.handle == DISPLAY_TIMER) {
hrm_update_display();
break;
}
break;
列表 2:使用該套件和軟件生態(tài)系統(tǒng),開發(fā)者通過連接顯示屏并在向現(xiàn)有應(yīng)用的軟件定時器處理程序中添加一個函數(shù)調(diào)用 (hrm_update_display)之后進(jìn)行很小的軟件改動,即可為現(xiàn)有的 HR/SpO2 應(yīng)用添加顯示功能。(代碼來源:Silicon Labs)
這種可擴(kuò)展硬件和軟件方法使開發(fā)人員能夠快速構(gòu)建物聯(lián)網(wǎng)的工作應(yīng)用。由于硬件和軟件都易于添加或刪除,開發(fā)人員可以更輕松地探索新的設(shè)計方案并評估替代性配置。
結(jié)論
電池供電型藍(lán)牙物聯(lián)網(wǎng)設(shè)備是流行應(yīng)用的核心,是滿足市場對更多功能和更長工作壽命的持續(xù)需求的關(guān)鍵推動力。對于開發(fā)者來說,要有效地滿足這些相互沖突的需求,就必須有能力迅速探索新的設(shè)計并評估替代性設(shè)計概念。使用Silicon Labs 的開發(fā)套件和相關(guān)軟件,開發(fā)者可以快速構(gòu)建原型,根據(jù)需要添加和刪除硬件,以滿足特定的應(yīng)用要求。
-
處理器
+關(guān)注
關(guān)注
68文章
19178瀏覽量
229200 -
藍(lán)牙
+關(guān)注
關(guān)注
114文章
5775瀏覽量
169872 -
物聯(lián)網(wǎng)
+關(guān)注
關(guān)注
2904文章
44306瀏覽量
371462 -
soc
+關(guān)注
關(guān)注
38文章
4124瀏覽量
217966 -
電池
+關(guān)注
關(guān)注
84文章
10476瀏覽量
129063
發(fā)布評論請先 登錄
相關(guān)推薦
評論