AUTOSAR基础软件的内在安全
集成不同安全等级的软件组件到一个ECU
新近建立的汽车标准ISO 26262定义了开发安全相关的ECU软件的过程。对于各个的软件组件来说,都需要具有高等级的内在安全性,来确保得到的系统级的安全目标能符合标准。这对于出错的情况下,防止发生潜在的危险情况,也是必要的。
在开发与安全相关的ECU时,主要焦点的是新的定制功能的安全性。另一个也必须克服的挑战是:旧的需要沿用的“经过检验而可靠的”功能,必须合并到“服务功能”(如诊断或引导程序)和关键核心组件,同时必须符合ISO 26262的所有功能安全要求。这需要评估新的和现有功能的潜在风险,并按照该标准进行实现。对潜在风险将被按汽车安全完整性等级(ASIL:Automotive Safety Integrity Level)来进行分类。
当各种安全等级被分配到车辆功能时,就得到了从QM(“Quality Managed”,无安全相关性)到ASIL D(最大安全相关性)的广泛分布。被集成的具有不同安全相关等级的功能,按该标准要求,必须保证“免受干扰(freedom from interference)”[1]。沿用的基于QM过程开发的部件和软件,不得干扰安全相关功能。因此,将不同的ASIL等级的功能与进行结合,可能需要成本高昂的开发,原因是经过验证的功能需要修改。在考虑到开发周期的狭窄时间窗口和许多子组件的紧密相互作用,就会发现,这往往是不可能实现的。
为了达成对该标准的需求的精简实现,比较理想的是,模块化的软件平台;它必须允许不同生产商和不同的安全等级(从QM到ASIL D)的软件功能集成到单个ECU上。下面将介绍这样的实现。对于客户来说,该平台能够以未经修改的形式,重新使用经过验证的非安全相关软件,同时保持最高级别的安全要求。
将来自不同制造商和混合的ASIL等级的软件功能集成到单个ECU上
ISO 26262对于混合的关键系统部件的集成,其核心需求是安全相关软件不得受到影响或干扰。“免受干扰”的概念由三个子要求组成:- 安全相关功能的内存不会被意外修改,例如,它不会被“错误的指针访问”所破坏。
- 安全相关功能总是具有指定的执行时间,例如,它不会被错误地中断、启动得太迟等等。
- 安全相关功能接收或发送的数据不受影响,例如,它不会被延迟、阻塞、修改等等。
接下来描述的一种策略,允许在一个ECU上共存安全相关和非安全相关的软件模块,例如安全相关的逆变器监控单元和非安全相关的诊断模块。这个策略的独立响应确保了满足上述的三个要求。
标准不一定要求现存的软件(例如AUTOSAR基础软件)必须重新开发以保证“免受干扰”,只要安全相关软件没有受到负面影响或干扰就可以。尽管如此,为了整个系统的安全,必须始终保证不受所有软件组件之间的干扰(达到ASIL D级)的限制。
图1:MICROSARE安全
针对内存违规的防护
针对未经授权访问安全相关软件组件的内存区域的防护,是由支持内存保护机制的操作系统来保证,这里是指可扩展性等级3或4(AUTOSAR OS SC3 / SC4)的MICROSAR操作系统。在这种情况下,内存保护单元(MPU:Memory Protection Unit)实现了内存保护机制; 该解决方案假定使用合适的微处理器。
MICROSAR操作系统中,这个部分的软件被称为安全上下文(SafeContext),控制了软件组件在任务切换和中断的期间的隔离。防止了一个软件组件在未经许可的情况下,写入另一个软件组件的内存。安全上下文被开发为ASIL D等级,因此被授权在运行期间,重新配置受MPU保护的各种任务和中断的内存范围。这种安排也保证了在保存和恢复上下文数据(包括MPU配置)方面,与ASIL D的一致性。
AUTOSAR中定义的操作系统应用程序(OS Application)的概念,被用于配置操作系统。这涉及对操作系统对象(如任务和中断)进行逻辑分组,并将其对应到MPU配置中。根据QM过程开发的基础软件模块被合并到一个单独的操作系统应用程序中,并与ASIL等级的软件隔离。这也避免了ASIL软件的内存被基础软件改写。
针对运行时干扰的防护
安全看门狗管理器(SWdgM:Safe Watchdog Manager)是负责时序和程序流程监控的安全机制(图2)。安全相关的功能被监控,以确保功能是按正确的顺序流程执行。在所有相关的软件组件中的检查点(Checkpoints)定期向安全看门狗管理器报告程序流程。这使得对所有类型的运行时干扰,都可以可靠的检测到。如果一个应用程序、中断或功能没有被及时激活,安全看门狗管理器会检测到这一点,并启动错误处理。程序流是否随着时间的推移,按正确顺序执行也被监视着。安全看门狗管理器也使用独立的硬件看门狗,作为最后的手段,可以在发生错误时将ECU重置为安全状态。如果安全看门狗管理器自身没有被正确激活,那么将不会对独立的安全看门狗进行喂狗,并且在这种情况下也会可靠的启动错误处理。图2:MICROSAR安全看门狗管理器
针对输入/输出数据的损坏的防护
E2E库(E2ELib:End-To-End Library)保护着发送和接收方向上的安全相关的通信(图3)。在这里,数据通过校验和进行保护,可以检测到任何对数据内容的损坏。使用消息计数器可以检测不正确的消息序列,消息失败或不希望的重复。图3:SafeCOM架构
总结
这里介绍的所有三个安全模块在功能上相互补充,并且一起实现了“免受干扰”。它们满足ISO26262的最高要求,也可用于ASIL D的ECU。当它们被集成到MICROSAR(Vector的AUTOSAR解决方案)中时,单从这点来看,也可以表明基础软件经过验证。
[1] ISO/DIS 26262: Road vehicles – Functional safety, Part 1-10.
International Organization for Standardization, 2009.
http://www.iso.org/
本文是对在德国发行的“HANSER automotive, 3-4/ 2012”里面刊登的文章内容的英文翻译。
作者:
Matthias Krause 自然科学博士
在Vector的嵌入式软件产品管理方面工作,负责与安全相关的AUTOSAR基础软件的概念和实施。
TTTech的汽车软件开发负责人。 他曾担任奥迪系列产品开发项目的负责人,以及根据IEC 61508和ISO 26262的安全相关项目。