多任务TDCS车站分机通信协议的设计
3通信协议设计和解析
协议是数据发送与接收方都必须遵守的一种规则,这种规则一部分是发送方及接收方所认识的信息组成格式即信息结构,另一部分是由信息结构的协议类型及协议操作符所组成的会话方式即传输控制。
在该系统中,从串口和以太网接收到的各种的数据的类型和长度是不一致的,数据处理任务要对其分门别类进行处理就必须明确数据的类型、实际长度以及数据本身。因此必须定义一种数据传输的协议以保证通信的可靠性和数据读取的可用性。本文针对以太网通信和串口通信,分别建立了对应的数据协议。
3.1 以太网通信协议
以太网通信涉及的信息包括计算机联锁设备状态信息、无线车次号信息、调度命令信息。本文定义了一种以太网信息通用的数据协议封装类如下:
![b.JPG](http://m.amcfsurvey.com/editerupload/fetch/20130807/156093_2_0.jpg)
在该数据结构中,报文类型用来识别该报文是联锁设备信息、无线车次号信息或者调度命令信息;序列号用来判断接收报文的连续性;CRC错误检测缀用来判断接收报文的正确性,可以根据需要选择不同的生成多项式;接收数据数组将根据联锁设备信息、无线车次号信息和调度命令信息的相应内容填充。
3.2 串口通信协议
串口通信采用RS 422方式。在嵌入式车站分机中,冗余的处理器单元采用轮询的方式进行一主多从通信。车站分机作为主机,无线车次号设备、无线命令调度设备和计算机联锁设备作为从机。具体为:使用1问1答的方式,整个系统中车站分机发送查询命令,其他设备是从机,只能被动地接收和发送数据。
在串口通信中,必须为每一个数据报文设计一个起始码和结束码,如0x03,并对报文中所有与起始码和结束码相同的字符进行转义。接收方接收到该报文时,再按照转义规则对其进行还原。本文定义的通用串口数据协议封装类如下:
![c.JPG](http://m.amcfsurvey.com/editerupload/fetch/20130807/156093_2_1.jpg)
其中:报文类型、序列号和CRC错误检测缀的作用与以太网通信协议相同;从机地址用来区分该报文的目的地是无线车次号设备、无线调度命令设备还是计算机联锁设备。
评论