在低功耗蓝牙技术成为物联网主流连接方式的今天,开发者对蓝牙芯片的性能、功耗和功能丰富度提出了更高要求。意法半导体推出的 BlueNRG-LP 和 BlueNRG-LPS 系列芯片,凭借对 BLE 5.2 规范的全面支持、极低的功耗和丰富的外设,成为了众多物联网项目的首选。本文将基于官方应用笔记 UM2735,全面解析这两款芯片对应的四款开发套件,从硬件特性、开发环境搭建到典型应用实战,帮助开发者快速上手。
资料获取:【应用笔记】UM2735 BlueNRG-LP/BlueNRG-LPS 开发套件
1. 四款开发板硬件对比与核心特性
意法半导体为 BlueNRG-LP 和 BlueNRG-LPS 系列提供了四款不同的开发套件,分别针对不同的封装和应用场景。虽然它们的核心功能相似,但在硬件配置和接口上存在一些差异,开发者可以根据自己的需求选择合适的型号。
1.1 核心芯片:BlueNRG-LP vs BlueNRG-LPS
两款芯片都基于 Arm Cortex-M0 + 内核,专为低功耗蓝牙应用优化:
- BlueNRG-LP:提供 256KB Flash 和 64KB RAM,支持 BLE 5.2 的所有主要特性,包括 2Mbps、远程模式、扩展广播、周期广播和 LE 功率控制
- BlueNRG-LPS:在 BlueNRG-LP 的基础上增加了对到达角 (AoA) 和离去角 (AoD) 测向功能的支持,Flash 为 192KB,RAM 为 24KB,适合需要室内定位的应用
1.2 四款开发板型号与差异
| 开发板型号 | 核心芯片 | 封装 | 天线类型 | USB 接口 | 麦克风 |
|---|---|---|---|---|---|
| STEVAL-IDB011V1 | BlueNRG-355MC | QFN48 | SMA 外接天线 | Micro-USB | 有 |
| STEVAL-IDB011V2 | BlueNRG-355MC | QFN48 | SMA 外接天线 | Micro-USB | 有 |
| STEVAL-IDB010V1 | BlueNRG-355VC | WLCSP49 | 板载芯片天线 | USB Type-C | 有 |
| STEVAL-IDB012V1 | BlueNRG-332AC | QFN32 | PCB 天线 | USB Type-C | 无 |
其中,STEVAL-IDB011V2 是 V1 的改进版,主要更换了集成滤波器为分立元件,其他功能基本一致。STEVAL-IDB010V1 采用了更小的 WLCSP 封装,适合评估紧凑型设计。STEVAL-IDB012V1 是唯一支持测向功能的开发板。
1.3 板载外设与接口
所有四款开发板都配备了丰富的外设,满足大多数物联网应用的开发需求:
- 人机交互:3 个用户 LED、1 个 RGB LED、2 个用户按钮、1 个复位按钮
- 传感器:LSM6DSOX 3D 加速度计 / 陀螺仪、LPS22HH 压力传感器(内置温度传感器)
- 扩展接口:标准 Arduino Uno 连接器,兼容大量 Arduino 扩展板
- 调试接口:板载 CMSIS-DAP 调试器 / 编程器,支持虚拟 COM 端口和拖放编程
1.4 灵活的电源系统与电流测量
开发板提供了三种供电方式,适应不同的测试场景:
对于低功耗应用开发,精确测量芯片的电流消耗至关重要。开发板专门设计了电流测量跳线:
- 对于 STEVAL-IDB011V1/V2,移除 JP1 跳线,串联电流表即可测量 BlueNRG-LP 的电流
- 对于 STEVAL-IDB010V1/IDB012V1,移除 JP_VBLUE 跳线进行测量
由于 BlueNRG 系列的功耗非常低,建议使用量程为几微安的高精度电流表或功率分析仪。
1.5 CMSIS-DAP 调试器:无需额外编程器
所有开发板都集成了 CMSIS-DAP 调试器,这是一个非常实用的设计。它不仅可以作为编程器和调试器,还提供了 USB 转串口功能和拖放编程功能 —— 只需将编译好的.bin 或.hex 文件拖放到开发板对应的 U 盘盘符中,即可完成固件烧录,非常方便。
2. 开发环境快速搭建
意法半导体为 BlueNRG-LP/BlueNRG-LPS 系列提供了完善的软件开发支持,从工具链到示例代码一应俱全。
2.1 STSW-BNRGLP-DK 软件包安装
开发的第一步是下载并安装 STSW-BNRGLP-DK 软件包,这是一个包含所有必要组件的一站式开发包:
安装过程非常简单,只需运行安装程序并按照提示操作即可。需要注意的是,软件包会自动安装必要的驱动程序,Windows 10 及以上系统无需手动安装。
2.2 支持的 IDE 与工具链配置
STSW-BNRGLP-DK 支持三种主流的集成开发环境:
- IAR Embedded Workbench:需要 8.40.1 或更高版本,安装软件包后需要将 Utility 文件夹中的补丁应用到 IAR 安装目录
- Keil MDK-ARM:需要安装软件包中提供的 Keil.STBlueNRG-LP_DFP.3.0.0.pack 补丁
- WiSE-Studio:意法半导体推出的基于 GCC 的免费 IDE,无需额外补丁
所有示例代码都提供了这三种 IDE 的项目文件,开发者可以根据自己的习惯选择。
2.3 BlueNRG-LP Navigator:一键烧录示例的神器
对于新手来说,BlueNRG-LP Navigator 是最友好的工具。它提供了一个图形化界面,让开发者可以浏览所有可用的示例应用,查看详细说明,并一键将预编译的固件烧录到开发板中。
使用方法非常简单:
- 用 USB 线将开发板连接到电脑
- 启动 BlueNRG-LP Navigator
- 在左侧菜单中选择想要运行的示例
- 点击 "Flash & Run" 按钮,几秒钟后示例就会在开发板上运行
这个工具大大降低了入门门槛,让开发者可以快速体验开发板的各种功能。
2.4 调试器固件更新
板载 CMSIS-DAP 调试器的固件可以通过 USB 进行更新:
- 拔掉 USB 线
- 按住开发板上的复位按钮
- 插入 USB 线
- 松开复位按钮,此时电脑会出现一个名为 "维护" 的 U 盘
- 将新的固件文件复制到这个 U 盘中,更新就会自动完成
3. ST 特色开发工具详解
除了标准的开发工具链,意法半导体还提供了几个非常有特色的工具,能够显著提高开发效率。
3.1 无线电初始化向导
BLE 协议栈的配置一直是蓝牙开发中最复杂的部分之一。无线电初始化向导通过图形化界面,让开发者可以根据自己的应用场景,直观地配置所有 BLE 参数,包括:
- 通用配置(设备角色、地址类型等)
- 协议栈配置(连接数、MTU 大小等)
- 无线电配置(发射功率、PHY 类型等)
- 服务配置
- 安全配置
- OTA 升级配置
配置完成后,工具会自动生成一个头文件,开发者只需将其包含到自己的项目中即可。这个工具还会显示每个配置参数对 RAM 占用的影响,帮助开发者优化内存使用。
3.2 安全自举程序 GUI
对于需要量产的产品来说,固件安全至关重要。安全自举程序 GUI 工具提供了完整的固件安全解决方案:
一旦激活安全自举程序,芯片在每次启动时都会验证固件的签名,只有经过正确签名的固件才能运行。需要特别注意的是,安全自举程序一旦激活就是不可逆的,无法禁用,因此在操作前一定要备份好密钥。
3.3 外设驱动库:LL 与 HAL 两种选择
ST 提供了两种层次的外设驱动库,满足不同开发者的需求:
所有外设示例都提供了 HAL 和 LL 两种版本的代码,开发者可以根据自己的需求选择。
4. 丰富的 BLE 应用示例与实战
STSW-BNRGLP-DK 软件包包含了数十个示例应用,覆盖了 BLE 开发的大多数常见场景。以下是几个最常用的示例:
4.1 BLE Beacon:从传统广播到扩展广播、周期广播
Beacon 是最常见的 BLE 应用之一。示例不仅实现了传统的 iBeacon 协议,还展示了 BLE 5.0 的新特性:
- 扩展广播:在辅助信道上广播更大的数据量
- 周期广播:以固定的间隔广播数据,适合需要定期更新信息的应用
- AoA 标签模式(仅 BlueNRG-LPS):将设备配置为到达角测向标签,用于室内定位系统
4.2 串口透传:点对点与主从一体模式
串口透传是将传统串口设备升级为蓝牙设备的最简单方式。示例提供了两种模式:
- 主从分离模式:一个设备作为从机(服务端),另一个作为主机(客户端)
- 主从一体模式:同一个应用可以同时作为主机和从机,自动发现并连接其他设备
连接成功后,两个设备之间的串口数据会透明传输,就像用物理串口线连接一样。
4.3 传感器数据采集:与 ST BLE Sensor APP 无缝对接
这个示例展示了如何将板载传感器的数据通过 BLE 发送到手机。它与 ST 官方的 "ST BLE Sensor" 手机应用完全兼容,手机可以实时显示温度、气压、加速度和陀螺仪数据,并支持数据绘图和记录功能。
4.4 HID 设备:键盘与鼠标实现
示例实现了标准的 BLE HID 协议,可以将开发板变成一个蓝牙键盘或鼠标:
- 键盘示例:通过串口输入的字符会通过蓝牙发送到连接的设备
- 鼠标示例:使用板载加速度计检测手势,控制鼠标光标移动,两个用户按钮作为左右键
4.5 吞吐率测试:测试不同 PHY 下的性能
这个示例可以测量不同配置下的 BLE 数据传输速率,支持:
- 1Mbps、2Mbps 和 Coded PHY 三种物理层
- 不同的 ATT_MTU 大小
- 不同的链路层数据包长度
- 单向和双向传输
测试结果会通过串口输出,帮助开发者了解不同配置下的性能表现。
4.6 安全配对:四种配对方式详解
安全示例详细展示了 BLE 支持的四种配对密钥生成方法:
- 直接工作 (Just Work):无需用户交互,安全性最低
- 固定引脚输入:使用固定的 PIN 码进行配对
- 随机引脚输入:设备显示随机 PIN 码,用户在另一设备上输入
- 数值比较:两个设备显示相同的数值,用户确认是否一致
开发者可以根据自己的应用安全需求选择合适的配对方式。
4.7 BLE 5.x 新特性:Coded PHY 远程通信、功率控制
示例展示了 BLE 5.x 的两个重要新特性:
- Coded PHY:通过前向纠错编码,显著增加通信距离,在开阔环境下可达数百米
- LE 功率控制:设备可以根据接收信号强度 (RSSI) 动态调整发射功率,在保证通信质量的同时降低功耗
4.8 BlueNRG-LPS 专属:AoA 测向功能
这是 BlueNRG-LPS 独有的功能,示例展示了如何实现连接模式下的到达角测向。定位器设备向标签设备发送 CTE 请求,标签设备回复包含恒定音调扩展 (CTE) 的数据包,定位器通过分析 IQ 样本计算出信号的到达角度。
5. 低功耗开发关键技巧
低功耗是 BlueNRG 系列的核心优势,以下是一些优化功耗的关键技巧:
5.1 精确测量电流的方法
如前所述,移除对应的电流测量跳线,串联高精度电流表即可测量芯片的电流。需要注意的是,在测量低功耗模式下的电流时,要断开所有不必要的外设,关闭板载 LED,以获得准确的结果。
5.2 低功耗模式配置与唤醒源
BlueNRG 系列提供了多种低功耗模式,从浅到深依次为:
- CPU HALT:仅 CPU 停止运行,所有外设继续工作,唤醒延迟最短
- STOP WITH TIMER:深度睡眠模式,只有 RTC 和低功耗定时器运行
- STOP WITHOUT TIMER:深度睡眠模式,所有时钟都停止,只能通过 GPIO 唤醒
- SHUTDOWN:完全关闭模式,只能通过复位引脚唤醒
开发者需要根据应用的唤醒延迟和功耗要求选择合适的模式。
5.3 优化功耗的实用建议
- 尽量使用 Coded PHY 以降低发射功率
- 合理设置广播间隔和连接间隔,在响应速度和功耗之间取得平衡
- 不使用的外设及时关闭时钟
- 使用 DMA 传输数据,让 CPU 在传输期间进入低功耗模式
- 优化代码,减少 CPU 的运行时间
BlueNRG-LP/BlueNRG-LPS 开发套件是一套非常优秀的低功耗蓝牙开发平台。丰富的板载外设、完善的软件开发环境和众多的示例代码,让开发者可以快速从原型验证过渡到产品开发。特别是对 BLE 5.2 新特性的全面支持和 BlueNRG-LPS 的测向功能,使其在众多同类产品中脱颖而出。
这些开发套件非常适合以下应用场景:
无论你是刚接触蓝牙开发的新手,还是需要评估 BLE 5.x 新特性的资深工程师,BlueNRG-LP/BlueNRG-LPS 开发套件都是一个值得考虑的选择。
393