当前位置: 首页 > news >正文

ZigBee学习——BDB

✨本博客参考了善学坊的教程,并总结了在实现过程中遇到的问题。

善学坊官网

文章目录

  • 一、BDB简介
  • 二、BDB Commissioning Modes
    • 2.1 Network Steering
    • 2.2 Network Formation
    • 2.3 Finding and Binding(F & B)
    • 2.4 Touchlink
  • 三、BDB Commissioning Modes API简介
  • 四、实操

一、BDB简介

BDB,全称为Base Device Behavior,直译过来就是“基础设备行为”。用一句话概括,BDB就是用来定义和控制在ZigBee物联网设备中的各种行为和状态。它决定了设备的行为模式,使得设备知道如何加入或离开网络,如何响应其他设备的信息,当需要改变状态时又应该做什么等等。

这里着重介绍BDB对于正确组建ZigBee网络的作用

BDB主要包含以下3方面的内容:

  • Commissioning Modes:Commissioning模式,定义了ZigBee设备之间组网的基本规范
  • BDB Security:定义了一些网络安全规范
  • Reset Methods:开发者可以使用多个复位方法

由于BDB Security和Reset Methods这两部分,开发者一般接触的比较少,所以暂时不展开讲解。Commissioning Modes是ZigBee组网的核心内容,下节课将重点讲解。

二、BDB Commissioning Modes

Commissioning Modes决定设备之间怎样建立和配置通信连接的。

BDB提供了4种主要的Commissioning模式给开发者使用,分别是Network SteeringNetwork FormationFinding and Binding(F & B)和Touchlink

2.1 Network Steering

定义了设备如何加入到ZigBee网络中,具体方式如下:

  • 如果设备还没有在ZigBee网络中,那么它们会寻找一个合适的ZigBee网络并加入到其中。
  • 特别地,对于路由器类型的设备,在入网成功后,允许其它设备通过本设备来加入到这个ZigBee网络中。

所有需要加入到ZigBee网络中的设备都必须要支持Network Steering

2.2 Network Formation

Network Formation 规定协调器类型的设备需要去建立一个中心信任的安全网络。这种网络的特点是所有需要加入到网络中的设备都需要经过信任中心的同意才能加入,而协调器本身就是这个信任中心。

类似地,对于路由器类型的设备,如果条件允许的话会创建一个分布式安全网络。这里暂时不展开讲解这种网络了。

所有的协调器类型设备都必须要支持 Network Formation ,而对于路由器类型的设备来说,这是可选的模式。

2.3 Finding and Binding(F & B)

顾名思义,Finding and Binding的意思就是发现与绑定,那么发现与绑定什么呢?

ZigBee 3.0是使用Cluster(集群)来描述设备的功能的。每种设备都有各自的功能,都有各自的一系列Cluster。这里的发现与绑定是指ZigBee设备的Cluster之间的相互发现、相互绑定。随着后续章节对Cluster深入地讲解,读者将会更深入地了解到其中的原理。

所有的ZigBee设备都必须要支持Finding and Binding(F & B)。

2.4 Touchlink

一般用于两个ZigBee设备之间直接进行通信,举个例子说明其原理。

假设现在有两个支持Toucklink的ZigBee设备:

  一个是无线按钮,支持通过Touchlink的方式发送一个恢复出厂设置的指令;
  另一个是灯,支持接收通过Touchlink方式发来的恢复出厂设置指令并执行相应的处理。
  用户可以拿着这个按钮靠近这个灯,让两者相距约2cm,然后按下按钮发送指令,这个灯会收到指令并执行相应处理。如果用户把按钮拿远一些测试,会发现灯收不到这个指令。如果用户把这个按钮拿去靠近一个新买的相同的灯测试,会发现这个灯也会收到这个指令。

从这个例子中可以总结出Touchlink具有下面这些特点:

  • 通信距离短,约2cm。按钮向灯发送指令时,灯会通过检测按钮的网络信号强度来判断按钮的距离,从而决定是否处理该指令。
  • 设备之间可以直接通信,可以把这个按钮拿去直接跟一个新买的相同的灯通信。

Touchlink用得相对比较少,ZigBee设备并不一定都需要支持Touchlink,开发者可以让自己开发的设备支持或不支持这个功能。

三、BDB Commissioning Modes API简介

虽然上述的Commissioning模式比较复杂,但是得益于Z-Stack 3.0 ,ZigBee设备的组网代码非常简单,只需要调用1个API就可以了。

打开配套的工程代码,可以在bdb_interface.h文件中找到BDB Commissioning Modes的API,如图所示。

bdb_StartCommissioning(uint8 mode)

在这里插入图片描述
这个函数需要传入一个模式参数,可以在bdb.h中找到由协议栈定义好的模式,如图所示。
在这里插入图片描述
实验过程会用到的几个模式

BDB_COMMISSIONING_MODE_NWK_STEERING  
BDB_COMMISSIONING_MODE_NWK_FORMATION 
BDB_COMMISSIONING_MODE_FINDING_BINDING

四、实操

善学坊教程:ZigBee 3.0 组网实验
根据教程实现的过程可能遇到的问题,以及相对应的解决方案。

http://www.lryc.cn/news/300858.html

相关文章:

  • 使用Docker快速部署MySQL
  • 力扣热题100_滑动窗口_3_无重复字符的最长子串
  • RM电控工程讲义
  • 论文阅读:《Deep Learning-Based Human Pose Estimation: A Survey》——Part 1:2D HPE
  • C语言——oj刷题——杨氏矩阵
  • C++ 50道面试题
  • 寒假学习记录14:JS字符串
  • 【数学建模】【2024年】【第40届】【MCM/ICM】【C题 网球运动中的“动量”】【解题思路】
  • 无人驾驶LQR控制算法 c++ 实现
  • Karnaugh map (卡诺图)
  • C# CAD 框选pdf输出
  • 【Linux】 Linux 小项目—— 进度条
  • Sora和Pika,RunwayMl,Stable Video对比!网友:Sora真王者,其他都是弟
  • Go内存优化与垃圾收集
  • 【Spring】Bean 的生命周期
  • 云计算基础-存储基础
  • 问题:人的安全知识和技能是天生的。() #媒体#知识分享#学习方法
  • 【数据分享】2001~2020年青藏高原植被净初级生产力数据集
  • 【Spring MVC篇】返回响应
  • 阿里云BGP多线精品EIP香港CN2线路低时延,价格贵
  • (08)Hive——Join连接、谓词下推
  • 创新技巧|迁移到 Google Analytics 4 时如何保存历史 Universal Analytics 数据
  • 一个小而实用的 Python 包 pangu,实现在中文和半宽字符(字母、数字和符号)之间自动插入空格
  • openJudge | 中位数 C语言
  • ctfshow-文件上传(web151-web161)
  • cudnn免登录下载
  • SQLyog安装配置(注册码)连接MySQL
  • java+SSM+mysql 开放式实验管理系统78512-计算机毕业设计项目选题推荐(免费领源码)
  • 代码随想录算法训练营第三十三天|1005.K次取反后最大化的数组和、134.加油站、135.分发糖果
  • 解决LeetCode编译器报错的技巧:正确处理位操作中的数据类型