单片机的可靠性设计是一项系统工程,单片机系统的可靠性必须从软件、硬件以及结构设计等方面全面考虑。硬件系统的可靠性设计是单片机系统可靠性的根本,而软件系统的可靠性设计起到抑制外来干扰的作用。软件系统的可靠性设计的主要方法有:开机自检、软件陷阱(进行程序“跑飞”检测)、设置程序运行状态标记、输出端口刷新、输入多次采样、软件“看门狗”等。通过软件系统的可靠性设计,达到最大限度地降低干扰对系统工作的影响,确保单片机及时发现因干扰导致程序出现的错误,并使系统恢复到正常工作状态或及时报警的目的。
一、开机自检 开机后首先对单片机系统的硬件及软件状态进行检测,一旦发现不正常,就进行相应的处理。开机自检程序通常包括对RAM、ROM、I/O口状态等的检测。
1?检测RAM 检查RAM读写是否正常,实际操作是向RAM单元写“00H”,读出也应为“00H”,再向其写“FFH”,读出也应为“FFH”。如果RAM单元读写出错,应给出RAM出错提示(声光或其它形式),等待处理。
2?检查ROM单元的内容 对ROM单元的检测主要是检查ROM单元的内容的校验和。所谓ROM的校验和是将ROM的内容逐一相加后得到一个数值,该值便称校验和。ROM单元存储的是程序、常数和表格。一旦程序编写完成,ROM中的内容就确定了,其校验和也就是唯一的。若ROM校验和出错,应给出ROM出错提示(声光或其它形式),等待处理。
3?检查I/O口状态 首先确定系统的I/O口在待机状态应处的状态,然后检测单片机的I/O口在待机状态下的状态是否正常(如是否有短路或开路现象等)。若不正常,应给出出错提示(声光或其它形式),等待处理。
4?其它接口电路检测 除了对上述单片机内部资源进行检测外,对系统中的其它接口电路,比如扩展的E2PROM、A/D转换电路等,又如数字测温仪中的555单稳测温电路,均应通过软件进行检测,确定是否有故障。
只有各项检查均正常,程序方能继续执行,否则应提示出错。
二、软件陷阱 在程序存储器中总会有一些区域未使用,如果因干扰导致单片机的指令计数器PC值被错置,程序跳到这些未用的程序存储空间,系统就会出错。软件陷阱是在程序存储器的未使用的区域中,加上若干条空操作和无条件跳转指令,无条件跳转指令指向程序“跑飞”处理子程序的入口地址。如果程序跳到这些未用区域,就会执行无条件跳转指令,转到相应的程序出错“跑飞”处理程序。除程序未用区域外,还一体电感可以在程序段之间(如子程序之间及一段处理程序完成后)及一页的末尾处插入软件陷阱,效果会更好。下面是一段带软件陷阱的程序;
DSP:……;显模压电感器示子程序
RET
NOP;软件陷阱
NOP
NOP
LIMP FLY
D10MS:MOV R0,#010H;延时子程序
&hel工字电感lip;…
RET
NOP ;软件陷阱
NOP
NOP
LJMP FLY
……
FLY:…… ;“跑飞”处理子程序
RET
三、程序“跑飞”处理 要进行程序“跑飞”处理,就要分清程序“跑飞”所造成的影响,以及程序“跑飞”前运行的进程,这就需要的设置相应的标志。
RAM数据正常标志 RAM数据正常标志是检测RAM区的数据是否已经因程序“跑飞”或其它干扰而改变。如果RAM区的数据确因程序“跑飞”或其它干扰而改变,则系统无法自行恢复到原来的出错地点,只能由人工或由软件复位从头开始执行。要进行RAM区数据正常检测,首先应在初始化程序中,对RAM的若干单元设置RAM数据正常标志。通常是在RAM区中选数个单元,在初始化程序中将其置成固定的数,如“55H”或“0AAH”,只要程序正常运行,这些单元的内容是不会被修改的,若因程序“跑飞”或其它干扰导致这些RAM单元中的任何单元的数据发生变化,说明其它RAM单元其他电感器的内容也可能发生变化,无法反映程序运行的结果和状态,不能根据RAM区中的标志去恢复程序运行现场。
程序运行标记 程序运行状态标记是在RAM区中设立一些标志位,这些标志位分别
电池管理电子设备如何增强电池的安全性对于锂离子电池包制造商来说,针对电池供电系统构建安全且可靠的产品是至关重要的。电池包中的电池管理电路可以监控锂离子电池的运行状态,包括了电池阻抗、温度、单元电压、充电和放电电流以及充电状态等,以为系统
基于IR1150的功率因数校正电路的研究摘要:阐述了功率因数校正原理,设计了以IR1150 为核心的系统主电路及控制电路,并对主电路的参数进行了详细分析和计算。实验证明,系统的参数设计准确有效,系统的输入功率因数(PF)达到0。99 以上,
第二届“高得率浆技术国际研讨会”在南京召开本刊讯(侯庆喜 报道) 2010年6月 2 0日,由加拿大天柏公司、天津科技大 学、加拿大制浆造纸研究院、加拿大新 不伦瑞克大学、加拿大多伦多大学、中国 林业科学研究院林产化学工