4. 蓝牙/BLE测试:连接建立、吞吐量测试、功耗测试、射频指标
蓝牙测试,尤其是BLE测试,是我这些年打交道最多的环节之一。说实话,很多产品死就死在蓝牙上——连不上、断连、功耗高得离谱。你想想看,一个手环用户戴了一天就没电了,谁还愿意用?
这一章,我带你把蓝牙/BLE测试的四个核心维度捋清楚。分别是:连接建立、吞吐量、功耗、射频指标。每个点我都会结合项目经验来讲,希望能帮你少走弯路。
4.1 连接建立测试
连接建立,说白了就是设备能不能快速、稳定地连上手机。我见过太多设备,扫描半天搜不到,或者连上了几秒就断。嗯,这里要注意,连接建立测试不只是测“能不能连”,更要测“连得快不快”、“稳不稳”。
4.1.1 测试场景
- 首次连接:设备出厂后第一次与手机配对。我建议至少测50次,记录成功率和平均耗时。
- 重连测试:设备离开范围再回来,看能否自动重连。我曾经遇到一个项目,重连成功率只有60%,后来发现是广播间隔设置太短了。
- 多设备干扰:周围同时有10台以上BLE设备在广播,看你的设备还能不能稳定连接。
4.1.2 关键指标
| 指标 | 要求 | 说明 |
|---|---|---|
| 连接建立时间 | < 2秒 | 从发起连接到连接成功 |
| 连接成功率 | > 99% | 50次测试中失败不超过1次 |
| 重连成功率 | > 95% | 离开10米再回来,10秒内重连 |
4.2 吞吐量测试
吞吐量,说白了就是数据能跑多快。对于可穿戴设备,比如手表要传心率波形、耳机要传音频,吞吐量不够就会卡顿。我个人习惯用DUT(被测设备)和测试仪之间跑数据流来测。
4.2.1 测试方法
- 设置BLE连接参数:连接间隔设为7.5ms(最小值),PDU长度设为251字节。
- 启动数据流:从DUT向测试仪发送数据,持续30秒。
- 记录吞吐量:测试仪统计接收到的有效字节数。
4.2.2 代码示例(测试脚本片段)
# BLE吞吐量测试脚本(Python伪代码)
def test_throughput(dut):
# 设置连接参数
dut.set_connection_interval(7.5) # 单位ms
dut.set_pdu_length(251) # 单位字节
# 启动数据流
dut.start_data_stream(duration=30) # 持续30秒
# 读取结果
bytes_received = tester.get_bytes_received()
throughput = bytes_received / 30 # 单位bps
return throughput
4.3 功耗测试
功耗测试,这是可穿戴设备的命门。你想想看,一个手环如果一天一充,用户肯定骂娘。我建议把功耗测试分成三个场景:待机功耗、连接功耗、数据传输功耗。
4.3.1 测试场景与指标
| 场景 | 典型功耗 | 测试方法 |
|---|---|---|
| 待机(未连接) | < 10 μA | 设备广播但不连接,测30分钟平均电流 |
| 连接但无数据 | < 50 μA | 建立连接后,不传输数据,测10分钟 |
| 数据传输(高负载) | < 5 mA | 以最大吞吐量传输数据,测5分钟 |
4.3.2 我的避坑指南
我曾经有一个项目,待机功耗测出来只有8μA,看起来很好。但实际用户使用中,电池两天就耗光了。后来发现,问题出在广播间隔上——待机时广播间隔设得太短(20ms),导致设备一直在发射。嗯,这里要记住:待机功耗测试时,广播间隔至少要设为1秒以上,否则测出来的数据没有参考价值。
4.4 射频指标测试
射频指标,这是蓝牙测试的硬功夫。说白了,就是看你的设备发射信号强不强、接收灵敏度高不高。我习惯用综测仪(如Anritsu MT8852B或R&S CMW500)来测。
4.4.1 TX Power(发射功率)
发射功率决定了设备的通信距离。BLE的发射功率范围通常是-20 dBm到+10 dBm。我建议测三个频点:最低频点(2402 MHz)、中间频点(2440 MHz)、最高频点(2480 MHz)。
| 频点 | 目标功率 | 允许偏差 |
|---|---|---|
| 2402 MHz | +4 dBm | ±2 dB |
| 2440 MHz | +4 dBm | ±2 dB |
| 2480 MHz | +4 dBm | ±2 dB |
4.4.2 RX Sensitivity(接收灵敏度)
接收灵敏度,说白了就是设备能收到多弱的信号。BLE标准要求灵敏度至少达到-70 dBm(误包率< 30.8%),但实际产品我建议做到-90 dBm以下。
测试方法很简单:综测仪以不同功率发射数据包,DUT接收并统计误包率(PER)。当PER超过30.8%时,对应的发射功率就是灵敏度。
# 接收灵敏度测试流程
1. 设置综测仪发射功率为 -70 dBm
2. DUT接收1000个数据包,统计PER
3. 如果PER < 30.8%,降低功率1 dB,重复步骤2
4. 直到PER刚好超过30.8%,记录当前功率
4.5 总结
蓝牙/BLE测试,四个维度缺一不可。连接建立测的是用户体验,吞吐量测的是数据能力,功耗测的是续航,射频指标测的是硬件底子。我个人的习惯是:先过射频指标,再过功耗,最后测连接和吞吐量。因为射频不过,后面测了也白测。
好了,这一章就到这里。下一章我们聊聊传感器测试,那可是可穿戴设备的“眼睛”和“耳朵”。