Skip to content

2.2 BDB Commissioning Modes ​

学习提示

本节课讲解的多个理论知识,理解起来并不容易,如果暂时不理解也没关系,随着后续的学习,相信大家会逐步加深理解!

Commissioning 可以直译为"调试"或"尝试运作",这有点奇怪,所以本文暂不做翻译。读者可以笼统地把其理解为"组建网络"的意思,因此"Commissioning Modes"可笼统地理解为"组网模式",但为了严谨性,本文仍使用 Commissioning。

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

Network Steering ​

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

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

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

Network Formation ​

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

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

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

Finding and Binding(F & B) ​

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

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

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

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

假设现在有两个支持 Touchlink 的 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_interface.h 中的 BDB Commissioning API

这个函数需要传入一个模式参数,可以在 bdb.h 中找到由协议栈定义好的模式,如图所示。

bdb.h 中的 Commissioning Modes 宏定义

于是,终于可以组建 ZigBee 网络了。首先,让协调器创建网络,代码如下:

c
bdb_StartCommissioning( //组建网络
    BDB_COMMISSIONING_MODE_NWK_FORMATION |  //支持 Network Formation
    BDB_COMMISSIONING_MODE_FINDING_BINDING  //支持 Finding and Binding(F & B)
);

然后,让路由器或终端设备加入网络中,代码如下:

c
bdb_StartCommissioning( //设备入网
    BDB_COMMISSIONING_MODE_NWK_STEERING |  //支持 Network Steering
    BDB_COMMISSIONING_MODE_FINDING_BINDING //支持 Finding and Binding(F & B)
);

一般地,在实际的开发过程中,开发者只需要使用这个 API 就基本可以满足网络创建和设备入网的功能需求了。这是 BDB 的一大优点,使用简单!

知识点

BDB(Base Device Behavior)是 ZigBee 3.0 的核心特性,它通过 Network Steering / Network Formation / Finding and Binding / Touchlink 四种 Commissioning 模式,为设备提供了一套统一的组网机制,让不同厂商的 ZigBee 设备能够正确地组建网络、互联互通。

内容来源:紫甲 IoT《ZigBee 3.0 开发指南》第四部分·2.2 BDB Commissioning Modes,原站链接



本章自测 ​

一、单项选择题(每题 4 分,共 40 分) ​

  1. BDB 一共提供了几种主要的 Commissioning 模式?(A. 2 种 B. 3 种 C. 4 种 D. 5 种) 答案:C

  2. 定义"设备如何加入到 ZigBee 网络中"的模式是?(A. Network Formation B. Network Steering C. Touchlink D. Finding and Binding) 答案:B

  3. 下列关于 Network Steering 的说法,正确的是?(A. 只有协调器需要支持 B. 所有需要入网的设备都必须支持 C. 是可选模式 D. 只用于分布式网络) 答案:B

  4. 规定协调器建立"中心信任的安全网络"的模式是?(A. Network Steering B. Network Formation C. Touchlink D. F&B) 答案:B

  5. 在 Network Formation 建立的中心信任网络中,充当信任中心的是?(A. 终端设备 B. 路由器 C. 协调器 D. 任何设备) 答案:C

  6. "Finding and Binding(F&B)"具体是指什么之间的相互发现与绑定?(A. 信道 B. Cluster(集群) C. 串口 D. 电源) 答案:B

  7. Touchlink 进行直接通信时,两个设备之间的距离大约为?(A. 2cm B. 2m C. 20m D. 200m) 答案:A

  8. Touchlink 用来判断发起设备距离远近的依据是?(A. 电池电压 B. 检测网络信号强度 C. MAC 地址 D. 信道号) 答案:B

  9. 启动 BDB Commissioning 的核心 API 函数是?(A. bdb_StartCommissioning() B. NLME_PermitJoiningRequest() C. osal_start_timerEx() D. ZDO_Init()) 答案:A

  10. 协调器创建网络时,传入 bdb_StartCommissioning() 的模式组合是?(A. NWK_STEERING | FINDING_BINDING B. NWK_FORMATION | FINDING_BINDING C. NWK_STEERING | TOUCHLINK D. TOUCHLINK | FINDING_BINDING) 答案:B

二、问答题(每题 20 分,共 60 分) ​

  1. BDB 提供了哪 4 种 Commissioning 模式?各自的作用是什么?参考答案要点:
  • Network Steering:定义设备如何寻找并加入已有的 ZigBee 网络;
  • Network Formation:规定协调器建立中心信任的安全网络;
  • Finding and Binding(F&B):实现设备 Cluster 之间的相互发现与绑定;
  • Touchlink:用于两个设备之间近距离直接通信(约 2cm)。
  1. 对比 Network Steering 与 Network Formation 在适用设备类型上的必选/可选要求。参考答案要点:
  • Network Steering:所有需要加入 ZigBee 网络的设备都必须支持;路由器入网成功后还允许其他设备通过本设备加入;
  • Network Formation:所有协调器类型设备都必须支持;对路由器类型设备是可选的(条件允许时可创建分布式安全网络)。
  1. Touchlink 有哪些特点?为什么说它并不是所有设备都必须支持的?参考答案要点:
  • 通信距离很短,约 2cm,接收方通过检测发起方信号强度来判断距离并决定是否处理指令;
  • 设备之间可以直接通信,无需事先经过统一网络,可直接与一台新买的同类型设备通信;
  • Touchlink 用得相对较少,属于可选功能,开发者可以自行决定让设备支持或不支持。

aioteer · 物联网专业课程群

💬AI 伴学配置