1.5 物联网的数据通信协议
一个完整的物联网系统,数据贯穿了感知层、网络层、平台层和应用层的各个部分,数据在这四层之间层层传递。要使数据在每一层能够被正确识别就需要在构建物联网系统时建立一套完整的数据通信协议。
数据通信协议是指通信双方完成通信或服务所必须遵循的规则和约定。通过通信信道和设备连接起来的处于多个不同地理位置的数据通信系统,按照数据通信协议能够协同工作,实现信息交换和资源共享。
1.5.1 ZXBee数据通信协议
1.通信协议数据格式
ZXBee数据通信协议的格式为“{参数=值,参数=值…}”,每条数据以“{”作为起始字符,“{}”内参数多个条目以“,”分隔。例如,{CD0=1,D0=?}。
2.通信协议参数说明
(1)ZXBee数据通信协议参数说明如下:
① 参数名称如下:
● 变量:A0~A7、D0、D1、V0~V3。
● 指令:CD0、OD0、CD1、OD1。
● 特殊参数:ECHO、TYPE、PN、PANID、CHANNEL。
② 可以对变量的值进行查询,如“{A0=?}”。
③ 变量A0~A7在云数据中心中可以保存为历史数据。
④ 指令是按位进行操作的。
(2)具体参数解释如下:
① A0~A7:用于传递传感器采集的数据,只能通过“?”来查询当前变量的值,并将其上传到物联网云数据中心存储。
● 变量:A0~A7、D0、D1、V0~V3。
● 指令:CD0、OD0、CD1、OD1。
● 特殊参数:ECHO、TYPE、PN、PANID、CHANNEL。
② D0:D0中的bit0~bit7分别对应A0~A7的状态(是否主动上报状态),只能通过“?”来查询当前变量的值,0表示禁止主动上报,1表示允许主动上报。
③ CD0/OD0:对D0的位进行操作,CD0表示位清0操作,OD0表示位置1操作。
④ D1:D1表示控制编码,只能通过“?”来查询当前变量的值,用户可根据传感器属性来自定义功能。
⑤ CD1/OD1:对D1的位进行操作,CD1表示对位进行清0操作,OD1表示对位进行置1操作。
⑥ V0~V3:用于表示传感器的参数,用户可根据传感器属性自行定义参数,权限为可读写。
⑦ 特殊参数:ECHO、TYPE、PN、PANID、CHANNEL。
● ECHO:用于检测节点是否在线的指令,若在线则将发送的值进行回显。例如,发送“{ECHO=test}”,若节点在线则回复“{ECHO=test}”。
● TYPE:表示节点类型,该信息包含了节点类别、节点类型、节点名称,只能通过“?”来查询当前值。TYPE的值由5个字节表示(ASCII码),例如,1 1 001,第1字节表示节点类别(1表示ZigBee、2表示RF433、3表示Wi-Fi、4表示BLE、5表示IPv6、9表示其他);第2字节表示节点类型(0表示协调器、1表示路由节点、2表示终端节点);第3~5字节表示节点名称(编码由开发者自定义)。
● PN(仅针对ZigBee、IEEE 802.15.4 IPv6节点):表示上行节点地址和所有邻居节点地址,只能通过“?”来查询当前值。PN的值为上行节点地址和所有邻居节点地址的组合,其中每4个字节表示一个节点地址后4位,第1个4字节为上行节点后4位,第2~n个4字节为其所有邻居节点地址后4位。
● PANID:表示节点组网的ID,权限为可读写,此处PANID的值为十进制数,而底层代码定义的PANID的值为十六进制数,需要自行转换。例如,8200(十进制数)=0x2008(十六进制数),通过指令“{PANID=8200}”可将节点的PANID的值修改为0x2008。PANID的取值范围为1~16383。
● CHANNEL:表示节点组网的通信通道,权限为可读写,此处CHANNEL的取值范围为11~26(十进制数)。例如,通过指令“{CHANNEL=11}”可将节点的CHANNEL的值修改为11。
1.5.2 ZXBee数据通信协议的参数定义
物联网工程应用开发平台的部分设备节点的ZXBee数据通信协议参数如表1.1所示。
表1.1 部分设备节点的ZXBee数据通信协议参数
续表
续表
续表