看门狗定时器
- 格式:doc
- 大小:302.50 KB
- 文档页数:3
s3c2440看门狗定时器的应用看门狗定时器的主要作用是在程序因为干扰而跑飞后,能够使系统复位,不至于使系统永远的死下去。
它的原理与一般的定时器没有多大区别,就是先要设置好一段时间,当超过这段时间后,就从当前运行的程序中跳出进入中断处理程序中。
但两者的主要差别是,一般的定时器中断是我们希望它发生的,因此我们不会在定时器中断发生前的那个时间段内干预它;而看门狗定时器中断是我们不希望它发生的,因此我们要想方设法地避免其发生。
主要的方法就是在中断发生前,重新对看门狗定时器的寄存器进行赋值,使它的定时器重新开始计时。
这种方法俗称喂狗,形象地比喻就是一条看门狗每隔一段时间(比如说一个小时)就会饿,所以就要叫唤,唯一使它不叫的方法就是给它喂食,那么下次叫唤的时间就是从当前喂食起的一个小时后。
因此只要在上次喂食后的一个小时内再给它喂食,它就永远不会叫唤。
s3c2440的看门狗定时器不仅可以引起系统复位,还可以引起一般的中断,因此s3c2440的看门狗定时器可以当作一般的定时器使用。
s3c2440看门狗定时器的时钟频率的公式为:PCLK÷(Prescaler + 1)÷Division其中Prescaler的取值范围为0~255,Division的取值为16,32,64和128。
例如,当PCLK 为50MHz时,设置Prescaler为249,Division为16,则看门狗定时器的时钟频率为12.5kHz。
这两个参数由寄存器WTCON提供,除此以外,该寄存器还可以设置是否有效看门狗定时器的超时复位,是否有效看门狗定时器的超时中断等。
看门狗定时器还有两个寄存器WTDA T和WTCNT,WTDA T用于确定超时期限,WTCNT为当前看门狗定时器的计数值,在第一次设置看门狗超时时间时,这两个寄存器都要被写入超时时间的初始值。
当要启动超时中断时,还要设置必要的中断寄存器,下面这个程序就是一个看门狗定时器的实例。
WATCHDOG定时器-jammys3c2440的看门狗定时器是当操作发生如噪声干扰、系统错误等故障时重启控制器。
看门狗定时器是可以作为一般的16位定时器用于响应中断请求,也可以是用于产生复位信号。
看门狗定时器的工作频率是将PCLK经过8位预分频器后,再通过16分频、32分频、64分频、或者128分频后得到的。
分频可在WTCON中设置。
用下面的公式算出watchdog定时器的工作频率:看门狗定时器的工作频率= 1/[ PCLK / (Prescaler value + 1) / Division_factor ]Prescaler value = 0~255Division_factor = {16,32,64,128}WTDAT & WTCNT当看门狗寄存器启动时,看门狗定时器数据寄存器(WTDAT)不能自动重装到定时计数器(WTCNT)。
因此,初始值必须在看门狗定时器启动前写入定时计数寄存器(WTCNT)。
l WATCHDOG TIMER CONTROL (WTCON) REGISTER 该寄存器用于允许/禁止看门狗定时器、中断,四种时钟信号的选择,以及预分频系数的设定。
l WATCHDOG TIMER DATA (WTDAT) REGISTERWTDAT寄存器用于设置看门狗定时持续时间。
在初始化看门狗定时器WTDAT的数值不能自动重载到定时计数器。
但是,当计数到0时,WTDAT会自动重载到WTCNT。
l WATCHDOG TIMER COUNT (WTCNT) REGISTERWTCNT寄存器是当前看门狗定时器正常工作下的数值。
注意,WTDAT寄存器的数值在初始化时不能重在到WTCNT寄存器,因此WTCNT寄存器需要在启动看门狗前设置好初始值。
演示程序:启动看门狗定时器后,程序进入LED闪烁循环,并且显示WTCNT的数值。
当WTCNT到0时候,系统重启。
/******************************************************函数名:void init_watchdog(void)作者:jammy-lee创建日期:2009-02-21说明:初始化看门狗定时器******************************************************/void init_watchdog(void){rWTCON = ((0x60<<8)|(3<<3)); //设置预分频值0x60,分频因子128rWTDAT = 0x6000;rWTCNT = 0x6000;rWTCON &= ~(1<<2); //禁止中断rWTCON |= ((1<<5)|(1<<0)); //启动看门狗,允许复位信号}/******************************************************函数名:void Main(void)作者:jammy-lee创建日期:2009-02-21说明: 主函数******************************************************/void Main(void){int wt_count;rGPBCON = 0x55555;rGPBUP = 0x7ff;while(1)Led(1,1);Uart_Printf("LED 1 power ON\n");delay(100);Led(1,0);Uart_Printf("LED 1 power ON\n");delay(100);wt_count = rWTCNT; //读取WTCNT寄存器当前的值Uart_Printf("the value of WTCNT is %d\n",wt_count); }}。
本次实训旨在使学生了解看门狗定时器的基本原理、工作方式以及在嵌入式系统中的应用,通过实际操作,掌握看门狗定时器的配置、使用方法,并学会利用看门狗定时器解决嵌入式系统中的故障和异常。
二、实训内容1. 看门狗定时器原理- 看门狗定时器是一种监测硬件或软件故障的定时器,其工作原理是在程序运行过程中不断重装载,以防止溢出引发中断或复位。
- 看门狗定时器分为独立看门狗和窗口看门狗两种类型。
2. 独立看门狗(FWDGT)- 独立看门狗使用独立的32kHz内部时钟,适用于对计时精度要求不高的场合。
- 独立看门狗内部有一个12位的向下计数的定时器,当计数值达到0时,会产生一个系统复位。
3. 窗口看门狗(WWDGT)- 窗口看门狗使用PCLK分频而来的时钟,计数器位数较小,需要在窗口范围内重装载以防复位。
4. 看门狗定时器的配置与使用- 了解看门狗定时器的相关寄存器,如预分频器、计数器、重装载寄存器、键寄存器和状态寄存器等。
- 根据实际需求配置看门狗定时器的时钟源、计数器值、窗口范围等参数。
- 在程序中定期重装载看门狗定时器,以防止系统复位。
5. 看门狗定时器的实际应用- 利用看门狗定时器解决嵌入式系统中的故障和异常。
- 通过看门狗定时器监控程序运行状态,防止死锁。
- 作为系统安全特性的一部分,确保在检测到异常时能够安全地重启系统。
1. 准备工作- 准备好实训所需的硬件设备和软件环境,如单片机开发板、调试器、IDE等。
2. 环境搭建- 根据实际需求搭建实训环境,包括硬件电路连接和软件配置。
3. 看门狗定时器配置- 了解看门狗定时器的相关寄存器,如预分频器、计数器、重装载寄存器、键寄存器和状态寄存器等。
- 根据实际需求配置看门狗定时器的时钟源、计数器值、窗口范围等参数。
4. 程序编写- 编写程序,实现看门狗定时器的初始化、重装载和监控功能。
- 在程序中定期重装载看门狗定时器,以防止系统复位。
5. 调试与验证- 使用调试器对程序进行调试,观察看门狗定时器的运行状态。
016:MSP430_WDT看门狗定时器1, 看门狗定时器概述看门狗定时器(WDT)是 MSP430 系列单⽚机中常⽤的⼀种部件。
在⼯业现场,往往会由于供电电源、空间电磁⼲扰或其他原因引起强烈的⼲扰噪声。
这些⼲扰作⽤于数字器件,极易使其产⽣误动作,从⽽失去应有的控制功能,引起 MSP430 发⽣“程序跑飞”事故。
若不进⾏有效的处理,程序就不能回到正常的状态,从⽽失去应有的控制功能。
看门狗定时器正是为了解放这类问题⽽产⽣的,尤其是在具有循环结构的程序任务中更为有效。
在正常操作器件,⼀次 WDT 定时时间到,将产⽣⼀次器件复位。
如果通过编制程序使 WDT 定时时间稍⼤于程序执⾏⼀遍所⽤的时间时,并且程序执⾏过程中都有对看门狗定时器清零的指令,使计数器重新计数,则程序正常执⾏时,就会在 WDT 定时时间到达之前对 WDT 清零,不会产⽣ WDT 溢出,如果由于⼲扰使程序跑飞,则不会在 WDT 定时时间到达之前执⾏ WDT 清零指令,WDT 就会产⽣溢出,从⽽产⽣系统复位 CPU 需⽤重新运⾏⽤户程序,这样程序就可以⼜恢复正常运⾏状态。
MSP430 看门狗除了具有上述系统监测的特定⽤途之外,还可以作为内部定时器来使⽤,当选择的时间到达之后,和其他定时器⼀样产⽣⼀个定时中断。
此外 WDT 还可以被完全停⽌活动以⽀持超低功耗应⽤2 看门狗定时器结构3 看门狗定时器寄存器[1] WDTCTL 看门狗控制寄存器WDTCTL 由两部分组成:⾼ 8 位是对 WDT 操作的控制命令。
要写⼊操作 WDT 的控制命令,出于安全原因必须先正确写⼊⾼字节看门狗⼝令。
⼝令位 5AH,如果⼝令写错将导致系统复位。
读 WDTCTL 时,不需要⼝令,可直接读取地址 120H 中的内容,读出数据低字节位 WDTCTL 的值,⾼字节始终位 69H。
WDTCTL 除了看门狗定时器的控制位之外,还有两个⽤于设置 NMI 引脚功能。
WDTISx:选择看门狗定时器的计时输出其中 T 是 WDTCNT 的输⼊时钟源周期。
dsp 看门狗定时器的作用解析
一、DSP 看门狗定时器介绍
看门狗在外围监控DSP 中软件的运行以及硬件的操作,当CPU 出现故障时,看门狗将执行系统复位。
如果软件进入了一个不正确的循环或者CPU 出现暂时的混乱,看门狗定时器将出现溢出来使系统复位。
在大多数情况下,DSP 短暂的混乱以及CPU 不正确的操作都可以被看门狗所清除并重新进行设置。
由于看门狗稳定的性能,其增加了CPU 的可靠性,以确保系统的完整。
在看门狗中这个外围设备中,所有的寄存器都是8 位的,连接到16 位CPU 的低8 位外围数据总线上。
240XA 看门狗定时器和C240 看门狗定时器唯一的区别就是其缺乏实时的中断能力。
看门狗定时器将通过对从CPU 出来的CLKOUT 进行分频而得到自己所需的时钟
二、看门狗定时器工作原理
使用时,WDT 将递增,直到溢出,或称超时。
除非处于休眠或空闲模式,WDT 超时会强制器件复位。
为避免WDT 超时复位,用户必须定期用。
看门狗定时器的使用流程简介看门狗定时器是一种用于监控系统运行状态的硬件设备。
当系统出现故障或超时的情况下,看门狗定时器会自动重启系统,以确保系统的稳定运行。
本文将介绍看门狗定时器的使用流程,包括初始化、配置、启动和监控等步骤。
初始化初始化是使用看门狗定时器的第一步。
在使用之前,需要确保系统已经正确连接了看门狗定时器,并且加载了相应的驱动程序。
步骤1.打开终端或命令行界面。
2.使用以下命令初始化看门狗定时器:$ watchdog_init3.检查初始化结果,确保看门狗定时器成功初始化。
配置配置是使用看门狗定时器的关键步骤。
通过配置,可以设置看门狗定时器的超时时间和动作。
步骤1.打开终端或命令行界面。
2.使用以下命令配置看门狗定时器的超时时间:$ watchdog_set_timeout 5这里将超时时间设置为5秒,你可以根据需要进行调整。
3. 使用以下命令配置看门狗定时器的重启动作:$ watchdog_set_action restart这里将重启动作设置为自动重启。
启动启动是使用看门狗定时器的关键步骤。
通过启动,可以使看门狗定时器开始监测系统运行状态。
步骤1.打开终端或命令行界面。
2.使用以下命令启动看门狗定时器:$ watchdog_start3.检查启动结果,确保看门狗定时器成功启动。
监控监控是看门狗定时器的主要功能。
通过监控,可以实时检测系统的运行状态,并在系统超时或故障时进行相应的动作。
步骤1.让系统正常运行。
2.看门狗定时器会定时检测系统的运行状态。
3.如果系统在超时时间内未接收到看门狗定时器的喂狗信号,则看门狗定时器会触发动作,例如自动重启系统。
总结通过以上的流程,我们可以使用看门狗定时器来监控系统的运行状态。
首先,我们需要初始化看门狗定时器,并配置超时时间和重启动作。
然后,启动看门狗定时器,并让其监控系统的运行状态。
在系统发生故障或超时的情况下,看门狗定时器会自动触发相应的动作,以确保系统的稳定运行。
内部与外部看门狗定时器的比较摘要:本文对内部(集成在处理器内部)看门狗定时器(wtd)与外部(基于硬件)wdt的优势和劣势进行了对比。
内部看门狗便于设计,但容易失效。
maxq2000微控制器的wdt可以作为内部看门狗的一个例子。
基于硬件的看门狗定时器需要占用额外的电路板空间,但在对于可靠性要求较高的设计中确实不可或缺的。
本文给出了一个对照表,总结了每种wdt方案的优缺点。
引言看门狗定时器(wdt)在发生违宪的软件运转状态时用以私自登位(硬件登位)嵌入式微处理器或微控制器,失灵状态可以就是直观地引爆寄存器的某一位,或者就是射线阻碍或emi(电磁辐射)。
本文介绍了一些针对具体应用选择最佳定时器的考虑。
wdt的典型应用领域防止微处理器闭锁是wdt的一个典型应用,通常,嵌入式软件有一个“主循环”程序,用其调用子程序以实现不同的任务。
每次程序循环对wdt进行一次复位,如果任何原因造成程序循环操作失败,看门狗定时器则发生超时,对器件进行复位。
具备wdt功能的系统非常适合检测误码,中断(包含存储器故障,emi对存储器或USB振动)可能将引致临时性的误码。
这些误码可以引致处理器输出、输入数据的极性滑动,当误码没有导入至程序信息中时,微处理器将可以继续执行错误的代码。
很有可能导致处理器已经开始继续执行操作数,而非操作方式代码。
程序已经开始继续执行这种错误代码时,将导致程序运行不正常,无法提供更多看门狗清零信号,从而引致处理器登位。
合理的系统设计能在登位后恢复正常系统的正常运转。
需要注意的是,wdt不能检测瞬态故障,按照定义,只有在wdt计数器达到预定的时间间隔时才会复位处理器。
正是这一原因,需要选择一个最短超时周期,以便在系统失控之前由wdt产生复位,使系统恢复正常工作。
内部和外部wdtwdt可以内置于微处理器,例如:maxq2000微控制器;也可以是一个独立的ic(外部wdt),或作为支持asic的一部分。
无论是内部wdt,还是外部wdt,各有其优缺点。
一、外部看门狗
一般硬件设计的时候使用芯片外部看门狗,该看门狗使用一个不停翻转GPIO来控制。
二、内部看门狗
一般ARM芯片都是有内部看门狗模块。
S5PV210内部看门狗模块有两个功能:
1、作为看门狗。
打开看门口狗后,如果没有“喂狗”,看门狗计数值减到0,会产生一个reset信号,S5PV210就会复位,从BL0重新执行代码。
2、普通的定时器。
可以产生周期性的中断。
三、210看门狗模块的框图
1、看门狗“喂狗”就是向计数寄存器赋一个新的计数值。
2、看门狗clock(基准周期)=
四、看门狗的寄存器
1、WTCON
2、WTDA T
3、WTCNT
4、WTCLRINT
五、实验程序。