Watch Dog 之浅析

                                                                    看门狗定时器

概述:

       什么是看门狗定时器?简单的说就是S3C244在出现系统故障时,用来复位系统的一种定时控制器。

 

功能:

1.       一种带有中断请求的普通定时器。

2.       在定时器超时时,产生一个有128PCLK个时钟周期的系统复位信号。

 

组成:

1.       看门狗定时器控制寄存器(WTCON

2.       看门狗定时器数据寄存器(WTDAT

3.       看门狗定时器计数寄存器(WTCNT

 

1WTCON

用户可以通过WTCON来设置看门狗定时器的使能,它可以使看门狗从四种时钟源选择时钟,并使能中断和定时器的输出。

WTCON的使用说明:

       [0]1复位信号输出使能,0 看门狗复位无效

       [1]:保留,一般置为0

       [2]1 中断使能,0 中断无效

       [4~3]:时钟除数因子   0016    0132

1064   11128

       [5]:看门狗定时器使能位,1 使能, 0 无效

       [7~6]:保留,一般置为0

       [15~8]:预定标值,取值范围0~255

 

2WTDAT

       WTDAT是用来确定看门狗定时器的定时期限的。它可以在看门狗定时器正常工作后,在看门狗定时器超时时自动重装WTCNT,但是在看门狗刚使能使时它并不能将数据装入WTCNT,可以使用0x8000来驱使看门狗超时,或者在看门狗开始工作前给WTCNT装入一个初始值。

 

3WTCNT

       WTCNT中存放的是看门狗定时器的当前计数值。

 

看门狗定时器的操作:

       S3C2440处在ICE仿真调试状态下时,不必使用看门狗。看门狗可以通过CPU内核信号来判断当前是否处在调试状态下,如果处于调试状态下时,当看门狗超时时不会激活复位信号。

       看门狗定时器采用PCLK时钟源,经过预分频产生定时器的时钟,然后会对预分频的结果再次分频。两次分频分别根据预定标值(prescaler_value)和频率除数因子(division_factor)沉声分频结果的,可以看门狗的定时器周期:

T_watachdog = 1 / ( PCLK / (prescaler_value + 1) / division_factor)

其中的prescalet_value的值就是WTCON中的15~8位的值,division_factor的值是WTCON4~3位。

(4)看门狗的模块图

Watch Dog 之浅析_第1张图片

     由图可以看出,PCLK是外部的低速总线时钟,作为看门狗的时钟输入,经过一个8bit的预分频器(由WTCON[15:8]位预标值决定),然后流入一个分频除数因子模块(由WTCON[4:3]决定除数因子),经过再分频的时钟信号作为WTCNT的计数时钟。再分频后的每个时钟到来都会使WTCNT减一,当到0的时候,如果中断使能位(WTCON[2])置一,那么看门狗输出一个中断信号interrupt;如果复位控制位(WTCON[0])被置一,则产生一个128PCLK周期的复位信号,这时作为普通的中断信号不起作用(即使中断使能)。

      

你可能感兴趣的:(c,工作)