背景介绍 为了保证汽车电子电气的可靠性设计,在 2011 年发布了 ISO 26262 (道路车辆功能安全标准), ISO 26262 标准 横向视角来看,解决的问题是:减少汽车电子电气系统发生系统性失效的可能性,采用的方式是全生命周期全系统的安全管理方式,从而保证安全相关的电子产品的功能性失效不会造成安全事故。标准还提供了审核方法,使安全体系形成闭环。 由 Pi Innovo 设计和制造的 OpenECU M560 整车控制器 ECU 是针对特定的功能安全目标集而开发的,可以满足 ISO 26262 ASIL D 功能安全,适用于通用快速原型平台或小批量生产。 本文将介绍 M560 系列 OpenECU 硬件模块和软件平台的功能安全体系架构和设计特性,验证其是否可以达到 ISO 26262 ASIL D 安全等级。 北汇信息作为 Pi Innovo 的合作伙伴,将为您的 ISO 26262 功能安全需求提供相关产品和技术服务。我们期待与您密切合作,了解和完善您的功能安全要求 (FSR) ,选择适当的硬件,以满足您的项目需求。 M560 功能安全概要 之前的文章已介绍过快速原型 M560 系列 OpenECU 的硬件资源和应用范围,(点此回顾→ 符合ASIL-D 的纯电动/ 混动整车控制器M560 正式发布 )提到了通过可选的硬件冗余以及在副处理器( ST Micro SPC560P34L1CEFAR )上校验软件的实施, M560 可以满足 ISO26262 ASIL D 功能安全需求。 作为符合 ASIL-D 安全目标的 ISO 26262 : 2011 项目的一个要素,其功能安全通过以下提供的架构实现: · 具有非对称硬件冗余和多样化软件冗余的双处理器架构 · 两个处理器器判断来激活输出 · 输入路由到两个处理器进行交互计算 · 副处理器能够独立的激活 / 关闭 CAN 总线 M560 功能安全最大 ASIL 等级取决于具体的应用程序使用和应用程序软件实现的实际安全机制。表 1 总结了如果使用所有可用的内部安全机制下 M560 的 ASIL 最大等级;图 1 以图形方式描述了这些场景。 Table 1 - Maximum ASIL Figure 1 - ASIL scenarios 浅析 M560 功能安全实现架构 M560 主要是为纯电动 / 混动汽车设计的动力总成监控控制器,它包含一个主处理器,安全功能目的的副处理器,两个传感器电源, 4 个高速 CAN 总线,以及丰富的输入和输出 IO ,包括 SAE J1772 接口(电动车及插电式混合动力车传导式充电接口)。 系统操作环境要求 M560 仅在技术规范中规定的操作环境中使用时,才能实现指定的 ASIL 等级,并进一步局限于以下表 2 准则。 Table 2 - M560 qualified operating environment 功能安全实现示例 M560 提供下表 3 所示安全功能: Table 3 - M560 safety functions M560 对系统集成要求 ( ISO 26262 10-9.2.2 step 1b ) 在系统中使用 M560 必须符合表 4 中指定的要求: Table 4 - M560 system integration requirements 实现安全功能需求 M560 满足表 5 中规定的安全功能需求: Table 5 - M560 safety requirements OpenECU 软件开发 M560 平台软件是依据 ISO 26262 流程 ASIL B ( D )等级以及结合具有 ASIL B ( D )等级的软件来开发的,其平台软件包含: 固件( Firmware ) · Bootloader · Reprogramming mode 操作系统( Operating System ) · Primary microcontroller: Priority ceiling preemptive task scheduler with rate-monotonic application task prioritization, tasks as fast as 1ms period on primary · Secondary microcontroller: non-preemptive, strict rate monotonic task scheduler · Platform library and application initialization · Stack monitoring · Device driver hardware interface (hardware abstraction layer 平台库( Platform library ) · APIs to access the device drivers · Utility functions 软件开发工具链程序( Software development toolchain utilities ) · Binary image preparation (OpenECU executable format) · ASAP2 file generation OpenECU M560 平台软件通过多种方式在两个处理器之间提供软件的多样化冗余: · 每个处理器的源代码是独立的 · 每个处理器的二进制文件由不同的编译器和链接器工具链生成 对于具体 M560 中两个微控制器的软件环境、可用的安全机制以及每种机制支持的诊断覆盖率在表 6 中列出了部分供参考。 Table6 - Software environment 另外软件开发配置和工具需要按以下特定的要求来配置: 工具要求 要满足本文的假设,需要以下工具,且是下述指定需求的确切版本。这些工具的新版本目前还不具备资格,因此不宜用于正式的开发。 · Mathworks Primary microcontroller: Matlab, Simulink, Stateflow, Sateflow Coder, Matlab Coder: R2015b (32-or 64-bit) · Diab Primary microcontroller: WindRiver compiler: version 5.9.4.8 with patch TCDIAB-14743 · CodeWarrior Secondary microcontroller: CodeWarrior Development Studio for MPC55xx/MPC56xx Version 2.10 主副处理通信 M560 在主处理器和副处理器之间提供专用的 UART 通信总线,该总线特征如下: · 242k 波特率 · 延迟:从传输请求到总线的出现的第一个位延迟小于 1ms ,加上传输时间(字节 / 波特)为请求 / 响应通信设计的轮询机制 · 应用软件负责检测通信超时 · OpenECU 平台软件只在消息校验和与消息数据匹配时将接收到的消息传递给应用程序,校验和值本身没有传递给应用程序 潜在故障管理 应用软件负责启动检查和协调潜在故障检查,包括: · 应用程序软件必须实现一个检查功能,即两个处理器可以彼此互相重置。 · 副处理器应尝试启用 / 禁用每个 CAN 总线,并通过使用主处理器软件监视通信来验证总线状态的变化。 · 对于副处理器使能的每个输出,副处理器可以关闭输出,而主处理器使用监视器确认输出失效以验证关闭命令即可尝试激活输出。 应用程序开发流程指导 M560 提供了 ECU 硬件和平台软件,共同辅助开发符合复杂的功能安全要求的应用程序。 Pi Innovo 对 M560 基于 ISO 26262 流程的安全相关条目应用程序开发提供了许多设想,这部分内容客户可以针对自己的具体应用和设想在基于 M560 硬件和平台软件的基础上进行相关的学习,如有需要可以联系北汇信息做进一步交流。 总结 ISO 26262 功能安全要求 ECU 硬件、应用程序软件和平台软件均满足整体功能安全目标, Pi Innovo 是基于经过验证的 V 模型来开发硬件和软件平台的,主处理器和副处理器上的应用程序软件由最终用户负责。任何一种软件都不能单独实现功能安全。因此,应用程序软件和平台软件必须依据 ISO 26262 流程的相同 ASIL 等级开发,才可以确保功能安全可实现。总而言之,安全是一个系统级工程,小到需要每个 IO 、 ECU 、软件,大到整车厂、供应商、汽车电子电气解决方案的通力协作才可能实现系统功能安全目标。 关于 Pi Innovo Pi Innovo 公司(成立于 1990 年)总部位于美国密歇根州,在发动机控制、新能源整车控制、底盘控制等领域具有多年的成功应用经验。其开发的快速原型系列产品 OpenECU ,基于 Matlab/Simulink 的开发环境、高效的自动代码生成、支持通用的标定工具,针对发动机、后处理、车辆稳定系统和新能源车辆控制系统开发提供有效的解决方案,适用于生产、试生产及大批量生产。 北汇信息作为 Pi Innovo 在中国的合作伙伴,将为客户提供全方位的支持和高效的控制策略解决方案。 参考文献 M560 Technical Specification (01T-070018TK-xx) ISO 26262 First edition 2011-11-15 29T-070064-01_M560 Family Functional Safety Manual SAE Webinar Pi Innovo M560-26262_Lessons_Learned_Webinar_06-FINAL 180524