在自动化程度日益提升的世界中,系统的安全性与可靠性至关重要。功能安全是其中关键的一环,它能确保系统即便出现故障,也能正确响应输入。这意味着功能安全不能事后补救,而要从软件开发流程之初就将其纳入。
但究竟什么是功能安全?它为何如此重要?又该如何实现?
什么是功能安全?
功能安全是系统或设备整体安全的一部分,它依靠自动保护机制,以可预测的方式对输入或故障做出正确响应。其目的是确保安全功能在任何情况下都能正常运行,从而最大程度降低对人员、财产和环境造成伤害的风险。
功能安全通过实施安全功能来达成,这些功能用于检测潜在危险状况,并采取恰当措施防止事故发生。这些功能通常嵌入软件之中,而软件是现代工业和消费产品必不可少的部分。
功能安全的重要性
功能安全之所以至关重要,有几个原因,其中有些原因显而易见:
- 保护生命安全:功能安全最首要、最明显的目标是预防事故、降低伤害风险,以此保护人类生命。这在汽车、医疗和工业自动化等行业尤为关键,因为这些行业的系统故障可能导致灾难性后果。
- 遵守法规要求:许多行业都受严格法规约束,这些法规强制要求实施功能安全。遵守这些法规是产品上市销售的基本条件。
- 可靠性与可信度:实施功能安全可提高系统可靠性,进而让用户与利益相关者信任系统。可靠的系统更不易出现故障,从而提升客户满意度,降低责任风险。
- 节约成本:确保功能安全具有经济效益。与在现场处理故障相比,在设计和开发过程中尽早解决安全问题更划算。功能安全有助于避免代价高昂的召回、维修和法律诉讼。此外,品牌声誉受损会影响销售,有时影响更为致命。
如何在软件开发中实现功能安全
在软件系统中实现功能安全,需要一套结构化的开发流程。以下是必须执行的关键阶段和核心行动:
- 开展危害与风险评估:开展危害与风险评估:第一步是识别软件行为和系统交互中的潜在危险,再评估相关风险。这包括了解系统运行环境和故障的潜在后果。也就是说,需要分析运行环境,以确定每种危害的严重程度、发生概率和可控性。常用的风险等级评估方法有 HAZOP(危险与可操作性分析)、FMEA(故障模式与影响分析)或 FTA(故障树分析)。应根据系统复杂性和行业要求来选择评估方法:
- HAZOP:最适用于面向过程的系统,用于检查是否偏离设计意图
- FMEA:对组件级分析有效,可识别单点故障
- FTA:适用于复杂系统,可从潜在事故反向追溯到根本原因 - 定义与明确安全要求:将危害和风险评估结果转化为清晰、可测试的安全要求,同时明确功能安全要求(系统必须做什么)和安全完整性等级(系统必须可靠执行的程度)。不过,不必从零开始。已有大量标准和指南(见下文)可指导需求制定,避免从零开始。
- 设计并实施功能安全:此时要在系统中设计和实施安全功能。在这一阶段,软件结构设计尤为重要,这样才能正确隔离和管理安全关键组件。这也有助于实施具备冗余、看门狗和故障安全等安全机制的软件模块。当然,硬件也应通过内存保护、冗余处理能力和安全故障模式等功能,来支持所需的安全完整性等级。
- 执行验证与确认:一切就绪后,需对系统进行严格测试,验证其是否满足安全要求,确认其在所有条件下都能正确运行。为此,应从一开始就开展架构验证和静态代码分析,以便尽早发现问题。早期发现的问题更容易修复,造成的损失也更小。此外,在这一阶段发挥重要作用的测试(如单元测试、功能测试、集成测试和故障注入测试等)也会更顺利、更成功。
- 提供可追溯性:确保从需求到分析,再到测试用例及其各自结果的可追溯性,是一种良好做法。可追溯性确保每项安全要求都能通过设计决策、实施选择、验证活动和验证结果追溯。这形成了可审计的追踪链条,证明安全要求已得到妥善处理,也为众多监管框架所要求的安全案例开发奠定了基础。
- 建立并维护安全管理:在系统的整个生命周期中,需建立安全管理流程,确保安全性能持续受控。这包括文档管理、配置控制和变更管理,以及定期审查、审计和必要的安全功能更新。
国际标准和指南
如上所述,不同行业有多项规范功能安全的国际标准和指南。这些标准为在系统中实施和维护功能安全提供了框架:
- IEC 61508:这是电气、电子和可编程电子系统功能安全的基础标准。它为管理整个系统生命周期的功能安全提供了一个全面的框架。
- ISO 26262:该标准专用于汽车行业,涉及道路车辆中电气和电子系统的功能安全。它定义了汽车安全完整性等级 (ASIL),并为在汽车系统中实现功能安全提供了指南。
- IEC 62304:该标准专为医疗器械中使用的软件开发而设计。它定义了一个全面的软件生命周期模型,包括规划、开发、测试、维护和风险管理活动。虽然该标准没有明确使用“功能安全”这一术语,但它体现了相同的原则,确保医疗器械软件以最大限度降低风险并确保产品整个生命周期内患者安全的方式进行开发和维护。
- IEC 60601:该标准同样涉及医疗器械行业,旨在确保医疗电气设备的安全和性能。它涵盖了医疗器械从设计到报废的整个生命周期。
- IEC 62061:该标准专门针对机械行业,规定了与安全相关的控制系统的功能安全要求。
- EN 50128:该标准适用于铁路行业,明确规定了铁路控制和防护系统软件的各项技术要求。
汽车行业功能安全的失效案例
尽管功能安全适用于各行各业,发生在汽车行业的失效案例往往比其他行业更受关注。这主要源于其公众可见性和影响力。汽车是消费品,会影响到数百万用户,加之其与日常生活的紧密联系有时甚至带有情感因素,这类事件往往获得更多媒体报道。以下是汽车行业中因功能安全失效导致严重后果的典型案例:
意外加速事故: 2000年代末,某汽车制造商面临大量关于其车辆意外加速的报告。调查显示,电子节气门控制系统的软件问题是重要诱因。由于缺乏足够的功能安全措施,导致了多起事故,造成了人员伤亡。该制造商不得不召回数百万辆汽车,并面临巨大的法律和经济影响。
自动驾驶系统故障:尽管仍属发展中的技术,自动驾驶系统被期待达到——甚至超越——传统系统的安全水平。某领先制造商的自动驾驶系统曾涉及多起事故,其系统未能检测到障碍物或对路况作出适当响应。这些事故凸显了高级驾驶辅助系统(ADAS)中确保功能安全所面临的挑战。功能安全措施不足可能导致严重事故,正如自动驾驶系统未能防止碰撞的案例所示。更值得警惕的是,这也会影响公众对新技术的信任度与接受度。
点火开关缺陷:2014年,由于多款车型的点火开关存在缺陷,导致大规模车辆召回。该缺陷可能导致发动机意外熄火,并使安全气囊等关键安全系统失效。由于在设计和制造过程中未采取强有力的功能安全措施,最终酿成多起事故与伤亡事件。涉事制造商不得不召回数百万辆汽车,并支付巨额罚款和赔偿金。
结论
功能安全是现代系统的关键方面,可确保系统在任何条件下都能正确、安全地运行。实现功能安全需要采用系统化的方法,包括危害与风险评估、安全要求规范、设计与实施、验证和确认以及持续的安全管理。IEC 61508、ISO 26262 等国际标准为不同行业实施功能安全提供了框架。
功能安全的重要性怎么强调都不为过。它能保护生命安全,遵守法规要求,提升系统可靠性,同时还能节约成本。通过遵守功能安全标准与指南,企业可以降低风险、预防事故,并确保系统的安全性和可靠性。
我们能为您提供的支持
Axivion Static Code Analysis已通过认证,可用于开发符合相应标准最高安全等级要求的安全系统:
- ISO 26262 最高至 ASIL D
- IEC 61508 最高至 SIL 4
- IEC 62304 最高至 C 类
- EN50128 最高至 SIL 4
- EN 50657 最高 SIL 4
咨询我们的专家