0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

Simulink应用于ISO 26262项目的工作流程介绍

Hx 作者:工程师陈翠 2018-06-26 11:18 次阅读

研究传统汽车和自动驾驶汽车嵌入式安全系统领域的汽车工程师正在寻找有效方式满足 ISO 26262[1] 严苛的流程标准:乘用车研发领域的功能安全标准。

自动驾驶汽车是所有媒体关注的焦点,有关其功能安全方面的建议层出不穷。虽然如此,这些建议主要集中于最新的编码方式或消除错误的工具。行业专家很早便认识到,保证安全主要是确保系统及其相关要求正确和适当,而软件及编码方式[2]次之。

以连续时间和离散时间仿真为基础的 Simulink® 可实现基于模型的设计, 该工具不仅能够用于辅助设计车辆,还能在车辆进入道路测试或车队测试之前,提前在各种驾驶条件下对整个系统进行测试,并仿真各种故障情况。此外,该工具还支持 ISO 26262 规定的流程活动,包括工具认证。IEC Certification Kit 对该工具支持的功能进行了详细说明,还包括了国际认证机构 TÜV SÜD 提供的证书和报告。

本文将介绍经 TÜV SÜD 认证、将 Simulink 应用于 ISO 26262 项目的工作流程,还将介绍 ISO 26262 以及基于模型的设计,并对下列任务进行说明:

需求开发

设计建模

代码生成

设计验证

代码验证

工具认证

ISO 26262 和基于模型的设计

ISO 26262 包含用于人工设计编码和基于模型的设计的规范。此外,ISO 26262 还认可一些采用基于模型设计[3]的优势:

模型的无缝使用能够有效保证一致性,提高研发效率。

该标准提及“广泛使用”数学模型,同时指出利用建模工具将“半角式化的图形方法”应用于软件开发。该标准还指出建模不仅可获取要实现的功能(嵌入式软件),还可通过真实的物理系统(车辆模型和环境模型)的仿真来创建整个系统模型:

由此,便能够以可接受的计算速度构建高保真度、高复杂度的车辆系统以仿真接近于实际的行为。在开发过程中,车辆/环境模型将逐渐被实际系统及其环境替换,而功能模型将作为设计基准,通过生成代码将嵌入式软件应用于控制单元。[3]

图 1 为典型 Simulink 闭环系统模型。它由控制器、被控对象以及信号处理器组成。在 ISO 26262 中,系统设计规范不仅是软件开发的输入,更是保证系统安全的基础[2]。

 Simulink应用于ISO 26262项目的工作流程介绍

图 1:Simulink系统设计模型

随后进行系统详细设计,直至其成为包含足够细节的、可用于产品级代码生成的软件设计基准。ISO 26262 将这个模型的详细设计流程描述为“模型进化”[2]:

在实践中,[存在]功能模型的进化:从早期规范模型(设计模型)到可实施模型,最终自动转换为代码。

ISO 26262 推荐了各种基于汽车安全完整性等级(ASILs)的活动的实施方法。您可以根据您的应用场景,利用该规范建立适当的工作流程。图 2 所示为 ISO 26262 流程概览。实心箭头所示为开发活动,虚线箭头所示为验证和确认活动。ISO 26262 中提及的“模型进化”以省略号(…)表示。

 Simulink应用于ISO 26262项目的工作流程介绍

图 2:使用 Simulink 实施 ISO 26262 软件开发和验证的流程

需求开发

在实施安全相关开发流程时,应首先制定功能及安全需求。ISO 26262 建议您利用“软件架构设计和软件安全需求之间的双向可追溯性”对软件架构的设计进行验证。为此,您可以利用 Simulink Requirements™ 制定并追踪需求到模型、测试及代码。Simulink Requirements 支持对其他工具的双向追溯,包括 Microsoft® Word®、Microsoft Excel® 以及 IBM® Rational® DOORS®。需求的实现和验证状态可在 Simulink Requirements 中监测和管理,需求链接可显示在生成的代码中(图 3)。

 Simulink应用于ISO 26262项目的工作流程介绍

图 3:Simulink 中的需求规格

设计建模

正如“ISO 2626262 和基于模型设计”章节所述,ISO 26262 说明了功能模型从高层可执行规范进化为可用于产品级代码生成的详细设计的整个流程。典型修改和完善包括:

使用 Simulink Control Design™ 离散化工具将模块从连续时间(S 域)转换为离散时间(Z 域)

使用 Fixed-Point Designer™ 将数据从双精度转换至单精度或定点

使用 Stateflow® 添加诊断、模式逻辑、状态机以及调度算法

对于 ASIL B 至 D,ISO 26262 强烈建议使用建模规范。此外,还可使用 MAAB 规范[4],以及 Simulink 提供的用于 ISO 26262 的高完整性规范。Simulink Check™ 可自动检查该两种规范。Simulink Check™ 可在编辑时显示问题,例如不合规模块的插入等。此外,还可加入自定义规范和检查。

代码生成

ISO 26262 声明“软件单元的实施包括生成源代码以及转换为目标代码”。为此,您可以利用EmbeddedCoder® 生成 Simulink 模型的 C、C++ 以及 AUTOSAR 代码。该代码符合 MISRAC®:2012 自动代码规范[5]要求。ISO 26262 指出基于模型设计的代码规范和手工代码规范存在差异,并以 MISRA® 为例进行说明。

IEC Certification Kit 可为用于 C、C++ 以及 AUTOSAR 的 Embedded Coder(包括 ASIL A-D)提供工具认证支持。其 TÜV SÜD 证书报告做出了如下声明:
Embedded Coder 满足 ISO 26262 中关于工具支持及自动化的要求。
Embedded Coder 通常用于以下三种使用案例之一:

用于产品级代码生成的模型的 C 代码生成

用于产品级代码生成的模型的 C++ 代码生成

用于产品级代码生成的模型的 AUTOSAR应用软件组件的AUTOSAR代码和描述文件生成

Embedded Coder 提供了优化代码存储和速度的选项。此外,您还可以生成处理器专用优化代码,从而有效利用硬件加速器,例如用于 ARM® 和 Intel®的SIMD®。您可以通过 ISO 26262 中所述的模型至代码、处理器在环来测试验证优化代码是否与规定公差内的仿真结果匹配。

可执行目标代码使用编译器和链接器从生成的源代码中产生,IEC Certification Kit 中的工作流程允许代码生成器、编译器和处理器的优化,这对于大批量生产的 ECU 非常关键,而处理器在环测试可用于验证可执行的目标代码。

设计验证

ISO 26262 推荐了一些用于验证软件设计和实施的静态方法和动态方法,包括单元级和集成级活动。关于基于模型的设计,ISO 26262 指出“测试对象可以是源于模型的代码或模型自身,具体取决于软件开发流程”。

Simulink Test™ 提供在 Simulink 中进行 ISO 26262 验证和确认活动使用的框架。您可以将其用于制定、管理以及执行针对模型和模型生成代码的系统化仿真测试。图 4 为测试序列和评估模块的示例。

 Simulink应用于ISO 26262项目的工作流程介绍

图 4:Simulink 测试序列和评估模块用于建模和编制复杂的测试场景

IEC Certification Kit(适用于 ISO 26262)中的 TÜV SÜD 报告明确了自动验证和确认期间 SimulinkTest 的作用:

[Simulink Test]可自动对 Simulink 模型和生成的代码执行核心认证和确认活动。根据功能安全标准 ISO 26262,以下使用案例反应了软件开发期间需要完成的活动:

开发和执行 Simulink 模型测试

开发和执行模型与代码之间的背对背测试

评估测试结果

生成测试报告

识别需求和测试用例之间的可追溯性

ISO 26262 建议通过结构覆盖率分析确定测试的完整性,识别非预期功能。此外,ISO 26262 还列出提高安全度的三种方法,并强烈建议将最后两种方法用于 ASIL-D:

语句覆盖

分支覆盖

MC/DC 覆盖

关于基于模型的设计,该标准指出:“可在模型级下使用类似结构覆盖率度量方法,对模型进行结构覆盖率分析”。对于结构覆盖率不足的情况,该标准指出:“应指定附加测试用例或提供合理性说明”。

Simulink Coverage™ 针对模型和生成的代码提供结构覆盖度量功能,使用 Simulink Test 执行测试可轻松启用该功能。若模型覆盖率不足,您可以使用 Simulink Design Verifier™ 自动生成其他测试用例以达到所需覆盖率,包括 MC/DC。此外,Simulink Check 还能够识别重复模块以降低复杂度。它也包括度量仪表板以评估项目质量,满足 ISO 26262 要求:“使用低复杂度、限制大小的软件组件和接口“(图 5)。

 Simulink应用于ISO 26262项目的工作流程介绍

图 5:度量仪表板展示了模型规范的符合程度

IEC Certification Kit 提供工具认证支持,以及针对 Simulink Check、Simulink Coverage(包括模型和代码覆盖率)、Simulink Design Verifier 以及 Simulink Test 的 TÜV SÜD 证书和报告。

代码验证

ISO 26262 提供了一些用于验证软件设计和实施情况的方法。IEC Certification Kit 中介绍了一种用于检测已生成代码中非预期功能(例如,无法追踪至模块或信号的代码)的追溯审查方法。该套件可自动生成所需追溯矩阵。或者,在进行软件在环(SIL)测试期间,您可以使用 Simulink Coverage 将模型覆盖率与代码覆盖率进行比较,或直接使用 Simulink Code Inspector™。

最后,您可以使用 Polyspace Bug Finder™ 检查是否符合 MISRA 要求。如果您的项目中含有自动和手工的混合代码,采用 MISRA 检查和代码覆盖分析方法非常有帮助。若对安全性要求较高,您可以使用 Polyspace Code Prover™ 以证明不存在运行时错误,例如除零错误。

IEC Certification Kit 提供用于 Polyspace® 产品的工具认证支持以及 TÜV SÜD 证书和报告。

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

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

ISO 26262 强烈推荐对 ASIL C 和 D 执行背对背测试。此外,ISO 26262 还指出在目标硬件环境的替代环境下测试的重要性,并强调需要了解测试环境和硬件环境之间的差异。

源代码或目标代码不同,例如处理器数据和地址的不同字长,可能导致测试环境和目标环境之间出现差异。

但正如每位计算机科学家都应了解的事实[6]——跨平台存在许多潜在的数值误差,特别是浮点数据。某些数值误差起初很小随后逐渐累积和增大,这种情况在反馈控制系统中特别明显。因此,ISO 26262 列出了各种适用于背对背测试的在环测试方法:

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

模型在环测试

软件在环测试

处理器在环测试

硬件在环测试

Simulink Test 可以自动执行在环测试,包括使用 Embedded Coder 执行 SIL 和 PIL,使用 SimulinkReal-Time™ 执行 HIL,通过 Simulink Coverage 中的覆盖率度量功能提供通过/失败报告。

工具认证

ISO 26262-8 还对其他流程进行介绍,包括版本控制、配置管理以及文档编制。同时,这些流程分别由 Simulink Project,Simulink 模型差异识别和合并(功能),以及 Simulink Report Generator™ 提供支持。

此外,该标准还提供工具认证指南。该标准不允许工具供应商认证自身工具,而要求用户对于特定项目认证工具。IEC Certification Kit 通过提供典型使用案例、参考工作流程、工具分类分析、软件工具文档、工具认证报告和确认测试,从而对工具进行有效的预认证。

TÜV SÜD 审查及审核 MathWorks 工具的开发和质量流程、错误报告功能,以及认证每次产品发布的结果。IEC Certification Kit 包含这些 TÜV SÜD 证书和报告,可用于遵守适当的验证和确认工作流程的需要。该套件提供基于典型工具使用案例(例如本文中突出显示的)的参考工作流程。

此外,该套件还提供一些更为详细的信息,包括将 ISO 26262 目标映射至 Simulink 的支持功能(图7)。

 Simulink应用于ISO 26262项目的工作流程介绍

图 7:摘自 IEC Certification Kit 中 ISO 26262 至 Simulink 的映射

注意,需要考虑使用已认证的工具并不一定能保证软件或系统的安全性。

ISO 26262 是乘用车的国际功能安全标准[1]。它明确了与安全相关的电子/电气(E/E)系统在出现故障时可能导致的危险。ISO 26262 按照风险类别将汽车安全完整级别(ASIL)分为四级:从 A 至 D,ASIL D 为最高完整级。该标准有九个标准章节,而第十章为指南。每个章节均以独立文件呈现。ISO 26262 在本质上是目标导向而非规范指南,但 ISO 26262 中包含有数百页指南内容。第 4、6 和 8 章节分别介绍系统 [ISO 26262-4]、软件 [ISO26262-6] 和工认证具 [ISO 26262-8]。ISO 26262 第一版于 2011 年发布。第二版预计于 2018 年发布 (ISO26262:2018)。第二版将涉及其他类型车辆标准,例如摩托车、卡车和公交车。此外,第二版还包含有关于半导体(器件)的全新指南。

References:
1. ISO 26262 Road vehicles — Functional safety
2. Nancy G. Leveson, Engineering a Safer World, Systems Thinking Applied to Safety
3. ISO 26262-6 — Part 6: Product development at the software level
4. MAAB Style Guidelines
5. MISRA C:2012
6. David Goldberg, What Every Computer Scientist Should know about Floating-Point Arithmetic

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • 自动驾驶汽车

    关注

    4

    文章

    376

    浏览量

    40829
  • ISO26262
    +关注

    关注

    3

    文章

    32

    浏览量

    14353
收藏 人收藏

    评论

    相关推荐

    大唐恩智浦启动首个ISO 26262功能安全开发流程认证项目

    近日,中国首家汽车半导体公司大唐恩智浦半导体有限公司 (以下简称“大唐恩智浦”)与 TÜV 南德意志大中华集团 (以下简称“TÜV SÜD”)正式签署了ISO 26262功能安全开发流程认证的合作协议。大唐恩智浦因此成为中国汽车
    发表于 11-02 20:04 1283次阅读

    拥有ISO26262认证的软件工具清单

    项目中,外购高质量的软件工具是一定会提高工作效率。而且应用合规的软件工具,在OEM客户端也是加分,人家看重这条你不用也不行。 在商言商,你开发ECU,ISO26262是否合规可能不
    发表于 02-07 16:15

    ISO 26262功能安全标准体系解读

    26262涉及汽车电子电气系统的整个安全生命周期及其管理过程,满足该标准对汽车企业及供应商来说必将是巨大的挑战。为满足ISO 26262,必须在公司安全文化、工作流程制定、产品设计与
    发表于 07-22 18:10

    基于SimulinkISO26262和AUTOSAR应用软件

    利用 Simulink 非常方便地对复杂控制模型进行功能的组织、划分、调度等工作。本文参考 ISO 26262 的要求,同时考虑 AUTOSAR 代码生成的兼容性,给出使用
    发表于 07-23 06:38

    Simulink是什么?Simulink工作流程是怎样进行的?

    Simulink是什么?Simulink有哪些功能?如何去使用SimulinkSimulink工作流程是怎样进行的?
    发表于 07-09 06:16

    ISO26262-6给出的参考软件开发V模型流程是怎样的

    嵌入式软件开发是比较复杂的工程,如下图所示的ISO26262-6给出的参考软件开发V模型流程包括:1. 软件需求分析(Software Requirement Specification)2.
    发表于 11-09 07:15

    MATHWORKS应用基于模型的设计为ISO 26262项目提供定制服务

      中国北京,2012 年 3 月 14日- MathWorks 日前宣布针对 ISO 26262 项目启动专用的基于模型的设计的咨询服务。现在,汽车工程师在使用 MATLAB 和 Simul
    发表于 03-15 09:40 893次阅读

    测试工程师工作流程有哪些

    测试工程师的工作流程,与公司的整体工作流程项目的测试要求等因素相关。本文主要讨论测试工程师的一般工作流程
    的头像 发表于 10-03 16:56 7703次阅读

    关于将Simulink 应用于 ISO 26262 项目的方案设计

    ISO 26262 提供了一些用于验证软件设计和实施情况的方法。IEC Certification Kit 中介绍了一种用于检测已生成代码中
    的头像 发表于 09-12 17:37 2869次阅读
    关于将<b class='flag-5'>Simulink</b> <b class='flag-5'>应用于</b> <b class='flag-5'>ISO</b> <b class='flag-5'>26262</b> <b class='flag-5'>项目的</b>方案设计

    基于模型的设计实现ISO 26262 ASIL D级认证分析和介绍

    软件开发流程并如期实现ISO 26262目标。科世达研发团队在仿真环境中对模型执行系统化的验证,使用Simulink Verification and Validation进行模型标准
    的头像 发表于 09-18 11:49 3881次阅读

    工作流程图怎么用?有哪些绘制工作流程图的软件

    等绘图元素,分别表示开始或结束、方案和过程、判断(审定、评估)环节、工作流方向。 工作流程图常见用途 工作流程图被广泛应用于商务、生产等各个领域。比如制作
    的头像 发表于 07-28 14:22 3546次阅读

    地平线通过 ISO 26262 功能安全流程认证

    9 月 14 日,全球知名的检验、鉴定、测试和认证机构 SGS TV Saar(全球功能安全技术中心)于上海向地平线颁发了 ISO 26262:2018 功能安全流程认证证书。 地平线通过 I
    的头像 发表于 09-24 11:57 3886次阅读
    地平线通过 <b class='flag-5'>ISO</b> <b class='flag-5'>26262</b> 功能安全<b class='flag-5'>流程</b>认证

    在FPGA上部署5G NR无线通信:MATLAB与Simulink工作流程

    电子发烧友网站提供《在FPGA上部署5G NR无线通信:MATLAB与Simulink工作流程.pdf》资料免费下载
    发表于 09-14 09:42 0次下载
    在FPGA上部署5G NR无线通信:MATLAB与<b class='flag-5'>Simulink</b><b class='flag-5'>工作流程</b>

    在FPGA上部署5G NR无线通信:MATLAB与Simulink工作流程

    电子发烧友网站提供《在FPGA上部署5G NR无线通信:MATLAB与Simulink工作流程.pdf》资料免费下载
    发表于 09-13 11:24 1次下载
    在FPGA上部署5G NR无线通信:MATLAB与<b class='flag-5'>Simulink</b><b class='flag-5'>工作流程</b>

    什么是汽车ISO 26262功能安全标准?

    随着各行业引进一系列产品设计和测试的标准化流程,安全保障也日益规范化。ISO26262是针对汽车零部件中的关键电气和电子(E/E)系统的功能安全标准。ISO26262基于IEC61508制定,后者
    的头像 发表于 07-23 08:28 3982次阅读
    什么是汽车<b class='flag-5'>ISO</b> <b class='flag-5'>26262</b>功能安全标准?