单片机与嵌入式系统原理及应用教学课件 作者 王宝珠第18章S3C6410的看门狗电路.ppt

单片机与嵌入式系统原理及应用教学课件 作者 王宝珠第18章S3C6410的看门狗电路.ppt

ID:51964222

大小:514.00 KB

页数:24页

时间:2020-03-26

单片机与嵌入式系统原理及应用教学课件 作者 王宝珠第18章S3C6410的看门狗电路.ppt_第1页
单片机与嵌入式系统原理及应用教学课件 作者 王宝珠第18章S3C6410的看门狗电路.ppt_第2页
单片机与嵌入式系统原理及应用教学课件 作者 王宝珠第18章S3C6410的看门狗电路.ppt_第3页
单片机与嵌入式系统原理及应用教学课件 作者 王宝珠第18章S3C6410的看门狗电路.ppt_第4页
单片机与嵌入式系统原理及应用教学课件 作者 王宝珠第18章S3C6410的看门狗电路.ppt_第5页
资源描述:

《单片机与嵌入式系统原理及应用教学课件 作者 王宝珠第18章S3C6410的看门狗电路.ppt》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库

1、第18章S3C6410的看门狗电路在许多控制系统中都设置了看门狗电路,以保证当系统受到干扰而死机时能够使系统复位重新开始正常工作,本章将介绍看门狗电路的配置与使用,最后给出一个参考程序。18.1S3C6410的看门狗概述18.1.1S3C6410的看门狗工作原理嵌入式系统运行时受到外部干扰或者系统错误,程序有时会出现“跑飞”,导致整个系统瘫痪。为了防止这一现象的发生,在对系统稳定性要求较高的场合往往要加入看门狗(WATCHDOG)电路。看门狗的作用就是当系统“跑飞”而进入死循环时,恢复系统的运行。其基本原理为:设本系统程序完整运行一周期的时

2、间是Tp,看门狗的定时周期为Ti,Ti>Tp,在程序运行一周期后就修改定时器的计数值(俗称“喂狗”),只要程序正常运行,定时器就不会溢出,若由于干扰等原因使系统不能在Tp时刻修改定时器的计数值,定时器将在Ti时刻溢出,引发系统复位,使系统得以重新运行,从而起到监控作用。在一个完整的嵌入式系统或单片机最小系统中通常都有看门狗定时器,且一般集成在处理器芯片中,看门狗实际上就是一个定时器,只是它在期满后将自动引起系统复位。18.1.2S3C6410看门狗功能看门狗定时器包含有两个功能,一个作为常规定时器,并且可以产生中断,使用电平触发中断机制;另

3、一个作为看门狗定时器,当计数器递减为0,产生复位信号。看门狗定时器的功能模块图如图18-1所示,看门狗定时器用PCLK作为它的源时钟。PCLK频率预分频器来产生相应的看门狗定时器时钟,并将所得的频率再通过分频器分频用于看门狗计数器。在看门狗定时器控制(WTCON)寄存器,预分频器值和分频因子被指定。有效的预分频器值的范围是0~255,分频因子能选择16、32、64或128。因此看门狗定时器工作的基准计数周期用下面的等式来计算。基准计数周期:t_watchdog=1/(PCLK/(预分频值+1)/分频系数)看门狗定时选择其中一种基准频率,WT

4、CN(下计数器)按照这个基准频率进行减1计数。当计数到0之后,可以通过看门狗控制寄存器位WTCON[2]确定产生中断请求或复位信号。看门狗定时器的喂狗周期为:T=WTCN×t_watchdog一旦看门狗定时器有效,看门狗定时器数据(WTDAT)寄存器的值将不能被自动重新载入定时器计数器(WTCNT)。在看门狗定时器开始前,必须写入一个初始值到看门狗定时器计数(WTDAT)寄存器。18.1.3S3C6410看门狗控制寄存器控制寄存器如表18-1所示。1.看门狗定时器控制(WTCON)寄存器WTCON寄存器允许用户启动/禁止看门狗定时器,从四个

5、不同的时钟源选择时钟信号,启动/禁止看门狗定时器输出。看门狗定时器用于恢复S3C6410重启故障。如果不希望控制器重启,则看门狗定时器必须禁止。如果用户想使用看门狗定时器提供的正常定时器,需要启动中断,并且禁止看门狗定时器。2.看门狗定时器数据(WTDAT)寄存器WTDAT寄存器用于指定超时时间。看门狗定时器初始化时,WTDAT的内容不能被自动载入到定时器计数器。然而,使用0x8000(WTCNT初始值)可以驱使第一个超时。这种情况下,WTDAT的值将自动重载入WTCNT。3.看门狗定时器计数(WTCNT)寄存器正常操作情况下,WTCNT寄

6、存器包含看门狗定时器的当前计数值。注:当看门狗定时器初始化时,WTDAT寄存器的内容不能被自动载入到定时器计数寄存器中,因此在激活它前,WTCNT寄存器必须设置一个初始值。4.看门狗定时器中断清除(WTCLRINT)寄存器WTCLRINT寄存器用于清除中断。中断服务完成后,中断服务程序清除相关中断。可以在该寄存器写入任意值清除中断。不允许读该寄存器。18.2看门狗控制编程实例18.2.1例程思路本例程在“实时时钟实验”的基础上添加看门狗功能。首先打开看门狗定时器,并将其设置为看门狗模式,让它引起复位。在“实时时钟实验”的代码中增加使能看门狗

7、的代码,编译再运行,程序运行一段时间后应该被复位,现象就是不能正确的显示和执行正常的程序流程,实时时钟显示不正确,从超级终端上可以看到复位的启动信息。再使用程序定期地设置WTCNT寄存器(“喂狗”),观察是否还出现复位情况,并记录复位的产生条件,修改上一次的程序,在TICK中断中每秒重置一次WTCNT的值,检查是否有复位发生。18.2.2参考程序#include"module_cfg.h"#include"s3c6410_addr.h"#include"interrupt.h"#include"rtc.h"#defineWDT_ENABLE

8、(0x01<<5)#defineWDT_INT_ENABLE(0x01<<2)#defineWDT_RST_ENABLE(0x01<<0)#defineWDT_CLK_SEL(0

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。