Skip to content

第6章 数据通信基础 ​

本章目标

掌握三种发送模式(单播/组播/广播)、APS 收发原语、确认机制与 Binding 绑定。日志来自 zigbee-aps-data 与 zigbee-led-control 真实运行。

6.1 三种发送模式 ​

模式发给谁寻址典型场景
单播 Unicast指定一台设备目标短地址控制某一盏灯
组播 Groupcast一组设备(同组号)16 位组地址「全部卧室灯一起关」
广播 Broadcast全网设备0xFFFF发现设备、全网同步

类比

单播=打电话给一个人;组播=在「家庭群」发一条;广播=在小区大喇叭喊一声。

6.2 APS 收发原语 ​

  • APSDE-DATA.request:应用层「发数据」的请求(发给谁、带什么);
  • APSDE-DATA.indication:APS 层「收到数据」后通知应用层;
  • APSDE-DATA.confirm:APS 层报告「发出去了 / 失败了」。

6.3 真实日志:单播与组播 ​

官方示例 zigbee-aps-data 同时演示了组播和单播(5 字节数据包):

+9.09145s  Node 4 | GROUPCAST | ApsdeDataIndication: Received DATA packet with size 5 for destination EndPoint 3
+9.09145s  Node 4 | GROUPCAST | ApsdeDataIndication: Received DATA packet with size 5 for destination EndPoint 9
+9.16303s  Node 3 | GROUPCAST | ApsdeDataIndication: Received DATA packet with size 5 for destination EndPoint 3
+10.6711s  Node 3 | UCST     | ApsdeDataIndication: Received DATA packet with size 5 for destination EndPoint 3

组播时同一台设备的端点 3、端点 9 都收到了(一个组可对应多个端点);单播只送指定端点。日志里的 GROUPCAST / UCST 就是投递模式标记。

单播(点对点 LED)的收发对照:

+6s        [协调器/控制器] 发送 LED 命令: 0x1 (seq 1) -> 终端 (短地址 42:24)
+6.00144s  [终端 1/LED 执行器] 收到命令 | 源端点 8 -> 目的端点 3 | 帧长 2
           [应用层解析] 命令码=0x1 序号=1
           [执行动作] 终端 1 拉高 GPIO -> LED 点亮成功 (LED=ON)

6.4 确认机制(两层) ​

层级谁和谁保证什么
MAC 层 ACK每一跳(邻居之间)「这一跳送过去了」(802.15.4 自带)
APS 层确认端到端(源端点到目的端点)「你(目的端点)真的收到了」

记忆

MAC ACK 是「快递员之间点货」,APS ACK 是「寄件人找收件人签收」。

6.5 APS Binding 绑定 ​

Binding 是 APS 层的绑定表:把「源端点 + 簇」映射到「目标端点/组」。绑定好后应用层只按簇发送,APS 自动转发给绑定的目标——典型场景是「墙上无线开关绑定一盏灯」。

ns-3 模块提供 ApsmeBindRequest(BIND/UNBIND)接口。Binding 让我们从「面向地址」编程变成「面向业务」编程。

aioteer · 物联网专业课程群

💬AI 伴学配置