主要内容

无线个域网帧生成通用命令和解码

这个例子展示了如何生成和解码的一般命令帧ZigBee®规范(1)使用图书馆无线个域网和超宽频通信工具箱™。

背景

ZigBee标准(1)指定网络(网络或NWK)和应用程序(应用程序)层的低速率无线个人区域网络。这些净——和APP-layer规范建立的PHY和MAC规范内部IEEE®802.15.4™(提供服务2]。无线个域网设备发现应用程序在家庭自动化和传感器网络和物联网(物联网)高度关联的趋势。

无线个域网应用程序层由多个子层组成:(我)应用支持子层(APS),金宝app(2)集群无线个域网库(ZCL)。

APS和ZCL遵循一个格式,常见的为所有应用程序概要文件和ZigBee集群/命令(见条款经过2.2.5 [1)和2.4 (3),分别)。APS头声明的集群框架和ZCL头声明的命令帧。ZCL负载存在只对一些集群/命令和遵循command-specific格式。

一些命令只适用于一个特定的集群,而其他一些(通用)命令可用于所有集群。将军命令帧用于操纵属性和其他一般的任务不是特定于单个集群(见条款2.5 (3])。这个例子演示了如何生成和解码ZCL载荷等,library-wide无线个域网的命令。通用APS和ZCL头一代和解码无线个域网家庭自动化框架生成和解码的例子。

命令

这个例子说明了框架生成和解码的一般命令如下:

  1. 读属性:这个命令查询属性值在不同的设备。

  2. 读属性反应:这个命令响应属性值。

  3. 写属性:这个命令修改属性值在不同的设备。

  4. 写属性反应:这个命令响应命令的结果写属性。

此外,这个示例中提供了一个实现以下命令(这并不说明):

  1. 写属性不可分割:这个命令是相同的与“写属性”唯一的例外,一个属性更新只有在其他所有指定的属性也可以更新。

  2. 写属性没有响应:这个命令是相同的与“写属性”唯一的例外,一个响应帧不是必需的。

  3. 报告的属性:这个命令报告所有属性和它们的值。

  4. 默认的回应:这个命令生成响应帧的通用格式。

一个zigbee.GeneralFrameConfig配置对象是用于生成和解码ZCL载荷将军的命令。这样的对象描述一个通用命令有效载荷和所有适用的属性。

生成ZCL载荷将军的命令

zigbee.GeneralFrameGenerator函数接受一个无线个域网。GeneralFrameConfig对象描述有效负载的总指挥部并生成字节的有效载荷。下面的代码创建有效载荷的读/写属性命令和他们的反应。

%读属性命令:readConfigTx = zigbee.GeneralFrameConfig (“CommandType”,“读属性”,“AttributeID”,“0000”)readPayload = zigbee.GeneralFrameGenerator (readConfigTx);%读属性响应命令:readResponseConfigTx = zigbee.GeneralFrameConfig (“CommandType”,“读属性反应”,“AttributeID”,“0000”,“状态”,“成功”,“AttributeType”,“布尔”,“AttributeValue”、虚假)readResponsePayload = zigbee.GeneralFrameGenerator (readResponseConfigTx);%写属性命令:writeConfigTx = zigbee.GeneralFrameConfig (“CommandType”,“写属性”,“AttributeID”,“0000”,“AttributeType”,“布尔”,“AttributeValue”,真正的)writePayload = zigbee.GeneralFrameGenerator (writeConfigTx);% %写属性响应命令:writeResponseConfigTx = zigbee.GeneralFrameConfig (“CommandType”,“写属性反应”,“状态”,“成功”)writeResponsePayload = zigbee.GeneralFrameGenerator (writeResponseConfigTx);
readConfigTx = GeneralFrameConfig属性:CommandType:“读属性”AttributeID:“0000”readResponseConfigTx = GeneralFrameConfig属性:CommandType:“读属性响应”AttributeID:“0000”状态:“成功”AttributeType:“布尔”AttributeValue: 0 writeConfigTx = GeneralFrameConfig属性:CommandType:“写属性”AttributeID:“0000”AttributeType:“布尔”AttributeValue: 1 writeResponseConfigTx = GeneralFrameConfig属性:CommandType:“写属性响应”状态:“成功”

通用命令解码ZCL有效载荷从无线个域网收音机

这部分解码ZCL载荷一般命令捕获从商业家庭自动化无线个域网无线电>与USRP®B200-mini广播通信工具箱支持包USRP®收音机金宝app。有关更多信息,请参见“集群和帧捕获”的部分无线个域网家庭自动化框架生成和解码的例子。

%负载捕获有效载荷负载zigbeeGeneralCommandCaptures

zigbee.GeneralFrameDecoder函数接受一个通用的命令名和它的有效载荷字节和输出zigbee.GeneralFrameConfig对象描述有效负载的命令。检索命令名的解码ZCL头。参见“家庭自动化无线个域网收音机解码ZCL头”无线个域网家庭自动化框架生成和解码的例子。

%读属性:readConfigRx = zigbee.GeneralFrameDecoder (“读属性”capturedReadPayload)%读属性反应:readResponseRx = zigbee.GeneralFrameDecoder (“读属性反应”capturedReadResponsePayload)%的默认响应defaultResponseRx = zigbee.GeneralFrameDecoder (“默认响应”capturedDefaultResponsePayload)
readConfigRx = GeneralFrameConfig属性:CommandType:“读属性”AttributeID:“0000”readResponseRx = GeneralFrameConfig属性:CommandType:“读属性响应”AttributeID:“0000”状态:“成功”AttributeType:“布尔”AttributeValue: 1 defaultResponseRx = GeneralFrameConfig属性:CommandType:“默认响应”状态:“成功”CommandToRespond:“01”

解码生成ZCL载荷将军的命令

本节说明了解码的一般命令(即生成。“写属性”,“写属性反应”)。

%写属性:writeConfigRx = zigbee.GeneralFrameDecoder (“写属性”writePayload)%写属性反应:writeResponseRx = zigbee.GeneralFrameDecoder (“写属性反应”writeResponsePayload)
writeConfigRx = GeneralFrameConfig属性:CommandType:“写属性”AttributeID:“0000”AttributeType:“布尔”AttributeValue: 1 writeResponseRx = GeneralFrameConfig属性:CommandType:“写属性响应”状态:“成功”

Wireshark解码

生成的框架可以转化成一种PCAP格式,可以分析和可视化Wireshark [4]。这个过程可以作为一个额外的验证步骤主张通信工具箱图书馆无线个域网和超宽频生成和解码帧标准兼容的方式。

PCAP文件需要ZCL载荷与头从所有其他层和封闭的子层(MAC,净,APS ZCL)。以下命令生成一个PCAP文件,ZCL载荷产生在这个例子中,可以装载Wireshark。

% Profile IDprofileID = zigbee.profileID (“家庭自动化”);onOffID = zigbee.clusterID (“开/关”);payloadsWithInfo(1) =结构(“有效载荷”readPayload,“ProfileID”profileID,“ClusterSpecific”假的,“ClusterID”onOffID,“CommandType”,“读属性”,“方向”,“下行”);payloadsWithInfo(2) =结构(“有效载荷”readResponsePayload,“ProfileID”profileID,“ClusterSpecific”假的,“ClusterID”onOffID,“CommandType”,“读属性反应”,“方向”,“上行”);payloadsWithInfo(3) =结构(“有效载荷”writePayload,“ProfileID”profileID,“ClusterSpecific”假的,“ClusterID”onOffID,“CommandType”,“写属性”,“方向”,“下行”);payloadsWithInfo(4) =结构(“有效载荷”writeResponsePayload,“ProfileID”profileID,“ClusterSpecific”假的,“ClusterID”onOffID,“CommandType”,“写属性反应”,“方向”,“上行”);%从其他层添加标题/子层:MPDUs = zigbeeAddProtocolHeaders (payloadsWithInfo);%出口MPDUs PCAP格式zigbeeExportToPcap (MPDUs“zigbeeGeneralCommands.pcap”);%与Wireshark打开PCAP文件

进一步的探索

您可以进一步探索以下发电机和解码功能,以及配置对象:

选定的参考书目

  1. 无线个域网联盟,无线个域网规范文档053474 r17, 2007

  2. IEEE 802.15.4-2011 - IEEE标准为当地和市区网络——15.4部分:低速率无线个人区域网络(LR-WPANs)

  3. 无线个域网联盟、集群无线个域网库规范,版本6,2016年1月。

  4. Wireshark软件:https://www.wireshark.org/