CN101820422A - 安全计算机报文缓冲实现方法 - Google Patents
安全计算机报文缓冲实现方法 Download PDFInfo
- Publication number
- CN101820422A CN101820422A CN201010135865A CN201010135865A CN101820422A CN 101820422 A CN101820422 A CN 101820422A CN 201010135865 A CN201010135865 A CN 201010135865A CN 201010135865 A CN201010135865 A CN 201010135865A CN 101820422 A CN101820422 A CN 101820422A
- Authority
- CN
- China
- Prior art keywords
- message
- buffer
- sequence number
- safe
- safe computer
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Granted
Links
Landscapes
- Small-Scale Networks (AREA)
- Computer And Data Communications (AREA)
Abstract
一种安全计算机报文缓冲实现方法,其特征是在缓冲队列基础上,配置缓冲队列的冗余特性,增加头尾字段或维持原有字段、添加排序功能。可配置安全计算机报文缓冲可由同一个结构体进行实现。在安全计算机多冗余系统每一个处理器单元,维护一张通道与缓冲配置管理表。在安全计算机多机系统启动时,读取配置管理表,通过对可配置安全计算机报文缓冲的适配,根据应用的需求形成单个安全计算机内部不同种类不同数量的缓冲。本发明以传统缓冲队列结构体为基础,通过增加结构体字段和序列号映射数组的方式,增加了传统缓冲队列的可配置性,它既能够提供先进先出的环形缓冲功能,也可以提供满足重传、排序需求的队列的功能。使用纯静态内存使用方式,配置灵活,可匹配多种周期性或事件性通信模式。
Description
技术领域
本发明涉及一种轨道交通设备的安全运行方法,尤其是轨道交通设备运行过程中报文的处理方法,具体地说是一种安全计算机报文缓冲实现方法。
背景技术
众所周知,城市轨道交通系统中,列车自动控制系统(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兼容,适用于多种嵌入式操作系统。
本发明未涉及部分均与现有技术相同或可采用现有技术加以实现。
Claims (2)
1.一种安全计算机报文缓冲实现方法,其特征是它包括以下步骤:
首先创立统一的安全计算机报文结构体系,包括序列号、报文长度、报文内容和检错码;
然后建立一个静态的安全报文数组和一个序列号映射数组,其中使用静态报文数据的目的是为了适应高安全性系统的需要,减少运行出错的概率;序列号映射数组存储的是缓冲中所有的报文的序列号和拥有相应序列号的报文在安全报文数组中的位置;在根据序列号进行排序时通过修改序列号映射数组中对应序列号报文所在的位置;同时为了达到报文缓冲队列可配置性,在保存环形缓冲头尾位置的时候,在内存中存储的也是序列号映射数组中头尾序列号的位置;
第三,将缓冲区分为如下几种:输入报文缓冲区、输入比较报文缓冲区和输出报文缓冲区、输出比较报文缓冲区;输入报文缓冲区是用来存储从对端设备经通信传送过来的报文,缓冲对外部数据到来的顺序、数量和密度完全不可控;输入比较缓冲区是用来存储安全计算机别的运算系传送来的它们接收到的报文,以便与接收到的报文进行比较,然后得到安全输入报文来进行数据的处理;输出报文缓冲区是用来缓冲安全计算机应用下发的报文;输出比较报文缓冲区是用来存储其他运算系发送来的其应用下发的报文,比较后得到安全输出报文,发送到对端的设备;
第四,采用环形缓冲或者排序型队列缓冲方式进行缓冲。
2.根据权利要求1所述的安全计算机报文缓冲实现方法,其特征是如果使用的是环形缓冲,则对于与这个设备的通信输入报文缓冲区、输入比较报文缓冲区、输出报文缓冲区和输出比较报文缓冲区均采用环形;如果使用的是排序型队列,则所述四种缓冲区使用的都是排序型队列。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN2010101358650A CN101820422B (zh) | 2010-03-30 | 2010-03-30 | 安全计算机报文缓冲实现方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN2010101358650A CN101820422B (zh) | 2010-03-30 | 2010-03-30 | 安全计算机报文缓冲实现方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN101820422A true CN101820422A (zh) | 2010-09-01 |
CN101820422B CN101820422B (zh) | 2012-08-29 |
Family
ID=42655371
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN2010101358650A Active CN101820422B (zh) | 2010-03-30 | 2010-03-30 | 安全计算机报文缓冲实现方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN101820422B (zh) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109254936A (zh) * | 2017-07-12 | 2019-01-22 | 龙芯中科技术有限公司 | 插入数据传输队列结构体的方法和装置 |
CN113467977A (zh) * | 2021-09-06 | 2021-10-01 | 西安热工研究院有限公司 | 基于循环队列的soe数据上送方法、系统及板卡 |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1412976A (zh) * | 2002-11-01 | 2003-04-23 | 清华大学 | 生成数据分组网络测试负载用的分组轮询式多流发送方法 |
CN101150485A (zh) * | 2007-11-15 | 2008-03-26 | 曙光信息产业(北京)有限公司 | 一种零拷贝缓冲区队列网络数据发送的管理方法 |
CN101309261A (zh) * | 2008-07-14 | 2008-11-19 | 成都卫士通信息产业股份有限公司 | 一种网络数据报文处理方法及系统、设备 |
US20090006732A1 (en) * | 2005-06-02 | 2009-01-01 | Seagate Technology Llc | Storage system with synchronized processing elements |
JP2009054209A (ja) * | 2007-08-23 | 2009-03-12 | Hitachi Global Storage Technologies Netherlands Bv | 不揮発性半導体メモリ装置を有するディスク・ドライブ装置及びそのディスク・ドライブ装置において不揮発性半導体メモリ装置にデータを格納する方法 |
-
2010
- 2010-03-30 CN CN2010101358650A patent/CN101820422B/zh active Active
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1412976A (zh) * | 2002-11-01 | 2003-04-23 | 清华大学 | 生成数据分组网络测试负载用的分组轮询式多流发送方法 |
US20090006732A1 (en) * | 2005-06-02 | 2009-01-01 | Seagate Technology Llc | Storage system with synchronized processing elements |
JP2009054209A (ja) * | 2007-08-23 | 2009-03-12 | Hitachi Global Storage Technologies Netherlands Bv | 不揮発性半導体メモリ装置を有するディスク・ドライブ装置及びそのディスク・ドライブ装置において不揮発性半導体メモリ装置にデータを格納する方法 |
CN101150485A (zh) * | 2007-11-15 | 2008-03-26 | 曙光信息产业(北京)有限公司 | 一种零拷贝缓冲区队列网络数据发送的管理方法 |
CN101309261A (zh) * | 2008-07-14 | 2008-11-19 | 成都卫士通信息产业股份有限公司 | 一种网络数据报文处理方法及系统、设备 |
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109254936A (zh) * | 2017-07-12 | 2019-01-22 | 龙芯中科技术有限公司 | 插入数据传输队列结构体的方法和装置 |
CN109254936B (zh) * | 2017-07-12 | 2020-06-02 | 龙芯中科技术有限公司 | 插入数据传输队列结构体的方法和装置 |
CN113467977A (zh) * | 2021-09-06 | 2021-10-01 | 西安热工研究院有限公司 | 基于循环队列的soe数据上送方法、系统及板卡 |
CN113467977B (zh) * | 2021-09-06 | 2021-11-30 | 西安热工研究院有限公司 | 基于循环队列的soe数据上送方法、系统及板卡 |
Also Published As
Publication number | Publication date |
---|---|
CN101820422B (zh) | 2012-08-29 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN105850086B (zh) | 用于高性能结构内的QoS的方法、装置和系统 | |
CN105745885B (zh) | 用于高性能结构内的灵活信用交换的方法和系统 | |
CN102326363B (zh) | 具有使用缓冲器描述表的控制器区域网络模块的微控制器 | |
CN101488922B (zh) | 具备自适应路由能力的片上网络路由器及其实现方法 | |
Chang et al. | A fault tolerant algorithm for distributed mutual exclusion | |
US8099521B2 (en) | Network interface card for use in parallel computing systems | |
CN105359468A (zh) | 使用与链路结构分组异步的微片捆包的链路传送、位错误检测以及链路重试 | |
CN103166971B (zh) | 一种多路复用串口协议转换方法 | |
CN102866980B (zh) | 用于多核微处理器片上互连网络的网络通信胞元 | |
CN104054265A (zh) | 容错功率半导体开关设备控制系统 | |
US20090161685A1 (en) | Method, system and node for backpressure in multistage switching network | |
CN101416446A (zh) | 利用误差校正的高度并行交换系统 | |
CN102622323B (zh) | 动态可重构串行总线中基于开关矩阵的数据传输管理方法 | |
CN102521419A (zh) | 分级存储的实现方法和系统 | |
CN102111327B (zh) | 信元调度方法和系统 | |
CN104067516A (zh) | 开关控制系统信号发送技术 | |
CN103262425A (zh) | 无竞争存储访问的系统和方法 | |
CN102868604A (zh) | 一种应用于片上网络的二维Mesh双缓冲容错路由单元 | |
CN105814828A (zh) | 利用隐式确收的高效的链路层重试协议 | |
CN101753439A (zh) | 一种流媒体分发传输方法 | |
US7603488B1 (en) | Systems and methods for efficient memory management | |
CN101820422B (zh) | 安全计算机报文缓冲实现方法 | |
CN102937997A (zh) | 数据处理系统 | |
CN102799617A (zh) | 多层Bloom Filter的构建及查询优化方法 | |
CN105589814A (zh) | 针对Path ORAM的叉型访问方法 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
C14 | Grant of patent or utility model | ||
GR01 | Patent grant |