Skip to content

7.4 仿真调试 ​

一句话理解

把 7.2 / 7.3 的代码烧进两块板子:终端周期上报,协调器屏幕显示,用肉眼看到数据在空中飞。

调试步骤 ​

  1. 分别编译协调器工程和终端(路由器)工程,分别下载到两块开发板;
  2. 终端(路由器)设备加入 ZigBee 网络后,观察两块板子的屏幕。

观察现象 ​

终端(路由器)屏幕 ​

终端上电入网后,屏幕显示:

Router: 3028      ← 本设备网络地址
Parent: 0         ← 父节点(协调器)
Report: 3         ← 已上报次数(每次 +1)

终端每 3 秒上报一次,Report: 后的数字不断增长。

协调器屏幕 ​

协调器屏幕显示:

ZigBee Coord
Network ID: AABC   ← 网络 ID
pro. report        ← 收到上报提示
Rx Value: 3        ← 收到的属性值(与终端上报值一致)

协调器每收到一次上报,Rx Value 更新一次,数值与终端 Report: 的数字同步增长。

📟
终端
Report: N(每 3 秒 +1)
📡 上报值 N
🏛️
协调器
Rx Value: N(同步更新)

实验现象小结

设备屏幕显示含义
终端Report: N第 N 次上报(3 秒一次)
协调器Rx Value: N收到上报值 N

两边的 N 始终一致——数据从终端成功"飞"到了协调器,属性上报链路打通!

如果数值不一致或不动

  • 检查终端是否已入网(Parent 是否为 0x0000);
  • 检查协调器是否开启 ZCL_REPORT_DESTINATION_DEVICE + ZCL_REPORT 宏;
  • 检查终端是否开启 ZCL_REPORTING_DEVICE 宏;
  • 检查两块板子是否在同一个网络(Network ID 一致)。

内容来源:紫甲 IoT《ZigBee 3.0 开发指南》第四部分·7.4 仿真调试,原站链接


本章自测 ​

一、单项选择题(每题 4 分,共 40 分) ​

  1. 仿真调试的第一步是(A. 先把两块板子接上网线 B. 分别编译协调器工程和终端(路由器)工程,并下载到两块开发板 C. 先用串口助手发命令 D. 先关闭协调器再上电终端) 答案:B

  2. 终端(路由器)屏幕上显示的 Parent: 0 表示(A. 终端没有父节点 B. 父节点是协调器(网络地址 0x0000) C. 父节点掉线了 D. 父节点地址非法) 答案:B

  3. 终端屏幕上 Report: 3 中数字 3 的含义是(A. 本设备短地址 B. 已上报次数,每上报一次加 1 C. 网络 ID D. 父节点地址) 答案:B

  4. 终端上报的周期是(A. 每 1 秒一次 B. 每 3 秒一次 C. 每 30 秒一次 D. 每分钟一次) 答案:B

  5. 协调器屏幕上 Rx Value: 3 中的数值 3 表示(A. 协调器自己的上报次数 B. 协调器收到的属性值,与终端上报值一致 C. 协调器的网络地址 D. 入网设备总数) 答案:B

  6. 实验成功的标志是(A. 终端 Report 数字增长,协调器 Rx Value 数字同步增长且两者始终一致 B. 终端数字增长而协调器不动 C. 协调器数字增长而终端不动 D. 两块板子都黑屏) 答案:A

  7. 协调器屏幕上 pro. report 这条提示表示(A. 协调器自己要上报了 B. 协调器收到了一条周期上报(periodic report) C. 协调器正在组网 D. 协调器出错) 答案:B

  8. 如果协调器屏幕上的 Rx Value 一直不动,首先应该排查的是(A. 终端是否已入网、Parent 是否为 0x0000 B. 串口线是否插好 C. 电脑音量 D. 屏幕亮度) 答案:A

  9. 下列哪一项不是调试排错清单中列出的检查项(A. 终端是否已入网(Parent 是否为 0x0000) B. 协调器宏 ZCL_REPORT_DESTINATION_DEVICE + ZCL_REPORT 是否开启 C. 终端宏 ZCL_REPORTING_DEVICE 是否开启 D. 两块板子的 USB 线颜色是否一致) 答案:D

  10. 两块板子属于同一个 ZigBee 网络,可以通过屏幕上哪个字段是否一致来判断(A. Report: B. Rx Value: C. Network ID(协调器上) D. Parent:) 答案:C

二、问答题(每题 20 分,共 60 分) ​

  1. 简述本实验仿真调试的完整步骤,并说明成功时两块板子屏幕应分别出现什么现象。参考答案要点:
  • 分别编译协调器工程和终端(路由器)工程,分别下载到两块开发板;
  • 终端加入 ZigBee 网络后,观察两块板子的屏幕;
  • 终端屏幕显示 Router: <短地址>、Parent: 0、Report: N,每 3 秒 N 加 1;
  • 协调器屏幕显示 ZigBee Coord、Network ID: <网络号>、pro. report、Rx Value: N;
  • 两边的 N 始终一致,说明数据成功从终端"飞"到协调器。
  1. 如果实验中协调器 Rx Value 不更新或与终端 Report 数字不一致,应该按哪些方面排查?参考答案要点:
  • 检查终端是否已入网:屏幕上 Parent 是否为 0x0000;
  • 检查协调器宏:是否开启 ZCL_REPORT_DESTINATION_DEVICE + ZCL_REPORT;
  • 检查终端宏:是否开启 ZCL_REPORTING_DEVICE;
  • 检查两块板子是否在同一网络:协调器屏幕上的 Network ID 是否一致;
  • 宏漏开或终端未入网都会导致接收侧收不到上报。
  1. 为什么说"两边的 N 始终一致"是属性上报链路打通的直接证据?参考答案要点:
  • 终端每上报一次 seqNum 自增,屏幕 Report: N;
  • 协调器每收到一条上报命令,就把收到的属性值显示为 Rx Value: N;
  • 若从终端组装、空中传输到协调器解析显示整条链路任何一环出问题,两边数字就会错位或不动;
  • 两边 N 同步且一致,说明"终端组装 → 发送 → 协调器接收解析显示"整条链路都正常工作。

aioteer · 物联网专业课程群

💬AI 伴学配置