一、项目介绍
在上一篇报告中我们领略了 WS8623-EVB 的硬件魅力,本报告将深入其核心功能 -- 蓝牙通信性能。我们将利用 BLE 调试工具和串口助手,对其连接稳定性、UUID 服务结构、以及不同模式下的数据吞吐量进行严格实测,验证其是否满足工业级应用的需求。
测试环境搭建:被测设备为 WS8623-EVB 开发板,PC 端安装 BLE 调试工具 V1.2 及串口调试助手,开发板通过 USB 连接 PC,蓝牙通过无线连接 PC 的蓝牙适配器。
二、硬件方案说明
本次测试使用的硬件配置与第一篇报告相同,核心为 WS8623 模组(STM32WB05KZV6TR),工作在 BLE 5.3 标准下。测试重点关注其 UART 透传服务的通信性能。
· 被测设备:WS8623-EVB 开发板
· 测试工具:PC 端 BLE 调试工具 V1.2 + 串口调试助手
· 连接方式:USB 连接 PC + 蓝牙无线连接 PC 蓝牙适配器
· 蓝牙名称:WS8623
· MAC 地址:DE:54:CF:1E:50:90
· MTU:247 字节
三、系统设计思路
测试主要围绕 BLE 的 UART 透传服务展开。通过扫描设备、建立连接、发现服务、读写特征值等标准 BLE 协议流程,验证其作为无线串口的可靠性与速度。测试分为三个维度:下行速率(蓝牙发串口收)、上行速率(串口发蓝牙收)、双向同时收发。
四、功能框图与软件流程
4.1 BLE 服务发现
打开蓝牙扫描,成功连接到设备 WS8623,获取基本信息如下:
· 蓝牙名称:WS8623
· MAC 地址:DE:54:CF:1E:50:90
· MTU:247 字节
服务结构发现:

4.2 特征值分析
逐层展开特征值,发现模块默认使用了以下 UUID 作为蓝牙转串口功能:
服务 UUID:0000FFF0-0000-1000-8000-00805F9B34FB
下面包含两个特征值:
RX 特征(Notify):0000FFF1-0000-1000-8000-00805F9B34FB
负责接收通过串口发送给蓝牙的通知数据。当订阅通知后,LED 指示灯灭;取消订阅会亮起。只有在订阅后才能接收数据。
TX 特征(Write):0000FFF2-0000-1000-8000-00805F9B34FB
负责通过蓝牙发送给串口的数据。具有有应答写(Write With Response)和无应答写(Write Without Response)两种发送方式。


图2-3:特征值详细属性
LED 指示行为验证:


图4-5:订阅通知后 LED 灭(左),取消订阅后 LED 亮(右)
五、实现过程说明 -- 速率测试
功能验证完成后,进行系统性的数据传输速率测试。测试数据为一串 240 字节的字符串(012345678901012345678923456789...),与 MTU 的 247 字节相近,一个包能发送完毕,可接近最大发送速度。
5.1 数据完整性验证
首先验证双向数据传输的正确性:
串口发送 -> 蓝牙接收:串口发送成功,蓝牙接收成功,数据完整无丢失。

图6:串口发送、蓝牙接收测试
蓝牙发送 -> 串口接收:蓝牙发送成功,串口接收成功,HEX 显示正确。

图7:蓝牙发送、串口接收测试
5.2 蓝牙发串口数据速率测试(下行)
经过多轮尝试,最终选定最大且稳定速率,以串口接收端计算速度为准。
A. 带应答模式(Write With Response):

图8:下行带应答测试 -- 速率约 4.6 KB/s
测试结果:基本最大稳定速率为 4.6 KB/s。
B. 不带应答模式(Write Without Response):

图9:下行不带应答测试 -- 速率约 11.2 KB/s
测试结果:速度达到 11.2 KB/s,比带应答模式快了近 3 倍。
5.3 串口发蓝牙数据速率测试(上行)
经过多轮尝试,最终选定最大且稳定速率,以蓝牙接收端计算速度为准。先订阅蓝牙数据后进行测试。
带应答模式测试:

图10:上行带应答测试 -- 速率约 4.0 KB/s
测试结果:多次尝试后,速度稳定在 4.0 KB/s 左右。由于串口发送没有设置应答/不应答选项,无法测试非应答速率。从速率表现上看,应该工作在应答发送模式。
值得注意的现象:串口端计算速度为 7.4 KB/s,而蓝牙接收端计算速度为 4.0 KB/s,存在明显差异。蓝牙发串口数据速率测试时也存在类似差异,暂不明原因,可能与传输层协议开销和缓冲机制有关。
5.4 双向同时收发测试(全双工)
蓝牙和串口同时发送、同时接收数据,验证全双工通信能力。
A. 不带应答模式双向收发:


图11-12:不带应答双向收发测试结果
结果:蓝牙发 -> 串口收约 11.2 KB/s,串口发 -> 蓝牙收约 5.8 KB/s(较单向高出约 1 KB/s)。
B. 带应答模式双向收发:


图13-14:带应答双向收发测试结果
结果:带应答收发与单向发送速率基本一致,蓝牙发 -> 串口收约 4.6 KB/s,串口发 -> 蓝牙收约 4.4 KB/s。
六、关键代码解析(UUID 配置)
在实际开发中,开发者需要关注以下 UUID 定义以进行数据交互:
服务 UUID:0000FFF0-0000-1000-8000-00805F9B34FB
RX 特征(Notify,蓝牙 -> 串口):0000FFF1-0000-1000-8000-00805F9B34FB
TX 特征(Write,串口 -> 蓝牙):0000FFF2-0000-1000-8000-00805F9B34FB
开发要点:
· 必须先订阅 FFF1 的 Notify 通知,才能接收蓝牙端发送的数据
· 向 FFF2 写入数据时,优先使用 Write Without Response 模式以获得更高吞吐
· MTU 最大 247 字节,单次传输数据量建议控制在 240 字节以内
· 支持 1M/2M PHY 切换,2M PHY 下可进一步提升传输速率
七、功能展示与测试结果汇总
速率测试结果汇总:
测试方向 | 模式 | 速率 (KB/s) | 备注 |
蓝牙 -> 串口 | 带应答 | 4.6 | 稳定 |
蓝牙 -> 串口 | 不带应答 | 11.2 | 近3倍提升 |
串口 -> 蓝牙 | 带应答 | 4.0 | 串口端显示7.4 |
双向同时 | 不带应答 | 11.2 / 5.8 | 全双工正常 |
八、技术难点与解决方案 / 项目总结
8.1 测试中发现的技术现象
· 串口端与蓝牙端的速率计算存在差异(如串口端 7.4 KB/s vs 蓝牙端 4.0 KB/s),可能与传输层协议开销、缓冲机制和计算方式有关
· 双向通信不带应答时,串口发蓝牙收的速率(5.8 KB/s)比单向测试(4.0 KB/s)高出约 1 KB/s,可能与蓝牙连接事件调度机制有关
· 不带应答模式相比带应答模式,下行速率提升近 3 倍,说明应答机制对吞吐量影响显著
8.2 项目总结
WS8623 模组在 MTU 247 字节的支持下,配合 Write Without Response 模式,能够实现超过 11 KB/s 的稳定下行传输速率,这对于大多数传感器数据上传和指令下发场景完全足够。
关键结论:
· 下行速率(蓝牙 -> 串口):不带应答模式 11.2 KB/s,带应答模式 4.6 KB/s
· 上行速率(串口 -> 蓝牙):带应答模式约 4.0 KB/s
· 全双工通信正常,双向同时收发速率与单向基本持平
· 建议:追求高吞吐量的应用,务必使用 Write Without Response 模式
· 数据完整性:240 字节长包传输无丢失,HEX 校验正确
从双向发送测试来看,速度可以保证,WS8623 模组的蓝牙通信性能表现稳定可靠,适合楼宇自动化、医疗设备、智能物流等对功耗和稳定性要求较高的应用场景。
通信速率视频如下:
我要赚赏金
