看门狗的应用课件

上传人:我*** 文档编号:143886342 上传时间:2020-09-02 格式:PPT 页数:16 大小:127KB
返回 下载 相关 举报
看门狗的应用课件_第1页
第1页 / 共16页
看门狗的应用课件_第2页
第2页 / 共16页
看门狗的应用课件_第3页
第3页 / 共16页
看门狗的应用课件_第4页
第4页 / 共16页
看门狗的应用课件_第5页
第5页 / 共16页
点击查看更多>>
资源描述

《看门狗的应用课件》由会员分享,可在线阅读,更多相关《看门狗的应用课件(16页珍藏版)》请在金锄头文库上搜索。

1、第七章 看门狗的应用,看门狗及其作用,在DSP应用系统中,可靠性是一个必须考虑且非常重要的问题,尤其是在某些环境恶劣的工业生产现场,系统地抗干扰能力显得尤为重要。为了解决干扰问题,除了对干扰源采取措施外,在系统设计时应该采取一些专门的防范措施,尽可能避免由于外界干扰而引起程序可能“跑飞”或“死机”,使得DSP系统无法正常工作,甚至造成严重事故。 为了提高系统的抗干扰能力,DSP芯片中使用了“看门狗”技术来监视系统的软件和硬件。它可以在程序跑飞时强制对系统复位或中断,使系统进入初始状态,从而保证系统按要求运行。,看门狗模块框图,看门狗使用一个独立于CPU的定时器计数单元,这个8位的看门狗计数器(

2、WDCNTR),当计数到最大值时看门狗模块产生一个输出脉冲(512个OSCCLK时钟宽度),并可以中断或复位DSP。因此,为了避免不必要的复位,用户可以屏蔽计数器或周期地对看门狗复位控制寄存器写“0 x55+0 xAA”序列(可以复位看门狗计数器)。,除可以复位系统外,看门狗模块还可以将处理器从IDLE/STANDBY模式唤醒。 在STANDBY模式下,所有外设都将被关闭,只有看门狗起作用。看门狗模块将脱离PLL时钟运行,而中断信号(WDINT)反馈到LPM模块,可以将器件从STANDBY模式唤醒。 在IDLE模式, WDINT信号能够向CPU产生中断(该中断为WAKEINT),使CPU脱离I

3、DLE模式。 在HALT模式,由于PLL和OSC单元被关闭,所以看门狗模块也将关闭,因此不能实现上述功能。,看门狗相关寄存器,看门狗控制寄存器(WDCR),2.系统控制和状态寄存器(SCSI),WDINTS:看门狗中断状态位,反映WDINT的状态。 WDENINT: 1看门狗复位信号(WDRST)被屏蔽, 看门狗中断信号使能(WDINT); 0看门狗复位信号(WDRST)被使能, 看门狗中断信号屏蔽(WDINT); WDOVERRIDE: 1允许改变WDCR中的看门狗屏蔽位WDDIS; 0不能改变WDDIS; 清零后只有系统复位才允许改变该位的状态,用户可读取该位状态,3.看门狗计数寄存器(W

4、DCNT),WDCNTR包含看门狗计数器的当前计数值(00 xFF); 如果计数器溢出,看门狗产生中断或复位DSP; 如果向WDKEY写有效的组合( 0 x55+0 xAA ),将使计数器清零。 看门狗定时器的周期最大值:OSCCLK/512/(1-64)/256。,4.看门狗复位寄存器(WDKEY),依次写0 x550 xAA到WDKEY将使WDCNTR清零; 写其它任何值都会使看门狗复位; 读该寄存器将返回WDCR寄存器的值。,看门狗复位程序,void KickDog(void) EALLOW; SysCtrlRegs.WDKEY = 0 x0055; SysCtrlRegs.WDKEY

5、= 0 x00AA; EDIS; ,看门狗的应用,看门狗模块可以产生中断信号或复位信号,但这两者不能同时产生。这取决于SCSR寄存器的WDENINT位。该位为0时,看门狗复位信号(WDRST)被使能, 看门狗中断信号屏蔽(WDINT),发生故障时,信号直接使器件复位;而该位为1时,看门狗复位信号(WDRST)被屏蔽, 看门狗中断信号使能(WDINT),发生故障时,执行中断服务程序,不会使器件复位。,看门狗用于强制复位器件,/包含头文件- #include “DSP281x_Device.h #include “DSP281x_Examples.h” /声明全局变量- Uint32 WakeCo

6、unt;Uint32 LoopCount; /主程序- void main(void)InitSysCtrl(); /初始化系统控制寄存器、PLL、看门狗和时钟 DINT; /关闭全局中断响应 InitPieCtrl(); /初始化外设控制寄存器 IER = 0 x0000; /关闭中断开关IFR = 0 x0000; /清除中断标志位 InitPieVectTable(); /初始化外设向量表 WakeCount = 0; / 看门狗中断次数清零 LoopCount = 0; / 空循环计数 EALLOW; / 打开保护 SysCtrlRegs.SCSR.all = 0 x00; /选择看门

7、狗的复位功能EDIS; / 操作保护,KickDog(); EALLOW; SysCtrlRegs.WDCR=0 x0028; /使能看门狗,WDCLK=OSCCLK/512/1 EDIS; For(;) /用户代码 void KickDog(void) /喂狗程序,清零看门狗计数器 EALLOW; SysCtrlRegs.WDKEY = 0 x0055; SysCtrlRegs.WDKEY = 0 x00AA; EDIS; ,看门狗用于唤醒系统,/包含头文件- #include “DSP281x_Device.h #include “DSP281x_Examples.h” interrupt

8、 void wakeint_isr(void); /声明全局变量- Uint32 WakeCount;Uint32 LoopCount; /主程序- void main(void)InitSysCtrl(); /初始化系统控制寄存器、PLL、看门狗和时钟 DINT; /关闭全局中断响应 InitPieCtrl(); /初始化外设控制寄存器 IER = 0 x0000; /关闭中断开关IFR = 0 x0000; /清除中断标志位 InitPieVectTable(); /初始化外设向量表 EALLOW; / 打开保护 PieVectTable.WAKEINT = / 操作保护,WakeCoun

9、t = 0; / 看门狗中断次数清零 LoopCount = 0; / 空循环计数 EALLOW; / 打开保护 SysCtrlRegs.SCSR.all = 0 x02; /选择看门狗中断,禁止看门狗复位EDIS; / 操作保护 PiectrlRegs.PIECRTL.bit.ENPLE=1; /允许PIE1组中断 PiectrlRegs.PIEIER1.bit.INTx8=1; /打开第一组的watchdog中断 IER|=M_INT1; /允许CPU响应1组中断 EINT; / 允许全局中断 KickDog(); EALLOW; SysCtrlRegs.WDCR=0 x0028; /使能看门狗,WDCLK=OSCCLK/512/1 EDIS;,For(;) LoopCount+; /中断服务子程序- interrupt void wakeint_isr(void)WakeCount+;PieCtrlRegs.PIEACK.all = PIEACK_GROUP1; void KickDog(void) EALLOW; SysCtrlRegs.WDKEY = 0 x0055; SysCtrlRegs.WDKEY = 0 x00AA; EDIS; ,

展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 办公文档 > PPT模板库 > PPT素材/模板

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号