ZigBee 3.0 Z-Stack 3.01 终端设备入网过程全解析
【源码、文档、软件、硬件、技术交流、技术支持,入口见文末】
这篇文章主要讲解一个处于“Factory New”状态(协议栈中的bdbNodeIsOnANetwork这个变量值为FALSE)下的“ZigBee终端设备”的入网过程。
一、概念补充
1、信道
(1)DEFAULT_CHANLIST
关于“DEFAULT_CHANLIST”的定义,位于“f8wConfig.cfg”文件中的。
之前的《ZigBee Z-Stack 4.02 基本网络参数设置》这篇文章中有提及过,感兴趣的朋友可以去看一下,此处就不再赘述。
(2)BDB_DEFAULT_PRIMARY_CHANNEL_SET
我们姑且将其称为“主信道集”,其在协议栈中的定义位于“bdb_interface.h”文件中,具体定义如下:
(3)BDB_DEFAULT_SECONDARY_CHANNEL_SET
我们姑且将其称为“次信道集”,其在协议栈中的定义也位于“bdb_interface.h”文件中,具体定义如下:
仔细看一下这个宏定义,就能看出来:“次信道集”和“主信道集”其实互为补集。
二、信道扫描(第一步)
1、获取“网络描述符清单”
首先,设备会扫描“主信道集”——BDB_DEFAULT_PRIMARY_CHANNEL_SET中定义的所有信道,搜寻这些信道中任何合适的网络。与此同时,该设备会在本地创建一个“清单”,用于记录扫描到的每一个网络的相关信息,最终保存到pBDBListNwk中,其定义位于“bdb.c”文件中:
我们姑且将pBDBListNwk称为“网络描述符清单”。由其定义可见,pBDBListNwk是一个networkDesc_t类型的指针,而关于networkDesc_t的定义位于“NLMEDE.h”文件中:
由此可见,“网络描述符清单”中的每一个条目都代表搜索到的一个网络的所有信息。而具体每个条目包含了哪些信息,如上图所示,有panId、logicalChannel、routerCapacity、deviceCapacity等等。
2、筛选/过滤/选择网络
协议栈中会通过bdb_RegisterForFilterNwkDescCB()来注册一个回调函数——pfnFilterNwkDesc(),用于对所有找到的网络进行筛选。“网络描述符清单”会作为一个参数,传递给该回调函数,进而实现网络的筛选。
当网络筛选完成后,对于那些被过滤掉(未被选择)的网络,协议栈中会调用bdb_nwkDescFree()将其相关的“网络描述符”给释放掉。
如果没有找到合适的网络,或者无法加入找到的网络(连接不成功或是无法获取“网络密钥”),设备将会扫描“次信道集”——BDB_DEFAULT_SECONDARY_CHANNEL_SET中定义的所有信道,并执行上述同样的步骤。
三、关联和认证(第二步)
四、入网完成(第三步)
五、其他
1、pBDBListNwk,该“网络描述符清单”其实就是一个“链表”。
2、在信道扫描过程中,只有非零的信道才会被扫描,进行“网络发现”。
【源码、文档、软件、硬件、技术交流、技术支持,入口见文末】
ZigBee 3.0 Z-Stack 3.01 终端设备入网过程全解析相关推荐
- zigbee入网过程深入解析(Ubiqua抓包)
一.抓包工具Ubiqua的Traffic介绍 添加或者隐藏Traffic View中的内容:在抓包左上角中选择"tools" → "options"→ &quo ...
- 基于芯科Host-NCP解决方案的Zigbee 3.0 Gateway技术研究(三)-移植到ESP32平台(1)
相关系列文章 基于芯科Host-NCP解决方案的Zigbee 3.0 Gateway技术研究(-)-Z3GatewayHost应用搭建 基于芯科Host-NCP解决方案的Zigbee 3.0 Gate ...
- 基于芯科Host-NCP解决方案的Zigbee 3.0 Gateway技术研究(二)-使用gateway-management-ui
相关系列文章 基于芯科Host-NCP解决方案的Zigbee 3.0 Gateway技术研究(-)-Z3GatewayHost应用搭建 基于芯科Host-NCP解决方案的Zigbee 3.0 Gate ...
- 小白也能读懂的 ZigBee 3.0 简介
--作者简介 Michael 前绿米(小米)资深嵌入式软件工程师,7年以上开发经验,曾开发过小米米家网关系统.小米全屋智能家庭中枢M1S等物联网项目: 尤其擅长ZigBee.BLE Mesh.WiFi ...
- 什么是Zigbee 3.0
动机 关键动机是统一过去几十年来出现的许多Zigbee配置文件,其中一些配置比其他配置更广泛.例如:家庭自动化,Light Link,智能能源,商业建筑等.让我们提醒自己,我们创建了Zigbee配置文 ...
- 小学奥数 7657 连乘积末尾0的个数-2022.01.26
http://noi.openjudge.cn/math/7657/ /* 小学奥数 7657 连乘积末尾0的个数-2022.01.26 http://noi.openjudge.cn/math/76 ...
- 无线通信技术协议-Zigbee 3.0
物联网的无线通信技术有:短距离的无线局域网通信技术和长距离的无线广域网通信技术. 短距离局域网通信技术有Zigbee.Wi-Fi.Bluetooth.Z-wave.6LoWPAN等. 长距离广域网通信 ...
- EFR32MG21 zigbee 3.0 OTA 升级实验
EFR32MG21 zigbee 3.0 OTA 升级实验 参考文档:AN728 https://www.sekorm.com/doc/1607600.html 芯片:EFR32MG21A010F76 ...
- 基于芯科Host-NCP解决方案的Zigbee 3.0 Gateway技术研究(-)-Z3GatewayHost应用
相关系列文章 基于芯科Host-NCP解决方案的Zigbee 3.0 Gateway技术研究(-)-Z3GatewayHost应用搭建 基于芯科Host-NCP解决方案的Zigbee 3.0 Gate ...
最新文章
- jQuery与CSS3的选择器
- 前端公共库CDN加速
- 消息中间件NetMQ结合Protobuf简介
- Flowable 6.4.1数据库自动建表错误 SQLSyntaxErrorException: Table 'flowable.act_id_property' doesn't exist
- 认识网页 网页的组成 0907
- 【概率笔记】条件概率这样学才快啦
- 如何去追女生,看了你就成功了一半
- 黑客X档案 2002~2007 NPM、PYPI、DockerHub 备份
- 阻抗匹配及Smith圆图简介笔记
- UiBot无法抓取Google Chrome元素和数据抓取工具无法使用的解决方案
- Win10下Windows徽标键键盘快捷键大全
- 报表FineReport中单元格中各种颜色的标识说明
- 十年之前..., 十年之后...
- wx.getLocation接口申请原因怎么填?
- LeetCode 416分割等和子集
- write error in swap file 问题解决
- gin实现简易服务器
- 新站之网站优化方案[优化]
- Azkaban与Oozie详细对比
- 【Python3爬虫(二)】【urlib.request模块】【付费代理+auth认证】