dsp看门狗定时器
- 格式:doc
- 大小:215.50 KB
- 文档页数:5
看门狗定时器
看门狗在外围监控DSP中软件的运行以及硬件的操作,当CPU出现故障时,看门狗将执行系统复位。
如果软件进入了一个不正确的循环或者CPU出现暂时的混乱,看门狗定时器将出现溢出来使系统复位。
在大多数情况下,DSP短暂的混乱以及CPU不正确的操作都可以被看门狗所清除并重新进行设置。
由于看门狗稳定的性能,其增加了CPU的可靠性,以确保系统的完整。
在看门狗中这个外围设备中,所有的寄存器都是8位的,连接到16位CPU的低8位外围数据总线上。
240XA看门狗定时器和C240看门狗定时器唯一的区别就是其缺乏实时的中断能力。
(这句话我也不明白哦)。
看门狗定时器将通过对从CPU出来的CLKOUT进行分频而得到自己所需的时钟。
1.1看门狗定时器的特征
看门狗模块包含如下特征:
n8位的看门狗计数器通过计数溢出从而使系统复位
n6位的独立运行计数器通过对看门狗计数器预定标来feed看门狗计数器(上句为字面意思,我的理解是:该6位的独立运行的计数器通过对
WD CLK(看门狗工作时钟)进行分频从而使看门狗计数器得到不同频率
的时钟。
独立运行的意思是该计数器不受其他器件的影响,只要启动
系统,就开始工作)
n看门狗复位键寄存器,当向该寄存器写下合适的组合值(在该DSP中,通过向该寄存器相继写55h和AAh值)时,该寄存器将使看门狗计数
器清零,当向该寄存器写下不合适的组合值(除55h和AAh以外的值)
时,该寄存器将使系统复位
n看门狗核对位,当看门狗定时器出现错误情况时,通过看门狗核对位来复位系统
n当系统复位时,将自动启动看门狗定时器
n可对独立运行计数器输出的6路分频信号进行选择
以下为看门狗定时器的功能框图
+含义:向WDCR.5-3位(看门狗核对位)写除101以外的任何数将导致系统复位。
含义:分频后的值与WDCLK有关。
1.1看门狗定时器的操作
1.1.1概述
看门狗的操作由三个寄存器进行控制
n看门狗计数寄存器(WDCNTR)——这个寄存器包含了看门狗计数器的值
n看门狗键位寄存器(WDKEY)——当向该寄存器先写55h,然后写AAh时,该寄存器将WDCNTR清零
n看门狗控制寄存器(WDCR)——该寄存器包含了用于看门狗配置的如下控制位
²看门狗禁止位
²看门狗标志位
²看门狗核对位(3位)
²看门狗分频选择位(3位)
1.1.2看门狗定时器时钟
看门狗定时器时钟(WDCLK)是一种低频率的时钟。
当CPUCLK(为根据SCSR1中分频位对外部时钟分频后值)为40MHz时,WDCLK 理论上为78125Hz。
WDCLK时钟是由对CPU的输出时钟CLKOUT 进行分频所产生。
这就能够确保当CPU处于IDLE1和IDLE2 模式时,看门狗仍能进行计数。
WDCLK是在外围设备中产生(不是在CPU中产生),WDCLK的频率可由如下公式进行计算:
WDCLK=CLKOUT/512
当看门狗定时器被允许运行时,WDCLK可在DSP的CLKOUT引脚测出(需要对该复用引脚进行设置,确定是输出CLKOUT还是
WDCLK时钟)。
在看门狗定时器被允许运行时,看门狗计数器应该在器溢出之前被清零,否则DSP将被复位。
1.1.3看门狗的停止
当CPU的停止信号产生时,WDCLK将被中止。
这种情况是通过如下方式实现的:通过停止对从CLKOUT产生WDCLK的时钟分频器的时钟而实现中止WDCLK的产生。
注意:当实时仿真器在运行时,看门狗定时器时钟不会产生。
这和F/C240不一样
1.1.4看门狗定时器的操作
看门狗定时器是一个由从预分频器出来的时钟进行驱动的连续增计数的计数器。
在看门狗计数器溢出之前如果WDKEY寄存器没有对其进行清零,该定时器将对系统复位以保证系统软件和硬件的正常运行。
WDCLK是由芯片内的时钟模块产生,并且在除HALT模式之外的任何操作模式下都是激活的。
WDCLK使看门狗定时器不考虑芯片内的任何寄存器状态的情况下运行。
除了HALT低功耗模式,因为它可以使WDCLK信号中止。
WDCNTR的当前状态可以在对其进行操作的任何时候进行读操作。
1.1.4.1看门狗预定标的选择
8位WDCNTR的输入时钟可以是WDCLK时钟信号或者是从独立运行计数器中出来的六个分频信号中任何一个。
该6位的独立运行的计数器在WDCLK时钟的驱动下连续的进行增计数。
只要给看门狗定时器输入WDCLK时钟,看门狗将开始起作用。
预定标器的六路分频信号由WDPS2—0位进行选择。
这种分频可使看门狗在WDCLK时钟为78125Hz时溢出时间从3.28ms到209.7ms。
在芯片处于正常工作状态时,独立运行计数器是不能被停止或复位的,除了系统的复位。
清除WDCNTR不能清除独立运行计数器。
1.1.4.2对看门狗定时器的操作
在WDCNTR寄存器溢出之前,向WDKEY写相应的数将使
WDCNTR被清零。
当向WDKEY写55h时,WDCNTR将可以
被清零,当紧接着向WDKEY写AAh时,WDCNTR就将被清
零。
向WDKEY写除55h或者AAh之外的任何值都将导致系统
复位。
只有向WDKEY写55h后写AAh才能使WDCNTR复位。
1.1.4.3看门狗复位
当WDCNTR溢出时,看门狗定时器才强制使系统复位。
复位发生在WDCNTR溢出一个时钟周期之后。
只要WDCLK在正常工作,
溢出就不能被停止。
只有当WDCLK没有工作,振荡器处于低
功耗模式时看门狗定时器才无法溢出使系统复位。
看门狗定时
器可以通过设置WDCR寄存器中的WDDIS位使其停止工作。
注意在240XA设备中没有WDDIS引脚。
在SCSR2 中的
watchdog override 位提供了WDDIS引脚的功能。
1.1.4.4看门狗的设置
开门狗独立于CPU的操作并且一般是打开的状态。
其不需要任
何CPU的初始化操作。
当系统复位发生时,开门狗定时器默认
为其输入时钟为最快的时钟(在78125Hz的WDCLK信号下溢
出时间为3.28ms)。
当复位结束时,CPU开始执行代码,看门
狗计数器开始计数。
1.2看门狗控制寄存器
下面表中详细讲述了看门狗控制寄存器中各位的作用。
1.2.1看门狗计数寄存器
8位的看门狗计数寄存器(WDCNTR)包含了看门狗计
数器的当前值。
该寄存器以WDCR中设置的时钟频率进
行持续的计数。
当WDCNTR溢出时,一个时钟周期后
系统开始复位。
当向WDKEY写合适的数值序列后
WDKEY将对WDCNTR清零以阻止系统复位的发生。
尽管如此,其不能对独立运行计数器清零。
看门狗计数寄存器的8位为只读位,向其写数没任何作用。
1.2.2看门狗复位键寄存器
当向WDKEY先写55h后写AAh后其将给WDCNTR清
零。
除55h和AAh之后的任何值将导致系统复位。
1.2.3看门狗定时器控制寄存器
WDCR包含了对开门狗进行配置的控制位。
包含复位标
志位,核对位,以及对输入时钟进行预分频的选择位。
1.2.4.4 看门狗核对位逻辑
开门狗定时器核对位(WDCR5—3位)一直与一个恒定值(101)进行比较,如果核对位的值与101不同,其将使系统复位。
这
种逻辑的作用是防止软件向WDCR中赋不正确的值,或者是
外面的刺激因素(电压尖峰,电磁干扰,或者是其他影响因素)。
通过这种方式可以防止WDCR的值出现错误。
(个人理解: 电
磁干扰或者软件以及其他因素有可能使WDCR出现错误,当
WDCR出现错误时,将导致整个看门狗的错误运行,因此,通过
这种方法,如果WDCR中5到3位出现与初值不同时就意味着该
控制寄存器已经出现错误了,这时必须使系统出现复位才能解
决错误).向WDCR5—3写除101以外的任何值都将引发系统
的复位。
读核对位时读出数始终为000,向其写数无效。
第七位:看门狗复位标志位。
复位发生时,改为置1
0:标明看门狗定时器自从最近一次清除来没有复位过。
1:标明看门狗定时器已经复位。
第六位:看门狗禁止位。
当SCSR2中的OVERRIDE位为
1时,向其写1将关闭看门狗。
0:看门狗使能。
1:看门狗关闭。
清除SCSR2寄存器中的OVERRIDE位将使WD
由关闭状态变为使能状态。
第五、四、三位:该三位组合起来为101时系统正常工作,
任何一位发生变化将导致系统复位。
第二、一、零位:该三位为WDPS位,通过该三位的组
合使看门狗计数器得到不同频率的时钟。
预定标器逻辑
看门狗定时器控制寄存器
看门狗复位键寄存器
看门狗计数寄存器
看门狗功能框图。