深圳市组创微电子有限公司
咨询电话
0755-8299 4126

单片机开发

单片机看门狗技术


单片机系统中的看门狗技术实现方法

一、单片机与看门狗技术概述

单片机系统在军事、工业、民用产品中的应用越来越广。它将许多以往硬件实现的功能由软件来完成,体积小巧、功能丰富、智能化程度高、但由于单片机系统的工作现场比较复杂,存在来自系统内部与外部的各种电气干扰,除此以外还受到系统结构、制造工艺、元器件的选择与安装的影响,这些都是单片机系统的干扰因素,对系统的可靠性方面带来许多问题。这些干扰会导致单片机程序飞到一个临时构成的死循环或PC指针落到程序存储器芯片地址之外。这种情况下冗余指令和软件陷阱都无法解决,系统将完全瘫痪。在这种情况下,只有复位。因此看门狗技术就是一个能发出复位信号的定时器电路。设置看门狗是防止单片机死机、提高单片机系统抗干扰性能的一种重要途径,看门狗技术可以分为单时限看门狗、双时限看门狗,定时复位看门狗。本文主要介绍看门狗技术的实现方法及原理。

目前最广泛的看门狗电路实际上是一个特殊的定时器电路。看门狗按固定速率计时,计满预定时间就发出溢出脉冲使单片机复位。如果每次在定时器溢出前强行让定时器清零,就不会发出溢出脉冲。清零脉冲由CPU发出,在单片机中看门狗不会溢出。一旦程序进入一个不含喂狗语句的死循环。本文称这种看门狗为典型看门狗,典型看门狗已被集成化,如MAX706,MAX791,X5045等,还有许多单片机本身集成了这种看门狗,如NXP公司的P89C669,P89V51RD2等单片机,具体电路可参阅这些芯片的技术资料。下面将以X5045为例来介绍单时限及双时限看门狗实现方式。

二、单时限看门狗

只使用单个看门狗定时器来控制单片机复位端的方式称为单时限看门狗,在电路实现上较为简单,一般情况下可以有效的控制单片机系统正常工作。图1给出了以X5045看门狗芯片实现的单时限看门狗硬件电路图。图中单片机的P1.0为X5045提供片选信号,P1.1接收X5045的串行数据,P1.2提供串行时钟,P1.3向X5045发送串行数据,X5045的RST引脚与单片机的RST引脚相连,用于复位单片机。单片机控制程序中,每隔一定的时间间隔放置一条“喂狗”指令,该时间间隔小于X5045预制的定时时间,以保证程序正常运行时X5045不会溢出;而程序一旦出现异常,X5045将超时溢出,并通过RST引脚送出一个复位信号是单片机复位,重新开始运行程序。

图1 单时限看门狗电路


三、双时限看门狗

有一个错误观点:加了一个看门狗,单片机就不会死机。实际上,看门狗有时会完全失效。当程序进入某个死循环,而这个死循环中又包含喂狗语句,这时看门狗始终不会溢出,单片机始终得不到复位信号,程序也就始终跳不出这个死循环。针对这一弊端,就需设计一个双时限看门狗系统。图2给出了双时限看门狗硬件电路。在单时限看门狗的基础上增加了一路X5045看门狗芯片,两路看门狗以或门形式接入到单片机的RST引脚。只要有一路X5045超时溢出,则使单片机复位。

图2 双时限看门狗电路


双时限看门狗有两个定时器:一个为短定时器,一个为长定时器。短定时器定时为T1,长定时器定时为T2,0<T1≤T2;长、短定时器的喂狗是各自独立的。短定时器像典型看门狗那样工作,它保证一般情况下看门狗有快的反映速度;长定时器的定时T2大于CPU执行一个主循环程序的时间,并且每一个主循环才喂狗一次,用来防止看门狗失效。

这样,当程序进入某个死循环,如果这个死循环包含短定时器喂狗语句而不包含长定时器喂狗语句。那么长定时器终将溢出,使单片机复位。巧妙安排长定时器喂狗语句的位置,可保证出现死机的概率极低。

目前几乎所有的看门狗都是依赖于CPU(依赖于CPU喂狗)。这可以比作:一个保险设备能否起到保险作用还依赖于被它保护的对象的行为。显然,依赖于CPU的看门狗是不能保证单片机百分之百不死机的。

四、定时复位看门狗

定时复位看门狗的主体也是一个定时器,到预定时间就发出溢出脉冲,此溢出脉冲使单片机强行复位。定时复位看门狗不需要CPU喂狗。

简言之,定时复位看门狗就是定时地让单片机强行复位。这样,即使装置死机,其最大死机时间也不会大于定时器的定时时间。显然,只有硬件完好,这种看门狗百分之百地保证了单片机不会长时间死机。

图3 定时复位看门狗电路


比较常用的是以555定时器作为看门狗与单片机的RST相连接,如图3所示,上电时通过电阻R1和R2对C4充电后3脚输出低电平,单片机上电复位,开始正常工作。通过调节电阻R2的阻值可以调整555定时器输出电平的时间T,使之满足单片机复位的时间要求,555输出的时间应能够满足单片机一次主循环的工作时间,使单片机能够能够完整的工作。

结语

本文简单介绍了比较典型的几种看门狗工作方式及原理,在具体设计过程中,应考虑实际需求,采用最适合自己的看门狗设计方案,获得更好的抗干扰效果。相反设计不合理的看门狗系统,不但不能提供系统的可靠性,反而会导致系统不能正常工作,所以在进行单片机系统设计时,看门狗设计作为重要的考虑对象。

以上就是我们深圳市组创微电子有限公司为您介绍的单片机系统中的看门狗技术实现方法详情。如果您有智能电子产品的软硬件功能开发需求,可以放心交给我们,我们有丰富的电子产品定制开发经验,可以尽快评估开发周期与IC价格,也可以核算PCBA报价。我们是多家国内外芯片代理商:松翰、应广、杰理、安凯、全志、realtek,有MCU、语音IC、蓝牙IC与模块、wifi模块。我们的拥有硬件设计与软件开发能力。涵盖了电路设计、PCB设计、单片机开发、软件定制开发、APP定制开发、微信公众号开发、语音识别技术、蓝牙wifi开发等。还可以承接智能电子产品研发、家用电器方案设计、美容仪器开发、物联网应用开发、智能家居方案设计、TWS耳机开发、蓝牙耳机音箱开发、儿童玩具方案开发、电子教育产品研发。

注:部分图片内容来源于网络,如有侵权,请联系删除。

  • 返回顶部