Skip to content

第3章 设备角色与端点机制 ​

本章目标

搞清网络里三种角色(协调器/路由器/终端)各干什么,以及「端点 + 簇 + Profile」如何完成应用寻址。

3.1 三种角色 ​

角色缩写干什么供电
协调器ZC创建网络(选信道/PAN)、短地址固定 0x0000、信任中心必须常电
路由器ZR入网后可转发数据、可让设备挂靠、扩展覆盖通常常电
终端ZE只跟父节点通信、不转发、可休眠电池

记忆口诀

协调器「开张」、路由器「看场子」、终端「来消费」。

在真实仿真日志里,角色差异一目了然:

// 路由器入网
Node 1 | The device joined the network SUCCESSFULLY with short address 07:8b
        [树的分支] 以路由器身份加入,启动路由接受子设备

// 终端入网
Node 3 | The device joined the network SUCCESSFULLY with short address c1:aa
        [树的叶子] 以终端身份挂靠在父节点下,不参与路由

3.2 端点 Endpoint ​

一台 Zigbee 设备可以同时跑多个应用,每个应用占一个端点号(0~240)。端点 0 是 ZDO(设备管理),255 是广播,普通应用用 1~240。

在我们的点对点实验里:

协调器(控制器)端点 8  ──→  终端(LED 执行器)端点 3
    源端点 src=8                  目的端点 dst=3

命令帧的 APS 头里就写着这两个端点号——端点寻址解决「哪个应用的哪个应用在对话」。

3.3 簇与 Profile ​

编号含义例子
簇 ID(Cluster ID)「这一类业务有哪些命令」0x0006 = On/Off 簇(开/关/切换)
Profile ID「整套互操作标准」0x0104 = Home Automation 智能家居

端点 + 簇 + Profile 合起来:端点 3 上跑着一个「Home Automation 的 On/Off 应用」,端点 8 发来簇 0x0006 的命令,它知道是在叫我开灯。

3.4 ns-3 代码对应 ​

capa.SetDeviceType(ENDDEVICE);   // 终端:不转发、可休眠
// 或 ROUTER                    // 路由器:启动路由

req.m_srcEndPoint = 8;           // 源端点
req.m_dstEndPoint = 3;           // 目的端点
req.m_clusterId  = 0x0006;       // On/Off 簇
req.m_profileId  = 0x0104;       // Home Automation

与真机差异

ns-3 里不用「注册端点」就能收发;CC2530 真机必须先用 afRegister 注册端点描述符(见第 14 章迁移表)。

配套实验:实验一 · 点对点 LED(角色与端点演示)

aioteer · 物联网专业课程群

💬AI 伴学配置