本白皮书介绍功能安全概念,例如危害分析和风险评估、随机故障和系统性故障、独立安全元素以及 IEC 61508 SIL 和 ISO 26262 ASIL 等级。提供了有关 AM243x MCU 和 AM64x 处理器系列如何通过使用片上安全 MCU 和安全诊断来帮助系统集成商实现功能安全目标的示例。
功能安全目标是在设计过程开始时定义的系统级目标,重点是降低潜在危险事件的风险。伤害风险不能通过设计完全消除,但通过适当的设计技术,可以将危害风险降低到可接受的水平。根据最终应用、潜在危害的程度以及发生危险的可能性,功能安全目标会有所不同。以可接受的伤害风险水平实现安全目标的方法称为安全概念。
为了更好地了解功能安全目标和安全概念,剖析一家现代制造工厂可能会有所帮助。在制造车间,自动化和非自动化流程和机械与许多操作、监控和维修保养设备的人员共存。制造设备各不相同,从快速移动的机械臂到简单的测试和测量站,在适当的条件下全都可能对个人造成潜在危害。
为了降低制造车间中的危害风险,我们在设计过程的早期就为制造设备和工厂工艺制定了安全目标。为了应对人被机械臂击中的潜在危险,我们定义了一个安全目标,以将这种危险的发生率降低到每运行 10 亿个小时少于 1 次。然后定义安全概念来支持这一安全目标;安全目标使用基于激光的光幕在机械臂周围创建禁止区域,这是一种基于机器学习 (ML) 的视觉系统,用于跟踪操作员相对于禁止区域的位置,以及在检测到操作员进入禁止区域时停止机械臂的失效防护方法。安全转矩关闭 (STO) 和安全制动控制 (SBC) 安全功能用于实现机械臂的紧急停止。STO 会切断电机的电源,而 SBC 会向电机施加外部制动。STO 和 SBC(以及其他特定于电机的安全功能)通常在电机控制应用中用于支持安全概念。下一节(节 2)详细介绍了系统集成商用于定义安全目标和安全概念的过程。
危害分析和风险评估 (HARA)是定义系统级安全目标的一个广为接受的过程。HARA 流程的第一步是识别系统中的所有潜在危险,然后根据危害风险对每种危险进行分类。用于对危险进行分类的条件因所使用的标准而异,但通常包括诸如以下因素:危险程度(严重性)、发生的可能性(暴露)和危险的可控程度(可控性)。本白皮书重点介绍安全完整性等级 (SIL) 和汽车安全完整性等级 (ASIL) 危险分类技术和级别。
在确定系统级危险并指定 SIL 或 ASIL 等级后,可以定义安全目标来降低危险。为了在终端系统中实现安全目标,需要安全概念,这些概念在安全概念评估阶段定义。在这个阶段中,会确定支持安全概念所需的各个组件,并为其分配适当的 SIL 或 ASIL 等级。例如,在这个阶段中,系统集成商会确定 MCU 或处理器对于实现安全概念是否至关重要,如果是,则分配适当的 SIL 或 ASIL 等级。可以使用符合安全标准的分解技术来降低基于系统架构的某些组件的安全完整性等级,而不会降低最终的系统安全完整性等级。
图 2-1 以图形方式显示了 HARA 和安全概念阶段。
对于很多工业应用,SIL 等级用于对危险进行分级并定义安全概念元件的可接受故障率。国际电工委员会 (IEC) 61508 功能安全标准中定义了分配 SIL 等级的条件。IEC 61508 广泛应用于许多行业,涵盖了包含电气、电子或可编程电子器件(或这三种功能的任意组合)的安全相关系统。
在 IEC 61508 中,根据后果、频率和暴露时间、未能避免特定危害的可能性和意外事件的可能性这几个方面对每个危害进行了分类。
图 3-1 展示了用于将每种危害分类为 SIL 1 至 SIL 4(SIL 1 的伤害风险最低)的矩阵。
对于汽车应用,使用 ASIL 等级对危险进行分级和定义安全概念元件的可接受故障率。国际标准化组织 (ISO) 26262 标准中定义了分配 ASIL 等级的条件。IEC 61508 与 ISO 26262 的目标相似,但使用了不同的方法和安全度量指标
ISO 26262 使用 S 严重性或危害、E 暴露的可能性以及 C 可控性(可以避免危害的程度)对每个危害进行分级。通过使用图 3-2 所示的矩阵,每个危害被归类为质量管理 (QM) 或从 ASIL A 到 ASIL D 的 4 个等级之一。QM 等级表示识别的危害不需要专门的安全目标来降低风险,而 ASIL D 等级表示最高的潜在危害风险。
时基故障率是用于定义 IEC 61508 和 ISO 26262 中可接受风险等级的关键合规性指标。时基故障 (FIT, Failures In Time) 定义为运行 109 小时(即运行 10 亿个小时)间隔内的时基故障数。
并非所有故障都具有相同的潜在危害,因此故障分为不同的类别,例如非安全相关故障、检测出的安全故障、未检测出的安全故障、检测出的危险故障和未检测出的危险故障。原因很明显,最关键的类别是未检测出的危险故障。其他故障类别不会产生严重的安全问题,或者可以通过诊断来检测,从而得以减轻来消除任何潜在的危害。元件级别的时基故障率定义随着时间的推移可能发生的最大未检测出的危险故障数。
表 3-1 和表 3-2 列出了 IEC 61508 SIL 和 ISO 26262 ASIL 度量指标。
HFT = 0 | HFT = 1 | |||
---|---|---|---|---|
SIL 等级(B 类系统) | PFH | SFF | PFH | SFF |
SIL 1 | ≤ 1000 FIT | ≥60% | ≤ 1000 FIT | < 60% |
SIL 2 | ≤ 100 FIT | ≥ 90% | ≤ 100 FIT | ≥ 60% |
SIL 3 | ≤ 10 FIT | ≥ 99% | ≤ 10 FIT | ≥ 90% |
SIL 4 | 无法达到 | ≤ 1 FIT | ≥ 99% |
ASIL 等级 | PMHF | SPFM | LFM |
---|---|---|---|
ASIL A | ≤ 1000 FIT | 未指定 | 未指定 |
ASIL B | ≤ 100 FIT | ≥ 90% | ≥ 60% |
ASIL C | ≤ 100 FIT | ≥ 97% | ≥ 80% |
ASIL D | ≤ 10 FIT | ≥ 99% | ≥ 90% |
IEC 61508 标准使用每小时失效概率 (PFH, Probability of Failure per Hour) 来表示每小时未检测出的危险故障 总数。安全失效分数 (SFF, Safe Failure Fraction) 表示不属于未检测出的危险故障的故障所占的百分比。
与 PFH 度量指标类似,ISO 26262 使用硬件随机失效度量指标 (PMHF, Probabilistic Metric for random Hardware Failures) 表示未检测出的危险故障总数。单点故障指标 (SPFM, Single Point Fault Metric) 类似于 SFF。
ISO 26262 添加了一种用于 IEC 61508 中没有的诊断硬件的附加故障度量,称为潜在故障度量指标 (LFM, Latent Fault Metric)。诊断硬件故障被视为潜在故障,因为在正常运行期间无法检测到故障,只有在未检测到可检测到的故障时才会发现故障。为了减少 LFM 故障的数量,诊断硬件的设计必须具有较高的测试覆盖率,并在现场部署之前进行广泛的测试。
可能会发生两种类型的故障:随机故障和系统性故障。随机故障的发生受许多因素的影响,包括工作温度、通电时间、工作电压和中子通量因子。因此,解决随机硬件故障的能力仅限于在运行时执行期间检测并尽可能防止故障并将系统置于安全状态。系统性故障是由设计、开发或制造流程中存在的某种不足引起的,并且通常源于开发流程中的缺陷。因为可以在开发的设计验证阶段检测到错误,所以该错误是系统性故障。
理论上,通过严格控制并遵守开发和制造流程,可以将系统性故障减少到零。SIL 或 ASIL 系统等级不会像随机故障那样指定时基故障率,而是定义必须遵守的不同级别的程序和流程。为了满足 IEC 61508 和 ISO 26262 的系统能力要求,TI 开发了一个内部安全 IC 开发标准,此标准已经通过独立第三方评估商 TÜV SÜD 的认证。有关 TI 安全硬件和软件开发认证的信息,请参阅 TI 的功能安全主页。
与系统性故障不同,随机故障不可能减少到零,因此必须通过使用不同的技术将其控制在可接受的水平。对于 IC,通过使用系统级设计技术,采用低时基故障率器件工艺制造并实施硬件和软件安全诊断,可以将随机硬件故障的数量降至可接受的 SIL 或 ASIL 等级。节 5介绍了安全诊断的含义,并提供了 AM243x 和 AM64x 器件中的使用示例。
TI 的 AM243x 微控制器和 AM64x 处理器是专用于在各种应用(包括可编程逻辑控制器 (PLC)、电机控制、工业通信网关和机器人)中支持功能安全的器件示例。AM243x 和 AM64x 系列具有多种器件选项,旨在实现 SIL-2 随机故障能力(≤100 FIT 的未检测出的危险故障)和 SIL-3 系统功能。在系统级别,当与外部安全处理器结合使用时,AM243x 和 AM64x 可协助系统集成商实现高达 SIL-3 HFT = 1 的等级。硬件容错 (HFT) = 1 表示,即使在单点硬件故障的情况下,系统也可以保持安全概念。
为了符合 SIL-2 随机故障度量指标,AM243x 和 AM64x 广泛使用安全诊断。器件级安全诊断分为 3 类,如图 5-1 所示。
单错校正双错检测 (SECDED, Single-Error Correcting Double-Error Detecting) 是一种用于检测内存错误的常见硬件诊断。顾名思义,这种诊断用于校正 1 位存储器错误,并检测 2 位甚至某些 3 位存储器错误。AM243x 和 AM64x 在所有片上存储器上都有 SECDED。
循环冗余校验 (CRC, Cyclic Reduction Check) 是一种用于检测数据传输错误的软件诊断。根据传输前的数据包计算 CRC 值,然后在接收端重新计算该值。如果计算结果不匹配,则数据在传输过程中损坏。系统集成商负责在软件中完成两次计算和实现软件。
内部看门狗计时器就是硬件 + 软件诊断的一个示例。看门狗计时器是在器件中实施的计数器,从初始值开始倒数到零。待监控的处理器运行一个程序,此程序定期复位看门狗计时器,从而防止计时器达到零。如果看门狗达到零,则假定处理器已锁定并置于安全状态,或者需要复位并 置于安全状态。
所有安全故障都路由到 AM64x 和 AM243x 错误信令模块 (ESM),并提供一个集中式故障管理和报告系统。ESM 模块根据严重性对错误进行分类,并允许系统集成商对每个错误的响应进行编程。响应选项包括将安全错误引脚(图 6-3)置为有效并生成高优先级或低优先级中断,或者将安全错误引脚置为有效并生成中断。
有关 AM243x 和 AM64x 支持的硬件和软件诊断的完整列表,请参阅功能安全手册。
AM243x 和 AM64x 均配备具有专用存储器和外设的片上隔离式 Arm® Cortex®-M4F 处理器。当配置为安全 MCU 时,可以使用 M4F 来监控主处理域,以支持 SIL 等级。
当与第二个安全 MCU 结合使用时,AM243x 和 AM64x 有助于支持最高等级为 SIL-3 HFT = 1 的系统。增加第二个安全 MCU 可以为系统增加硬件容错能力。两个安全 MCU 相互执行交叉校验计算。如果结果不匹配,可以使用其中一个处理器将系统置于安全状态。
与使用两个外部安全 MCU 相比,集成安全 MCU 可降低系统成本和减小布板空间。图 6-1 展示了带两个外部安全 MCU 的 SIL-3 HFT = 1 系统。图 6-2 展示了相同的系统,但其中一个安全 MCU 集成到 AM243x 或 AM64x 控制器中。
集成安全 MCU 需要使用无干扰 (FFI, Freedom From Interference) 技术将安全 MCU 域与主处理域隔离。FFI 定义为系统中两个或多个元件之间不存在级联故障和相关性;FFI 是一种隔离形式。
防火墙和超时垫用于隔离 AM243x 和 AM64x 安全域,确保主域中发生的事件不会影响安全域。超时垫可在域间通信期间保护安全域不受主域故障的影响。当安全域发起与主域的事务时,会设置看门狗计时器。如果计时器在事务完成之前到期(由于主域中的问题),则取消总线事务,从而防止安全域锁定。在主域无响应的情况下,安全域能够在保持活动状态的同时复位主域。
除了防火墙和安全垫之外,安全域中的其他安全特性包括时钟丢失检测电路、用于检测不正确时钟频率的双时钟比较器、总线事务奇偶校验、专用 I/O 电源轨和内置自检 (BIST) 支持。
图 6-3 展示了 AM243x 和 AM64x 安全域、主域复位、安全错误标志和器件复位引脚。发生灾难性错误时,此错误标志会向系统电源管理 IC (PMIC) 或其他器件发送信号,来启动 AM243x|AM64x 的复位。