当前位置:首页 期刊杂志

“功能安全产品实现技术”系列讲座第10讲 实用功能安全设计技术解析

时间:2024-07-28

(上海工业自动化仪表研究院1,上海 200233;上海仪器仪表自控检验测试所功能安全中心2,上海 200233)

0 引言

在安全相关产品的实现过程中,为达到控制危险失效的目的,需在软硬件的设计和开发中针对相应的安全完整性等级选择合适的措施,以保证安全相关产品在运行中控制失效。控制失效是安全相关产品的内在特性,这也是用于功能安全的安全相关产品有别于普通产品的典型特性。

安全相关产品的安全完整性包括硬件安全完整性和系统性安全完整性,所以控制失效就是控制随机硬件失效和控制系统性失效。在运行中,不同的元器件有不同的退化机理且以不同的速率退化,虽然硬件失效是不可控的,但硬件失效可以通过采用一定的方法诊断出来,所以可采用一些技术和措施检测出硬件的故障和失效,从而控制随机硬件失效。从功能安全的理念来说,控制随机硬件失效本质上就是降低不可诊断的危险失效。同样控制系统性失效有利于在线控制失效。

为了控制随机硬件失效,在标准IEC 61508.2附录A中,表A.2~表A.14对构成安全相关系统和产品的所有可能的各功能模块给出了推荐的诊断技术和措施,并推荐了在使用这些技术和措施时可实现的最高诊断覆盖率。当然对硬件模块的故障和失效的诊断方法不只限于标准所给出的,还可使用其他技术和措施。这些技术和措施只要能提供相应的证据,保证支持所声明的诊断覆盖率。表A.15~A.17为每一安全完整性等级推荐了控制系统性失效的技术和措施。

下面就控制随机硬件失效和系统性失效所采用的一些技术和措施进行解析。

1 控制随机硬件失效——可变内存

1.1 可变内存的故障类型

存储器的存储单元在逻辑上可用D触发器描述,对其操作是写入一位“1”或者“0”,写入的信息在下一次覆盖操作到来前一直保留。

可变内存的功能模型如图1所示。

图1 RAM功能模型

存储器由于自身的缺陷及受周围环境的影响而产生故障,预期主要有五类故障,这五类故障分别介绍如下。

① 固定型故障(stuck-at fault):一个存储器的存储单元总是保持在“0”状态或“1”状态,不能写入其他值。

② 变迁故障(transition fault):一个存储单元不能从“0”状态变迁到“1”状态,或者不能从“1”状态变迁到“0”状态。

③ 固定开故障(stack-open fault):一个存储单元无法进入,即对这个单元既不能进行写操作,也不能进行读操作。

④ 耦合故障(coupling fault):对一个存储单元进行写操作时,会影响到其相邻的单元,反之亦然。

⑤ 数据保留故障(data retention fault):一个存储单元在一定的时间后会丢失它所保存的内容。

这五类故障在存储器的故障概率中约占90%~99%,现有的嵌入式存储器测试算法都是直接对存储器内部单元测试,不对存储器外围互连线进行测试。

1.2 可变内存的诊断测试方法

可变内存的诊断测试方法常用的有跳步模式(Galpat)测试法和跨步(March)测试法两种。

(1) 跳步模式(Galpat)测试法

Galpat算法目前是RAM测试法之一,它的具体步骤如下。

① 先将被测试的RAM存储单位的数据备份;

② 初始化该存储单位为0;

③ 将存储单位的值与1左移n位的值进行按位或运算(n为从0开始的存储器位数);

④ 读取该存储单位的值与运算后的值是否一致;

⑤ 如果不一致,报故障错误,程序停止执行;

⑥ 否则,重复执行步骤②~⑤,直到该存储单位的每一位都测试完;

⑦ 重新按位初始化存储单位的值为1;

⑧ 将存储单位的值与1左移n位的值进行按位异或运算;

⑨ 读取该存储单位的值与运算后的值是否一致;

⑩ 如果不一致,报故障错误,程序停止执行;

Galpat测试法简化图如图2所示。

图2 Galpat 测试法简化图

Galpat测试算法的测试故障覆盖率较高,能够测试固定型故障、变迁故障、固定开故障以及大部分耦合故障。由Galpat的时间复杂度为o(n2)(n为被测试存储器的位数)可知,该测试算法需要花费的测试时间较长,对于大容量存储器来说并不适合。

(2) 跨步(March)测试法

常见的March算法包含MATS+、March C-、March C+、March B、March LR、March SR等。这些算法的不同之处就是包含的March元素各不相同,每种March算法包含多个March元素,每个March元素都由地址变化顺序、读写的操作和操作的数据三部分组成。目前最常用的是March C+,因为其故障覆盖率最高。

March C+算法简化图如图3所示。

图3 March C+算法简化图

图3中:符号“↑”表示地址升序;符号“↓”表示地址降序;“R0”表示读0操作;“R1”表示读1操作;“W0”表示写0操作;“W1”表示写1操作;M2~M7表示6个March单元或6个状态机状态。

March C+算法的步骤如下。

① 先将被测试的RAM存储单位的数据备份;

② 初始化该存储单元为0;

③ 按照升序从地址0到最大地址依次进行读出0,再写入1,再读出1;

④ 按照升序从地址0到最大地址依次进行读出1,再写入0,再读出0;

⑤ 按照降序从最大地址到0地址依次进行读出0,再写入1,再读出1;

⑥ 按照降序从最大地址到0地址依次进行读出1,再写入0,再读出0;

⑦ 按照降序从最大地址到0地址依次进行读出0。

March C+算法同样能够测试固定型故障、变迁故障、固定开故障和耦合故障。由该算法的时间复杂度为o(n)可知,该测试算法可以运用到大容量的SRAM测试、SDRAM测试等存储器测试领域。

1.3 可变内存诊断测试方法的选择

采用软件测试内存的完好性,需兼顾到测试所需时间与诊断覆盖率,原则上对处理器及内存的故障诊断测试不应影响到产品(系统)的主功能,所耗时间不应大于1 h。所以在实际产品开发中,采用软件诊断处理器及可变内存的故障时,在低要求模式下需考虑以下三个时间量的兼容性:①诊断测试时间间隔;②诊断程序完成一次对可变内存检查的时间;③平均修复时间(mean time to restoration,MTTR)。在高要求连续模式下,当故障裕度(hardware fault tolerance,HFT)=0时需考虑以下四个时间量的兼容性:①诊断测试时间间隔;②诊断程序完成一次对可变内存检查的时间;③过程安全时间(process safety time,PST);④要求率。因此,在选择故障诊断测试方法时需兼顾诊断覆盖率及以上所提到的几个时间量。

2 控制系统性失效

当使用复杂硬件和软件时,失效的重点将从随机失效转变为系统性失效。控制系统性失效包括:①控制软硬件设计引起的失效;②控制由环境应力或影响引起的失效;③控制操作过程的失效。控制系统性失效的部分技术和措施解析如表1所示。

表1 控制系统性失效的部分技术和措施解析

由表1可以看出,控制系统性失效归根结底还是由产品的设计尤其是软件和硬件的设计来实现的。譬如,在自动扶梯安全相关系统上实现“修改保护”。为了防止对安全相关系统的硬件进行更改,安全相关系统的逻辑处理单元通过对传感器信号特征的辨识确定传感器单元的完好性和正确性。更进一步讲,为了防止自动扶梯用户私自拆除安全相关系统,在自动扶梯控制系统上设置了“门锁”,只有在安全相关系统正常启动给出解锁信号后,自动扶梯控制系统的“门锁”才会打开。这里“门锁”和“钥匙”通过软硬件设计来实现,以防止拆除安全相关系统这一重大硬件更改。

3 结束语

控制失效是安全相关产品设计的关键点,是安全相关产品的内在特性。在安全相关产品的软件设计和硬件设计中融入控制失效的要求,就能设计出满足硬件安全完整性和系统性安全完整性要求的用于功能安全的合格的产品。

免责声明

我们致力于保护作者版权,注重分享,被刊用文章因无法核实真实出处,未能及时与作者取得联系,或有版权异议的,请联系管理员,我们会立即处理! 部分文章是来自各大过期杂志,内容仅供学习参考,不准确地方联系删除处理!