为什么要加看门狗?
1:要讲系统的可靠性,首先要讲系统安全保证机制的可靠性,对于MCU系统来说,养DOG是其中最重要的一条
2:很多人可能要讲,我没养DOG,我的系统也很可靠,所以看门狗没有必要。这是一种不需要反驳的观点,从理论上来讲,养狗安全系数肯定会高一些;
3:在系统里面养狗,狗本身电路也是存在失效可能性的,在上面有人曾讲到MAX813翘了,这就属于这种情况,MAX813还属于比较好的,过去很多人经常用到的25045,内部集成了EE等资源,这东西不怎的,很容易被干扰得自己挂了。
4:很多人在争执系统里面应该如何养狗,很多人片面的以为狗一定要在主循环里面养才是最好的,在这里不得不说说hotpower的中断养狗论了,当年hotpower为了证明那些人的说法是何其错误,整出了一个中断养狗论,很多人根本没看懂hotpower想要表达的真实含义,从原理上讲,hotpower其实要表达的是:要想养一条忠实听话的好狗,在哪个地方养根本不重要,在哪个地方养都可以达到最好的效果,真正重要的是要注意软体返回的各个路径,在异常的时候,要通过条件互驳,让狗起来看家。
5:虽然hotpower中断养狗的方法也可以达到比较好的看家效果,但俺却是一个主循环养狗的坚定拥护者,原因无它,第一:主循环养狗简单明了;第二:主循环养狗比较省代码,第三:不管是中断还是主循环养狗,实现条件互驳,这只狗都一样忠实。
6:在这里不得不说程序结构,那种流水帐的程序结构,不管是中断还是主循环养狗,结果都是一样:养了一只癞皮狗!关于这一点,如果谁有不同意见,可以提出来讨论讨论
7:这些都做好了有什么用呢?
一个再忠实的狗,也只能是系统的一部分,在矿安产品中有一个说法叫:本安型,也就是本质安全性,当然,MCU系统是无法实现本安性的,所以需要看家的DOG,但系统的根本依然是要努力提高系统本身的安全性,一个再好的看门狗动作处理,也只能是尽量恢复现场,并且,系统也绝不能总是出现保护的行为,如果这样,将是一个不可原谅的设计……
这就又延伸到电路设计和PCB设计甚至工艺设计等等问题,这不是这个主题帖讨论的范围,所以,俺也不说了……
DOG是为了防止不知道哪天出现的窃贼的,对付已知出现的窃贼,最好的办法就是直接拿棍子轰倒……
对于一个系统,通过测试只是尽可能模拟实际可能出现的干扰,显然:从数学的概率讲,不能涵盖100%的情况,并且,一个产品可能大批量的被众多不同类型用户使用,所以,测试条件的样本抽取本就不可能重现100%现实状况。
一句胡说八道的理论:如果你的系统产生复位,说明你的设计不行,改好设计就可以,所以没有必要要看门狗……
本人懒得反驳,看应和者居然众多,避免错误的理论误人子弟,必须以证视听:
我已经讲过多次了,测试只是一种必要不充分的条件,请认真理解这个来自数学的概念……
没有测试,只能通过在实际使用条件下的试用来检验设计,这样的设计更加是不充分的测试,而且,这样的测试只能更加无序的浪费时间和精力……
看来,21ICBBS里面,江湖郎中比较多……
- 单片机编程经验(04-26)
- TMS320F2812系统中的软件复位方法(04-20)
- 单片机系统抗干扰应用实例(11-05)
- uC/OS-II 系统的多任务看门狗设计(10-03)
- VxWorks共享看门狗定时机制的设计与实现(10-05)
- 基于ARM的新型智能交通信号灯系统设计(07-05)