看门狗控制器原理与编程笔记

合集下载

一文读懂STM32之独立看门狗-窗口看门狗的原理

一文读懂STM32之独立看门狗-窗口看门狗的原理

一文读懂STM32之独立看门狗/窗口看门狗的原理一、独立看门狗STM32的独立看门狗由内部专门的40Khz低速时钟驱动,即使主时钟发生故障,它也仍然有效。

看门狗的原理:单片机系统在外界的干扰下会出现程序跑飞的现象导致出现死循环,看门狗电路就是为了避免这种情况的发生。

看门狗的作用就是在一定时间内(通过定时计数器实现)没有接收喂狗信号(表示MCU已经挂了),便实现处理器的自动复位重启(发送复位信号)。

在键值寄存器(IWDG_KR)中写入0xCCCC,开始启用独立看门狗;此时计数器开始从其复位值0xFFF递减计数。

当计数器计数到末尾0x000时,会产生一个复位信号(IWDG_RESET)。

无论何时,只要键寄存器IWDG_KR中被写入0xAAAA,IWDG_RLR 中的值就会被重新加载到计数器中从而避免产生看门狗复位。

IWDG_PR和IWDG_RLR寄存器具有写保护功能。

要修改这两个寄存器的值,必须先向IWDG_KR寄存器中写入0x5555。

将其他值写入这个寄存器将会打乱操作顺序,寄存器将重新被保护。

重装载操作(即写入0xAAAA)也会启动写保护功能。

只要对以上三个寄存器进行相应的设置,我们就可以启动STM32的独立看门狗,启动过程可以按如下步骤实现(独立看门狗相关的库函数和定义分布在文件stm32f10x_iwdg.h和stm32f10x_iwdg.c中):1)取消寄存器写保护(向IWDG_KR写入0X5555)通过这步,我们取消IWDG_PR和IWDG_RLR的写保护,使后面可以操作这两个寄存器,设置IWDG_PR和IWDG_RLR的值。

这在库函数中的实现函数是:IWDG_WriteAccessCmd(IWDG_WriteAccess_Enable);2)设置独立看门狗的预分频系数和重装载值设置看门狗的分频系数的函数是:voidIWDG_SetPrescaler(uint8_TIWDG_Prescaler);//设置IWDG预分频值。

看门狗芯片原理

看门狗芯片原理

看门狗芯片原理
看门狗芯片是一种用于监控系统运行状态的硬件设备。

它通过定时检测系统的运行情况,以确保系统在出现故障或崩溃时能够自动重启或采取其他应急措施,从而提高系统的稳定性和可靠性。

看门狗芯片的工作原理如下:
1. 看门狗计时器:看门狗芯片内置了一个计时器,其作用是定时检测系统的运行情况。

通常,看门狗计时器的定时周期较短,例如几十毫秒或几秒钟。

2. 系统运行状态监测:看门狗芯片会周期性地向系统发送一个重启信号,例如通过触发系统复位信号。

只要系统正常运行,系统会在短时间内清除重启信号,以示系统正常。

但如果系统发生故障或崩溃,就无法及时响应和清除重启信号。

3. 看门狗定时器复位:当看门狗芯片向系统发送重启信号后,在一个设定的时间内,看门狗芯片会不断检测系统是否给出相应的回应。

如果系统未能及时回应或清除该信号,看门狗芯片会认为系统出现故障,并产生一个复位信号。

4. 系统复位:当看门狗芯片检测到系统出现故障时,它会向系统发送复位信号,强制系统重新启动。

这样,系统就可以在发生故障时快速恢复运行,从而减少故障造成的影响。

总之,看门狗芯片通过定时检测系统运行状态,并根据系统的
响应情况采取相应的动作,确保系统能够及时发现并处理故障,从而提高系统的可用性和可靠性。

看门狗 原理

看门狗 原理

看门狗原理
看门狗(Watchdog)原理是一种计算机软件或硬件的保护机制,用来在发生软件或硬件故障时重新启动系统或某个应用程序,而不需要人工处理。

看门狗(Watchdog)原理具有检测功能以及处理功能,可以在系统检测到某种异常情况时采取合适的处理措施,避免造成进一步损害。

看门狗原理在类型上可分为硬件看门狗(HardwareWatchdog)和软件看门狗(SoftwareWatchdog),硬件看门狗是系统硬件板上安装的一种独立模块,而软件看门狗则是操作系统或应用程序中实现的一种保护机制。

硬件看门狗的工作原理主要是采用一个独立的定时计数器来控
制系统中的动作时间,如果一段时间内没有收到来自处理器的某种信号,即认为处理器出现异常,立即重新启动系统。

软件看门狗的工作原理和硬件看门狗相似,也是运行在系统中的一种独立服务,其主要功能是检测系统的运行情况,如果发现系统或某个程序或数据处理器出现错误,就会进行重新启动。

软件看门狗的优点是能够根据不同的需求,进行定制的设置,可以更好的满足不同的需求,而且不需要考虑硬件看门狗的空间限制。

看门狗原理是一种有效的系统保护机制,它能够及时发现系统故障,采取相应的处理措施,防止系统崩溃,损坏数据,从而节省人力物力投入和时间成本,让系统更加安全可靠,降低用户的风险。

- 1 -。

stm32看门狗原理(一)

stm32看门狗原理(一)

stm32看门狗原理(一)STM32看门狗什么是看门狗?•看门狗(Watchdog)是一种硬件设备,用于监视系统的运行状态。

•当系统出现故障或死锁时,看门狗能够自动进行故障处理,避免系统一直处于不可用状态。

STM32看门狗功能•STM32微控制器系列中,许多型号都配备了看门狗模块。

•看门狗模块可以设置定时器,当定时器达到预设值时,会触发复位操作,使系统重新启动。

•STM32看门狗模块可以提高系统的可靠性和稳定性。

STM32看门狗的工作原理看门狗定时器•STM32看门狗模块通过一个专门的计时器实现定时的计数。

•每次系统启动后,看门狗定时器会开始计数,当计数达到设定值时,产生看门狗溢出中断或复位系统。

•看门狗定时器的计数周期可以根据需求进行配置,一般在几秒到几分钟之间。

看门狗初始化•在使用STM32看门狗之前,需要进行初始化设置。

•首先需要配置看门狗定时器的计数周期,以确定触发看门狗复位的时间间隔。

•其次需要使能看门狗模块,使其开始工作。

喂狗操作•STM32看门狗模块提供喂狗功能,用于重置看门狗的定时器。

•在系统正常运行时,需要定期执行喂狗操作,以避免看门狗复位系统。

•喂狗操作可以通过写入特定的值到看门狗控制寄存器中完成。

看门狗复位•当看门狗定时器计数达到设定值时,会触发看门狗复位操作。

•看门狗复位会导致系统重新启动,并将系统状态恢复到初始状态。

STM32看门狗的应用场景•嵌入式系统中,特别是对系统可靠性要求较高的产品中,可以使用STM32看门狗模块。

•在无人机、工业控制设备、医疗设备等领域中,STM32看门狗模块可以提供保护机制,避免系统出现故障导致严重后果。

总结•STM32看门狗模块是一种可靠的系统保护机制,能够提高系统的可靠性和稳定性。

•通过设置看门狗定时器的计数周期、喂狗操作和看门狗复位,可以实现对系统状态的监控和自动恢复。

•STM32看门狗模块在嵌入式系统中的应用广泛,特别是对系统可靠性要求较高的场景中。

8051单片机“看门狗”原理、详解和C语言演示程序

8051单片机“看门狗”原理、详解和C语言演示程序
~2~
值得提一下: 由于现在 AT89S52 应用比较广泛,所以我先说说 ATMEL 的看门狗;再说
说本次试验用的 STC89C52RC 的看门狗;注意两个丌一样!!! AT89S52 单片机看门狗定时器是 14 位的,最大计数 214=16384 个数,每计
16384 个时钟周期就溢出一次。也就是说如果使用 12M 晶振的话,至少应该在 16.384ms 内喂一次狗。
~5~
程序代码:
/*************************************************************************** 程序功能:本程序演示 STC51 单片机看门狗程序 程序设计:燕山大学 鲁信琼 晶振选择:11.0592MHz, 如果晶振不匹配,请修改延时函数参数
候一直亮着;用于指示系统是否重启
uchar timer0_ctr,i;
const uchar str[]="I love MCU!"; //定义一句话,让他从串口输出,只有系统重启的时候才输 出一次,所以也是用于********************************************************************/ //延时函数,11.0592MHz 晶振下延时约 xms 毫秒 void delay_ms(unsigned xms) {
//初始化时两盏灯都熄灭 LED=1; LED_busy=1;
TMOD=0x21; 为串行口波特率发生器
TH0=0x4C; TL0=0x00; IE=0x82; TR0=1;
//定时器 0 工作在方式 1,作为 16 位定时器;定时器 1 工作在方式 2,作
//定时器 0 装初值:每隔 50ms 溢出一次

单片机看门狗(Watchdog)的工作原理及其应用

单片机看门狗(Watchdog)的工作原理及其应用

单片机看门狗(Watchdog)的工作原理及其应用2010年05月16日星期日 23:00在由单片机构成的微型计算机系统中,由于单片机的工作常常会受到来自外界电磁场的干扰,造成程序的跑飞,而陷入死循环。

程序的正常运行被打断,由单片机控制的系统无法继续工作,会造成整个系统的陷入停滞状态,发生不可预料的后果。

所以,出于对单片机运行状态进行实时监测的考虑,便产生了一种专门用于监测单片机程序运行状态的芯片,俗称"看门狗"(watchdog)。

看门狗电路的应用,使单片机可以在无人状态下实现连续工作,其工作原理是:看门狗芯片和单片机的一个I/O引脚相连,该I/O引脚通过程序控制它定时地往看门狗的这个引脚上送入高电平(或低电平),这一程序语句是分散地放在单片机其他控制语句中间的,一旦单片机由于干扰造成程序跑飞后而陷入某一程序段进入死循环状态时,写看门狗引脚的程序便不能被执行。

这个时候,看门狗电路就会由于得不到单片机送来的信号。

便在它和单片机复位引脚相连的引脚上送出一个复位信号。

使单片机发生复位,即程序从程序存储器的起始位置开始执行,这样便实现了单片机的自动复位。

看门狗,又叫 watchdog timer,是一个定时器电路。

一般有一个输入,叫喂狗(kicking the dog or service the dog),一个输出到MCU的RST端,MCU 正常工作的时候,每隔一端时间输出一个信号到喂狗端,给 WDT 清零。

如果超过规定的时间不喂狗,(一般在程序跑飞时),WDT 定时超过,就会给出一个复位信号到MCU,是MCU复位,防止MCU死机。

看门狗的作用就是防止程序发生死循环,或者说程序跑飞。

工作原理:在系统运行以后也就启动了看门狗的计数器,看门狗就开始自动计数,如果到了一定的时间还不去清看门狗,那么看门狗计数器就会溢出从而引起看门狗中断,造成系统复位。

所以,在使用有看门狗的芯片时要注意清看门狗。

watchdog 解析

watchdog 解析

watchdog 解析mg2580看门狗硬件,实现分析1. 看门狗使用的是DW_WDT的看门狗.DW是一个公司的看门狗芯片.此驱动程序实现两个看门狗操作:硬件和软件。

硬件看门狗监控系统在下列情况下将reset.它已经停止响应,或软件看门狗有问题.软件看门狗由用户空间应用程序处理应用程序申请挂起处理.2.如何使用看门狗?(1). 打开/dev/watchdog.(2). 使用IOCTL接口来设置超时。

(3). 指定所需的设置。

(4). 通过IOCTL接口喂狗。

应用程序必须这样做是为了避免触发看门狗。

(5). 关闭/dev/watchdog。

如果软件看门狗关闭,驱动将试图杀死进程的看门狗定时器。

如果驱动程序无法杀死该进程系统将重置。

注意!应特别注意使用时使用,因为该软件看门狗明显的影响重置系统。

3. 加载看门狗看门狗驱动默认加载,如果没有加载,可以手动加载,默认超时时间是17s,两种方法可以改变,一种为:(1). modparam dw_wdt hw_default_heartbeat=XX(XX 为1-17s)(2). echo XX > /proc/driver/watchdog/expires看硬件看门狗超时时间.cat /proc/driver/watchdog/expires看软件和硬件看门狗信息:cat /proc/driver/watchdog/status这个前一个命令: 是硬件看门狗启动,超时为17s,没有启动软件看门狗.后一个命令: 是硬件看门狗启动,超时为17s,启动软件看门狗,进程为1161,超时为10s.系统超时总时间为: 10< watch timer < 10+17 s3. 原理:1.软件看门狗通过定时器实现:当定时器超时,运行,定时器处理函数, 重启或kill 进程.2.硬件的喂狗:写寄存器重新启动WDT计数器。

作为安全措施,值0x76必须写入。

重新启动并且清除WDT的中断。

单片机看门狗工作原理

单片机看门狗工作原理

单片机看门狗工作原理
单片机看门狗(Watchdog)是一种硬件电路,可监视程序运行的状态,并在程序出现故障或死锁的情况下,自动重启系统或执行特定的故障处理程序,保障系统的稳定运行。

单片机看门狗的工作原理如下:
1. 由程序周期性定时启动看门狗计数器,计数器的初始值需要预设。

2. 在规定的时间内(通常为几秒钟至十几秒钟),程序必须定时往计数器中喂给一个足够的脉冲,否则看门狗计数器就会超时。

3. 当看门狗超时时,看门狗电路会自动复位系统,并执行特定的故障处理程序。

4. 看门狗计数器重置后,上述过程会重新开始,保证系统在运行中不断重复的维护状态的监测,以确保系统的正常和可靠工作。

需要注意的是,单片机看门狗必须在程序中明确地初始化、启动和清除,以便防止误触和误操作,确保其正常可靠工作。

在程序中设置合适的看门狗定时器周期和喂狗脉冲,能够有效地保护单片机系统免受一些错误、异常、嵌套和死循环等异常情况的侵袭。

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

S3C2410接口之看门狗控制器原理与编程
1.看门狗:是一种电路,具有监视并恢复程序正常运行的功能,从而达到增强系统的稳定性。

它本质上是一种定时器电路
2.稳定性和定时器之间有什么样的关系呢?
3.看门狗增强系统稳定性的基本原理:设一系统程序完整运行一周期的时间是Tp,看狗的定时周期为Ti,要求Ti>Tp。

在程序运行一周期后,修改定时器的计数值,只要程序正常运行,定时器就不会溢出。

若由于干扰等原因使系统不能在Tp 时刻修改定时器的计数值,定时器将在Ti 时刻溢出,引发系统复位,使系统得以重新运行,从而起到监控作用。

s3c2410的看门狗控制器
S3C2410 的看门狗定时器有两个功能:
(1)定时器功能:可以作为常规定时器使用,它是一个十六位的定时器,并且可以产生中断,中断名为INT_WDT,中断号是0x09。

(2)复位功能:作为看门狗定时器使用,当时钟计数减为0(超时)时,它将产生一个128个时钟周期的复位信号。

S3C2410 ARM9的看门狗主要由五部分构成:时钟、看门狗计时器、看门狗数据寄存器、复位信号发生器、控制逻辑等。

S3C2410 ARM9的看门狗工作原理:
PCLK 经过预分频、再分频,使得到达看门狗的频率能够没有那么高,这样看门狗才处理得了。

•S3C2410 看门狗定时时间
预分频器为8位,其值为:0---255
再分频器可选择值为:16、32、64、128
输入到计数器的时钟周期为:
T_wtd=1/[PCLK/(Prescaler+1)/Division_factor]
看门狗的定时周期为:
T=WTDAT(看门狗的计数器的初值)×T_wtd
•S3C2410 看门狗的特殊功能寄存器:(共3个,其基地址为0x53000000)


•s3c2410的看门狗控制器编程步骤
•1初始化看门狗控制器
•时钟设置、输出类型设置设置:给WTCON相应位赋值;
•计数器初始值设定:给WTCNT相应位赋值;
•数据寄存器赋值:给WTDAT相应位赋值;
•2如果把看门狗作为一个普通的定时器使用,还必须把看门狗定时中断处理程序填入中断向量表中,并相关的中断控制相关寄存器初始化;
•3使能看门狗控制寄存器:给WTCON相应位赋值(必须在完成上面的工作之后才使能看门狗控制寄存器)
例:编写一程序,利用S3C2410看门狗中断产生频率为1kHz的方波,并且从GPB0引脚输出。

设S3C2410的PCLK为50MHz。

•编程思路:
如果我们能每隔1/2000秒让GPB0管脚上的输出电平反向(正确的,因为一个方波就是1ms,而电平持续的时间就是方波持续时间的一半),就可以在GPB0管脚上输出1KHz 的方波。

我们可以设置看门狗定时器的定时周期为1/2000秒,再在看门狗的定时中断处理程序中让GPB0管脚上的输出电平方向。

而看门狗的每计一次数的时间由PCLK、预分频值、再分频值决定,其关系为:1/计一次数的时间=PCLK/[(预分频值+1)*再分频值];
注意:这里说的1kHZ的方波是指一秒钟有一千个高低电平的组合。

所以,1000hz就是一个方波就是1ms,所以一个电平持续的时间就是0.5ms。

相关文档
最新文档