S3C2410接口之 看门狗控制器原理与编程
来源:互联网 发布:国密算法 .net 编辑:程序博客网 时间:2024/06/06 22:26
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)
• 寄存器
• 描 述
• 初值
• 偏移地址
• WTCON
• 看门狗控制寄存器
• 0x8021
• 0
• WTDAT
• 看门狗数据寄存器
• (主要是给计数器填数的)
• 0x8000
• 4
• WTCNT
• 看门狗计数寄存器
• 0x8000
• 8
• 1看门狗控制寄存器(WTCON)
• Register
• Off Add
• R/W
• Description
• Reset
• Value
• WTCON
• 0
• R/W
• 看门狗控制寄存器
• 0x8021
•
字段名
位
意 义
初值
Prescaler Value
15:8
预分频值。0---255。
0x80
Reserved
7:6
保留(为0)
00
Watchdog Timer
5
看门狗控制位。
0:禁止;1:允许
1
Clock Select
4:3
再分频值选择。 00:16;
01:32;10:64;11:128
00
Interrupt
Generation
2
看门狗中断控制。
0:禁止; 1:允许。
0
Reserved
1
保留(为0)
0
Reset
Enable
0
看门狗复位功能控制。
0:禁止; 1:允许。
1
•
• 2看门狗计数寄存器(WTCNT)(最大填数为2的16次方)
Register
Off Add
R/W
Description
Reset
Value
WTCNT
8
R/W
看门狗计数寄存器
0x8000
字段名
位
意 义
初值
Count Value
15:0
看门狗的当前计数值
0x8000
• 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。
转自:http://wenku.baidu.com/view/2b1ab842336c1eb91a375d6c.html
- S3C2410接口之 看门狗控制器原理与编程
- S3C2410看门狗的若干原理
- ARM S3C2410 看门狗设置原理及源码
- ARM S3C2410 看门狗设置原理及源码
- ARM S3C2410 看门狗设置原理及源码
- s3c2410看门狗与字符设备、混杂设备和平台设备
- s3c2410看门狗与字符设备、混杂设备和平台设备
- 看门狗的原理与作用
- 看门狗的使用与原理
- S3C2410看门狗驱动分析
- s3c2410 watchdog (看门狗)转
- S3C2410看门狗驱动分析 .
- S3C2410看门狗驱动分析
- 微机原理与接口技术之8086的编程结构
- MVC之简单控制器实现与原理
- S3C2410 DMA原理与实例
- SDRAM工作原理及S3C2410 SDRAM控制器配置方法
- SDRAM工作原理及S3C2410 SDRAM控制器配置方法
- UVa 437 - The Tower of Babylon
- Websphere应用程序部署
- 在Mac中安装jpype
- 一个简单的使用C++在运行时获取调用堆栈的类
- TQ2440 u-boot-2012.04.01移植六完善u-boot
- S3C2410接口之 看门狗控制器原理与编程
- 工程中使用非ARC的文件
- 防止表单重复提交二种方式
- 关于性能测试的通俗解释
- 深入 Eclipse 多线程机制
- GDB+GdbServer: ARM程序调试
- ZOJ 2706 Thermal Death of the Universe(线段树)
- android 读取系统日志
- 回型显示