车载智能计算平台作为智能汽车的安全关键系统,软件层面的安全性至关重要。由于车载智能计算平台功能丰富,应用场景复杂,对软件的实时性、安全性、可靠性要求极高,应通过技术和流程两个方面保障软件的功能安全。技术上确保软件层级的每个功能安全相关软件节点都有相应的故障监测和处理机制,流程上按照软件安全生命周期模型规范软件开发过程。基于参考阶段模型,为软件层面产品开发进行生命周期的剪裁。

软件开发参考阶段模型
01 软件安全要求
车载智能计算平台软件安全要求是对软件安全相关的功能和性能的具体要求,主要是通过技术安全要求在软件层面的分配得到,并通过继承或分配得到相应的ASIL等级。另外,在软件架构阶段执行的软件安全分析也可能会识别出额外的软件安全要求。采用专业的需求管理工具来实现需求的编写、评审、管理以及双向追溯性检查可大幅降低软件层面的系统性安全风险。

E-Gas典型系统组成及边界

E-Gas三层安全架(带锁步核)

三层架构Level2算法架构示例
软件开发遵循原则参考

当然,并不是说非三层架构设计软件无法实现功能安全开发或者产品无法符合功能安全要求。E-Gas三层架构能够很清晰地实现层级递进式的监控设计,尤其适用于功能软件复杂的产品。如果功能软件相对复杂,高ASIL等级的产品在导致软件开发的工作量大量增加的同时安全性也很难兼顾;当然,如果应用层软件相对简单(例如滤波算法、局部优化、状态机等函数),采用下表所列方式会更好。
非三层架构开发遵循原则参考

对于功能安全软件设计而言,软件架构设计一个重要的目标是使软件需求的实现过程以一种完整的、正确的同时尽可能简单、可理解和可验证的方式展现,从而在软件需求实现过程中,尽可能降低由于设计错误造成违反功能安全需求的可能性。功能安全要求软件架构的设计具备以下属性:可理解性,一致性,简单性,可验证,模块化,层次化,按层逐步细化、封装,低耦合性,可维护性。对于可理解性,ISO 26262中按照不同的ASIL等级规定了不同的软件架构设计的表示方式。
软件架构设计符号说明

软件模块之间的通信( 尤其是ECU 间的通信) 问题造成Cascading failure。时间和调度问题造成Cascading failure。
软件架构设计原则

ISO 26262对软件架构设计验证方法

03 软件单元设计与实现
ISO 26262软件单元设计和实现的设计原则

车载智能计算平台软件单元测试应根据测试范围,选用适当的测试环境。测试环境应适合完成测试目标,尽可能接近目标环境,如果不是在目标环境执行,应分析源代码与目标代码的差异、测试环境和目标环境之间的差异,以便在后续测试阶段的目标环境中,定义额外的测试。
软件单元验证方法

软件单元测试用例的得出方法

软件集成验证需要根据软件验证计划、接口规范、软件架构设计规范、软件验证规范等对软件架构中所描述的集成层次、接口、功能等进行持续测试,以验证其与设计的符合性。由于车载智能计算平台软件的复杂性,实时性、可靠性、安全性既是设计目标也是基础性能,集成测试设计阶段应对其功能、逻辑、性能、边界、接口进行详细分析。车载智能计算平台的软件集成验证参考下表,不仅需涵盖所有应用软件、功能软件、系统软件以及与硬件之间的接口,并且应涵盖软件单元之间的接口。测试用例在测试工作中至关重要,其输出需要考虑功能需求、性能需求、边界值、接口、逻辑关系等。
软件集成验证方法

软件集成测试用例的得出方法

车载智能计算平台嵌入式软件测试主要是基于软件安全要求的测试可参考下表,针对软件安全要求进行充分的故障注入测试,最终确保软件安全要求的正确实现。为了验证车载智能计算平台软件在目标环境下是否满足软件安全要求,应进行硬件在环测试、车辆电控系统和网络通信环境下的测试以及实车测试。硬件在环测试是将车载智能计算平台软件烧写到目标芯片中,在目标芯片的硬件异构平台环境下验证软件的安全要求。然后,将车载智能计算平台与部分或全部的车辆电子电气设备进行网络通信,在车辆电控系统和网络环境下验证软件的安全要求。最后,将车载智能计算平台安装到实际车辆中,进行软件安全要求的验证与确认。
嵌入式软件的测试方法

嵌入式软件测试用例的得出方法


Polyspace软件截图
b、Tessy

Tessy 软件截图
c、Helix QAC
Helix QAC是静态代码分析工具,依据C和C++编码规则自动扫描代码对规则的违背。在开发过程的早期就可以用它来检测缺陷,因为此时修改代码是最方便也最经济的。Helix QAC自动化强制实施代码编程标准,比如,MISRA保证代码的合规性。Helix QAC识别必须修改的缺陷,提供详细的指导,帮助开发人员修改问题。这是不需要运行程序的。开发人员既然获得了即时的上下文反馈,他们将因此从错误中获得学习,下一次编写新的代码(或者评审代码)时,能力将得到提升。Helix QAC自动审查代码,确保它们符合用户选择的编码标准。合规性报告可视化地提醒用户哪些代码需要多加留意。Helix QAC支持多种C和C++编码标准,提供相应的合规性模块,也支持标准的客户化定制。

Helix QAC软件截图
已完成
数据加载中