什么是功能安全(FS)?
在现代工业控制领域中,可编程电子硬件、软件系统的大量使用,大大提升了自动化程度。但由于设备设计中的缺失,以及开发制造中风险管理意识的不足,这些存在设计缺陷的产品大量流入相关行业的安全控制系统中,已经造成了人身安全、财产损失和环境危害等灾难频出。为此,世界各国历来对石化过程安全控制系统、电厂安全控制系统、核电安全控制系全领域的产品安全性设计技术非常重视,并且将电子、电气及可编程电子安全控制系统相关的技术发展为一套成熟的产品安全设计技术,即“功能安全”技术。
欧美已经颁布了成套的功能安全相关产品指令和设计标准,并深入到各个领域,如:汽车(ISO26262)轨道控制(EN 5012X)、核电(EN 61513)、工业装备及机器控制(EN 62601, EN ISO 13849-1/2)、过程控制(EN 61511)等,国际上,IEC 形成的 IEC 61508,IEC 61511 等系列标准已经逐步成为各国家、行业广泛认可的基本功能安全标准,中国也仿效并形成了的相应国家标准,其他行业性功能安全标准也在参照并将逐步形成为国家行业性标准。
ISO26262
ISO26262是从电子、电气及可编程器件功能安全基本标准IEC61508派生出来的,主要定位在汽车行业中特定的电气器件、电子设备、可编程电子器件等专门用于汽车领域的部件,旨在提高汽车电子、电气产品功能安全的国际标准。
ISO26262从2005年11月起正式开始制定,经历了大约6年左右的时间,已于2011年11月正式颁布,成为国际标准。中国也正在积极进行相应国标的制定。
安全在将来的汽车研发中是关键要素之一,新的功能不仅用于辅助驾驶,也应用于车辆的动态控制和涉及到安全工程领域的主动安全系统。将来,这些功能的研发和集成必将加强安全系统研发过程的需求,同时,也为满足所有预期的安全目的提供证据。
随着系统复杂性的提高,软件和机电设备的应用,来自系统失效和随机硬件失效的风险也日益增加,制定ISO 26262标准的目的是使得人们对安全相关功能有一个更好的理解,并尽可能明确地对它们进行解释,同时为避免这些风险提供了可行性的要求和流程。。
ISO 26262为汽车安全提供了一个生命周期(管理、开发、生产、经营、服务、报废)理念,并在这些生命周期阶段中提供必要的支持。该标准涵盖功能性安全方面的整体开发过程(包括需求规划、设计、实施、集成、验证、确认和配置)。
ISO 26262标准根据安全风险程度对系统或系统某组成部分确定划分由A到D的安全需求等级(Automotive Safety Integrity Level 汽车安全完整性等级ASIL),其中D级为最高等级,需要最苛刻的安全需求。伴随着ASIL等级的增加,针对系统硬件和软件开发流程的要求也随之增强。对系统供应商而言,除了需要满足现有的高质量要求外还必须满足这些因为安全等级增加而提出的更高的要求。
应用
系统安全可以从大量的安全措施中获得,包括各种技术的应用(如:机械,液压,气动,电力,电子,可编程电子元件)。尽管ISO26262是相关于E/E系统的,但它仍然提供了基于其他相关技术的安全相关系统的框架。
ISO26262:
-提供了汽车生命周期(管理,研发,生产,运行,服务,拆解)和生命周期中必要的改装活动。
-提供了决定风险等级的具体风险评估方法(汽车安全综合等级,ASILs)
-使用ASILs方法来确定获得可接受的残余风险的必要安全要求。
-提供了确保获得足够的和可接受的安全等级的有效性和确定性措施。
功能安全受研发过程(包括具体要求,设计,执行,整合,验证,有效性和配置),生产过程和服务流程以及管理流程的影响。
安全事件总是和通常的功能和质量相关的研发活动及产品伴随在一起。ISO26262强调了研发活动和产品的安全相关方面。
ISO26262主要用于安装在最大毛重不超过3.5吨的乘用车上的一个或多个E/E系统的安全相关系统。ISO26262唯一不适用于为残疾人设计的特殊目的车辆的E/E系统。系统研发早于ISO26262出版日期的,也不在标准的要求之内。ISO26262表述了由E/E安全相关系统,包括这些系统的互相影响,故障导致的可能的危险行为,不包括电击,火灾,热,辐射,有毒物质,可燃物质,反应物质,腐蚀性物质,能量释放及类似的危险,除非这些危险是由于E/E安全相关系统故障导致的。
行各业都会制定标准,指导未来发展并限定最低准入门槛。在汽车电子行业,这一标准就是ISO 26262,它将功能安全定义为:
“避免因电气/电子系统故障而导致的不合理风险”。
不同领域的标准并不完全一致,例如针对电气和电子系统的IEC 61508以及飞行器电子硬件的DO-254都有各自的定义方式。更需值得注意的是,它们都拥有专用术语,并提供了包括目标参数在内的工程研发指导。因此,开始产品研发前确定目标市场并制定合适的流程至关重要,因为中途修改研发流程必然会导致效率低下。图1展示了硅片IP的不同应用标准。实际操作中,如果需要满足多套标准,则可以求同存异,先列出专属需求,再执行质量管理等通用准则;最一开始就要做到安全第一。
图1:硅片IP的功能安全标准
实际操作中,功能安全系统必须由独立评估员认证,符合所有安全标准。实现功能安全需要具备预测能力的故障模式,实时判断系统状态是功能完整,部分功能损坏,还是系统必须关闭进行重启或重置。
并不是所有故障都会立刻引发严重事故。比如,汽车动力转向系统故障可能会导致突发性的错误转向,但是由于电气和机械设计天然的时间延迟,故障并不会马上产生后果,这一延迟通常是几毫秒以上,ISO 26262将之定义为容错时间间隔,间隔长短取决于潜在的事故类型和系统设计。所以,不难理解,对系统安全要求越高,产生不安全事件的故障就越应该避免。
理想情况下,功能安全不会影响系统性能;但现实生活中,现行的许多安全措施都会严重影响系统性能、功率和面积(PPA)。如何在保证功能安全的前提下减轻对系统性能的不利影响以及设计制造成本的上升,是设计师们面临的一大难题。
芯片IP的功能安全曾是非常小众的领域,只有少数汽车、工业、航空航天和其他类似市场的芯片与系统开发商感兴趣。然而,随着过去几年各类汽车应用的兴起,情况已经发生巨大变化。除了汽车外,还有很多其他行业也能从电子器件的增加受益,当然保障功能安全是大前提。医疗电子和航空就是两个典型例子。
自动驾驶过去几年吸引了不少人的眼球,但一直是雾里看花;如今,随着高级驾驶辅助系统(ADAS)及富媒体车载信息娱乐系统(IVI)的普及,尽管高度自动化驾驶的时代依然遥远,但自动驾驶汽车的前景已变得愈发清晰。尺寸形状各异的无人机和日益普及的物联网也是亟需功能安全的领域,ARM 的技术将成为一大助力。
与其他技术市场一样,新兴的功能安全应用也需要半导体的驱动;这并不是纸上谈兵,日新月异的产品创新已经引起了ARM合作伙伴的浓厚兴趣。多数功能安全嵌入式系统都需要具备安全防护及实时处理两大核心要素,ARM Cortex-R系列处理器为此需求量身定制,为嵌入式系统提供高性能运算解决方案,确保产品的高可靠性、高可用性、容错、以及/或强大实时自主判断能力。这些特性为实现ADAS和IVI系统的高安全完整性打下基础,不仅可以执行关键行为处理,应对安全相关的中断事件,与其他系统通讯,还可以对集成度较低的复杂功能进行监管。
故障可能是系统性的(如规范制定和设计过程中的人为因素);也有可能与使用的工具有关。减少故障的一种方法是执行严苛的质量管控流程,必须包括详细的规划、审查和量化评估。合理的规划使用工具认证非常重要,管理与追踪需求变更的能力也同样关键。ARM的Compiler 5编译器已经通过南德集团(TÜV SÜD)认证,助力安全研发,客户无需对编译器进行额外认证。
还有一种故障类型被称为随机硬件故障。它们可能是图2显示的永久性故障,比如短路;也有可能是由于天然辐射而造成的软性故障。这类故障可以利用集成在软硬件的方案进行处理,因此系统级的技术也同样重要。举例来说,逻辑内建自测试(BIST)可以应用于系统启动和关闭,区分软性和永久性故障。
图2:故障类型
故障检测和控制措施的选择和设计是流程设计师最喜欢的环节,因为他们可以同时用系统级和微架构级的技术大展手脚。建立故障模式概念和效果分析(FMEA)是个不错的开始,列举出所有可能出现的故障模式及其后果的严重程度。有了这些信息,加上设计师对复杂系统的深入理解,即可鉴别出最严重的故障模式,并设计出应对措施。
应对潜在故障的方法较多,下面列出了一些最常用的技术:
·多样化检查器:使用另一条电路检查主电路是否发生故障。举个例子,检查器可以为中断控制器计数,持续记录人为及系统引起的中断总数。
·完整锁步复制:该技术主要用于Cortex-R5处理器,对一个IP元件(如一个处理器)进行多次实例化,利用循环产生操作延迟,生成时间和空间冗余。大容量存储通常由多个实例共享,以降低所需面积。尽管这一技术非常可靠,但也极为昂贵。
·选择性硬件冗余:这个方案里,只有硬件的关键部分可以复制,如仲裁器。
·软件冗余:硬件冗余通常非常复杂,而且会产生间接成本,是对资源的不合理使用。硬件运算的替代方法就是,在多个处理器内核上运行同一次计算,检查结果是否匹配。
·错误检测和校正码是另一种为人熟知的技术,通常被用于保护存储器和总线。代码类型多种多样,但目标只有一个,既通过少量附加位获得更高冗余,无需复制所有底层数据。汽车系统中,这一尖端技术可以利用足够多的冗余检测出一个存储字的2位错误;并支持错误修正。
检测出故障后就必须进行记录,以帮助监管软件判断系统的健康和安全状况。安全故障(如存储器修正)和危险故障(如不能挽回的硬件故障)必须分别记录。
故障记录通常从故障计数开始,可以由系统级架构记录有信号事件(类似于中断)的数量;或者由IP计数器记录。为了解这些事件发生的原因,最好还能将过去的事件作为参考,判断当前时间的发生原因。为支持这一需求并进行调试纠错,可以允许一些IP捕捉额外信息,如被侦查的存储地址。因为该地址通常会由软复位保存,所以可以在系统启动和系统自检过程中被读取。
有一点需要牢记,故障也可能发生在安全架构本身。与硬件故障不同的地方是,后者通常可以在使用过程中被很快发现,但安全检查器中的故障可能是潜伏的,它已经无法侦测危险故障,但故障却已经悄悄地蔓延开了。这样的故障被称为潜伏故障,定期测试检查器是个不错的方法。
不同的标准体系反应安全等级的方法也各不相同,但其主要目的是直观的反映功能的关键性。比如说,控制挡风玻璃雨刮、安全气囊或制动器的ECU,完整性必须高于控制车速表或泊车传感器的ECU,因为前方视野至关重要,突然刹车或气囊充气可能造成致命后果,驾驶员也会凶多吉少;而车速表或泊车传感器对安全停车的重要性就低得多了。
换句话说,安全完整性等级是与人避免危险情况的必要性和能力相关的;而各项标准的作用就是指导人们如何定义安全完整性等级,并提供相关参数,帮助其对系统完整性进行量化。
IEC 61508将安全完整性等级(SIL)分成4级,第4级为最高完整性。与之相似,ISO 26262提出了汽车安全完整性等级(ASIL),最低为ASIL A,最高为ASIL D。此外,就表二所示,针对ASIL B到ASIL D,ISO 26262分别就单点故障、潜伏故障和硬件故障概率指标(PMHF,业内也称及时故障)提出了建议参数。可检测故障的比例被称为诊断覆盖率。
表1. ISO 26262的推荐标准
尽管这些指标通常被视为标准要求,但在实际应用中,它们一般只被视为建议,供应商可以自行制定目标参数。最重要的目标是打造安全的产品,而不是在产品参数表上多加几个数字。让我们再次借用前面提到过的例子——挡风玻璃雨刮、制动器和安全气囊,这些元件的安全级别可能达到ASIL D,而车速表和泊车传感器可能是ASIL B或更低,具体级别取决于整体系统安全设计。
无论诊断覆盖率多高,打造功能安全应用的时候都必须遵循合适的流程——这也是标准体系最大的益处。此外,无论采用何种功能安全措施,严格的质量流程都可以提升任何应用的整体质量。
功能安全IP的设计流程
开发功能安全应用IP时,“循规蹈矩”非常重要。这个过程必须从一开始就将安全纳入考虑,而且还必须营造支持安全的文化。
完整的开发流程必须包含以下几个重要方面:
·安全管理:包括团队组织架构,具体内容如:明确不同职位的定义和职责、打造安全文化、定义安全生命周期,定义功能安全支持级别。安全生命周期的设定包括制定一份成功计划,选择合适的开发工具,确保团队接受充分的培训。
·需求管理和故障检测及控制措施(应对措施)的可追溯性。为精确实现需求追溯,需求本身定义必须要明确,精准,且具备唯一性。追溯等级取决于完整性的要求,文件可以高等级;产品则需要从故障检测到验证等各个环节面面俱到——计划过程不得空穴来风,必须经过详细验证。
·质量管理是需求追溯的拓展和延伸。勘误表必须得到妥善管理和使用。ARM在这一领域拥有丰富的经验。此外,流程的记录和传达也同样重要。
IP开发是ARM支持合作伙伴的一种途径,我们的合作关系并不会止于客户收到IP的那一刻。就功能安全相关的IP开发,ARM定义了2个安全文件包等级:
·最高至ASIL B的标准支持
·最高至ASIL D的延伸支持
每个安全文件包都包含一份安全手册,详细说明遵循的流程、故障检测及控制功能、适用场景和其他信息。我们同时提供“故障模式及效果分析报告”,并提供案例分析,阐述如何用IP实现更高的诊断覆盖率;我们也为客户的独立分析提供芯片级的更多支持。此外,文件包也就ARM和被授权方的开发接口做出了明确定义。
安全状况报告的建立和使用需要步步递进。该报告由芯片开发商提供信息,所有厂商的信息都必须综合考虑,最后交付客户使用,层层递进。获许可最多的芯片IP被称为“独立安全单元”(SEooC),其设计师们无需了解该芯片后续的使用方式。因此,安全手册必须说明 IP开发商对芯片使用建议和说明,避免误用。同样,OEM的1级控制器供应商也可以使用SEooC模型开发安全功能。因此,IP级的安全文件包可用于整个价值链,是 IP开发的重要部分。
从汽车到医疗再到工业设备,依赖电子器件的应用越来越多,功能安全正变得更加重要,并将成为常规要求。功能安全是IP厂商必须达成的要求,也是让基于该IP建造的模型顺利运行的必要条件,因此IP厂商必须将每项研究成果授予尽可能多的芯片合作伙伴,反之亦然。有了坚实的质量和可靠性,功能安全才能带来更广泛的好处,进而推动全行业的质量和可靠性提升。包括驾驶员安全、燃油经济性、舒适度和车载信息娱乐系统等,功能安全是芯片设计师解决更高级别汽车难题的基础。