深圳市华胄科技有限公司 >> MCU专题 >> 单片机应用


单片机应用----单片机“看门狗”的应用



提交者 耕牛  在  2008-1-10 11:05:13 

上一篇 下一篇
随着单片机技术的发展和制造工艺的日臻成熟,单片机的应用领域不断拓宽,但是,由于单片机自身的抗干扰能力较差,
特别是在一些条件比较恶劣,噪声大的场合,常常会出现单片机因受外界干扰而导致死机的现象,造成系统不能正常工作
。设置“看门狗”就是防止单片机死机、提高单片机系统抗干扰性的一种重要途径。


下面简要介绍常用的看门狗技术及具体的实现方法,从提高看门狗工作可靠性的角度,分析常用看门狗方案的优缺点,
以及在使用中应该注意的问题。


软件看门狗


是利用单片机片内的定时器/计数器单元作为看门狗, 在单片机程序中适当地插入“喂狗”指令,当程序运行出现异常
或进入死循环时,利用软件将程序计数器赋予初始值, 强制性地使程序重新开始运行。


1、首先在初始化程序中设置好定时器/计数器的方式控制寄存器(TMOD)和定时时间的初值,并开中断。


2、根据定时器的定时时间,在主程序中按一定的间隔插入复位定时器的指令,即插入“喂狗”指令,两条“喂狗”指
令间的时间间隔(可由系统时钟和指令周期计算出来)应小于定时时间,否则看门狗将发生误动作。


3、在定时器的中断服务程序中设置一条无条件转移指令,将程序计数器转移到初始化程序的PC入口。

以 MCS-51系列单片机为例,晶振频率为12MHZ,定时器 0 工作在方式1,定时时间为20MS,则定时器 0 的初值应设为
TH0=#0B1H,TL0=#0E0H,具体程序段如下。


ORG 0000H
AJMP MAIN
ORG 000BH
LJMP TOP
MAIN: MOV SP,#60H
MOV PSW,#00H
MOV IE,#00H
MOV IP,#00H
MOV TMOD,#01H
LCALL DOG
...
DOG: MOV TH0,#01BH
MOV TL0,#0E0H
SETB TR0 ; 重置定时器 T0 的初值并启动, 即“喂狗”
RET


TOP: POP ACC
POP ACC
CLR A
PUSH ACC
PUSH ACC
RETI


程序说明:当程序正常运行时,定时器T0不会发生溢出;而程序运行异常时,定时器T0超时溢出,进入中断矢量地址
000BH,执行“LJMP TOP”指令,程序进入TOP中,执行完TOP程序后就将0000H送入PC,从而实现软件复位。


软件看门狗的最大特点是无需外加硬件电路,经济性好。当然,这种方式要占用定时器。


单片机自代看门狗


AT89S52本身具有看门狗寄存器WDTRST(地址为0A6H的SFR),当看门狗激活后,用户必须向WDTRST依次写入01EH和
0E1H喂狗来避免WDT溢出。喂狗子程序DOG如下:


DOG: MOV 0A6H,#01EH
MOV 0A6H,#0E1H
RET


由于看门狗使用的是CPU的晶振。因此在晶振停振的时候看门狗也无效。另外这种看门狗的时间是固定的,无法更改。

当晶振为12M时每16MS需喂狗一次。实际应用时发现时间太短,当程序工作量很大时“喂狗”的地方就很多。容易造成某程
序段中死循环,因此可靠性不是很高。


硬件看门狗


硬件看门狗是指一些集成化的专用看门狗电路,它实际上是一个特殊的定时器,当定时时间到时,发出溢出脉冲。从实
现角度上看,该方式是一种软件与片外专用电路相结合的技术,硬件电路连接好以后,在程序中适当地插入一些看门狗复位
的指令,即“喂狗”指令,保证程序正常运行时看门狗不溢出;而当程序运行异时,看门狗超时发出溢出脉冲,通过单片机
的RESET引脚使单片机复位。

在这种方式中,看门狗能否可靠有效地工作,与硬件组成及软件的控制策略都有密切的关系。


常用的硬件看门狗很多,如MAX813L,X5043/X5045等等。X5045是一种可编程的专用看门狗定时器,定时时间可通过软
件进行选择(200MS,600MS,1.4S),它内部包含看门狗电路、电压监控电路和4KB的E2PROM。详细请查阅有关资料。


下面以MAX813L为例介绍硬件看门狗的使用


MAX813L 是美国 MAXIM 公司生产的低价格单片机监控电路。它减少了在微处理器系统中采用分离元件来实现监控功能
所用的元器件数量和复杂性,并能提高系统的可靠性和准确性。它除有看门狗作用以外,还有电源电压检测和上电手动复位的
功能。


下图为一典型应用,只要单片机的P1.7口每1.6S内操作一次CPL P1.7,即完成了一次喂狗,PFI为电压监测端。


单片机超过1.6S未向 MAX813L 的看门狗输入端发脉冲信号,MAX813L内部的定时器将会强制将 WDO 拉到低电平,这个

低电平通过MR产生复位信号。单片机复位后从初始状态开始运行,从而保证系统的可靠性,起到了看门狗的作用。


本设计已应用于实际的工控系统中,经过测试表明效果较好,是一种理想的监控电路。






单片机教程,五系列(55讲)电子书全集下载

论坛精选:
单片机应用----与A/D转换器的接口设计
http://bbs.huazhoucn.com/Topic.aspx?id=1764
单片机应用----C8051F020及其在仪器和仪表中的应用
http://bbs.huazhoucn.com/Topic.aspx?id=1714
单片机应用----单片机的状态迁移与复位操作
http://bbs.huazhoucn.com/Topic.aspx?id=1572
单片机应用----FLASH引导装载系统设计
http://bbs.huazhoucn.com/Topic.aspx?id=1531
单片机应用---时钟芯片SD2200ELP与AVR单片机接口
http://bbs.huazhoucn.com/Topic.aspx?id=1763
单片机应用----MSP430系统应用结构设计与选型
http://bbs.huazhoucn.com/Topic.aspx?id=1744
单片机应用----基于单片机的电子导游系统设计
http://bbs.huazhoucn.com/Topic.aspx?id=1554

1 楼  提交者:刘深圳 在 2008-1-10 21:29:30
2 楼  提交者:耕牛 在 2008-1-11 11:49:02
3 楼  提交者:weboy 在 2008-1-13 14:36:53
ffg
4 楼  提交者:shen002 在 2008-1-13 20:44:32
ding 
5 楼  提交者:唐鑫 在 2008-1-17 20:47:55
asda
6 楼  提交者:Guest 在 2008-1-18 4:57:21
ok
7 楼  提交者:jmao1 在 2008-1-20 15:22:29
http://blog.21ic.com/user1/349/archives/2007/44255.html
8 楼  提交者:Guest 在 2008-1-22 13:24:59
gfsd
9 楼  提交者:sdonkey 在 2008-1-29 11:25:19
10 楼  提交者:中山盈亮 在 2008-1-29 21:56:22
ok
11 楼  提交者:Guest 在 2008-1-30 9:03:56
ok
12 楼  提交者:Guest 在 2008-2-3 1:16:28
v
13 楼  提交者:Guest 在 2008-2-5 22:26:36
cc
14 楼  提交者:Guest 在 2008-2-14 10:35:43
hao
15 楼  提交者:Guest 在 2008-2-15 11:34:25
k
16 楼  提交者:visitor 在 2008-2-17 4:33:28
17 楼  提交者:夏天 在 2008-2-19 9:08:43
OK
18 楼  提交者:Guest 在 2008-2-25 11:09:07
hh
19 楼  提交者:孙美霞 在 2008-3-6 22:59:18
WER
20 楼  提交者:Guest 在 2008-3-7 10:46:02
21 楼  提交者:Guest 在 2008-3-8 1:14:00
A
22 楼  提交者:Guest 在 2008-3-12 14:16:41
bucuo 
23 楼  提交者:罗先生 在 2008-3-21 15:20:43
谢谢


24 楼  提交者:rry 在 2008-3-25 13:16:49
无内容
25 楼  提交者:Guest 在 2008-3-25 13:32:18
确实很不错的社区,继续学习..
26 楼  提交者:保障有力 在 2008-3-28 22:00:33
ddd
27 楼  提交者:menghj 在 2008-3-28 22:36:11
28 楼  提交者:wzlove88 在 2008-4-1 19:55:18
11
29 楼  提交者:Guest 在 2008-4-3 0:21:09
30 楼  提交者:这都是 在 2008-4-4 6:34:54
v
上一篇 下一篇
当前第〖1〗页 共有4页 转到第 1 2 3 4