微波EDA网,见证研发工程师的成长!
首页 > 硬件设计 > MCU和DSP > 单片机休眠-复位运行方式提高抗干扰能力

单片机休眠-复位运行方式提高抗干扰能力

时间:04-15 来源:互联网 点击:
3 软件实现要点

3.1 输出恢复与不清零RAM

定时复位后全部引脚变成高电平,使得本应为低的引脚发生了不应有的变化,因此,复位后要立即恢复所有引脚的状态。有2种方法:① 本次复位后立即进行分析判断,根据需要给出引脚状态;② 根据RAM中上一次留存下来的状态,这些RAM在定时复位时是不能清零的;而在初上电或手动复位按下时应清零,在软件编制时要体现出来。如果计算时间允许,尽量采取方法1。因为连续2次复位周期都计算出错的概率很小,按照2.4叙述的输出端子并联电容的处理方法,可以达到很好的抗干扰效果。

3.2 实现跨越定时复位间隔的时序控制

现在用复位方式工作,每次从头开始反复执行同一程序。可分为2种情况:① 对于单纯显示仪表,每次复位后进行测量、送显示,两次复位之间没有因果关系,只需把原来的等待改为休眠即可。要注意的是,测量、送显示用的总时间要小于复位低电平时间,否则会出现永远不能完整执行程序的错误。② 对于有时序控制的应用,每次复位后,先要查看上个周期留下的标志,以决定本周期做什么。也就是说,凡是跨过复位周期的操作,都是靠标志传递的,这些标志存放在内部RAM中,只有初上电时才清零。例如,前面提到的变压器综合保护器,按照20ms的间隔定时复位。它在上电后,经过一定的动作顺序达到正常工作状态,如图4;根据这个动作编写软件流程的一部分,如图5。


图4 保护器动作过程


图5 变压器保护器部分程序流程

在图4中,当保护器初上电时,首先试送电0.5s,提示马上就要送电;等待30s后正式送电。送电后的1s内为启动时间,不进行过电流检测。启动完成后,如果一切正常,则把“正常标志”置位,保护器在下一个复位周期进入正常运行。试送电的0.5s延时是对复位进行25次计数实现的,因为每次复位时间是20ms。初上电时,对内部RAM做全部清零,令试送电计时Ts=25后休眠。下一次被复位后,再检测上电引脚已不是初上电,于是进行到试送电计时 Ts的检测。如果Ts≠0,说明在送电延时期间,把Ts减1后进入休眠。当Ts-1=0时,应该进入停电等待30s的过程了。就在Ts递减到0的时候,令停电等待标志Td=1500。当程序再次由复位开始时,检测到Ts=0但是Td≠0,表明已经越过了试送电,现在正处于停电等待30s的过程中。这样,整个进程由Tr、Td、Ts等这些参数相互传递着,一步步进行下去。

结语

抗干扰是电子设计中的重要问题,在单片机中尤其重要。这是因为单片机有程序跑飞的特殊性,它受到干扰的后果可能是死机,也可能在死机前发出各种错误或非法动作,使整个系统产生致命性错误。因此,仅仅保证单片机不死机还不够,还要研究如何减少受干扰的风险,以及出错后如何能够容错。本文力图从这两方面作些探索,希望这些粗浅见解能够起些抛砖引玉的作用,对大家有所帮助;也希望各位同仁一起探索,共同提高我们的设计水平。

参考文献

   1. 孙涵芳.徐爱卿 MCS- 51/96系列单片机原理与应用 1992
   2. 徐惠民.安德宁 单片微型计算机原理、接口及应用 2000

作 者:华北水利水电学院 李临生 魏德华 柳旭英  
来 源:单片机与嵌入式系统应用 2004(2)

Copyright © 2017-2020 微波EDA网 版权所有

网站地图

Top