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

合集下载
  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。

相关文档
最新文档