夜雨聆风学习资料网

ARTICLE · 1025214

特约专栏 | 一个软件BUG可能要召回百万辆车?ISO 26262功能安全到底解决了什么问题

特约专栏 | 一个软件BUG可能要召回百万辆车?ISO 26262功能安全到底解决了什么问题

SASETECH

建立安全生态圈,成为汽车安全的布道者

一、引言

功能安全这个词这几年很火热,不管是搞硬件的兄弟还是搞软件的兄弟,只要是在汽车电子这一行混的,一定会接触到,但是不知道你想过没有,汽车电子时代,为什么必须有功能安全?今天我们就为什么需要功能安全?ISO 26262是什么?以及ISO 26262解决了什么问题来聊一聊

二、为什么需要功能安全

以前的汽车,发动机、变速箱、刹车系统主要依靠机械结构实现控制,机械系统最大的特点是什么?

故障模式相对简单,可预测,比如刹车片磨损,液压管路泄漏,机械零件断裂。工程师可以通过材料强度、寿命测试、耐久实验预测风险。但是今天的汽车已经完全不同,一辆新能源汽车里面,ECU数量从几十个发展到上百个,车载软件代码超过1亿行,自动驾驶需要实时处理摄像头、毫米波雷达、激光雷达数据,电池管理系统需要精准控制数百节电芯,制动、转向、动力全部电子化

汽车正在从机械产品变成一个运行在复杂软件系统上的移动智能终端,问题来了,如果一个软件出现BUG,会发生什么?如果一个传感器错误,会发生什么?如果一个MCU死机,会发生什么?手机死机,大不了重启,电脑蓝屏,大不了维修,但是汽车在高速行驶过程中,如果控制系统错误可能就是生命风险,这就是ISO 26262功能安全标准诞生的原因

打开国家市场监督管理总局缺陷产品召回技术中心,在汽车召回一栏中,咱们就能看到各家车企的一些召回信息,汽车行业过去发生过大量因为电子系统导致的召回事件,其中很多问题并不是传统意义上的机械故障,而是软件逻辑错误,控制策略异常,ECU通信异常,传感器错误判断
例如某些车型出现加速异常,制动辅助失效,转向辅助异常,自动驾驶误判,这些问题背后都有一个共同特点就是系统没有按照设计意图工作

当然需要注意的是功能安全关注的不是零故障,这是不可能做到的,因为任何电子元件都有失效概率,所以功能安全关注的是当系统发生故障时,如何把故障导致不可接受的人身伤害的概率或风险降低到可接受的范围。比如一个ABS控制器正常情况下,轮速传感器采集车轮速度->ECU计算->控制液压阀。

那如果轮速传感器坏了系统就停止工作了,如果考虑了功能安全设计,检测到传感器异常就进入降级模式,然后关闭ABS功能,提示驾驶员的同时并保证基础制动仍然有效。从这个案例我想表达的意思是这就是功能安全的核心思想不是保证永远不坏,而是保证坏了以后失控的风险降低到可接受的范围

三、ISO 26262 到底是什么?

大家都知道ISO 26262是汽车功能安全国际标准,它来源于工业领域安全标准IEC 61508,只是在IEC 61508基础上针对汽车电子系统进行了改进

我理解的ISO 26262是一套方法论,它不是定义了实现功能安全具体要满足哪些参数,而是规定了一套方法,从需求定义到系统设计,硬件设计,软件设计,测试验证,量产管理,来确保汽车电子系统满足安全要求

它覆盖整个汽车生命周期,概念阶段,产品开发阶段,生产阶段,运行维护阶段,报废阶段

2.1 ISO 26262 中的“功能安全”到底是什么意思?

标准中对功能安全的定义是不存在因电气/电子系统故障导致的不合理风险

这里有三个关键词,要想做好功能安全,那就一定要理解好这三个关键词。

第一是电气/电子系统故障,它包括硬件故障,比如MCU损坏,MOS短路了,也包括软件故障,比如程序错误,数据异常,算法错误,所以如果是机械故障,比如悬挂断裂、轮胎爆胎了,或者高压绝缘没做好导致人被电击了,这些都是不考虑在内的。

第二是不合理风险,什么叫不合理?例如发动机控制ECU如果某个温度传感器坏了。这个时候系统限制发动机功率,那车辆还能行驶,这就是合理风险。但是如果刹车控制ECU失效导致车辆无法制动,那这就是不可接受风险。

第三是故障导致,功能安全关注的是失效链:故障->系统行为->整车风险。

所以ISO 26262核心不是设计一个不会坏的零件,而是设计一个即使发生故障,也能控制风险的系统。

2.2 ISO 26262 的安全目标如何理解?

功能安全设计第一步是啥?是识别危险,如何识别危险?通过HARA分析来识别危险,比如自动驾驶转向系统中方向盘控制错误可能后果是车辆偏离车道。

而所谓的安全目标就是指在车辆层面上,通过危害分析与风险评估所确定的顶层安全要求,一个安全目标可以与多个危害相关联,同时多个安全目标也可以与单个危害相关联。所以安全目标是整车层面上分析得到的,而不是通过某个ECU内部分析得到的。根据三个因素(严重度+暴露度+可控度)来评判风险等级,最终形成ASIL等级,包括QM,ASILA,ASILB,ASILC,ASIL D,ASILD代表最高安全等级。例如自动驾驶转向控制,通常需要ASIL D。

2.3 ISO 26262 整体架构是怎么样的?

ISO 26262是一套完整开发流程。整体可以分为:

Part 1:术语和管理,定义了标准中使用的所有核心术语、词汇和缩写,为整个标准提供统一的语言基础。

Part 2:功能安全管理,规定了组织层面和项目层面的功能安全管理要求,包括安全文化的建立、人员资质、职责分配以及安全计划的制定。

Part 3:概念阶段,说明如何开展车辆层面的项目定义、危害分析与风险评估HARA,并由此确定安全目标以及功能安全概念。

Part 4:系统级开发,涵盖系统级技术安全要求的制定、系统架构设计、硬件与软件的接口定义、系统集成以及系统级验证测试。

Part 5:硬件开发,针对硬件开发流程,包括硬件安全要求分配、硬件架构设计、定量和定性硬件安全指标评估(如单点故障指标、潜伏故障指标)、硬件集成与验证。

Part 6:软件开发,针对软件开发流程,涵盖软件安全要求的分配、软件架构设计、单元设计与实现、软件集成以及软件验证和测试。

Part 7:生产,运行,维护,报废,规定了产品在制造、售后、日常维护、维修以及最终报废全过程中,如何保持功能安全。

Part 8:支持流程,包含了配置管理,变更管理,文档管理等。

Part 9:以汽车安全完整性等级为导向和以安全为导向的分析,阐述了ASIL等级的分解原则、相依失效分析,以及多元素共存的分析方法。

Part 10:指南,为非规范性的参考指南,提供了对ISO26262各个部分的解释、示例和补充说明,帮助工程师理解和落地标准。

Part 11:半导体应用指南,专门针对半导体元器件,如芯片、IP核等的开发、生产与运作提供了详细指导和用例说明。

Part 12:针对摩托车(轻型车)的应用调整,针对摩托车等轻型道路车辆的特殊物理与运行特性,说明了如何对ISO 26262的标准条款进行调整和应用

四、功能安全到底在解决什么问题

我认为功能安全解决了两大问题,一个是系统性失效,另外一个是随机硬件失效

随机硬件失效你可以认为是天灾,它是不可控的概率事件,它是指硬件在工作过程中,由于物理原因,如电子元器件老化、电迁移、射线干扰、材料疲劳突然发生的故障。你不知道它什么时候、在哪辆车、哪个零件上发生,当然从概率学的角度来说它坏掉的概率,也就是失效率是可以被数学公式算出来的。

系统性失效那就是人祸了,因为它是设计和管理上的缺陷导致的,它是指在某个特定环节上出现错误,导致系统在特定条件下必然会出错,它不是概率问题,而是必然问题。一旦触发条件满足,100%会复现。比如软件Bug,软件工程师在写代码时逻辑没考虑周全,导致车辆在车速达到100km/h且遇到特定障碍物时死机。又或者硬件设计有缺陷,电路板上某条信号线一遇到电磁干扰系统就误动作。或者制造缺陷,工人组装时,某个螺丝没按标准扭矩拧紧,开一段路后震松了。

所以随机硬件失效无法根除,只能通过冗余、诊断或更换为低失效率器件等措施去降低它带来的风险。对应ISO 26262中的硬件指标评估,系统性失效理论上是可以通过规范的流程、严密的测试去完全避免或消除的,对应标准中的开发流程与质量管理。

所以在汽车电子设计中,我们常说随机失效靠硬件防护,系统性失效靠管理与测试,两者结合,才能打造出一辆真正安全可靠的汽车。

我第一次接触ISO 26262,会觉得为什么增加这么多流程?为什么要写这么多文档?为什么设计一个ECU这么复杂?现在想明白了,汽车正在变成一个巨大的电子系统。当代码从几千行变成上亿行,当ECU从几个变成几十上百个,当车辆开始替代驾驶员决策,这个时候安全已经不能依靠经验,必须依靠体系,ISO 26262做的事情,本质就是把不确定的风险变成可以分析、可以控制、可以验证的工程问题,这就是功能安全存在的意义

黄永超 | 作者

冯亚军 | 审核

免责声明:如涉及侵权请及时与我们联系反馈,我们会在第一时间做更正声明或做删除处理。文章版权及解释权归原作者及发布单位所有,如需转载或引用本文的任何内容,请注明出处。

——  相关阅读  ——

SASETECH是国内首个由汽车安全专家发起创立的技术社区,由磐时信息创始人发起创建。社区致力于为汽车安全从业者打造集交流、学习与合作为一体的开放式平台,始终秉持"专业创新、开放共享、实事求是"的价值观,推动行业技术交流与生态建设

SASETECH

联系管理员了解更多→

相关学习资料

返回首页浏览学习资料