嵌入式系统看门狗的使用

合集下载

硬件看门狗芯片

硬件看门狗芯片

硬件看门狗芯片硬件看门狗芯片,又称为硬件看门狗电路,是一种嵌入式系统中的重要组成部分。

它主要用于监控系统的运行状态,当系统出现异常情况时,硬件看门狗芯片会自动重置系统,以恢复系统的正常工作。

硬件看门狗芯片由看门狗定时器、看门狗复位电路和看门狗计时寄存器组成。

首先,我们来看看看门狗定时器。

看门狗定时器是硬件看门狗芯片的核心部分,它会定期向看门狗芯片发送某个特定的信号。

这个信号会被看门狗复位电路接收并处理。

如果系统正常工作,看门狗定时器会在规定的时间内定期发送信号,以表明系统仍然在正常运行中。

但是,如果系统出现异常情况,如死循环、程序卡死等,看门狗定时器将不会正常发送信号。

那么接下来就是看门狗复位电路的工作了。

看门狗复位电路会监测看门狗定时器发送的信号。

如果看门狗定时器在规定的时间内没有发送信号,说明系统出现了故障。

看门狗复位电路会立即向系统发送一个复位信号,强制将系统重启,以恢复系统的正常工作。

看门狗计时寄存器是用来控制看门狗定时器的运行时间的。

它有一个预置的定时值,比如60秒。

当看门狗定时器开始工作时,计时寄存器开始倒计时,直到倒计时结束。

如果看门狗定时器在倒计时结束前没有发送信号,看门狗复位电路将立即启动复位操作。

硬件看门狗芯片在嵌入式系统中有很多应用。

首先,它可以用于监控嵌入式系统的运行状态。

当系统处于正常工作状态时,看门狗定时器会定期发送信号,而看门狗复位电路会接收并处理信号。

如果系统出现异常情况,看门狗定时器将不会发送信号,看门狗复位电路会立即启动复位操作,以恢复系统的正常工作。

此外,硬件看门狗芯片还可以用于检测系统的死锁。

死锁是指系统中的两个或多个进程互相等待对方所持有的资源,导致系统无法继续运行的情况。

当系统发生死锁时,看门狗定时器将无法发送信号,看门狗复位电路会立即启动复位操作,以解除死锁状态。

硬件看门狗芯片还可以用于保护嵌入式系统的安全性。

一些恶意软件可能会导致系统崩溃或瘫痪。

使用硬件看门狗芯片可以及时检测并处理这些异常情况,确保系统的安全性。

《嵌入式系统原理与应用》实验报告04-看门狗实验

《嵌入式系统原理与应用》实验报告04-看门狗实验
六、教师评语
签名:
日期:
成绩
WDFEED=0x55;
}
void FeedDog(void)
{
WDFEED=0xaa;
WDFEED=0x55;
}
int main (void)
{
uint32 dly;
PINSEL0=0x00;
PINSEL1=0x00;
IO0DIR=led;
IO0SET=led;
for(dly=0;dly<500000;dly++);
1.实验效果截图
2.源程序
#include "config.h"
#define key (1<<20)//set the button to be P0.20
#define led (1<<7)
void WDT_Init(uint32 time)
{
WDTC=time;
WDMOD=0x03;
WDFEED=0xaa;
二、实验设备(环境)及要求
硬件:PC机;
软件:PC机操作系统windows XP,Proteus软件,ADS1.2
三、实验内容与步骤
实验内容:
运行程序时,LED灯闪烁一下,并启动看门狗;当按键按下时,停止喂狗,此时会引起看门狗复位;复位之后,程序重新运行,此时LED灯又闪烁了一下。
四、实验结果与数据处理
《嵌入式系统原理与接口技术》实验报告
实验序号:4实验项目名称:看门狗实验
学 号
XXXX
姓 名
XXX
专业、班
计算机科学与技术
实验地点
1-416
指导教师
XXX
实验时间

嵌入式系统看门狗实验报告

嵌入式系统看门狗实验报告

竭诚为您提供优质文档/双击可除嵌入式系统看门狗实验报告篇一:《嵌入式系统原理与应用》实验报告04-看门狗实验《嵌入式系统原理与接口技术》实验报告实验序号:4实验项目名称:看门狗实验1234篇二:嵌入式实验报告目录实验一跑马灯实验................................................. (1)实验二按键输入实验................................................. .. (3)实验三串口实验................................................. . (5)实验四外部中断实验................................................. .. (8)实验五独立看门狗实验................................................. (11)实验七定时器中断实验................................................. (13)实验十三ADc实验................................................. .. (15)实验十五DmA实验................................................. .. (17)实验十六I2c实验................................................. (21)实验十七spI实验................................................. .. (24)实验二十一红外遥控实验................................................. .. (27)实验二十二Ds18b20实验................................................. (30)实验一跑马灯实验一.实验简介我的第一个实验,跑马灯实验。

嵌入式系统中看门狗的使用总结

嵌入式系统中看门狗的使用总结

嵌入式系统中看门狗的使用总结最近需要在板子上加上一块WatchDog,以确保在系统出错时自动重启,所以看了一些在嵌入式系统中使用看门狗的资料,现在总结如下:一、看门狗原理在产品化的嵌入式系统中,为了使系统在异常情况下能自动复位,一般都需要引入看门狗。

看门狗其实就是一个可以在一定时间内被复位的计数器。

当看门狗启动后,计数器开始自动计数,经过一定时间,如果没有被复位,计数器溢出就会对CPU产生一个复位信号使系统重启(俗称“被狗咬”)。

系统正常运行时,需要在看门狗允许的时间间隔内对看门狗计数器清零(俗称“喂狗”),不让复位信号产生。

如果系统不出问题,程序保证按时“喂狗”,一旦程序跑飞,没有“喂狗”,系统“被咬”复位。

这就好比你的身边有一只时刻饥饿的狗,你不按时给它肉吃,它就会吃你的肉,你被吃了......挂了,投胎转世,彻底重新做人了。

不幸的是来世你还得喂狗-_-!!二、看门狗的种类在现在的嵌入式系统中主要可以分为两种类型的看门狗:1、CPU内部自带的看门狗:此类看门狗一般是将一个芯片中的定时器来作为看门狗,通过程序的初始化,写入初值,设定溢出时间,并启动定时器。

程序按时对定时器赋初值(或复位),以免被咬。

这种看门狗是可以被禁用的(只要停止这个定时器即可),好比对那只要咬你的狗来个“葵花点穴手”。

大部分CPU都内置看门狗,硬件原理可参考各芯片数据手册。

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

2、独立的看门狗芯片:这种看门狗主要有一个用于喂狗的引脚(一般与CPU的GPIO相连)和一个复位引脚(与系统的RESET 引脚相连),如果没有在一定时间内改变喂狗脚的电平,复位引脚就会改变状态复位CPU。

此类看门狗一上电就开始工作,无法禁用。

现在常用的芯片有:CAT705/CAT706、IMP706等等,溢出时间在1.6秒左右。

独立看门狗库函数

独立看门狗库函数

独立看门狗库函数独立看门狗库函数介绍独立看门狗是嵌入式系统中的一种重要机制,它可以在系统出现故障或死锁时自动重启系统,保证系统的稳定性和可靠性。

本文将介绍一个独立看门狗库函数,可以方便地在嵌入式系统中使用。

功能该库函数实现了以下功能:1. 初始化独立看门狗。

2. 启动独立看门狗。

3. 喂独立看门狗。

4. 停止独立看门狗。

5. 重置系统。

实现下面是该库函数的具体实现:1. 初始化独立看门狗```cvoid IWDG_Init(uint8_t prescaler, uint16_t reload) {// 打开IWDG时钟RCC->APB1ENR |= RCC_APB1ENR_IWDGEN;// 禁止写保护IWDG->KR = IWDG_KR_KEY_ENABLE;// 设置预分频器和重装载值IWDG->PR = prescaler;IWDG->RLR = reload;// 使能写保护IWDG->KR = IWDG_KR_KEY_RELOAD;}```在初始化时,需要设置预分频器和重装载值。

预分频器用于设置IWDG的时钟频率,重装载值用于设置IWDG的定时时间。

可以根据实际需求设置不同的预分频器和重装载值。

2. 启动独立看门狗```cvoid IWDG_Start(void){// 禁止写保护IWDG->KR = IWDG_KR_KEY_ENABLE;// 启动IWDGIWDG->KR = IWDG_KR_KEY_START;// 使能写保护IWDG->KR = IWDG_KR_KEY_RELOAD;}```启动独立看门狗需要先禁止写保护,然后发送启动命令,最后使能写保护。

3. 喂独立看门狗```cvoid IWDG_Feed(void){// 喂独立看门狗IWDG->KR = IWDG_KR_KEY_RELOAD;}```喂独立看门狗只需要发送喂狗命令即可。

第十二章ARM看门狗Watchdog电路

第十二章ARM看门狗Watchdog电路
使能/禁止看门狗、选择输入时钟源、使能/关闭中断、给 看门狗电路设初值;第二是在本系统程序完整运行一周期 的时间后,再重新设定看门狗的定时周期、俗称“喂狗”。
如看门狗初始化程序:
//------------------------------------------------------------------------ // 看门狗初始化
表12-3 看门狗定时器数据寄存器
寄存器名称 WTDAT
地址 0x53000004
读/写状态 R/W
描述 看门狗定时器数据寄存器
复位值 0x8000
表12-4 看门狗定时器数据寄存器WTDAT各位的定义
WTDAT 当前重载值

描述
初始状态
[15:0]
看门狗定时器的重载计数器
0x800
表12-5 看门狗定时器/计数器寄存器
factor)
其中, PCLK为系统时钟频率;Prescaler value为预分频值 (值0~255 );Division_ factor为四分频值,可以是16、 32、64或128。
看门狗的定时周期:
T = WTCNT×t_Watchdog
其中WTCNT是看门狗定时器的计数器,它的值表示
该定时器的当前计数值。
寄存器名称 地址 WTCNT 0x53000008
读/写状态
描述
复位值
R/W 看门狗定时器/计数器寄存器 0x8000
表12-6 看门狗定时器/计数器寄存器WTCNT各位的定义
WTCNT 计数器

描述
初始状态
[15:0]
看门狗定时器的当前计数器
0x800
12.2 看门狗电路的编程
看门狗电路编程较简单,首先看门狗电路初始化,即

嵌入式期末考试卷十套

嵌入式期末考试卷十套

嵌入式期末考试卷十套嵌入式系统期末考试卷一、选择题(每题2分,共20分)1. 嵌入式系统通常是指:A. 用于嵌入式应用的软件B. 运行在嵌入式设备上的操作系统C. 一种小型的计算机系统,用于控制或监视设备D. 一种大型的计算机系统,用于复杂的数据处理2. 下列哪项不是嵌入式系统的特点:A. 可扩展性B. 实时性C. 资源受限D. 专用性3. 嵌入式操作系统(RTOS)的主要功能不包括:A. 任务调度B. 内存管理C. 文件系统管理D. 网络通信4. 以下哪个不是嵌入式系统中的编程语言:A. CB. C++C. JavaD. Python5. 在嵌入式系统中,中断服务程序(ISR)的主要作用是:A. 执行系统初始化B. 处理系统异常C. 响应外部事件D. 执行定时任务6. 以下哪个不是嵌入式系统开发过程中的步骤:A. 需求分析B. 系统设计C. 硬件选型D. 软件测试7. 在嵌入式系统中,固件通常指的是:A. 硬件B. 软件C. 介于硬件和软件之间的程序D. 操作系统8. 以下哪个是嵌入式系统开发中常用的硬件描述语言:A. VHDLB. HTMLC. XMLD. SQL9. 在嵌入式系统中,看门狗定时器的主要作用是:A. 监控系统时间B. 监控系统温度C. 监控系统电源D. 监控系统运行状态,防止死锁10. 以下哪个是嵌入式系统中的存储设备:A. RAMB. ROMC. 硬盘D. 显示器二、填空题(每空1分,共10分)1. 嵌入式系统的核心是______,它负责协调和管理整个系统。

2. 嵌入式系统软件通常由______、应用程序和设备驱动程序组成。

3. 嵌入式系统中的中断优先级是指中断服务程序的______。

4. 嵌入式系统中,______是一种常见的通信协议,用于设备间的通信。

5. 在嵌入式系统中,______是一种用于存储程序和数据的非易失性存储器。

6. 嵌入式系统中的______是用于控制和管理硬件资源的软件。

看门狗的作用和原理

看门狗的作用和原理

看门狗的作用和原理看门狗(Watchdog)是一种用于监控计算机系统正常运行的硬件或软件装置,其作用是在系统出现故障或崩溃时,能够自动重启系统,以保证系统的稳定性和可靠性。

看门狗的原理是通过定时检测系统的运行状态,一旦系统出现异常情况,如死机、卡死等,看门狗会及时检测到并进行相应的处理,以恢复系统的正常运行。

看门狗通常被应用在一些对系统稳定性要求较高的场合,比如工业控制系统、嵌入式系统、服务器等。

它可以监控系统的运行状态,一旦系统出现异常,就能够自动进行重启,从而减少系统因故障而停机造成的损失。

下面将详细介绍看门狗的作用和原理。

首先,看门狗的作用主要体现在系统的监控和保护方面。

它可以定时对系统进行检测,确保系统一直处于正常运行的状态。

一旦系统出现异常,比如程序死锁、死循环、硬件故障等,看门狗就能够及时检测到,并进行相应的处理,比如重启系统,以恢复系统的正常运行。

这样可以有效地保护系统不因故障而停机,提高系统的可靠性和稳定性。

其次,看门狗的原理是基于定时检测系统的运行状态。

它通常会设置一个定时器,定时对系统进行检测。

如果系统在规定的时间内没有收到看门狗的喂狗信号,就会认为系统出现了故障,从而触发相应的处理措施,比如重启系统。

这种原理可以有效地监控系统的运行状态,及时发现并处理系统的异常情况。

总的来说,看门狗在计算机系统中起着非常重要的作用,它可以保护系统的稳定性和可靠性,减少系统因故障而停机造成的损失。

通过定时检测系统的运行状态,一旦系统出现异常,看门狗就能够及时进行处理,确保系统能够持续稳定地运行。

因此,在对系统稳定性要求较高的场合,如工业控制系统、嵌入式系统、服务器等,都会广泛地应用看门狗技术,以保证系统的正常运行。

综上所述,看门狗的作用和原理是非常重要的,它可以有效地监控系统的运行状态,保护系统的稳定性和可靠性。

在实际应用中,我们可以根据具体的系统需求,选择合适的看门狗装置或软件,并合理设置参数,以达到最佳的系统保护效果。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

嵌入式系统看门狗的使用随着32 位微控制器在嵌入式产品中的广泛应用,嵌入式操作系统也逐渐被大量应用。

由于嵌入式操作系统的使用, 大大降低了复杂应用系统中软件开发的工作量, 使得嵌入式软件能够采用现代的软件开发技术进行代码编写和调试, 从而也提高了软件的质量。

但在嵌入式应用中, CPU 必须可靠工作, 即使因为某种原因进入一个错误状态, 系统也应该可自动恢复。

看门狗的用途就是使微控制器在进入错误状态后的一定时间内复位。

看门狗的基本原理
所谓“看门狗”是指在系统设计中通过软件或硬件方式在一定的周期内监控系统的运行状况。

如果在规定时间内没有收到来自系统的触发信号, 则系统会强制复位, 以保证系统在受到干扰时仍然能够维持正常的工作状态。

它主要有寄存器、定时器和看门狗模等部件构成, 其内部结构如图1 所示。

图1、看门狗内部结构
在这里看门狗的原理我想大家都已经比较熟悉,我不再罗嗦
关于看门狗在前后台运行的程序(无OS)上使用很简单,我们只需要定时的去喂狗就可以。

但是对于使用的嵌入式操作系统的软件我们上面的简单喂狗方式就行不通了。

原因是系统是会执行任务调度的。

每一个任务在运行时就相当于一个前后台系统。

任一时刻只会有一个任务获得CPU的支配权而运行。

这样就要求我们必须在每一个任务中都要执行喂狗动作。

这样一来虽然达到了及时喂狗而不至于让系统复位的目的,但是如果有一个任务现在异常而不能运行的话,或者是两个任务因为资源问题发生死锁,系统其它的任务还会继续喂狗。

这样应用程序虽然出了问题,但是系统依然在按正常运行。

所以在OS中使用看门狗就变得复杂起来。

下面我说一下我是如何在OS中使用看门狗的。

以uCOS-II在STM32的平台上使用为例首先我为每一个任务分配一个软件看门狗计数器。

这样就形成了软件看门狗计数器队列。

这个队列在系统中使用的是全局变量(关于全局变量的使用可以看我上面一篇的“谈谈在UCOS中使用全局变量”一文)。

,设置一个优先级别最高的任务作为监视器,以监视各应用任务是否正常运行,该监视器即为软件看门狗.该任务对其他任务都设定一个计时器,每个被监视的任务在设定的时间内对软件看门狗中相应的定时器定时清零,即“喂软狗”.在其他任务都正常工作的情况下,软件看门狗对内置硬件看门狗定时器周期性清零,即“喂狗”.若某个任务出现故障,则该任务在设置的时间内对软件看门狗不“喂软狗”,此时与之对应的定时器溢出,软件看门狗发送指令,把该任务的堆栈地址指到其起始
地址,重启该任务.当在设定的次数内不能有效启动,则监视器任务延时 “ 喂狗”,内置硬件看门狗计数器溢出,自动重启系统.另外,当监视器任务本身或系统硬件出现故障时,不能及时对硬件看门狗定时器清零,则重启系统.
监控软件狗的任务原理图如下:
12345 系统的实现过程
本软件看门狗通过检查各应用任务是否在规定的时间内对其 “ 喂软狗”来确定各任务的运行状态,硬件看门狗通过检查软件看门狗是否在规定的时间内对其 “ 喂狗”来实现对监视器任务的监视.通过微 处理器的定时器中断机制,为每个任务分配计时单元和运行标志.系统具体的执行操作如下:
1 )系统中某任务空闲时,以小于 “ 喂软狗”设定的时间间隔为周期,周期性地 “ 喂软狗”.
2 )在该任务执行时,预计执行所需的最长耗时,并用稍大于该最大耗时的时问间隔设置监视器中与 其对应的定时器参数,同时中断周期性 “ 喂软狗”模块,启动监视器任务中的定时器倒计数.当该任务正常执行完毕时,发送信号 “ 喂软狗”,对定时器清零,复位该任务供下次使用,同时恢复周期性 “ 喂软狗”模块 .
3 )当任务出现异常时,不能在设定的时间间隔内完成该任务,不能对软件看门狗及时清零,使得监 视器中相应的定时器溢出,监视器任务通过内核服务发送指令,把该任务的堆栈地址指到其起始地址,重启该任务,累计其复位次数,同时把该任务的计时器清零.如果在设定的次数内不能够有效启动该任务,软件看门狗则延时喂内置硬件看门狗,内置看门狗计数器溢出,自动重启系统.当系统主程序出现问题或者系统硬件出问题时,软件按看门狗
也延迟“喂狗”,重新启动系统,以确保系统长时间稳定运行.这个方法已经成功运行于我的项目,再次分享出来。

方便大家的使用。

相关文档
最新文档