副标题:失败要分 BLE 没连上,还是密码交过去了但 Wi-Fi 关联失败
专栏:《嵌入式学生的方案测试课》第 17 篇(蓝牙够用就停)
前置:第 5 篇四层;第 11 篇凭据交付;第 16 篇 CPU1 也跑 BLE LL
标签:嵌入式、BLE、WiFi、软件测试、配网
读者:岗位写了 wifi、蓝牙;可能扫过手环,没做过 GATT 开发
学完交什么:4 条 BLE 配网用例、nRF Connect 扫描记录、分层口语句
实验:手机 nRF Connect 扫描任意 BLE 设备(手环、ESP32、耳机)。没有 ESP32 就扫身边设备,只看不改。不装协议栈经验。
0. 这篇结束你能干什么
- 区分经典蓝牙、BLE、双模。
- 说出广播、连接、服务、特征在测什么。
- 画出 BLE 配网:手机把 SSID/密码交给设备,设备再去 Wi-Fi 关联;成功以 Wi-Fi+DHCP 为准,不是以 BLE 写入成功为准。
- 简历不写精通蓝牙协议栈;空口 BLE 同样需要专用嗅探,笔记本默认 Wireshark 不是这个。
1. 为什么方案测试只要这么浅
JD 写熟悉 wifi、蓝牙基础。TXW82x 公开:BLE 配网、Wi-Fi/BLE 共存、CPU1 上 BLE LL/HCI,CPU0 上 Host/GATT。
你要能进现场:APP 配不上时,判断卡在 BLE 还是卡在 Wi-Fi。你不要在第一周改 ATT Table。
经典蓝牙(BR/EDR):音频耳机、SPP 老数传,连接导向。
BLE:低功耗、广播+连接、GATT 服务。
双模:同一颗芯片两种都有,共存和天线是测试点。
2.4G ISM:和 Wi-Fi 互扰。配网时 BLE 和 STA 同时工作,公开文档要求测共存。学生用「开着家里 AP 扫 BLE RSSI 是否变差」建立直觉即可,不要写成论文。
2. 最小原理
2.1 四个词
| 词 | 测试问题 |
|---|---|
| 广播 Advertising | 手机能不能发现、名字对不对、RSSI、间隔 |
| 连接 Connection | 能不能连上、是否要配对/绑定、断开是否干净 |
| 服务 Service | 有没有配网服务 UUID(产品定义,示例勿当量产保密协议外传) |
| 特征 Characteristic | 读写/notify;凭据写进去有没有响应 |
GATT:服务里包含特征。配网常常是手机写 SSID、写密码、写控制位,设备 notify 结果。
2.2 BLE 配网路径(必须会画)
设备开 BLE 广播(配网标识) -> 手机连接 BLE -> (可选)配对/加密 -> 写 SSID/密码等到特征 -> 设备校验长度/会话/权限,GATT 响应 -> 设备启动 Wi-Fi STA(第 5 篇爬楼) -> 关联、DHCP -> 以 Wi-Fi 连接和 DHCP 事件为准,再 GATT 通知结果 -> 配网成功后 BLE 常断开省电;断开不应拆掉已经获得的 Wi-Fi公开 FPV:不要在仅收到 BLE 写入后就认为联网完成。这是本篇中轴。
对应四层:
| 失败现象 | 先分层 |
|---|---|
| 手机搜不到设备 | BLE 广播 / 距离 / 没进配网模式 / 2.4G 干扰 |
| 搜到连不上 | BLE 连接/配对 |
| 连上写入失败 | GATT 权限、MTU、长度、会话 |
| 写入成功但没网 | Wi-Fi 关联/IP/密码错误(第 11 篇) |
| APP 显示成功但 ping 不通 | UI 撒谎,同第 5 篇 CONNECTED≠IP |
2.3 抓包边界
笔记本 Wireshark 默认不是 BLE 空口。BLE 嗅探要专用设备。本篇实验用手机 APP 当「旁路观察者」,类似第 9 篇用 AT 降级空口。诚实写:没做 BLE air pcap。
3. 手把手实验
3.1 nRF Connect 扫描(必做)
- 手机装 nRF Connect(或厂商类似工具)。
- 扫描。不要连别人的门锁、不要写特征。
- 找一台你拥有的设备:手环、耳机、ESP32、可穿戴。
- 记录:广播名、MAC 打码、RSSI、是否可连接、服务 UUID 是否可见(未连接可能只有广播数据)。
- 若是你的 ESP32 且你知道能连:连接后只看服务列表,不写凭据到未知特征。
存labs/week17/scan.md。截图打码。
3.2 四条配网用例(即使没有 BLE 配网固件也要写期望)
| 编号 | 步骤 | 期望 | 分层 |
|---|---|---|---|
| B1 | 手机取消授权 / 拒绝配对 | 不能配网成功;设备可重试 | BLE 连接 |
| B2 | 配网中关闭手机蓝牙 | 设备退出或超时可恢复;不砖 | BLE 会话 |
| B3 | BLE 写入错误 Wi-Fi 密码 | GATT 可成功,Wi-Fi 失败应通知失败,不显示配网成功 | Wi-Fi 关联 |
| B4 | 配网成功后断开 BLE | Wi-Fi 保持;DHCP 仍在 | 共存/状态机 |
没有 BLE 配网板:期望栏仍要写。这是「到岗第一周我会这么测」,不是造假结果。有 ESP32+SoftAP 混着 BLE 的课程设计,按真实结果填。
3.3 和 Wi-Fi 四层拼起来
B3 成功写入错密码:串口应走第 4 篇 FAIL,而不是 GOT IP。APP 若转圈后成功,提单给应用呈现。这和第 11 篇 P2 是同一层,凭据来源换成 BLE。
4. 泰芯对照
| 公开事实 | 测试 |
|---|---|
| 文档名:TXW8xx SDK BLE 配网开发指南 | 只引用名字和分层,不抄未公开协议细节 |
| SYS_APP_BLENC 开配网和共存,凭据后切 STA | 测切 STA 后 BLE 行为 |
| 成功以 Wi-Fi 连接和 DHCP 为准,再 GATT 通知 | B3/B4 和 UI |
| Demo 验证:发现、连接、MTU、读写权限、异常长度、超时、Wi-Fi 共存 | 用例来源 |
| 凭据敏感:不要把示例明文协议当量产安全 | 报告打码 SSID 密码 |
| CPU1 Controller + CPU0 Host | 启动未 ready 时 BLE 也可能没有 |
AH 网桥线不是双模手机配网故事,不要混。
5. 缺陷单范文
标题:【配网】BLE 写入成功后 APP 显示完成,但设备无 GOT IP(错密码) 步骤:B3 期望:APP 显示失败原因「Wi-Fi 密码」;GATT 通知失败 实际:APP 成功;串口 CWJAP FAIL;无 IP 初步分层:应用呈现 / 过早宣布成功。BLE 链路正常。Wi-Fi 关联按预期失败。6. 30 秒口径
蓝牙我分经典和 BLE。方案测试看广播、连接、GATT 写入。
BLE 配网是把 SSID 密码交给设备,成功要看 Wi-Fi 关联和 DHCP,不是看 BLE 写成功。
失败先问:手机搜得到吗、连得上吗、写入了吗、Wi-Fi 过了哪一层。
我用 nRF Connect 扫过自有设备;没有做过 BLE 协议栈,也没有 BLE 空口嗅探。
7. 作业
labs/week17/ scan.md cases-B1-B4.md thirty-seconds.txt验收:B3 明确写出「GATT 成功可以同时 Wi-Fi 失败」;扫描对象是自有设备。
8. 自测题
- BLE 写成功是否等于配网成功?
- 搜不到设备时先查 Wi-Fi 密码吗?
- 配网后关 BLE,Wi-Fi 应不应掉?
- 笔记本 Wireshark 默认能抓 BLE 空口吗?
- 双模共存测什么直觉?
- 简历怎么写本篇?
9. 学生常见翻车
- BLE 配网失败一律写成 Wi-Fi 芯片差。
- 简历精通蓝牙协议栈。
- 写别人设备的特征。
- 把经典蓝牙音频和 BLE 配网混为一谈。
- 抄未公开配网协议到博客。
10. 下一篇预告
第 18 篇:《用一块 ESP8266 走一遍原厂式测试:从开箱检查到测试报告》。
专栏毕业设计。开箱、冒烟、功能、异常、性能、2 小时拷机、用例表、缺陷单、报告封面(通过 / 有条件通过 / 不通过)。方法迁移,不伪称泰芯板。
附录 A. 自测题参考答案
- 不等于。以 Wi-Fi+DHCP 为准。
- 不。先 BLE 广播/模式/距离。
- 通常不应掉。B4。
- 不能。
- 同时工作时发现/时延/掉线是否恶化。
- 「理解 BLE 配网分层,nRF 扫描自有设备;未做协议栈」。
附录 B. 公开资料
- TXW82x FPV 12.4 BLE 配网 CAUTION
- TXSDK BLE 开发指南 / TXW8xx BLE 配网开发指南(名称引用)
- 第 5、11 篇
(第 17 篇完)
11. nRF Connect 你应看到的屏幕
扫描列表:设备名或N/A、RSSI 负数、可能有厂商数据。点进自有设备:Connect。连上后 Services 列表,UUID 16 位常见1800通用,或 128 位私有。
配网特征不要猜着写。只记录「存在可写特征」。写入作业仅限于你自己固件文档允许的特征。
关手机蓝牙时列表消失:这是扫描侧,不是设备砖了。B2 要看设备串口是否仍活、能否重新广播。
12. 和 Wi-Fi 互扰的最小观察(可选)
同一房间:先扫手环 RSSI 均值,再打开家用 AP 上的 iperf 打流 30s,再看 RSSI 和掉线。数字不必发论文。写「观察项」。不要结论「BLE 芯片差」。
13. 口述分层四问(早会)
搜得到吗?连得上吗?写入成功吗?Wi-Fi GOT IP 了吗?
四问全是「是」才允许 APP 显示成功。缺任何一问就显示对应失败。
14. BLE 配网失败:现场 10 分钟怎么走
师傅丢给你一台「APP 配不上」的样机。不要先重烧。
- 设备是否在配网模式?串口有没有
ble adv/blenc/ 「请用 APP 配网」一类打印。没有广播,手机 nRF 也是空的,先按键进配网,不要拧天线。 - 手机蓝牙权限、系统蓝牙开关、是否连着别的耳机占用。这是手机侧。
- nRF 能否扫到广播名。扫不到:距离、模式、2.4G 打流干扰、CPU1 未 ready。
- 能扫不能连:配对窗、APP 用的 UUID 和 Demo 不一致、绑定残留。让手机「忽略设备」再连。
- 能连能写:立刻看串口 Wi-Fi。错密码应 FAIL。对密码应 CONNECTED 然后 GOT IP。
- APP 成功灯:必须在 GOT IP 之后。提前亮灯按第 11 篇 UI 撒谎提单。
十分钟结束时你应能指着四问里的某一问说「卡在这里」。指不出,就说还缺日志,不要说芯片差。
15. 和经典蓝牙耳机故事划清
有人面试会从「你用过蓝牙耳机吗」开始。方案测试岗要的不是 A2DP。一句话带回配网:
「经典蓝牙我当用户用过。这个岗我准备的是 BLE 广播、连接、GATT 写凭据,再转 Wi-Fi 四层。音频协议栈我没做过。」
TXW82x 公开也有音频路径,那是另一条线,不要用耳机使用经验冒充。