****************************************
CRT与控制器RS-232通信协议(16回路版)
****************************************
一、通信模式
1. 波特率 19200bps 8位有效数据 无奇偶校验 1位停止位
2. 五线制在线检测
对方在线:数据设备准备好DSR(data-set-ready)信号是否被设置
自己在线:设置数据终端准备好DTR (data-terminal-ready)信号
备注:(两个有用的win32函数)
BOOL GetCommModemStatus(
HANDLE hFile, // handle to communications device
LPDWORD lpModemStat // pointer to control-register values
);
BOOL EscapeCommFunction(
HANDLE hFile, // handle to communications device
DWORD dwFunc // extended function to perform
);
3. 主从式、半双工通信方式
控制器为主方、CRT为从方,所有通信过程由主方发起,从方只做应答。
主方发送一帧数据,若未收到从方应答,则延时重发本帧,收到应答后才发送下一帧。
从方收到一帧数据,校验无误后发送应答帧,未收到数据或校验有错不发送任何帧。
采用窗口方式避免数据帧重复和帧混序现象出现,窗口大小为1。主方和从方各自维持一个标志位,并保证初始状态一致。主方发送新的数据帧(带上主方标志位),从方正确接收到一帧后,将该帧中的主方标志位和从方标志位比较,若一致则认为是新的数据帧,存储该帧数据并发送应答帧,同时将从方标志位翻转;如不一致则认为是重复的数据帧,丢弃该帧数据并再次发送应答帧(即收方认为主方未收到上次应答帧),此时从方标志位不变。主方若超时未收到从方应答帧,则保持主方标志位不变,并重新发送上一帧数据;若收到应答帧则将主方标志位翻转,开始发送下一新的数据帧(带上更新后的主方标志位),进入下一轮通信过程。
二、通信流程
控制器 CRT
检测CRT是否在线 <-----------> 检测控制器在线并给出CRT在线信号
| 是 | 是
发送握手密钥 ------------> 与自身的密钥对比,检查是否有单元信息
| 等待应答 | 没有 | 有
接受应答帧并判断 <----------- 发送否认应答NCK 发送肯定应答ACK
| ACK | NCK | 等待 | 等待
发送历史信息 发送单元信息 ---------> 接收单元信息 接收历史信息
。。。 | 逐帧确认 | 肯定应答 。。。
。。。 结束 重新启动(软启动) 。。。
三、帧结构
1. 数据帧格式(固定帧长为34 byte,有效负荷16 byte,超长必须拆帧)
---------------------------------------------------------------------------------------------------------------------------------
偏移量 大小 存储内容 数据格式 说明
---------------------------------------------------------------------------------------------------------------------------------
0x00 1 byte 帧头标志 0x10或0x11 帧头唯一,最低位为窗口
0x01 1 byte 第1个数据高位 0x0? 高4位为0,低4位为数据
0x02 1 byte 第1个数据低位 0x0? 和上一个字节共同传输第1字节
0x03 1 byte 第2个数据高位 0x0? 高4位为0,低4位为数据
0x04 1 byte 第2个数据低位 0x0? 和上一个字节共同传输第2字节
… … … … …
0x2F 1 byte 第16个数据高位 0x0? 高4位为0,低4位为数据
0x20 1 byte 第16个数据低位 0x0? 和上一个字节共同传输第16字节
0x21 1 byte 校验位 0xF? 低4位为数据[0x01, 0x20]异或校验
---------------------------------------------------------------------------------------------------------------------------------
2. 命令帧格式(固定帧长为1 byte)
--------------------------------------------------------------------------------------------------------
偏移量 大小 存储内容 数据值 数据描述
--------------------------------------------------------------------------------------------------------
0x00 1 byte 帧头标志 0x20 确认应答ACK
0x25 否认应答NCK
--------------------------------------------------------------------------------------------------------
注释:
[1]该帧结构可以保证传输数据透明;
[2]数据字段的高4位永远为0000B,校验字段的高4位永远为1111B,其它情况用于特殊字段。
四、信息存储结构
1. 历史事件
基本元素:
逻辑地址:节点号、回路号、单元号
物理地址:楼栋号、楼层号、区域号、汉字标签(单字节)
时间标签:月、日、时、分
事件标识:事件类型、单元类型
数据格式:(长度为16 byte)
------------------------------------------------------------------------------------------------------------------------
--------
偏移量 大小 存储内容 数据类型 有效值范围[1] 说明
--------------------------------------------------------------------------------------------------------------------------------
0x00 1 byte 节点号 HEX 0x01-0x80 控制器的编号
0x01 1 byte 回路号 HEX 0x01-0x80 回路1-128
0x02 1 byte 单元号 HEX 0x01-0xFE 编址单元1-254
0x03 1 byte 单元类型 HEX 0x00-0xFE 定义见附件
0x04 1 byte 楼栋号 HEX 0x01-0xFE 楼栋1-254
0x05 1 byte 楼层号 HEX 0x01-0xFE 见注释[2]
0x06 1 byte 区域号 HEX 0x01-0xFE 区域1-254[3]
0x07 1 byte 月 BCD 0x01-0x12 月份1-12
0x08 1 byte 日 BCD 0x01-0x31 日期1-31
0x09 1 byte 时 BCD 0x00-0x23 小时0-23
0x0A 1 byte 分 BCD 0x00-0x59 分钟0-59
0x0B 1 byte 事件类型 HEX 0x01-0xFE 定义见附件
0x0C 4 byte 单字节汉字 HEX 0x01-0xFE 表示4个汉字[4]
---------------------------------------------------------------------------------------------------------------------------------
注释:
[1] 除汉字标签外各字段中保留0xFF为无效值,表示无本字段内容,而起始值为0x01或0x00是根据惯例来定的;
[2]本字段0x01-0xC8表示地上1-200层,0xC9-0xFE表示地下1-54层;
[3]未分区情况下缺省为1区,即取值0x01,0x00为无效取值;
[4]本字段一个字节表示一个汉字,汉字表见附件;
2. 单元信息
基本元素:
逻辑地址:节点号、回路号、单元号
物理地址:楼栋号、楼层号、区域号、汉字标签
单元特征:单元类型、定义类型、楼显号
单元状态:预警/火警、屏蔽、双次报警
数据格式:(暂略)
3. 握手密钥信息
基本元素:
厂商标识:厂商ID号
通信协议设备标识:控制器系列编号、控制器类型、控制器硬件版本、控制器软件版本
用户标识:用户ID号
配置标识:配置日期、配置时间、配置密码、配置签名
数据格式:(暂略)
五、附件
1. 历史事件类型定义
--------------------------------------------------------------------------------------------------------------------------------
事件类型 单元类型 历史事件名称 所属类别 说明
--------------------------------------------------------------------------------------------------------------------------------
0x01 0x00 回路通信故障恢复 故障1(撤销) 无CRT图形
其它 单元通信故障恢复 故障2(撤销)
0x02 0x01~0x04 稳态值超限 提示1
0x05~0x06 上电触点开路 提示2
0x07~0x0D 供电24V故障 提示3
其它 保留(未知事件)
0x03 0x10 短路隔离 故障3
其它 总线欠压 提示4
0x04 0x07~0x0C 线路1开路 提示5
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论