4.5.16. 蓝牙 性能测试
本
文档 介绍 如何 使用 iperf3 工具,通过 蓝牙PAN 协议 对 芯片 经典 蓝牙 性能 进行 测试。 通过
蓝牙PAN协议,开发板 与 开启 网络共享 的 手机(NAP)建立IP连接,然后 使用 iperf3 工具 进行 数据传输,从而 评估 蓝牙 的 实际 性能。
蓝牙 性能
在
带宽
和 蓝牙BR/EDR的吞吐量: 理论 最大 净 吞吐量 约 为2.1 Mbps,测试 时应 设置 合理 的 带宽 上限。 延迟: 蓝牙
跳频 特性 可能 导致 短时 波动,需 多次 测试 取 平均值。 丢
包率: 蓝牙使用 跳频 技术,但 受 干扰(如Wi-Fi同频)或 距离 影响 仍 可能 丢包。iperf的UDP模式 可 精确 统计 丢 包率。 信号强度
和 由于覆盖范围: 蓝牙 天线 设计,设备 相对 方位 可能 影响 信号 质量,测试 过程 中 保持 设备 相对 位置 固定。
本iperf3工具
4.5.16.1. 测试准备工作
性能

在
手机
下载 Termux 终端: Termux 安卓下载 地址: https://github.com/termux/termux-app/releases
在
手机 开启上 开启 蓝牙 网络共享: 蓝牙 Android手机:路径
通常 在 设置 -> 个人 热点 -> 蓝牙 网络共享,不同 手机 可能 位置 略有不同。 iOS的
蓝牙 共享 通常 仅限于 苹果 设备 之间。如果 你 的 测试环境 是iPhone和Linux开发板,建议 换 用Android手机。

启用
板端 蓝牙 功能: 确保开发板 已 开启 蓝牙 并 连接 到 手机,配对 详细 方法 参照蓝牙 配对 。配对连接 前 注意 区分 模组 进行 初始化。 [bluetooth]# pair C4:2B:44:15:AD:FA Attempting to pair with C4:2B:44:15:AD:FA [horno30]# [CHG] Device C4:2B:44:15:AD:FA Connected: yes [horno30]# Request confirmation [agent] Confirm passkey 092258 (yes/no): [DEL] Device 5C:77:59:BF:8F:74 5C-77-59-BF-8F-74 [agent] Confirm passkey 092258 (yes/no): yes [horno30]# hci0 new_link_key C4:2B:44:15:AD:FA type 0x08 pin_len 0 store_hint 1 [horno30]# [CHG] Device C4:2B:44:15:AD:FA Bonded: yes [horno30]# [DEL] Device 6F:36:92:14:42:2F 6F-36-92-14-42-2F [horno30]# [CHG] Device C4:2B:44:15:AD:FA Modalias: bluetooth:v010Fp107Ed1436 [horno30]# [CHG] Device C4:2B:44:15:AD:FA UUIDs: 0000046a-0000-1000-8000-00805f9b34fb [horno30]# [CHG] Device C4:2B:44:15:AD:FA UUIDs: 00001105-0000-1000-8000-00805f9b34fb [horno30]# [CHG] Device C4:2B:44:15:AD:FA UUIDs: 0000110a-0000-1000-8000-00805f9b34fb [horno30]# [CHG] Device C4:2B:44:15:AD:FA UUIDs: 0000110c-0000-1000-8000-00805f9b34fb [horno30]# [CHG] Device C4:2B:44:15:AD:FA UUIDs: 00001112-0000-1000-8000-00805f9b34fb [horno30]# [CHG] Device C4:2B:44:15:AD:FA UUIDs: 00001115-0000-1000-8000-00805f9b34fb [horno30]# [CHG] Device C4:2B:44:15:AD:FA UUIDs: 00001116-0000-1000-8000-00805f9b34fb [horno30]# [CHG] Device C4:2B:44:15:AD:FA UUIDs: 0000111f-0000-1000-8000-00805f9b34fb [horno30]# [CHG] Device C4:2B:44:15:AD:FA UUIDs: 0000112f-0000-1000-8000-00805f9b34fb [horno30]# [CHG] Device C4:2B:44:15:AD:FA UUIDs: 00001132-0000-1000-8000-00805f9b34fb [horno30]# [CHG] Device C4:2B:44:15:AD:FA UUIDs: 00001200-0000-1000-8000-00805f9b34fb [horno30]# [CHG] Device C4:2B:44:15:AD:FA UUIDs: 00001800-0000-1000-8000-00805f9b34fb [horno30]# [CHG] Device C4:2B:44:15:AD:FA UUIDs: 00001801-0000-1000-8000-00805f9b34fb [horno30]# [CHG] Device C4:2B:44:15:AD:FA UUIDs: 0000fdd1-0000-1000-8000-00805f9b34fb [horno30]# [CHG] Device C4:2B:44:15:AD:FA UUIDs: 0000fe35-0000-1000-8000-00805f9b34fb [horno30]# [CHG] Device C4:2B:44:15:AD:FA UUIDs: 11c8b310-80e4-4276-afc0-f81590b2177f [horno30]# [CHG] Device C4:2B:44:15:AD:FA UUIDs: 8ce255c0-200a-11e0-ac64-0800200c9a66 [horno30]# [CHG] Device C4:2B:44:15:AD:FA UUIDs: 9664aa26-d76c-43ad-9775-d310f253a408 [horno30]# [CHG] Device C4:2B:44:15:AD:FA ServicesResolved: yes [horno30]# [CHG] Device C4:2B:44:15:AD:FA Paired: yes [horno30]# Pairing successful
这个 UUID 00001115-0000-1000-8000-00805f9b34fb 正是 PAN 网络
接入点(NAP)服务 的 标准 标识符 代表
手机 已经 开启 了 蓝牙 网络共享 功能,并且 向 你 的 开发板 广播 了 自己 可以 提供 网络服务
使用 bt-network 连接
到 Network service is connected 代表手机 的 NAP: 连接 成功,板端 会 有 个bnep0网卡 产生 root@buildroot:~# bt-network -c C4:2B:44:15:AD:FA nap & Network service is connected root@buildroot:~# ifconfig bnep0 bnep0: flags=4163<UP,BROADCAST,RUNNING,MULTICAST> mtu 1500 ether b4:2f:03:31:56:51 txqueuelen 1000 (Ethernet) RX packets 0 bytes 8 (8.0 B) RX errors 0 dropped 0 overruns 0 frame 0 TX packets 2 bytes 44 (44.0 B) TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0
使用 udhcpc 共享
手机 NAP: 自动获取ip后 可以 共享 手机 NAP 网络,确保 开发板 可以 通过NAP 网络通信。 root@buildroot:~# udhcpc -i bnep0 udhcpc: started, v1.35.0 udhcpc: broadcasting discover udhcpc: broadcasting discover udhcpc: broadcasting select for 192.168.44.234, server 192.168.44.1 udhcpc: lease of 192.168.44.234 obtained from 192.168.44.1, lease time 3600 deleting routers adding dns 192.168.44.1
明确
服务器 开发板和 客户端 设备: 既 可以 作为 客户端,也 可以 作为 服务器;对端 设备 可 使用 安卓 手机。
以下
手机 NAP 作为
服务器,IP 地址:192.168.44.1。 开发板
作为 客户端,IP 地址:192.168.44.234。
通过
ping -I bnep0 192.168.44.1
执行
PING 192.168.44.1 (192.168.44.1): 56 data bytes
64 bytes from 192.168.44.1: seq=0 ttl=128 time=32.009 ms
64 bytes from 192.168.44.1: seq=1 ttl=128 time=67.866 ms
64 bytes from 192.168.44.1: seq=2 ttl=128 time=14.513 ms
64 bytes from 192.168.44.1: seq=3 ttl=128 time=18.663 ms
4.5.16.2. 测试方法
步骤一:启动服务器
在
1.打开 temux 终端

2.在 temux 终端,通过
iperf3 -s
服务器
-----------------------------------------------------------
Server listening on 5201
-----------------------------------------------------------
客户端

步骤二:启动客户端
在
iperf3 -c 192.168.44.1 -u -t 10 -b 2M
命令
-c:指定服务器的 IP 地址(此处为 192.168.44.1)。
-u:使用 UDP 协议进行测试。
-t:设定总运行时间(此处为 10 秒)。
-b:设置目标带宽(此处为 2 Mbits/sec)。
客户端

1.EVB为了
4.5.16.3. 测试结果
关于 iperf3 输出
4.5.16.4. 性能标准
蓝牙
经典
蓝牙 BR/EDR:理论 最大 2.1 Mbps,实际 通常 1.0-1.45 Mbps 干扰
环境:因为wifi和 蓝牙 频段 重叠,如果 周围Wi-Fi信号 多,吞吐量 可能 会 有 波动
4.5.16.5. 常见问题
1. 执行 bt-network 后又断开连接
root@buildroot:~# bt-network -c AC:45:CA:6E:AE:B4 nap &
[1] 1074
Network service is connected
Network service is disconnect
原因
分析: 手机
没有 开启 蓝牙 网络共享。 配对
时 需要 注意 是否 包含 服务 UUID 00001115-0000-1000-8000-00805f9b34fb。 确保
配对 和 连接 的 蓝牙 设备 只有 一个,如果 有 蓝牙 watch 等,需要 手机 断开 配对 连接
解决
方法: 确保
手机 开启 蓝牙 网络共享 功能。 手机
断开 其他 蓝牙 watch 等 设备 的 配对 连接。