APP下载

浅谈微电子故障校验

2014-07-27洪伟鸿邓天军

创新科技 2014年14期
关键词:堆栈微电子微控制器

洪伟鸿 邓天军

(广东美的暖通设备有限公司,广东 佛山 528311)

浅谈微电子故障校验

洪伟鸿 邓天军

(广东美的暖通设备有限公司,广东 佛山 528311)

本文详细介绍了软件安全认证中微电子故障校验原理,并举例说明微电子故障校验的方法,提升家用电器安全性能。

软件安全认证;IEC60730;微电子故障;微控制器MCU

1 微电子故障校验方法说明

微电子故障校验主要是针对微控制器MCU本身内部微电子故障的校验或检测,包括:RAM,ROM,Stack,register,A/D,interrupt,clock等校验,但微控制器出现了微电子故障时,最有效的操作是将微控制器复位,关闭有可能造成人员伤害的器件。下面以NEC单片机为例,对微电故障校验做一个详细的说明

1.1 RAM校验。其一,在上电是对整个RAM区域进行校验。一是将RAM分为3个区域:0xfb00~0fcff,0xfd00~0xfe1f,0xfe20~0xfedf。二是分别对这3个区域进行校验,需要注意的是:由于我们用到的堆栈是在0xfd00~0xfe1f这个区域,而校验的过程中单片机又需要使用堆栈区,所以在校验这个区域的之前,需要将堆栈指针重新制定到已经校验合格的区域上去(例如0xfb00~0fcff),在校验完该区域后,重新将堆栈指针恢复为0xfe20,再进行第三区域(0xfe20~0xfedf)的校验。三是校验的步骤如下:①将校验区域的RAM清零。②由低地址开始,比较RAM是否为0,如果是,将RAM改写为0xffff,继续下一单元的校验,否则报错。③由低地址开始,比较RAM是否为0xffff,如果是,将RAM改写为0x0,继续下一单元的校验,否则报错。④由低地址开始,比较RAM是否为0,如果是,将RAM改写为0xaaaa,继续下一单元的校验,否则报错。⑤由低地址开始,比较RAM是否为0xaaaa,如果是,将RAM改写为0x5555,继续下一单元的校验,否则报错。⑥由低地址开始,比较RAM是否为0x5555,如果是,将RAM改写为0x0,继续下一单元的校验,否则报错。一旦发现RAM有错,单片机复位。其二,在主循环,分次校验RAM,采用非破坏性的March X校验,保证在安全时间内,可以将整个RAM区域校验完(目前为9s完成整个RAM区域校验)。其三,一旦发现校验不合格,则MCU复位。

1.2 ROM校验。在上电是对整个ROM区域进行CRC校验。一是在主循环,分次校验ROM,保证在安全时间内,可以将整个ROM区域校验完(目前为19s完成整个ROM区域校验。二是一旦发现校验不合格,则MCU复位。

1.3 Stack校验。假定堆栈的范围为0xfd80~0xfe1f,在初始化时,在0xfd70~0xfd7f写入一串带CRC16校验的字符。在主循环中,周期性的对0xfd70~0xfd7f进行校验,如果堆栈溢出,则该区域的信息必定改变,CRC16校验和将被改变,一旦发现堆栈溢出,单片机将复位。

1.4 Register校验。周期性对通用寄存器AX,BC,DE,HL进行校验,如果校验不通过,则MCU复位。寄存器校验的方法可采用如下方法:一是将0xAAAA写入AX。二是比较AX的值是否为0xAAAA。(3)如果为0xAAAA,则继续,否则寄存器有故障。四是将0x5555写入AX。五是比较AX的值是否为0x5555。六是如果为0x5555,则继续,否则寄存器有故障。七是寄存器BC,DE和HL的校验方法和AX的一样。八是认证要求在初始化和主循环时都要对寄存器进行校验。

1.5 A/D校验。其一,确保A/D转换正确。增加一个A/D电路检测端口的电压值,正常情况下是在2.5V左右,为了满足+/-4F的要求(略高于UL+/-5F的要求),我们会一直检测该电路的电压,加入电压不在2.4V~2.6V范围内,则代表检测A/D检测出现了问题,MCU需要作出相应的保护动作,我们选择的是复位。其二,确保A/D通道选择不会出错。由于大部分微控制器内部都只有一个或者两个A/D转换器,通过选择不同的A/D通道来读取不同A/D转换引脚的A/D转换结果,确保A/D通道选择正确的最简单方法就是在每次A/D通道切换后,对A/D通道寄存器在进行一次校验即可,如果A/D通道寄存器不是我们所希望的值,则表示A/D通道切换出现了问题,微控制器需要作出相应的保护动作

1.6 Interrupt校验。Interrupt校验主要是针对定时中断的校验,必须确保定时中断能够进入:设置一个标志,在进入定时中断时,将这个标志设为1,利用软件看门狗的复位功能,在喂狗之前,判断该标志是否为1,如果不为1,则不进行喂狗,系统在一段时间内不喂狗,MCU将复位,流程图如下:

1.7 Clock。只要能够确保软件在半频和倍频的情况下,机器不会造成人员伤害,同时在安全时间内能够确保所有safety functions都能够顺利校验一遍。最常用的办法有过零检测,对比内置晶振,对比外置RC电路,利用外部通讯等办法。

2 结语

当对微控制器MCU的微电子故障进行有效校验后,即使微控制器MCU内部出现问题,微控制器还可以有效的关闭有可能造成危害的器件,使得家电的安全性进一步提高。

[1]王新洁.浅谈程控交换机故障排除的方法[J].机械信息,2012(1).

TN407

A

1671-0037(2014)07-82-1

洪伟鸿(1979.1-),本科,研究方向:电机控制。

猜你喜欢

堆栈微电子微控制器
TASKING针对英飞凌第三代AURIX微控制器推出多核开发环境
微电子封装器件热失效分析与优化研究
应用EDAC容错技术的星载软件堆栈溢出实时检测方法
用于高品质电动汽车的分布式并行计算
缓冲区溢出安全编程教与学
一种航天器软件进程堆栈使用深度的动态检测方法
灵动微电子秋季发布会成功举办,引发产业热捧
电磁导向智能车设计探讨
新技术 新平台 迎接节能时代的到来 杭州士兰微电子为节能减排做贡献
基于MC9S08QG8低端微控制器的无线控制器设计