APP下载

基于自主基础软件的轨道交通安全计算机平台

2019-08-19周庭梁蒋建金傅林泰

城市轨道交通研究 2019年7期
关键词:中间件架构编码

周庭梁 夏 伟 蒋建金 傅林泰

(卡斯柯信号有限公司,200071,上海//第一作者,高级工程师)

安全计算机平台作为轨道交通信号系统的基础安全苛求设备,采用故障导向安全的机制,支撑平台之上的信号系统的安全运行,是负责轨道交通安全的核心设备,其安全等级必须达到SIL4(EN系列最高安全等级)。

目前我国尚缺乏成熟的基于自主安全嵌入式操作系统且符合SIL4高安全等级的自主化轨道交通安全计算机平台。其中,嵌入式实时操作系统作为嵌入式软件产业链的底层基础,具有相当的开发难度,需要较长的开发周期和较高的开发成本,因此逐渐作为一个独立的研发领域向专业化、模块化和商业化发展,形成产业链中重要一环。目前在国内市场上流行的实时操作系统主要包括VxWork、PSOS、VRTX、Nucleus、QNX、UC/OS-II和WinCE等,国产的实时操作系统主要包括ReWorks、Delta OS、Hopen OS、CASSPDA和HBOS等。

本文将研究安全计算机平台的架构设计,通过自主操作系统的替换,摆脱对进口基础软件的依赖,以及通过安全中间件的开发,支持安全计算机平台所需要的基础软件功能。

1 安全计算机平台的架构

安全计算机平台的典型安全架构主要包括基于编码的、基于双机热备结构的、三取二架构的以及二乘二取二架构的安全平台。

1. 1 基于编码的安全平台

基于编码的安全平台如图1所示。这类型的安全平台采用基于编码的安全原理,其核心运算模块上的I/O(输入/输出)处理和计算部分均进行编码。根据此类平台对编码运算结果的处理方式,又可以分为图1中的类型I和类型II两类安全平台。类型I的安全平台,采用独立的校验板对编码结果进行校验,以实现每周期对于处理结果的实时安全检查,校验不通过时将导向安全侧;类型II的安全平台,本身的编码系统安全原理就能够保证在计算结果出错或有可能导致危险的输出时,相应编码的校验码部分能检测相应的出错故障,并且将相关故障反映到校验码中。

图1 基于编码的安全平台

1. 2 基于双机热备结构的安全平台

双机热备的安全平台如图2所示。其基本工作原理是两个模块接收相同的输入数据并进行逻辑运算,其中一个模块为主机,另一个为热备机,只有主机才有对外控制权。每个模块一般均为单CPU(中央处理器)处理单元,单个模块构成独立的子系统。主备机都具有故障检测功能,在其工作过程中,若主机自检发现自身出现故障时,通过切换单元进行切换,备机升为主机运行;若热备机出现故障,则不进行切换。

图2 双机热备的安全平台

图3 三取二架构的安全平台

1. 3 三取二架构的安全平台

三取二架构的安全平台如图3所示。该平台由3个模块组成。正常工作时,3个模块接收相同的输入数据,并平行地对数据进行处理,然后通过表决单元对运算结果进行多数表决;只要有2个模块的运算结果一致,则认为系统处于正常工作状态,产生控制命令并输出。三取二架构在其中一个模块出现故障退出工作时,降级为二取二架构。通过这种降级处理方式,增强了可用性,使整体系统能够继续工作,实际上起到了热备的作用。

1. 4 二乘二取二架构的安全平台

二乘二取二架构的安全平台如图4所示。该平台由两系4个模块组成,其中2个模块构成1个子系统,形成二取二结构,通过比较器实时比较。两系构成热备冗余结构,和双机热备原理相同。其中一系为主系,另一系为备系,当主系内双机比较不一致或出现故障时,则系统切换到备系工作;若备系内双机比较不一致或出现故障时,则不需要切换。该结构采用二取二比较来保证系统的安全性,同时采用双机切换来保证系统的可靠性。目前国内外的安全平台广泛采用二乘二取二架构,本文将以该架构作为设计与实现的基础来进行讨论。

图4 二乘二取二架构的安全平台

2 自主操作系统替换

目前,自主化的轨道交通运控系统研发与集成应用发展较为迅速,已具备了商用条件,但难以突破国外的技术体系制约,尤其是安全计算机的核心部件仍然被国外控制,其涉及的核心基础软件高安全嵌入式操作系统主要都是采用国外Intel、QNX、Micrium等公司的高安全认证产品,无法摆脱对进口基础软件的依赖。

实时操作系统是当今流行的嵌入式系统的软件开发平台,在轨道交通安全计算机平台中引入高安全嵌入式实时操作系统,可以有效地解决系统的高安全性和底层硬件抽象化的难题,从而有利于系统“故障-安全”的实现,提高系统的安全性、可移植性和可维护性,缩短了新产品的开发周期。

本文拟采用ReWorks-Cert操作系统,实现自主化安全计算机平台的基础软件自主化替代。作为国内唯一通过IEC 61508 SIL3和EN 50128 SIL3安全认证的自主可控嵌入式实时操作系统,ReWorks-Cert操作系统由中国电子科技集团公司第三十二研究所自主研制,采用操作系统功能安全完整性最高等级的标准进行研制。

作为一款微内核操作系统,ReWorks-Cert操作系统不仅能够提供基于优先级的抢占式实时调度和多任务管理机制,支持基于中断优先级的中断嵌套和共享中断的异常/中断管理,还能支持互斥量、信号量、消息队列及事件等多种任务通信机制,能够满足轨道交通安全计算机平台对于实时操作系统的苛刻需求。ReWorks-Cert操作系统安全平台结构图如图5所示。

图5 ReWorks-Cert操作系统安全平台结构图

本文基于高安全自主化国产实时嵌入式ReWorks-Cert操作系统,通过研发嵌入式安全中间件技术,构建轨道交通信号控制系统的多子系统共用的、符合SIL4高安全等级的二乘二取二架构自主化安全计算机平台。

3 安全中间件的开发及集成

中间件是一种独立的系统软件或服务程序,位于操作系统之上,管理计算机资源和网络通信,为应用软件提供运行环境,帮助用户灵活、高效地开发和集成复杂的应用软件。使用中间件技术可以使应用软件在设计开发时无需直接接触复杂的计算机最底层的数据(如操作系统、网络协议和数据库等)。利用轨道交通信号各子系统之间的共性需求来构建安全的计算机中间件,应用开发人员通过调用中间件提供的标准API(应用程序编程接口),只需关注与应用相关的功能开发,而无需考虑安全平台相关的功能开发,与平台共性且相关的功能由通用安全中间件系统实现,这样可以大大缩短系统的研发及测试周期,减少资金的重复投入,降低软件的部署及维护难度。

3. 1 自主可控高安全协议栈

操作系统中自带的网络协议栈或商用协议栈本身对于安全计算机平台而言是不可见的黑盒,无法做到高安全、透明化、自主可控等要求。为了解决该问题,本文参考RFC标准[2-7],根据实际需求,开发出为安全计算机平台提供协议的集合(PROSTACK)。PROSTACK是由卡斯柯信号有限公司完全自主研发的,并且通过EN 50128 SIL4级安全认证。

PROSTACK的架构如图6所示,包括IP[2]、TCP、UDP[3]、ICMP[6]、TFTP[7]、SNMP及SNTP等通用网络协议,以及FSFB2、SACEM、RSSP1、RSSP2等多种安全通信协议。PROSTACK可用于安全计算机平台中安全消息、维护消息、软件镜像、时钟消息等各种数据的传输。通过虚拟IP技术建立内部子网接口,实现以太网、串口和CAN(控制器局域器)总线等构件之间消息的互联互通。

图6 PROSTACK架构图

PROSTACK通过对传输过程数据统计、故障数据检测、错误数据记录等技术方法,提高了传输过程的安全性与可控性;提供POSIX接口,提高代码开发及移植效率;安全通信协议采用序列号、时间戳、源和目的地标志符、消息鉴定安全码、CRC(循环冗余校验码)编码等防御措施以抵御传输系统中的相关威胁和风险。

3. 2 自检测技术

自检测技术(BIT)[1]是为了尽早地暴露单通道的故障而采取的一种技术。安全平台的自检测分为上电自检和在线自检。上电自检的检测内容主要包括检测系统是否为热重启、检测硬件是否存在故障、检测可执行文件在拷贝过程中是否被修改等,一旦检测不通过,系统立即导向安全侧;在线自检按照一定时间周期循环执行,检测内容主要包括检测CPU和内存是否发生故障、可执行文件是否被修改、通信通道(串口、CAN及GPIO)是否发生故障等,一旦检测不通过,系统立即导向安全侧。

CPU检测分为寄存器测试和指令测试,其中寄存器采用汇编程序,指令测试采用C语言程序。CPU寄存器测试方法为将一串RAM(随机存取存储器)中测试字写入寄存器,再从寄存器中将数据读出存入RAM,然后比较读写数据的一致性;指令测试采用输入一组高诊断覆盖率的检测数据,进行算术运算、逻辑运算、移位操作等指令运算,比较实际运算结果与预期结果的一致性。

内存检测对SDRAM(同步动态随机存储器)、SRAM(静态随机存储器)、FLASH等进行完整性测试,每次测试均要访问多个字节的数据,与安全相关的常量数据通常采用计算得到的CRC进行比较。测试结果需要进行双通道比较,如果失败或不一致,系统将导向安全侧。

3. 3 安全平台中间件可扩展接口设计

安全平台中间件可扩展接口如图7所示。其中,安全中间件需要提供统一的接口供平台调用,同时平台封装这些接口提供给应用使用。安全中间件的接口主要包括以下几种:

图7 安全平台中间件可扩展接口

1) 获取操作系统服务的接口(I_OS):获取ReWorks-Cert操作系统提供的信号量管理、内存管理、消息队列管理、任务管理、时间管理、事件标志管理、中断管理和钩子函数管理等服务。

2) 人机界面接口(I_HMI):访问板卡上的LED(发光二极管)灯、数码管等显示功能。

3) 以太网通信接口(I_Net):与外部的设备进行通信,传递安全数据、维护数据及时间数据等。

4) 串行总线接口(I_SPI):访问串行FLASH,获取配置数据,并写入事件日志等。

5) 并行总线接口(I_Parallel):读取电子戳与软件熔丝,同时读写配置数据。

6) CAN总线接口(I_CAN):通过CAN总线接口与其他模块交互信息。

7) 应用接口(I_API):开放接口与应用软件交互信息。

4 测试验证

根据EN 50128[8]、IEC 61508[9]等标准中关于安全苛求系统开发的相关要求,系统的功能、性能、RAMS(可靠性、可用性、可维修性、安全性)等需求应分配到软件或硬件中实现,是一个自上而下的过程。对应地,测试过程分成软硬件级、系统级的确认和验证,同样亦是一个自下而上的过程,如图8所示。

图8 系统级测试过程

针对安全平台的软件测试包括软件需求和软件架构,要求通过软件确认测试和集成测试来确保软件需求及软件模块的接口被正确实现。对于软件编码阶段,要求进行静态分析,主要来验证编码对于编码规则的符合性。对于每一个软件函数,根据EN 50128的要求,必须做到语句覆盖、分支覆盖和MC/DC(修订条件/判定覆盖)覆盖达到100%。

硬件测试和软件测试类似,区别是对于硬件板卡,其单元测试无明确的语句或者分支覆盖率要求,所要做的是功能覆盖的100%,同时要根据硬件设计的经验进行信号完整性、电源完整性、安规测试等性能和电气安全等测试。

为了验证ReWorks-Cert操作系统可以满足安全平台对实时操作系统的性能要求,需要对安全计算机平台的行为进行全系统的确认,确保每一条需求都被设计正确实现。

为了测试ReWorks-Cert操作系统的性能参数,将安全计算机平台分别运行于ReWorks-Cert操作系统和某国外主流实时操作系统 (简称RTOS)之上,两者硬件环境相同。通过统计一些基准性能测试参数(响应时间)进行比较,测试条件为:①编译器的编译优化选项为2级;②使能处理器指令缓存并关闭数据缓存;③所有操作系统使用的全局变量最后存放在处理器内部静态内存SRAM。

系统稳定运行2周,随机采样100次数据并取平均值,统计结果如图9所示。

图9 基准性能参数平均值比较

对试验结果进行分析,得到:

1) 对于单次协同调度,ReWorks-Cert操作系统较RTOS的执行时间快13.6%;

2) 对于单次抢占式调度,ReWorks-Cert操作系统比RTOS的执行时间快16.6%;

3) 对于单次中断处理(无抢占发生),ReWorks-Cert操作系统比RTOS的执行时间快4.8%;

4) 对于单次抢占式中断处理,ReWorks-Cert操作系统比RTOS的执行时间快30.1%;

5) 对于单次消息队列处理(考虑任务阻塞和带超时参数),ReWorks-Cert操作系统比RTOS的执行时间快9.4%;

6) 对于单次简单任务同步(信号量),ReWorks-Cert操作系统比RTOS的执行时间慢7.3%;

7) 对于单次(事件)标志处理(考虑任务阻塞和带超时参数),ReWorks-Cert操作系统比RTOS的执行时间快20%。

对于安全协议栈的测试,需要满足EN 50128标准中对SIL4软件功能、性能测试的方法的要求,采用边界值分析、等价类划分、错误猜测等测试技术。测试人员通过设计模拟器发送消息来完成测试,测试架构如图10所示。测试结果表明:安全计算机平台功能实现正确,并且满足EN 50128、IEC 61508等标准中关于安全苛求系统开发的相关要求。

图10 PROSTACK测试架构图

5 结语

本文以基于自主操作系统的安全计算机平台的开发为目标,突破轨道交通安全计算机平台在安全认证过程中面临的进口基础软件的知识产权限制,补齐轨道交通产业链在基础软件层面的短板,增强我国轨道交通“走出去”的核心竞争力。目前,基于自主操作系统的安全计算机平台已经通过第三方SIL4级安全认证,并将在实际轨道交通线路试点示范应用,并进一步形成适用于轨道交通行业的通用安全基础软件的安全接口、定义和规范。

猜你喜欢

中间件架构编码
基于FPGA的RNN硬件加速架构
基于SAR-SIFT和快速稀疏编码的合成孔径雷达图像配准
功能架构在电子电气架构开发中的应用和实践
《全元诗》未编码疑难字考辨十五则
子带编码在图像压缩编码中的应用
基于云服务的图书馆IT架构
Genome and healthcare
RFID中间件技术及其应用研究
基于Android 平台的OSGi 架构中间件的研究与应用
WebGIS架构下的地理信息系统构建研究