CRT通信协议

****************************************

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,超长必须拆帧)

---------------------------------------------------------------------------------------------------------------------------------

偏移量大小存储内容数据格式说明

1

相关推荐
相关主题
热门推荐