"); //-->
来源网址:http://www.emtronix.com/article/article2008243.html
看门狗分硬件看门狗和软件看门狗。硬件看门狗是利用一个定时器电路,其定时输出连接到电路的复位端,程序在一定时间范围内对定时器清零(俗称“喂狗”),因此程序正常工作时,定时器总不能溢出,也就不能产生复位信号。如果程序出现故障,不在定时周期内复位看门狗,就使得看门狗定时器溢出产生复位信号并重启系统。软件看门狗原理上一样,只是将硬件电路上的定时器用处理器的内部定时器代替,这样可以简化硬件电路设计,但在可靠性方面不如硬件定时器,比如系统内部定时器自身发生故障就无法检测到。当然也有通过双定时器相互监视,这不仅加大系统开销,也不能解决全部问题,比如中断系统故障导致定时器中断失效。
看门狗本身不是用来解决系统出现的问题,在调试过程中发现的故障应该要查改设计本身的错误。加入看门狗目的是对一些程序潜在错误和恶劣环境干扰等因素导致系统死机而在无人干预情况下自动恢复系统正常工作状态。看门狗也不能完全避免故障造成的损失,毕竟从发现故障到系统复位恢复正常这段时间内怠工。同时一些系统也需要复位前保护现场数据,重启后恢复现场数据,这可能也需要一笔软硬件的开销。

图1:(a) 多任务系统看门狗示意图 ;(b) 相应的看门狗复位逻辑图。
在单任务系统中看门狗工作原理如上所述,容易实现。在多任务系统中情况稍为复杂。假如每个任务都像单任务系统那么做,如图1(a)所示,只要有一个任务正常工作并定期“喂狗”,看门狗定时器就不会溢出。除非所有的任务都故障,才能使得看门狗定时器溢出而复位,如图1(b)。
而往往我们需要的是只要有一个任务故障,系统就要求复位。或者选择几个关键的任务接受监视,只要一个任务出问题系统就要求复位,如图2(a)所示,相应的看门狗复位逻辑如图2(b)所示。
在多任务系统中通过创建一个监视任务TaskMonitor,它的优先级高于被监视的任务群Task1、Task2...Taskn。TaskMonitor在Task1~Taskn正常工作情况下,一定时间内对硬件看门狗定时器清零。如果被监视任务群有一个Task_x出现故障,TaskMonitor就不对看门狗定时器清零,也就达到被监视任务出现故障时系统自动重启的目的。另外任务TaskMonitor自身出故障时,也不能及时对看门狗定时器清零,看门狗也能自动复位重启。接下来需要解决一个问题是:监视任务如何有效监视被监视的任务群。
专栏文章内容及配图由作者撰写发布,仅供工程师学习之用,如有侵权或者其他违规问题,请联系本站处理。 联系我们
相关推荐
华东师范大学微电子研究所
高级培训
用硬件仿真器实现全面的验证
微型投影仪:视频分享时代的宠儿
视觉:嵌入式的下一个方向
高级培训
100GbE时代的网络处理器:BCM88030 XGSCore
光接收电路
TTL状态探头电路
配置四开关降压-升压型µModule稳压器来适应不同应用:升压、降压或反相输出
高级培训
1000兆以太网交换机设备技术规范(中国标准)
Meta不会实施欧盟提出的自愿性人工智能指南
无人机核心系统解析:自主导航与感知系统
歌尔展出前沿创新方案,破译AI眼镜“声学密码”
1.5A晶体管CMOS电路步进驱动芯片ucn5804b
低功耗技术用于IC、封装及其PCB
固体激光测距机接收电路
RTL/TTL探头电路
Microchip与台达电子签署碳化硅解决方案合作协议,共创电源管理未来
中国电信:运营商视角思考RISC-V 在AI领域的应用
高级培训
半导体创新推动能源格局演变的三种方式
2A步进驱动芯片LM18298
聚焦正向设计|鲁欧智造第三届用户大会成功举办
Nexperia将铜夹片(CFP)封装的优势引入双极性晶体管
AI浪潮下的中国机遇:技术融合与工程创新
1/10/100干位光接收电路
4N35_4N36_4N37光电偶合器件
1A双桥步进驱动芯片udn2916b