具有藍牙功能的 IoT 設備可通過智能手機和其他網關設備提供即時可用的數據訪問。但電池供電的低功耗 IoT 解決方案的設計在無線檢測以及高能耗通信子系統的優化方面依然面臨挑戰。對于上市時間排程極度緊迫的設計人員而言,必須簡化設計任務。
為幫助開發人員應對低功耗設計復雜性和上市時間壓力帶來的挑戰,STMicroelectronics 和 Enmo Technologies 分別將其各自的 SensorTile 開發套件和藍牙軟件專業技術進行結合。他們攜手推出了一種簡單的方法,用于快速開發能夠滿足緊張的功率預算的電池供電 IoT 設備。
IoT 硬件和軟件未必費力
對于希望利用無處不在的藍牙移動設備的設計人員而言,集成式藍牙解決方案的出現令他們如虎添翼。除了降低設計復雜性以外,現成的藍牙解決方案可直接加速市場投放,因為這些解決方案往往已通過認證,符合監管要求。但對于大多數開發人員而言,將這些包含多個傳感器的精密 IC 與一個主機 MCU 組合起來的任務,依然是一個漫長而復雜的過程。此外,即使是經驗最豐富的開發團隊,面對相關軟件驅動程序、中間件和應用軟件的開發也可能舉步維艱。
STMicroelectronics 的 SensorTile 開發套件提供了一套完整的 IoT 開發解決方案,它組合了一塊無線傳感器系統板、一對載板和一個綜合軟件開發包。Enmo Technologies 的 IoT.Over.Beacon 軟件平臺旨在與 SensorTile 環境配合使用,可提供獨特的解決方案,最大限度降低具有藍牙功能的 IoT 設計的功耗。搭配使用 SensorTile 套件和 Enmo 平臺,開發人員便能以最少的工作實施完整的低功耗 IoT 設備解決方案,或使用相同的硬件和軟件組件作為定制設計的基礎。
無線傳感器節點
作為套件的核心組件,SensorTile 核心系統板是采用 13.5 mm x 13.5 mm 封裝且具有藍牙功能的獨立傳感器系統。該核心系統以基于 32 位 ARM? Cortex?-M4F 的 STM32L4 MCU 為基礎,包含 STMicroelectronics BlueNRG 藍牙收發器和多個傳感器,所有組件均通過 SPI 連接或專用接口進行通信(圖 1)。
圖 1: SensorTile 核心系統提供了完整的無線傳感器解決方案,該解決方案在 13.5 mm x 13.5 mm 的外形尺寸內組合了低功耗 MCU、藍牙收發器、多個傳感器、平衡不平衡轉換器,甚至還有一根集成天線。(圖片來源: STMicroelectronics)
ST 為該板打包了自己的全套傳感器,包括 LSM6DSM 慣性測量裝置 (IMU)、LSM303AGR 電子羅盤模塊、LPS22HB 壓力傳感器及其 MP34DT04 MEMS 麥克風。連同板載的低壓差 (LDO) 穩壓器,核心板包含 STMicroelectronics BALF-NRG-01D3 小型平衡不平衡轉換器,其中集成了一個諧波濾波器和專為 BlueNRG 收發器定制的匹配網絡。TDK ANT016008LCS2442MA1 多層天線補全了無線傳感器系統的設計。
開發人員可使用兩種不同的方案將核心板連接到套件配套的載板,或其自己的系統設計。在板的兩側,開發人員可利用一組焊盤將其焊接到鞍形板或其他 PC 板。板的背面包含一個連接器,用于將其安裝到擴展板或其他任何具有相應連接器的電纜或板(圖 2)。
圖 2: 開發人員可以將 SensorTile 核心板插入 SensorTile 開發套件的擴展板上的插座,以利用包括 Arduino 兼容型外設在內的其他選件。(圖片來源:STMicroelectronics)
PC 板焊盤和背面連接器均引出了多個 MCU 引腳,包括 SPI、I2C 和 UART 接口,一個脈沖密度調制 (PDM) 接口,多個數模轉換器 (ADC) 以及 ST 的串行線調試 (SWD) 接口(圖 3)。
板引腳 CONN 引腳 引腳名稱 MCU 引腳 主要功能(1) 1 2 MIC_CLK PC2 DFSDM1_CKOUT、ADC 2 4 VDD_OUT VDD/VBAT 1.8 V 板載 LDO 電壓 3 6 VIN / LDO 電源 [2 V - 5.5 V] 4 8 VDDUSB VDDIO2
VDDUSB USB 外設電源和
VDDIO2 [1.8 V - 3.3 V] 5 10 GND VSS 陸運 6 12 RXD/USB_DP PD2/PA12 USB_OTG_FS DP 的 USART5 RX (2) 7 14 TXD/USB_DM PC12/PA11 USART5 TX 或 USB_OTG_FS DM 1 8 16 SAI_CLK PG9(3) SAI2_SCK_A、SPI3_SCK 9 15 SAI_FS PG10(3) SAI2_FS_A、SPI3_MISO 10 13 SAI_MCLK PG11(3) SAO2_MCLK_A、SPI3_MOSI 11 11 SAI_SD PG12(3) SAI2_SD_A、SPI3_NSS 12 9 GPIO2 PB8/PB9/PC1 DFSDM_DATIN6、I2C3_SDA 13 7 GPIO3 PC0 DFSDM_DATIN4、I2C3_SCL 14 5 NRST NRST STM32 復位 15 3 SWD_CLK SWD 編程接口時鐘 16 1 SWD_IO SWD 編程接口 IO 17 / GND 陸運 18 / GND 陸運
備注:
(1) 有關每個引腳的完整功能集,請參閱 st.com 上的 STM32L476 規格書
(2) USB_OTG_FS 外設在 VDDUSB >e; 3 V 時工作
(3) 此引腳的邏輯電平稱為 VDDIO2
圖 3: 開發人員可通過板的 PC 板焊盤或通過置于板背面的專用連接器來訪問 MCU 引腳的子集。(圖片來源:STMicroelectronics)
盡管核心板可用作獨立解決方案,但套件的載板為設計人員提供了基于 SensorTile 開發和部署 IoT 設計的替代方案。鞍形板和配套的原理圖說明了開發人員如何使用更多傳感器和其他外設來擴充核心系統。該板包括一個用于濕度和溫度的 STMicroelectronics HTS221 傳感器。此外,鞍形板還包括 SD 卡插座、micro-USB 接口、開關和電池組。設計人員只需將核心板焊接到鞍形上的相應焊盤,便可利用更多外設。完成開發后,設計人員可在交貨時移除鞍形板的可折斷 SWD 接口。
套件的擴展板提供了一種更為簡單的方法來開發定制設計。開發人員只需使用專用連接器將核心板插入擴展板即可(圖 2)。連同用于軟件開發的 SWD 接口,擴展板提供了包括 micro-USB 連接器、音頻插孔和 Arduino 兼容型連接器在內的更多連接器。
即時部署
開發人員只需將核心板插入擴展板(或將其焊接到鞍形板上),通過 USB 將其連接到主機 PC 以獲取電源,然后下載受支持的 Android 或 iOS 移動應用程序,便可開始探索具有藍牙功能的 IoT 設計。開發套件附帶的核心系統已使用支持三種樣例應用程序的固件進行編程,這些應用程序將低功耗藍牙 (BLE) 與適用于 Android 或 iOS 的 ST BlueMS 應用程序配合使用,分別演示了將傳感器數據記錄到 SD 卡、MEMS 麥克風音頻流和傳感器數據流等應用。
除了提供用于即時部署 SensorTile 應用程序的軟件以外,這些樣例應用程序還可作為使用 SensorTile 的多層架構的指導。連同 ARM Cortex 微控制器軟件接口標準 (CMSIS) 元器件,STMicroelectronics 基于自己的 STM32Cube 環境提供硬件抽象層 (HAL) 和板級支持包 (BSP)。這些層反過來與 STLCS01V1 核心板、STLCX01V1 擴展板和 STLCR01V1 鞍形板上的基礎硬件接口(圖 4)。
圖 4: SensorTile 軟件包提供了基于 STMicroelectronics 的 STM32Cube 設備軟件層構建的樣例應用程序。它將復雜的硬件互動抽象為若干簡單的軟件調用。(圖片來源:STMicroelectronics)
分層架構盡管看似復雜,但為開發人員提供了傳感器數據采集和無線通信的簡單抽象視圖。例如,BLE 流應用程序演示了開發人員只需在主等待循環之前調用若干初始化例程便可(列表 1)。主循環等待關鍵事件,包括用于指定傳感器數據采樣之間的等待時間的定時器到期。當定時器處理程序設置 SendEnv=1,該例程便會使用單個調用
SendEnvironmentalData() 收集并傳輸環境數據。
/* 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 軟件包,它顯示,開發人員在用于等待新藍牙事件或傳感器數據采樣的等待循環之前調用了若干初始化例程。(代碼來源: STMicroelectronics)
SendEnvironmentalData 例程以步進方式遍歷各個傳感器,使用 BSP 例程采集各個傳感器的數據。例如,壓力傳感器 BSP 例程 BSP_PRESSURE_Get_Press() 將更新壓力傳感器設備特定的數據結構中包含的數據。SendEnvironmentalData 例程隨后使用相應的調用,通過藍牙將數據傳輸到 BlueNRG 服務例程 MCR_BLUEMS_F2I_2D()。
設計人員可采用提供的軟件應用程序并加入少許更改,也可根據自己的定制需求進行改寫。SensorTile 軟件環境受 STMicroelectronics STM32 開放式開發環境 (STM32 ODE) 支持,旨在支持開源軟件庫和框架。套件已使用 ST 的 BLUEMICROSYSTEM 開放式框架固件進行預編程。
STMicroelectronics 的開放式環境為開發人員提供了另一重大好處。他們可以利用旨在增強功能的第三方軟件庫,而不是繼續局限于特定的機制。對于有功率限制的 IoT 設備,此功能在利用能效更高的機制時變得尤其重要。
降低電源要求
對于許多 IoT 應用而言,相關的無線傳感器系統依賴于電池電量,并且需要符合嚴格的功率預算。SensorTile 核心系統通過使用低功耗器件滿足這一硬件要求。例如,在環境和運動應用中通常所需的低速率下,傳感器只需要微安級別的功耗。LSM6DSM IMU 在 12.5 Hz 的采樣率下僅使用 9 μA 電流,LSM303AGR 電子羅盤在 20 Hz 下僅需 200 μA 電流,LPS22HB 壓力傳感器在 1 Hz 下需要的電流不超過 12 μA。
此外,STM32L476 MCU 在運行模式下只需 100 μA/MHz (24 MHz)。BlueNRG 藍牙收發器 IC 在維持一個有源 BLE 堆棧的待機模式下僅消耗 1.7 μA 電流。即便如此,有源無線傳輸往往仍消耗了主要功率份額,SensorTile 也不例外。BlueNRG 收發器在 8.2 mA 電流下以 0 dBm 傳輸數據,非常適合低功耗應用,但即便如此,仍是功率受限型設計的用電大戶。
系統設計人員可通過簡單的權宜之計,即減少無線傳輸事務的數量并縮短其持續時間,來解決與無線通信相關的功耗挑戰。不過,使用標準藍牙通信,開發人員只有很少幾個選項用于限制功耗。具有藍牙功能的典型應用依賴于使用重復輪詢檢查的設備發現和配對,這會造成大量功耗而并無實際數據交換。而且,標準藍牙配對會給 IoT 部署帶來嚴重的后勤復雜性,因為每個 IoT 設備都需要置于發現模式。其次,它必須采用手動方式與移動設備或其他數據聚合器配對。
藍牙的信標機制提供了可消除與發現和配對相關的功耗和后勤問題的備選方案。不幸的是,標準信標不能攜帶任何數據有效載荷(例如傳感器數據)。
不過,利用其 IoT.Over.Beacon 技術,Enmo Technologies 可將信標技術的省電優勢與藍牙配對設備技術的數據交換功能相結合。因此,Enmo 的機制可提供多達 50 KB 的可變大小有效載荷,同時還能滿足長時間操作電池供電 IoT 設備所需的低功耗要求。
與本機 SensorTile 環境一樣,開發人員可利用 Enmo 的參考固件。盡管 Enmo 參考固件被處理為對開發人員保持透明,但它將低級 STMicroelectronics 調用替換為對其適用于 SensorTile 的專有 IoT.Over.Beacon 庫的調用。
為此,開發人員需要使用 STM32 ST-Link 實用程序來加載參考固件,該實用程序提供了簡單的圖形用戶界面來選擇和上傳文件。Enmo 參考固件被加載到 SensorTile 核心板后,將通過低功耗藍牙連接與 Enmo 的 Android 和 iOS 移動應用程序交互。開發人員可以在 Enmo 應用程序中輕松顯示 SensorTile 數據,即,使用小工具將傳感器數據顯示為圖形或表格(圖 5)。
圖 5: Enmo Technologies 的參考固件被加載到 SensorTile 后,將通過藍牙向 Enmo 的 Android 或 iOS 應用程序傳送傳感器數據。(圖片來源: Enmo Technologies)
傳統藍牙信標的一項關鍵功能是,它們能夠在移動設備進入和離開具有信標功能的應用程序所覆蓋的物理區域時觸發。但對于 IoT 設備,物理進入和退出的概念可能不適用。
Enmo 提供了專有機制來模仿藍牙信標的傳統進入和退出模式。在這里,開發人員為 IoT 設備指定觸發進入和退出的條件。例如,某個溫度檢測 IoT 設備可能會在溫度變化至高于或低于某個設定的閾值時啟動“進入”或“退出”協議。
與本機 SensorTile 軟件包一樣,用于 SensorTile 的 Enmo 參考固件提供了一種即時解決方案,用于快速部署具有藍牙功能的低功耗 IoT 設備。類似地,針對定制 SensorTile 開發,Enmo 提供了一個軟件開發套件 (SDK),可允許工程師將 Enmo 的 IoT.Over.Beacon 機制集成到自己獨有的 SensorTile IoT 應用。利用 Enmo SDK,開發人員使用 STMicroelectronics 環境編寫定制的 SensorTile 固件,在需要通過藍牙發送數據時調用 Enmo 的 IoT.Over.Beacon 庫。該庫將在 IoT.Over.Beacon 模式下透明地執行數據傳輸,并在完成傳輸后提供軟件回調。
總結
電池供電的 IoT 設計為希望快速部署具有藍牙功能的傳感器設備的開發人員造成了重大障礙。STMicroelectronics SensorTile 開發套件提供了完整的解決方案,該解決方案可用作獨立設備,也可作為子系統添加到現有設計。盡管 SensorTile 具有低功耗要求,但標準藍牙協議可能會快速耗盡電池供電系統的電量。
通過將 ST SensorTile 與 Enmo Technologies 獨有的 IoT.Over.Beacon 平臺相結合,開發人員可快速部署具有藍牙功能并且能夠符合嚴格的功率預算的傳感器。
-
傳感器
+關注
關注
2550文章
51046瀏覽量
753160 -
藍牙
+關注
關注
114文章
5812瀏覽量
170215 -
IOT
+關注
關注
187文章
4204瀏覽量
196715
發布評論請先 登錄
相關推薦
評論