码农知识堂 - 1000bd
  •   Python
  •   PHP
  •   JS/TS
  •   JAVA
  •   C/C++
  •   C#
  •   GO
  •   Kotlin
  •   Swift
  • Zigbee 入网过程详解


    目录

    入网流程图

    入网相关命令说明

    开启允许入网命令Management Permit Joining Request

    设备入网请求命令Beacon Request命令

     Beacon Request回复命令

    开始入网 Association Request命令

     Association Response

    Transport Key (发送NWK Key)

     Device Announce

     替换LNK key (ZIGBEE 3.0以上要求)

     Transport Key (发送新的LNK Key)

    Verify Key Resquest

    Verify Key Confirm

    入网过程中的其他命令

    Date Request

    Match Descriptor Request/Response

     Node Descriptor Request/Response

     Active Endpoints Request/Response

    Simple Descriptor Request/Response


    入网流程图

    设备进入通过coordinater入网

     如果一个设备通过一个router入网的流程是:

    入网相关命令说明

    下面我们说明下入网过程中我们会遇到的一些重要命令

    开启允许入网命令Management Permit Joining Request

    coordinater 发出Permit Joining Request广播,允许设备入网,时长一般为180s

    设备入网请求命令Beacon Request命令

    待入网设备启动扫网操作后,将在预置信道发出Beacon Request广播,zigbee信道为11~26,一般考虑效率和与WiFi信道干扰问题,会选择几条优先信道(如11、15、20、25)进行扫网。

     Beacon Request回复命令

    在收到Beacon Request后,同一信道的不同PAN的协调器会发出Beacon回应,待入网设备收到后会对其进行筛选,如是否允许入网,节点深度,是否接入当前设备类型。

    如果不允许入网 Association Permit为No

    Router Capacity 为Yes,表示能入网Router设备

    End Device Capacity为Yes ,表示能入网End Device设备

    开始入网 Association Request命令

    设备筛选出合适的网络(允许入网、节点深度较低、可接入当前设备类型),并向其发出Association Request请求入网

     

     Association Response

    收到Association Request后,协调器将根据当前资源情况决定是否允许其加入,若允许,则为其分配短地址,并返回Association response

    Transport Key (发送NWK Key)

    coordinater将NWK Key使用LNK Key加密发送给设备,而此处LNK key是预配置Pre-configured的,可使用ZigBeeAlliance09(5A:69:67:42:65:65:41:6C:6C:69:61:6E:63:65:30:39)或是利用install code生成。NWK key用于后期网络层通信的加密。

     Device Announce

    当设备接收到NWK key并且解密成功后,发送广播Device Announce,告知整个网络,我已经加入了

     替换LNK key (ZIGBEE 3.0以上要求)

    Request key(Link key):子设备向coordinater请求新的Link key以替换前面Pre-configured Link key

     Transport Key (发送新的LNK Key)

    Transport key(link key):coordinater返回新的Link key

     

    Verify Key Resquest

     子设备发送Verify Key Resquest请求Coordinate验证新的LNK Key

     

    Verify Key Confirm

    Coordinate验证新的LNK Key通过后,给子设备回复

    入网过程中的其他命令

    Date Request

    Date Request命令是催促目标尽快回复

    像在这里 子设备发送了Association Request后,200ms后发送了Date Request催促Coordinate回复

     

    Match Descriptor Request/Response

    Request用于询问子设备是否支持某个ClusterId

     

    Response子设备回复哪几个Endpoint支持这个ClusterId

     Node Descriptor Request/Response

    子设备询问Coordinate的情况

    Coordinate的Response

     Active Endpoints Request/Response

    Coordinate发送Active Endpoint Request查询子设备支持的endpoint

     子设备Response

    Simple Descriptor Request/Response

    Coordinate查询子设备某个endpoint支持的ClusterId信息

    子设备的Response

  • 相关阅读:
    都说Dapper性能好,突然就遇到个坑,还是个性能问题
    Linux账号管理:用户账号与用户组
    【开源】嵌入式微服务框架MAES
    Kafka消费者组重平衡(二)
    Python+opencv绘制测试标版(棋盘格、纯色、十字叉心)
    pygame退出时卡死
    java ssh校园拼餐系统
    硬件开发笔记(十一):Altium Designer软件介绍、安装过程和打开pcb工程测试
    关于#c语言#的问题:力扣求长度最小的数组
    华为OD机试 - 智能驾驶 - 广度优先搜索(Java 2024 C卷 200分)
  • 原文地址:https://blog.csdn.net/MashiMaroJ/article/details/127426917
  • 最新文章
  • 攻防演习之三天拿下官网站群
    数据安全治理学习——前期安全规划和安全管理体系建设
    企业安全 | 企业内一次钓鱼演练准备过程
    内网渗透测试 | Kerberos协议及其部分攻击手法
    0day的产生 | 不懂代码的"代码审计"
    安装scrcpy-client模块av模块异常,环境问题解决方案
    leetcode hot100【LeetCode 279. 完全平方数】java实现
    OpenWrt下安装Mosquitto
    AnatoMask论文汇总
    【AI日记】24.11.01 LangChain、openai api和github copilot
  • 热门文章
  • 十款代码表白小特效 一个比一个浪漫 赶紧收藏起来吧!!!
    奉劝各位学弟学妹们,该打造你的技术影响力了!
    五年了,我在 CSDN 的两个一百万。
    Java俄罗斯方块,老程序员花了一个周末,连接中学年代!
    面试官都震惊,你这网络基础可以啊!
    你真的会用百度吗?我不信 — 那些不为人知的搜索引擎语法
    心情不好的时候,用 Python 画棵樱花树送给自己吧
    通宵一晚做出来的一款类似CS的第一人称射击游戏Demo!原来做游戏也不是很难,连憨憨学妹都学会了!
    13 万字 C 语言从入门到精通保姆级教程2021 年版
    10行代码集2000张美女图,Python爬虫120例,再上征途
Copyright © 2022 侵权请联系2656653265@qq.com    京ICP备2022015340号-1
正则表达式工具 cron表达式工具 密码生成工具

京公网安备 11010502049817号