设备管理:从入网到退出的全生命周期
学习提示
这一页把 ZigBee 3.0 的设备管理讲透:一台设备从"进网、认身份、保连接"到"退出",协议栈的"管家"们分别替你干了哪些事。
一句话理解
设备管理 = 管理每台设备从"进网、认身份、保连接"到"退出"的整个生命周期。 动手干活的"管家"有两个:BDB(负责统一入网流程)和 ZDO(负责设备级管理命令)。
一. 入网前:烧写固件 = 决定身份
设备的"角色"不是运行时选的,而是编译 / 烧写时定死的:
| 角色 | 职责 | 对应固件配置 |
|---|---|---|
| 协调器 Coordinator | 建网 + 兼任信任中心 | CoordinatorEB |
| 路由器 Router | 转发数据、允许设备加入 | RouterEB |
| 终端 End Device | 省电、睡觉轮询、无子节点 | EndDeviceEB |
💡 三种角色各司其职:协调器是"物业",负责登记和管理;路由器是"快递站",负责中转;终端是"住户",大多数时候在睡觉省电。
二. 入网中:BDB 统一流程(ZigBee 3.0 的核心改进)
ZigBee 3.0 用 BDB(Base Device Behavior) 把所有入网方式收敛成三个动作,对应 Z-Stack 里的 bdb_StartCommissioning() 一个 API:
| 动作 | 干什么 | 谁调用 |
|---|---|---|
| Formation(建网) | 协调器选 PANID、选信道,网络诞生 | 协调器 |
| Steering(引导入网) | 扫描信道 → 找"允许加入"的网络 → 发关联请求 | 普通设备 |
| Finding & Binding(查找绑定) | 按键找配对设备 | 任意设备 |
入网途中要经过三道关:
- 信任中心认证:协调器(信任中心)下发网络密钥;
- 分配短地址:父节点给新设备一个 16 位网络内唯一地址;
- Device_annce 宣告:全网广播"我入网了,我是谁、住哪号"。
🔐 安全性上,ZigBee 3.0 强制所有设备支持安全入网;讲究的场合再用安装码(Install Code)——入网前把一串码当面输给对方,双方派生出唯一链路密钥,防止"蹭网"。
三. 入网后:日常运行管理
| 管理项 | 机制 | 说明 |
|---|---|---|
| 地址管理 | IEEE 64 位(唯一身份)↔ 短地址 16 位(网络内寻址) | 双地址配合,见《地址分配》 |
| 连接保持 | 终端轮询找父节点要数据;父节点用超时判断失联 | 终端省电与保活的关键 |
| 掉电恢复 | PANID / 短地址 / 密钥写进 NV 存储,重启快速重加入 | 掉电不丢"身份" |
| 拓扑管理 | 邻居表、路由表、父子关联表 | 三张表是网络的"通讯录" |
四. 底层管家:ZDO + 管理命令
ZDO(ZigBee Device Object) 是设备管理的总管家,所有设备级查询与管理都通过它背后的命令完成:
| 命令 | 干什么 | 典型用途 |
|---|---|---|
Device_annce | 入网宣告 | 新设备入网时广播 |
Mgmt_Lqi_req | 读邻居表(LQI) | 查询邻居关系与信号质量 |
Mgmt_Rtg_req | 读路由表 | 查询路径与下一跳 |
Mgmt_Leave_req / NLME_LeaveReq | 踢人 / 主动退出 | 远程管理设备 |
IEEE_addr_req / NWK_addr_req | 地址互查(短↔IEEE) | 建立"门牌号 ↔ 身份证"映射 |
小结
设备管理管的是"人":一台设备从出生(烧固件)到进单位(入网)到干活(运行)到退休(离网),每一步都有对应的 API 和命令。