主控制器与子模块通讯协议

通讯帧格式

字段名称 说明
站号 每个模块的唯一地址标识
功能码 表示具体的通讯功能
数据长度高 数据区长度的高字节
数据长度低 数据区长度的低字节
子模块类型 子模块的类型(某些协议中可忽略)
数据区 包含具体的操作数据或状态信息
CRC16 校验高 CRC 校验的高字节
CRC16 校验低 CRC 校验的低字节

说明:数据长度字段仅包含数据区长度,不包括站号、功能码、子模块类型(某些协议中不含此字段)和 CRC 校验。


功能码及协议说明

1. 主站请求/子模块响应的协议
功能码 描述 数据区内容说明
0x00 主站请求子模块报告软元件资源列表 无数据区
0x02 子模块报告软元件资源列表 包含子模块类型、输入/输出点数等信息
0x03 主站请求子模块报告动态信息并下发操作 包含软元件类型、触发事件等
0x04 子模块报告软元件动态信息 包含软元件状态、事件类型等

2. 模块数量及信息相关协议
功能码 描述 数据区内容说明
0x05 子模块报告扩展模块数量 数据区包含扩展模块数量信息
0x55 上位机请求获取总模块信息 无数据区
0x56 子模块发送模块信息数据 包含总模块数及各模块识别码

3. 主模块下发子模块配置参数
功能码 描述 数据区内容说明
0x06 主模块下发子模块配置参数 包含数字量/模拟量的具体配置参数

4. 校准模块相关协议
功能码 描述 数据区内容说明
0x85 校准模块请求被校准模块设置低值 无数据区
0x87 校准模块请求被校准模块设置高值 无数据区
0x86 校准模块写入低值实际测得值 包含 1~8 通道数据
0x88 校准模块写入高值实际测得值 包含 1~8 通道数据
0x89 校准结束,固化数据到 Flash 无数据区

数据区排列格式

数字量数据区
字段名称 说明
软元件类型 软元件的具体类型
触发事件类型 事件类型(如布尔值改变、模拟量改变等)
触发事件的元件编号 元件编号(高字节、低字节)
元件状态 包括旧状态和新状态(高字节、低字节)
模拟量数据区
字段名称 说明
软元件类型 软元件的具体类型
触发事件类型 事件类型
通道数据 包括通道数据高字节和低字节
通道设置参数 包括参数 1 和参数 2
通讯模块数据区
字段名称 说明
包号 数据包号(0 或 1)
输入/输出数据 包含具体的输入或输出数据

附录:软元件类型和触发事件类型

软元件类型
类型值 描述
0x01 模拟量输入电压
0x02 模拟量输入电流
0x03 IO 输入
0x04 IO 输出
0x05 模拟量输出电压
0x06 模拟量输出电流
0x07 模拟量输入热电阻
0x08 模拟量输入热电偶
0x09 网关通讯数据
0xFE 事务

你可能感兴趣的:(单片机,嵌入式硬件)