苏罗辉,牛 萌,刘 坤
(1.飞行器控制一体化技术国防科技重点实验室,陕西西安710065;2.中航工业西安飞行自动控制研究所,陕西西安710065)
计算机系统按操作被调度执行的方式分为以下2种方式,即事件触发方式和时间触发方式。所谓“事件触发”是指一个系统的某项任务 (数据传输、进程调用等)可以在任何可能的时刻触发执行,触发的条件完全取决于控制器“认为”此项任务应该得到执行,触发的时刻点可能是随机的;而“时间触发”系统行为与之相反,系统任务的触发执行完全在系统设计阶段已经预定义好的时刻进行[1]。
事件触发系统的弊端是将宝贵的时间用来解决资源共享冲突或者恢复操作,这样增加了系统的复杂性,导致庞大的代码结构。作为飞行安全关键系统,这样的代码长度及复杂性难于进行测试验证,势必会带来在安全性和可靠性上的损失。而时间触发方式的出现为这些问题提供很好的解决方法。本文以时间触发协议的特点为基础,主要研究了以ARINC 659时间触发串行背板数据总线为基础的计算机系统的体系架构。
事件触发和时间触发各自具有最佳适用领域,事件触发系统的特点是具有较强的灵活性、适应性较强,响应也较为快速,但其主要的缺点在于以下几个方面:
不确定性:当多个外部事件同时发生时,需要通过仲裁等方式确定系统任务的执行顺行,因此在某个时间点上其可靠性和实时性设计就难以保证,由此引申出的缺点是在系统开发和测试的过程中很难充分验证实际系统运行当中的各种可能情况的组合,可能出现由于资源竞争等因为验证不完备带来的系统崩溃的情况发生。
容易故障蔓延:事件触发总线一般都属于有主类系统,总线上某个节点的失效 (例如,持续占用总线或地址错误造成误写入)很容易造成整个系统的失效。
不利于系统资源重构:事件触发系统一般都是有主的系统,即如果总线的主控器失效,挂接在总线上的所有资源都不可用。
事件触发系统以上的种种缺点有时在要求有极高安全等级的系统中是不能被接受的。而时间触发系统的特点是具有严格的系统行为确定性与稳定性,由此带来的优点在于:
确定性:时间触发系统在设计阶段就将总线资源使用与任务进程调度计划制定完毕,每个节点都在系统预定义的时间段使用资源,除此之外没有第二种可能情况,使得系统设计与验证变得简单与充分。
健壮的分时分区特征:在总线节点与总线间具有可靠的FCR(故障隔离边界),系统中某个节点的失效从时间上和空间上都极难影响到系统中的其它节点正常运行。
利于系统资源重构:时间触发系统中每个功能节点都作为资源节点的方式挂接在时间触发总线上,并且时间触发总线的运行与维护具有无主的特征,因此任何一个功能节点的失效都不会对总线造成影响,并且通过余度配置,正常的功能节点可以较为容易地顶替失效节点的功能。
由于时间触发系统以上种种优点,使它非常适合应用于要求具有极高安全等级的系统。
安全关键系统普遍采用串行和时间触发相结合的方式,串行时间触发总线提供了总线上各节点间容错的时间同步和数据传输等功能。典型的串行时间触发总线包括ARINC-659(SAFE-Bus)[2]、TTP[3]和 FlexRay[4]等。下面对其分别进行简要介绍:
ARINC-659:由Honeywell提出,并成功应用于波音777的AIMS(综合航电管理系统),波音717N、MD-10、KC-130等飞机的VIA(通用集成航电系统)和NASA下一代空间探索的Highly Reliable Layered Systems系统[5]等多个领域中。
TTP/C:由奥地利TT-Tech公司提出技术标准,其最初主要是应用于汽车控制领域,近年来也被航空领域的某些项目所采用。
FlexRay:近年来刚出现的低成本时间触发解决方案,主要应用于汽车领域。
有关这几种时间触发总线之间的比较,已经有多个研究机构对此做过详细的分析对比[6]。在分析比较ARINC-659、TTP和FlexRay等时间触发总线各方面的特征后,其认为ARINC-659总线是最为成熟的时间触发总线,对影响安全性的方面做了最少的妥协;从安全性和容错性角度考虑,其认为ARINC-659总线是最为可靠的。
ARINC-659总线的结构如图1所示,其特点是:
(1)四余度串行总线配置;
(2)60Mbps高数据带宽;
(3)时间触发驱动的总线传输行为;
(4)鲁棒的分时分区特性;
(5)总线二次故障工作三次故障检测;
(6)完善的故障封锁机制、节点间完全的故障隔离。
图1 ARINC-659总线结构框架
同传统的并行背板总线相比,ARINC-659串行背板总线,不但提供了高数据传输带宽,还大幅提高系统的可靠性和安全性要求,简化了总线监控方式。
为了最大化减小单点故障带来对整个总线的影响,特别是为了防止BIU(总线接口单元)异常使其故障蔓延到整个总线从而导致的总线上其余节点无法正常工作,一个BIU控制器中包含了2个完全相同的独立封装的BIU芯片,分别标识为BIUx和BIUy,BIUx和BIUy各自拥有独立的晶振和存储表程序的EEPROM,2个BIU在工作时处于互监控的工作模式,并控制对方的发送使能,一旦发现异常,则会切断对方的输出,因此2个BIU互监控这种方式构成了背板上每个总线节点和背板之间的严格的故障封锁边界(fault containment region),保证总线节点内部的故障不会蔓延到整个背板上。
随着计算机技术的发展,航空电子系统结构发生了极大的变革,IMA(综合模块化航空电子系统)被广泛的应用于飞机控制系统中[7,8]。采用IMA的系统具有高可靠性、维修性,减小了重量和体积,降低了系统的维修和全寿命周期费用等。
ARINC-659总线规范是为综合的模块化航空电子设备、机柜内现场可更换模块间数字数据信息传输制订的规范标准,是针对外场可更换模块 (line replacemodule,LRM)的要求制定的规范,描述了综合的模块化航空电子设备背板总线所需的电特性和总线特性,规范详细规定了总线的协议、时序、速率和物理特性。
ARINC-659总线规范应用于机柜内部通讯,补充了ARINC-429、ARINC-629,ARINC-636,ARINC-646等机柜外部部件间通讯的协议。
综合的模块化航空电子设备的背板总线必须具有很高的可靠性和故障容错性,故障容错性指提供需要功能的能力和发生一个或多个故障后通过某种方式继续工作的能力。ARINC-659总线通过最小的逻辑和最小的总线数来提高可靠性,通过极高的故障检测覆盖率和故障冗余来提高故障容错性。ARINC-659总线是一种高度完备的背板总线,具有以下几个主要特点:
(1)总线具有故障容忍和健壮的时间 (总线信息传输的时间)与空间 (存储空间)分区功能;
(2)总线是串行背板总线,从而减少了硬件资源,简化了使用和总线监控,较大的提高了可靠性。它支持双余度,具有自监控能力,通过交叉检测进一步提高了数据的可靠性;
(3)总线是半双工的串行数据总线,是对-对配置的总线,即A、B总线,每对总线含有x和y这2套总线,共有Ax、Ay、Bx、By这4套总线,每套总线含有一个独立的时钟和2条数据线,同时传输2位数据,因此完整的总线包含12条信号线。总线主要是通过选举输入的方法进行故障检测的,具有故障冗余和故障隔离的能力。余度总线支持延期维护、扩展维护、告警期功能;
(4)总线采用同步串行方式,时钟速率30MHz,数据线同时传输2位。总线使用BTL总线驱动器,BTL驱动器是集电极开路器件,具有线或能力。
ARINC-659时间触发协议保证了系统的确定性,极大提高了系统的稳定性、可测试性和功能验证。基于ARINC-659时间触发协议的系统非常适合对安全性有极严格要求的工程项目,例如:航空与航天领域。
实时分布式高可靠系统的最适合的方式是使用支持容错的特殊硬件和在硬件之上实现的操作系统。时间触发架构 (time-triggered architecture,TTA)也不例外,时间触发架构等于时间触发总线加上时间触发操作系统。
在每一个节点中,主计算机和通信控制器是完全独立的自主运行 (有时并不一定),时间触发总线仅描述了时间触发的通信方式,并没有对主机有任何约束。所以,主机可以在任何时间取得CNI的数据,也可以在任何时间处理任务,并将数据在任何时间 (需要保持互斥机制)放在CNI中。时间触发架构 (TTA)将时间触发方式从通信层次扩展到了主机应用上。在TTA中,任务的执行由时间触发操作系统管理,每个节点中另一个调度 (任务描述列表TADL)控制任务的执行。消息描述列表 (MEDL)是全局的,而TADL是节点级的。也就是说,消息被接收后,使用该消息的任务开始运行,任务完成后,输出结果,如图2所示。
时间触发架构具有以下特点:
(1)具有全局时钟,整个分布式系统可以构建以全局时钟为基础的应用调度框架;
(2)完全分布式,应用任务可以灵活地分布于任何一个计算单元之中,应用分配的粒度可以更小;应用任务的分配可以做到对用户的完全透明。用户如果没有看到配置表,可能并不知道应用任务在哪个节点上运行;
(3)支持任意余度配置、支持异构的硬件和软件,任务间通信或者不同节点之间的通信均是时间触发的消息;
(4)任务的启动都是采用时间激活,每个任务都有一定的任务运行时间,任务从来不等待;
(5)基于分布式,可以由多个 (节点)合作并行完成一个复杂应用,可有效降低节点处理能力需求。
以下是一个简单的时间触发结构图,如图3所示。
时间触发系统是一个严格的硬实时系统,它要求,系统运行过程严格的按照预先设计的时间表运行,任何违背时间域出现的值都认为是错误的,因而时间触发系统是实现高可靠计算机控制系统一个很好的选择。
图2 时间触发架构下的收发时序
图3 时间触发架构
随着可靠性的提高,目前国际上对一些安全关键的电传系统,都在研究采用时间触发的架构来设计实现,从而保证在值域和时域都是正确。同时对操作系统也提出了更高的可靠性需求。高可靠操作系统的需求包括以下几点:
(1)确保任务的时间约束;
(2)支持高可靠应用领域的需要 (支持错误侦测、死线监视等);
(3)运行时的计算最小化,以便更安全;
(4)提供一个简单的可预测的环境。
时间触发操作系统确保分布式系统的节点以同步的方式来执行其活动,而且这些活动必须在分配的时间窗口内完成。为了满足这些需求,操作系统提供同步时基,并且增加对每个程序进行执行时间上的限制。系统的行为在设计阶段就已经确定,在设计阶段就可以对系统进行验证。支持2层的容错机制,底层 (节点层次)负责错误诊断和错误的约束,并且阻止错误的蔓延。顶层 (系统层),不需要关心错误的数据,仅仅提供充足的冗余机制来容忍系统失效的部件。顶层的主要功能是处理冗余数据,并且在系统上一个节点失效的情况下重构系统。为了保证增加可靠性和可预测性,内核保持尽可能的小。
如果要更有效地使用时间触发总线,就必须改变传统的基于事件触发的软件设计模型到基于时间触发的设计模式。在欧洲的汽车电子组织已经发布了时间触发操作系统规范 OSEKTime1.0[9]。
时间触发操作系统是一个微内核的操作系统,该系统的开发思想主要体现在以下几个方面:
(1)可预测 (确定性,即是在已定义的峰值负载和故障条件下有预先确定的行为);
(2)清晰,模块化的结构成为验证的基础;
(3)可靠性 (采用故障检测与容错处理,能够可靠的运行);
(4)支持模块化的开发和没有任何负效应的综合 (组合性);
(5)兼容 OSEK/VDX[10]。
时间触发操作系统支持静态调度,能够为实时应用提供所有的基本服务,例如中断处理,调度,系统时间和时钟同步,本地消息处理,以及故障侦测机制。时间触发操作系统的主要功能包括:任务管理 (任务状态管理、任务切换、调度策略、死线监控)、中断管理、系统时间同步和启动服务、处理器内部消息处理和错误处理。
一个典型的时间触发计算机系统采用ARINC-659串行背板总线为核心,各功能板以资源节点的方式挂接在总线上。ARINC-659总线以“无主”的方式运行,即每个节点都参与到总线的运行与维护中,但总线的运行与维护又不唯一依赖于任何单一的总线节点,这种结构避免了传统余度计算机结构中各通道以处理器为核心,从而带来系统余度降级的速度过快的缺点。挂接在总线上的每个功能板的总线接口单元 (BIU)均依据在设计阶段就已确定的某个特定的总线时间片进行总线数据的发送或接收操作。
ARINC-659总线中“时间触发”的含义为在确定的时间开始执行确定的任务,并在确定的时间段内完成该任务,其中不但包括总线在规定的时间传输指定的数据,也包括各个功能模块在规定的时间启动指定的任务。通过时间触发机制,保证了系统运行的确定性,降低了计算机的传输延迟并且减少了传输抖动,提高了系统运行的可靠性。ARINC-659总线可以通过由每个BIU在指定的时刻发出特定中断信号的方式触发功能节点对应任务的执行,依靠此机制可以使得系统级任务的调度执行与ARINC-659总线的运行保持同步,为全系统实现时间触发提供了可能。ARINC-659总线的时间规划与总线活动之间的关系如图4所示。
图4 ARINC-659时间规划原理
通过引入ARINC-659串行背板总线技术,实现了系统基于功能模块级的资源管理和资源重构,使得余度管理的颗粒度变细、重构能力增强。与传统以事件触发系统 (处理器为核心)采用的余度管理策略相比较,克服了其以单个通道为余度管理基本单位的缺点,大大降低了余度降级的速度,使得在同等余度等级配置下系统的任务可靠性和安全可靠性显著提高。传统计算机可靠模型和串行背板的计算机可靠模型分别如图5、图6所示。
时间触发的计算机系统以网络化总线为核心,而不以CPU为核心,各种类型的处理器仅以运算资源节点的方式挂接总线,计算机的各I/O功能模块均为智能节点,含有微控制器,对I/O功能板上的信号进行调理、监控和管理,全部以数字量的方式通过背板总线进行数据传输,系统综合构成模块化、多余度、高可靠的计算机。
图5 传统计算机可靠性模型
图6 串行背板计算机可靠性模型
其系统的主要特点:
(1)时间触发协议保证了系统的确定性、稳定性、可测试性和功能验证,构成高可靠的数据通讯总线;
(2)功能模块 (LRM)构成系统余度管理和资源管理的单元,余度降级缓慢,充分利用系统资源;
(3)智能节点具有完备的自检测能力;
(4)支持系统全寿命周期内的节点维护升级,而不影响系统的结构。
以下是一种基于ARINC-659总线的计算机系统方案,如图7所示。
图7 基于ARINC-659总线的串行背板计算机系统
大量研究和工程实践表明:对高可靠性系统而言,时间触发在系统的确定性、容错及故障隔离能力、设计验证的难易程度上都比之前的方案有更大优势。
采用时间触发架构的计算机系统已经成为设计具有高安全等级要求系统的发展趋势,例如航空航天和汽车领域的全权限系统。
由于确定性和良好的分时分区特征,基于时间触发架构的系统方便将不同供应商或者团队提供的子系统直接进行综合,从而大大简化了集成验证的工作量。
[1]GUO Lijuan,LIU Shuangyu,ZHANG Ji.Architecture of a timetriggered real-time system with high-reliability[J].Computer Engineering,2006,32(4):272-274(in Chinese).[郭丽娟,刘双与,张激.基于时间触发的高可靠性实时系统架构[J].计算机工程,2006,32(4):272-274.]
[2]Arinc.Arinc specification 659 backplane data bus[S].1993.
[3]SAE Aerospace.TTP communication protocol[S].2011.
[4]FlexRay Consortium.FlexRay communications system protocol specification(Version 2.1 Revision A)[S].2005.
[5]Black R,Fletcher M.Nextgeneration space avionics:A highly reliable layered system implementation[J].IEEE AESSystems Magazine,2005,20(12):9-14.
[6]NASA.Comparison of communication architectures for spacecraft modular avionics systems[R].USA:NASA 2006.
[7]Ramaker R,Krug W,Phebus W.Application of a civil integrated modular architecture to military transport aircraft[C]//The 26th Digital Avionics Systems Conference,2007.
[8]ZHANG Ximin,WEI Ting.Development of ARINC659 fault-tolerant data bus testand verification system[J].Journal of Xidian University,2011,38(6):140-145(in Chinese).[张喜民,魏婷.ARINC659容错数据总线测试验证系统研制[J].西安电子科技大学学报,2011,38(6):140-145.]
[9]XIE Haofei,CHEN Jiajia,SHU Qiang.Improvement and implementation of coexistencemodel based on OSEKTIME[J].Journal of Chongqing University of Posts and Telecommunications(Natural Science Edition),2009,21(5):658-661(in Chinese).[谢昊飞,陈家佳,舒强.基于OSEKTime的共存模型的改进与实现[J].重庆邮电大学学报 (自然科学版),2009,21(5):658-661.]
[10]ZHANG Liangfei,LIYinguo.Design of embedded real-time operating system AutoOSEK [J].Computer Engineering,2007,33(16):53-55(in Chinese).[章亮飞,李银国.嵌入式实时操作系统AutoOSEK的设计[J].计算机工程,2007,33(16):53-55.]