DSP看门狗 706 不复位的复位模式(软复位),为什么看不了电源掉电重启?

dsp看门狗定时器_百度文库
您的浏览器Javascript被禁用,需开启后体验完整功能,
享专业文档下载特权
&赠共享文档下载特权
&10W篇文档免费专享
&每天抽奖多种福利
两大类热门资源免费畅读
续费一年阅读会员,立省24元!
dsp看门狗定时器
&&dsp看门狗定时器
阅读已结束,下载本文需要
想免费下载本文?
定制HR最喜欢的简历
下载文档到电脑,同时保存到云知识,更方便管理
加入VIP
还剩2页未读,
定制HR最喜欢的简历
你可能喜欢看门狗电路和普通的复位电路
有什么不同? - 单片机/MCU论坛 -
中国电子技术论坛 -
最好最受欢迎电子论坛!
后使用快捷导航没有帐号?
看门狗电路和普通的复位电路
有什么不同?
23:25:17  
看门狗电路和普通的复位电路& &有什么不同?
23:32:11  
看门狗是由软件实现的自复位,普通复位电路还得手动去按
07:24:16  
一软一硬,好像电脑重启一样,一个是点电脑重启,一个是按机箱重启健
11:29:29  
看门狗电路是自动的,超时后自动复位芯片,
复位电路就是把复位引脚上拉了,没有复位的功能
09:19:49  
看门狗中包含了复位功能,但更重要的是:看门狗的作用是在程序跑飞时能回到正确的程序上,也就是第一条程序。
Powered by
供应链服务
版权所有 (C) 深圳华强聚丰电子科技有限公司一种新的单片机“看门狗”电路软件设计方法 - 单片机/DSP - 行业资讯==www.ic37.com
 | 
一种新的单片机“看门狗”电路软件设计方法
时间:, 来源:互联网,
文章类别:
作者:宁波机电工业研究设计院
李维国 宁波自来水总公司 俞晓红
来源:《国外电子元器件》
单片机控制系统“看门狗”电路的有效性,除硬件电路的可靠性以外,主要取决于如何正确给“看门狗”电路进行复位(即“喂狗”),文章在介绍了一种采用MAX706和89C52构成的硬件电路的基础上,给出了一种新颖可靠的“看门狗”电路软件设计方法。
单片机 看门狗 MAX706 89C52
随着MCS-51系列单片机的发展,其芯片价格在不断下降,但同时也带来了单片机芯片的抗干扰问题,该问题可能导致一些智能型仪器仪表单片机工业控制系统发生“死机”。笔者通过近几年的设计实践及不断试验,总结了一套可靠的“看门狗”硬件电路及软件设计方法。由于一些专业期刊曾经刊登过许多关于“看门狗”硬件电路构成的文章,同时也详细的关于“看门狗”电路非正常失效故障原因的分析及针对性软件设计技巧[1],本文给出了一个采用MAX706和89C52构成的“看门狗”硬件电路,并且从新的角度说明了如何确保“看门狗”电路的正常工作,同时给出了它的软件设计方法。
1 “看门狗”硬件电路简述
现以MAX706监控电路为例(见图1)来说明“看门狗”硬件电路的工作过程,我们知道,MAX706是一种性能优良的低功耗CMOS监控电路芯片,其内部电路由上电复位、可重触发“看门狗”定时器及电压比较器等组成[2]。MAX706只要在1.6秒时间内检测到WCI引脚有高低电平跳变信号,则“看门狗”定时器清零并重新开始计时;若超出1.6秒后,WCI引脚仍无高低电平跳变信号,则“看门狗”定时器溢出,WDO引脚输出低电平,进而触发MR手动复位引脚,使MAC706复位,从而使“看门狗”定时器清零并重新开始计时,WDO引脚输出高电平,MAX706的RST复位输出引脚输出大约200毫秒宽度的低电平脉冲,使单片机控制系统可靠复位,重新投入正常运行。
2 “看门狗”电路软件设计方法
以往的“看门狗”电路复位指令(即“喂狗”)一般总是插入在主程序中,而且“喂狗”指令一般是脉冲式,可以连续用两条取反指令(如CPL
P1.0)。这是因为一般情况下,程序跑飞或者陷入“死循环”时,中断功能可能不受影响,CPU仍能象正常运行时一样响应和执行中断子程序。这时如果中断子程序中插有“喂狗”指令,则“看门狗”定时器始终处于正常无溢出状态,无法对已经混乱的微机系统重新启动以投入正常运转状态。
在主程序中适当插入“喂狗”指令,大多数场合的单片机系统都能够比较可靠地工作。但是有一种特殊情况,即中断响应功能已经失效,而主程序仍然能够正常运行,这时“看门狗”电路对恢复单片机系统正常工作时无能为力的。例如:当程序正在执行中断子程序时,系统突然受到强烈干扰,程序跑飞,而且PC指针刚好落在主程序的指令字节上,堆栈也不溢出,使主程序能够继续正常运行。这时“看门狗”的“喂狗”动作正常,而中断再也不法响应了。这时因为在MCS-51的中断系统中有两个不可寻址的优先级状态触发器,分别指标两级中断响应状态。当CPU响应中断时,首先置位相应的优先级状态触发器(该触发器能指出CPU正在处理的中断优先级别),这时会屏蔽掉同级别的所有中断申请,直到执行RETI指令时,才由CPU硬件清零该优先级状态触发器,从而使以后的中断请求能被正常地响应[3]。如果响应中断后而不执行RETI指令,那么同级别中断申请就不会被响应了。
当然,象上述这种情况是比较少见的。大多数情况下,程序跑飞后都会使PC指针越出有效程序区,造成“死机”。这时“看门狗”就起作用了。在大多数系统中,中断子程序执行的时间占总运行时间的百分比都非常小,而在执行中断程序时,PC指针跑飞越过RETI指令,而主程序又能正常运行的机会就更少。但是如果中断子程序处理数据比较复杂或带有一些函数运算的功能时,则出现这种系统失常的情况就有可能发生了。以前,在笔者设计的智能流量计中就曾经出现过这种现象:键盘显示操作都正常,看起来不象“死机”,但是在设定参数时,数据位该内烁的不闪烁,总流量不会累计上去,显然是T0定时中断系统失效,而主程序仍然在运行,因为“喂狗”指令插在主程序中。那么,针对这种情形,有没有彻底解决的方法呢?“喂狗”指令直接插在中断子程序中是不合适的,而单独插在主程序中又显然是不够的。笔者通过仔细推敲后,将“喂狗”指令分解开来,取反指令变成置位和清零两种指令(即SETB
P1.0和CLR P1.0),将置位指令插在主程序中,而将清零指令插在T0中断子程序中,这样将两者联系起来,缺一不可,无论主程序运行失效,还是T0中断请求失效,都不能完成完整的“喂狗”指令,造成“看门狗”动作,从而确保了系统安全可靠地工作。
具体做法如下:
LJMP START
LJMP INTT0
START:MOV SP,#30H
INTT0:NOP
这样,在整个用户程序中只唯一的一对指令(SETB P1.0及CLR
P1.0)能使“看门狗”定时器复位。也就是说不会有任何“非法”的指令能使“看门狗”定时器误复位,致使系统已经“死机”而“看门狗”失效。当然,对对没有中断的用户系统,只需将清零指令(CLR
P1.0)也插在主程序中就可以了;对于有多种中断的用户系统,如果没有中断嵌套,则清零指令(CLR
P1.0)可以插在任一个中断子程序中,而在主程序中适当加入一些有关中断的冗余指令(如SETB
ET0等),以免因有关中断的特殊功能寄存器数据受到干扰时导致中断功能失效;对于有二级中断嵌套的用户系统,清零指令(CLR
P1.0)可以插在中断种数比较多的那一级中的任一个中断子程序中,插有“喂狗”指令的那一级中断系统将会受到“看门狗”的保护,而另一级中断系统如果失效,“看门狗”是“无动于衷”的,这时只能尽量减少这种中断子程序的执行时间以减少受到干扰的可能性。如果二级中断嵌套系统者受到“看门狗”的保护,就必需设计一个非常复杂的“看门狗”电路,其“喂狗”指令要由三部分来保证各个部分都能正常工作,需要说明的是,如果主程序运行一次的时间(包括可能被中断的时间)超过1.6秒,则要适当再插入一条SETB
P1.0指令,而T0中断时间间隔是不能超过1.6秒的。
另外,为了消除可能的“喂狗”误动作,建议对所应用的用户程序进行彻底仔细的检查,以防程序错乱时生成多余的SETB
P1.0(指令码 D290H)或者CLR P1.0(指令码 C290H)指令。利用通用编程软件(如EDIT)的查找功能可搜索用户程序在LST文件中的“90”字符串,就能方便地找到所有可能的非法“SETB
P1.0或CLR P1.0”指令,然后用NOP指令将其分离开来就可以了。如
ROM地址 指令码 源程序
0306 C2 MOV A,#0C2H
MOV DPTR,#1000H
B4D290 CJNE A,#0D2H,STEP1
CJNE A,#0D2H,STEP1
0494 00 STEP1:NOP
可以修改为
MOV A,#0C2H
0308 00 NOP
MOV DPTR,#1000H
CJNE A,#0D2H,STEP1
0405 00 NOP
0496 00 STEP1:NOP
其它情况下可以灵活处理,以使其消除以上两种可以出错的组合即可。
通过采取以上几种措施,对于没有二级中断嵌套的用户系统,能够绝对安全地受到监控而不会“死机”;对于有二级中断嵌套的用户系统,也可大大提高其可靠性。当然,一个单片机系统能够准确可靠地运行,除了不“死机”,还需保护数据免受干扰,这属于软件容错、数据冗余、系统重入等范畴,这里不作介绍。
技术文章分类
相关技术文章dsp硬件复位与软件复位有什么区别_百度知道
dsp硬件复位与软件复位有什么区别
答题抽奖
首次认真答题后
即可获得3次抽奖机会,100%中奖。
硬件复位是复位启动以后需要重新加载加载FPGA、DSP等,也有可能在这个操作之前初始化化CPU,加载系统文件等操作,具体视需要而定,然后初始化一些配置芯片;软复位则不需要进行FPGA、DSP等的加载,只是一些配置芯片的初始化。用最少的字来解释:
复位的概念:让赛跑运动员各自回到自己的起跑线。
硬复位:用拖车把运动员给拖到起跑线。
软复位:运动员自己走到起跑线。硬件复位是靠复位电路,而这种类型的复位从理论上讲只是起到了软件程序重启的作用,之前所有保存的数据是依然存在的,当软件重启后有可能会清掉或者不清这些数据;软件复位分几种,一种是控制其他芯片复位,这种其实属于硬件复位范畴;还有一种是自己复位,这需要软件支持,从这里来说就有自欺欺人的味道。因为如果自己复位,就必须有其他程序来支撑这个复位过程,也就是说,不是真正全面的软件重启。看门狗从这点上讲属于硬件复位范畴。硬件复位,即产生脉冲(无论是power on上电时自产生,还是手动、或外部看门狗产生;高/低电平有效、持续时间、沿等要求,视具体芯片要求而定),加至芯片内各触发器的Reset端;软复位,即由用户代码决定复位时机。可能是让程序跳回至起点,或配合片内复位模块,产生等同于硬件复位的效果(如片内集成了WDT)。
采纳率:24%
为您推荐:
其他类似问题
您可能关注的内容
dsp的相关知识
换一换
回答问题,赢新手礼包
个人、企业类
违法有害信息,请在下方选择后提交
色情、暴力
我们会通过消息、邮箱等方式尽快将举报结果通知您。}

我要回帖

更多关于 外部看门狗在仿真时会复位 的文章

更多推荐

版权声明:文章内容来源于网络,版权归原作者所有,如有侵权请点击这里与我们联系,我们将及时删除。

点击添加站长微信