看门狗型复位电路设计解析

描述

  什么是看门狗型复位电路

  看门狗型复位电路(Watchdog Timer Reset Circuit),简称看门狗电路,是一种常见的复位电路类型,用于监控和恢复嵌入式系统的异常状态。

  看门狗电路的作用是在系统出现故障或停机时,能够自动检测并触发系统复位操作,使系统恢复到可控的初始状态。它通过定期喂狗信号来确认系统正常运行,如果系统未能在规定的时间内正常喂狗,看门狗电路将产生复位信号,将系统重新启动。

  看门狗电路通常由两部分组成:

  1. 看门狗定时器(Watchdog Timer):看门狗定时器是一个可编程的定时器,它设置了一个特定的时间间隔,称为看门狗超时时间。定时器在每次启动后开始倒计时,如果在超时时间内未接收到喂狗信号,定时器会溢出,触发复位信号。

  2. 喂狗信号源(WDT Feed Signal Source):喂狗信号源是一个周期性产生喂狗信号的源头。通常是由系统软件定期发送一个特定的信号,告诉看门狗定时器系统正常运行。喂狗信号可以是一个特定的数据或命令,也可以是一个定时器中断信号。

  看门狗型复位电路广泛应用于嵌入式系统、工控系统、自动化设备等对稳定性和可靠性要求较高的场景。它可以监测系统死锁、软件异常、硬件故障等问题,并能够自动恢复系统,保障系统的可靠运行。

  上电复位时看门狗模块默认工作在什么模式?

  对于上电复位时的看门狗模块,默认情况下,它通常处于使能模式。也就是说,当系统上电时,看门狗模块会默认开始工作,并开始监控系统的运行状态。

  在使能模式下,看门狗模块会按照预设的定时器设置开始计时,在每个定时器周期内需要接收到喂狗信号来确认系统正常运行。如果在设定的时间间隔内未接收到喂狗信号(也就是系统未能定期“喂狗”),看门狗模块会产生复位信号,将系统重新启动。

  上电时的看门狗模块行为可能取决于具体的实现和配置。有些看门狗模块可能具有可配置的工作模式,可以根据需求进行设置。

  看门狗型复位电路

  看门狗型复位电路主要利用CPU正常工作时,定时复位计数器,使得计数器的值不超过某一值;当CPU不能正常工作时,由于计数器不能被复位,因此其计数会超过某一值,从而产生复位脉冲,使得CPU恢复正常工作状态。

  典型应用的Watchdog复位电路如图7所示。此复位电路的可靠性主要取决于软件设计,即将定时向复位电路发出脉冲的程序放在何处。

  一般设计,将此段程序放在定时器中断服务子程序中。然而,有时这种设计仍然会引起程序走飞或工作不正常。原因主要是:当程序“走飞”发生时定时器初始化以及开中断之后的话,这种“走飞”情况就有可能不能由Watchdog复位电路校正回来。因为定时器中断一真在产生,即使程序不正常,Watchdog也能被正常复位。为此提出定时器加预设的设计方法。即在初始化时压入堆栈一个地址,在此地址内执行的是一条关中断和一条死循环语句。

  在所有不被程序代码占用的地址尽可能地用子程序返回指令RET代替。这样,当程序走飞后,其进入陷阱的可能性将大大增加。而一旦进入陷阱,定时器停止工作并且关闭中断,从而使Watchdog复位电路会产生一个复位脉冲将CPU复位。当然这种技术用于实时性较强的控制或处理软件中有一定的困难。

定时器

  看门狗复位是硬件复位还是软件复位

  看门狗复位既可以是硬件复位,也可以是软件复位,具体取决于系统设计和实现。

  硬件复位:在硬件上实现看门狗复位意味着看门狗电路在硬件层面上监控系统状态并触发复位操作。当看门狗定时器检测到系统未能及时喂狗或发现其他异常情况时,它会生成一个复位信号,将系统重新启动。硬件复位通常是由一个特定的电路(如看门狗定时器)直接控制复位引脚,从而重置整个系统。

  软件复位:软件复位是通过系统软件来实现的复位操作。当系统检测到需要复位时,它会在软件层面上执行相应的复位程序或代码,进行系统的重新初始化和重启。

  在某些系统中,硬件复位和软件复位可以同时使用。例如,看门狗电路可能会在硬件上监控系统状态,并在检测到故障时触发硬件复位。而软件可以通过定期喂狗信号来防止硬件复位的发生,从而保持系统正常运行。

  审核编辑:黄飞

打开APP阅读更多精彩内容
声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉

全部0条评论

快来发表一下你的评论吧 !

×
20
完善资料,
赚取积分