基于RS422接口的备份测试系统设计
1、引言
本文引用地址:http://www.amcfsurvey.com/article/193591.htm在复杂现场工业环境中,有时需要对现场工作设备进行备份,提供一套与工作设备完全相同的设备,提高设备的应急处理能力和工作任务完成的的靠性。在这种备份方式中,主辅两台设备同时开机,同时接收终端设备数据,根据需求采用通信协议简单、容错能力强、安全性好以及成本较低的RS422总线方式实现。RS422总线是一种点对点传输总线,它定义了一种平衡通信接口,将传输速率提高到10Mb/s,在传输速率低于100kb/s时,其传输距离可达1200米。RS422传输协议属于单机发送、多机接收的单向、平衡传输规范,只对接口电气特性做出规定,不涉及接插件、电缆或协议,可在此基础上建立高层通信协议进行通信。
2、系统接口设计
为使主辅设备互为备份,需要主辅设备同时接收数据、主设备应答终端设备信号命令,而辅设备不应答终端设备信号命令。主辅设备与终端设备通过RS422端口连接方式如图1所示。
图1 系统接口设计小标
3、系统工作流程
主辅设备同时工作时,系统工作流程如图2所示:
图2 系统工作流程框图
4、软件设计
通信过程中,终端设备通过RS422端口按查询通信方式和中断通信方式与主辅设备进行通信。
4.1 数据帧格式设计
4.1.1 查询通信帧格式
查询通信帧格式如表1所示,按照单字节握手方式进行数据传输:终端设备按照单字节信号传输方式发送信号命令到主辅设备,主设备在接收到每个字节后返回到终端设备,辅设备则无应答。终端设备在确认接收字节与发送字节无误后继续发送帧中下一字节数据到主辅设备。
表1 查询通信数据帧格式
帧格式
帧头
数据长度
识别符
代码
帧尾
字节数
3
2
2
1
1
4.1.2 中断通信数据帧格式
中断通信数据帧格式如表2所示,按照中断方式进行数据传输:设备通过数据帧格式将每一个字节顺序发出,接收方以中断方式进行接收,根据帧格式判断是否收到完整数据帧。
表2 中断通信数据帧格式
帧格式
帧头
识别符
数据区
校验和
数据长度
帧尾
字节数
2
7
200
1
2
2
4.2 设计考虑
4.2.1 数据帧判别
设置后台监视线程,主辅设备同时不间断接收终端设备传输信号,接收到信号后,判断是否为单字节,若是单字节则延时20毫秒继续接收。20毫秒后若没有接收到数据则进入查询通信格式进行单字节握手接收,否则进入中断通信方式进行数据接收。
4.2.2 通信同步
4.2.2.1 主辅设备与终端设备数据接收同步
主辅设备与终端设备通信时需在发送和接收数据时间间隔上进行限制,当接收和发送时间超过时间间隔,就认为本次通信失败。程序立即回到通信程序开始,并清空缓冲区的数据继续查询接收;终端设备若在规定时间未收到返回确认信号,也立即返回到通信程序开始,并清空缓冲区中的数据,重新发送数据,接收双方重新同步。
4.2.2.2 主设备与辅设备接收同步
主设备与辅设备同时接收终端设备传输数据,因为接收线程都是程序子线程,因此当主设备接收并应答终端设备信号时,辅设备接收线程可能存在未同步接收的情况,当主设备与终端设备通信到一定时间时,辅设备才开始接收数据。此时,辅设备接收线程进入中断通信方式。
因此在程序设计中接收线程采用中断查询混合接收方式,判别帧格式不属于中断通信帧格式后,采用单字节格式继续进行数据接收。
4.2.3 丢帧处理
主辅设备同时接收终端设备中断数据帧格式时,需考虑到主辅设备间接收线程同步性,判别接收数据时是否存在丢帧现象。
4.3 接收工作线程
软件接收参数工作线程如图3所示。
图3 软件接收工作线程
4.3.1 查询通信流程
查询通信工作流程如图4所示。
图4 查询通信工作流程
4.3.2 中断查询混合通信流程
中断查询混合通信工作流程如图5所示。
图5 中断查询混合通信工作流程
5、结论
经过实验验证,通信时,通过主设备单独应答终端设备信号命令,主辅设备能很好的同时接收终端设备数据并存储备份。经过分析,这种按照RS422总线方式进行连接的备份测试方法虽然降低了总线输出电平差值,但输出电平仍然远大于RS422规定的200mv门限电平值。因此,这种连接设计的主辅备份测试系统很好的满足了数据备份和数据通信传输要求,而其结构简单、构造方便、成本较低的优点更具有无可比拟的优势。
参考文献
[1] LRINRVKRT R C.Visual C++ Bible[M].北京:电子工业出版,1999.
[2] 徐晓刚,高兆法,王秀娟,Visual c 6.0入门与提高[M].北京:清华大学出版社,1999.
[3] 蒋涛.多串口通信编程解决方案分析[J].四川师范大学学报:自然科学版,2001,24[5]:11-14.
[4] Shepherd G,Kruglinski D.Visual C++.Net技术内幕[M].潘爱民,译.北京:清华大学出版社,2004.
[5] Gregory K.Visual C++ 5开发使用手册[M].抗波创作室,译.北京:机械工业出版社,1998.
c++相关文章:c++教程
数字通信相关文章:数字通信原理
通信相关文章:通信原理
评论