CN103049269A - 一种基于双链的相异性冗余编码方法 - Google Patents
一种基于双链的相异性冗余编码方法 Download PDFInfo
- Publication number
- CN103049269A CN103049269A CN2012105729004A CN201210572900A CN103049269A CN 103049269 A CN103049269 A CN 103049269A CN 2012105729004 A CN2012105729004 A CN 2012105729004A CN 201210572900 A CN201210572900 A CN 201210572900A CN 103049269 A CN103049269 A CN 103049269A
- Authority
- CN
- China
- Prior art keywords
- redundancy encoding
- analysis
- vcp2
- vcp1
- method based
- 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
Images
Abstract
本发明涉及一种基于双链的相异性冗余编码方法,该方法首先基于同一套算法原理和同一个需求通过相异的双链开发方式开发两套编码工具:VCP1和VCP2,然后采用这两套编码工具进行冗余编码。与现有技术相比,本发明具有安全性高、错误不可检出率低等优点。
Description
技术领域
本发明涉及一种铁路运输系统的安全编码方法,尤其是涉及一种基于双链的相异性冗余编码方法。
背景技术
铁路信号行业直接涉及到列车的安全运行和人民群众的生命财产安全,尤其车载ATP(Automatic Train Protection,列车自动保护)系统是确保列车运行安全的关键系统,该系统必须运用可被证明的安全方法来达到SIL4级(SIL,Safety IntegrityLevel)的系统安全完善度等级。
对于一个铁路行业的安全产品而言,必须满足RAMS(可靠性、可用性、可维护性、安全性)的要求。尤其是对于确保列车运行安全的关键系统---车载ATP系统,它必须达到SIL4级的系统安全完善度等级。基于双链开发的安全冗余编码技术可以防护由于硬件错误或内存错误等引起的操作数错误、操作符错误及运算错误,而且这种编码技术独立于软件和硬件环境,能够保证系统在各种复杂的软件和硬件环境下具有SIL4标准中所要求达到的错误不可检出率,有效地提升系统的安全度等级。
目前,在多数ATP系统中都使用了不同形式的冗余代码来保证系统的安全性。虽然它们形式各异,但是基本原理相同。具有安全性的冗余编码已广泛应用许多地铁项目中。可以看到,由于冗余编码软件具有不同于其他软件的高安全性,在安全性要求较高的地铁领域具有不可替代的地位。
发明内容
本发明的目的就是为了克服上述现有技术存在的缺陷而提供一种安全性高、错误不可检出率低的基于双链的相异性冗余编码方法。
本发明的目的可以通过以下技术方案来实现:
一种基于双链的相异性冗余编码方法,该方法首先基于同一套算法原理和同一个需求通过相异的双链开发方式开发两套编码工具:VCP1和VCP2,然后采用这两套编码工具进行冗余编码。
所述的相异的双链开发方式包括相异的架构设计、相异的开发过程、相异的开发技术和相异的编译器。
所述的相异的架构设计具体是指:
VCP1的架构设计是基于语句分析和消息传递,后端根据前端传递过来的消息进行冗余编码,具体为:
读取缓冲区中的待编码的数据,对其进行词法分析,产生单词标识集合并传送给语法分析模块;语法分析模块对单词标识集合进行语法分析,产生语法二叉树数据结构并传送给消息产生模块;消息产生模块解析语法二叉树数据结构后,产生冗余编码消息,并传送给冗余代码生成模块生成相应的冗余代码;
VCP2的架构设计具体为:设定词法规则和语法规则,利用这些规则对待编码的数据进行词法语法分析,构建程序对象,冗余代码生成模块通过遍历该程序对象进行相应的冗余编码。
所述的词法语法分析过程中,通过中间结构存储分析所得结果。
所述的相异的开发过程是指VCP1和VCP2的开发及测试分别独立完成。
所述的相异的开发技术是指:VCP1使用C语言作为开发语言,词法分析和语法分析基于开源工具CPP和LCC;VCP2使用C++作为开发语言,使用MCPP、lex&yacc进行词法语法分析。
所述的相异的编译器是指:VCP1使用VC6编译环境,VCP2使用g++编译器。
与现有技术相比,本发明以相异的双链开发方式开发两套相异的安全冗余编码工具,来实现相同的编码功能,具有较高的安全等级,使系统在各种复杂的软件和硬件环境下具有更低的错误不可检出率。
附图说明
图1为本发明的原理示意图;
图2为本发明中VCP1的数据结构设计示意图;
图3为本发明中VCP1的编码过程示意图;
图4为本发明中VCP2的数据结构设计示意图;
图5为本发明中VCP2的编码过程示意图。
具体实施方式
下面结合附图和具体实施例对本发明进行详细说明。本实施例以本发明技术方案为前提进行实施,给出了详细的实施方式和具体的操作过程,但本发明的保护范围不限于下述的实施例。
实施例
如图1所示,一种基于双链的相异性冗余编码方法,该方法首先基于同一套算法原理和同一个需求通过相异的双链开发方式开发两套编码工具:VCP1和VCP2,然后采用这两套编码工具进行冗余编码。而且VCP1和VCP2编码后的有效冗余代码(不包括空格,空行和注释)经过比较工具(COST1、COST2)比较是完全一致的。
所述的相异的双链开发方式包括相异的架构设计(包括相异的数据结构和编码过程)、相异的开发过程、相异的开发技术和相异的编译器。
所述的相异的架构设计具体是指:
VCP1的数据结构和编码过程如图2-图3所示,VCP1是基于语句分析和消息传递,后端根据前端传递过来的消息进行冗余编码,具体为:
读取缓冲区中的待编码的数据,对其进行词法分析,产生单词标识集合并传送给语法分析模块;语法分析模块对单词标识集合进行语法分析,产生语法二叉树数据结构并传送给消息产生模块;消息产生模块解析语法二叉树数据结构后,产生冗余编码消息,并传送给冗余代码生成模块生成相应的冗余代码。
单词标识是一种标识当前分析的词法语句的类型的值,它是一个唯一的整数。比如,可以用5表示当前分析的词语是一个整型int声明,用2表示当前读到的是一个变量名。
VCP1基于语句处理的模型:
待编码的C语言程序通过词法分析和语法分析被解析成一个有限的语言规则集R<r1,r2,…,rn>,编码算法被定义为一个有限的编码规则集P<p1,p2,…,pn>;对于每个ri(i=1,2,..,n),都有一个相应的编码规则pi(i=1,2,…,n)与之相对应。
VCP2的数据结构和编码过程如图4-图5所示,VCP2的架构设计具体为:通过先定义词法规则和语法规则,然后采用开源工具flex来生成词法分析工具,采用bison来生成语法分析工具。在词法语法分析过程中,还需考虑如何将分析所得的结果合理存储,方便之后进行冗余编码。VCP2中设计了一种中间结构,使用若干个类,来组成一个C语言程序,每个类即代表了C程序的各个语法成分,比如,变量有对应的变量类,声明有对应的声明类,语句有对应的语句类等等。语法分析和词法分析的过程,就是构建程序对象的过程。经过语法词法分析之后,被分析的源C语言程序即被存储到相应的对象中。冗余代码生成模块通过遍历这个程序对象生成冗余代码。
VCP2基于程序对象处理的模型:
待编码的C语言程序通过词法分析和语法分析被存储在一个程序对象中,该程序对象是一个有限的子对象的集合O<o1,o2,…,om>。冗余编码过程就是遍历这个程序对象,将程序对象还原成C代码,在还原的过程中,对符合编码算法的子对象进行冗余编码,然后输出到相应的冗余代码文件中。
所述的相异的开发过程是指VCP1和VCP2的开发及测试由两个独立的团队分别完成。而且除了需求文档和确认测试文档,双链的开发文档,测试文档,安全相关及质量相关的文档都是独立的,以确保在相异的开发过程下,双链的输出结果是一致的。
所述的相异的开发技术是指:VCP1使用C语言作为开发语言,词法分析和语法分析基于开源工具CPP和LCC;VCP2使用C++作为开发语言,使用MCPP、lex&yacc进行词法语法分析。
所述的相异的编译器是指:VCP1使用VC6编译环境,VCP2使用g++编译器。
在足够相异的开发下,双链最终实现的功能是一致的,这样以保证系统足够的安全,即:
VCP1和VCP2均可以对整数的以下运算进行编码:
1)算术运算(包括加、减、乘、除);
2)逻辑运算(包括与、或、非);
3)移位运算(包括算术左移和右移);
VCP1和VCP2均可以对if-else分支结构(包括组合和嵌套的情况)、while循环结构(包括组合和嵌套的情况)、函数调用进行编码。
本方法涉及安全性极高的系统,可作为安全原理来保证系统在各种复杂的软件和硬件环境下具有SIL4标准中所要求达到的错误不可检出率。本方法主要适用的领域为铁路运输系统,除此以外,也适用于各种安全等级较高的领域。本方法尤其适用于车载ATP系统程序的安全计算。本方法使用的范围为模拟量、开关量以及数值量的多输入多输出系统。本方法不仅可以进行逻辑运算的编码,还可以进行一般算术运算的编码,并且能够保证无论是逻辑运算、算术运算或者两者混合的计算形式都能达到极高的安全等级。
Claims (7)
1.一种基于双链的相异性冗余编码方法,其特征在于,该方法首先基于同一套算法原理和同一个需求通过相异的双链开发方式开发两套编码工具:VCP1和VCP2,然后采用这两套编码工具进行冗余编码。
2.根据权利要求1所述的一种基于双链的相异性冗余编码方法,其特征在于,所述的相异的双链开发方式包括相异的架构设计、相异的开发过程、相异的开发技术和相异的编译器。
3.根据权利要求2所述的一种基于双链的相异性冗余编码方法,其特征在于,所述的相异的架构设计具体是指:
VCP1的架构设计是基于语句分析和消息传递,后端根据前端传递过来的消息进行冗余编码,具体为:
读取缓冲区中的待编码的数据,对其进行词法分析,产生单词标识集合并传送给语法分析模块;语法分析模块对单词标识集合进行语法分析,产生语法二叉树数据结构并传送给消息产生模块;消息产生模块解析语法二叉树数据结构后,产生冗余编码消息,并传送给冗余代码生成模块生成相应的冗余代码;
VCP2的架构设计具体为:设定词法规则和语法规则,利用这些规则对待编码的数据进行词法语法分析,构建程序对象,冗余代码生成模块通过遍历该程序对象进行相应的冗余编码。
4.根据权利要求3所述的一种基于双链的相异性冗余编码方法,其特征在于,所述的词法语法分析过程中,通过中间结构存储分析所得结果。
5.根据权利要求2所述的一种基于双链的相异性冗余编码方法,其特征在于,所述的相异的开发过程是指VCP1和VCP2的开发及测试分别独立完成。
6.根据权利要求2所述的一种基于双链的相异性冗余编码方法,其特征在于,所述的相异的开发技术是指:VCP1使用C语言作为开发语言,词法分析和语法分析基于开源工具CPP和LCC;VCP2使用C++作为开发语言,使用MCPP、lex&yacc进行词法语法分析。
7.根据权利要求2所述的一种基于双链的相异性冗余编码方法,其特征在于,所述的相异的编译器是指:VCP1使用VC6编译环境,VCP2使用g++编译器。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201210572900.4A CN103049269B (zh) | 2012-12-25 | 2012-12-25 | 一种基于双链的相异性冗余编码方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201210572900.4A CN103049269B (zh) | 2012-12-25 | 2012-12-25 | 一种基于双链的相异性冗余编码方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN103049269A true CN103049269A (zh) | 2013-04-17 |
CN103049269B CN103049269B (zh) | 2016-02-24 |
Family
ID=48061921
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201210572900.4A Active CN103049269B (zh) | 2012-12-25 | 2012-12-25 | 一种基于双链的相异性冗余编码方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN103049269B (zh) |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111010258A (zh) * | 2019-12-23 | 2020-04-14 | 卡斯柯信号有限公司 | 一种基于编码的计算机联锁系统通信方法 |
CN111124418A (zh) * | 2019-12-10 | 2020-05-08 | 卡斯柯信号有限公司 | 一种基于vcp冗余代码的通信数据超时判断方法 |
CN111221534A (zh) * | 2019-12-31 | 2020-06-02 | 卡斯柯信号有限公司 | 一种模块化嵌入式软件交叉编译烧录装置及方法 |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH10240511A (ja) * | 1997-02-25 | 1998-09-11 | Hitachi Software Eng Co Ltd | 暗号アルゴリズム開発支援装置及び暗号プログラム開発支援装置 |
CN101376393A (zh) * | 2008-09-25 | 2009-03-04 | 卡斯柯信号有限公司 | 铁路信号系统中故障容错的安全处理器 |
CN101764619A (zh) * | 2009-12-15 | 2010-06-30 | 卡斯柯信号有限公司 | 一种用于车载atp系统的安全冗余编码处理方法 |
-
2012
- 2012-12-25 CN CN201210572900.4A patent/CN103049269B/zh active Active
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH10240511A (ja) * | 1997-02-25 | 1998-09-11 | Hitachi Software Eng Co Ltd | 暗号アルゴリズム開発支援装置及び暗号プログラム開発支援装置 |
CN101376393A (zh) * | 2008-09-25 | 2009-03-04 | 卡斯柯信号有限公司 | 铁路信号系统中故障容错的安全处理器 |
CN101764619A (zh) * | 2009-12-15 | 2010-06-30 | 卡斯柯信号有限公司 | 一种用于车载atp系统的安全冗余编码处理方法 |
Cited By (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111124418A (zh) * | 2019-12-10 | 2020-05-08 | 卡斯柯信号有限公司 | 一种基于vcp冗余代码的通信数据超时判断方法 |
CN111010258A (zh) * | 2019-12-23 | 2020-04-14 | 卡斯柯信号有限公司 | 一种基于编码的计算机联锁系统通信方法 |
CN111010258B (zh) * | 2019-12-23 | 2022-01-28 | 卡斯柯信号有限公司 | 一种基于编码的计算机联锁系统通信方法 |
CN111221534A (zh) * | 2019-12-31 | 2020-06-02 | 卡斯柯信号有限公司 | 一种模块化嵌入式软件交叉编译烧录装置及方法 |
CN111221534B (zh) * | 2019-12-31 | 2022-08-30 | 卡斯柯信号有限公司 | 一种模块化嵌入式软件交叉编译烧录装置及方法 |
Also Published As
Publication number | Publication date |
---|---|
CN103049269B (zh) | 2016-02-24 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN103049269B (zh) | 一种基于双链的相异性冗余编码方法 | |
CN104049976B (zh) | 基于布尔逻辑的联锁软件自动生成系统 | |
Butler et al. | The first twenty-five years of industrial use of the B-method | |
CN101376393A (zh) | 铁路信号系统中故障容错的安全处理器 | |
Vu et al. | Formal modeling and verification of interlocking systems featuring sequential release | |
Ruiz et al. | Architecture-driven, multi-concern and seamless assurance and certification of cyber-physical systems | |
Margaria et al. | Leveraging Applications of Formal Methods, Verification and Validation: Discussion, Dissemination, Applications: 7th International Symposium, ISoLA 2016, Imperial, Corfu, Greece, October 10-14, 2016, Proceedings, Part II | |
Almeida et al. | Partial derivative automata formalized in Coq | |
Ferrari et al. | From commercial documents to system requirements: an approach for the engineering of novel CBTC solutions | |
Rosenmüller et al. | Tailor-made data management for embedded systems: A case study on Berkeley DB | |
CN101764619B (zh) | 一种用于车载atp系统的安全冗余编码处理方法 | |
Seisenberger et al. | Safe and secure future AI-driven railway technologies: challenges for formal methods in railway | |
Amadio1 et al. | Reasoning about higher-order processes | |
Iliasov et al. | Practical verification of railway signalling programs | |
Kanso et al. | A light-weight integration of automated and interactive theorem proving | |
Badeau et al. | Formal data validation with Event-B | |
Taguchi et al. | Linking traceability with GSN | |
CN107430539A (zh) | 安全相关的计算机系统 | |
Lecomte | Digital modelling in the railways | |
Wang et al. | Route safety verification of train control system by FTA modeling in SCADE | |
Bouwman et al. | Decompositional Branching Bisimulation Minimisation of Monolithic Processes | |
Ledru et al. | A separation of concerns approach for the verified modelling of railway signalling rules | |
Balogh et al. | Distributed and heterogeneous event-based monitoring in smart cyber-physical systems | |
CN101377665B (zh) | 车载atp系统程序到安全编码的转换方法 | |
Le et al. | Refinement-based synthesis of correct contract model decompositions |
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 |