摘要:3964(R)通讯协议是一种基于RS422总线的通讯协议,本文通过对其通讯流程的分析和调整,设计了基于RS485总线运行的3964(R)通讯协议及其完成通讯程序,并在某型防爆产品中应用了该协议,根据该产品的试验情况,该协议具有较好的实用性和可靠性,可作为本质安全型设备的通讯协议。

引言

3964(R)协议是西门子为进行可靠点对点数据通讯(PtP)而设计的标准化开放协议。对照标准ISO参考模型,3964(R)协议包含了第一层物理层和第二层数据链路层的主要内容。与ASCII协议相比,3964(R)协议中,增加了起始位、停止位、校验机制和重发机制,为数据和链接的安全、可用提供了较好的保障。而与较为复杂的RK512协议相比,在简单PtP应用中,取消了报文帧标题、数据来源等内容,减少了对报文的区分,简化了通讯的过程,提高了通讯的效率。因此,该协议特别适合于通讯内容较为简单但有一定可靠性要求的场合,也非常适宜自行开发的第三方外围设备与西门子系列PLC进行通讯的情况使用。然而,在西门子的产品线中,支持3964(R)的产品如CP340通讯模块、CP341通讯模块、CPU 313-2PtP、CPU 314C-2PtP等,均仅可采用RS422总线,以全双工方式运行该协议。本设计的重点是利用RS485总线,以半双工方式运行该协议,在减少电缆芯数的情况下(全双工的RS422总线为4芯、半双工的RS485为2芯),实现3964(R)通讯协议。

3964(R)协议

3964(R)协议的控制字

3964(R)协议是通过将对通讯协议的控制字添加到用户数据中,从而解决报文的起止位置确定、链路完整性判断、超时判断等问题的。控制字既标示了报文的起始位置,更是通讯伙伴“握手”的信号。通讯双方均是通过收发控制字表明自己的状态和对数据的接收状态的。3964(R)协议的控制字如表1所示。  

3964(R)协议的报文帧

3964(R)通讯协议的报文数据以STX开始,块校验字符(BCC)结束,通过校验增强数据传输的完整性和正确性,报文结构如图1所示。

3964(R)通讯协议中的块校验字符(BCC)是该帧正文数据中所有字符及报文帧结束标志(DLE和ETX)的“异或”运算结果。3964(R)协议对于正文字符是完全透明的,即任何字符都可以包含在正文中,为了避免接收方将正文中的字符1003H(DLE和ETX)误认为是报文结束标志,在正文中出现10H时,需将10H重发一遍,即变为1010H。接收方在处理时也需将其自动处理为10H。

推荐内容