【導(dǎo)讀】激烈的競爭給物聯(lián)網(wǎng) (IoT) 設(shè)備開發(fā)商帶來了壓力,他們必須迅速推出新的創(chuàng)新產(chǎn)品,同時(shí)還要降低成本,確保穩(wěn)定、低功耗、安全的通信。傳統(tǒng)的智能物聯(lián)網(wǎng)終端節(jié)點(diǎn)包括用于邊緣處理的微控制器單元 (MCU) 和用于連接的無線集成電路。如果設(shè)計(jì)團(tuán)隊(duì)缺乏開發(fā)有效解決方案必需的射頻 (RF) 技能,就會(huì)出現(xiàn)問題。
激烈的競爭給物聯(lián)網(wǎng) (IoT) 設(shè)備開發(fā)商帶來了壓力,他們必須迅速推出新的創(chuàng)新產(chǎn)品,同時(shí)還要降低成本,確保穩(wěn)定、低功耗、安全的通信。傳統(tǒng)的智能物聯(lián)網(wǎng)終端節(jié)點(diǎn)包括用于邊緣處理的微控制器單元 (MCU) 和用于連接的無線集成電路。如果設(shè)計(jì)團(tuán)隊(duì)缺乏開發(fā)有效解決方案必需的射頻 (RF) 技能,就會(huì)出現(xiàn)問題。
為了按時(shí)完成和認(rèn)證無線物聯(lián)網(wǎng)設(shè)計(jì),并將其投入量產(chǎn),開發(fā)人員必須提高開發(fā)過程的效率。提高開發(fā)過程效率的一種方法是使用配備集成低功耗藍(lán)牙 (BLE) 無線接口的低功耗 MCU。
本文介紹了來自 STMicroelectronics 的超低功耗 STM32WBA52 MCU 系列,并展示了開發(fā)人員如何使用 BLE 評估板、開發(fā)工具和應(yīng)用示例,快速完成和運(yùn)行 BLE 5.3 無線設(shè)計(jì)。此外,本文還簡要介紹了編程和 MCU 布線。
高安全級(jí)別的節(jié)能無線 MCU
STM32WBA52 MCU 系列已通過 BLE 5.3 認(rèn)證,這是一種經(jīng)濟(jì)高效的解決方案,可幫助新手開發(fā)人員快速為設(shè)備添加無線通信功能。這些微控制器基于時(shí)鐘頻率為 100 MHz 的 Arm? Cortex?-M33 內(nèi)核和 TrustZone 技術(shù),具有高安全,可保護(hù)數(shù)據(jù)和知識(shí)產(chǎn)權(quán) (IP),防止黑客攻擊和設(shè)備克隆。
STM32WBA52CEU6 無線 MCU 搭載 512 KB 閃存和 96 KB 靜態(tài) RAM (SRAM),STM32WBA52CGU6 型號(hào)則搭載 1 MB 閃存和 128 KB SRAM。圖 1 顯示了 48 UFQFN 封裝中集成電路的功能范圍。此外,多達(dá) 20 個(gè)電容式觸摸通道可支持密封設(shè)備的操作(無需機(jī)械按鍵)。
圖 1:STM32WBA52 的功能框圖顯示了集成 BLE 5.3 無線電、閃存和 SRAM 以及安全支持。(圖片來源:STMicroelectronics)
豐富的 STM32Cube 生態(tài)系統(tǒng)可以支持 BLE 應(yīng)用的實(shí)現(xiàn)和編程。該生態(tài)系統(tǒng)包括 STM32CubeIDE 開發(fā)環(huán)境以及各種工具,例如 STM32CubeMX 外設(shè)配置器和代碼生成器、STM32CubeMonitorRF 性能測試器,以及用于人工智能 (AI) 的 STM32Cube.AI 桌面版本和云版本。匹配的評估板 NUCLEO-WBA52CG 可簡化原型設(shè)計(jì),并提供大量 BLE 實(shí)例應(yīng)用程序和免費(fèi)源代碼,以加速驗(yàn)證。
設(shè)備和數(shù)據(jù)安全
STM32WBA52 產(chǎn)品系列達(dá)到了物聯(lián)網(wǎng)安全標(biāo)準(zhǔn)平臺(tái)安全架構(gòu) (PSA) 認(rèn)證等級(jí) 3 和物聯(lián)網(wǎng)平臺(tái)安全評估標(biāo)準(zhǔn)保證等級(jí) 3 (SESIP3)。基于安全隔離、內(nèi)存保護(hù)、篡改保護(hù)的 PSA 安全認(rèn)證計(jì)劃,以及采用 Arm TrustZone 架構(gòu)的 MCU Cortex-M33,都可以增強(qiáng)網(wǎng)絡(luò)保護(hù)。適用于 Arm Cortex-M 的可信固件 (TF-M) 符合行業(yè)標(biāo)準(zhǔn) PSA 認(rèn)證安全框架,具有 PSA 不可變信任根 (RoT),包括安全啟動(dòng)和安全固件更新 (X-CUBE-SBSFU)、加密、安全存儲(chǔ)和運(yùn)行時(shí)驗(yàn)證。
集成無線電最大限度地降低物料成本
集成的超低功耗無線電模塊可提供 +10 dBm(分貝數(shù)基準(zhǔn)為 1 mW)的射頻輸出功率。該模塊可實(shí)現(xiàn)短距離 (BLE 5.3) 和長距離 (Long Range) 可靠通信,數(shù)據(jù)傳輸速率高達(dá) 2 Mbps。在進(jìn)行無線電通信時(shí),深度待機(jī)低功耗模式可以降低總耗電量。STM32WBA MCU 可同時(shí)支持最多 20 個(gè)連接。
該無線電模塊的電氣性能特征:
· 支持 BLE 5.3 的 2.4 GHz 射頻收發(fā)器
· 接收靈敏度:-96 dBm (1 Mbps BLE)
· 可編程輸出功率,最高 +10 dBm,步長為 1 dB
· 集成平衡不平衡轉(zhuǎn)換器
由于高效的能源管理,電池體積更小
STM32WBA52 MCU 采用多項(xiàng)節(jié)能技術(shù),包括 STMicroelectronics 的低功耗直接內(nèi)存訪問 (LPDMA),以及具有快速喚醒時(shí)間的靈活省電狀態(tài)。這些特性組合在一起,可將 MCU 功耗降低多達(dá) 90%,從而顯著縮小電池體積或延長電池續(xù)航時(shí)間。
FlexPowerControl 的電氣性能特性:
· 1.71 至 3.6 V 電源
· 140 nA 待機(jī)模式(16 個(gè)喚醒引腳)
· 200 nA 待機(jī)模式,實(shí)時(shí)時(shí)鐘 (RTC) 運(yùn)行
· 2.4 μA 待機(jī)模式,64 KB SRAM
· 16.3 μA 停止模式,64 KB SRAM
· 45 μA/MHz 運(yùn)行模式,電壓 3.3 V
· 無線電:Rx 7.4 mA/Tx,0 dBm,10.6 mA
此外,藍(lán)牙 5.3 在低占空比和高占空比之間的切換速度更快,因而比先前版本的能效更高。
藍(lán)牙堆棧架構(gòu)和數(shù)據(jù)包
STM32WBA52 中的單核 Arm Cortex-M33 MCU 專門用于應(yīng)用固件開發(fā),包括 BLE 堆棧(控制器和主機(jī))上的配置文件和服務(wù)。MCU 處理從最低物理層 (PHY) 上的集成射頻模塊到通用屬性配置文件 (GATT) 和通用訪問配置文件 (GAP) 的數(shù)據(jù)流(圖 2)。GAP 定義和管理廣播和連接,GATT 則定義和管理進(jìn)出數(shù)據(jù)交換。
圖 2:MCU 處理從無線電 PHY 到 GATT 和 GAP 的數(shù)據(jù)流。(圖片來源:STMicroelectronics)
BLE 發(fā)送的數(shù)據(jù)包被定義為一個(gè)位序列的固定幀結(jié)構(gòu)。用戶數(shù)據(jù)區(qū)的長度在 27 到 251 個(gè)字節(jié)之間動(dòng)態(tài)變化。
BLE 應(yīng)用實(shí)例
在線百科全書 STMicro-Wiki 中有關(guān) STM32WBA MCU 的部分包含多個(gè)不同藍(lán)牙角色的應(yīng)用實(shí)例,包括:
· 廣播:BLE_Beacon
· 傳感器:BLE_HealthThermometer、BLE_HeartRate
· 網(wǎng)橋:BLE_SerialCom
· 路由器:BLE_p2pRouter
· 數(shù)據(jù):BLE_DataThroughput、BLE_p2pServer 和 Multi Slave BLE_p2pClient
· 射頻監(jiān)控器:BLE_TransparentMode
· 固件空中升級(jí):BLE_Fuota
設(shè)備設(shè)計(jì)人員和程序員可根據(jù)自己的 BLE 項(xiàng)目,將相應(yīng) GitHub 項(xiàng)目目錄中已編譯的二進(jìn)制文件燒錄到 NUCLEO 開發(fā)板上,然后啟動(dòng)與智能手機(jī)或臺(tái)式電腦的藍(lán)牙連接。必需的編程器軟件 STM32CubeProg 讓用戶能夠通過調(diào)試接口和引導(dǎo)程序接口,對設(shè)備內(nèi)存進(jìn)行讀取、寫入和驗(yàn)證。
運(yùn)行 BLE 實(shí)例“健康溫度計(jì)傳感器”
健康溫度計(jì)規(guī)范 (HTP) 是藍(lán)牙技術(shù)聯(lián)盟 (SIG) 制定的基于 GAP 的低功耗規(guī)范。其將健康溫度計(jì)收集器和健康溫度計(jì)傳感器結(jié)合在一起,在不同應(yīng)用中進(jìn)行連接和交換數(shù)據(jù)(圖 3)。
圖 3:作為傳感器/服務(wù)器的 NUCLEO 開發(fā)板與作為收集器/客戶端的智能手機(jī)之間的 BLE 通信。(圖片來源:STMicroelectronics)
健康溫度計(jì)傳感器:
· 測量溫度,并通過健康溫度計(jì)服務(wù)公布數(shù)據(jù)
· 包含遠(yuǎn)程設(shè)備要識(shí)別的設(shè)備信息服務(wù)
· 作為 GATT 服務(wù)器
健康溫度計(jì)收集器:
· 訪問健康溫度計(jì)傳感器提供的信息,并將其顯示給最終用戶,或者存儲(chǔ)在非易失性存儲(chǔ)器中,以便日后分析
· 作為 GATT 客戶端
將健康溫度計(jì)二進(jìn)制文件燒錄到 NUCLEO 的 MCU 上之后,開發(fā)人員需要按照以下步驟運(yùn)行 BLE 應(yīng)用實(shí)例:
使用智能手機(jī)應(yīng)用程序
1、在智能手機(jī)上安裝 ST BLE 工具箱。該應(yīng)用程序用于與 ST BLE 設(shè)備交互以及對其進(jìn)行調(diào)試。
2、為已燒錄健康溫度計(jì)應(yīng)用程序的 STM32WBA NUCLEO 開發(fā)板通電。
3、打開智能手機(jī)藍(lán)牙 (BT),在應(yīng)用程序中掃描可用的藍(lán)牙設(shè)備。選擇健康溫度計(jì)并連接。
使用網(wǎng)絡(luò)瀏覽器界面
1、確保瀏覽器的兼容性:
· 在臺(tái)式電腦上:Chrome、Edge 或 Opera
· 在智能手機(jī)設(shè)備上:安卓版 Chrome 瀏覽器
2、為已燒錄健康溫度計(jì)應(yīng)用程序的 STM32WBA NUCLEO 開發(fā)板通電。
3、在電腦上激活藍(lán)牙。
4、在瀏覽器中打開網(wǎng)頁 https://applible.github.io/Web_Bluetooth_App_WBA/。
5、點(diǎn)擊網(wǎng)頁頂部的連接按鈕,然后在設(shè)備列表中選擇 HT_xx,點(diǎn)擊配對。該設(shè)備現(xiàn)已連接。
6、點(diǎn)擊健康溫度計(jì)以顯示界面。
表 1 顯示了健康溫度計(jì)傳感器的服務(wù)結(jié)構(gòu)。128 位長度的全局唯一標(biāo)識(shí)符 (UUID) 可區(qū)分各個(gè)特征和服務(wù)。
表 1:“健康溫度計(jì)傳感器”GAP 的 GATT 服務(wù)及其 UUID。(圖片來源:STMicroelectronics)
來自 GitHub 的以下 JavaScript 序列顯示了網(wǎng)絡(luò)瀏覽器界面如何篩選不同的 GATT 數(shù)據(jù)吞吐量特征(清單 1)。
[...]
// Filtering the different datathroughput characteristics
props.allCharacteristics.map(element => {
switch (element.characteristic.uuid) {
case "00002a1c-0000-1000-8000-00805f9b34fb":
IndicateCharacteristic = element; // Temperature Measurement (TEMM)
IndicateCharacteristic.characteristic.startNotifications();
IndicateCharacteristic.characteristic.oncharacteristicvaluechanged =
temperatureMeasurement;
break;
case "00002a1d-0000-1000-8000-00805f9b34fb":
ReadCharacteristic = element; // Temperature Type
readTemperatureType();
break;
case "00002a1e-0000-1000-8000-00805f9b34fb":
NotifyCharacteristic = element; //Immediate Temperature
NotifyCharacteristic.characteristic.startNotifications();
NotifyCharacteristic.characteristic.oncharacteristicvaluechanged = notifHandler;
break;
case "00002a21-0000-1000-8000-00805f9b34fb":
ReadWriteIndicateCharacteristic = element; // Measurement Interval
readMeasurementInterval();
break;
default:
console.log("# No characteristics found..");
}
});
[...]
清單 1:此 JavaScript 序列可篩選表 1 中的不同 GATT 數(shù)據(jù)吞吐量特征。(清單來源:GitHub、STMicroelectronics)
跟蹤 BLE 堆棧進(jìn)程
NUCLEO-WBA52CG 嵌入了 ST-LINK/V3 在線調(diào)試器和編程器,支持 STM32 虛擬 COM 端口驅(qū)動(dòng)程序,可通過串行接口與 PC 通信。任何軟件終端都可以打開該串行通信端口,顯示由 APP_DBG_MSG 函數(shù)在代碼中生成的文本短消息。
項(xiàng)目內(nèi)的跟蹤需要在 app_conf.h 文件中啟用
#define CFG_DEBUG_APP_TRACE (1)
另外,智能手機(jī)應(yīng)用程序“SE BLE Toolbox”在<應(yīng)用程序日志>選項(xiàng)卡上提供了跟蹤功能。
BLE 5.3 應(yīng)用程序編程
為了對 STM32WBA52 MCU 進(jìn)行編程,STM 推出了由硬件抽象層 (HAL)、低層應(yīng)用程序編程接口 (API)、CMSIS、文件系統(tǒng)、RTOS、BLE/802.15.4、線程和 Zigbee 堆棧組成的 STM32CubeWBA 軟件包,以及在 STMicroelectronics 電路板上運(yùn)行的實(shí)例。
每個(gè) NUCLEO-WBA52CG BLE 應(yīng)用程序?qū)嵗及m用于 IAR Embedded Workbench for Arm (EWARM)、Keil MDK-ARM 和 STM32CubeIDE 等所有三種開發(fā)環(huán)境 (IDE) 的項(xiàng)目結(jié)構(gòu)設(shè)置。
在健康溫度計(jì)實(shí)例中,只有項(xiàng)目目錄樹(圖 4 左側(cè)框架)中的特定文件才會(huì)生成 GATT 服務(wù)。表 1 中的“健康溫度計(jì)服務(wù)”(hts) 和“設(shè)備信息服務(wù)”(dis) 這兩個(gè)例程并行運(yùn)行(圖 4 右下方)。
圖 4:程序員可以在框架代碼文件(左)中添加自己的 GATT 內(nèi)容;這些文件會(huì)生成 GATT 服務(wù)(右)。(圖片來源:STMicroelectronics)
程序員可將源代碼用于自己的項(xiàng)目,并在標(biāo)記 USER CODE BEGIN/USER CODE END 的區(qū)域內(nèi)進(jìn)行擴(kuò)展,添加他們的 GATT 內(nèi)容(清單 2)。文件 hts.c 中的初始化序列會(huì)生成 GATT 特性溫度測量 (TEMM),其 UUID 為 0x2A1C。
[...]
void HTS_Init(void)
{
[...]
/* TEMM, Temperature Measurement */
uuid.Char_UUID_16 = 0x2a1c;
ret = aci_gatt_add_char(HTS_Context.HtsSvcHdle,
UUID_TYPE_16,
(Char_UUID_t *) &uuid,
SizeTemm,
CHAR_PROP_INDICATE,
ATTR_PERMISSION_NONE,
GATT_DONT_NOTIFY_EVENTS,
0x10,
CHAR_VALUE_LEN_VARIABLE,
&(HTS_Context.TemmCharHdle));
if (ret != BLE_STATUS_SUCCESS)
{
APP_DBG_MSG(" Fail : aci_gatt_add_char command : TEMM, error code: 0x%2X ", ret);
}
else
{
APP_DBG_MSG(" Success: aci_gatt_add_char command : TEMM ");
}
/* USER CODE BEGIN SVCCTL_InitService2Char1 */
/* USER CODE END SVCCTL_InitService2Char1 */
[...]
}
[...]
清單 2:文件 hts.c 中的初始化序列會(huì)生成 GATT 特性 TEMM。(圖片來源:GitHub、STMicroelectronics)
外部元器件要求
STM32WBA52 無線 MCU 只需少量外部元器件即可實(shí)現(xiàn)基本的藍(lán)牙功能操作。這些元器件包括用于提供電壓的電容器、晶體振蕩器、帶阻抗匹配的印刷電路板天線,以及諧波濾波器(圖 5)。
圖 5:為實(shí)現(xiàn)藍(lán)牙功能,STM32WBA52 的射頻終端連接到阻抗匹配網(wǎng)絡(luò)、諧波濾波器和天線。(圖片來源:STMicroelectronics)
總結(jié)
無線物聯(lián)網(wǎng)設(shè)備開發(fā)人員必須縮短設(shè)計(jì)周期并降低成本,才能在快速發(fā)展的市場中競爭。然而,射頻設(shè)計(jì)非常具有挑戰(zhàn)性。STM32WBA52 MCU 集成 BLE 5.3 接口,使開發(fā)人員能夠經(jīng)濟(jì)高效地快速將產(chǎn)品推向市場。預(yù)編程的 BLE 堆棧和多個(gè) BLE 應(yīng)用實(shí)例為定制項(xiàng)目提供了編程模板,可輕松插入 GATT 內(nèi)容。
(作者:Jens Wallmann)
免責(zé)聲明:本文為轉(zhuǎn)載文章,轉(zhuǎn)載此文目的在于傳遞更多信息,版權(quán)歸原作者所有。本文所用視頻、圖片、文字如涉及作品版權(quán)問題,請聯(lián)系小編進(jìn)行處理。
推薦閱讀:
最大程度提高對汽車以太網(wǎng)應(yīng)用的ESD保護(hù)
關(guān)于電阻溫度系數(shù)、測量和結(jié)構(gòu)影響 這篇文章說透了