基于2乘2取2架构的安全平台输入一致性比较方法与流程

文档序号:17641181发布日期:2019-05-11 00:40阅读:862来源:国知局
基于2乘2取2架构的安全平台输入一致性比较方法与流程

本发明涉及一种轨旁安全平台,尤其是涉及一种基于2乘2取2架构的安全平台输入一致性比较方法。



背景技术:

轨旁安全平台是一个通用的sil4等级的安全计算机系统,配合上层应用可作为地铁和铁路的轨旁安全设备,如区域控制器、联锁、列控、有轨电车等。本发明中涉及到的轨旁安全平台采用2乘2取2的安全架构,一个主机(主系)和一个备机(备系)构成2乘2,主机、备机各包含两块逻辑运算板卡实现2取2。输入的消息必须经过系内2取2一致性比较和主备机之间的一致性比较后才可以发送给上层应用进入下一步处理,相比于单系单一控制的轨旁安全平台此架构提高了冗余度,拥有更高的可靠性、安全性。并且经输入一致性比较后能尽量减小主备系处理输入消息的差异性,这样主备系进行切换或由双系运行降为单系运行时,对系统造成的影响会很小。

然而双系的引入,逻辑运算板卡的增加也提高了对输入消息一致性检查的难度,不仅是单系内的一致性比较,还要处理两系间的一致性比较,比较原则的设定要依旧实际情况而定。多块逻辑运算板卡在接收输入消息的时序上的微小偏差,可能导致接收到的消息有所不同,如果出现差异全部抛弃消息会导致有效数据也丢失,而全部选用这些消息发给上层应用,一方面会增加上层应用的处理负担,同时又会存在安全风险。上层应用对逻辑运算板卡发来的输入消息要求是:要保证消息的可靠性、连续性,不可靠的消息可以被抛弃,但对被抛弃的消息数量有一定限制。因此,需要按照一定的规则对输入的消息做系内,系间的比较,抛弃不可靠的消息,保留有效消息。



技术实现要素:

本发明的目的就是为了克服上述现有技术存在的缺陷而提供一种基于2乘2取2架构的安全平台输入一致性比较方法。

本发明的目的可以通过以下技术方案来实现:

一种基于2乘2取2架构的安全平台输入一致性比较方法,该方法将对实际输入消息的比较转化为对消息索引序号的比较,再进一步将消息索引序号的比较转化为只对消息起止索引序号的比较,并结合记录的丢失消息序列,最后得到需要发往上层应用的消息。

优选地,该方法采用“求同存异”的原则,系内比较后两块逻辑板会得到一样的消息起止索引序列,即系内两块逻辑板卡具有相同的起始序号和结束序号;系间比较时若两系起始序号不同则以主系为准,而结束序号取两系中较小的结束序号。

优选地,该方法具体包括以下步骤:

(1)两系四块cpu板从各自输入消息队列与遗留消息队列中提取消息索引号组成输入消息起止索引序列,同时记录丢失的消息和丢失消息数量,然后广播给其它cpu板;

(2)cpu板通过总线接收其它通道的输入消息起止索引序列;

(3)确定系内输入消息起止索引序列;

(4)检查两系丢失消息的数量是否超出了允许丢失消息数量的上限,如果超出上限则抛弃本次所有消息,未超出上限,执行步骤(5);

(5)确定系间输入消息起止索引序列;

(6)两系分别重新读取输入消息队列与遗留消息队列中的消息,并与上述得到的消息起止索引序列进行比较检查;

(7)将本周期待发送输入消息队列的消息发送给上层应用处理。

优选地,所述的(3)中的确定系内输入消息起止索引序列的原则如下:

比较系内两cpu通道起止索引序列的开始序号,较大值作为系内比较结果的起始序号,结束序号的较小值作为系内比较结果的结束序号;记录系内比较后丢失的消息和丢失消息数量。

优选地,所述的(5)中确定系间输入消息起止索引序列的原则为:

取主系的起始序号作为两系比较后起止索引序列的起始序号;结束序号取两系结束序号比较后的较小值。

优选地,所述的(6)中比较检查具体为:

根据读取的消息序号是否在起止索引序列区间内,以及是否被标记为丢失消息来决定消息是被抛弃、放入遗留消息队列、放入待发送输入消息丢列。

本发明实施过程中对输入消息进行了两次读取,第一次只提取消息索引序号进而得到消息起止索引序号,然后根据起止索引序号进行系内系间的一致性比较;第二次读取时会根据一致性比较得出的起止索引序号结果来决定哪些消息会被发送给上层应用,哪些消息会被抛弃,哪些作为遗留消息放到下一个周期再处理。上述步骤的特点在于,(1)(2)两步将对实际消息的比较简化为了对起止索引序列的比较;(3)中的系内比较保证了系内数据的一致性;(4)中对丢失消息的检查防止了数据的过多丢失导致的消息不可靠;(5)中对系间进行一致性比较,既保证了主系的独立性,也最大可能保持了双系的一致性;(6)(7)根据起止序列决定输入消息的抛弃、遗留和发送。

与现有技术相比,本发明具有以下优点:

(1)由于2乘2取2架构中包含有主备系四块逻辑运算板卡,若均对实际输入消息进行一致性比较工作量较大,本技术方案将一致性比较转化为对消息索引序号的比较,再进一步将消息索引序号的比较转化为只对消息起止索引序号的比较,简化了逻辑,提升了效率;

(2)每块逻辑运算板卡对消息丢失的情况做记录,当比较后逻辑运算板卡判定丢失的消息数量超过设定的上限时,则认为本周期消息不可靠,进行抛弃并向系统报错,防止不可靠的输入消息给到上层应用;

(3)由于各逻辑运算板卡接收通信板输入消息的时序可能存在偏差,接收到的消息数量可能不同,因此设置了遗留消息队列,将消息序号在一致性比较消息序列之外且较新的消息存入遗留消息队列,下一周期再进行比较,防止消息的误抛;

(4)本发明中系内比较和系间比较采用不同的比较方法,并且系间比较时起始序号以主系为准,在尽量保证双系输入数据一致性的同时,提高主系输入消息的连续,灵活便捷又安全可靠。

附图说明

图1为本发明涉及的各板卡关系示意图;

图2为本发明输入一致性比较的工作流程图。

具体实施方式

下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明的一部分实施例,而不是全部实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动的前提下所获得的所有其他实施例,都应属于本发明保护的范围。

图1为本发明中涉及的各板卡之间的结构关系图,轨旁安全平台包含主备系:a系(a机)、b系(b机),每一系包含两块逻辑处理板卡cpu1_a、cpu2_a、cpu1_b、cpu2_b。逻辑运算板卡从通信板接收外部输入消息。安全平台可单系运行,也可双系运行。逻辑运算板卡进入主任务后,会周期性的从通信板卡读取输入消息进行一致性比较,然后根据比较后的结果将消息发送给上层应用。

图2所示为本发明输入一致性比较的流程图,当系统运行至主任务后会周期性的读取输入消息进行一致性比较,然后根据比较后的结果将消息发送给上层应用。下面以卡斯柯轨旁安全平台cvc200t为例,假设a系为主系,结合图1举例对输入一致性比较步骤进行详细描述:

步骤1:cpu板提取输入消息队列与遗留消息队列中的索引号组成输入起止索引序列[startindex,endindex],同时记录丢失消息及数量losenum,然后广播给其它cpu板。

步骤2:cpu板通过总线接收其它通道的输入索引号消息。

步骤3:确定系内比较后的输入消息起止索引序列:系内两通道比较,开始序号取较大值,即startindex_a=max(startindex_a1,startindex_a2),结束序号取较小值,即endindex_a=min(endindex_a1,endindex_a2),合并记录丢失消息和数量losenum_a=losenum_a1+losenum_a2;

同样方法确定b系内比较后的输入消息起止索引序列(startindex_b1,endindex_b2),合并记录丢失消息和数量losenum_b;

步骤4:检查两系各自丢失消息的数量losenum_a和losenum_b是否超出了允许丢失的消息数量上限(5条),如果超出上限则抛弃本次所有消息,退出,未超出上限则执行步骤5。

步骤5:确定系间比较后输入消息起止索引序列:系间比较后起始序号取主系的起始序号,即startindex=startindex_a,系间比较后的结束序号取两系的较小值,即endindex=min(endindex_a,endindex_b)。

步骤6:a、b系重新读取输入消息队列与遗留消息队列中的消息,与上述得到的起止索引序列进行比较检查:

当消息队列中的消息序号在(startindex,endindex)之外,且小于startindex时,此消息被抛弃;

当消息队列中的消息序号在(startindex,endindex)之外,且大于endindex时,此消息被放入遗留消息队列;

当消息队列中的消息序号在(startindex,endindex)之内,但被标记为是丢失消息,此消息被抛弃;

当消息队列中的消息序号在(startindex,endindex)之内,且未被标记为是丢失消息,此消息放入本周期待发送输入消息队列;

步骤7:两系将本周期待发送消息队列中的消息发送给上层应用处理。

以上所述,仅为本发明的具体实施方式,但本发明的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本发明揭露的技术范围内,可轻易想到各种等效的修改或替换,这些修改或替换都应涵盖在本发明的保护范围之内。因此,本发明的保护范围应以权利要求的保护范围为准。

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