一种RSSP‑I铁路信号安全通信协议的实现方法与流程

文档序号:12693526阅读:844来源:国知局

本发明涉及一种安全通信协议的实现方法,具体的说,涉及了一种RSSP-I铁路信号安全通信协议的实现方法。



背景技术:

列车运行控制系统是高速铁路信号系统的重要组成部分。CTCS-2级列车运行控制系统是车地一体化的列车运行控制系统。由于动车组列车运行速度快,因此列控系统中对设备间通信的数据时效性、数据完整性、数据包顺序、数据准确性要求很高。RSSP-I铁路信号安全通信协议就是针对列车信号通信的可能发生的问题而设计的,能够满足以上通讯控制要求。

在大部分铁路列控系统中,RSSP-I铁路信号安全通信协议的实现都是与铁路列控系统紧密结合在一起的,没有一个统一的接口,当通信方式(如CAN通信变为RS422通信)或者业务数据协议变更时,整个协议的实现方法都要改变,使得安全协议的实现变得复杂,并且重复工作量大。

为了解决以上存在的问题,人们一直在寻求一种理想的技术解决方案。



技术实现要素:

本发明的目的是针对现有技术的不足,从而提供了一种RSSP-I铁路信号安全通信协议的实现方法,解决了安全协议实现过程复杂以及重复开发量大的问题。

为了实现上述目的,本发明所采用的技术方案是:一种RSSP-I铁路信号安全通信协议的实现方法,包括以下步骤:

步骤1,数据发送端和数据接收端各自封装一个协议类HH_RSSP_I和一个用户接口类DataInterface,在HH_RSSP_I类中封装安全通信协议初始化函数Init、链接建立与维护函数DoReceWork、重连请求函数SendSSE和重建链接响应函数SendSSR;在DataInterface类中封装底层接收纯虚函数ReceData、底层发送纯虚函数SendData、业务数据处理纯虚函数PushData;

步骤2,数据发送端的HH_RSSP_I类调用底层发送纯虚函数SendData发送原始数据;

步骤3,数据接收端的底层接收纯虚函数ReceData接收原始数据;

步骤4,数据接收端将原始数据传送给HH_RSSP_I类,HH_RSSP_I类通过分析原始数据中的校验位及时间戳记号判断原始数据是否丢失、是否完整、是否有时效、是否正确,若原始数据完整、有时效且正确,则将原始数据中的业务数据剥离出来,传送给DataInterface类中的业务数据处理函数进行处理。

基于上述,所述步骤4的具体步骤为:

步骤4.1,数据接收端的DataInterface类定义一个DataInterface类对象DataInterface DI,HH_RSSP_I类调用初始化函数Init,将DataInterface DI传入HH_RSSP_I类中;

步骤4.2,数据接收端通过调用链接建立与维护函数DoReceWork函数与数据发送端建立安全协议链接;

步骤4.3,数据接收端调用底层接收纯虚函数ReceData接收原始数据,并判断原始数据的类型,若原始数据的类型为重连请求响应数据SSR,则循环执行步骤4.3;若原始数据的类型为重连请求数据SSE,则直接执行步骤4.4;若原始数据的类型为业务处理数据RSD,则直接执行步骤4.5;

步骤4.4,数据接收端调用重建链接响应函数SendSSR与数据发送端重建链接响应,数据发送端调用底层发送纯虚函数SendData重新发送原始数据;

步骤4.5,数据接收端检验原始数据,若正确,则继续判断原始数据帧号是否连续、帧序号顺序是否错乱,若帧号连续且帧序号顺序正确,则调用业务数据处理纯虚函数PushData处理传入原始数据;若校验错误或帧号不连续或帧序号顺序错乱,则调用重连请求函数SendSSE与数据发送端重新建立链接关系,数据发送端通过调用底层发送纯虚函数SendData重新发送原始数据。

基于上述,所述SSE数据与所述SSR数据中包含有重建安全通讯协议需要的心跳、时间戳、帧序号等握手信息。

本发明相对现有技术具有突出的实质性特点和显著的进步,具体的说,本发明包括上下层调用的两个类--协议处理类HH_RSSP_I和数据处理类DataInterface实现了安全通信协议实现的通用性;用户在实现安全通信协议时,只需要结合实际通信方式(CAN或RS422或其他)实现SendData函数,结合实际数据协议格式实现ReceData函数和PushData函数即可,具有通用性好、稳定性高、结构清晰的优点。

附图说明

图1是本发明步骤4的具体流程示意图。

具体实施方式

下面通过具体实施方式,对本发明的技术方案做进一步的详细描述。

一种RSSP-I铁路信号安全通信协议的实现方法,包括以下步骤:

步骤1,数据发送端和数据接收端各自采用面向对象的C++编程语言,封装两个类--负责安全协议处理的HH_RSSP_I类和负责数据处理的DataInterface类;同时在HH_RSSP_I类中封装有安全通信协议初始化函数Init、链接建立与维护函数DoReceWork、重连请求函数SendSSE和重建链接响应函数SendSSR;在DataInterface类中封装有底层接收纯虚函数ReceData、底层发送纯虚函数SendData、业务数据处理纯虚函数PushData;

步骤2,数据发送端的HH_RSSP_I类调用底层发送纯虚函数SendData发送原始数据;

步骤3,数据接收端的底层接收纯虚函数ReceData接收原始数据;

步骤4,数据接收端将原始数据传送给HH_RSSP_I类,HH_RSSP_I类通过分析原始数据中的校验位及时间戳记号判断原始数据是否丢失、是否完整、是否有时效、是否正确,若原始数据完整、有时效且正确,则将原始数据中的业务数据剥离出来,传送给DataInterface类中的业务数据处理函数进行处理。

采用这种方法实现RSSP-I铁路信号安全通信协议时,只需要实现DataInterface类中的三个纯虚函数即可。

数据发送端需要发送数据时,通过HH_RSSP_I类将数据传送给DataInterface类,并发送出去。

如图1所示,所述步骤4的具体步骤为:

步骤4.1,数据接收端的DataInterface类定义一个DataInterface类对象DataInterface DI,HH_RSSP_I类调用初始化函数Init,将DataInterface DI传入HH_RSSP_I类中;

步骤4.2,数据接收端通过调用链接建立与维护函数DoReceWork函数与数据发送端建立安全协议链接;

步骤4.3,数据接收端调用底层接收纯虚函数ReceData接收原始数据,并判断原始数据的类型,若原始数据的类型为重连请求响应数据SSR,则循环执行步骤4.3;若原始数据的类型为重连请求数据SSE,则直接执行步骤4.4;若原始数据的类型为业务处理数据RSD,则直接执行步骤4.5;

步骤4.4,数据接收端调用重建链接响应函数SendSSR与数据发送端重建链接响应,数据发送端调用底层发送纯虚函数SendData重新发送原始数据;

步骤4.5,数据接收端检验原始数据,若正确,则继续判断原始数据帧号是否连续、帧序号顺序是否错乱,若帧号连续且帧序号顺序正确,则调用业务数据处理纯虚函数PushData处理传入原始数据;若校验错误或帧号不连续或帧序号顺序错乱,则调用重连请求函数SendSSE与数据发送端重新建立链接关系,数据发送端通过调用底层发送纯虚函数SendData重新发送原始数据。

在系统的运行过程中,如果RSSP-I铁路信号安全通信协议的任何一端发现原始数据包出现校验错误、帧号不连续、帧序号顺序错乱等不能保证数据完整、正确的情况时,则立即调用SendSSE()函数发送重建协议链接请求SSE数据,RSSP-I铁路信号安全通信协议协议的另一端接收到SSE数据后,立即调用SendSSR()发送接受重建协议链接SSR数据,由于SSE数据与SSR数据中包含有重建安全通讯协议需要的心跳、时间戳、帧序号等握手信息,互相交换后,安全通讯协议得以重新链接起来。RSD为协议正常链接的情况下,协议双端所发送的有效业务数据帧类型。

最后应当说明的是:以上实施例仅用以说明本发明的技术方案而非对其限制;尽管参照较佳实施例对本发明进行了详细的说明,所属领域的普通技术人员应当理解:依然可以对本发明的具体实施方式进行修改或者对部分技术特征进行等同替换;而不脱离本发明技术方案的精神,其均应涵盖在本发明请求保护的技术方案范围当中。

当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1