无线传感器网络通讯协议
1.1.8. 下传母板资源数据消息
上传节点资源数据
段名
内容
消息头
@
消息长
*
会话 ID
*
消息代码 0x25
节点地址
*
母板类型
*
资源代码
*
段长 1 1 2 1 2 1 2
数据类型 Char uInt8 uInt16 uInt8 uInt8 uInt8 uInt16
说明 1-智能板 2-电源板 具体某种资源的数据后面有定义
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 控制。高有效。
LQI
*
PANID
*
母板类型
*
扩展模块类型 *
校验和
*
段长 1 1 2 1 2 8 1 1 2 1 2 1
数据类型 Char uInt8 uInt16 uInt8 uInt16 uInt64 Int8 uInt8 uInt16 uInt8 uInt16 uInt8
说明
设备 ID + 设备序号(设备 ID 在高字节)
无线传感器网络通讯协议
1. 协议说明
1) 约定一条消息指一条完整的数据包,以消息代码区分; 2) 无线传感网协议包含以下三个部分: 协调器与中间服务之间通讯协议 应用层软件与中间服务之间通讯协议 协调器与应用层软件之间通讯协议 3) 应用层软件包括桌面应用,Web 应用以及嵌入式网关应用软件 4) 所有控制指令,除群(组)发消息及上传数据外,均有应答指令,超过若干时间未收到应答或收到应答错误时,主
说明
由设备 ID 和设备索引组成 查一般群发消息代码表
0xFF 表示群发,其它表示组号
z 以下消息是一条具体的消息,编码时每条消息都应该对应一个结构体
1.1.4. 节点信息消息
节点信息(上传)
段名
内容
消息头 消息长 会话 ID 消息代码 节点地址
@ 21 * 0x21 *
IEEE 地址
*
RSSI
*
1.1.15. AD采样数据
AD 采样数据(单通道情况)
段名
内容 段长 数据类型
数据 1
*
2
uInt16
数据 2 数据 3
*
2
uInt16
*
2
uInt16
…
…
…
uInt16
说明:
1. 以上所有参数据均采用 MSB 模式,即高字节在前
说明
AD 采样数据(多通道情况)
段名
内容 段长 数据类型
通道 1 数据
说明 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
说明 具体某种资源的数据后面有定义
1.1.6. 下传扩展模块数据消息
下传节点资源数据
段名
内容
消息头
@
消息长
*
会话 ID
*
消息代码 0x23
节点地址
*
模块代码
*
资源数据
*
校验和
*
段长 1 1 2 1 2 2 * 1
数据类型 Char uInt8 uInt16 uInt8 uInt16 uInt16 不定 uInt8
说明 0x00-0xFE
1.1.11. 修改节点PANID
节点分组
段名 消息头 消息长 会话 ID 消息代码 节点地址
PANID 校验和
内容 @ 8 * 0x28 * * *
段长 1 1 2 1 2 2 1
数据类型 Char uInt8 uInt16 uInt8 uInt16 uInt16 uInt8
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. 蜂鸣器数据
继电器 Relay8 Relay7 Relay6 Relay5 Relay4 Relay3 Relay2 Relay1
默认状态
0
0
0
0
0
0
0
0
从低位开始,依次为继电器 1,继电器 2,依此类推,目前扩展板上有四个继电器,母板上有一个继电器
0 表示继电器开,1 表示继电器闭合
1.1.18. GPIN数据(开关量输入模块)
说明 具体某种资源的数据后面有定义
1.1.7. 上传母板资源数据消息
上传节点资源数据
段名
内容
消息头
@
消息长
*
会话 ID
*
消息代码 0x24
节点地址
*
母板类型
*
资源代码
*
资源数据
*
校验和
*
段长 1 1 2 1 2 1 2 * 1
数据类型 Char uInt8 uInt16 uInt8 uInt8 uInt8 uInt16 不定 uInt8
说明
由设备 ID 和设备索引组成 查一般消息代码表
除校验和外消息其它字节的累加
1.1.2. 节点一般应答消息
节点一般应答消息
段名
内容
消息头
@
消息长
9
会话 ID
*
消息代码
*
节点地址
*
应答代码
*
校验和
*
段长 1 1 2 1 2 1 1
数据类型 Char uInt8 uInt16 uInt8 uInt16 uInt8 uInt8
[]
说明 带符号 8 位整型 带符号 16 位整型 带符号 32 位整型 带符号 64 位整型 无符号 8 位整型 无符号 16 位整型 无符号 32 位整型 无符号 64 位整型 单精度浮点(32bit) 双精度浮点(64bit)
字符型 数组类型
8) 协议中的数值型数据如无特别说明,均采用 LSB 模式,即低字节在前;
控制模式
3
1
电机状态
*
1
转动角度
*
1
数据类型 uInt8 uInt8 uInt8
说明 步进电机 1-正转 2-反转 0-45 度 1-90 度 2-180 度
1.1.17. 继电器控制数据
继电器控制
段名
内容 段长 数据类型
说明
输出数据
*
1
uInt8
继电器输出 bit 位说明:
Bit.7 Bit.6 Bit.5 Bit.4 Bit.3 Bit.2 Bit.1 Bit.0
*
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
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 有四路输入.
说明
一共 8 个 bit,0 为输出 1 为输入 一共 8 个 bit,0 为输低 1 为高
GPIO 控制(直流电机模式)
段名
内容 段长
控制模式
2
1
电机状态
*
1
无意义
0
1
数据类型 uInt8 uInt8 uInt8
直流电机 0-停止 1-正转 2-反转
说明
GPIO 控制(步进电机模式)
段名
内容 段长
uInt8 0x04-115200
说明 1-智能板 2-电源板
资源数据
*
*
不定
校验和
*
1
uInt8
具体某种资源的数据后面有定义
1.1.9. 节点父子关系消息
节点父子关系消息
段名
内容 段长 数据类型
消息头
@
1
Char
消息长
10
1
uInt8
会话 ID
*
2
uInt16
消息代码
0x26
1
uInt8
节点地址
*
2
uInt16
父节点地址
*
2
uInt16
z 以下是各种资源的数据定义
1.1.14. AD采样控制
AD 采样控制(下传数据)
段名
内容 段长 数据类型
说明
通道组合
*
1
uInt8 举例:0x0C(00001100)表示采集第 5,6 通道的数据
采样精度
*
1
uInt8
采样速率
*
2
uInt16
采样模式
*
0-停止采集 1-单次采集 2-连续采集 (停止采集或单次采集
单位 dBm 链路质量 网络 ID 1-智能板 2-电源板 请查扩展模块代码表
1.1.5. 上传扩展模块资源数据消息
上传节点资源数据
段名
内容
消息头
@
消息长
*
会话 ID
*
消息代码 0x22
节点地址
*
模块代码
*
资源数据
*
校验和
*
段长 1 1 2 1 2 2 * 1
数据类型 Char uInt8 uInt16 uInt8 uInt16 uInt16 不定 uInt8
数据类型 Char uInt8 uInt16
说明
消息代码 0x2A
节点地址
*
资源 ID
*
资源数据
*
校验和
*
说明:
资源 ID 的各比特位组成
15..14
保留
1
uInt8
2
uInt16
2
uInt16
*
不定
1
uInt8
13..12 资源板类型
具体某种资源的数据后面有定义
11..4 资源类型
3..0 资源序号
机根据实际情况重发或放弃。 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
2
uInt16 方式下,下面三个参数无效
采集间隔
*
2
uInt16 按 1ms 计算
采样点数
*
2
uInt16 0 表示无限制
数据包长度
*
1
uInt8 累积到 n(0-128)个点数后统一上传
说明:
1. 无论模块为何状态,接收本消息后,立即进入新的状态
2. 以上所有参数均采用 MSB 模式,即高字节在前
¾ ENA~END:对应 DA 输出有效控制,高有效。
¾ 当整体控制字节中 RST=0,ENS=1;且 ENA~END 对应位有效时,后续数据才有意义。
1.1.22. 串口配置
串口配置
段名
内容 段长 数据类型
说明
串口模式 0x01
1
uInt8 0x01-配置串口
串口号
*
1
uInt8
波特率
*
1
0x00-9600 0x01-19200 0x02-38400 0x03-57600
校验和
*
1
uInt8
说明:
1.一些计算时用到的参数请参阅《传感器参数》文档
2.每块板子都有不同的传感器参数,在获取到节点信息时向节点发送传感器校准参数请求消息,一旦获取
到参数即可停止请求。
3.三个校准参数为量化值
1.1.13. 资源数据传送消息
下传节点资源数据
段名
内容
消息头
@
消息长
*
会话 ID
*
段长 1 1 2
LED 控制 段名
蜂鸣器状态 1-蜂鸣器响 0-蜂鸣器不响
内容 *
段长 1
数据类型 uInt8
说明
1.1.21. DA控制(电压输出控制模块)
DA 控制 段名
DA 模式
内容 *
段长 1
数据类型 uInt8 具体定义见下面的说明
说明
DA-1 数据
*
2
uInt16
DA-2 数据
*
DA-3 数据
*
2
uInt16 MSB 模式,高字节在前
校验和
*
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
1. 协调器与应用层软件之间通讯协议
1.1. 消息格式定义
z 以下消息相当于一类消息的模板,编码时可以把这一类消息统一定义为一个结构体。
1.1.1. 节点一般消息
节点一般消息 段名 消息头 消息长
会话 ID 消息代码 节点地址
校验和
内容 @ 8 * * * *
段长 1 1 2 1 2 1
数据类型 Char uInt8 uInt16 uInt8 uInt16 uInt8