功能安全怎么做?

近年来,功能安全似乎变得热门了,从工控行业到轨道交通再到汽车行业,功能安全逐渐成为安全相关产品的必要需求,在热度不断攀升的同时也带来了更多质疑的声音,功能安全是鸡肋还是珍宝?到底是否值得花费大量的人力、资源、成本去实现产品的功能安全呢?
表面来看,功能安全好像有点纸上谈兵,因为一切要以证据说话,证据又都是体现在白纸黑字的文档上,由此产生的误解便是功能安全主要是文档功夫。所谓外行看热闹,内行看门道,真正的功能安全一定不能从表面来认知,而要深入到技术里,功能安全与技术息息相关。
随机失效和系统失效
了解功能安全,首先要了解失效。以一个控制系统为例,无论它应用在工控领域,轨道交通领域还是汽车领域,控制系统都是由软件和硬件组成。对于硬件,属于实实在在的有形产品,随着时间的推移,它会逐步老化,在这个过程中会产生随机失效,由一个最底层元器件的随机失效,可能引发整个模块、设备、系统层面的失效,最终产生危险输出,发生事故。对于软件,它属于无形产品,软件人员能力,需求和设计过程,测试的情况都会影响最终软件的质量,这些不可量化的失效统称为系统性失效,世界上没有绝对完美的软件代码,优质的软件也不过每千行代码平均20个左右BUG,这些BUG都像一枚枚炸弹隐藏在软件代码之中,当运行环境、外部或内部条件达到触发条件时,便会一触即发,在系统中造成巨大的负面影响,可能最终导致事故的发生。因此功能安全的使命就是尽可能的降低随机性失效和系统性失效,将风险降到可接受的范围内。
安全完整性等级
风险到底在什么范围内是可接受的呢?功能安全专业上通过安全完整性等级SIL或ASIL来区分。在工控领域、轨道交通领域和汽车领域里安全完整性等级分类定义有所差别:
功能安全怎么做?_第1张图片
功能安全包括技术和管理两部分,覆盖产品生命周期的每一个环节。功能安全技术包括逐层细化的功能安全分析,架构层面的功能安全方案设计,硬件的安全设计与随机失效的定量计算,软件的功能安全设计与防护,测试技术的充分运用。功能安全管理包括功能安全管理、配置管理、质量管理、变更管理等内容。一个功能安全项目的功能安全技术流程和管理内容见下图,其中箭头线表示执行顺序和输入关系。
功能安全相关管理
1、配置管理:功能安全一定要进行完善的配置管理,包括文件管理、版本管理、基线管理。
2、安全管理:在项目之初需要制定安全计划,项目过程中需要执行安全评审、安全认可、安全审计、安全评估、危害的管理、安全应用条件的管理、安全验证与确认的管理等一系列活动,最终需要通过安全例证给出安全性的证明。
3、质量管理:功能安全项目需要通过人员能力保证和开发流程保证确保系统性失效的降低,因此在质量管理过程中需要进行人员资质评估,流程管理,质量审计。
4、变更管理:功能安全产品进行变更时需要进行完善的变更管理,执行变更影响分析,按照规范的变更流程开展变更活动。

功能安全专业技术
1、定性的安全分析:逐层深入的功能安全分析,包括功能、接口、系统设计、硬件、软件、生产和操作层面,可采用HAZOP,FMEA,FTA等专业方法,但每一层面的分析都应深入技术、深入设计之中,定性的安全分析与设计开发是相辅相成的关系,随着设计的深入,安全分析逐步深入,同时安全分析的成果又指导设计执行,让系统实现充分的功能安全防护。
2、定量的安全分析:定量的安全分析主要是对架构和硬件的度量,基于架构计算诊断覆盖率,基于硬件元器件计算失效率,最终计算系统的随机失效是否满足安全目标。
功能安全开发技术
1、系统功能安全技术:系统层面需要从功能安全的角度出发,设计安全的系统架构,继承安全分析输出的安全需求,实现各种防护机制。例如在系统层面上考虑对输出增加独立的监测,发现错误应能够有效切断输出。
2、硬件功能安全技术:在硬件设计上需要考虑功能安全技术要求,在硬件上实现功能安全防护设计。例如在硬件设计上注意功能实现电路与安全机制电路之间的电气独立性,冗余设计之间的物理独立性;在硬件元器件选型时需要考虑功能安全因素,对于独立承担关键安全功能的复杂集成器件,应选择经过第三方安全认证的型号。并且要考虑元器件的随机失效率是否满足要求。
3、软件功能安全技术:考虑功能安全技术要求,在软件设计与实现上进行功能安全防护。例如软件代码编写应采用防御性编程,对入参类型、边界值进行检查;故障时采用向前恢复或向后恢复技术;软件上要对关键安全功能相关内容进行内存保护;对软件任务进行时间保护和顺序监测。
总之,功能安全开发技术是深入到技术中对功能安全进行防护,实现故障导向安全的原则。

功能安全测试技术
1、单元测试:包括软件代码的语句覆盖测试、分支覆盖测试、MC/DC覆盖测试等,要保证对代码的测试充分,降低系统性失效。
2、集成测试与确认测试:针对系统、软件、硬件的功能、接口进行逐层测试,并且考虑功能安全要求,进行充分的故障插入测试,保证系统在各种故障情况下都能够导向一个安全的状态。
功能安全怎么做?_第2张图片
功能安全人员角色
功能安全贯穿项目的每一个环节,需要每一个角色人员的参与。在实际功能安全项目中,精通技术研发又精通功能安全专业知识的顶尖人才特别稀少,一般项目都是由精通功能安全的专家与精通技术研发的专家,连同各专业工程师,共同配合一起完成。专业的功能安全人员负责对设计开发内容执行功能安全分析,输出安全需求以供设计开发实现,并对实现过程进行功能安全管理。技术人员负责执行具体的设计开发活动,实现功能安全要求,确保安全防护落实细节正确可靠。
功能安全怎么做?_第3张图片

你可能感兴趣的:(功能安全)