跳转至

B91 Zigbee Direct示例演示


Zigbee Direct协议简介

Zigbee Direct允许含有BLE模块的设备通过认证,使用加密的方式接入Zigbee网络。这就使得智能设备如手机、平板电脑、智能音响、和集线器等能调试和控制Zigbee网络中的设备。

Zigbee Direct典型应用示例

Zigbee Direct包含的BLE services: Security Service, Commissioning Service和Tunnel Service。

Zigbee Direct协议栈概述

文档目的

本文档主要介绍泰凌的Zigbee+BLE双模的ZDD(Zigbee Direct Device)设备的典型应用。

包含3个典型示例:

(1) 上位机工具通过BLE控制双模ZDD设备(Zigbee Coordiantor)组建Zigbee网络,并允许单模Zigbee设备加入其网络,并能通信;

(2) 上位机工具通过BLE控制双模ZDD设备(Zigbee Router)加入已有的Zigbee网络,并能通信;

(3) 上位机工具模拟ZVD设备加入双模ZDD设备组建的Zigbee网络,并能通信。

注意:

  • ZVD和ZDD是使用“security mode 1”和“security level 1”建立BLE连接,没有配对和绑定过程。
  • Security Service中的秘钥协商方式仅支持:ECDHE using Curve25519 with Hash AES-MMO-128.
  • 预配置秘钥类型支持:
    Pre-configured link-key derived from installation code
    Basic Authorization Key
    ECDHE using Curve25519 with Hash AES-MMO-128
    Anonymous Well-Known Secret
  • 上位机工具“Commission”,“Tunnel”页面“Data In/Out”会话框中的数据是经过解密后显示,实际BLE空中数据是经过加密的,秘钥是在建立会话过程中协商。

软硬件准备

硬件准备

B91 Zigbee Direct开发套件

B91 Zigbee Direct开发套件

硬件介绍

类别 芯片料号 开发板外部名称 个数
zigbee+BLE双模设备 9518A B91 适配器 1
zigbee单模设备 9518A B91 适配器 1

注意:

可以通过淘宝购买该套件,如果还未上架,请联系 Telink FAE 购买 B91 Zigbee Direct开发套件。

硬件设计参考

  • Telink wiki 页面下 Development Kit and Application Boards 章节

软件准备

ZDD组建网络

示例拓扑

ZDD组网拓扑图

BIN文件

ZDD设备中下载的为双模SDK中sampleGW示例编译生成的BIN文件,Zigbee Router设备中下载为Zigbee SDK中sampleLight示例编译生成的BIN文件。

下载BIN文件之前请先将模块中已保存的数据擦除,避免Flash中的已有数据影响测试。

BIN文件下载成功后,将模块上电,模块上红灯会亮起。

操作步骤

建立BLE连接

打开电脑端测试工具-Zigbee Direct Test Tool,点击“Start Scan”按钮,等待扫描结果,然后在扫描结果中选中ZDD设备,点击“Start Connect”按钮,发起BLE连接。连接过程中工具会去发现设备的所有属性,所以连接时间会稍长。

BLE连接建立成功

建立配置会话

切换到“Security”页面,按照默认配置,点击“Start Session”按钮,建立配置会话,协商出配置会话秘钥。“Data In/Out”会话框显示会话建立过程的交互数据。

建立配置会话

ZDD组建网络

切换到“Commission”页面,在网页左侧区域配置组网的参数,然后点击“Form network”按钮,发起组网,ZDD会上报组网结果和网络参数。

这里只配置了“NWK Channel”,通信数据在“Data In/Out”对话框。

组网的参数使用"TLV"格式组包。

ZDD组建Zigbee网络

名称 用法 类型ID 长度(Byte) 描述
Admin Key Optional 0x0d 16 用于建立Admin级别授权会话,如果没有配置,在集中式网络中默认使用TCLK,在分布式网络中,没有配置则无法建立Admin会话。
Trust Center Address Required (conditionally) 0x09 8 当组建分布式网络,必须配置,并且是全ff;如果是集中式网络,则不需要配置。
Extended PAN ID Optional 0x00 8 如果不配置,组网设备会选取随机数。
Short PAN ID Optional 0x01 2 如果不配置,组网设备会选取随机数。
Network Channel Optional 0x02 4 如果不配置,组网设备全信道扫描选取工作信道。
Network Key Optioanl 0x03 16 如果不配置,组网设备会选取随机数作为秘钥。
Link Key Optional 0x04 17 如果没有配置,则会选择pre-install code或者默认linkkey。
NWK Address Optional 0x06 2 集中式网络中会忽略NWK Address配置。
NWK Update ID Optional 0x0b 1 如果不配置,默认使用0。

已经在Zigbee网络中的设备需要升级到Admin Authorization会话,协商新的秘钥,才能进行后续BLE通信。

建立Admin Authorization会话

由于组网的时候没有配置Admin Key,在集中式网络中,Coordinator可以使用默认TCLK(ZigBeeAlliance09:5A 69 67 42 65 65 41 6C 6C 69 61 6E 63 65 30 39)来派生Admin key。

预配置秘钥类型选择“Administrative Authorization Key”。

建立Admin Authorization会话

Zigbee设备加入网络

切换到“Commission”页面,在“Permit Joining”后填入允许入网时间,打开ZDD的允许入网开关,如下图,成功之后,ZDD模块上的绿灯会亮起。

打开ZDD允许入网开关

单模Zigbee设备入网后,ZDD设备的绿灯也会亮起。在ZDD模块上按“SW2”键,ZDD会以1秒间隔广播on/off命令,单模Zigbee模块上的红灯会随着闪烁,再按一次“SW2”按键,则停止闪烁。

ZDD加入已有Zigbee网络

示例拓扑

ZDD入网拓扑图

BIN文件

双模ZDD设备中下载的为双模SDK中sampleLight示例编译生成的BIN文件,单模Zigbee Coordinator设备中下载为Zigbee SDK中sampleGW示例编译生成的BIN文件。

下载BIN文件之前请先将模块Flash全片擦除,避免Flash中的已有数据影响测试。

BIN文件下载成功后,将模块上电,模块上红灯会亮起。

操作步骤

建立BLE连接

打开电脑端测试工具-Zigbee Direct Test Tool,点击“Start Scan”按钮,等待扫描结果,然后在扫描结果中选中ZDD设备,点击“Start Connect”按钮,发起BLE连接。

建立配置会话

切换到“Security”页面,按照默认配置,点击“Start Session”按钮,建立配置会话。“Data In/Out”会话框显示会话建立过程的交互数据。后续通讯数据需要使用这里协商出的秘钥加解密。

组建Zigbee网络

单模Zigbee Coordinator模块组建网络,并将允许入网开关打开,模块上的绿灯亮起。

ZDD加入网络

切换到“Commission”页面,在网页左侧区域配置入网的参数,然后点击“Join network”按钮,发起入网,ZDD会上报入网结果和网络参数。ZDD设备默认允许入网开关是关闭的,所以这里绿灯不会亮起。这里配置了“Joining Method”和“Admin Key”(33 33 33 33 33 33 33 33 33 33 33 33 33 33 44 55),通信数据在“Data In/Out”对话框。

入网之后,按Zigbee Coordinator模块上的“SW2”按钮,Zigbee Coordinator模块会以1秒间隔广播on/off命令,ZDD模块上的红灯会随着闪烁,再按一次“SW2”按键,则停止闪烁。

组网数据使用"TLV"格式组包。

ZDD加入Zigbee网络

名称 用法 类型ID 长度(Byte) 描述
Joining Method Required 0x07 1 可配置方式:MAC association、secure rejoining、Out-of-band Commissioning.
Admin Key Optional 0x0d 16 用于建立Admin级别授权会话,如果没有配置,在集中式网络中默认使用TCLK,在分布式网络中,没有配置则无法建立Admin会话。
Trust Center Address Required (conditionally) 0x09 8 当组建分布式网络,必须配置,并且是全ff;如果是集中式网络,则不要求配置。
Extended PAN ID Optional 0x00 8 加入Extended PAN ID与配置相同的网络。
Network Channel Optional 0x02 4 在配置信道上查找可以入网设备。
Link Key Optional 0x04 17 预配置linkkey。
NWK Address Optional 0x06 2 如果没有配置选取随机地址。

已经在Zigbee网络中的设备需要升级会话到Admin Authorization会话,协商新的秘钥,才能进行后续"Commissioning Service"数据交互。

建立Admin Authorization会话

由于入网时已经配置了Admin key,所以这里不需要再配置,预配置秘钥类型选择“Administrative Authorization Key”,建立会话。

Router设备建立Admin Authorization会话

ZDD设备打开入网开关

切换到“Commission”页面,在“Permit Joining”后填入允许入网时间,可以控制整个网络的允许入网开关。

ZDD设备离网

在“Commission”页面,通过“Leave network”命令使自己离网,ZDD设备离网后,BLE连接也会主动断开。

ZDD离网

ZVD加入ZDD的Zigbee网络

示例拓扑

ZVD入网拓扑图

上位机工具模拟Zigbee Router设备,通过BLE通道传输Zigbee网络数据,需要用到Security Service和Tunnel Service。Tunnel数据也是采用TLV格式封装。

上位机工具并没有实现Zigbee协议栈,这里只能测试入网和on/off命令。

操作步骤

组建Zigbee网络

按照“ZDD组建网络”章节,使ZDD组建网络,并且单模Zigbee Router设备已经加入网络。然后重新建立BLE连接。

建立配置会话

已经在Zigbee网络中的设备建立配置会话时需要将允许入网开关打开。按ZDD模块上的“SW7”按钮,打开设备允许入网开关,模块上绿灯会亮起。

使用工具默认配置参数,建立配置会话,协商出配置会话秘钥。

ZVD加入Zigbee网络

ZVD发起入网之前保证ZDD允许入网开关已经被打开。

切换到“Tunnel”页面,在“ZVD Join”后配置参数,点击“StartJoin”,ZVD加入已知网络。其中“ZVD IEEE”和“ZVD short address”是随机选取的,用户可以自己指定。“Parent IEEE”和“Parent short address”是父节点ZDD的参数。

ZVD加入Zigbee网络

建立Basic Authorization会话

上位机工具切换到“Security”页面,预配置秘钥类型选择“Basic Authorization Key”,预配置秘钥选择当前网络的网络秘钥,建立Basic Authorization会话。

预配置秘钥可以根据ZVD设备入网时收到的“transport key”命令数据推导,当前工具未实现这一功能,所以这里手动输入。

建立Basic Authorization会话

ZVD设备控制Zigbee网络设备

ZVD设备加入Zigbee网络,并且建立“Basic Authorization”会话后,会发送一次“Device announce”命令,并且每隔15秒发送一次“Link Status”命令。

ZVD入网通信数据

在“On/Off”后的会话框填入要控制设备的地址,点击“send”按钮,发送命令,可以看到设备上红灯随之亮灭。

ZVD发送单播数据