源码文档软件硬件技术交流技术支持入口文末】

这篇文章主要讲解一个处于“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 终端设备入网过程全解析相关推荐

  1. zigbee入网过程深入解析(Ubiqua抓包)

    一.抓包工具Ubiqua的Traffic介绍 添加或者隐藏Traffic View中的内容:在抓包左上角中选择"tools" → "options"→ &quo ...

  2. 基于芯科Host-NCP解决方案的Zigbee 3.0 Gateway技术研究(三)-移植到ESP32平台(1)

    相关系列文章 基于芯科Host-NCP解决方案的Zigbee 3.0 Gateway技术研究(-)-Z3GatewayHost应用搭建 基于芯科Host-NCP解决方案的Zigbee 3.0 Gate ...

  3. 基于芯科Host-NCP解决方案的Zigbee 3.0 Gateway技术研究(二)-使用gateway-management-ui

    相关系列文章 基于芯科Host-NCP解决方案的Zigbee 3.0 Gateway技术研究(-)-Z3GatewayHost应用搭建 基于芯科Host-NCP解决方案的Zigbee 3.0 Gate ...

  4. 小白也能读懂的 ZigBee 3.0 简介

    --作者简介 Michael 前绿米(小米)资深嵌入式软件工程师,7年以上开发经验,曾开发过小米米家网关系统.小米全屋智能家庭中枢M1S等物联网项目: 尤其擅长ZigBee.BLE Mesh.WiFi ...

  5. 什么是Zigbee 3.0

    动机 关键动机是统一过去几十年来出现的许多Zigbee配置文件,其中一些配置比其他配置更广泛.例如:家庭自动化,Light Link,智能能源,商业建筑等.让我们提醒自己,我们创建了Zigbee配置文 ...

  6. 小学奥数 7657 连乘积末尾0的个数-2022.01.26

    http://noi.openjudge.cn/math/7657/ /* 小学奥数 7657 连乘积末尾0的个数-2022.01.26 http://noi.openjudge.cn/math/76 ...

  7. 无线通信技术协议-Zigbee 3.0

    物联网的无线通信技术有:短距离的无线局域网通信技术和长距离的无线广域网通信技术. 短距离局域网通信技术有Zigbee.Wi-Fi.Bluetooth.Z-wave.6LoWPAN等. 长距离广域网通信 ...

  8. EFR32MG21 zigbee 3.0 OTA 升级实验

    EFR32MG21 zigbee 3.0 OTA 升级实验 参考文档:AN728 https://www.sekorm.com/doc/1607600.html 芯片:EFR32MG21A010F76 ...

  9. 基于芯科Host-NCP解决方案的Zigbee 3.0 Gateway技术研究(-)-Z3GatewayHost应用

    相关系列文章 基于芯科Host-NCP解决方案的Zigbee 3.0 Gateway技术研究(-)-Z3GatewayHost应用搭建 基于芯科Host-NCP解决方案的Zigbee 3.0 Gate ...

最新文章

  1. jQuery与CSS3的选择器
  2. 前端公共库CDN加速
  3. 消息中间件NetMQ结合Protobuf简介
  4. Flowable 6.4.1数据库自动建表错误 SQLSyntaxErrorException: Table 'flowable.act_id_property' doesn't exist
  5. 认识网页 网页的组成 0907
  6. 【概率笔记】条件概率这样学才快啦
  7. 如何去追女生,看了你就成功了一半
  8. 黑客X档案 2002~2007 NPM、PYPI、DockerHub 备份
  9. 阻抗匹配及Smith圆图简介笔记
  10. UiBot无法抓取Google Chrome元素和数据抓取工具无法使用的解决方案
  11. Win10下Windows徽标键键盘快捷键大全
  12. 报表FineReport中单元格中各种颜色的标识说明
  13. 十年之前..., 十年之后...
  14. wx.getLocation接口申请原因怎么填?
  15. LeetCode 416分割等和子集
  16. write error in swap file 问题解决
  17. gin实现简易服务器
  18. 新站之网站优化方案[优化]
  19. Azkaban与Oozie详细对比
  20. 【Python3爬虫(二)】【urlib.request模块】【付费代理+auth认证】

热门文章

  1. 端到端与点到点到底是什么?
  2. 雨听 | 解决连接蓝牙后谷歌浏览器无声音(其他应用有声音)问题
  3. 【笨木头Lua专栏】基础补充02:函数的几个特别之处
  4. OSChina 周二乱弹 ——程序员吹完牛逼 都自己加班去了
  5. 脚本计算后台程序消耗资源
  6. 基督山伯爵---大仲马
  7. Unicode 码和汉字,十进制之间互转!二进制、十六进制,十进制的转换
  8. 关于信息化管理的建议
  9. 同步linux服务器时间
  10. 视频教程-数字成像系统-其他