无线传感器网络通讯协议
机根据实际情况重发或放弃。 5) 会话 ID 的定义:会话 ID 为某个设备的连接。在应用软件层,会话 ID 用于识别是哪一个设备,在中间服务层用
于将应用软件层发来的消息转发至哪一个设备。 6) 协议中*号表示内容可变 7) 协议中用到的数据类型列表如下:
缩写
Int8 Int16 Int32 Int64 uInt8 uInt16 uInt32 uInt64 Real32 Real64 Char
说明
由设备 ID 和设备索引组成 填要应答的那条消息的消息代码
地址为 0 表示协调器 0x00-正确接收 0x01-错误的消息 0x02-未知的消息
1.1.3. 一般群(组)发消息
一般群(组)发消息
段名
内容
消息头
@
消息长
7
会话 ID
*
消息代码
*
组号
*
校验和
*
段长 1 1 2 1 1 1
数据类型 Char uInt8 uInt16 uInt8 uInt8 uInt8
[]
说明 带符号 8 位整型 带符号 16 位整型 带符号 32 位整型 带符号 64 位整型 无符号 8 位整型 无符号 16 位整型 无符号 32 位整型 无符号 64 位整型 单精度浮点(32bit) 双精度浮点(64bit)
字符型 数组类型
8) 协议中的数值型数据如无特别说明,均采用 LSB 模式,即低字节在前;
1. 协调器与应用层软件之间通讯协议
1.1. 消息格式定义
z 以下消息相当于一类消息的模板,编码时可以把这一类消息统一定义为一个结构体。
1.1.1. 节点一般消息
节点一般消息 段名 消息头 消息长
会话 ID 消息代码 节点地址
校验和
内容 @ 8 * * * *
段长 1 1 2 1 2 1
数据类型 Char uInt8 uInt16 uInt8 uInt16 uInt8
1.1.8. 下传母板资源数据消息
上传节点资源数据
段名
内容
消息头
@
消息长
*
会话 ID
*
消息代码 0x25
节点地址
*
母板类型
*
资源代码
*
段长 1 1 2 1 2 1 2
数据类型 Char uInt8 uInt16 uInt8 uInt8 uInt8 uInt16
说明 1-智能板 2-电源板 具体某种资源的数据后面有定义
继电器 Relay8 Relay7 Relay6 Relay5 Relay4 Relay3 Relay2 Relay1
默认状态
0
0
0
0
0
0
0
0
从低位开始,依次为继电器 1,继电器 2,依此类推,目前扩展板上有四个继电器,母板上有一个继电器
0 表示继电器开,1 表示继电器闭合
1.1.18. GPIN数据(开关量输入模块)
GPIN 输入
段名
内容 段长 数据类型
说明
输入数据
*
1
开关量输入 bit 位说明
uInt8
Bit.7 Bit.6 Bit.5 Bit.4 Bit.3 Bit.2
GPIN8 GPIN7 GPIN6 GPIN5 GPIN4 GPIN3
默认状态
0
0
0
0
0
0
从低位开始,依次为 GPIN1,GPIN2,依此类推,目前扩展板上的 GPIN 有四路输入.
说明 0x0001-0x3FFF
1.1.12. 传感器校准参数
节点分组
段名
内容 段长 数据类型
说明
消息头
@
1
Char
消息长
12
1
uInt8
会话 ID
*
2
uInt16
消息代码
0x29
1
uInt8
节点地址
*
2
uInt16
模块代码
*
2
uInt16
最大值
*
2
uInt16
零点
*
2
uInt16
最小值
*
2
uInt16
LED 控制 段名
蜂鸣器状态 1-蜂鸣器响 0-蜂鸣器不响
内容 *
段长 1
数据类型 uInt8
说明
1.1.21. DA控制(电压输出控制模块)
DA 控制 段名
DA 模式
内容 *
段长 1
数据类型 uInt8 具体定义见下面的说明
说明
DA-1 数据
*
2
uInt16
DA-2 数据
*
DA-3 数据
*
2
uInt16 MSB 模式,高字节在前
*
2
uInt16
通道 2 数据
*
2
uInt16
通道 3 数据
*
2
uInt16
…
…
…
uInt16
说明:
1. 以上所有数据均采用 MSB 模式,即高字节在前
说明
1.1.16. GPIO控制
GPIO 控制(直接模式)
段名
内容
控制模式
1
IO 模式
*
IO 电平
*
段长 1 1 1
数据类型 uInt8 uInt8 uInt8
2
uInt16 方式下,下面三个参数无效
采集间隔
*
2
uInt16 按 1ms 计算
采样点数
*
2
uInt16 0 表示无限制
数据包长度
*
1
uInt8 累积到 n(0-128)个点数后统一上传
说明:
1. 无论模块为何状态,接收本消息后,立即进入新的状态
2. 以上所有参数均采用 MSB 模式,即高字节在前
校验和
*
1
uInt8
说明:
1.一些计算时用到的参数请参阅《传感器参数》文档
2.每块板子都有不同的传感器参数,在获取到节点信息时向节点发送传感器校准参数请求消息,一旦获取
到参数即可停止请求。
3.三个校准参数为量化值
1.1.13. 资源数据传送消息
下传节点资源数据
段名
内容
消息头
@
消息长
*
会话 ID
*
段长 1 1 2
校验和
*
1
uInt8
说明:
1. 父子关系消息发送间隔可以长一些,比如 1-3 秒。
说明
1.1.10. 节点分组消息
节点分组 段名 消息头 消息长
会话 ID 消息代码
组号 节点 1 地址 节点 2 地址
… 校验和
内容 @
* 0x27
* * * … *
段长 1 1 2 1 1 2 2 … 1
数据类型 Char uInt8 uInt16 uInt8 uInt8 uInt16 uInt16 uInt16 uInt8
说明
一共 8 个 bit,0 为输出 1 为输入 一共 8 个 bit,0 为输低 1 为高
GPIO 控制(直流电机模式)
段名
内容 段长
控制模式
2
1
电机状态
*
1
无意义
0
1
数据类型 uInt8 uInt8 uInt8
直流电机 0-停止 1-正转 2-反转
说明
GPIO 控制(步进电机模式)
段名
内容 段长
2
uInt16
DA-3 数据
*
2
uInt16
说明:
DA 模式字节位定义:
Bit.7 Bit.6 Bit.5 Bit.4 Bit.3 Bit.2 Bit.1 Bit.0
RST
ENS
RSV
RSV
ENA
ENB
ENC
END
0
0
0
0
0
0
0
0
¾ RST:芯片复位控制,高有效。
¾ ENS:芯片总体 OE 控制。高有效。
说明 具体某种资源的数据后面有定义
1.1.7. 上传母板资源数据消息
上传节点资源数据
段名
内容
消息头
@
消息长
*
会话 ID
*
消息代码 0x24
节点地址
*
母板类型
*
资源代码
*
资源数据
*
校验和
*
段长 1 1 2 1 2 1 2 * 1
数据类型 Char uInt8 uInt16 uInt8 uInt8 uInt8 uInt16 不定 uInt8
说明
由设备 ID 和设备索引组成 查一般群发消息代码表
0xFF 表示群发,其它表示组号
z 以下消息是一条具体的消息,编码时每条消息都应该对应一个结构体
1.1.4. 节点信息消息
节点信息(上传)
段名
内容
消息头 消息长 会话 ID 消息代码 节点地址
@ 21 * 0x21 *
IEEE 地址
*
RSSI
*
0 表示低电平,1 表示高电平
Bit.1 GPIN2
0
Bit.0 GPIN1
0
1.1.19. LED控制数据
LED 控制 段名 LED1 LED2 LED3 LED4
1-LED 亮 0-LED 灭
内容 * * * *
段长 1 1 1 1
数据类型 uInt8 uInt8 uInt8 uInt8
说明
1.1.20. 蜂鸣器数据
z 以下是各种资源的数据定义
1.1.14. AD采样控制
AD 采样控制(下传数据)