0 卖盘信息
BOM询价
您现在的位置: 首页 > 技术方案 >工业控制 > 如何快速且经济高效地将蓝牙5.3添加到边缘物联网设计中

如何快速且经济高效地将蓝牙5.3添加到边缘物联网设计中

来源:
2023-11-30
类别:工业控制
eye 135
文章创建人 拍明芯城

  作者:Jens Wallmann

  无情的竞争给物联网 (IoT) 设备开发商带来了压力,要求他们快速推出新的创新产品,同时降低成本并确保稳定、低功耗和安全的通信。传统的智能物联网终端节点包括用于实现边缘处理的微控制器单元 (MCU) 和用于连接的无线 IC。当设计团队缺乏有效解决方案所需的射频 (RF) 技能时,就会出现问题。

  为了按时完成、认证无线物联网设计并将其投入批量生产,开发人员需要提高开发流程的效率。提高开发过程效率的一种方法是使用具有集成蓝牙低功耗 (BLE) 无线接口的低功耗 MCU。

  本文介绍了意法半导体的超低功耗STM32WBA52 MCU 系列,并展示了开发人员如何使用 BLE 评估板、开发工具和应用示例来快速启动和运行 BLE 5.3 无线设计。其中包括编程和 MCU 接线的简要介绍。

  高安全级别省电无线MCU

  STM32WBA52 MCU 系列经过 BLE 5.3 认证,是一款经济高效的解决方案,使新手开发人员能够快速向其设备添加无线通信。这些微控制器基于具有 100 兆赫 (MHz) 时钟和 TrustZone 技术的Arm® Cortex®-M33 内核,可提供高水平的安全性、保护数据和知识产权 (IP),并防止黑客攻击和设备克隆。

  STM32WBA52CEU6无线 MCU 具有 512 KB 闪存和 96 KB 静态 RAM (SRAM),而 STM32WBA52CGU6变体则提供 1 兆字节 (Mbyte) 闪存和 128 KB SRAM。图 1 显示了采用 48 UFQFN 封装的 IC 的功能范围。顺便说一句,多达 20 个电容式触摸通道可实现密封设备的操作(无需机械按键)。

  

意法半导体STM32WBA52功能框图


  图 1:STM32WBA52 的功能框图显示了集成的 BLE 5.3 无线电、闪存和 SRAM 以及安全支持。 (图片来源:意法半导体)

  丰富的STM32Cube生态系统支持BLE应用的实施和编程。它包括 STM32CubeIDE 开发环境,以及 STM32CubeMX 外设配置器和代码生成器、STM32CubeMonitorRF 性能测试器以及用于人工智能 (AI) 的 STM32Cube.AI 桌面和云版本等工具。匹配的评估板NUCLEO-WBA52CG通过许多 BLE 示例应用程序和免费提供的源代码简化了原型设计并加速了验证。

  设备和数据安全

  STM32WBA52 产品线符合 IoT 安全标准 Platform Security Arm (PSA) Certified Level 3 和 IoT Platform Assurance Level 3 安全评估标准 (SESIP3)。基于安全隔离、内存保护、篡改保护和采用 Arm TrustZone 架构的 MCU Cortex-M33 的 PSA 安全计划增强了网络保护。 Arm Cortex-M (TF-M) 可信固件符合行业标准 PSA 认证安全框架,具有 PSA 不可变信任根 (RoT),包括安全启动和安全固件更新 (X-CUBE-SBSFU)、加密、安全存储和运行时证明。

  集成无线电最大限度地减少了 BOM

  集成的超低功耗无线电模块以 1 毫瓦 (mW) (dBm) 射频输出功率为参考,可提供 +10 分贝的噪声。它可实现短距离 (BLE 5.3) 和长距离(长距离)的可靠通信,数据速率高达 2 兆比特每秒 (Mbps)。当无线电通信处于活动状态时,深度待机低功耗模式可降低总体电力。 STM32WBA MCU 最多可支持 20 个同时连接。

  无线电模块电气性能特点:

  支持 BLE 5.3 的 2.4 GHz RF 收发器

  RX 灵敏度:-96 dBm(BLE,1 Mbps)

  可编程输出功率,高达 +10 dBm,步长为 1 dB

  集成巴伦

  由于高效的能源管理,电池更小

  STM32WBA52 MCU 具有多种节能技术,包括 STMicroElectronics 的低功耗直接内存访问 (LPDMA) 和具有快速唤醒时间的灵活节能状态。这些功能加在一起可将 MCU 功耗降低高达 90%,这意味着电池容量明显更小或电池寿命更长。

  FlexPowerControl的电气性能特点:

  1.71 至 3.6 伏电源

  140 纳安 (nA) 待机模式(16 个唤醒引脚)

  具有实时时钟 (RTC) 的 200 nA 待机模式

  2.4 微安 (μA) 待机模式,带 64 KB SRAM

  16.3 μA 停止模式,带 64 KB SRAM

  3.3V 时运行模式为 45μA/MHz

  无线电:Rx 7.4 毫安 (mA) / Tx @ 0 dBm 10.6 mA

  此外,蓝牙 5.3 可以在低占空比和高占空比之间更快地切换,使其比以前的版本更加节能。

  蓝牙堆栈和数据包的架构

  STM32WBA52 中的单核 Arm Cortex-M33 MCU 专为开发应用固件而设计,包括 BLE 堆栈(控制器和主机)上的配置文件和服务。 MCU 处理从最低物理层 (PHY) 的集成 RF 模块到通用属性配置文件 (GATT) 和通用访问配置文件 (GAP) 的数据流(图 2)。 GAP 定义和管理广告和连接,而 GATT 定义和管理输入/输出数据交换。

  

MCU 的图像处理从无线电 PHY 到 GATT 和 GAP 的数据流


  图 2:MCU 处理从无线电 PHY 到 GATT 和 GAP 的数据流。 (图片来源:意法半导体)

  BLE 发送的数据包被定义为比特序列的固定帧结构。用户数据区域的长度可以在 27 到 251 字节之间动态变化。

  BLE应用示例

  在线百科全书STMicro-Wiki for STM32WBA MCU 包含多个不同蓝牙角色的应用示例,包括:

  广告:BLE_Beacon

  传感器:BLE_HealthThermometer、BLE_HeartRate

  桥:BLE_SerialCom

  路由器:BLE_p2pRouter

  数据:BLE_DataThroughput、BLE_p2pServer 和多从设备 BLE_p2pClient

  RF 监视器:BLE_TransparentMode,

  无线固件更新:BLE_Fuota

  与自己的 BLE 项目相匹配,设备设计人员和程序员可以将编译后的二进制文件从相应的 GitHub 项目目录闪存到 NUCLEO 板,并启动与智能手机或台式电脑的蓝牙连接。所需的编程器软件STM32CubeProg通过调试接口和引导加载程序接口提供器件存储器的读取、写入和验证。

  运行 BLE 示例“健康温度计传感器”

  健康温度计配置文件 (HTP) 是蓝牙特别兴趣组 (SIG) 定义的基于 GAP 的低能耗配置文件。它结合了健康温度计收集器和健康温度计传感器,可在不同的应用程序中连接和交换数据(图 3)。

  

NUCLEO 板和智能手机之间的 BLE 通信图像(点击放大)


  图 3:作为传感器/服务器的 NUCLEO 板与作为收集器/客户端的智能手机之间的 BLE 通信。 (图片来源:意法半导体)

  健康温度计传感器:

  测量温度并通过健康温度计服务公开

  包含远程设备要识别的设备信息服务

  是 GATT 服务器

  健康温度计收集器:

  访问健康温度计传感器公开的信息,并将其显示给最终用户或将其存储在非易失性存储器上以供以后分析

  是 GATT 客户端

  将健康温度计二进制文件闪存到 NUCLEO 的 MCU 中后,开发人员需要按照以下步骤运行 BLE 应用示例:

  使用智能手机应用程序

  在智能手机上安装ST BLE Toolbox 。该应用程序用于与 ST BLE 设备交互并进行调试。

  打开 STM32WBA NUCLEO 板的电源,并闪现健康温度计应用程序。

  打开智能手机蓝牙 (BT) 并扫描应用程序中可用的 BT 设备。选择健康温度计并连接。

  使用网络浏览器界面

  确保浏览器兼容性:

  在台式计算机上:Chrome、Edge 或 Opera

  在智能手机设备上:Chrome Android

  打开 STM32WBA NUCLEO 板的电源,并闪现健康温度计应用程序。

  激活计算机上的蓝牙。

  在浏览器中打开网页https://applible.github.io/Web_Bluetooth_App_WBA/ 。

  点击网页顶部的连接按钮,然后在设备列表中选择HT_xx并点击配对。设备现已连接。

  点击健康温度计,显示界面。

  健康温度传感器的服务结构如表1所示。 128位长的通用唯一标识符(UUID)区分个体特征和服务。

  服务特征财产通用唯一标识符尺寸

  健康体温计服务0X1809

  温度测量表明0x2A1C13

  温度型读0x2A1D1

  中间温度通知0x2A1E13

  测量间隔读、写、指示0x2A212

  设备信息服务0X180A

  制造商名称字符串读0x2A2932

  型号字符串读0x2A2432

  系统ID读0x2A238

  表 1:“健康温度计传感器”GAP 的 GATT 服务及其 UUID。 (图片来源:意法半导体)

  以下来自GitHub的 JavaScript 序列显示了 Web 浏览器界面如何过滤不同的 GATT 数据吞吐量特征(清单 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 数据吞吐量特征。(列表来源:GitHub、STMicroElectronics)

  跟踪 BLE 堆栈进程

  NUCLEO-WBA52CG 嵌入 ST-LINK/V3 在线调试器和编程器,支持 STM32 虚拟 COM 端口驱动程序,通过串行接口与 PC 进行通信。任何软件终端都可以打开该串行通信端口来显示函数APP_DBG_MSG在代码中生成的短文本消息。

  项目内的跟踪需要在文件 app_conf.h 中启用

  #定义CFG_DEBUG_APP_TRACE (1)

  或者,智能手机应用程序“SE BLE Toolbox”在选项卡 <应用程序日志> 上提供跟踪功能。

  BLE 5.3 应用程序编程

  为了对 STM32WBA52 MCU 进行编程,STM 整合了STM32CubeWBA 包,其中包括硬件抽象层 (HAL)、低层应用程序编程接口 (API) 和 CMSIS、文件系统、RTOS、BLE/802.15.4、线程和Zigbee 堆栈以及在 STMicroelectronics 板上运行的示例。

  每个NUCLEO-WBA52CG BLE 应用示例 中都包含所有三种开发环境 (IDE) 的项目结构设置,例如 IAR Embedded Workbench for Arm (EWARM)、Keil MDK-ARM 和 STM32CubeIDE 。

  在健康温度计示例中,只有项目目录树(图 4 左侧的框架)中的特定文件生成 GATT 服务。表 1 中的两个例程“健康温度计服务”(hts) 和“设备信息服务”(dis) 并行运行(图 4 的右下角)。

  

图中程序员可以将自己的GATT内容添加到框架代码文件中(点击放大)


  图4:程序员可以将自己的GATT内容添加到框架代码文件中(左);这些文件生成 GATT 服务(右)。 (图片来源:意法半导体)

  程序员可以将源代码用于自己的项目,并在标有 USER CODE BEGIN / USER CODE END 的区域中使用 GATT 内容对其进行扩展(清单 2)。文件 hts.c 中的初始化序列生成携带 UUID 0x2A1C 的 GATT 特性温度测量 (TEMM)。

  复制

  [...]

  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 中的初始化序列生成 GATT 特征 TEMM。 (图片来源:GitHub、意法半导体)

  外部元件要求

  STM32WBA52 无线 MCU 只需几个外部组件即可实现蓝牙功能的基本操作。其中包括电源电容器晶体振荡器、具有阻抗匹配的印刷电路板 (PC 板) 天线以及谐波滤波器。

  结论

  无线物联网设备的开发人员需要缩短设计周期并降低成本,以便在快速发展的市场中竞争。然而,射频设计具有挑战性。 STM32WBA52 MCU 具有集成的 BLE 5.3 接口,使开发人员能够快速且经济高效地进入市场。预编程的 BLE 堆栈和多个 BLE 应用示例构成了自定义项目的编程模板,可轻松插入 GATT 内容。


责任编辑:David

【免责声明】

1、本文内容、数据、图表等来源于网络引用或其他公开资料,版权归属原作者、原发表出处。若版权所有方对本文的引用持有异议,请联系拍明芯城(marketing@iczoom.com),本方将及时处理。

2、本文的引用仅供读者交流学习使用,不涉及商业目的。

3、本文内容仅代表作者观点,拍明芯城不对内容的准确性、可靠性或完整性提供明示或暗示的保证。读者阅读本文后做出的决定或行为,是基于自主意愿和独立判断做出的,请读者明确相关结果。

4、如需转载本方拥有版权的文章,请联系拍明芯城(marketing@iczoom.com)注明“转载原因”。未经允许私自转载拍明芯城将保留追究其法律责任的权利。

拍明芯城拥有对此声明的最终解释权。

相关资讯

方案推荐
基于MC33771主控芯片的新能源锂电池管理系统解决方案

基于MC33771主控芯片的新能源锂电池管理系统解决方案

AMIC110 32位Sitara ARM MCU开发方案

AMIC110 32位Sitara ARM MCU开发方案

基于AMIC110多协议可编程工业通信处理器的32位Sitara ARM MCU开发方案

基于AMIC110多协议可编程工业通信处理器的32位Sitara ARM MCU开发方案

基于展讯SC9820超低成本LTE芯片平台的儿童智能手表解决方案

基于展讯SC9820超低成本LTE芯片平台的儿童智能手表解决方案

基于TI公司的AM437x双照相机参考设计

基于TI公司的AM437x双照相机参考设计

基于MTK6580芯片的W2智能手表解决方案

基于MTK6580芯片的W2智能手表解决方案