1. 文档基础定位与适用场景
AN5270 是意法半导体专为 STM32WB 系列双核蓝牙 MCU 推出的官方应用笔记,核心讲解 BLE 通信整套 ACI、HCI 指令集,适配基于 Cortex-M4(应用核)+Cortex-M0+(射频协议核)架构的全部 WB 芯片,是穿戴设备、传感器信标、智能家居、医疗便携设备 BLE 开发的核心参考手册。
文档区别于通用蓝牙规范:除蓝牙 SIG 标准 HCI 指令外,新增 ST 自研厂商专有 ACI 指令,覆盖底层射频、功率、安全、GAP/GATT/L2CAP 全链路控制,同时划分LO/PO/BO/BF/LB五种协议栈裁剪模式,开发者可根据产品功能精简协议栈,大幅降低 RAM、Flash 占用与待机功耗。
五种 BLE 协议栈模式说明
| 模式缩写 | 全称 | 适用产品 | 指令支持范围 |
|---|---|---|---|
| LO | Link layer only 仅链路层 | 极简信标、单向广播传感器 | 仅底层射频、广播、测试指令,无连接逻辑 |
| PO | Peripheral only 仅外设 | 手环、传感器、从机外设 | 外设广播、GATT 服务、配对安全指令 |
| BO | Beacon only 仅信标 | 商场定位、资产标签 | 仅广播相关指令,禁止建立连接 |
| BF | Basic feature 完整基础栈 | 通用双模设备(主 / 从) | 全部 HCI+ACI 标准指令,支持扫描、连接、GATT、安全 |
| LB | Link layer basic 基础链路 | LO 模式扩展,极简双向通信 | 链路层基础指令,简化连接逻辑 |
资料获取:【应用笔记】STM32WB 低功耗蓝牙无线接口
2. STM32WB 蓝牙接口两层指令体系拆解
AN5270 将 BLE 交互指令划分为标准 HCI 指令、ST 专有 ACI 指令两大体系,二者共用 HCI 数据包格式,操作码区分标准 / 厂商自定义,开发时分层调用、各司其职。
2.1 标准 HCI 指令(蓝牙 SIG 通用规范)
遵循蓝牙核心规范 V5.3 定义,是所有 BLE 芯片通用底层控制指令,负责射频、连接、事件管控,分为四大子类:
- 基础控制指令代表指令:
HCI_RESET(0x0C03)、HCI_DISCONNECT(0x0406)、HCI_SET_EVENT_MASK(0x0C01)- HCI_RESET:仅复位 BLE 链路层,不复位硬件,复位后自动切待机,发送新指令前需预留 100ms 延时,用于存储安全信息至 Flash;
- HCI_DISCONNECT:断开指定连接句柄链路,断开前必须释放同链路所有同步连接,断开事件携带故障原因码(验证失败、资源不足、电源断开等)。
- BLE 专用 LE 链路指令(文档占比最高):覆盖广播、扫描、连接、参数更新、地址隐私、PHY 切换、数据长度扩展、白名单 / 解析列表功能:
- 广播类:
HCI_LE_SET_ADVERTISING_PARAMETERS配置广播间隔、通道、地址类型;HCI_LE_SET_ADVERTISING_DATA填充 31 字节传统广播数据;扩展广播配套多套 EXT 系列指令支持多广播集; - 连接类:
HCI_LE_CREATE_CONNECTION发起连接,HCI_LE_CONNECTION_UPDATE动态修改连接间隔、从机延迟;隐私安全:RPA 可解析私有地址整套指令,管理 IRK 身份解析密钥,实现设备地址匿名防追踪;PHY 控制:支持 1M/2M 速率切换,STM32WB 不支持编码 PHY。
- 广播类:
- RF 测试专用指令:
HCI_LE_TRANSMITTER_TEST/HCI_LE_RECEIVER_TEST,用于产线射频校准、功率验证,支持自定义信道、数据包载荷类型,测试结束通过HCI_LE_TEST_END统计收发包数量。 - 主机流控指令:
HCI_HOST_BUFFER_SIZE、HCI_HOST_NUMBER_OF_COMPLETED_PACKETS管控 M4 与 M0 + 之间数据包缓冲区,防止数据溢出,低功耗设备必配流控逻辑。
2.2 ST 专有 ACI 厂商指令(0xFC/0xFD 开头操作码)
这是 STM32WB 独有扩展指令,通用 HCI 格式但厂商私有操作码,分为 HAL 底层、GAP、GATT、L2CAP 四大模块,覆盖上层应用逻辑,弥补标准 HCI 缺失的芯片专属功能:
- ACI_HAL 硬件射频指令:管控芯片底层射频、功耗、固件、调试:设置发射功率等级(0x04~0x1F 对应 - 17.6~+6dBm)、开启载波单音调试、读取原始 RSSI、配置射频路径补偿、协议栈软复位等,是功耗优化核心接口。
- ACI_GAP 通用访问层指令:管控设备可见性、配对绑定、广播模式、白名单 / 解析列表管理:
- 可发现模式:有限发现(180s 超时)、永久可发现、定向广播;
- 安全配对:设置 IO 能力、配对密钥响应、OOB 带外数据交互、绑定设备管理;扩展多信标独立广播,支持多路互不干扰广播信号输出。
- ACI_GATT 属性协议指令:外设开发核心,用于创建 / 管理 BLE 服务、特征、描述符:
ACI_GATT_ADD_SERVICE新建服务、ACI_GATT_ADD_CHAR添加读写通知特征、ACI_GATT_UPDATE_CHAR_VALUE发送通知 / 指示,配套长数据分片读写、多特征批量通知指令,适配大容量传感器数据传输。 - ACI_L2CAP 指令:支持连接参数更新、COC 面向连接信道(BLE 大数据分包传输),适合音频、高速传感场景。
3. 核心事件机制:BLE 交互异步逻辑设计
AN5270 完整定义 HCI/ACI 事件体系,所有指令执行结果、射频广播、配对、数据交互均以异步事件上报应用核,而非同步返回,是 STM32WB 开发关键逻辑:
- 基础事件:
HCI_COMMAND_COMPLETE_EVENT(指令执行完成)、HCI_COMMAND_STATUS_EVENT(指令执行状态); - 链路事件:断开完成、加密状态变更、广播上报、连接完成、PHY 更新事件;
- 安全事件:LTK 长期密钥请求、配对交互事件;
- GATT 专属:通知、指示、读写请求、MTU 交换事件。配套
HCI_SET_EVENT_MASK、ACI_GAP_SET_EVENT_MASK掩码指令,可屏蔽无用事件减少 M4 中断,大幅降低运行功耗,电池类产品优化重点。
4. 开发落地核心实用要点(源自 AN5270 实操规范)
4.1 广播与连接时序规范
- 传统广播数据最大 31 字节,扩展广播支持超大包,可配置多组独立广播句柄;
- 广播间隔单位 0.625ms,可连接广播最小间隔不低于 20ms,不可连接信标最低 100ms;
- 断开链路后必须等待 100ms 再发送新指令,否则安全密钥存储失败。
4.2 功耗优化关键指令
ACI_HAL_SET_TX_POWER_LEVEL按需降低发射功率,近距离设备可降至 0dB 以下,减少射频耗电;- 关闭无用事件掩码,过滤广播重复上报、闲置 GATT 事件;
- 从机侧通过
ACI_HAL_SET_SLAVE_LATENCY开启从机延迟,延长休眠时长; - 选用 BO/LO 极简协议栈裁剪,移除连接、GATT 功能,Flash 占用减少 40% 以上。
4.3 隐私与安全开发规范
- 启用地址解析列表存储 IRK 密钥,使用 RPA 私有地址,避免设备 MAC 泄露;
- 配对流程支持数字比对、密钥输入、OOB 三种验证方式,可配置加密密钥长度 7~16 字节;
- 可通过
ACI_GAP_CLEAR_SECURITY_DB一键清空所有绑定设备,适用于设备恢复出厂逻辑。
4.4 数据传输配置
- 通过
HCI_LE_SET_DATA_LENGTH调整单包最大载荷,提升传输速率; - COC L2CAP 信道适合 KB 级连续数据,突破 ATT MTU 限制;
- 特征通知发送需判断协议栈缓冲区状态,避免数据包丢失。
5. 文档工程应用价值
- 协议栈裁剪依据:产品功能匹配 LO/PO/BO/BF 栈,精准缩减存储与功耗,是低成本、电池供电设备优化手册;
- 指令速查手册:替代零散 SDK 注释,完整覆盖所有 BLE 底层、上层接口参数、取值范围、生成事件;
- 射频产测标准:内置全套 RF 收发测试指令,直接用于产线校准、距离性能验证;
- 故障排查参考:每个指令携带状态错误码定义,断连、配对失败、广播异常均可对照文档定位根因。
6. 延伸 FAQ
Q1:AN5270 适配哪些 STM32WB 芯片?
A:全系列 STM32WB(WB15/WB35/WB50/WB55),匹配 STM32CubeWB 官方固件包。
Q2:HCI 和 ACI 指令调用先后顺序?
A:先通过 HCI 完成链路初始化、事件掩码配置,再调用 ACI 执行 GAP/GATT 上层业务。
Q3:BO 信标模式能否建立 BLE 连接?
A:不能,BO 栈仅保留广播指令,连接相关 HCI/ACI 全部不可用。
AN5270 并非单纯指令表格手册,而是 STM32WB 整套 BLE 无线接口的完整工程规范,打通标准蓝牙 SIG 底层 HCI 与 ST 私有 ACI 扩展指令,区分五种轻量化协议栈适配不同硬件产品。开发者阅读时可按场景分层:信标设备优先查阅 LO/BO 模式广播指令;传感从机聚焦 GAP/GATT 外设 ACI;高速数据传输关注 L2 COC 与数据长度指令;功耗优化重点研读 HAL 射频功率、事件掩码相关接口。
基于这份应用笔记搭建 BLE 业务逻辑,可大幅减少 SDK 试错成本,同时实现低功耗、高安全性、稳定无线通信的产品设计。
507