技术文章和新闻稿

如何使用Simulin万博1manbetxk for ISO 26262项目

作者:汤姆erkkinen,Mathworks


用于制作安全相关的传统和自主车辆的汽车工程师正在寻找有效的方法来实现ISO 26262 [1],乘用车开发功能安全标准的过程严格。

随着所有媒体关注自动车辆,没有缺乏建议。但是,此建议经常侧重于最新的编码方法或错误绘制工具。随着行业专家长期认识到的,安全更多地有关获得系统及其要求,而不是关于软件的要求以及它是如何编码的[2]。

以连续和离散时间仿真为骨干,利用Simulink进行基于模型的设计万博1manbetx®在转到证明场所或执行舰队测试之前,我们可以在很多驾驶条件和故障方案下设计和测试您的完整系统。它还支持ISO 万博1manbetx26262指定的进程活动,包括刀具资格。IEC认证套件详细介绍了此支持,并提供国际证书颁发机构TÜVSüd的工万博1manbetx具证书和报告。

本文介绍了TÜV SÜD批准的在ISO 26262项目中使用Simulink的工作流。万博1manbetx它介绍了ISO 26262和基于模型的设计,然后涵盖了以下任务:

  • 需求开发
  • 设计建模
  • 代码生成
  • 设计验证
  • 代码验证
  • 工具资格

ISO 26262和基于模型的设计

ISO 26262包括手动设计和代码的指导,以及基于模型的设计。它还承认使用基于模型的设计的一些好处[3]:

模型的无缝利用有助于高度一致和有效的发展。

该标准提到了数学建模的“广泛使用”,并指出建模工具在软件开发中使用“半正式的图形方法”。它指出,建模不仅能够捕获要实现的功能(嵌入式软件),而且能够模拟真实的物理系统(车辆模型和环境模型),从而生成完整的系统模型:

通过这种方式,甚至可以以可接受的计算速度,以高度详细的细节建模高度复杂的汽车系统,以模拟接近现实的行为。在开发过程中,车辆/环境模型逐渐被真实系统及其真实环境所取代,而功能模型可以通过代码生成作为嵌入式软件在控制单元上实现的蓝图。[3]

图1显示了典型的Simulink闭环系统模型。万博1manbetx它由控制器和工厂组成,以及信号处理器。在ISO 26262中,系统设计规范是对软件开发的输入,但它远远超过它,因为安全基本上是一个系统问题[2]。

图1. Simulink万博1manbetx系统设计模型。

然后,您的系统设计将详细阐述,直到它成为生成生产代码的充分细节的软件蓝图。ISO 26262将此模型精选过程描述为“模型演进”[2]:

实际上,通过设计模型从早期规范模型到实现模型的功能模型的演变,最后将其自动转换成代码(模型演进)。

ISO 26262建议基于汽车安全完整性水平(ASILS)的各种活动的方法。您使用此指南根据您的用例,建立适当的工作流程。图2给出了ISO 26262过程的概述。固体箭头显示开发活动,而虚线箭头表示验证和验证活动。ISO 26262中提到的“模型演进”显示为具有椭圆(...)。

图2. ISO 26262使用Simulink的软件开发和验证流程。万博1manbetx

要求开发

您可以通过创作功能和安全要求开始与安全相关的开发过程。ISO 26262建议您使用“软件架构设计与软件安全要求之间的双向可追溯性来验证软件架构设计。为此,您可以使用Simulink Requirection万博1manbetx™来构建和跟踪要求的模型,测试和代码。万博1manbetxSimulink要求支持万博1manbetx其他工具的双向跟踪,包括Microsoft®®,微软Excel.®和IBM®合理的®®。在Simulink要求内监视和管理要求的实现和验证状态。万博1manbetx要求链接可以出现在生成的代码中(图3)。

图3。Simulink中的需求规范。万博1manbetx

设计建模

如“ISO 26262和基于模型为基础的设计”部分所述,ISO 26262描述了从高级可执行规范的功能模型的演变,以便为生产代码生成提供详细的设计。典型的修改和改进包括:

  • 使用Simulink Control Design™离散化工具将来自连续时间(S域)的块转换为离散时间(Z域)万博1manbetx
  • 使用固定点设计器™将数据从双精度转换为单精度或固定点
  • 添加诊断,模式逻辑,状态机和使用状态流调度®

对于ASIL B到D, ISO 26262高度推荐使用建模指南,为此,您可以使用Simulink中提供的MAAB风格指南[4]和ISO 26262的高完整性指南。万博1manbetx万博1manbetxSimulink Check™自动检查两个指南。它可以在编辑期间标记问题,例如插入不符合要求的块。你也可以包括你自己的指导方针和检查。

代码生成

ISO 26262指出:“软件单元的实现包括生成源代码和转换为目标代码。”要实现这一点,您可以使用嵌入式编码器®从Simulink模型生成C、c++和AUTOSAR代码。万博1manbetx该代码符合MISRA C®:2012自动编码指南[5]。ISO 26262注意到基于模型的设计和手部代码的代码准则可能有所不同,并列出MISRA®举个例子。

IEC认证套件为C,C ++和AutoSAR提供了对嵌入式编码器(包括ASIL A-D)的工具资格支万博1manbetx持。其TÜVSÜD认证报告称:

嵌入式编码器满足ISO 26262关于工具支持和自动化的要求。万博1manbetx

嵌入式编码器通常在以下三种用例之一中应用:

  1. 为用于生产代码生成的模型生成C代码
  2. 为用于生产代码生成的模型生成AUTOSAR应用软件组件的C代码和描述文件
  3. 生成用于生产代码生成的模型的C ++代码

嵌入式编码器提供优化内存和速度代码的选项。此外,您还可以生成特定于处理器的优化,从而利用SIMD等硬件加速器®对于ARM®和英特尔®。您可以使用模型 - 代码处理器in-Loop(PIL)测试,验证优化代码是否与规定的公差内的仿真结果匹配,如ISO 26262中所述。

可执行的对象代码由生成的源代码使用您的编译器和链接器生成。IEC认证套件中的工作流程允许编码器,编译器和处理器优化,这对于批量生产ECU至关重要,只要使用PIL测试来验证可执行的对象代码。

设计验证

ISO 26262建议许多用于验证软件设计和实现的静态和动态方法,包括单位和集成级别活动。对于基于模型的设计,它指出“根据软件开发过程,测试对象可以是从该模型或模型本身导出的代码。”

万博1manbetxSimulink Test™为Simulink中的ISO 26262验证和验证活动提供了一个框架。您可以将其用于创作,管理和执行基于模拟的系统的系统,用于模型以及从模型生成的代码。图4显示了示例测试序列和评估块。

图4.模拟测试序列和万博1manbetx用于建模和创作复杂测试方案的评估块。

IEC认证套件(对于ISO 26262)中的TÜV南部申请阐明了Simulink测试在自动化验证和验证方面的作用:万博1manbetx

[万博1manbetxSimulink Test]允许为Simulink模型和生成的代码自动化核心验证和验证活动。以下用例反映了根据功能安全标准ISO 26262的软件开发过程所需的活动:

  • Simulink模型的开发和执行测试万博1manbetx
  • 开发和执行模型和代码之间的背靠背测试
  • 测试结果评估
  • 生成测试报告
  • 识别要求和测试案例之间的可追溯性

ISO 26262建议采用结构覆盖率分析来确定测试完整性并确定意外的功能。它列出了三种增加严格的方法,最后两个强烈推荐用于ASIL-D。

  • 声明覆盖范围
  • 分支覆盖范围
  • MC / DC覆盖范围

标准说明为基于模型的设计,“可以使用类似的结构覆盖度量来在模型水平上进行结构覆盖的分析。”它继续说明,如果结构覆盖率不足,附加的测试用例应该被指定或者提供一个基本原理。

万博1manbetxSimulink Coverage™为模型和生成的代码提供了结构覆盖范围,并且很容易启用使用Simulink测试的测试执行。如果您的模型覆盖率不足,您可以使用Simulink Design Verifier™自动生成其他测试用例万博1manbetx以实现所需的覆盖范围,包括MC / DC。万博1manbetxSimulink检查还重新参考模型,以降低复杂性。它包括指标仪表板,用于评估项目质量和满足ISO 26262的要求“强制执行低复杂性和限制软件组件和接口的大小”(图5)。

图5.指标仪表板显示模型指南合规性。

IEC认证试剂盒提供刀具资格支持,具有TÜV南德所证书和报告,用于Simulink Check,Si万博1manbetxmulink Coverage(包括模型和代码覆盖),Simulink设计验证程序和Simulink测试万博1manbetx。

代码验证

ISO 26262提供了几个验证软件设计和实现的选项。IEC Certification Kit中描述的一种方法允许进行有限的跟踪审查,以检测生成代码中的非预期功能,如未跟踪到块或信号的代码。为此,试剂盒自动生成跟踪矩阵。或者,您可以在软件在循环(SIL)测试期间使用Simulink coverage比较模型覆盖率和代码覆盖率,或者您可以使用Simulink万博1manbetx code Inspector™。

最后,您可以使用PolySpace Bug Finder™检查Misra符合性。如果您的项目包括生成和手工编码软件的混合,则使用Misra检查和代码覆盖率分析特别有用。对于添加的Rigor,您可以使用PolySpace Code Prover™来证明缺少运行时误差,例如逐个零。

IEC认证套件为PolySpace提供了TÜV南德所证书和报告的工具资格支持万博1manbetx®s manbetx 845产品。

编译和生成可执行代码后,可以使用PIL测试重用在目标处理器上执行的代码上的模型测试(图6)。

图6.嵌入式处理器的示例PIL。

ISO 26262强烈建议对asilc和d进行背对背测试。它指出了在具有代表性的目标硬件环境中测试的重要性,并强调需要意识到测试和硬件环境之间的差异:

例如,由于数据字的不同比特宽度和处理器的地址字,因此可能在源代码或目标环境之间产生测试环境和目标环境之间的差异。

但随着每个计算机科学家应该知道[6],有很多潜在的平台差异源,特别是对于浮点数据。有些人开始作为次要但积累和生长,特别是在反馈控制系统中。因此,ISO 26262列出了用于背对背测试的各种循环方法:

软件单元测试可以在不同的环境中执行,例如:

-Model-In-循环测试;
-Software-In-循环测试;
-Processor-in-in-out-in-in-in-in-in-in-sto和
- 循环测试。

万博1manbetxSimulink测试自动化在循环测试中,包括SIL和PIL带有Simulink Real-Time™的嵌入式编码器和HIL,并提供来自Simulink Ruckage的覆盖度量的通行证/失败报告。

工具资格

ISO 26262-8介绍了附加进程,包括版本控制,配置管理和文档。Simulink项目,Simulink模万博1manbetx型差异和合并和Simuli万博1manbetxnk Report Gener™分别支持这些过程。

该标准还提供了工具鉴定指南。它不允许工具供应商限定他们自己的工具,但要求用户限定特定项目的工具。IEC认证套件通过提供典型用例、参考工作流、工具分类分析、软件工具文档、工具确认报告和验证测试,有效地对工具进行资格预审。

TÜVSÜD的审计和审核Mathworks工具开发和质量流程以及错误报告功能,并在每个产品版本上证明结果。IEC认证试剂盒包括这些TÜV南南德书证书和报告,这些证书和报告都是需要遵循适当的验证和验证工作流程的必要性。该套件根据典型的工具用例提供参考工作流,例如本文突出显示的刀具。

该套件提供了更详细的信息,包括ISO 26262目标的映射到Simulink支持能力(图7)。万博1manbetx万博1manbetx

图7. IEC 26262-To-Simulink映射摘录在IEC认证套万博1manbetx件中。

2018年12月发布的ISO 26262 ISO 26262的第二版指出,Simulink和StateFlow适用于软件架构和软件单元设计万博1manbetx符号,作为自动代码生成的基础(图8)。

图8.摘录ISO 26262-6:2018显示了合适的软件设计符号。

请注意,使用合格的工具并不能确保所考虑的软件或系统的安全性。

ISO 26262.

ISO 26262是针对乘用车[1]的国际功能安全标准。它解决了与安全相关的电子/电气(E/E)系统故障可能造成的危害。它使用汽车安全完整性级别(ASIL)作为风险分类标识,范围从a到D, ASIL D表示最高的完整性级别。该标准由九个规范性部分组成,指导方针为第十部分。每个部分作为单独的文档提供。ISO 26262是基于目标的,本质上不是规定性的,但是它包含了几百页的指南。第4、6和8部分分别是地址系统[ISO 26262-4]、软件[ISO 26262-6]和工具鉴定[ISO 26262-8]。

第一版ISO 26262于2011年发布。预计2018年的第二版(ISO 26262:2018)。第二版支持其他类型的车辆,如摩托车,卡万博1manbetx车和公共汽车。此外,还有关于半导体的新指导。

2018年出版的

查看相关行业的文章