参考博文 :zigbee组网过程_wu424602394的博客-CSDN博客_zigbee组网

1. 协调器未上电时, EndPoint不断发送请求包:

2. 协调器上电,无ENDPOINT时,大约1s左右发送信标包(这个扫描时间在哪儿设置?)

确立自己的PanID 0x7B76,建立自己的网络,等待节点加入。

找到合适的信道后,协调器将为网络选定一个网络标识符(PAN ID,取值<=0x3FFF),这个ID在所使用的信道中必须是唯一的,也不能和其他zigbee网络冲突,而且不能为广播地址oxFFFF(此地址为保留地址,不能使用)。PAN ID可以通过侦听其他网络的ID然后选择一个不会冲突的ID的方式来获取,也可以人为的指定扫描的信道后来确定不和其他网络冲突的PAN ID。在zigbee网络中有两种地址模式:扩展地址(64位)和短地址(16位),其中扩展地址由IEEE组织分配,用于唯一的设备标识;短地址用于本地网络中设备标识,在一个网络中,每个设备的短地址必须唯一,当节点加入网络时由其父节点分配并通过使用短地址来通信。对于协调器来说,短地址通常设定为0x0000;

3. EndPoint上电,先发包扫描

为了建立连接,FFD节点需要向协调器提出请求,协调器接收到节点的连接请求后根据情况决定是否允许其连接,然后对请求连接的节点做出响应,节点与协调器建立连接后,才能实现数据的收发。具体的流程可以分为下面的步骤:
1.查找网络协调器。首先会主动扫描查找周围网络的协调器,如果在扫描期限内检测到信标,那么将获得了协调器的有关信息,这时就向协调器发出连接请求。在选择合适的网络之后,上层将请求mac层对物理层和mac层的phyCurrentChannel、macPANID等PIB属性进行相应的设置。如果没有检测到,间隔一段时间后,节点重新发起扫描。


2.发送关联请求命令(Associate request command)。节点将关联请求命令发送给协调器,协调器收到后立即回复一个确认帧(ACK),同时向它的上层发送连接指示原语,表示已经收到节点的连接请求。但是这并不意味着已经建立连接,只表示协调器已经收到节点的连接请求。当协调器的mac层的上层接收到连接指示原语后,将根据自己的资源情况(存储空间和能量)决定是否同意此节点的加入请求,然后给节点的mac层发送响应。

3.等待协调器处理。当节点收到协调器加入请求命令的ACK后,节点mac将等待一段时间,接受协调器的连接响应。在预定的时间内,如果接收到连接响应,它将这个响应向它的上层通告。而协调器给节点的mac层发送响应时会设置一个等待响应时间(T_ResponseWaitTime)来等待协调器对其加入请求命令的处理,若协调器的资源足够,协调器会给节点分配一个16位的短地址,并产生包含新地址和连接成功状态的连接响应命令,则此节点将成功的和协调器建立连接并可以开始通信。若协调器资源不够,待加入的节点将重新发送请求信息,直接入网成功。
4.发送数据请求命令。如果协调器在响应时间内同意节点加入,那么将产生关联响应命令(Associate response command)并存储这个命令。当响应时间过后,节点发送数据请求命令(Data request command)给协调器,协调器收到后立即回复ACK,然后将存储的关联响应命令发给节点。如果在响应时间到后,协调器还没有决定是否同意节点加入,那么节点将试图从协调器的信标帧中提取关联响应命令,成功的话就可以入网成功,否则重新发送请求信息直到入网成功。

5.回复。节点受到关联响应命令后,立即向协调器回复一个确认帧(ack),以确认接收到连接响应命令,此时节点将保存协调器的短地址和扩展地址,并且节点的MLME向上层发送连接确认原语,通告关联加入成功的信息。
节点通过已有节点加入网络
当靠近协调器的FFD节点和协调器关联成功后,处于这个网络范围内的其他节点就以这些FFD节点作为父节点加入网络了,具体加入网络有两种方式,一种是通过关联(associate)方式,就是待加入的节点发起加入网络;另一种是直接(direct)方式,就是待加入的节点具体加入到那个节点下,作为该节点的子节点。其中关联方式是zigbee网络中新节点加入网络的主要途径,

对于一个节点来说只有没有加入过网络的才能进行加入网络。在这些节点中,有些是曾经加入过网络中,但是却与它的父节点失去联系(这样的被称为孤儿节点),而有些则是新节点。当是孤儿节点时,在它的相邻表中存有原父节点的信息,于是它可以直接给原父节点发送加入网络的请求信息。如果父节点有能力同意它加入,于是直接告诉它的以前被分配的网络地址,它便入网成功;如果此时它原来的父节点的网络中,子节点数已达到最大值,也就是说网络地址已经分配满,父节点便无法批准它加入,它只能以新节点身份重新寻找并加入网络。
而对于新节点来说,他首先会在预先设定的一个或多个信道上通过主动或被动扫描周围它可以找到的网络,寻找有能批准自己加入网络的父节点,并把可以找到的父节点的资料存入自己的相邻表。存入相邻表的父节点的资料包括zigbee协议的版本、堆栈的规范、PAN ID和可以加入的信息。在相邻表中所有的父节点中选择一个深度最小的,并对其发出请求信息,如果出现相同最小深度的两个以上的父节点,那么随机选取一个发送请求。如果相邻表中没有合适的父节点的信息,那么表示入网失败,终止过程。如果发出的请求被批准,那么父节点同时会分配一个16位的网络地址,此时入网成功,子节点可以开始通信。如果请求失败,那么重新查找相邻表,继续发送请求信息,直到加入网络或者相邻表中没有合适的父节点。

完整的上电、扫描、建立连接等数据帧抓包用2530DB+RF04EB

Zigbee组网过程分析相关推荐

  1. ZigBee组网总结

    ZigBee组网 设备类型: 全功能设备(FFD),具备完善的功能,可以完成全部功能. 精简功能设备(RFD),功能较为简单,只具有部分功能,成本低 设备角色: 协调器(Coordinator),用于 ...

  2. ZigBee组网从未如此简单!

    想用ZigBee,想组网,不想看复杂的组网协议怎么办?看完这一篇就够了! ZigBee的前身是1998年由INTEL.lBM等产业巨头发起的"Homer flite"技术,随着我国 ...

  3. ZigBee组网详解

    ZigBee组网原理详解 https://blog.csdn.net/u012912039/article/details/52250253 1.组网概述 组建一个完整的zigbee网状网络包括两个步 ...

  4. ZigBee组网原理详解

    ZigBee组网原理详解 https://blog.csdn.net/u012912039/article/details/52250253 1.组网概述 组建一个完整的zigbee网状网络包括两个步 ...

  5. zigbee组网过程

    总体上来说:在一个zigbee网络中,只有协调器(coordinator)设备可以建立网络,在建立网络过程中,所有的实现过程都是通过原语实现的(具体在程序中,如用c语言,就是调用一个一个函数,或者是一 ...

  6. ZigBee组网原理分析

                                                                           ZigBee组网原理分析 原文链接:https://blo ...

  7. zigbee组网过程概述

    zigbee组网过程 组网方案设计:组建一个完整的zigbee网状网络包括两个步骤:网络初始化.节点加入网络,其中节点加入网络又包括两个步骤:通过与协调器连接入网和通过已有父节点入网. 网络初始化: ...

  8. Zigbee组网方案

    ZigBee组网原理详解 1.组网概述 组建一个完整的zigbee网状网络包括两个步骤:网络初始化.节点加入网络.其中节点加入网络又包括两个步骤:通过与协调器连接入网和通过已有父节点入网. ZigBe ...

  9. 基于STM32+ZIGBEE组网的防火防潮预警系统

    百度网盘下载地址(941):点击下载 ZIGBEE组网,终端数据上传协调器,协调器把数据上传到机智云,通过手机APP查看.项目始于B站某位UP主的zigbee组网开源项目,整体在源代码上更改了zigb ...

最新文章

  1. numpy 的array 用于矩阵运算 与 python的列表表示矩阵的区别
  2. Windows server2008 搭建ASP接口访问连接oracle数据库全过程记录--备用
  3. icmp报文_用侦察兵的故事趣讲ICMP和Ping,看完想忘都难!
  4. TP5 连接oracle数据库
  5. java 接口 安全加密_Java中的安全加密
  6. Java web后端2 Servlet Maven HttpServlet ServletConfig ServletContext HTTP协议
  7. linux 用dg分区,[bug报告] 兼容性问题,mbr硬盘使用分区扩容后linux系统不认分区...
  8. 合肥工贸高级技工学校计算机系,合肥工贸高级技工学校
  9. poj 1032 Parliament 编程的小技巧
  10. java包资源_Java获取jar包以外资源的方法
  11. 远程 导数据 mysql_mysql远程导入
  12. arch linux 看图软件,菠萝看图
  13. 孤儿进程/僵尸进程/守护进程
  14. 火灾自动报警系统 300W广播功率放大器
  15. Google Chrome 插件推荐
  16. MOSFet cutoff frequency ( From google)
  17. Linux 管道 管道命令 命名管道
  18. NEXYS4_DDR迪芝伦XC7A100TCSG324-1型,VGA接口显示彩条
  19. 小南迎宾机器人使用说明
  20. Python毕业设计选题推荐

热门文章

  1. 初中计算机课程教案模板,初中体育课电子表格教案模板(共12篇)
  2. CSS animation动画:实现台球运动效果
  3. 字体大宝库:20款好看的免费英文字体下载
  4. 农村地区基于覆盖最大化的VoLTE参数优化
  5. OFDM Introduction
  6. ubuntu安装sanba服务
  7. 微软日历/outlook日历去除生日日历,只要点个设置!
  8. 2021年全球排名51-100餐厅榜单揭晓,中国有3家餐厅入围
  9. MonkeyRunner之手机屏幕截图的比对
  10. SpringBoot中的Transaction研究(一)TransactionManager