- 安全设计流程的简单描述
在安全设计中,通常且在某些情况下必须使用V模型设计方法。它定义并描述了一个健壮和可靠的软硬件设计过程,包括系统安全需求的定义,并贯穿设计、实施、测试和验证的整个过程,以确保这些需求在最终产品中得到正确和充分的满足。
在规范阶段,需要识别安全相关的关键系统(或子系统)的所有危险。以燃气锅炉为例,由于气体易燃,气体泄漏就是一种危险。因此,规范描述了必须在一定时间内检测到气体泄漏以防止火灾和爆炸。在设计层面,需要指定一个或多个可以降低危险发生可能性的安全特性。这可以是气体传感器或安装在燃气阀上的位置传感器,以确定阀门是否关闭。现在,与非安全应用不同的是,安全特性必须在运行时验证其按预期工作。这被称为功能安全。换句话说,安全机制必须是功能性的。设计师,或者OEM厂商,通过应用适当的诊断机制(自检)确保气体传感器和阀门位置传感器按预期工作,如果诊断检测到故障,系统必须进入安全状态以避免危险。在这种情况下,安全状态可能是关闭一个次级关闭阀,启动通风系统,或发出警报表明安全机制未正常工作。
各类安全标准也关注电子设备中的故障,即使是在较小规模的硅基组件中,例如系统中的微控制器。
一个普遍的误解是,功能安全的目标是避免故障,这是不正确的,部分原因是故障的概率永远不会为零。理解功能安全的正确方式是,安全相关的关键系统必须在定义的时间间隔内,以安全的方式检测和响应故障,这被称为故障容忍时间间隔(FTTI)。例如,使用气体传感器来检测是否存在气体泄漏(一个安全特性)的燃气锅炉,必须有可能验证气体传感器是否按预期工作并能检测到泄漏的气体。可能可以容忍10毫秒的泄漏,因为它不代表危险,但不太可能允许泄漏持续数十秒,因为那时泄漏的气体量就代表了危险。
因此我们的目标是理解危险和故障——以及如何可靠地检测它们。
- 故障模式效应和诊断分析(FMEDA)
每个安全标准都有略微不同的安全级别。对于IEC 61508标准,这些级别被称为安全完整性级别(SIL),范围从SIL 1到SIL 3。汽车行业的ISO 26262标准使用汽车安全完整性级别(ASIL),从ASIL A到ASIL D。IEC 60730标准则使用A类到C类。
由于FMEDA起源于ISO 26262标准,为了简化本文档的其余部分,我们将坚持使用这一标准的定义,并称之为ASIL。
2.1 故障模式效应和诊断分析(FMEDA)- 故障时间(FIT)
为了达到特定的ASIL级别,故障时间(FIT)率必须低于给定的限制。FIT率是指每十亿小时操作中预期的故障数量,因此它是故障概率的统计表示。
通常,在安全关键应用中,微控制器(MCU)被分配了整个电子模块允许的总FIT数的一定比例,例如10%。这可以根据设计的其余部分从一个应用调整到另一个应用。ASIL级别以及可接受的FIT限制是危害影响的结果,这表示为危害的严重性、暴露程度和可控性的乘积(有关详细信息,请参阅ISO 26262标准)。与ASIL A、B或C应用相比,与更严重伤害风险相关的ASIL D应用因此需要更低的FIT。
在ISO 26262标准中,ASIL B和ASIL C允许100 FITs,而ASIL D允许10 FITs。在Microchip的FMEDA中,默认情况下,MCU被分配了10%的FIT,因此MCU的允许FIT分别是ASIL B和ASIL C的10 FIT,以及ASIL D应用的1 FIT。
这一部分强调了在设计安全关键系统时,必须确保系统的FIT率符合所选ASIL级别的要求。通过FMEDA,设计者可以评估MCU的故障率,并确保它不会超过为特定安全级别设定的阈值。这有助于确保即使在发生故障的情况下,系统也能保持必要的安全性能,从而保护人员和环境免受伤害。通过这种方式,FMEDA成为了实现功能安全和满足安全标准要求的重要工具。
不同的ASIL级别对应不同的FIT(Failure In Time,故障时间,FIT率是一个衡量标准,用于表示在10亿小时的操作中预期发生的故障数量。)限制:
在Microchip的FMEDA中,微控制器(MCU)的基础FIT率是使用西门子SN29500模型确定的,该模型根据设计中的逻辑门数量、芯片尺寸、电压和电流、温度特性以及其他几个参数来计算FIT率。如果整个设备被视为安全关键的,所有特性都被使用,且没有应用诊断机制来检测故障(以及安全地处理它们),则适用基础FIT率。FMEDA作为一种工具,用于识别芯片中与安全不相关的部分,并向与安全相关的部分分配诊断机制以检测故障,这导致剩余FIT率大大降低,必须低于基于ASIL要求的FIT率。剩余FIT率代表了在应用诊断后MCU安全关键功能的不可检测故障,这也是ASIL级别规定限制的内容。
这段描述强调了FMEDA在安全关键系统设计中的作用,特别是在评估和降低微控制器的故障率方面。通过识别和分配适当的诊断机制,设计者可以确保系统的安全关键部分在发生故障时能够被可靠地检测和处理,从而满足或超过所需的安全完整性级别(SIL)或汽车安全完整性级别(ASIL)的要求。这种方法有助于提高系统的安全性和可靠性,确保在面对潜在故障时能够维持关键的安全功能。
2.2 诊断覆盖率
除了FIT率之外,评估和遵守诊断覆盖率的要求也是必要的。诊断覆盖率以百分比表示,描述了安全特性所需的模块被监控的程度,以及故障被检测的可靠性。任何特定类型诊断的覆盖率由标准定义,可以是低(60%)、中等(90%)或高(99%)。ASIL级别越高,所需的加权平均测试覆盖率就必须越高。加权平均是基于微控制器(MCU)模块的物理尺寸,因此较大的模块,如闪存,相对于例如小型定时器,贡献更多。这是因为ISO 26262考虑的故障主要与随机硬件故障有关,其概率是芯片面积的函数,或者在这种情况下,是模块面积的函数。
诊断覆盖率是功能安全评估中的一个关键组成部分,它确保了系统能够以足够的可靠性检测和响应潜在的故障。通过实施适当的诊断机制,如自我监控、冗余系统或其他检测手段,可以提高系统对故障的检测能力,从而增强系统的安全性。在设计安全关键系统时,满足高诊断覆盖率的要求对于确保系统在面对故障时能够维持其安全功能至关重要。
ISO 26262同样使用了质量管理体系(QM),这是最不严格的级别,它表示的是一般过程的符合性,而不是安全级别。
在ISO 26262标准中,QM级别是作为一个基础级别存在的,它不涉及具体的安全完整性要求,而是关注于确保开发和生产过程的质量控制。QM级别适用于那些不直接影响安全功能的过程,或者在安全功能中起到辅助作用的过程。这意味着,即使某些过程或组件不直接涉及安全关键的操作,它们仍然需要遵循质量管理体系的标准,以确保整体产品的质量和可靠性。
QM级别的要求有助于建立一个坚实的质量保证框架,为实现更高的安全完整性级别(如ASIL A、B、C和D)提供了基础。通过实施QM级别的过程,组织可以确保其开发和生产活动符合既定的质量标准,从而为提高产品的安全性和可靠性打下基础。尽管QM级别不像其他ASIL级别那样直接关注故障避免和故障响应,但它在整体安全文化和组织对质量的承诺方面发挥着重要作用。
各种ASIL级别的诊断覆盖率:
为了评估能够达到的ASIL合规性,使用了两个标准:单点故障度量(SPFM)和潜在故障度量(LFM)。单点故障是指微控制器(MCU)中的单个模块(功能)发生故障,导致安全特性无法按预期工作。例如,当软件尝试将I/O引脚设置为高电平时,如果引脚没有正确设置,就会发生单点故障。
潜在故障是指可能间接影响系统预期操作的功能发生故障。换句话说,就是MCU中的硬件监控/诊断机制发生故障。通过一个例子可以更容易理解这一点:在大多数基于MCU的安全关键系统中,CPU本身是一个主要功能,其中的错误将违反安全要求,因此是单点故障。因此,使用看门狗定时器(Watchdog Timer)来确保如果程序流程时间发生变化(这是CPU出现故障的迹象),MCU会被重置到安全状态。然而,如果看门狗定时器本身出现故障,它不会导致系统失败:CPU继续正常运行,而WDT的故障保持潜在(沉默)状态。然后,如果CPU也出现故障,WDT无法检测到不规则的程序流程时间变化,系统不会切换到安全状态,而是继续以可能不安全的方式运行。因此,必须验证看门狗定时器按预期工作,以确保其故障不会成为系统中的潜在故障。换句话说,硬件中实施的安全机制是很好的,它们减少了定期测试的需要,从而减轻了CPU的负担,但您仍然必须验证它们是否按预期工作。
拥有对我们试图实现的目标的基础理解后,现在是时候将FMEDA作为一个工具来审视了。为了确定剩余的FIT(故障时间)和诊断覆盖率,FMEDA必须由系统集成商填写。为此,系统集成商需要识别系统的潜在危险,并对系统如何在硬件/机械层面上实施有一个良好的理解。让我们再次看看(简化的)燃气锅炉系统,并仅关注燃气阀。这只是一个构建的例子,用于解释FMEDA的目的。
燃气阀用于关闭燃气流动。阀门的位置由数字信号控制,并且有一个数字位置传感器提供阀门是打开还是关闭的信息。从微控制器的角度来看,与安全相关的特征是对燃气阀的控制信号,因此是一个输出引脚/信号和输入引脚来读取来自阀门位置传感器的传感器反馈信号。为了简化,我们假设这是一个完美的阀门,不会发生故障,并专注于MCU。我们已经确定了与安全相关的特征,现在我们需要考虑涉及的模块的故障模式,以确保安全特征的正确操作。CPU、闪存、SRAM和时钟总是关键的,而在这种情况下,通用输入输出(GPIO)也是如此。下面展示了描述GPIO的FMEDA部分。
显示通用输入/输出引脚故障模式、影响和诊断的FMEDA部分:
Failure Mode
Effect
FIT Split
FIT rate component
Internal Diagnostics for Single Point Failure
I/O pin stuck
Wrong output value
20%
1,6926%
(H) IO_PORTS_INPUT_COMPARISON
(H) IO_PORTS_OUTPUT_MONITOR
No output
High impedance
20%
1,6926%
(H) IO_PORTS_OUTPUT_MONITOR
Pin pullup not working
Floating pin
13%
1,1002%
(H) IO_PORTS_OUTPUT_MONITOR
Pin invert output not working
Wrong output value
2%
0,1693%
(H) IO_PORTS_OUTPUT_MONITOR
Input sense not working
Incorrect operation
11%
0,9309%
(H) IO_PORTS_INPUT_COMPARISON
Hardware read/modify/write
modifies wrong pin
Wrong pin direction/value
11%
0,9309%
(H) IO_PORTS_OUTPUT_MONITOR
Hardware read/modify/write does
not update intended pin
11%
0,9309%
(H) IO_PORTS_OUTPUT_MONITOR
Virtual ports not working
5%
0,4231%
(H) IO_REGISTER_RESET_STATE_CHECK & IO_REGISTER_BLOCK_REPLICATION & IO_REGISTER_WRITE_READ_TEST
No event to EVSYS
Incorrect operation
2%
0,1693%
(M) EVENT_ROUTING_CHECK
No PORT interrupt
2%
0,1693%
(M) IO_PORTS_CHANGE_NOTIFICATION_TEST
PORT interrupt cannot be cleared
2%
0,1693%
(M) IO_PORTS_CHANGE_NOTIFICATION_TEST
Register failure
1%
0,0846%
(H) IO_REGISTER_RESET_STATE_CHECK & IO_REGISTER_BLOCK_REPLICATION & IO_REGISTER_WRITE_READ_TEST
“故障模式”列描述了故障的类型,“效应”列描述了故障的直接结果,接下来的两个FIT列描述了对FIT率(所有引脚的总和)的相对和绝对贡献。最后一列是对潜在诊断的参考名称,这些在安全手册中有更详细的描述。查看第一行,描述的故障是I/O引脚可能会卡住,这可能导致输出错误的输出值。对FIT率的贡献是所有引脚总共1.69%(因此,每个引脚的贡献显著较少)。
考虑控制燃气阀位置的输出引脚。FMEDA描述了它可能故障的几种方式。它可能卡在高电平或低电平,浮动(不驱动线路),以及其他一些故障。这让系统集成商能够很好地理解需要考虑什么以确保在需要时能够维持预期的操作。可能不需要检测所有可能的故障。例如,如果一个输入引脚卡在低电平,导致错误地判断阀门是打开的且不安全的,因此应用程序不必要地进入安全状态,那么根据定义它是安全的,不需要被检测或预防,也不会计算在单点故障或剩余FIT率中。在某些情况下,通过使用其输入缓冲区回读输出引脚来监控它就足够了,如果它没有按预期变为高电平或低电平,MCU可以自行重置(3),这总是会导致MCU释放所有I/O线路。这是IO_PORT_OUTPUT_MONITOR诊断的功能(在安全手册中描述)。另一个解决方案是可以结合两个输出引脚,以便两个引脚都必须处于给定状态才能打开阀门,如果任一引脚不在打开状态,阀门将保持关闭。这种机制使用冗余来检测和预防单点故障。
对于读取位置传感器所需的输入,IO_PORT_INPUT_COMPARISON诊断被列为合适的机制。这种诊断使用两个输入引脚,这两个引脚都连接到传感器。如果这些引脚读取的输入不匹配,就认定其中一个已经故障,系统将置于安全状态。
根据在FMEDA中选择的诊断方法,可以实现低、中或高的单点诊断覆盖率。下面的图表显示了选择(在实施的诊断列中)以及相应的覆盖率位于其右侧。
通用输入/输出(GPIO)可用的诊断、实施的诊断和由此产生的诊断覆盖率:
Internal Diagnostics for Single Point Failure
Implemented Diagnostics
**Single Point Fault Diagnostic **Coverage
**(High = 99%, Medium = 90%, **and Low = 60%)
**Per ISO 26262-5;2018, Table **D.1
(H) IO_PORTS_INPUT_COMPARISON
(H) IO_PORTS_OUTPUT_MONITOR
IO_PORTS_OUTPUT_MONITOR
99%
(H) IO_PORTS_OUTPUT_MONITOR
IO_PORTS_OUTPUT_MONITOR
99%
(H) IO_PORTS_OUTPUT_MONITOR
IO_PORTS_OUTPUT_MONITOR
99%
(H) IO_PORTS_OUTPUT_MONITOR
IO_PORTS_OUTPUT_MONITOR
99%
(H) IO_PORTS_INPUT_COMPARISON
IO_PORTS_INPUT_COMPARISON
99%
(H) IO_PORTS_OUTPUT_MONITOR
IO_PORTS_OUTPUT_MONITOR
99%
(H) IO_PORTS_OUTPUT_MONITOR
IO_PORTS_OUTPUT_MONITOR
99%
(H) IO_REGISTER_RESET_STATE_CHECK & IO_REGISTER_BLOCK_REPLICATION & IO_REGISTER_WRITE_READ_TEST
IO_REGISTER_RESET_STATE_CHECK & IO_REGISTER_BLOCK_REPLICATION & IO_REGISTER_WRITE_READ_TEST
99%
(M) EVENT_ROUTING_CHECK
NONE
0%
(M) IO_PORTS_CHANGE_NOTIFICATION_TEST
NONE
0%
(M) IO_PORTS_CHANGE_NOTIFICATION_TEST
NONE
0%
(H) IO_REGISTER_RESET_STATE_CHECK & IO_REGISTER_BLOCK_REPLICATION & IO_REGISTER_WRITE_READ_TEST
IO_REGISTER_RESET_STATE_CHECK & IO_REGISTER_BLOCK_REPLICATION & IO_REGISTER_WRITE_READ_TEST
99%
这一练习会针对所有被认为会影响安全特性的MCU功能重复进行,包括CPU、存储器、时钟,以及可能的定时器和通信模块。所有这些信息都可以在FMEDA中找到。
从FMEDA部分可以看出,FMEDA是一种非常紧凑的格式,提供的信息有限。请记住,FMEDA报告是一种评估所需诊断并计算不安全的FIT率和诊断覆盖率的工具。理解故障和诊断机制的详细信息描述在安全手册中,该手册与FMEDA一样,可以根据要求提供。
- 选择一个合适的功能安全分析工具。
学习如何设计安全关键系统可能看起来是一个艰巨的挑战,但与正确的供应商合作并在设计过程的早期引入正确的专业知识将帮助您实现目标。EnCo SOX是一款基于模型的安全分析及管理软件,专为支持符合汽车功能安全ISO26262、工业领域IEC 61508、信息安全ISO 21434、SAE J3061以及农用机械ISO 25119等领域的基于电子及软件的功能安全与可靠性分析而设计。SOX的FMEDA模块能够对系统的故障模式、影响以及诊断能力进行深入分析,帮助用户建立全面的功能安全策略,特别能够针对半导体组件进行安全性的定性和定量分析,确保系统在底层芯片层面具备高水平的安全性。选择SOX软件将为您节省时间和金钱,并帮助您更快地达到安全合规的目标。
版权归原作者 物方科技 所有, 如有侵权,请联系我们删除。