如何使用Simulin金宝appk进行iso26262项目

作者:Tom Erkkinen, MathWorks

致力于传统和自动驾驶汽车安全相关的嵌入式系统的汽车工程师们正在寻找有效的方法,以实现ISO 2626[1](乘用车开发的功能安全标准)所规定的严格流程。

随着所有媒体都关注自动驾驶汽车,也不乏建议。不过,这个建议往往侧重于最新的编码方法或bug消除工具。正如行业专家早就认识到的,安全更多的是关于正确的系统和它的需求,而不是关于软件和它是如何被编码的[2]。

随着连续和离散时间的模拟作为其骨干,基于模型的设计与Simulink金宝app®让您设计和测试您的整个系统在广泛的驾驶条件和故障情况下,在您去试验场或车队测试之前很久。它还支持ISO 金宝app26262规定的过程活动,包括工具鉴定。IEC认证套件详细介绍了这种支持,并提供了来自国际认证机构TÜV SÜ金宝appD的工具证书和报告。

本文介绍了使用Simulink for ISO 26262项目的TÜV南德州批准的工作流程。金宝app它介绍了ISO 26262和基于模型的设计,然后涵盖以下任务:

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

ISO 26262和基于模型的设计

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

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

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

这样,可以在可接受的计算速度下模拟具有高度细节的高度复杂的汽车系统,以模拟接近现实的行为。虽然车辆/环境模型在通过真实系统的发展过程中逐渐替换,但功能模型可以作为通过代码生成在控制单元上实现嵌入式软件的蓝图.[3]

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

图1所示。一个金宝appSimulink系统设计模型。

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

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

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

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

需求开发

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

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

设计建模

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

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

对于ASIL B至D,ISO 26262强烈建议使用建模指南,为此,您可以使用MAAB样式指南[4]和Simulink中提供的ISO 26262的高完整性指南。金宝app金宝appSimulink Check™自动检查两种准则。它可以在编辑时间内标记问题,例如插入不合规块。您还可以包含您自己的指导方针和支票。

代码生成

ISO 26262表示“软件单元的实现包括生成源代码和转换为对象代码。”要实现此目的,可以使用嵌入式编码器®从Simulink模型生成C,C ++和AutoSAR代码。金宝app代码可以遵守屠杀c®:2012自动代码指南[5]。ISO 26262指出,基于模型的设计和手工代码的代码指南可以不同,并列出了MISRA®作为一个例子。

IEC Certification Kit为C、c++和AUTOSAR的嵌入式编码器(包括ASIL 金宝appA-D)提供工具资格认证支持。其TÜV SÜD认证报告指出:

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

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

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

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

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

设计验证

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

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

图4。金宝appSimulink用于建模和编写复杂测试场景的测试序列和评估块。

IEC认证套件中的TÜV SÜD报告(适用于ISO 26262)阐明了Simulink测试在自动化验证和验证中的作用:金宝app

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

  • 开发和执行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 Certification Kit提供工具认证支持,包括TÜV SÜD证书和报告,用于Sim金宝appulink检查、Simulink覆盖(包括模型和代码覆盖)、Simulink设计验证器和Simulink金宝app测试。

代码验证

ISO 26262提供了若干选项,可验证软件设计和实现。IEC认证套件中描述的一种方法允许有限的跟踪审查来检测生成的代码中的意外功能,例如未跟踪到块或信号的代码。该试剂盒为此目的自动生成跟踪矩阵。或者,您可以使用Simulink覆盖在软件循环(SIL)测试期间将模型覆盖范围进行比较,或者您可以使用Simulink代码Inspecto金宝appr™。

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

IEC Certification Kit为Polyspace提供工具认证支持,并提供TÜV SÜD金宝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 Test自动进行环内测试,包括使用Embedded Coder的SIL和PIL以及使用Simulink Real-Time™的HIL,并提供通过/失败报告和来自Simulink coverage的覆盖率指标。

工具资格

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

该标准还提供刀具资格指导。它不允许工具供应商符合自己的工具,但需要用户符合特定项目的工具。IEC认证套件通过提供典型用例,参考工作流,工具分类分析,软件工具文档,刀具资格报告和验证测试,有效地预订了工具。

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

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

图7。摘录自ISO 26262-to-Simulink映射金宝app在IEC认证套件。

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

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

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

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年


查看相关行业的文章