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