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

BlueNRG-LP/BlueNRG-LPS 开发套件解析:从硬件到 BLE 5.x 应用实战

05/25 14:03
393
加入交流群
扫码加入
获取工程师必备礼包
参与热点资讯讨论

低功耗蓝牙技术成为物联网主流连接方式的今天,开发者对蓝牙芯片的性能、功耗和功能丰富度提出了更高要求。意法半导体推出的 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 板载外设与接口

所有四款开发板都配备了丰富的外设,满足大多数物联网应用的开发需求:

1.4 灵活的电源系统与电流测量

开发板提供了三种供电方式,适应不同的测试场景:

  1. USB 供电:通过板载 USB 接口供电,这是最常用的方式
  2. 电池供电:板载两节 AAA 电池座,也可以焊接 CR2032 纽扣电池
  3. 外部电源供电:通过跳线接入 1.7V-3.6V 外部直流电源

对于低功耗应用开发,精确测量芯片的电流消耗至关重要。开发板专门设计了电流测量跳线:

  • 对于 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 软件包,这是一个包含所有必要组件的一站式开发包:

  • 预编译的示例固件
  • 完整的源代码和项目文件
  • BlueNRG-LP Navigator 图形化工具
  • 无线电初始化向导
  • 安全自举程序 GUI
  • 所有外设的驱动库和 BLE 协议栈

安装过程非常简单,只需运行安装程序并按照提示操作即可。需要注意的是,软件包会自动安装必要的驱动程序,Windows 10 及以上系统无需手动安装。

2.2 支持的 IDE 与工具链配置

STSW-BNRGLP-DK 支持三种主流的集成开发环境:

  1. IAR Embedded Workbench:需要 8.40.1 或更高版本,安装软件包后需要将 Utility 文件夹中的补丁应用到 IAR 安装目录
  2. Keil MDK-ARM:需要安装软件包中提供的 Keil.STBlueNRG-LP_DFP.3.0.0.pack 补丁
  3. WiSE-Studio:意法半导体推出的基于 GCC 的免费 IDE,无需额外补丁

所有示例代码都提供了这三种 IDE 的项目文件,开发者可以根据自己的习惯选择。

2.3 BlueNRG-LP Navigator:一键烧录示例的神器

对于新手来说,BlueNRG-LP Navigator 是最友好的工具。它提供了一个图形化界面,让开发者可以浏览所有可用的示例应用,查看详细说明,并一键将预编译的固件烧录到开发板中。

使用方法非常简单:

  1. 用 USB 线将开发板连接到电脑
  2. 启动 BlueNRG-LP Navigator
  3. 在左侧菜单中选择想要运行的示例
  4. 点击 "Flash & Run" 按钮,几秒钟后示例就会在开发板上运行

这个工具大大降低了入门门槛,让开发者可以快速体验开发板的各种功能。

2.4 调试器固件更新

板载 CMSIS-DAP 调试器的固件可以通过 USB 进行更新:

  1. 拔掉 USB 线
  2. 按住开发板上的复位按钮
  3. 插入 USB 线
  4. 松开复位按钮,此时电脑会出现一个名为 "维护" 的 U 盘
  5. 将新的固件文件复制到这个 U 盘中,更新就会自动完成

3. ST 特色开发工具详解

除了标准的开发工具链,意法半导体还提供了几个非常有特色的工具,能够显著提高开发效率。

3.1 无线电初始化向导

BLE 协议栈的配置一直是蓝牙开发中最复杂的部分之一。无线电初始化向导通过图形化界面,让开发者可以根据自己的应用场景,直观地配置所有 BLE 参数,包括:

  • 通用配置(设备角色、地址类型等)
  • 协议栈配置(连接数、MTU 大小等)
  • 无线电配置(发射功率、PHY 类型等)
  • 服务配置
  • 安全配置
  • OTA 升级配置

配置完成后,工具会自动生成一个头文件,开发者只需将其包含到自己的项目中即可。这个工具还会显示每个配置参数对 RAM 占用的影响,帮助开发者优化内存使用。

3.2 安全自举程序 GUI

对于需要量产的产品来说,固件安全至关重要。安全自举程序 GUI 工具提供了完整的固件安全解决方案:

  • 生成 RSA 密钥对
  • 对固件二进制文件进行签名
  • 将公钥烧录到芯片的 OTP(一次性可编程存储器

一旦激活安全自举程序,芯片在每次启动时都会验证固件的签名,只有经过正确签名的固件才能运行。需要特别注意的是,安全自举程序一旦激活就是不可逆的,无法禁用,因此在操作前一定要备份好密钥。

3.3 外设驱动库:LL 与 HAL 两种选择

ST 提供了两种层次的外设驱动库,满足不同开发者的需求:

  • HAL 库:硬件抽象层,提供了简单易用的 API,屏蔽了底层硬件细节,适合快速开发
  • LL 库:底层库,直接操作寄存器,代码更小,执行效率更高,适合对性能和功耗有严格要求的应用

所有外设示例都提供了 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 开发套件都是一个值得考虑的选择。

相关推荐