AUTOSAR基础软件的内在安全

集成不同安全等级的软件组件到一个ECU

该文章转载于AUTOSAR 基础软件的内在安全,由作者翻译Intrinsic Safety of AUTOSAR Basic Software而来,感谢翻译者。


新建立的汽车标准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所示。以下列出了各个安全模块的功能,根据ISO 26262的需求,这些模块用于实现按ASIL D等级整个系统的验证——包含重用现有的基础软件组件。德国质量专家TÜV已经预先认证这个解决方案到ISO 26262。

这里写图片描述
图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解决方案)中时,单从这点来看,也可以表明基础软件经过验证。

这个开发工作通过为使用不同级别的安全相关的软件组件提供“免受干扰”,能够避免在没有必要的情况下,必须将软件提高到更高的ASIL等级。这带来大量的成本优化。集成或链接符合ISO 26262 ASIL D标准开发的预认证的安全模块,创建了一个符合最高ASIL要求的整体软件平台。安全模块可以与软件应用程序和根据QM标准开发的AUTOSAR基础软件组件集成在一起。集成可以保证“免受干扰”的ASIL D安全模块,使不同安全相关等级的软件模块可以共存。这可以在开发与安全相关的模块方面节省大量成本。这也缩短了开发周期。

[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基础软件的概念和实施

  • Carsten Weich 工商管理硕士
    TTTech的汽车软件开发负责人。 他曾担任奥迪系列产品开发项目的负责人,以及根据IEC 61508和ISO 26262的安全相关项目。

猜你喜欢

转载自blog.csdn.net/helaisun/article/details/79677243