本文主要是介绍IEC60730-1 Annex-H,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
IEC-60730安全标准法规由国际电工委员会 ( IEC ) 制定,该安全标准定义了家用电器嵌入式控制软件与硬件安全操作的测试与检测方法,以确保家电中受控设备的安全操作。IEC-60730将家用电器分为3类:
A类 – 不用于确保设备的安全性。 例如:照明控制、湿度控制等。
B类 – 用于防止受控设备的不安全运行。 例如:洗衣机、电冰箱等。
C类 – 用于防止特殊危险,如受控设备爆炸等用途。 例如:自动燃烧器、燃气型烘干机等。
本文为 Class B 要项说明,Class B 适用于大部分的家电产品,包括吊扇、洗衣机、电冰箱、冰柜等。
一、IEC-60730 Class B测试条件
在IEC-60730中,自动化电子控制设备的制造商,必须使用下述说明的结构设计其软件:
1. 单通道,功能检测。
在单芯片执行用户设计的应用前,执行单芯片功能测试,以确保所有关键功能能正常运行。
2. 单通道,定期自检。
在单芯片执行用户设计的应用时,单芯片会定期自我检查电子控制设备的所有关键功能,且避免与用户设计的应用操作产生冲突。
3. 双通道,相互验证。
在双通道的架构下,使用两颗或两颗以上的单芯片,独立运行至关键功能前相互验证其各自的工作。例如:洗衣机的安全锁在解开前,一颗单芯片控制马达停止,一颗单芯片检查转筒转速以验证其已停止。
"双通道,相互验证"需要两颗单芯片,增加了硬件成本,且两颗单芯片间的相互通讯增加其复杂度,大多应用于与生命攸关的电子控制系统上,例如:航空运输工具、汽车等。目前市面上最常见的架构为"单信道,功能检测",因为检测功能的建立相对容易,且不需要在硬件上增加额外的成本。而"单通道,定期自检",则是大多数制造商正在尝试的项目,势必为未来趋势。
国际电工委员会将各类型的商品条列出各项不同的规范,参照附录的说明,可得知电子控制设备需参考附录H。在附录H中,H.11.12.7详述了必须测试的部件,具体测试取决于软件分类,换句话说,每项测试部件都有其验证/测试的选项,方便于制造商的设计,下表列出了 IEC-60730 安全标准法对MCU可能需要考虑的所有项目。
IEC-60730 安全标准法对MCU可能需要考虑的所有项目
二、CPU
2.1 CPU缓存器 – 测试项目1.1
测试目的:
检测缓存器中的滞留位。
测试说明:
CPU缓存器是MCU中最重要的部分,由于必须正确操作,因此进行测试是必要的。在自检程序中,需检测缓存器中是否有滞留位以及是否存在耦合故障。
测试方法:
故障检测的方式是使用静态储存器测试或是带奇偶校验的数据保护措施进行功能测试或定期自检。基本的检测方式会在测试前先将缓存器的内容堆栈,待测试后恢复缓存器原有内容。堆栈完毕后,开始进行检测,先将缓存器设置为已知值并验证其正确性,接着强制改变缓存器位的改变,并再次验证缓存器内容是否正确,若不正确,则改变错误旗标。测试完毕后,将原有内容恢复至缓存器。
2.2 CPU计数器 – 测试项目1.3
测试目的:
检测程序计数器中的滞留位。
测试说明:
要让用户设计的软件顺利的在MCU上运行,程序计数器正常运行的状态十分重要,且因为对程序计数器直接测试的方式都依赖于程序计数器才能正常工作。
测试方法:
检测方法包含了独立时隙监视及程序序列的逻辑监视的功能测试或定期自检。目前市面上的产品大多采用看门狗对应用程序进行间接时隙监视。当程序 计数器发生故障时,看门狗能够在监测时间点发现错误,进而使器件复位。
三、中断处理与执行
测试目的:
验证中断是否发生并以预期速率处理程序。
测试说明:
大多数的应用程序都依赖于中断进行操作,因此验证中断是否在预期的时间内发生并采取对应的处理,是很重要的一件事。
测试方法:
中断的功能测试大多采用时隙监视。采用时隙监视的方式,是因为有助于使用家电时检测错误操作,且任意的中断测试还会间接测是中断控制器。在实际测试时,可透过定时器设定指定时间间隔触发中断进行测试。例如:使用RTC设定中断为1s,使用系统时钟的中断为1ms,当RTC中断下一次触发时,使用系统时钟的中断计数器应增加1000。
四、时钟
测试目的:
检测系统时钟频率的精准度,确认是否有意外的偏差。
测试说明:
为了确定单芯片拥有正确的时序执行预期的工作指令,必须验证系统时钟的频率是否符合规范。
测试方法:
频率的检测或时隙监视,必须验证检测到的震荡频率部会导致单芯片正常运行时出现问题。可透过外部时钟讯号或实时计数器(RTC)触发,实现参考时钟与系统时钟的频率比较。
五、内存与内部数据路径
5.1 Flash – 测试项目4.1
测试目的:
检测非易失性储存器中的所有单一位故障。
测试说明:
在单芯片中,Flash内存常用于储存单芯片的设置与常量等参数,为了确保单芯片的安全运行,必须检查这些非易失性储存器是否损坏。
测试方法:
检测的方式可使用单个或多个校验和的方式,或是单一位的数据冗余的定期自检。例如:CRC校验、March测试,这些检测方式可用于定期检查储存器的完整性。单芯片自检的方式则可以参考储存器访问冲突检测,用来确认任何错误或不可预知的储存器访问。常见的作法是利用CRC校验法,将数据输入后生成可用于检测错误的输出校验和,透过计算与储存(前一笔)的校验和进行比较,若不为相同的结果,则表示存在错误。
5.2 RAM及内存地址 – 测试项目4.2 & 4.3
测试目的:
检测程序计数器中的滞留位。
测试说明:
要让用户设计的软件顺利的在MCU上运行,程序计数器正常运行的状态十分重要,且因为对程序计数器直接测试的方式都依赖于程序计数器才能正常工作。
测试方法:
检测方法包含了March测试、独立时隙监视及程序序列的逻辑监视的功能测试或定期自检。目前市面上的产品大多采用看门狗对应用程序进行间接时隙监视。当程序计数器发生故障时,看门狗能够在监测时间点发现错误,进而使器件复位。另外也可以使用March测试法来进行测试,简单的来说,就是将所有的内存位置填成0或1,然后逐步地一一进行读值验证,在更换填值换一个读取的起点开始一一读值测试,若读出来的参数跟事先填入的数值不同则代表内存该地址的存取有错误。
5.3 内部数据路径 – 测试项目5.1 & 5.2
测试的内容与方式与上一节RAM及内存地址相似,可参照上述说明进行验证。
六、对外通讯
测试目的:
验证所传输的数据以及通信序列与时序是否正确。
测试说明:
与外部设备进行通讯是许多应用的重要组成之一,但潜在的故障率也相对来的高,因为通讯非常容易受到其他电磁波或讯号源的干扰,且通讯的任一端都有可能出现工作异常的状况,透过验证对外通讯的运行可以避免其中一端设备故障时,另一端设备也出现故障。
测试方法:
检测数据传输的运行状态时,可使用传输冗余或是数据冗余,数据冗余例如CRC校验、汉名码或协议测试。最基本的是传输冗余是在正式数据传输前先发送与接收两笔传输内容,防止输入/输出讯息中的巧合或系统性错误,该传输测试至少需连续传输成功两次以上进行比较。
七、输入/输出外设
测试目的:
验证输入/输出是否符预期以及信号是否正确连接。
测试说明:
所有的应用开发都会使用到仿真或数字的输入/输出,以便检测外部设备或单芯片本身的故障。
测试方法:
在软件中验证是否获得了预期的输入,并能在任何给定时间提供所需的输出。
八、参考文献
1. NXP AN4989 - 对Kinetis E系列MCU实施IEC 60703 B类测试
这篇关于IEC60730-1 Annex-H的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!