安全计算机报文缓冲实现方法

文档序号:7873229阅读:193来源:国知局
专利名称:安全计算机报文缓冲实现方法
技术领域
本发明涉及一种轨道交通设备的安全运行方法,尤其是轨道交通设备运行过程中 报文的处理方法,具体地说是一种安全计算机报文缓冲实现方法。
背景技术
众所周知,城市轨道交通系统中,列车自动控制系统(ATC)是城市轨道交通车辆 安全、高效运行的主要保证。ATC系统通常由3个系统组成ATP系统(列车自动防护),ATO 系统(列车自动驾驶)、ATS系统(列车自动监督)、CBI系统(计算机联锁系统),其中ATP 系统又分为车载ATP系统和轨旁ATP系统。由于ATP系统和联锁系统涉及到重大人生安全 和财产安全,需要使用采用多冗余技术的安全计算机。在不同的安全计算机设备之间(如车载ATP与轨旁ATP、轨旁ATP与计算机联锁) 和安全计算机与普通计算机之间(如轨旁ATP和ATS)之间,存在着报文交换类的数据通 信。所有的通信在安全计算机内部都需要进行输入、输出数据的缓冲和比较,但是由于相互 间交换报文种类的不一样,有的是安全相关的报文,有的是非安全相关的报文;通信的介质 也不同,轨旁设备之间使用的是以太网互联设备,轨旁设备与车载设备之间使用的是基于 IEEE802. 11的无线通信网,因此数据通信缓冲的类别需要根据具体的应用场合进行区分。 传统的缓冲方式已无法满足ATC系统中高安全性、高可配置性的需求。ATC系统中,安全计算机主要应用在计算机联锁、轨旁ATP和车载ATP中。其中,根 据应用的需求,通信的内容大致可以分为两类周期性发送的报文和由事件驱动的报文。周 期性发送的报文由定时器驱动,按照一定的时间周期发送,在安全计算机之间的通信不存 在着重发、排序等要求,如果一定时间内没有收到所需周期性报文,则认为通信出现故障, 实行故障导向安全的策略;由在安全计算机之间由事件驱动的报文大部分是安全相关的状 态信息与设备操作命令,这些报文之间存在严格的先后顺序,而且如果有的报文没有按预 期到达,需要执行重发策略。计算机联锁、轨旁ATP和车载ATP使用同样的安全计算机设备,但是它们具体使 用到的通道种类和通道数量又是不一致的。这就需要在安全计算机系统软件中,达到高度 的可配置性,可以根据应用的不同,合理调整缓冲的种类和数量,以适应ATC系统运行的需 求。

发明内容
本发明的目的是针对现有的轨道交通通讯中存在通信通道和数量较多,易引起报 文错误,提供一种安全计算机报文缓冲实现方法,通过在普通的线性缓冲队列结构体增加 字段的方式,它既能够实现具有按序列号排序的线性缓冲功能,也可以实现先进先出的环 形缓冲的功能;同时本缓冲实现方法具有高度灵活性,可以根据安全计算机应用场合的不 同配置所需的各种缓冲类型。本发明的技术方案是
一种安全计算机报文缓冲实现方法,其特征是它包括以下步骤首先创立统一的安全计算机报文结构体系,包括序列号、报文长度、报文内容和检错码;然后建立一个静态的安全报文数组和一个序列号映射数组,其中使用静态报文数 据的目的是为了适应高安全性系统的需要,减少运行出错的概率;序列号映射数组存储的 是缓冲中所有的报文的序列号和拥有相应序列号的报文在安全报文数组中的位置;在根据 序列号进行排序时通过修改序列号映射数组中对应序列号报文所在的位置;同时为了达到 报文缓冲队列可配置性,在保存环形缓冲头尾位置的时候,在内存中存储的也是序列号映 射数组中头尾序列号的位置;第三,将缓冲区分为如下几种输入报文缓冲区、输入比较报文缓冲区和输出报文 缓冲区、输出比较报文缓冲区;输入报文缓冲区是用来存储从对端设备经通信传送过来的 报文,缓冲对外部数据到来的顺序、数量和密度完全不可控;输入比较缓冲区是用来存储安 全计算机别的运算系传送来的它们接收到的报文,以便与接收到的报文进行比较,然后得 到安全输入报文来进行数据的处理;输出报文缓冲区是用来缓冲安全计算机应用下发的报 文;输出比较报文缓冲区是用来存储其他运算系发送来的其应用下发的报文,比较后得到 安全输出报文,发送到对端的设备;第四,采用环形缓冲或者排序型队列缓冲方式进行缓冲。如果使用的是环形缓冲,则对于与这个设备的通信输入报文缓冲区、输入比较报 文缓冲区、输出报文缓冲区和输出比较报文缓冲区均采用环形;如果使用的是排序型队列, 则所述四种缓冲区使用的都是排序型队列。本发明的有益效果本发明以传统缓冲队列结构体为基础,通过增加结构体字段和序列号映射数组的 方式,增加了传统缓冲队列的可配置性,它既能够提供先进先出的环形缓冲功能,也可以提 供满足重传、排序需求的队列的功能。并且根据MISRAC语言编写,使用纯静态内存使用方 式,配置灵活,可匹配多种周期性或事件性通信模式,并可以满足安全认证的需要。
具体实施例方式下面结合实施例对本发明作进一步的说明。一种安全计算机报文缓冲实现方法,首先创立统一的安全计算机报文结构体,包 括序列号、报文长度、报文内容和检错码等等。然后建立一个静态的安全报文数组和一个序 列号映射数组,其中使用静态报文数据的目的是为了适应高安全性系统的需要,减少运行 出错的概率;序列号映射数组存储的是缓冲中所有的报文的序列号和拥有相应序列号的报 文在安全报文数组中的位置。在根据序列号进行排序时,如果移动的是内存中报文结构体 在安全报文数组中的位置,则会降低系统的运行效率和CPU的使用率。所以在根据序列号 排序移动报文位置时,移动的不是报文在内存中的位置,而是修改序列号映射数组中对应 序列号报文所在的位置。同时为了达到报文缓冲队列可配置性,在保存环形缓冲头尾位置 的时候,在内存中存储的也是序列号映射数组中头尾序列号的位置。根据安全计算机内部的工作特性,缓冲区分为如下几种输入报文缓冲区、输入比 较报文缓冲区和输出报文缓冲区、输出比较报文缓冲区。输入报文缓冲区是用来存储从对端设备经通信传送过来的报文,缓冲对外部数据到来的顺序、数量和密度完全不可控;输入比较缓冲区是用来存储安全计算机别的运算系传送来的它们接收到的报文,目的是与本运 算系接收的报文进行比较,然后得到安全输入报文来进行数据的处理;输出报文缓冲区是 用来缓冲安全计算机应用下发的报文;输出比较报文缓冲区是用来存储其他运算系发送来 的其应用下发的报文,比较后得到安全输出报文,发送到对端的设备。对于一台安全计算机设备而言,根据应用的需求来决定与之通信的对端设备使用 的是环形缓冲方式还是排序型队列方式。如果使用的是环形缓冲,则对于与这个设备的通 信,输入报文缓冲区,输入比较报文缓冲区、输出报文缓冲区和输出比较报文缓冲区,这四 种缓冲区都是用环形;如果使用的是排序型队列,则这四种缓冲区使用的都是排序型队列。本发明以传统缓冲队列结构体为基础,通过增加结构体字段和序列号映射数组的 方式,增加了传统缓冲队列的可配置性,它既能够提供先进先出的环形缓冲功能,也可以提 供满足重传、排序需求的队列的功能。并且根据MISRAC语言编写,使用纯静态内存使用方 式,配置灵活,可匹配多种周期性或事件性通信模式,并可以满足安全认证的需要。本发明的基本原理是在缓冲队列基础上,配置缓冲队列的冗余特性,增加头尾字段或维持原有字段、添 加排序功能。可配置安全计算机报文缓冲可由同一个结构体进行实现。在安全计算机多冗 余系统每一个处理器单元,维护一张通道与缓冲配置管理表。在安全计算机多机系统启动 时,读取配置管理表,通过对可配置安全计算机报文缓冲的适配,根据应用的需求形成单个 安全计算机内部不同种类不同数量的缓冲。以下结合一个三取二安全计算机对本发明作进一步说明。首先创建传统队列的标准结构体,此结构体内部包含一个报文结构体的静态数 组,和数组中报文的实际数量。下面介绍为了实现环形缓冲和排序型队列缓冲,分别针对结 构体添加了什么字段和方法函数。在此结构体中,增加一个序列号映射数组。此数组中存放的元素是序列号与报文 在报文数组中的绝对位置关系的映射。为了实现排序型队列缓冲功能,第一步增加报文数 组和序列号映射数组的初始化方法函数,假设此队列缓冲设计的容量为1000个安全报文, 则报文数组中报文的存放位置为0-999。在初始化方法函数中,初始化序列号映射数组,把 序列号映射数组中所有元素的序列号初始化为可能的最大序列号(本系统为16位,最大序 列号为65535),元素的数组存放位置依次设为0-999。下面增加往排序型缓冲队列中插入 新元素的方法函数,首先判断报文数组中是否还有空间,如果仍然有空间存放,顺序搜索序 列号映射数组,找到第一个序列号为最大序列号的元素,然后确定该元素的报文存放位置, 把要插入的报文放入数组该位置,最后执行排序,根据排序的结果来调整序列号映射数组 中元素的位置。最后提供排序型队列缓冲根据序列号删除的方法函数,当报文数组中小于 特定序列号的报文都被使用完毕后,在序列号映射数组中将这些序列号对应元素的序列号 全部改为最大的序列号,然后执行排序,这样所有的这些元素都会被排入序列号映射数组 的尾部,而那些大于此特定序列号的报文都会被排入数组的头部。为了实现环形队列缓冲功能,又在队列缓冲结构体中增加入队游标和出队游标两 个字段,分别用来存储环形缓冲队列中入队游标和出队游标的位置,这两个位置存储的不 是报文数组中的位置,而是序列号映射数组中入队游标和出队游标的位置。首先增加报文插入环形队列缓冲的方法,如果出队游标加一取模后和入队游标相等,则队列已满,如果队 列未满,则把要插入的报文放入序列号映射数组中入队游标指向的元素所对应的报文数组 的位置。然后增加从环形队列缓冲中取出报文的方法,如果出队游标等于入队游标,则队列 为空,如果队列不为空,则把出队游标指向的元素所对应的报文取出放入应用缓存中。当加入上述的方法和字段以后,传统的队列缓冲就有了排序比较和环形先进先出两种功能。由于安全计算机使用的是静态内存分配方式,在安全计算机系统软件设计时,首 先配置出可能使用到的最大的通信通道数量,然后每一个通道对应一个配置参数,这个参 数决定了此通道使用的缓冲的类型。在使用这个通信通道和对应这个通道的报文缓冲区 时,系统程序可以根据配置参数来选择不同的使用方法,以确定使用的是环形功能还是排 序型队列功能。在安全计算机启动的时候,可以根据参数的不同配置不同的报文缓冲区。以 使用三取二安全计算机的轨旁ATP为例,轨旁ATP通常和两套联锁设备相连,和另外一套轨 旁ATP设备相连,也和几十套车载ATP设备通过无线连接。在确定安全计算机是为了给轨旁 ATP设备使用以后,可以配置出和轨旁ATP、联锁连接使用的是排序型队列缓冲,和车载ATP 连接使用的环形队列缓冲。而不需要修改原有的系统级软件,只需要在通道定义的时候确 定其通道类型就可以满足系统需求。本发明与标准C兼容,适用于多种嵌入式操作系统。本发明未涉及部分均与现有技术相同或可采用现有技术加以实现。
权利要求
一种安全计算机报文缓冲实现方法,其特征是它包括以下步骤首先创立统一的安全计算机报文结构体系,包括序列号、报文长度、报文内容和检错码;然后建立一个静态的安全报文数组和一个序列号映射数组,其中使用静态报文数据的目的是为了适应高安全性系统的需要,减少运行出错的概率;序列号映射数组存储的是缓冲中所有的报文的序列号和拥有相应序列号的报文在安全报文数组中的位置;在根据序列号进行排序时通过修改序列号映射数组中对应序列号报文所在的位置;同时为了达到报文缓冲队列可配置性,在保存环形缓冲头尾位置的时候,在内存中存储的也是序列号映射数组中头尾序列号的位置;第三,将缓冲区分为如下几种输入报文缓冲区、输入比较报文缓冲区和输出报文缓冲区、输出比较报文缓冲区;输入报文缓冲区是用来存储从对端设备经通信传送过来的报文,缓冲对外部数据到来的顺序、数量和密度完全不可控;输入比较缓冲区是用来存储安全计算机别的运算系传送来的它们接收到的报文,以便与接收到的报文进行比较,然后得到安全输入报文来进行数据的处理;输出报文缓冲区是用来缓冲安全计算机应用下发的报文;输出比较报文缓冲区是用来存储其他运算系发送来的其应用下发的报文,比较后得到安全输出报文,发送到对端的设备;第四,采用环形缓冲或者排序型队列缓冲方式进行缓冲。
2.根据权利要求1所述的安全计算机报文缓冲实现方法,其特征是如果使用的是环形 缓冲,则对于与这个设备的通信输入报文缓冲区、输入比较报文缓冲区、输出报文缓冲区和 输出比较报文缓冲区均采用环形;如果使用的是排序型队列,则所述四种缓冲区使用的都 是排序型队列。
全文摘要
一种安全计算机报文缓冲实现方法,其特征是在缓冲队列基础上,配置缓冲队列的冗余特性,增加头尾字段或维持原有字段、添加排序功能。可配置安全计算机报文缓冲可由同一个结构体进行实现。在安全计算机多冗余系统每一个处理器单元,维护一张通道与缓冲配置管理表。在安全计算机多机系统启动时,读取配置管理表,通过对可配置安全计算机报文缓冲的适配,根据应用的需求形成单个安全计算机内部不同种类不同数量的缓冲。本发明以传统缓冲队列结构体为基础,通过增加结构体字段和序列号映射数组的方式,增加了传统缓冲队列的可配置性,它既能够提供先进先出的环形缓冲功能,也可以提供满足重传、排序需求的队列的功能。使用纯静态内存使用方式,配置灵活,可匹配多种周期性或事件性通信模式。
文档编号H04L12/56GK101820422SQ20101013586
公开日2010年9月1日 申请日期2010年3月30日 优先权日2010年3月30日
发明者朱骞, 束元, 蔡李峰 申请人:南京恩瑞特实业有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1