无线传感器网络(Zigbee)网关的的通信协议网关是通过串口与PC 机相连的。PC 机可以通过串口发送采集命令和收集采集数据,为了能有效管理这些数据,需要执行统一的数据通信格式。
下面介绍该系统中所使用的通用数据格式。
每一帧数据都采用相同的帧长度,且都带有帧头、数据和帧尾。具体格式如下:
如上所示,每一帧数据的长度都是32字节。除帧头和帧尾,每一帧数据都由命令头、发送地址、有效数据和校验和组成。
命令头:所执行的命令。
地址:所访问模块的长(前8字节)/短地址(后2字节)。
数据:传送各个参数、变量与返回值及各种需要突发发送的数据。
校验和:从命令头到数据尾的加和校验,用于确定数据正确与否。注:命令头、地址的长地址部分和数据都采用ASCII码。
这个系统的命令分为3种,分别为
⚬读命令R(ead):包括读各个传感器或网络状态命令。
⚬测试命令T(est):测试LED、BEEP或电池寿命命令。
⚬扩展板命令E(xtend):控制和读扩展板命令。
下面介绍具体命令格式。
1.读命令
1) RAS
RAS(ReadallSensor):读传感器。
RAS具体格式如下:
需要加入地址和数据——地址:传感器模块地址;数据:GM***/WD***。传感器种类包括光敏:GM;温度:WD;可调电位器:AD。
(1)读取成功返回格式如下:
地址:加入传感器模块地址。
数据:传感器+ 测量值(ASSII码)。其中光敏:GM+ * * * (3 字节ASII 码);温度:WD +***(3字节ASII码);可调电位器:AD+*** (3字节ASII 码)。
(2)读取失败返回格式如下:
2) RND
RND:无线网络发现。
RND 具体格式如下:
需要加入地址和数据———地址:无;数据:无,只需要命令头。
(1)读取成功返回格式如下:
返回网络中节点的性质:RFD(终端节点)/ROU(路由器)+地址+第几个。例如:如果返回第1个RFD 节点,则数据段为RFD01。具体格式如下:
(2)读取成功结束格式如下:
2.测试命令
1) TLD
TLD:测试传感器LED 灯。
TLD 具体格式如下:
需要加入的地址和数据——地址:传感器节点地址;数据:控制数据。数据:C(控制亮灭)+D+LED 号(3/4)+X(X=0 灭,X=1 亮);T(LED 闪烁)+D+LED 号(3/4)+X(X=0灭,X=1闪烁)。
返回格式:返回格式与发送格式相同,只是数据有变化。
(1)测试成功:返回数据为OK。具体格式如下:
(2)测试失败:返回数据为E0。具体格式如下:
2) TBL
TBL:传感器电池寿命。
TBL 具体格式如下:
需要加入的地址和数据———地址:传感器模块编号;数据:无。
(1)读取成功返回格式如下:
地址:被测传感器模块的地址。
数据:电压(3字节ASII码,精确到0.1V,例如3.2V)。
(2)读取失败返回格式如下:
3) TBE
TBE:BEEP测试。
TBE 具体格式如下:
需要加入的地址和数据———地址:传感器模块地址;数据:1为发声,0为不发声。
(1)测试成功返回格式如下:
地址:传感器模块地址。
数据:OK。
(2)测试失败返回格式如下:
例如:如果想读取网络某个节点的WD 传感器,只需往网关发送一帧命令即可,网关会通过无线访问该节点,然后节点从无线返回该节点温度值给网关,网关再从串口以同样的数据格式返回此节点的温度值。具体格式如下:
①首先PC 从串口发送此命令到网关:
②如果网关读取成功,则将多串口返回数据:
以上表示读取物理地址为00000001(ASCII码)的节点的温度传感器,节点返回的温度值为25 ℃。
(3)如果读取失败,则返回格式如下: