技术文章和通讯

如何在ISO 2626万博1manbetx2项目中使用Simulink

作者:Tom Erkkinen, MathWorks


为传统汽车和自动驾驶汽车研究安全相关嵌入式系统的汽车工程师们正在寻找有效的方法,以达到ISO 26262[1](乘用车开发的功能安全标准)规定的过程严格程度。

随着所有媒体的注意力都集中在自动驾驶汽车上,也不乏建议。但是,这些建议往往都集中在最新的编码方法或清除bug的工具上。正如业内专家早就认识到的那样,安全更多地是关于正确地获得系统及其需求,而不是软件及其如何编码[2]。

基于模型的Simulink设计,以连续和离散时间仿真为核心万博1manbetx®让您在进入试验场或执行车队测试之前,就可以在广泛的驾驶条件和故障场景下设计和测试完整的系统。它还支持ISO 万博1manbetx26262规定的工艺活动,包括工具鉴定。IEC Certification Kit详细说明了这种支持,并提供了万博1manbetx来自国际认证权威机构TÜV SÜD的工具证书和报告。

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

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

ISO 26262和基于模型的设计

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

模型的无缝利用促进了高度一致和高效的开发。

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

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

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

图1。一个万博1manbetxSimulink系统设计模型。

图1。一个万博1manbetxSimulink系统设计模型。

然后详细阐述您的系统设计,直到它成为一个软件蓝图,具有足够的细节,以便您生成生产代码。ISO 26262将此模型精化过程描述为“模型演化”[2]:

在实践中,功能模型从早期的规范模型经过设计模型到实现模型,最后自动转换为代码(模型演进),有一个演进过程。

ISO 26262推荐了基于汽车安全完整性等级(ASILs)的各种活动的方法。您可以使用此指导来基于您的用例建立适当的工作流程。图2给出了ISO 26262过程的概述。实箭头表示开发活动,虚线箭头表示验证和验证活动。ISO 26262中提到的“模型演化”用椭圆表示(…)。

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

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

需求开发

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

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

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

设计建模

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

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

对于ASIL B到D, ISO 26262强烈建议使用建模指南,为此,您可以使用MAAB风格指南[4]和Simulink中提供的ISO 26262的高完整性指南。万博1manbetx万博1manbetxSimulink Check™自动检查这两个指南。它可以标记问题,例如在编辑时插入不兼容的块。您还可以包含您自己的指导方针和检查。

代码生成

ISO 26262规定“软件单元的实现包括源代码的生成和转换为目标代码。”要实现这一点,可以使用Embedded Coder®从Simulink模型生成C、c++和AUTOSAR代码。万博1manbetx本规范符合MISRA C标准®:2012自动代码指南[5]。ISO 26262指出,基于模型的设计和手工代码的代码指南可能不同,并列出了MISRA®作为一个例子。

IEC认证套件为C、c++和AUTOSAR的嵌入式编码器(包括ASIL A-D)提供了工具资格支持。万博1manbetx其TÜV SÜD认证报告指出:

Embedded Coder满足ISO 26262关于工具支持和自动化的要求。万博1manbetx

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

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

Embedded Coder提供了针对内存和速度优化代码的选项。此外,您可以生成特定于处理器的优化,利用硬件加速器(如SIMD)®的手臂®和英特尔®.您可以使用ISO 26262中描述的模型到代码、处理器在环(PIL)测试,验证优化的代码在规定的公差内与模拟结果匹配。

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

设计验证

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

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

图4。万博1manbetx用于建模和创作复杂测试场景的Simulink测试序列和评估块。

图4。万博1manbetx用于建模和创作复杂测试场景的Simulink测试序列和评估块。

IEC认证工具包中的TÜV SÜD报告(用于ISO 26262)阐明了Simulink测试在自动化验证和验证中的作用:万博1manbetx

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

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

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

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

该标准指出,对于基于模型的设计,结构覆盖的分析可以在模型级别上使用模型的类似结构覆盖度量进行。它继续指出,如果结构覆盖不足,应指定额外的测试用例或提供基本原理。

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

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

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

IEC认证套件提供工具资格支持,TÜV SÜD证书和报告,用于Simulink检查,Simulink万博1manbetx覆盖(包括模型和代码覆盖),Simulink设计验证器,和Simulink测试。万博1manbetx

代码验证

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

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

IEC认证套件为Polyspace提供工具资质支持,并提供TÜV SÜD证书和报告万博1manbetx®s manbetx 845产品。

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

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

图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测试。

万博1manbetxSimulink Test自动化了循环测试,包括SIL和PIL with Embedded Coder,以及HIL with Simulink Real-Time™,并提供了通过/失败报告和来自Simulink coverage的覆盖率指标。

工具资格

ISO 26262-8描述了其他过程,包括版本控制、配置管理和文档。这些过程分别由Simulink Proj万博1manbetxects、Simulink万博1manbetx模型差异和合并以及Simulink报告生成器™支持。

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

TÜV SÜD审查和审计MathWorks工具开发和质量过程,以及错误报告功能,并在每个产品发布时验证结果。IEC认证套件包括这些TÜV SÜD证书和报告,它们基于遵循适当的验证和验证工作流的需要。工具包提供了基于典型工具用例的参考工作流,比如本文中强调的那些。

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

图7。摘自IEC认证套件中的ISO 26262到simul万博1manbetxink的映射。

图7。摘自IEC认证套件中的ISO 26262到simul万博1manbetxink的映射。

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

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

图8。摘自ISO 26262- 6:18 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年出版的

查看相关行业文章