基于时钟芯片的硬件看门狗电路设计与实现

2020-02-05 02:19李峰
电子技术与软件工程 2020年7期
关键词:看门狗低功耗间隔

李峰

(小佩网络科技(上海)有限公司 上海市 201203)

1 引言

看门狗,又叫WatchDog Timer(WDT),从本质上来说就是一个定时器电路,一般有一个输入和一个输出,其中的输入叫做喂狗,输出一般连接到另外一个部分的复位端,复位端一般为Microcontroller Unit(MCU)。

在MCU正常工作的时候,每隔一段时间输出一个信号喂狗——给看门狗电路清零,如果在超过规定的时间不喂狗,WDT 定时超时,就会输出一个复位信号到达MCU,使MCU 复位重启,从而防止MCU 死机。总的来说,看门狗电路的作用就是防止程序发生死锁或者跑飞。

WDT 的基本工作原理如下:在整个系统运行以后就启动了看门狗的计数器,此时看门狗就开始自动计时,如果到达了一定的时间还不去给它清零,看门狗计数器就会溢出从而引起看门狗中断,造成系统的复位。

硬件看门狗就是利用了一个定时电路,来监控主程序的运行。在主程序的运行中,要在定时时间到达之前对定时器进行复位。看门狗的作用就是防止程序死循环和系统死机。

随着微电子技术的发展,嵌入式系统越来越复杂,为提高电路运行的可靠性,加入硬件看门狗电路,在软件出现异常时重启电路,使得系统恢复正常运行。

本文在介绍了使用时钟芯片实现硬件看门狗电路的方法,以及与普通看门狗电路实现方案的对比。

2 传统硬件看门狗电路分析

图1:PCF8563 内部功能框图

图2:PCF8563 看门狗硬件原理图框图

图3:PCF8563 看门狗软件流程图

传统硬件看门狗电路,一般由硬件定时器,看门狗输入,看门狗输出电路组成,在电路运行过程中,硬件定时器不停计时,定时器计时满产生溢出时,触发看门狗输出电路输出低电平,此低电平用于触发处理器系统的硬重启;当处理器正常运行时,会在定时器溢出前控制看门狗输入引脚电平不断变化,对定时器进行清零,从而避免溢出产生重启信号。

随着集成电路的发展与成熟,目前已很少使用分立器件实现硬件看门狗,多采用集成电路来实现,如SGM706、CAT823、EM6323、MAX813L 等均是常用的硬件看门狗芯片,他们的共同特点是定时器最大计时长度均为1.6 秒左右,即处理器的“喂狗”信号周期必须小于1.6 秒,才能可靠实现看门狗功能。

当前物联网系统的飞速发展,有大量硬件终端处于远程、低功耗工作模式,如远程抄表,电子车锁等,处理器多数时间处于低功耗睡眠状态,频繁的启动并输出“喂狗”信号将耗费大量电源,不利于系统长时间低功耗运行。

3 时钟芯片看门狗电路

通用市售时钟芯片种类繁多,其型号主要有 PCF8563、DS12887、DS1302、DS1307、DS3231 等多种型号,在实现通用的秒、分、时、日、月、年的计时功能外,各型号对外接口、闹钟、中断信号等功能略有不同。鉴于看门狗电路必须有低电平信号输出以便控制处理器硬重启的需要,选取了带有中断信号输出的PCF8563作为硬件看门狗电路的主芯片。

PCF8563 是恩智浦(NXP)公司的一款低功耗实时时钟万年历芯片,采用CMOS 工艺,具备可编程时钟输出、中断输出、低电压检测等功能,其中可编程时钟输出可配置为32.768 kHz, 1.024 kHz, 32 Hz, and 1 Hz;中断输出为集电极开路结构,在无信号输出时对外界电路无任何影响;对外通讯使用速度最高400kbit/s 的IIC总线。外接32.768KHz 时钟晶体,内置起振电容,可以实现年、月、日、周、小时、分钟、秒的计时信号存储与输出、闹钟和计时中断功能。室温条件下具有1.0V-5.5V 的宽工作电压范围和250nA 的低工作电流(关闭可编程时钟输出和IIC 等对外接口),具有SO8、TSSOP8、HVSON10 封装可供不同电路面积需求使用,适用于手机,PAD 等使用电池供电的便携电子设备使用。

其内部框图如图1 所示。

使用其中的TIMER FUNCTION 或ALARM FUNCTION 实现定时,ALARM FUNCTION 可实现周、日、小时、分钟级别的定时周期,TIMER FUNCTION 的时钟源可软件配置为4.096kHz,64Hz,1Hz,1/60Hz,结合8 位计数器,可实现0.25 毫秒到7680秒(2 小时多)的定时周期,此定时周期间隔即是看门狗的RST 信号间隔,从上述分析可以看出,PCF8563 可实现从毫秒级到小时级,甚至天、周级的定时周期输出,此周期的灵活性和适应性明显比传统看门狗电路强。

实现硬件看门狗功能的PCF8563 外围电路连接原理如图2 所示,其中PCF8563 的INT 引脚与MCU 的RST 引脚通常情况下可以直连;当INT 输出时间特性与MCU 所需RST 信号不匹配时,可以做是的匹配变换,以确保功能可靠实现。

系统开机上电后,处理器芯片通过IIC 总线初始化PCF8563,根据所需看门狗电路定时间隔,设定当前时间,TIMER FUNCTION定时寄存器或ALARM FUCNTION定时寄存器,在系统正常运行时,在定时时间到之前,处理器重新设定TIMER FUNCTION 定时寄存器或ALARM FUCNTION 定时寄存器,以免其INT 引脚输出低电平;在系统运行异常,无法按应有间隔设定TIMER FUNCTION 或ALARM FUCNTION 寄存器,定时时间到时,PCF8563 的INT 引脚输出低电平,从而触发系统重启。

软件流程图如图3 所示。

如上使用的硬件看门狗电路,可以实现0.25 毫秒到周级的定时“喂狗”间隔,喂狗间隔可以灵活设置,短定时间隔可以提高系统的响应速度,长定时间隔可最大限度的延长喂狗间隔,降低系统功耗。其优势在于时间间隔程序可控,长短可调,长时间间隔有利于低功耗设备,其本身就是低功耗芯片,运行电流250nA,22uF电容可运行超过24 小时,XH414HG 电容式纽扣电池可运行数天;

此外,作为输出复位信号的INT 引脚,除了可以连接MCU 的复位引脚外,还可以连接至系统供电电源的控制引脚,在定时器超时溢出时,短时间切断系统电源,从而实现全系统重新上电的硬重启,比单纯复位MCU 的方法更为彻底有效。

4 结论

从文章上述内容可以看出,传统的硬件看门狗电路最大“喂狗”间隔均在1.6秒左右,“喂狗”要求频繁,耗费处理器资源和较多电量。使用时钟芯片(如PCF8563)实现的硬件看门狗电路,具有自身功耗低、“喂狗”间隔跨度大(1/4096 秒——数周),成本低,通用性强等特点,尤其适用于本身就需要实时时钟的产品,在不增加硬件成本的基础上,实现硬件看门狗电路,提高系统运行的可靠性。

猜你喜欢
看门狗低功耗间隔
一种高速低功耗比较器设计
间隔问题
把他叫醒
间隔之谜
一种采用FPGA实现的通用看门狗电路
上楼梯的学问
ADI推出三款超低功耗多通道ADC
IDT针对下一代无线通信推出低功耗IQ调制器
低功耗加权cache替换策略
头夹球接力