你了解汽车开发中将面临的问题吗?

浏览:711来源:本站时间:2021-10-14

近年来,汽车中使用的软件出现了惊人的增长,为汽车开发嵌入式软件的工程师面临更大的挑战。

为了实现车辆软件功能安全,需要遵循汽车安全开发标准。除功能安全外,车辆软件还需考虑信息安全(security)。最后,还需考虑软件模块的可重用性,以及如何确保软件具有满足应用要求的技术能力。

本文将介绍并讨论软件工程师在汽车软件开发中面临的这些问题。


01汽车软件类型

汽车软件包含许多不同类型的软件,实现不同的功能。我们基于软件对车辆的控制程度,对软件进行分类。包括:控制、信息娱乐软件,高级驾驶辅助软件(ADAS),自动驾驶软件及安全关键软件。

软件对车辆的控制力越大,风险越高,安全越重要。

图片

图1 软件复杂性和风险变化


02功能安全开发标准

ISO 26262

ISO 26262标准定义了汽车设备的功能安全,适用于所有汽车电子和电气安全相关系统的整个生命周期。

ISO 26262的第6部分规定了汽车应用软件开发的要求,定义了ASIL A/B/C/ D安全等级,通过对潜在危害执行风险分析,检查车辆运行场景的严重性、暴露度和可控性实现安全等级划分。

对通用软件组件(如 RTOS)的开发,由于软件的最终应用并不明确,该软件必须作为独立安全单元(SEooC)认证。设计此类软件时,将对其安全目标和所需的ASIL等级做出假设。这些安全目标必须在安全手册以及安装和集成说明中描述,使用此软件的开发人员需要确认软件开发期间定义的安全目标满足其项目要求。

ISO 26262标准中还期望使用软件运行时监视器来检测、指示和处理ASIL C和D安全等级的系统故障。为了完全满足该需求,需要额外的监控功能。一些RTOS供应商提供一个插件模块,提供任务监控功能,确保任务的调度顺序按预期进行,并且在预期的时间范围内完成。

编码标准

MISRA C 是一套MISRA开发的C编程语言开发指南,其目标是促进嵌入式系统,特别是用C语言编程的系统中的代码安全性、可移植性和可靠性,通过强制实施良好的编码实践,从而产生更安全、可预测的代码行为。


03信息安全

在现代联网汽车上,信息安全非常重要。

功能安全通过识别、分析风险并采取缓解措施,以将风险降低到可接受的等级。功能安全软件需要很长时间来开发和验证,确保稳健可靠,因此很少更新;而安全威胁在不断演变,攻击变得越来越复杂,这导致软件需定期更新以抵抗黑客攻击。

信息安全(Security)标准

ISO 26262第6部分仅规定了软件开发标准,不涉及信息安全,以下是一些安全指南和标准。

安全硬件扩展(SHE)是定义安全模块操作的安全标准。它允许在ECU中创建一个安全的区域,以有效地存储和管理安全密钥。

Cert C是软件工程协会 (SEI) 的软件编码标准,Cert C提供了规则和建议,它为那些开发需要信息安全的软件提供编码指南。

其它安全特性

汽车安全开发中,软件开发人员需要仔细考虑要使用的功能。

例如,系统是否使用安全启动,设备在启动时是否包含正确的软件?或者使用身份验证等功能确认正确的设备, 通过加密和解密算法来保持数据安全,以及公钥和私钥管理。信息安全通常通过软件组合来实现,硬件提供加速和隔离。

物理隔离

访问应仅限于允许的设备,软件应禁用所有未使用的端口和不需要的访问。隔离实现取决于选择的硬件。比如ARM提供了Trust Zone机制,Synopsys ARC提供了SecureShield技术,正确使用处理器MPU/MMU也可以实现良好的隔离。

供应链

对于安全系统中使用的第三方软件,供应链的长度是一个重要的考虑。软件组件中的每一行代码都需要验证和说明,因此供应链越短越好。


04软件重用

汽车软件非常复杂,为了简化集成,通过OSEK和 AUTOSAR,标准化软件架构并使用可兼容的软件。

OSEK

OSEK / VDX是一个开放标准,旨在为车辆中的各种电子控制单元 (ECU)提供标准软件结构。

OSEK / VDX 标准涵盖了车辆软件架构的各个方面,包括OSEK OS。OSEK 的一些元素是可扩展的,例如OSEK OS 定义了四个一致性类(BCC1、BCC2、 ECC1 和 ECC2)。这些类涵盖硬件和软件的不同功能,反映了不同应用程序和功能的性能要求,允许部分实现。

一些RTOS提供了可选的OSEK OS适配层,允许将其插入OSEK OS兼容系统中。

图片

图2 包含OSEK接口层的SAFERTOS


AUTOSAR

AUTOSAR(汽车开放系统架构)目标是为汽车电子控制单元 (ECU),不包括信息娱乐系统,建立一个开放和标准化的软件架构。AUTOSAR 为行业提供标准的软件开发基础,并促进软件组件的重用。

AUTOSAR 使用三层架构,包括基础软件、运行时环境和应用层。

AUTOSAR操作系统规范基于OSEK/VDX 标准。许多现代RTOS提供了OSEK OS API封装层,允许将其OS集成到AUTOSAR环境中。


05 软件结构思考

在汽车领域内有许多需考虑的软件因素,但不能忽视软件架构。

对于大多数系统来说,快速的软件启动时间是必不可少的,尽快让汽车尽快进入工作状态和安全状态。当汽车高速行驶时,事件发生得非常快,所以响应能力也非常重要。为了管理这些功能,大多数汽车架构都支持并行处理。因此,软件还需要支持核间通信和同步。

由于成本、空间等的限制,单个处理器内的汽车软件可能必须提供支持不同安全完整性级别的功能。为此,开发人员需要通过软件设计,确保不同安全完整性级别的软件不会相互干扰。

部分解决方案是使用处理器的内存保护单元 (MPU) 或内存管理单元 (MMU),从而特定的内存区域可以分配给相同SIL级别的软件。

可以通过RTOS来实现一定程度的空间分离,基于任务定义和操作MPU区域。每次上下文切换时,一个新任务被激活,MPU /MMU寄存器被重新配置。如果软件试图访问超出其允许范围的内存区域,则会触发异常。

图片

图3 内存保护单元应用

预认证软件模块

开发汽车软件既复杂又耗时,但有许多可用的解决方案。市场趋势是使用已有模块构建汽车软件。其中许多模块已经过ISO 26262的预认证。预认证的软件模块提供强大且可靠的软件,建议选择已经基于你的处理器和编译器组合设计和验证的预认证的软件。

SAFERTOS®是一个预认证的软件模块。SAFERTOS是WHIS为嵌入式处理器开发的经过安全认证的实时操作系统 (RTOS)。它专为功能安全的最高标准而设计,并通过了TÜV SÜD的IEC 61508 SIL 3 和 ISO 26262 ASIL D认证。SAFERTOS 还包含支持安全关键汽车软件的功能:

• 由TÜV SÜD提供的ISO 26262 ASIL D预认证;

•广泛的汽车处理器支持;

• 开机时间快,高响应性;

• 任务隔离;

• OSEK OS 适配层;


06结论

嵌入式工程师在汽车应用开发软件所面临的挑战很多,包括功能安全、信息安全、集成和管理不同安全级别的组合软件等问题。

使用预先认证的软件模块,允许开发人员以最小的风险快速将功能添加到他们的项目中,使汽车软件开发更容易。

SAFERTOS为汽车行业提供预认证软件模块及运行时监视器,满足ASIL C/D安全要求。


京ICP备:京ICP备05011254号-1 版权归北京麦克泰软件技术有限公司所有
北京麦克泰软件技术有限公司