如何在ISO 2626金宝app2项目中使用Simulink

Tom Erkkinen, MathWorks

为传统汽车和自动驾驶汽车开发与安全相关的嵌入式系统的汽车工程师们正在寻找有效的方法,以实现ISO 26262[1]规定的过程严格性。ISO 26262[1]是一项用于乘用车开发的功能安全标准。

随着所有媒体对自动驾驶汽车的关注,也不乏建议。然而,这一建议往往集中在最新的编码方法或消除缺陷的工具上。正如业内专家早就认识到的那样,安全性更多的是关于正确地实现系统及其需求,而不是关于软件以及如何将其编码为[2]。

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

本文介绍了TÜV SÜD批准的在ISO 26262项目中使用Simulink的工作流。金宝app它介绍了ISO 26262和基于模型的设计,包括以下任务:

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

ISO 26262和基于模型的设计

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

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

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

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

图1是一个典型的Simulink闭环系统模型。金宝app它包括一个控制器和装置,外加信号处理器。在ISO 26262中,系统设计规范是软件开发的一个输入,但它远不止于此,因为安全从根本上来说是一个系统问题[2]。

图1. Simulink金宝app系统设计模型。

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

在实践中,功能模型从早期的规范模型、设计模型发展到实现模型,最后自动转换为代码(模型发展)。

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

图2。ISO 26262软件开发和验证过程采用Simulink。金宝app

需求开发

您通过编写功能和安全需求来开始与安全相关的开发过程。ISO 26262建议您使用“软件体系结构设计和软件安全需求之间的双向可追溯性”来验证软件体系结构设计。为了实现这一点,您可以使用Simulink Require金宝appments™来编写和跟踪模型、测试和代码的需求。金宝appSimulink Requirem金宝appents支持其他工具的双向跟踪,包括Microsoft®®,微软Excel.®和IBM®合理的®®.在Simulink requirements中监控和管理需求的实现和验证状态。金宝app需求链接可以出现在生成的代码中(图3)。

图3。Simulink中的需求规范。金宝app

设计建模

正如“ISO 26262和基于模型的设计”一节中所提到的,ISO 26262描述了功能模型从高级可执行规范到为产品代码生成做好准备的详细设计的演变过程。典型的修改和改进包括:

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

对于ASIL B到D, ISO 26262强烈推荐使用建模指南,为此,你可以使用MAAB风格指南[4]和在Simulink中提供的ISO 26262高完整性指南。金宝app金宝appSimulink Check™自动检查这两个指南。它可以在编辑期间标记问题,比如插入不符合标准的块。您还可以包含您自己的指导方针和检查。

代码生成

ISO 26262指出:“软件单元的实现包括源代码的生成和目标代码的转换。”要实现这一点,您可以使用嵌入式编码器®从Simulink模型中生成C, c++和AUTOSAR代码。金宝app该代码可以符合MISRA C®:2012自动代码指南[5]。ISO 26262指出,基于模型的设计和手工代码的代码指导方针可能不同,并列出了MISRA®作为一个例子。

IEC认证套件为C, c++和AUTOSAR的嵌入式编码器(包括ASIL A-D)提供工具确认支持。金宝app其TÜV SÜD认证报告称:

嵌入式编码器满足ISO 26262关于工具支持和自动化的要求。金宝app

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

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

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

可执行的目标代码是由使用编译器和链接器生成的源代码生成的。IEC认证套件中的工作流程允许编码器、编译器和处理器优化,这对大规模生产ecu至关重要,只要PIL测试用于验证可执行的目标代码。

设计验证

ISO 26262推荐了一些静态和动态的方法来验证软件设计和实现,包括单元级和集成级活动。对于基于模型的设计,它指出“根据软件开发过程,测试对象可以是从这个模型派生出来的代码,也可以是模型本身。”

金宝appSimulink Test™为Simulink中的ISO 26262验证和验证活动提供了一个框架。您可以使用它来为模型和从模型生成的代码编写、管理和执行系统的、基于模拟的测试。图4显示了一个测试序列和评估块的示例。

图4.模拟测试序列和金宝app用于建模和创作复杂测试方案的评估块。

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

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

  • 开发和执行Simulink模型的测试金宝app
  • 开发和执行模型和代码之间的背靠背测试
  • 测试结果的评估
  • 生成测试报告
  • 识别需求和测试用例之间的可追溯性

ISO 26262建议进行结构覆盖分析,以确定测试的完整性和识别未预期的功能。它列出了三种提高严谨性的方法,强烈推荐最后两种方法用于ASIL-D。

  • 语句覆盖
  • 分支覆盖
  • MC / DC覆盖范围

该标准指出,对于基于模型的设计,“结构覆盖的分析可以在模型层次上使用类似的模型结构覆盖度量来执行。”报告还指出,如果结构性覆盖不足,应指定其他测试用例,或提供理由。

金宝appSimulink Coverage™为模型和生成的代码提供了结构覆盖,并且可以很容易地使用Simulink test执行测试。如果您的模型覆盖率不足,您可以使用Simulink Design Verifier™自动生成额外的测试用金宝app例来实现所需的覆盖率,包括MC/DC。金宝appSimulink Check还可以重构模型以降低复杂性。它包括一个度量仪表板,用于评估项目质量和满足ISO 26262的要求“强制执行低复杂性和限制软件组件和接口的大小”(图5)。

图5。显示模型指南遵从性的度量仪表板。

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

代码验证

ISO 26262提供了几个验证软件设计和实现的选项。IEC Certification Kit中描述的一种方法允许有限的跟踪审查来检测生成代码中的非预期功能,例如没有跟踪到块或信号的代码。该工具包会自动生成用于此目的的轨迹矩阵。或者,您可以在软件在环(SIL)测试期间使用Simulink coverage来比较模型覆盖率和代码覆盖率,或者您可以使用Simulink金宝app code Inspector™。

最后,您可以检查MISRA是否符合Polyspace Bug Finder™。如果您的项目包含生成的和手工编码的软件,那么使用MISRA检查和代码覆盖分析特别有帮助。为了更加严格,您可以使用Polyspace Code Prover™来证明没有诸如除零之类的运行时错误。

IEC认证套件为PolySpace提供了TÜV南德所证书和报告的工具资格支持金宝app®下载188bet金宝搏产品。

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

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

ISO 26262强烈推荐ASILs C和d的背靠背测试。它指出了在具有代表性的目标硬件环境中测试的重要性,并强调需要了解测试和硬件环境之间的差异:

在源代码或目标代码中可能会出现测试环境和目标环境之间的差异,例如,由于处理器的数据字和地址字的位宽不同。

但是,正如每个计算机科学家都应该知道[6]一样,不同平台之间存在许多潜在的数字差异来源,特别是浮点数据。有些开始很小,但积累和成长,特别是在反馈控制系统。因此,ISO 26262列出了用于背对背测试的各种在环方法:

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

-model-in-the-loop测试;
-software-in-the-loop测试;
-processor-in-the-loop测试;和
-hardware-in-the-loop测试。

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

工具资格

ISO 26262-8描述了其他过程,包括版本控制、配置管理和文档。这些过程分别由Simulink Proj金宝appects、Simulink金宝app模型差分和合并以及Simulink Report Generator™支持。

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

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

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

图7. IEC 26262-To-Simulink映射摘录在IEC认证套金宝app件中。

2018年12月发布的ISO 26262的第二版指出,Simulink和statflow适用于软件体系结构和软件单元设计符号,并作为自动代金宝app码生成的基础(图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)。第二版支持其他类型的车辆,如摩托车、卡金宝app车和公共汽车。此外,在半导体方面将会有新的指导方针。

2018年出版的


查看相关行业的文章