在对可靠性有严格要求的机载航空电子系统中,看门狗是保障系统稳定运行的重要手段,可以及时监控嵌入式系统软件是否在规定的时间内执行了规定的指令,如果发现进入错误状态可以及时发起中断或复位。下面介绍看门狗电路工作原理、作用及注意事项。
简述看门狗的基本原理
看门狗是一种监控系统的运行状况的手段,通过软硬件结合的方式实现对系统运行状况的监控。稳定运行的软件会在执行完特定指令后进行喂狗,若在一定周期内看门狗没有收到来自软件的喂狗信号,则认为系统故障,会进入中断处理程序或强制系统复位。看门狗的工作流程见图1,系统上电后根据不同的工作模式可以选择使能看门狗的时机,若看门狗被使能则计数器开始计数,如果在设定的时间内没有及时喂狗则会发生看门狗超时。看门狗主要由寄存器、计数器和狗叫模块构成;通过寄存器对看门狗进行基本设置,计数器计算狗叫时间,狗叫模块决定看门狗超时后发出的中断或复位方式。
看门狗工作流程
软件看门狗作用原理
软件看门狗因其只使用了单片机内部的定时器/计数器单元实现看门狗功能,不必外加元器件,因而被普遍的应用于单片机系统中,常与硬件看门狗一起使用。
软件看门狗一般采用高级中断的方式执行,通过在中断程序中设置系统复位寄存器或对程序计数器PC赋予初始值的方式进行系统复位。可根据系统的需要自行确定看门狗动作的时间,该时间通过设置定时器的计数值来确定。在系统正常的主循环中适当地插入“喂狗”指令来重置定时器值,当程序跑飞或进入死循环时,定时器因计时到而中断,从而执行中断复位程序,将系统复位。
一般看门狗硬件电路设计原理
看门狗,又叫watchdog,从本质上来说就是一个定时器电路,一般有一个输入和一个输出,其中输入叫做喂狗,输出一般连接到另外一个部分的复位端,一般是连接到单片机。
单片机正常工作的时候,每隔一段时间输出一个信号到喂狗端,给看门狗电路清零,如果在超过规定的时间不喂狗,定时超时,就会给一个复位信号到达单片机,使单片机复位,防止单片机程序跑飞。看门狗电路的作用就是防止程序发生死循环,或者说程序跑飞。
电路设计
看门狗硬件电路设计原理,利用电阻、电容、MOSFET、反相触发器搭建了一套运行可靠的看门狗电路。
图2看门狗硬件设计电路图
如图2所示,信号“WATCHDOG_KICK”为“喂狗”信号;RESET为复位信号,一般在整套电气系统里与单片机的reset引脚相连;U1,U2,U3,U4为逻辑反相器;Q1、Q2、Q3为N型MOSFET;VCC一般为5v电压。
看门狗电路注意事项
1、系统电压
选择看门狗依据系统内部的电压轨,也就是说,根据MCU或DSP的驱动电压来选择电压监控器。
2、看门狗输入端(WDI)
一旦MCU无法正常工作时,而且其片内看门狗功能也无法复位,软件进入死循环。这时,具有集成看门狗功能的监控器可触发复位,从而提高系统的可靠性。
3、手动复位(MR)功能
借助该功能,可对电路进行手动复位,或者通过应用中的另一个器件来主动控制监控器电路。
4、有效高电平输出
如果处理器需要采用有效高电平复位输入,无需增加额外的器件就可实现。
5、电源故障输入/输出(PFI/PFO)
利用该比较器能够提供更大的灵活性,例如用来实现电池电量的长时间监测和电压跌落预警。
6、延迟时间
一定的延迟时间使得电压和电路中的其它器件能够在正常操作重新开始之前先稳定先来,降低电压波动,提高系统的可靠性。
7、通道数
一般而言,系统中所需的监控器功能的数量取决于处理器及外围器件的电压。例如,独立电压的处理器有可能需要对两个电源轨进行监控,与此同时,系统中的存储器可能也需要进行监控并工作在第三个(不同的)电压轨上。
8、芯片启动选通作用
一旦电源电压处于欠压状态时,看门狗电路的芯片启动选通功能能够防止错误数据使CMOSRAM发生劣化。