5 功能安全
由于安全相关车辆部件中越来越多的机械和液压系统正在被电气和电子解决方案取代或至少补充,因此关于这些系统的“功能安全”的问题越来越多地出现。客户必须能够依赖这些系统,这个问题将决定性地影响他的购买行为。众所周知,由于公众广泛讨论某些车型的底盘和制动系统的安全问题,销售额急剧下降。如果在产品责任索赔的情况下,可以证明未遵守有关开发方法的技术状态,制造商可能面临高额的赔偿索赔和法律成本,尤其是在北美市场。
领先的标准是 [IEC 61508],它被指定为“IEC 基本安全出版物”。这意味着它将被用作特定应用标准的基础。有一个 ISO 工作组 (ISO TC22 SC3 WG16) 正在制定基于 IEC 61508 的道路车辆安全功能 (ASIL – 汽车安全完整性等级) 的标准之一。其目的是制定 ISO 26262 标准。如今,大多数汽车制造商已经要求其供应商开发符合 IEC 61508 的控制单元和软件。
IEC 61508 关注可能造成严重后果的潜在危险故障或故障,例如死亡或损害人员健康或损害环境。其目的是识别这些危险并在最大允许统计范围内抵消它们。在此过程中,识别出可能导致此类危险的系统。这些系统被描述为“安全相关”。单个故障或与其他系统故障相结合的故障可能构成危险。
根据潜在危险事件发生概率的最大允许上限,所有相关系统(例如传感器、电缆、连接器、控制单元)都需要根据其贡献程度达到“安全完整性等级”(SIL):分为四个等级,从 SIL 1 到 SIL 4。实现 SIL 1 和 2 相对容易,但已经需要先进的设计方法和彻底的测试和审查。如果要达到 SIL 3,工作量会急剧增加;例如,这是由于更改后需要重新验证。如果要达到 SIL 4,情况也是如此,因为这需要部署非常复杂的方法,例如正式设计方法。所需的 SIL 可以通过两种方式确定:
- 定量:预测硬件故障的频率并将其与可容忍的风险限度进行比较。
- 定性:通过定性评估确定 SIL,通常使用风险图(见图 5-1)。这种方法最好用于软件。
图 5–1 风险图示例
IEC 61508 涵盖概念、规划、开发、实现、安装、维护和修改,直至系统退役。在此背景下,所有安全相关任务的规划、协调和记录都是涵盖所有阶段的中央管理任务。关于软件开发,这些任务包括:
- 建立功能安全管理,明确界定职责
- 概念阶段
- 定义安全相关功能,
- 定义此功能的软件安全生命周期
- 执行危害分析和风险评估
- 建立功能安全概念
- 开发阶段
- 规划软件安全验证
- 类似 V 模型的过程模型,其中规范了软件安全要求、软件架构、软件系统设计、模块设计、编码、单元测试、集成测试、验证
- 软件安全验证规划
- 软件验证规划
- 变更管理系统,具有不同程度的更新验证和确认
开发要求因各个 SIL 级别而异。这特别涉及在某些情况下非常详细的关于要应用的方法、文档和配置管理的规定(见图 5-2)。
图 5–2 软件开发领域不同 SIL 等级对开发方法的要求示例
实施 IEC/61508 需要成熟的开发流程以及相关方法和支持工具。许多汽车 SPICE 流程有助于满足这些要求。但是,IEC/61508 要求通常明显超出汽车 SPICE 流程的要求,尤其是对于更高的 SIL。标准中没有有效的要求联系(例如,“某些汽车 SPICE 流程中的 X 级等于 SIL Y”)。简而言之:在 HIS 流程中达到 2 级是开发安全关键软件(SIL 1 及更高级别)的必要(但不是充分)先决条件。除此之外(即 3/4/5 级),几乎没有通用实践可以直接映射到 IEC/61508 要求之一。主要区别在于 Automotive SPICE 要求做什么,而 IEC/61508 则要求如何做,即用什么方法去做。