Zigbee设备入网流程分析(关联方式)
在一个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设备入网流程分析(关联方式)相关推荐
- zigbee设备入网流程分析
下图片展示的是一个zigbee设备的入网流程 下面是一个router设备连接到coordinator的过程: 1.router发送beacon request router会在每一个信道发送一个bea ...
- Android 蓝牙 搜索周围设备代码流程分析-framework到协议栈流程
本文详细的将Android 蓝牙扫描周围设备流程进行了梳理,从UI开始扫描到协议栈发送扫描命令到controller,进行了源码分析. 更多源码分析: android-蓝牙A2dp-avrcp-hfp ...
- ZigBee转包、Ubiqua抓包工具的安装教程附带ZigBee抓包使用和入网流程解析
关注嘉友创科技公众号 前言: 无线通信这玩意是看不见摸不着的,比较炫幻,不像串口通信,想知道通信的数据,直接接一个USB转串口线,打开PC串口助手就可以看到数据了. 无线不同的地方就是,这玩意还有加密 ...
- green power 设备入网过程
目录 Green Power设备入网流程 单项green power commissioning过程 抓包实例 1. SINK发送Green Power:GP Proxy Commiss ...
- ZYNQ 7000 USB HS启动流程和工作方式
目录 1.USB数据结构 2.USB设备启动流程和工作方式 (1).通过ID查找USB配置信息UsbConfigPtr (2).将USB配置信息UsbConfigPtr挂接到XUsbPS对象实例Usb ...
- Zigbee入网流程
本示例采用关联方式(Associate)入网,总体流程如下: 一.入网前准备 1.coordinater 发出Permit Joining Request广播,允许设备入网,时长一般为180s 2.待 ...
- 从注册流程 分析如何安全退出多个Activity 多种方式(附DEMO)
退出Activity注册Android遍历 目录(?)[+] 前言 知识结构 具体方案 方案1 方法采用FLAG_ACTIVITY_CLEAR_TOP退出整个程序多activity 方案2 方法通 ...
- 从注册流程 分析如何安全退出多个Activity 多种方式(附DEMO)
http://blog.csdn.net/vipzjyno1/article/details/25423543 前言 由于一个同学问到我如何按照一个流程走好之后回到首页,我以前看到过4个解决方案,后来 ...
- 蓝牙BLE设备主机重启回连流程分析
本文出自:<蓝牙BLE设备主机重启回连流程分析> 如果一个BLE设备已经与蓝牙中心设备连接上,那么当中心设备的断电重启,其依然会和配对过的BLE设备连接上,而不需要重新走配对的流程,这个过 ...
最新文章
- 聊聊 Linux 中的五种 IO 模型
- oracle row 00033,00033-ContentProvider实现数据共享[总结]
- 在C#中使用代理的方式触发事件 的简单习作
- 格式化网上复制过来的源代码
- django安装_技术大牛详解:Django框架之环境安装
- JVM 垃圾回收算法机制及其实现原理
- android jni示例_Android动画示例
- wsdl2java参数_wsdl2java参数解释
- 微信扫码支付 java版
- 国内外一些软件开发大公司
- Unity输入控制物体旋转和延迟缩放-课程作业
- 【CS】软件测试概念Software Testing
- python爬虫 网页表格
- check if DVE variable is valid
- mybatis mysql 关于调用存储过程获取查询结果
- TVS 管选型与 ESD 防护设计
- Jetpack 系列之AppSearch
- Unity 游戏区域性崩溃,深藏的国际化巨坑
- 《Linux就该这么学》读书笔记
- WPF 说话-语音合成