1、程序跑飞现象
随着单片机在能源领域中的广泛应用,单片机的抗干扰问题越来越突出,煤矿井下环境一般比较恶劣,这便会为单片机控制系统带来各种干扰,以致系统不能正常工作。单片机应用系统的抗干扰性能主要取决于硬件的抗干扰设计,但软件抗干扰设计作为硬件抗干扰的完善和补充,作用也非常重要,因为大量的干扰通常并不能影响系统内硬件的运作,却常会使系统的软件无法正常运行,单片机应用的一个突出问题,便是单片机运行过程中经常出现的程序跑飞现象。
在单片机系统中,因为干扰的原因,在非预期的情况下,使得程序计数器PC 的值发生随机的变化,从而使得程序的流向指向不确定区域,这便是程序的跑飞。程序跑飞后或者会使指令的地址码和操作码发生改变,PC 把操作数当作指令来执行;或者PC值指向一条不合逻辑关系的指令甚或是非程序区,运行结果常常会使单片机进入死循环———便是大家常说的“死机”。为确保在无人当值的情况下,单片机“死机”后能自动恢复过来,通常采用软件陷阱,外部WDT 电路,以及软件控制的WATCHDOG 等方法,使系统恢复正常(后两种俗称“看门狗”),限于篇幅不做专门说明,这里主要向大家介绍用555 定时器软硬结合做看门狗的一种方法。
2、555定时器
一般情况下,看门狗主要是通过不断监视程序运行一个事件的时间是否超过预定的时间来判断程序是否进入了死循环,因此利用555 定时器可复位的触发功能外加延时电路可实现看门狗的功能。555定时器是一种多用途的单片集成电路,内部电路如图1 所示。
CO端是控制电压输入端,加控制电压可改变A1“-”端及A2“ +”端的参考电压,若不用,可通过一个小电容接地,以防旁路高频交流干扰;R 为定时器直接复位端,加低电平可将定时器直接置“0”,此时,OUT输出“0”,Q 为1”,V 导通,D 端对地通路;TH 为复位阀值输入端,当TH 电压超过2/3UDD(即A1 负端分压)时,A1 输出为“1”,OUT 输出“0”,同样,D 端对地通路;TR 为置位输入端,当TR电压低于1/3 UDD(即A2 正端分压)时,A2 输出“1”,定时器被置位,此时,OUT 输出“1”,Q 为“0”,V截止,D端对地断路。
3、看门狗电路及运行指令以INTEL公司的16 位单片机8096 为例,555定时器作为看门狗与单片机的接口电路可设计如图2 所示。
首先在单片机初始化时用指令“ORBPORT1,#01H”置P1.0 为“1”,则三极管T 导通,555 芯片的R 为“1”,TH、TR 端经R、C 充电,电位逐渐上升,当电位还低于1/3 UDD 时,OUT 输出“1”,D端对地断路,电容C 正常充电,(http://www.diangon.com/版权所有)一旦程序跑飞或进入死循环,在电位上升到高于2/3 UDD时仍没有“喂狗”,则OUT输出变为“0”,经三极管T拉低单片机的RESET 脚,并使复位电容放电,这时
D 端对地短路,电容C 也通过Rf 放电,当TH、TR端电位放电到低于1/3 UDD(注意)时,OUT输出重新变为“1”,单片机进入复位状态。
“喂狗”是指复位看门狗,在本电路中只须运行以下指令即可。
ANDB PORT1,#0FEH ;使P1.0 为“0”
SKIP ;空操作,用于延时
SKIP ;以使TR电压降到1/3 UDD为宜
ORB PORT1,#01H ;使P1.0 为“1”
当P1.0 被置为“0”时,555 定时器的R 端为“0”,三极管T 截止。R 端为“0”则555 芯片被复位,OUT 输出为“0”,同时D 端对地短路,电容C放电为重新延时做准备,但因为三极管的截止,此时OUT 输出虽然也为“0”却并不影响单片机的RESET脚,单片机正常工作,从而区分开了“喂狗”与系统故障时看门狗发生作用的不同之处。
4、需要注意的问题
这里仍然有一个问题需要注意,那就是555定时器的正常工作与否完全依赖于单片机P1.0的状态,但在某些干扰比较严重的情况下,单片机的误操作是有可能改变P1.0 的预置状态的,若单片机在进入死循环之前,P1.0 被误置为了“0”,看门狗始终处于“被喂”的状态,那这个电路便就无法再发挥作用了,对这种情况我们可用软件冗余的方法来应对,就是在程序的关键地方多次插写看门狗的激活指令:
NOP
ORB PORT1,#01H
值得提醒一下的是这里“NOP”指令的作用不容忽视,可使跑飞的程序纳入正轨,不致冲散后面的关键指令。不过尽管如此软件冗余的应用也还是有一个前提的,那就是跑飞的程序必须落在程序区,冗余的指令得到执行方可生效,若跑飞的程序落在了非程序区,仅凭指令冗余技术便不可靠了,这时我们便还须借助其他抗干扰技术的支持,如软件陷阱、标志技术,本质可靠性程序的设计等,在此不再赘述,但这些都必须包含在一个可靠的程序内———毕竟,单片机系统来自干扰的影响是立体的,那么,我们的应对策略便也须是全方位的。
关键字:单片机 程序跑飞 看门狗电路
引用地址:
单片机程序跑飞现象及解决--看门狗电路
推荐阅读最新更新时间:2024-03-16 15:56
智能化锂离子电池管理系统的设计与实现
1 引言 现代的移动通信设备越来越重视移动设备电源问题。移动电源的核心问题是可充电电池的管理问题,由于电池的管理与电池的化学特性密切相关,不同种类的电池具有不同的充电和使用特性,即使相同种类电池,由于采用电池材料特性不同,对充电和使用要求也不相同,因此使电池自己实现智能管理是电池用户的迫切要求。为解决电池的使用问题实现电池的“即插即用”,智能电池开始得到广泛应用,国际上一些著名的电池公司均开发了针对自己电池特性的智能电池体系。 目前电池实现智能化的途径有两种,一种是采用一些专用的集成电路来实现,一种是采用集成了模拟模块的单片机来实现。专用集成电路的方案存在以下缺点:只针对一种电池和一类电池的特性,电气接口和制式不统一,
[安防电子]
51单片机抢答器设计
任务描述 某企业承担了某抢答比赛抢答器系统的设计,要求如下:①可同时供3名选手参加比赛,他们的编号分别是1、2、3,每名选手各用一个抢答按钮,按钮的编号与选手的编号相对应,分别是S1、S2、S3。②给主持人设置两个控制开关“START”和”END”,用来控制系统中抢答的开始和结束。③抢答器具有数据所存、显示和声音提示的功能。抢答开始前,若有选手按动抢答按钮,视为违规,要显示其编号,并长响蜂鸣器;抢答开始后,若有选手按动抢答按钮,编号立即锁存,并在LED数码管上显示出选手的编号,同时蜂鸣器给出音响提示,此外,要封锁输入电路,禁止其他选手抢答。优先抢答选手的编号将一直保存到主持人将系统清零为止。 硬件电路图 元件清单 C
[单片机]
一文详解GD32单片机和STM32单片机
一、GD32单片机的概念、工作原理及内部结构 1.概念 GD32单片机是中国龙芯集成电路公司推出的一款ARM Cortex-M3内核的微控制器。它具有与STM32单片机相同的架构和指令集,但是价格相比STM32更为便宜。同时,GD32单片机有着更高的品质和可靠性,成为一个理想的低成本单片机解决方案。 2.工作原理 GD32单片机的工作原理基于时钟周期,其中时钟周期是单片机执行机器指令的重要组成部分。单片机中的每个时钟周期都包含多个时钟周期,每个时钟周期都可以执行一组基本指令。这些指令对应于单片机内部的不同部分,例如处理器、总线、存储器、IO等。 3.内部结构 GD32单片机的内部结构包含三个主要元件:处理器、存储器和输
[单片机]
基于ATmega16单片机的CAN总线转RS232设计
CAN(Controller Area Network)总线是德国BOSCH公司为解决现代汽车中众多控制与测试之间的数据交换开发的一种串行数据通信协议,是一种多主方式的串行通信总线。CAN总线是一种开放式、数字化、多点通信的控制系统局域网,具有通信速率高、传输时间短、传输距离远、纠错能力强、控制简单、扩展能力强以及性价比高等特点,是目前国际上应用最广泛的现场总线之一。但是目前PC机普遍配置RS232串行通信接口,没有CAN总线接口。实际中很多设备带有RS-232接口没有CAN总线接口,为了方便具有RS-232接口的设备与CAN总线的数据通信,本文完成了基于单片机ATMega16控制的CAN总线与RS-232转换器电路设计和软件设计
[单片机]
单片机在空调逆变器中的运用
0 引言
随着国内经济的飞速发展, 空调 车、豪华车也进入了新的发展阶段。空调 逆变器 是一种新型高效无污染“绿色”能源,其应用前景非常广阔。
SPWM技术是空调逆变器中主要的控制技术,要生成SPWM脉冲常采用两种方法:一是由模拟电路生成;二是由 单片机 等数字电路生成。前者电路复杂,抗干扰性能差,有温漂现象,系统可靠性和一致性低;数字方法则利用计算机实时计算,这样系统一致性很高,没用温漂现象,同时调试工作量大大降低。INTEL公司推出的16位微处理器N87C196MC/MD是专为电机拖动设置的低成本单片机芯片,片内集成了一个3相波形发生器WFG(Wave Form Generator),这一外设装置大大简化了产生SPW
[电源管理]
MCU与传感器的整合路,集成之势锐不可挡
传感器作为电子产品的“感知中枢”,在消费电子、工业、医疗、汽车等领域的应用越来越广泛,于基本功能之外也开始越来越多承担自动调零、自校准、自标定功能,同时具备逻辑判断和信息处理能力,能对被测量信号进行信号调理或信号处理。这就需要其拥有越来越强的智能处理能力,也即朝着智能化的方向发展。为了使客户能够更快、更便捷地完成系统开发,一些传感器厂商开始将MCU与传感器加以整合,提供MCU+传感器的模块化开发平台,逐渐成为一类产品发展趋势。
然而,无论是场景、位置和环境感知,还是基于运动、触摸和手势的交互功能,往往需要传感器的“始终开启”来实现,这与物联网、移动通信终端的低功耗化趋势又有所相悖。MCU往往具有多种工作模式,睡眠模式下只需极低
[单片机]
AVR单片机定时计数器学习笔记分享
定时计数器的结构与应用定时计数器(Timer/Counter)常用于计数、延时、测量 周期、频率、脉宽、提供定时脉冲信号等。在实际应用中,对于转速,位移、速度、流量等物理量的 测量,通常也是由传感器转换成脉冲电信号,通过使用定时计 数器来测量其周期或频率,再经过计算处理获得。 AVR的定时计数器接口功能: 通过定时计数器与比较匹配寄存器相互配合,生成占空比 可变的方波信号,即脉冲宽度调制输出PWM信号,可用于 D/A、马达无级调速控制、变频控制等。本文主要介绍的是AVR单片机定时/计数器学习笔记,具体的跟随小编来了解下。 AVR单片机定时/计数器学习笔记 定时/计数器1(16位)有普通模式、CTC模式、
[单片机]
基于嵌入式PC104工控机和C8051F047单片机实现机器人系统的设计
1.引言 高压输电线及杆塔附件长期暴露在野外,因受到持续的机械张力、电气闪络、材料老化的影响而产生断股、磨损、腐蚀等损伤,如不及时修复更换,原本微小的破损和缺陷就可能扩大,最终导致严重事故。因此,电力公司需要定期对线路设备进行巡检,及时发现早期损伤和缺陷并加以评估,根据评估结果安排必要的维护和修复,从而确保供电的安全可靠性。传统的人工巡检方法不仅工作量大而且条件艰苦,特别是对于山区和大江大河等的输电线路巡检存在很大困难,甚至一些巡检项目靠常规方法都难以完成。因此,采用机器人自动巡线成为保障高压输电线安全运行的一种必要手段。 高压输电线路巡线机器人属于特种机器人的研究范畴,主要完成高压供电线缆的无损探伤、悬垂绝缘子绝缘特性检测、
[单片机]