在一个zigbee协 调器设备建立网络后,路由器设备或者终端设备(end device),可以加入协调器建立的网络,具体加入网络有两种方式,一种是通过关联(association)方式,就是待加入的设备发起加入网络,具 体实现方式后面讨论,另一中是直接(direct)方式,就是待加入的设备具体加入到那个设备下,作为该设备的子节点,由以前网络中的设备,想待加入的设 备作为其子设备决定。

下面重点讨论第一种方式,也是实际中用的最多的方式

通过关联方式加入一个网络:

加入一个设备,是两个设备的事,即子设备和待定父设备

对于子设备,首先子设备调用NLME-NETWORK-DISCOVERY.request 原语,设定待扫描的信道,以及每个信道扫描的时间,网络层收到这个原语,将要求MAC层执行被动或主动扫描。

具体发送到设备外的是一个becon request 帧,当在这个信道中的设备收到该帧,将会发送becon帧,这是子设备通过BEACON-NOTIFY.indication 原语,告知该设备的MAC层,该becon帧包含了发送该帧的地址信息,以及是否允许其他设备以其子节点的方式加入。待加入的设备,在网络层,将检查该 becon帧 协议 ID是否是zigbee ID 。如果不是,将 忽略;如果是,该设备将复制收到每个becon帧的相关信息到其关联表中(neighbor table)。

一旦MAC层完成了扫描,将发送 MLME-SCAN.confirm 原语,告知网络层,网络层将发送NLME-NETWORK-DISCOVERY.confirm 原语,告知应用层。

应用层收到该原语,应用层将根据情况,要么重新要求扫描,或者从关联表中选择所发现的网络加入。调用NLME-JOIN.request 原语,原语中各个参数的设置参看协议(可以在本站下载栏找到)非常容易。如果在关联表中找不到合适的准父节点,将调用原语告知应用层,如果由多个设备可以 满足要求,将选择到协调器节点深度最低的设备,如果有几个设备的深度相同,且都是最小深度,将从中随机选择一个。

一旦潜在的父节点确定,网络层将调用MLME-ASSOCIATE.request 原语到MAC层。具体设置参看协议相关部分(213页),连接状态将通过MLME-ASSOCIATE.confirm 原语反馈。

如果试图加入不成功,网络层将收到MAC层通过MLME-ASSOCIATE.confirm告知的加入失败,如果收到的是潜在父节点拒绝该设备加入,这 时候,网络层将会在关联表中,把该潜在父节点的相应部分,潜在父节点位(potential parent bit)置为零,确保网络层,不再给这个设备二次发送加入请求。

如果一次加入没成功,将选择另一个潜在的父节点加入,指导找到一个合适的设备加入或者所有的设备都不适合。

如果加入成功,网络层收到的MLME-ASSOCIATE.confirm 原语,将含有该设备可用的16 唯一的逻辑地址,

网络层将在关联表中设置与其父节点的关系,同时,这个父节点也会在其关联表中加入这个新设备。

如果是以路由器(router)形式成功加入网络,该设备的应用层将发送NLME-STAT_ROUTER. request 原语,网络层将发送MLME-STAT.request 原语到MAC层。收到了MLME-START.confirm 原语,网络层 将发送 NLME-START-ROUTER.confirm 原语,含有同样的状态值。

对于父节点设备:

只有协调器或路由器,可以加入设备,进行该操作,首先从MAC层开始,MAC接收到一帧(ASSOCIATE)数据 ,通过 MLME_ASSOCIATE.indication原语传到网罗层,潜在的父节点收到这帧数据,首先判断该设备是否已经存在其关联表中,如果找 到,NLME将获取相应的16位网络地址,并发送 association  response 到MAC层,如果没有找到,将分配一个在这个网络中唯一的地址给待加入的设备,如果潜在父节点已经用完了地址分配,NLME将中止,通过MLME- ASSOCIATE.reponse 原语,告知该设备,不能接收子设备了,在多跳网络中,其他的设备还可以接收。

如果设备加入得到许可,这时候,将在关联表中创建一个表项,作为其子节点,并通过MLME-ASSOCIATE.reponse 原语,告知该设备,已经成功加入网络。

转自:http://hi.baidu.com/a263238386/item/68ea3ff6570c982e753c4c3f

Zigbee设备入网流程分析(关联方式)相关推荐

  1. zigbee设备入网流程分析

    下图片展示的是一个zigbee设备的入网流程 下面是一个router设备连接到coordinator的过程: 1.router发送beacon request router会在每一个信道发送一个bea ...

  2. Android 蓝牙 搜索周围设备代码流程分析-framework到协议栈流程

    本文详细的将Android 蓝牙扫描周围设备流程进行了梳理,从UI开始扫描到协议栈发送扫描命令到controller,进行了源码分析. 更多源码分析: android-蓝牙A2dp-avrcp-hfp ...

  3. ZigBee转包、Ubiqua抓包工具的安装教程附带ZigBee抓包使用和入网流程解析

    关注嘉友创科技公众号 前言: 无线通信这玩意是看不见摸不着的,比较炫幻,不像串口通信,想知道通信的数据,直接接一个USB转串口线,打开PC串口助手就可以看到数据了. 无线不同的地方就是,这玩意还有加密 ...

  4. green power 设备入网过程

    目录 Green Power设备入网流程 单项green power commissioning过程 抓包实例 1.        SINK发送Green Power:GP Proxy Commiss ...

  5. ZYNQ 7000 USB HS启动流程和工作方式

    目录 1.USB数据结构 2.USB设备启动流程和工作方式 (1).通过ID查找USB配置信息UsbConfigPtr (2).将USB配置信息UsbConfigPtr挂接到XUsbPS对象实例Usb ...

  6. Zigbee入网流程

    本示例采用关联方式(Associate)入网,总体流程如下: 一.入网前准备 1.coordinater 发出Permit Joining Request广播,允许设备入网,时长一般为180s 2.待 ...

  7. 从注册流程 分析如何安全退出多个Activity 多种方式(附DEMO)

      退出Activity注册Android遍历 目录(?)[+] 前言 知识结构 具体方案 方案1 方法采用FLAG_ACTIVITY_CLEAR_TOP退出整个程序多activity 方案2 方法通 ...

  8. 从注册流程 分析如何安全退出多个Activity 多种方式(附DEMO)

    http://blog.csdn.net/vipzjyno1/article/details/25423543 前言 由于一个同学问到我如何按照一个流程走好之后回到首页,我以前看到过4个解决方案,后来 ...

  9. 蓝牙BLE设备主机重启回连流程分析

    本文出自:<蓝牙BLE设备主机重启回连流程分析> 如果一个BLE设备已经与蓝牙中心设备连接上,那么当中心设备的断电重启,其依然会和配对过的BLE设备连接上,而不需要重新走配对的流程,这个过 ...

最新文章

  1. 聊聊 Linux 中的五种 IO 模型
  2. oracle row 00033,00033-ContentProvider实现数据共享[总结]
  3. 在C#中使用代理的方式触发事件 的简单习作
  4. 格式化网上复制过来的源代码
  5. django安装_技术大牛详解:Django框架之环境安装
  6. JVM 垃圾回收算法机制及其实现原理
  7. android jni示例_Android动画示例
  8. wsdl2java参数_wsdl2java参数解释
  9. 微信扫码支付 java版
  10. 国内外一些软件开发大公司
  11. Unity输入控制物体旋转和延迟缩放-课程作业
  12. 【CS】软件测试概念Software Testing
  13. python爬虫 网页表格
  14. check if DVE variable is valid
  15. mybatis mysql 关于调用存储过程获取查询结果
  16. TVS 管选型与 ESD 防护设计
  17. Jetpack 系列之AppSearch
  18. Unity 游戏区域性崩溃,深藏的国际化巨坑
  19. 《Linux就该这么学》读书笔记
  20. WPF 说话-语音合成

热门文章

  1. I2C driver编写指导二:编写i2c client driver指南
  2. 081020_文本分类(Text Classification)
  3. 毕业后的去向:继续读研还是直接就业?
  4. 如何实现电脑远程操控西门子触摸屏画面
  5. C#怎么修改生成的EXE文件图标
  6. 怎么录屏?5 款免费无水印的录屏神器
  7. 「备忘录」MacOS终端获取电脑硬件信息序列号UUID
  8. 工程测量实训心得体会
  9. MaxEnt报错处理方法
  10. 求解斐波那契数列模$p$意义下最短循环节