引言 本应用笔记旨在指导设计者基于STM32WB系列微控制器,完成构建特定低功耗蓝牙®(BLE) 或802.15.4应用所需的步骤。它汇集了最重要的信息,并且列出了需要处理的方面。 为了充分利用本文档中的信息进行应用开发,用户必须熟悉STM32微控制器、BLE技术、 802.15.4 OpenThread协议和802.15.4 MAC层,并且必须理解诸如低功耗管理和任务调度等 系统服务 1 参考 [1] UM2550(1)面向STM32WB系列的STM32CubeWB入门 [2] RM0434(1) 基于使用FPU的多协议无线32位MCU Arm® Cortex®-M4蓝牙®低功耗和802.15.4无线解决方案 [3] AN5270(1) STM32WBx5 蓝牙®低功耗(BLE)无线接口 [4] UM2442(1) STM32WB HAL与底层驱动程序说明 w4 V2 b; @8 z g: J [5] UM2288(1) 用于无线性能测量的STM32CubeMonitor-RF软件工具 [6] AN5185(1) STM32WB系列的ST固件升级服务. a# ]0 A8 V* t5 I3 J9 O. E [7] 蓝牙®规范 蓝牙核心规范(v4.0、v4.1、v4.2和v5.0)2 F# H0 N$ F8 V2 B [8] MAC IEEE Std 802.15.4-2011 802_15_4 MAC标准规范9 j3 P& o: }, Q: e+ ]; N/ Y [9] Thread规范 Thread规范V1.1(Thread组)" _& `4 L% Q6 h# X 2 缩写和缩略语列表0 [* O9 G! Y" m9 d; b7 v# W2 b! Z & B% S+ b6 b! I, W- v ACI 应用命令接口$ ?: P4 V& d6 [ ATT 属性协议, x8 M9 _8 F& _* o6 A BLE 低功耗蓝牙® CLI 命令行接口 CoAP 受限应用协议 CPU1 Cortex®-M4内核 CPU2 Cortex®+M0内核 D2D 器件到器件; o6 O7 ^5 W: X# l$ r5 f) S DUT 被测器件 FUOTA 无线固件更新6 `! G7 B4 B1 l# n7 R( F; `0 V FUS 固件升级服务 GAP 通用访问配置文件 GATT 通用属性参数文件 HCI 主机控制器接口/ d( p* r% t# V6 J" }" k' e L2CAP 逻辑链路控制和适配协议. U; U5 K7 | ^# T/ a LTK 长期密钥' i9 X) n) i8 b1 f OTA 无线* N, K4 c# n8 _2 ^% y PDU 协议数据单元 P2P 点对点0 p+ D( B% a" ?2 [9 n5 R3 I RFU 保留供将来使用 SIG 技术联盟 {. z- f5 h' c$ x% T SM 安全管理器 UUID 通用唯一标识符1 O/ p" F" P: A2 ]2 z J 7 b w0 S; K' x6 a$ J! Q C 3 软件概述1 k2 I8 Z1 X8 Y$ `1 M% m# z 3.1 所支持的无线协议栈. q" s, j( @5 Z. g$ u STM32WB系列微控制器基于Arm®(a)内核。$ n0 H* V, o# G/ ` 根据目标应用选择要加载的CPU2固件。; O. }% h/ P6 Z \; u STM32WB系列微控制器生态系统支持不同的无线协议栈(参见表 1),由应用通过特定接口! |: m1 ?. I# i! z0 R 进行控制,如图 1所示。* n& \7 d1 j$ S1 l 如图 2所示,CPU2可以提供BT HCI标准接口,CPU1上可以运行其他BLE无线协议栈。, X6 n9 c, N! A8 N8 _: u0 j. S: k . @% o5 o$ L5 t' k- z* o 8 f# w7 ?/ l( c3 _ 3.2 BLE应用( t) v8 I9 m4 U0 \1 r$ C STM32WB架构分离了BLE配置文件和应用,应用在CPU1上运行,BLE外设提供实时性。 BLE外设包含了CPU2处理器,其中包含用于处理链路层直到GAP及GAP层的无线协议栈。此外,它还包含了2.4 GHz无线射频部分。+ L0 j% G, B; V4 r: F CPU1收集并计算要传输到BLE的应用数据。 CPU2包含管理所有实时链路层和无线PHY交互所需的LE控制器和LE主机,包括:! t6 C5 |( R' P7 x3 m N. F • 低功耗管理器,用于控制低功耗模式& a6 T8 s% c! |1 o • 调试跟踪工具,用于输出活动的相关信息 • 信箱(Mailbox) / IPCC,用于连接BLE无线协议栈(LL、GAP和GATT) 4 a" A+ Z4 o2 q* o7 }8 Y 3.3 在HCI层接口之上构建BLE应用* J& A& e* u( q( P" K. G. V1 X* w" } CPU2 可用作 BLE HCI 层协处理器。在这种情况下,用户要么实现自己的 HCI 应用程序,要么使用现有的开源 BLE 主机协议栈。7 M: ^0 A) j: ^# e! b; n# o7 v6 W, g 大多数 BLE 主机协议栈使用 UART 接口与 BLE HCI 协处理器进行通信。STM32WB系列微控制器的等效物理层是信箱(mailbox),如第 13.2节:信箱(Mailbox)接口所述。 信箱(Mailbox)为BLE通道和系统通道提供了一个接口。BLE主机协议栈负责构建要通过信箱(Mailbox)上BLE通道发送的命令缓冲区,并且必须提供接口用于报告通过信箱(Mailbox)接收到的事件。除了通过信箱(Mailbox)完成BLE主机协议栈自适应,用户还必须在可以发布异步数据包时通知信箱(Mailbox)驱动程序。 系统通道不由 BLE 主机协议栈处理。用户必须实现自定义传输层,以构建要发送到信箱(Mailbox)驱动程序的系统命令缓冲区并管理从信箱(Mailbox)接收到的事件(包括向信箱(Mailbox)驱动程序释放异步缓冲区的通知),或者也可以使用信箱(Mailbox)扩展驱动程序(如第 13.3节:信箱(Mailbox)接口 - 扩展所述),以便在负责构建系统命令缓冲区和管理系统异步事件的传输层之上提供接口。 BLE_TransparentMode项目可用作使用信箱(Mailbox)在BLE HCI层协处理器之上构建应用(如第 11.2节:Thread_Coap_DataTransfer所述)的例子。 3.4 Thread应用 OpenThread协议栈运行在CPU2内核上,并在CPU1侧导出一组API,以便构建完整的Thread应用。三个CPU2固件支持Thread协议: • sm32wb5x_Thread_FTD_fw:在这种情况下,设备支持除边界路由器外的所有Thread角色 (例如:主导设备(Leader)、路由器、终端设备和休眠终端设备)。 • stm32wb5x_Thread_MTD_fw:在这种情况下,设备只能充当终端设备或休眠终端设备)。 相比于FTD配置,这种配置更节省存储空间。 • stm32wb5x_BLE_Thread_fw:在这种情况下,设备在静态并发模式下同时支持Thread (FTD)和BLE(请参考第 3.6节获取更多信息)。 $ H) D2 d0 P1 i 3.5 MAC 802_15_4应用" ~8 f& Y# Y/ s 在下载STM32wb5x_Mac_802_15_4_fw CPU2固件时,CPU1可以直接访问802_15_4 MAC层并在这一层之上构建自己的应用。$ ?0 p) L h, [& _1 c8 l& l. K 3.6 BLE和Thread应用并发模式2 ` a- S7 X; {' D- r STM32WB系列微控制器支持 “静态并发模式”(也称“开关模式”)。通过系统应用命令完成从一种协议到另一种协议的切换。在该模式下,系统在激活另一种协议前禁用正在使用的协议。STM32WB器件在完全停止 BLE无线协议栈后从BLE切换至Thread,反之亦然。可能需要几秒钟的时间完成此类过渡,因为每次都需要重新连接网络。8 f. p' H4 q1 E P S' @ _ 完整版请查看:附件5 z4 t- z0 W: x" O ` 8 Y: h+ m7 p! O, V) | |
使用STM32WB系列微控制器构建无线应用.pdf
下载4.27 MB, 下载次数: 4
STM32WBA55上手BLE点灯
STM32WB基于Custom Template实现客户定制BLE私有协议
STM32 生态系统|基于STM32WB的低功耗蓝牙应用(一)
【NUCLEO-WB09KE评测】BLE创建服务和写特征控制LED
【NUCLEO-WB09KE评测】+使用STM32CubeMX新建蓝牙工程
【NUCLEO-WB09KE评测】创建BLE工程和开启调试信息
【NUCLEO-WB09KE评测】BLE例程HeartRate及工具探索
【NUCLEO-WB09KE评测】使用I2C点亮一个OLED
【NUCLEO-WB09KE评测】STM32WB09KE的内部BootLoader使用
【NUCLEO-WB09KE评测】USART的printf和GPIO的使用