您的位置 首页 发布

有了看门狗就不会死机?

死机是指CPU的程序指针进入一个死循环,无法执行正常的程序流程。其外在表现常常是:正常功能丧失,按键无响应,显示凝固。单片机死机后,只有

死机是指CPU的程序指针进入一个死循环,无法履行正常的程序流程。其外在体现常常是:正常功用损失,按键无呼应,显现凝结。单片机死机后,只需复全才干走出死循环,履行正常的程序流程。众所属知,战胜死机的最有用手法是加看门狗(WatchDog)。

现在用得最广泛的看门狗实际上是一个特别的守时器DogTimer。DogTimer按固定速率计时,计满预订时刻就宣布溢出脉冲使单片机复位。假如每次在DogTimer溢出前强行让DogTimer清零,就不会宣布溢出脉冲。清零脉冲由CPU宣布,在单片机程序中每隔一段句子放一个清DogTimer的句子——FeedDog句子,以确保程序正常运行时DogTimer不会溢出。一旦程序进入一个不含FeedDog句子的死循环,DogTimer将溢出,导致单片机复位,跳出这个死循环。本文称这种看门狗为典型看门狗,典型看门狗已被集成比,如MAX706、MAX791等[1];还有许多单片机自身集成了这种看门狗,如PIC16C57、MC68HC705等,
有一个错误观点:加了看门狗,单片机就不会死机。实际上,看门狗有时刻会彻底失效。当程序进入某个死循环,而这个死循环中又包含FeedDog句子,这时DogTimer一直不会溢出,单片机一直得不到复位信号,程序也就一直跳不出这个死循环。针对这一坏处,笔者规划了双对限看门狗和守时复位看门狗。

双时限看门狗有两个守时器;一个为短守时器,一个为长守时器。短守时器守时为T1,长守时器守时为T2,0看门狗就是守时地让单片机强行复位。这样,即便设备死机,其最大死机时刻也不会大于守时器守时时刻。明显,只需硬件无缺,这种看门狗百分之百地确保了单片机不会长时刻死机。在智能电表(包含IC卡电能表、复费率电能表、多功用电能表[4])中选用了守时复位看门狗,每1秒让CPU强行复位,迄今数十万电表运行了近五年,无一例死机陈述。

有必要指出,选用这种看门狗,CPU的编程要习惯守时复位的环境,确保守时复位不打断那些不能打断的程序,不形成任何误动作。

声明:本文内容来自网络转载或用户投稿,文章版权归原作者和原出处所有。文中观点,不代表本站立场。若有侵权请联系本站删除(kf@86ic.com)https://www.86ic.net/changshang/fabu/254134.html

为您推荐

联系我们

联系我们

在线咨询: QQ交谈

邮箱: kf@86ic.com

关注微信
微信扫一扫关注我们

微信扫一扫关注我们

返回顶部