看门狗功能规范

本文详细介绍了嵌入式系统中的看门狗功能,包括其作用、种类及其实现方式。看门狗主要分为CPU内部看门狗和独立看门狗芯片,分别有各自的优缺点。在加特兰芯片中,启用看门狗涉及设置计时器、配置控制寄存器等步骤。此外,文章还讲述了看门狗的初始化、超时中断处理以及通过CAN消息进行的看门狗自测方法。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

看门狗功能规范

  • 看门狗功能简介

在产品化的嵌入式系统中,为了使系统在异常情况下能自动复位,一般都需要引入看门狗。

看门狗其实就是一个可以在一定时间内被复位的计数器。当看门狗启动后,计数器开始自动计数,经过一定时间,如果没有被复位,计数器溢出就会对CPU产生一个复位信号使系统重启(俗称“被狗咬”)。系统正常运行时,需要在看门狗允许的时间间隔内对看门狗计数器清零(俗称“喂狗”),不让复位信号产生。如果系统不出问题,程序保证按时“喂狗”,一旦程序跑飞,没有“喂狗”,系统“被咬”复位。

  • 看门狗的种类

在现在的嵌入式系统中主要可以分为两种类型的看门狗:

    1、CPU内部自带的看门狗:此类看门狗一般是将一个芯片中的定时器来作为看门狗,通过程序的初始化,写入初值,设定溢出时间,并启动定时器。程序按时对定时器赋初值(或复位),以免被咬。这种看门狗是可以被禁用的(只要停止这个定时器即可),好比对那只要咬你的狗来个“葵花点穴手”。大部分CPU都内置看门狗,硬件原理可参考各芯片数据手册。

 优点:可以通过程序改变溢出时间;可以随时禁用

 缺点:需要初始化;如果程序在初始化、启动完成前跑飞或在禁用后跑飞,看门狗就无法复位系统,这样看门狗的作用就没有了,系统恢复能力降低。

  1. 独立的看门狗芯片:这种看门狗主要有一个用于喂狗的引脚(一般与CPU的GPIO相连)和一个复位引脚(与系统的RESET引脚相连),如果没有在一定时间内改变喂狗脚的电平,复位引脚就会改变状态复位CPU。此类看门狗一上电就开始工作,无法禁用。现在常用的芯片有:CAT705/CAT706、IMP706等等,溢出时间在1.6秒左右。

优点:无须配置,上电即用。无法禁用,系统必须按时喂狗,系统恢复能力高。

缺点:无法灵活配置溢出时间,无法禁用,灵活性降低。

  • 功能开发启用
  • 启用看门狗

在加特兰芯片中自带看门狗,直接启动配置即可。

  • 看门狗配置

1、设置看门狗计时器步骤

  将0x55写入WDT_PASSWD寄存器,以获得对WDT_PERIOD寄存器的访 问权限

向WDT_PERIOD寄存器写入一个32位的值。确保首先设置期间注册值。看门狗计时器用WDT_PERIOD计数器的值加载内部计数器,并每时钟周期减少一个计数器。

将0xAA写入WDT_PASSWD寄存器。此密码写入允许您访问WDT_CTRL寄存器。

在WDT_CTRL寄存器中配置以下字段:

        (a) Write 1到WDT_CTRL.E字段,以启用看门狗计时器。

        (b)写入给WDT_CTRL。事件字段配置看门狗计时器对超时错误做出反应:

        写01配置看门狗计时器在超时发生时引发中(IRQ_18)。           

        Write 00来配置看门狗计时器,以断言指示已发生超时的外部输出信号。

        Write 10来配置监督狗定时器来重置ARC EM处理器。

将0写入WDT_CTRL.F字段,表示正在使用一个新的计时器值重置WDT_PERIOD寄存器。

2、在运行时的编程监视器计时器

在运行时,可以使用看门狗计时器执行以下任务:

重置监视器计时器计数器值

可以编程设置一个ARC EM处理器,以将看门狗计时器计数器重置为WDT_PERIOD寄存器中的值。

1.以内核模式将0x5A写入WDT_PASSWD寄存器。

2.ARC EM处理器自动加载来自WDT_PERIOD寄存器的监视器计时器计数器。

禁用监视器定时器

1.以内核模式将0xAA写入WDT_PASSWD寄存器。 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

沪漂的码农

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值