当前位置: 首页 > 工控机 > 自动化-基于嵌入式编制中看门狗的道理与行使

自动化-基于嵌入式编制中看门狗的道理与行使

更新时间:2020-03-15 文章来源网络:本站发表的内容,不保证内容完整性,均为原作者的观点,版权归原作者所有如有侵权请立即与我们联系, 我们将及时处理! 点击次数:613

  华北工控机官网光栅出现红灯闪烁故障近来必要正在板子上加上一块WatchDog,以确保正在编制失足时主动重启,因此看了极少正在嵌入式编制中利用看门狗的原料,总结如下:

  看门狗原本即是一个能够正在必然时期内被复位的计数器。当看门狗启动后,计数器发端主动计数,原委必然时期,假使没有被复位,计数器溢出就会对CPU形成一个复位信号使编制重启(俗称“被狗咬”)。编制平常运转时,必要正在看门狗批准的时期间隔内对看门狗计数器清零(俗称“喂狗”),不让复位信号形成。假使编制不出题目,顺序担保守时“喂狗”,一朝顺序跑飞,没有“喂狗”,编制“被咬”复位。

  这就比如你的身边有一只时期饥饿的狗,你不守时给它肉吃,它就会吃你的肉,你被吃了......挂了,投胎转世,彻底从头做人了。不幸的是下世你还得喂狗.

  1、CPU内部自带的看门狗:此类看门狗大凡是将一个芯片中的依时器来举动看门狗,通经过序的初始化,写入初值,设定溢出时期,并启动依时器。顺序守时对依时器赋初值(或复位),免得被咬。这种看门狗是能够被禁用的(只须中止这个依时器即可),比如对那只须咬你的狗来个“葵花点穴手”。大部门CPU都内置看门狗,硬件道理可参考各芯片数据手册。

  舛讹:必要初始化;假使顺序正在初始化、启动已毕前跑飞或正在禁用后跑飞,看门狗就无法复位编制,如此看门狗的感化就没有了,编制规复才具低浸。

  2、独立的看门狗芯片:这种看门狗要紧有一个用于喂狗的引脚(大凡与CPU的GPIO相连)和一个复位引脚(与编制的RESET引脚相连),假使没有正在必然时期内更正喂狗脚的电平,复位引脚就会更正形态复位CPU。此类看门狗一上电就发端管事,无法禁用。现正在常用的芯片有:CAT705/CAT706、IMP706等等,溢出时期正在1.6秒操纵。 硬件道理能够参考各芯片数据手册和《基于Linux的嵌入式编制全程喂狗政策》。

  极少要紧的顺序,务必让它不绝跑着;况且还要常常珍视它的形态不行让它呈现死锁景象。(当然,假使一个主顺序会呈现死锁,确信是策画或者编程上的失误。首要做的事是Debug。)但假使时期紧急能够用软件看门狗,当前应急。

  这种监控软件运转不呈现界面窗口,具有必然的湮没性;它依时判定标的过程是否运转正在目下编制中,假使没有则启动标的过程;判定标的过程是否“无反映”,假使是则终止标的过程;假使标的过程“无反映”的次数超出必然的数目,则重启总共编制。它的主意也是复位,可是它要紧市复位过程,实正在不成才复位CPU。

  正在大凡的民用产物,对编制的不乱性没有太高恳求的场地,能够利用内置看门狗,能够简化软件拓荒和硬件本钱。

  正在工控产物和对编制的不乱性有较高恳求的合节场地,根本都选用硬件独立看门狗,确保编制正在面临要紧差池时的规复才具。填补了硬件本钱,稍微加大了软件的拓荒难度(务必确保正在平常情形下的不竭喂狗)。

  可是假使是独立的看门狗芯片就务必喂了。或者为了保障,你正在bootloader中就启动了看门狗,也得喂了。

  bootloader有良众,根本道理都是相似的,喂狗的经过也根本相似,正在这里以uboot为例讲明若何喂狗。

  正在bootloader加载了内核之后,编制就发端由Linux内核接受。而喂狗的管事自然也发端由内核来继承。正在bootloader将统制权给内核之后,时期上能够分为以下几个部门:

  对付利用CPU内置的看门狗,正在1~4阶段,自动化-基于嵌入式编看门狗大凡都没有启动,无需喂狗。唯有正在看门狗防守过程启动后,由防守过程掀开看门狗,并遵循装备文献监控其他过程的形态来发端喂狗。假使被监控过程呈现弗成修复的题目,防守过程中止喂狗,CPU复位。

  起初正在第1阶段,内核的自解压大凡时期较长,务必正在自解压的轮回经过中参与喂狗代码(可以还倘若汇编景象的)。一朝正在这经过中跑飞,就不会喂狗,CPU复位。

  正在第2阶段,这段时期大凡不会很长,制中看门狗的道理与行使能够不消喂狗。可是这也和你的内核相合,假使正在这个阶段正好有比拟耗时的模块启动的话,你能够正在这个模块的初始化函数或者比拟耗时的轮回和等候中增加喂狗代码。全部正在哪些模块中加,要测试启动几次就明晰了,靠测验和体味。

  正在第3阶段,和第2阶段好似,假使正在这个阶段正好有比拟耗时的模块启动的话,你能够正在这个模块的初始化函数或者比拟耗时的轮回和等候中增加喂狗代码。可是正在根文集编制挂载时,遵循文献编制的性子和巨细,可以必要正在文献编制代码中增加喂狗指令。

  第4阶段是一个比拟耗时的阶段,大凡会正在编制启动剧本中增加极少纯洁的喂狗的shell下令,比方:“echo V>