根据ISO26262, 对于任何一项需求,其功能安全大致可以通过以下几个步骤来保证:
1)进行Hazard Analysis和Risk Assessment。这个步骤是为了获得需求的E、C、S值。
2)评出此需求的ASIL评级并建立Safety Goal。Safety Goal 是一个具体的、定性的安全目标,比如转向助力那个例子中,“助力方向一致”这个需求一定是ASIL D级,故障后会有相当大的安全风险。其Safety Goal就是把故障风险降低至可容忍风险以下。Safety Goal继承对应需求的ASIL评级。
3) 将Safety Goal进一步分解为Functional Safety Concept 和 Technical Safety Concept。要怎样降低“助力方向一致” 故障的风险呢?一个可行的办法是进行冗余计算:用两套不同的算法计算助力方向,保证结果的正确性。或者,把助力电机的力矩限制在一个较小的值也是个好办法,因为这样一来即便助力方向错误,由于助力有限,驾驶员还是可以控制汽车。这些解决方法就是Functional Safety Concept。把Functional Safety Concept进一步在技术上具体化,就是Technical Safety Concept。它们将继承步骤2)评出的ASIL等级。不同的ASIL等级对Functional Safety Concept 和 Technical Safety Concept有不同的要求。
4)由Technical Safety Concept 形成Software Safety Requirements 和 Hardware Safety Requirements。这些就是非常具体的安全需求了,可以直接作为软/硬件设计的依据。这些需求也继承了相同的ASIL等级。
5)根据4)步得到的安全需求,结合其ASIL 等级制定测试与验证方案。对于不同等级的安全需求,ISO26262对测试方案有着硬性的要求。比如ASIL D级需求除了进行MISRA、PolySpace等测试外,还要进行完备的功能测试和覆盖率100%的MCDC测试,并对Traceability (可溯性?)也有相应要求。
上图是功能安全设计开发流程,在进行这套流程的同时,还需配合FMEA 和 DRBFM 对系统设计进行分析和评价。可以说,全套流程结束以后,功能安全能够得到有效的保障。
功能安全和V模式设计流程
ISO26262标准包含10个部分,其中跟汽车V模式开发流程相关的是概念阶段(第3部分)、产品开发系统级(第4部分)、产品开发硬件级(第5部分)、产品开发软件级(第6部分)、以及生产和运行阶段(第7部分)。在这几个阶段中,跟汽车制造商紧密相关的则是概念阶段(第3部分)。概念阶段的主要工作包含:相关项定义、安全生命周期初始化、HARA(Hazard Analysis and Risk Assessment,危害分析和风险评估),以及提出功能安全需求并进行需求分配。相关项定义描述整车有哪些功能,功能之间的接口、法律法规要求、环境约束等,安全生命周期初始化的主要工作是识别这些功能是全新开发,还是在原有的实现方案上进行修改。如果是全新开发,则执行完整的安全生命周期,如果是修改后复用则需要对安全生命周期进行裁剪。HARA主要是识别不同驾驶情境下功能故障(malfunction) 在整车级别造成的危害,并且通过评估危害事件的严重性S、暴露率E和可控性C得到危害事件的ASIL等级(Automotive Safety Integrity Level,汽车安全完整性等级,分为A,B,C,D四个等级,A是最低等级,D是最高等级),从而得出SG(Safety Goal,安全目标)及其ASIL等级。
摘自程序员大本营