一种基于双链的相异性冗余编码方法

文档序号:6385461阅读:212来源:国知局
专利名称:一种基于双链的相异性冗余编码方法
技术领域
本发明涉及一种铁路运输系统的安全编码方法,尤其是涉及一种基于双链的相异 性冗余编码方法。
背景技术
铁路信号行业直接涉及到列车的安全运行和人民群众的生命财产安全,尤其车载 ATP (Automatic Train Protection,列车自动保护)系统是确保列车运行安全的关键系统, 该系统必须运用可被证明的安全方法来达到SIL4级(SIL, Safety IntegrityLevel)的系 统安全完善度等级。
对于一个铁路行业的安全产品而言,必须满足RAMS (可靠性、可用性、可维护性、 安全性)的要求。尤其是对于确保列车运行安全的关键系统一车载ATP系统,它必须达 到SIL4级的系统安全完善度等级。基于双链开发的安全冗余编码技术可以防护由于硬件 错误或内存错误等引起的操作数错误、操作符错误及运算错误,而且这种编码技术独立于 软件和硬件环境,能够保证系统在各种复杂的软件和硬件环境下具有SIL4标准中所要求 达到的错误不可检出率,有效地提升系统的安全度等级。
目前,在多数ATP系统中都使用了不同形式的冗余代码来保证系统的安全性。虽 然它们形式各异,但是基本原理相同。具有安全性的冗余编码已广泛应用许多地铁项目中。 可以看到,由于冗余编码软件具有不同于其他软件的高安全性,在安全性要求较高的地铁 领域具有不可替代的地位。发明内容
本发明的目的就是为了克服上述现有技术存在的缺陷而提供一种安全性高、错误 不可检出率低的基于双链的相异性冗余编码方法。
本发明的目的可以通过以下技术方案来实现
—种基于双链的相异性冗余编码方法,该方法首先基于同一套算法原理和同一个 需求通过相异的双链开发方式开发两套编码工具=VCPl和VCP2,然后采用这两套编码工具 进行冗余编码。
所述的相异的双链开发方式包括相异的架构设计、相异的开发过程、相异的开发 技术和相异的编译器。
所述的相异的架构设计具体是指
VCPl的架构设计是基于语句分析和消息传递,后端根据前端传递过来的消息进行 冗余编码,具体为
读取缓冲区中的待编码的数据,对其进行词法分析,产生单词标识集合并传送给 语法分析模块;语法分析模块对单词标识集合进行语法分析,产生语法二叉树数据结构并 传送给消息产生模块;消息产生模块解析语法二叉树数据结构后,产生冗余编码消息,并传 送给冗余代码生成模块生成相应的冗余代码;
VCP2的架构设计具体为设定词法规则和语法规则,利用这些规则对待编码的数 据进行词法语法分析,构建程序对象,冗余代码生成模块通过遍历该程序对象进行相应的 冗余编码。
所述的词法语法分析过程中,通过中间结构存储分析所得结果。
所述的相异的开发过程是指VCPl和VCP2的开发及测试分别独立完成。
所述的相异的开发技术是指VCP1使用C语言作为开发语言,词法分析和语法分 析基于开源工具CPP和LCC ;VCP2使用C++作为开发语言,使用MCPP、lex&yacc进行词法语 法分析。
所述的相异的编译器是指VCP1使用VC6编译环境,VCP2使用g++编译器。
与现有技术相比,本发明以相异的双链开发方式开发两套相异的安全冗余编码工 具,来实现相同的编码功能,具有较高的安全等级,使系统在各种复杂的软件和硬件环境下 具有更低的错误不可检出率。


图1为本发明的原理示意图2为本发明中VCPl的数据结构设计示意图3为本发明中VCPl的编码过程不意图4为本发明中VCP2的数据结构设计示意图5为本发明中VCP2的编码过程示意图。
具体实施方式
下面结合附图和具体实施例对本发明进行详细说明。本实施例以本发明技术方案 为前提进行实施,给出了详细的实施方式和具体的操作过程,但本发明的保护范围不限于 下述的实施例。
实施例
如图1所示,一种基于双链的相异性冗余编码方法,该方法首先基于同一套算法 原理和同一个需求通过相异的双链开发方式开发两套编码工具VCP1和VCP2,然后采用这 两套编码工具进行冗余编码。而且VCPl和VCP2编码后的有效冗余代码(不包括空格,空 行和注释)经过比较工具(C0ST1、C0ST2)比较是完全一致的。
所述的相异的双链开发方式包括相异的架构设计(包括相异的数据结构和编码 过程)、相异的开发过程、相异的开发技术和相异的编译器。
所述的相异的架构设计具体是指
VCPl的数据结构和编码过程如图2-图3所示,VCPl是基于语句分析和消息传递, 后端根据前端传递过来的消息进行冗余编码,具体为
读取缓冲区中的待编码的数据,对其进行词法分析,产生单词标识集合并传送给 语法分析模块;语法分析模块对单词标识集合进行语法分析,产生语法二叉树数据结构并 传送给消息产生模块;消息产生模块解析语法二叉树数据结构后,产生冗余编码消息,并传 送给冗余代码生成模块生成相应的冗余代码。
单词标识是一种标识当前分析的词法语句的类型的值,它是一个唯一的整数。比如,可以用5表示当前分析的词语是一个整型int声明,用2表示当前读到的是一个变量名。
VCPl基于语句处理的模型
待编码的C语言程序通过词法分析和语法分析被解析成一个有限的语言规则集 R<rl, r2, ···, rn>,编码算法被定义为一个有限的编码规则集P〈pl, p2,…,pn> ;对于每个 ri(i = I,2,..,η),都有一个相应的编码规则pi (i = 1,2,…,η)与之相对应。
VCP2的数据结构和编码过程如图4-图5所示,VCP2的架构设计具体为通过先定义词法规则和语法规则,然后采用开源工具flex来生成词法分析工具,采用bison来生成语法分析工具。在词法语法分析过程中,还需考虑如何将分析所得的结果合理存储,方便之后进行冗余编码。VCP2中设计了一种中间结构,使用若干个类,来组成一个C语言程序,每个类即代表了 C程序的各个语法成分,比如,变量有对应的变量类,声明有对应的声明类, 语句有对应的语句类等等。语法分析和词法分析的过程,就是构建程序对象的过程。经过语法词法分析之后,被分析的源C语言程序即被存储到相应的对象中。冗余代码生成模块通过遍历这个程序对象生成冗余代码。
VCP2基于程序对象处理的模型
待编码的C语言程序通过词法分析和语法分析被存储在一个程序对象中,该程序对象是一个有限的子对象的集合0〈ol,o2,…,om>。冗余编码过程就是遍历这个程序对象, 将程序对象还原成C代码,在还原的过程中,对符合编码算法的子对象进行冗余编码,然后输出到相应的冗余代码文件中。
所述的相异的开发过程是指VCPl和VCP2的开发及测试由两个独立的团队分别完成。而且除了需求文档和确认测试文档,双链的开发文档,测试文档,安全相关及质量相关的文档都是独立的,以确保在相异的开发过程下,双链的输出结果是一致的。
所述的相异的开发技术是指VCP1使用C语言作为开发语言,词法分析和语法分析基于开源工具CPP和LCC ;VCP2使用C++作为开发语言,使用MCPP、lex&yacc进行词法语法分析。
所述的相异的编译器是指VCP1使用VC6编译环境,VCP2使用g++编译器。
在足够相异的开发下,双链最终实现的功能是一致的,这样以保证系统足够的安全,即
VCPl和VCP2均可以对整数的以下运算进行编码
I)算术运算(包括加、减、乘、除);
2)逻辑运算(包括与、或、非);
3)移位运算(包括算术左移和右移);
VCPl和VCP2均可以对if-else分支结构(包括组合和嵌套的情况)、while循环结构(包括组合和嵌套的情况)、函数调用进行编码。
本方法涉及安全性极高的系统,可作为安全原理来保证系统在各种复杂的软件和硬件环境下具有SIL4标准中所要求达到的错误不可检出率。本方法主要适用的领域为铁路运输系统,除此以外,也适用于各种安全等级较高的领域。本方法尤其适用于车载ATP系统程序的安全计算。本方法使用的范围为模拟量、开关量以及数值量的多输入多输出系统。 本方法不仅可以进行逻辑运算的编码,还可以进行一般算术运算的编码,并且能够保证无CN 103049269 A说明书论是逻辑运算、算术运算或者两者混合的计算形式都能达到极高的安全等级。
权利要求
1.一种基于双链的相异性冗余编码方法,其特征在于,该方法首先基于同一套算法原理和同一个需求通过相异的双链开发方式开发两套编码工具VCP1和VCP2,然后采用这两套编码工具进行冗余编码。
2.根据权利要求1所述的一种基于双链的相异性冗余编码方法,其特征在于,所述的相异的双链开发方式包括相异的架构设计、相异的开发过程、相异的开发技术和相异的编译器。
3.根据权利要求2所述的一种基于双链的相异性冗余编码方法,其特征在于,所述的相异的架构设计具体是指VCPl的架构设计是基于语句分析和消息传递,后端根据前端传递过来的消息进行冗余编码,具体为读取缓冲区中的待编码的数据,对其进行词法分析,产生单词标识集合并传送给语法分析模块;语法分析模块对单词标识集合进行语法分析,产生语法二叉树数据结构并传送给消息产生模块;消息产生模块解析语法二叉树数据结构后,产生冗余编码消息,并传送给冗余代码生成模块生成相应的冗余代码;VCP2的架构设计具体为设定词法规则和语法规则,利用这些规则对待编码的数据进行词法语法分析,构建程序对象,冗余代码生成模块通过遍历该程序对象进行相应的冗余编码。
4.根据权利要求3所述的一种基于双链的相异性冗余编码方法,其特征在于,所述的词法语法分析过程中,通过中间结构存储分析所得结果。
5.根据权利要求2所述的一种基于双链的相异性冗余编码方法,其特征在于,所述的相异的开发过程是指VCPl和VCP2的开发及测试分别独立完成。
6.根据权利要求2所述的一种基于双链的相异性冗余编码方法,其特征在于,所述的相异的开发技术是指=VCPl使用C语言作为开发语言,词法分析和语法分析基于开源工具 CPP和LCC ;VCP2使用C++作为开发语言,使用MCPP、lex&yacc进行词法语法分析。
7.根据权利要求2所述的一种基于双链的相异性冗余编码方法,其特征在于,所述的相异的编译器是指=VCPl使用VC6编译环境,VCP2使用g++编译器。
全文摘要
本发明涉及一种基于双链的相异性冗余编码方法,该方法首先基于同一套算法原理和同一个需求通过相异的双链开发方式开发两套编码工具VCP1和VCP2,然后采用这两套编码工具进行冗余编码。与现有技术相比,本发明具有安全性高、错误不可检出率低等优点。
文档编号G06F9/44GK103049269SQ201210572900
公开日2013年4月17日 申请日期2012年12月25日 优先权日2012年12月25日
发明者张磊, 曹杰, 汪明新, 何昀锋, 江伟, 刘庆华 申请人:卡斯柯信号有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1