本指南介绍如何使用 Bluetooth SDK v3.x、Simplicity Studio® 5(SSv5)及兼容的 WSTK(Wireless Starter Kit)开始 Bluetooth 开发。如果您购买了 EFR32BG WSTK,可以先使用预编译的 Demo 和 Android/iOS App 进行试验,再开发自己的应用程序。Documentation Index
Fetch the complete documentation index at: https://mintlify.com/dsyx/docs.silabs.com_zh/llms.txt
Use this file to discover all available pages before exploring further.
如果您使用 Simplicity Studio 4 和 Bluetooth SDK v2.x,请参阅 QSG139: Bluetooth® SDK v2.x Quick Start Guide。
前提条件
在开始应用开发前,请确认您已完成以下准备:硬件准备
购买 EFR32BG Wireless Starter Kit 或其他兼容目标硬件。
账号注册
在 Silicon Labs 官网注册账号,用于访问支持门户和下载资源。
安装 Simplicity Studio 5
下载并安装 SSv5 及包含 Bluetooth SDK 的 Silicon Labs Gecko SDK。
获取编译器
SSv5 内置免费 GCC 编译器;或安装 IAR Embedded Workbench for ARM(可选,需兼容版本)。
Bluetooth Stack 特性
v3.x Silicon Labs Bluetooth Stack 支持以下主要特性(适用于全系列 EFR32[B|M]G 设备):| 特性 | 说明 |
|---|---|
| Bluetooth 版本 | Bluetooth 5.3 |
| 同时支持的角色 | Central、Peripheral、Broadcaster、Observer 可并发 |
| 最大同时连接数 | 8(xG1/xG13/xG22)至 32(xG12/xG21/xG24) |
| 最大吞吐量 | 700 kbps(1M PHY);1300 kbps(2M PHY) |
| 加密算法 | AES-128 |
| 配对模式 | Just Works、Numeric Comparison、Passkey Entry、OOB |
| 最大同时绑定数 | 最多 32(PS Store 最多 13) |
| Host 接口 | 4 线 UART(含 RTS/CTS)或 2 线 UART |
运行 Demo 软件
准备主板
连接 Radio Board
将 Bluetooth Module Radio Board 连接到 Mainboard,使用 Mainboard USB 连接器连接到 PC,并将 Power Switch 调整到 AEM 位置。
三种 Demo 测试场景
- NCP Demo
- iBeacon Demo
- Health Thermometer Demo
烧录 Bluetooth – NCP Demo 后,使用 Bluetooth NCP Commander 工具(通过 Project Configurator → Configuration Tools 选项卡或 Simplicity Studio Tools 菜单打开):
- 启动 NCP Commander,使用 JLink 适配器建立 Virtual UART 连接,点击 Connect。
- 选择 Local GATT 菜单 → 点击 Create Basic GATT 构建基本 GATT 数据库。
- 选择 Advertise 菜单 → 点击 +(Create Set)创建广告集。
- 将 Advertising Data Type 设置为 Generated data,点击 Start 开始广告。
- 使用 EFR Connect App 的 Bluetooth Browser 连接设备,浏览 GATT 数据库。
开始应用程序开发
开发 Bluetooth 应用包含两个主要步骤:定义 GATT 数据库结构 和 编写事件处理程序。创建新项目
选择目标和工具链
在 Target, SDK, and Toolchain 对话框中确认 SDK 版本。如需使用 IAR 替代 GCC,请在此处更改(创建后难以更改 Toolchain)。点击 NEXT。
选择示例项目
在 Example Project Selection 对话框中,按 Bluetooth 过滤,选择 Bluetooth – SoC Empty(最常用起始点)。点击 NEXT。
SoC Empty 并非完全空白——它提供了最小 GATT 数据库(Generic Access Service、Device Information Service、OTA Service)和基础事件处理循环,支持 OTA DFU。
模式选择指南
- SoC 模式开发
- NCP 模式开发
- RCP 模式开发
从 Bluetooth – SoC Empty 或最接近需求的示例开始。
- 在
gatt_configuration.btconf中设计 GATT 数据库 - 在
app.c的事件处理循环中添加业务逻辑 - 使用
sl_bt_gatt_server_read_attribute_value()/sl_bt_gatt_server_write_attribute_value()读写本地 Characteristic 值
配置 GATT 数据库
项目创建后,gatt_configuration.btconf 选项卡中会自动打开可视化 GATT Configurator:
- 点击 Profile (Custom BLE GATT) → Add 添加自定义 Service
- 选择 Service → Add 添加自定义 Characteristic
- 点击 Add Predefined 从 SIG 标准库中选择标准 Service/Characteristic
安装组件(Component Configuration)
SDK v3.x 采用基于 Gecko Platform 的组件化架构,通过 Component Editor 安装和配置软件特性:构建与烧录
点击 Simplicity IDE 的 Debug 图标构建并下载项目,然后点击 Play 开始在设备上运行。使能现场更新(Field Updates)
OTA DFU
通过 Bluetooth 空中下载方式为 SoC 应用程序部署新固件。需要 Gecko Bootloader 支持。参阅 AN1086: Using the Gecko Bootloader with Silicon Labs Bluetooth Applications。
UART DFU
通过 UART 串行链路为现场设备部署新固件,适用于 NCP 模式的设备。
开发工具简介
GATT Configurator
GATT Configurator
可视化构建 GATT 数据库,无需手动编辑 XML 文件。支持添加预定义标准 Service、自定义 Service/Characteristic,以及导入/导出 GATT 数据库。详见 GATT Configurator 使用指南。
Bluetooth NCP Commander
Bluetooth NCP Commander
用于测试和评估 Bluetooth SoC/Module,通过 BGAPI 串行协议控制 Bluetooth 硬件,支持在目标设备上动态构建 GATT 数据库。独立应用位于
C:\SiliconLabs\SimplicityStudio\v5\developer\adapter_packs\ncp_commander。Multi-Node Energy Profiler
Multi-Node Energy Profiler
实时测量设备功耗,可查看峰值和平均功耗,检查睡眠模式电流。可同时测量多个设备。注意:EFR32BG22 的 SDK 示例默认启用了 EM2 调试(
init_mcu.c),这会增加电流消耗,与 Datasheet 数值存在差异。Network Analyzer
Network Analyzer
免费的数据包捕获和调试工具,通过 PTI(Packet Trace Interface)直接从 SoC/Module 捕获无线数据包,支持 Bluetooth 数据包解码,提供网络流量的图形化视图。
Pin Tool
Pin Tool
图形化配置外设引脚,可轻松重新分配 USART、GPIO 等引脚功能,保存后自动生成配置源码。
IAR Embedded Workbench
IAR Embedded Workbench
作为 GCC 的替代编译器,可用于开发和调试 Bluetooth 应用。安装后 SSv5 启动时会自动检测并配置。需使用 SDK 发行说明中指定的兼容版本。