【導讀】具有藍牙功能的 IoT 設備可通過(guò)智能手機和其他網(wǎng)關(guān)設備提供即時(shí)可用的數據訪(fǎng)問(wèn)。但電池供電的低功耗 IoT 解決方案的設計在無(wú)線(xiàn)檢測以及高能耗通信子系統的優(yōu)化方面依然面臨挑戰。對于上市時(shí)間排程極度緊迫的設計人員而言,必須簡(jiǎn)化設計任務(wù)。
為幫助開(kāi)發(fā)人員應對低功耗設計復雜性和上市時(shí)間壓力帶來(lái)的挑戰,STMicroelectronics 和 Enmo Technologies 分別將其各自的 SensorTile 開(kāi)發(fā)套件和藍牙軟件專(zhuān)業(yè)技術(shù)進(jìn)行結合。他們攜手推出了一種簡(jiǎn)單的方法,用于快速開(kāi)發(fā)能夠滿(mǎn)足緊張的功率預算的電池供電 IoT 設備。
IoT 硬件和軟件未必費力
對于希望利用無(wú)處不在的藍牙移動(dòng)設備的設計人員而言,集成式藍牙解決方案的出現令他們如虎添翼。除了降低設計復雜性以外,現成的藍牙解決方案可直接加速市場(chǎng)投放,因為這些解決方案往往已通過(guò)認證,符合監管要求。但對于大多數開(kāi)發(fā)人員而言,將這些包含多個(gè)傳感器的精密 IC 與一個(gè)主機 MCU 組合起來(lái)的任務(wù),依然是一個(gè)漫長(cháng)而復雜的過(guò)程。此外,即使是經(jīng)驗最豐富的開(kāi)發(fā)團隊,面對相關(guān)軟件驅動(dòng)程序、中間件和應用軟件的開(kāi)發(fā)也可能舉步維艱。
STMicroelectronics 的 SensorTile 開(kāi)發(fā)套件提供了一套完整的 IoT 開(kāi)發(fā)解決方案,它組合了一塊無(wú)線(xiàn)傳感器系統板、一對載板和一個(gè)綜合軟件開(kāi)發(fā)包。Enmo Technologies 的 IoT.Over.Beacon 軟件平臺旨在與 SensorTile 環(huán)境配合使用,可提供獨特的解決方案,最大限度降低具有藍牙功能的 IoT 設計的功耗。搭配使用 SensorTile 套件和 Enmo 平臺,開(kāi)發(fā)人員便能以最少的工作實(shí)施完整的低功耗 IoT 設備解決方案,或使用相同的硬件和軟件組件作為定制設計的基礎。
無(wú)線(xiàn)傳感器節點(diǎn)
作為套件的核心組件,SensorTile 核心系統板是采用 13.5 mm x 13.5 mm 封裝且具有藍牙功能的獨立傳感器系統。該核心系統以基于 32 位 ARM® Cortex®-M4F 的 STM32L4 MCU 為基礎,包含 STMicroelectronics BlueNRG 藍牙收發(fā)器和多個(gè)傳感器,所有組件均通過(guò) SPI 連接或專(zhuān)用接口進(jìn)行通信(圖 1)。
圖 1: SensorTile 核心系統提供了完整的無(wú)線(xiàn)傳感器解決方案,該解決方案在 13.5 mm x 13.5 mm 的外形尺寸內組合了低功耗 MCU、藍牙收發(fā)器、多個(gè)傳感器、平衡不平衡轉換器,甚至還有一根集成天線(xiàn)。(圖片來(lái)源: STMicroelectronics)
ST 為該板打包了自己的全套傳感器,包括 LSM6DSM 慣性測量裝置 (IMU)、LSM303AGR 電子羅盤(pán)模塊、LPS22HB 壓力傳感器及其 MP34DT04 MEMS 麥克風(fēng)。連同板載的低壓差 (LDO) 穩壓器,核心板包含 STMicroelectronics BALF-NRG-01D3 小型平衡不平衡轉換器,其中集成了一個(gè)諧波濾波器和專(zhuān)為 BlueNRG 收發(fā)器定制的匹配網(wǎng)絡(luò )。TDK ANT016008LCS2442MA1 多層天線(xiàn)補全了無(wú)線(xiàn)傳感器系統的設計。
開(kāi)發(fā)人員可使用兩種不同的方案將核心板連接到套件配套的載板,或其自己的系統設計。在板的兩側,開(kāi)發(fā)人員可利用一組焊盤(pán)將其焊接到鞍形板或其他 PC 板。板的背面包含一個(gè)連接器,用于將其安裝到擴展板或其他任何具有相應連接器的電纜或板(圖 2)。
圖 2: 開(kāi)發(fā)人員可以將 SensorTile 核心板插入 SensorTile 開(kāi)發(fā)套件的擴展板上的插座,以利用包括 Arduino 兼容型外設在內的其他選件。(圖片來(lái)源:STMicroelectronics)
PC 板焊盤(pán)和背面連接器均引出了多個(gè) MCU 引腳,包括 SPI、I2C 和 UART 接口,一個(gè)脈沖密度調制 (PDM) 接口,多個(gè)數模轉換器 (ADC) 以及 ST 的串行線(xiàn)調試 (SWD) 接口(圖 3)。
圖 3: 開(kāi)發(fā)人員可通過(guò)板的 PC 板焊盤(pán)或通過(guò)置于板背面的專(zhuān)用連接器來(lái)訪(fǎng)問(wèn) MCU 引腳的子集。(圖片來(lái)源:STMicroelectronics)
備注:
(1) 有關(guān)每個(gè)引腳的完整功能集,請參閱 st.com 上的 STM32L476 規格書(shū)
(2) USB_OTG_FS 外設在 VDDUSB >e; 3 V 時(shí)工作
(3) 此引腳的邏輯電平稱(chēng)為 VDDIO2
盡管核心板可用作獨立解決方案,但套件的載板為設計人員提供了基于 SensorTile 開(kāi)發(fā)和部署 IoT 設計的替代方案。鞍形板和配套的原理圖說(shuō)明了開(kāi)發(fā)人員如何使用更多傳感器和其他外設來(lái)擴充核心系統。該板包括一個(gè)用于濕度和溫度的 STMicroelectronics HTS221 傳感器。此外,鞍形板還包括 SD 卡插座、micro-USB 接口、開(kāi)關(guān)和電池組。設計人員只需將核心板焊接到鞍形上的相應焊盤(pán),便可利用更多外設。完成開(kāi)發(fā)后,設計人員可在交貨時(shí)移除鞍形板的可折斷 SWD 接口。
套件的擴展板提供了一種更為簡(jiǎn)單的方法來(lái)開(kāi)發(fā)定制設計。開(kāi)發(fā)人員只需使用專(zhuān)用連接器將核心板插入擴展板即可(圖 2)。連同用于軟件開(kāi)發(fā)的 SWD 接口,擴展板提供了包括 micro-USB 連接器、音頻插孔和 Arduino 兼容型連接器在內的更多連接器。
即時(shí)部署
開(kāi)發(fā)人員只需將核心板插入擴展板(或將其焊接到鞍形板上),通過(guò) USB 將其連接到主機 PC 以獲取電源,然后下載受支持的 Android 或 iOS 移動(dòng)應用程序,便可開(kāi)始探索具有藍牙功能的 IoT 設計。開(kāi)發(fā)套件附帶的核心系統已使用支持三種樣例應用程序的固件進(jìn)行編程,這些應用程序將低功耗藍牙 (BLE) 與適用于 Android 或 iOS 的 ST BlueMS 應用程序配合使用,分別演示了將傳感器數據記錄到 SD 卡、MEMS 麥克風(fēng)音頻流和傳感器數據流等應用。
除了提供用于即時(shí)部署 SensorTile 應用程序的軟件以外,這些樣例應用程序還可作為使用 SensorTile 的多層架構的指導。連同 ARM Cortex 微控制器軟件接口標準 (CMSIS) 元器件,STMicroelectronics 基于自己的 STM32Cube 環(huán)境提供硬件抽象層 (HAL) 和板級支持包 (BSP)。這些層反過(guò)來(lái)與 STLCS01V1 核心板、STLCX01V1 擴展板和 STLCR01V1 鞍形板上的基礎硬件接口(圖 4)。
圖 4: SensorTile 軟件包提供了基于 STMicroelectronics 的 STM32Cube 設備軟件層構建的樣例應用程序。它將復雜的硬件互動(dòng)抽象為若干簡(jiǎn)單的軟件調用。(圖片來(lái)源:STMicroelectronics)
分層架構盡管看似復雜,但為開(kāi)發(fā)人員提供了傳感器數據采集和無(wú)線(xiàn)通信的簡(jiǎn)單抽象視圖。例如,BLE 流應用程序演示了開(kāi)發(fā)人員只需在主等待循環(huán)之前調用若干初始化例程便可(列表 1)。主循環(huán)等待關(guān)鍵事件,包括用于指定傳感器數據采樣之間的等待時(shí)間的定時(shí)器到期。當定時(shí)器處理程序設置 SendEnv=1,該例程便會(huì )使用單個(gè)調用
SendEnvironmentalData() 收集并傳輸環(huán)境數據。
/* Initialize the BlueNRG */
Init_BlueNRG_Stack();
/* Initialize the BlueNRG Custom services */
Init_BlueNRG_Custom_Services();
/* initialize timers */
InitTimers();
StartTime = HAL_GetTick();
/* Infinite loop */
while (1){
/* Led Blinking when there is not a client connected */
if(!connected) {
if(!TargetBoardFeatures.LedStatus) {
if(HAL_GetTick()-StartTime > 1000) {
LedOnTargetPlatform();
TargetBoardFeatures.LedStatus =1;
StartTime = HAL_GetTick();
}
} else {
if(HAL_GetTick()-StartTime > 50) {
LedOffTargetPlatform();
TargetBoardFeatures.LedStatus =0;
StartTime = HAL_GetTick();
}
}
}
/* handle BLE event */
if(HCI_ProcessEvent) {
HCI_ProcessEvent=0;
HCI_Process();
}
/* Update the BLE advertise data and make the Board connectable */
if(set_connectable){
setConnectable();
set_connectable = FALSE;
}
/* Environmental Data */
if(SendEnv) {
SendEnv=0;
SendEnvironmentalData();
}
列表 1.此代碼片段取自 ST SensorTile 軟件包,它顯示,開(kāi)發(fā)人員在用于等待新藍牙事件或傳感器數據采樣的等待循環(huán)之前調用了若干初始化例程。(代碼來(lái)源: STMicroelectronics)
SendEnvironmentalData 例程以步進(jìn)方式遍歷各個(gè)傳感器,使用 BSP 例程采集各個(gè)傳感器的數據。例如,壓力傳感器 BSP 例程 BSP_PRESSURE_Get_Press() 將更新壓力傳感器設備特定的數據結構中包含的數據。SendEnvironmentalData 例程隨后使用相應的調用,通過(guò)藍牙將數據傳輸到 BlueNRG 服務(wù)例程 MCR_BLUEMS_F2I_2D()。
設計人員可采用提供的軟件應用程序并加入少許更改,也可根據自己的定制需求進(jìn)行改寫(xiě)。SensorTile 軟件環(huán)境受 STMicroelectronics STM32 開(kāi)放式開(kāi)發(fā)環(huán)境 (STM32 ODE) 支持,旨在支持開(kāi)源軟件庫和框架。套件已使用 ST 的 BLUEMICROSYSTEM 開(kāi)放式框架固件進(jìn)行預編程。
STMicroelectronics 的開(kāi)放式環(huán)境為開(kāi)發(fā)人員提供了另一重大好處。他們可以利用旨在增強功能的第三方軟件庫,而不是繼續局限于特定的機制。對于有功率限制的 IoT 設備,此功能在利用能效更高的機制時(shí)變得尤其重要。
降低電源要求
對于許多 IoT 應用而言,相關(guān)的無(wú)線(xiàn)傳感器系統依賴(lài)于電池電量,并且需要符合嚴格的功率預算。SensorTile 核心系統通過(guò)使用低功耗器件滿(mǎn)足這一硬件要求。例如,在環(huán)境和運動(dòng)應用中通常所需的低速率下,傳感器只需要微安級別的功耗。LSM6DSM IMU 在 12.5 Hz 的采樣率下僅使用 9 μA 電流,LSM303AGR 電子羅盤(pán)在 20 Hz 下僅需 200 μA 電流,LPS22HB 壓力傳感器在 1 Hz 下需要的電流不超過(guò) 12 μA。
此外,STM32L476 MCU 在運行模式下只需 100 μA/MHz (24 MHz)。BlueNRG 藍牙收發(fā)器 IC 在維持一個(gè)有源 BLE 堆棧的待機模式下僅消耗 1.7 μA 電流。即便如此,有源無(wú)線(xiàn)傳輸往往仍消耗了主要功率份額,SensorTile 也不例外。BlueNRG 收發(fā)器在 8.2 mA 電流下以 0 dBm 傳輸數據,非常適合低功耗應用,但即便如此,仍是功率受限型設計的用電大戶(hù)。
系統設計人員可通過(guò)簡(jiǎn)單的權宜之計,即減少無(wú)線(xiàn)傳輸事務(wù)的數量并縮短其持續時(shí)間,來(lái)解決與無(wú)線(xiàn)通信相關(guān)的功耗挑戰。不過(guò),使用標準藍牙通信,開(kāi)發(fā)人員只有很少幾個(gè)選項用于限制功耗。具有藍牙功能的典型應用依賴(lài)于使用重復輪詢(xún)檢查的設備發(fā)現和配對,這會(huì )造成大量功耗而并無(wú)實(shí)際數據交換。而且,標準藍牙配對會(huì )給 IoT 部署帶來(lái)嚴重的后勤復雜性,因為每個(gè) IoT 設備都需要置于發(fā)現模式。其次,它必須采用手動(dòng)方式與移動(dòng)設備或其他數據聚合器配對。
藍牙的信標機制提供了可消除與發(fā)現和配對相關(guān)的功耗和后勤問(wèn)題的備選方案。不幸的是,標準信標不能攜帶任何數據有效載荷(例如傳感器數據)。
不過(guò),利用其 IoT.Over.Beacon 技術(shù),Enmo Technologies 可將信標技術(shù)的省電優(yōu)勢與藍牙配對設備技術(shù)的數據交換功能相結合。因此,Enmo 的機制可提供多達 50 KB 的可變大小有效載荷,同時(shí)還能滿(mǎn)足長(cháng)時(shí)間操作電池供電 IoT 設備所需的低功耗要求。
與本機 SensorTile 環(huán)境一樣,開(kāi)發(fā)人員可利用 Enmo 的參考固件。盡管 Enmo 參考固件被處理為對開(kāi)發(fā)人員保持透明,但它將低級 STMicroelectronics 調用替換為對其適用于 SensorTile 的專(zhuān)有 IoT.Over.Beacon 庫的調用。
為此,開(kāi)發(fā)人員需要使用 STM32 ST-Link 實(shí)用程序來(lái)加載參考固件,該實(shí)用程序提供了簡(jiǎn)單的圖形用戶(hù)界面來(lái)選擇和上傳文件。Enmo 參考固件被加載到 SensorTile 核心板后,將通過(guò)低功耗藍牙連接與 Enmo 的 Android 和 iOS 移動(dòng)應用程序交互。開(kāi)發(fā)人員可以在 Enmo 應用程序中輕松顯示 SensorTile 數據,即,使用小工具將傳感器數據顯示為圖形或表格(圖 5)。
圖 5: Enmo Technologies 的參考固件被加載到 SensorTile 后,將通過(guò)藍牙向 Enmo 的 Android 或 iOS 應用程序傳送傳感器數據。(圖片來(lái)源: Enmo Technologies)
傳統藍牙信標的一項關(guān)鍵功能是,它們能夠在移動(dòng)設備進(jìn)入和離開(kāi)具有信標功能的應用程序所覆蓋的物理區域時(shí)觸發(fā)。但對于 IoT 設備,物理進(jìn)入和退出的概念可能不適用。
Enmo 提供了專(zhuān)有機制來(lái)模仿藍牙信標的傳統進(jìn)入和退出模式。在這里,開(kāi)發(fā)人員為 IoT 設備指定觸發(fā)進(jìn)入和退出的條件。例如,某個(gè)溫度檢測 IoT 設備可能會(huì )在溫度變化至高于或低于某個(gè)設定的閾值時(shí)啟動(dòng)“進(jìn)入”或“退出”協(xié)議。
與本機 SensorTile 軟件包一樣,用于 SensorTile 的 Enmo 參考固件提供了一種即時(shí)解決方案,用于快速部署具有藍牙功能的低功耗 IoT 設備。類(lèi)似地,針對定制 SensorTile 開(kāi)發(fā),Enmo 提供了一個(gè)軟件開(kāi)發(fā)套件 (SDK),可允許工程師將 Enmo 的 IoT.Over.Beacon 機制集成到自己獨有的 SensorTile IoT 應用。利用 Enmo SDK,開(kāi)發(fā)人員使用 STMicroelectronics 環(huán)境編寫(xiě)定制的 SensorTile 固件,在需要通過(guò)藍牙發(fā)送數據時(shí)調用 Enmo 的 IoT.Over.Beacon 庫。該庫將在 IoT.Over.Beacon 模式下透明地執行數據傳輸,并在完成傳輸后提供軟件回調。
總結
電池供電的 IoT 設計為希望快速部署具有藍牙功能的傳感器設備的開(kāi)發(fā)人員造成了重大障礙。STMicroelectronics SensorTile 開(kāi)發(fā)套件提供了完整的解決方案,該解決方案可用作獨立設備,也可作為子系統添加到現有設計。盡管 SensorTile 具有低功耗要求,但標準藍牙協(xié)議可能會(huì )快速耗盡電池供電系統的電量。
通過(guò)將 ST SensorTile 與 Enmo Technologies 獨有的 IoT.Over.Beacon 平臺相結合,開(kāi)發(fā)人員可快速部署具有藍牙功能并且能夠符合嚴格的功率預算的傳感器。
本文來(lái)源于Digi-Key。
推薦閱讀: