扫码加入

  • 正文
  • 相关推荐
申请入驻 产业图谱

BlueNRG 系列协处理器全面解读:架构、技术与实操指南

01/27 12:26
237
加入交流群
扫码加入
获取工程师必备礼包
参与热点资讯讨论

蓝牙低功耗(BLE)物联网应用中,协处理器模式凭借 “功能拆分、高效协同” 的核心优势成为主流设计方案。意法半导体 BlueNRG 系列芯片自初代 BlueNRG-MS 起便原生支持协处理器模式,既延续了 AT 指令模式 “高内聚、低耦合” 的特点,又在灵活性、低功耗控制及交互能力上实现全面升级。本文基于 LAT1290 应用笔记(Rev 1.0),从核心定义、技术细节到实操配置,系统拆解 BlueNRG 协处理器的关键知识点,为工程师提供一站式技术参考。

资料获取:【应用笔记】LAT1290 BlueNRG系列的协处理器简介

1. 协处理器模式核心概述:定位与基础要求

1.1 核心架构逻辑

协处理器模式的核心是 “功能分工”:BLE 无线通信功能(如射频收发、协议栈运行)由 BlueNRG 芯片独立完成,应用层逻辑(如业务控制、数据处理)由外部 MCUMPU 或 PC 端承载。这种架构让硬件功能与应用开发解耦,既简化了调试流程,又能充分发挥 BlueNRG 在 BLE 通信上的优化优势。

1.2 核心优势对比 AT 指令模式

特性 协处理器模式 AT 指令模式
灵活性 支持自定义扩展,适配复杂场景 功能固定,扩展受限
功耗控制 支持睡眠 / 唤醒协同,续航更优 缺乏深度协同功耗管理
交互能力 支持 ACI/HCI 双指令集,通信效率更高 仅支持基础 AT 指令,交互维度有限

1.3 基础使用前提

使用协处理器模式需满足两个关键条件:
  • 硬件层面:BlueNRG 芯片需搭配带 UARTSPI 接口的外部处理器(MCU/MPU/PC);
  • 软件层面:BlueNRG 芯片需烧录 ST 扩展版 DTM 固件(Direct Test Mode)。该固件不仅支持 RF 性能测试(发射功率、接收灵敏度、频偏、谐波等指标检测),更是协处理器模式运行的核心支撑,同时可通过 BlueNRG GUI 工具实现便捷配置与调试。

2. 软件分层架构:两种方案适配不同场景

BlueNRG 协处理器提供两种软件分层架构,核心差异在于 Host 层与 Controller 层的部署分工,工程师可根据需求灵活选择:

2.1 主流架构(推荐优先选用)

  • 部署逻辑:BlueNRG 芯片集成完整的 Host 层(含通用访问配置文件 GAP、通用属性配置文件 GATT、安全管理器等协议组件)与 Controller 层(链路层 LL、物理层 PHY 等),外部 MCU/MPU 仅需聚焦应用层开发;
  • 交互方式:通过 ACI 指令(HCI 指令的扩展版本)实现数据通信,无需关注 BLE 协议栈细节;
  • 适用场景:绝大多数物联网设备,尤其适合资源有限或需快速迭代的项目。

2.2 特殊架构(自定义 Host 层场景)

  • 部署逻辑:BlueNRG 芯片仅运行 Controller 层,外部 MCU/MPU 需同时承载 Host 层协议与应用层;
  • 交互方式:通过标准 HCI 指令通信;
  • 启用条件:编译 DTM 固件时,需在 Preprocessor Symbols 中使能 “LL_ONLY” 宏定义;
  • 适用场景:需自定义 Host 层协议的特殊需求,使用频率较低。

3. 核心技术:ACI 指令格式与协议规范

3.1 指令基础与数据包类型

BLE 协议栈 ACI 指令基于蓝牙核心规范的标准 HCI 数据格式扩展,支持 6 类数据包类型,覆盖全场景通信需求:
数据包类型 类型标识 核心功能
HCI 命令数据包 0x01 外部处理器向 BlueNRG 发送控制指令
HCI ACL 数据包 0x02 异步无连接数据传输
HCI 同步数据包 0x03 同步数据传输(如音频流)
HCI 事件数据包 0x04 BlueNRG 反馈状态或事件(如连接成功)
HCI 扩展命令 0x81 自定义功能扩展指令
HCI 扩展事件 0x82 自定义事件反馈

3.2 详细格式查询路径

如需查看完整的 ACI 指令格式细节,可按以下路径检索:

打开 BlueNRG-LP/LPS SDK → index.html → Network Coprocessor (UART, SPI mode) → Bluetooth LE stack v3.x ACI Data format → Bluetooth LE stack v3.x ACI commands data format。

掌握指令格式可大幅提升通信调试时的问题定位效率。

4. DTM 工程选型:精准匹配需求的核心指南

BlueNRG SDK 提供多个 DTM 相关工程,工程师常因选型复杂陷入困惑。以下从工程分类、配置差异及推荐方案三方面梳理,简化选型流程:

4.1 核心工程分类

工程名称 核心特性 适用场景
DTM 默认 Full Stack(完整协议栈) 需完整 BLE 功能的复杂场景
DTM_basic 默认 Basic Stack(基础协议栈) 功能简单的轻量化场景
DTM_Updater 仅含 DTM boot 源码 需自定义 boot 程序的开发场景

4.2 工程配置细分(按通信接口)

打开 DTM 或 DTM_basic 工程后,可选择以下 6 种配置,核心分为 UART 和 SPI 两大类接口:
配置名称 通信接口 核心特点
UART UART 基础 DTM 功能,无升级代码
UART_WITH_UPDATER UART 含 DTM_Updater(启动代码)+ 完整 DTM 功能,推荐选用
UART_FOR_UPDATER UART Flash 第一页留空(偏移 0x2000),需用户自定义升级固件
SPI SPI 基础 DTM 功能,无升级代码
SPI_WITH_UPDATER SPI 含 DTM_Updater(启动代码)+ 完整 DTM 功能,推荐选用
SPI_FOR_UPDATER SPI Flash 第一页留空(偏移 0x2000),需用户自定义升级固件

4.3 选型建议

绝大多数应用优先选择 “UART_WITH_UPDATER” 或 “SPI_WITH_UPDATER”,二者具备完整的 DTM 功能与固件升级能力,无需额外开发 boot 程序,兼顾实用性与效率。

5. 协处理器配置实现:两种核心路径

5.1 基于 STM32CubeMX 软件包(快速适配)

若外部 MCU 为 STM32 系列,可直接使用 ST 官方软件包快速配置,支持的软件包包括:
  • X-CUBE-BLE1C(适配 BlueNRG-MS);
  • X-CUBE-BLE2(适配 BlueNRG-1/2);
  • X-CUBE-BLEMGR(适配 BlueNRG 全系列)。

5.2 基于源码移植(非 STM32 / 未适配型号)

若外部 MCU 为非 STM32 芯片或 ST 未适配型号(如 BlueNRG-LPS),需手动移植源码:
  • 移植路径:BlueNRG-LP/LPS DK x.x.x → Midlewares → ST → External_micro,核心文件含 HAL 库、SimpleBlueNRG-LP_HCI;
  • 适配关键:需实现 SPI / 串口初始化代码,并重新编写函数void Hal_Write_Serial(const void* data1, const void* data2, uint16_t n_bytes1, uint16_t n_bytes2)
  • 参考案例:SDK 工程下 External_Micro 目录的官方示例,可直接复用核心逻辑。

6. MCU 端软件处理框架:数据交互流程解析

MCU 与 BlueNRG 的交互分为 “MCU 主动发送” 和 “BlueNRG 主动发送” 两类,核心流程如下,掌握流程可快速定位通信故障:

6.1 MCU 主动发送数据(同步超时机制)

  1. 应用端调用aci_xxxx系列函数(如 BLE 连接、数据发送指令);
  2. 函数触发hci_send_req(),向 BlueNRG 发送数据;
  3. MCU 进入带超时的while(1)循环,等待接收队列hciReadPktRxQueue数据;
  4. BlueNRG 返回数据后,通过 IO 中断触发hci_tl_lowlevel_isr()函数,读取数据并压入队列;
  5. 队列接收数据后,aci_xxxx函数同步执行完成;若超时未接收,函数终止。

6.2 BlueNRG 主动发送数据(事件触发机制)

  1. BlueNRG 触发特定事件(如蓝牙连接成功、接收外部数据),通过 IO 口拉低通知 MCU;
  2. MCU 外部中断触发hci_tl_lowlevel_isr()函数,读取数据并压入hciReadPktRxQueue队列;
  3. 主循环函数hci_user_evt_proc()解析队列数据;
  4. 解析成功后触发对应xxx_event事件(应用定义则执行自定义函数,否则执行弱定义空函数)。

7. 交互时序图:串口 / SPI 通信关键流程

了解通信时序是优化低功耗、解决同步问题的核心,以下重点解析串口时序(SPI 时序可参考 SDK 文档):

7.1 串口接口交互时序(含睡眠 / 唤醒协同)

(1)MCU 主动发送 ACI 指令

  1. MCU 唤醒 BlueNRG 芯片;
  2. BlueNRG 唤醒完成,准备接收数据;
  3. MCU 通过串口发送数据(流控允许条件下);
  4. 数据发送完毕,MCU 释放 MCU_RTS;
  5. BlueNRG 允许进入睡眠,降低功耗。

(2)BlueNRG 主动发送数据

  1. BlueNRG 唤醒 MCU(通过 IO 中断);
  2. MCU 唤醒完成,准备接收数据;
  3. BlueNRG 通过串口发送数据(流控允许条件下);
  4. 数据发送完毕,BlueNRG 释放 MCU_CTS;
  5. MCU 允许进入睡眠,实现低功耗协同。

7.2 SPI 接口时序参考

SPI 时序细节可在 SDK 帮助文档中查询:index.html → Network Coprocessor (UART, SPI mode) → 协处理器 SPI 通信协议章节,文档含完整的时钟、数据传输、片选信号时序图

8. 核心总结:BlueNRG 协处理器的核心价值

  1. 兼容性广:支持 BlueNRG 全系列芯片,可搭配任何带 UART/SPI 接口的 MCU、MPU 或 PC 端;
  2. 灵活性强:两种软件分层架构 + 多类 DTM 工程配置,适配从简单到复杂的全场景需求;
  3. 低功耗优:睡眠 / 唤醒协同机制,大幅延长物联网设备续航;
  4. 开发高效:支持 STM32CubeMX 快速配置与源码移植两种方式,降低开发门槛;
  5. 调试便捷:标准化 ACI 指令格式 + 清晰交互时序,便于问题定位。

BlueNRG 系列协处理器通过 “标准化协议 + 灵活配置 + 低功耗优化” 的组合,成为 BLE 物联网应用的优选方案。无论是智能家居、医疗健康还是工业物联网场景,工程师均可基于本文梳理的知识点,快速完成架构选型、固件配置与调试优化,加速产品上市周期。

相关推荐