基于8031单片机的自动计量进料系统
除采用光电隔离、电源滤波、屏蔽接地及地线处理等硬措施,以及用平均值加中位值复合滤波方法,克服信号采集中的周期性干扰和尖峰型干扰外,还采用了硬件自诊断技术和软件抗干扰技术,以保证系统的称量控制精度和可靠性。
6.1 硬件故障自诊断技术
本系统对关键的硬件设备采用了由上电自诊断、定时自检、键控自检相结合的自诊断方法,及时发现系统故障,保证精度,以避免系统带病运行。具体诊断项目有:
(1)CPU指令系统诊断8031指令系统能被正确地执行是系统正常工作的前提,为此设计了一段涉及各种指令的测试程序,判断其运行结果是否正确,以排除CPU失灵的可能性。
(2)RAM诊断采取向关键RAM区依次进行写入读出操作,比较读出与写入内容是否相同来判断内、外RAM芯片的好坏。上电时采用破坏性测试(不保护原有内容),复位、按键诊断采用非破坏性测试(保护原有内容)。
(3)EPROM诊断固化目标程序的EPROM在使用时间长,窗口密封不好等情况下,可能出现个别零星单元信息发生变化的情况,必须主动进行检查。本文采用了“异或和”校验法。在程序固化之前,利用开发装置求出所有指令的异或和并把结果写入最后一个空单元中,诊断时再求所有指令,包括“结果”的异或和,若和数为零,可以认为EPROM中的内容是正确的 。
(4)采用硬件冗余联合诊断技术进行A/D、I/O模板、重要参数传感器诊断。
6.2 软件抗干扰技术
当CPU本身受到干扰,程序计数器PC因干扰而改变内容时,CPU将不能按正常状态执行程序,从而引起混乱,产生所谓程序“跑飞”现象。为此在软件上采取了指令冗余、软件陷阱 、纯软件watchdog技术以控制程序流向。
(1)指令冗余当CPU受干扰后,会把操作数当指令码引起混乱。分析MCS—51指令系统,大多为单字节指令,最长不超过3字节。当程序弹飞到双字节和3字节指令上时,继续出错的机会较大,而当弹飞到单字节指令上时,程序将自动纳入轨道。因此在程序中对程序流向起决定作用指令之前插入3条空操作指令(如转移、子程序调用和对系统工作状态至关重要的指令),并将跳转指令冗余一次,以保证被正确执行。指令冗余技术可减少弹飞次数,使程序很快纳入轨道。
(2)软件陷阱当程序弹飞到非程序区(EPROM未使用区,数据区……)时,冗余指令将无能为力。为此设计了软件陷阱,即在程序断裂点(无条件跳转指令、返回指令之后)和数据区末尾插入NOP NOP LJMP 3条指令。将空白区充满LJMP指令,强行将捕获的程序引向出错处理程序入口。出错处理程序的主要功能是实现系统恢复。因LJMP指令的操作码是02H,故若把出错处理程序入口安排在0202H,则可方便地利用开发系统中Debug功能把大片程序空白区固化为020202……,从而大批陷阱处理完毕。
(3)纯软件Watchdog若指令弹飞在程序区,但在遇到冗余指令之前已形成死循环,则指令冗余和软件陷阱均失效。为此本系统利用空闲的定时器T2设计了程序运行监视系统(Watchdog);设T2为高优先级,根据主控程序循环周期确定T2的定时常数和计数器的记数值 ,每次中断对计数器加1,并判断记数值若大于设定值,则转出错处理程序入口。同时在主程序中对计数器清零。如此,保证及时把程序从死循环中解放出来。
7 结束语
本文结合工厂实际,用经济的8031及外围芯片设计了自动计量进料控制系统,取代了原进口设备的控制装置。经几年来运行证明,该系统功能完备,运行稳定可靠,操作简便,性能价格比高。该技术延长了设备使用寿命,创造了很好的经济效益,不失为进口设备国产化和传统设备自动化的有益尝试,在推进食品、饮料行业的国产化和自动化方面具有积极意义 。
- Linux嵌入式系统开发平台选型探讨(11-09)
- VxWorks实时操作系统下MPC8260ATM驱动的实现(11-11)
- VXWORKS内核分析(11-11)
- Linux内核解读入门(11-09)
- linux文件系统基础(02-09)
- 基于Winodws CE的嵌入式网络监控系统的设计与实现(03-05)
