窗口看门狗和独立看门狗区别

最近在cortex-M系列芯片上进行看门狗编程的时候发现了关于看门狗有两个:(独立)看门狗和窗口看门狗。然后就查找了下网络资源,对这两个看门狗做了区分。

1、相同点

    都是为了防止CPU跑飞

2、独立看门狗

    根据内部看门狗时钟频率,装载寄存器定一个时间值,比如是1000,那么独立看门狗就会按照时钟频率,从1000开始向下每隔一个时钟周期减1,如果在减到0之前,你用程序代码重新向向下计数器里面写1000(喂狗),那么定时器会重新从1000开始向下递减。如果在减到0的时候,你还没有喂狗(用新的数值覆盖计数器),就会产生复位信号。

3、窗口看门狗

    根据系统时钟频率,装载一个初始值到向下计数器(假设还是1000),并且设置一个窗口值(小于装载到计数器的初始值,假设是500),窗口看门狗一般会定死窗口下线值是64。计数器从1000开始向下减,在减到500之前(1000到500间),是不允许你去喂狗的,一旦喂狗,就会产生复位信号。只有计数器值减到上限值之后(500到64),才允许你去喂狗。当计数器减到下限值(64到0之间),如果喂狗,也会产生复位信号,当减到0之后,自动产生复位信号。

    所以窗口看门狗实际上就是设置一个窗口(上下限),在这个范围内,你才允许你去喂狗,只要不在这个范围之内,都会复位。

4、区别总结

    大致区别在两方面:

    1、窗口看门狗计时时间比独立看门狗精准    

        窗口看门狗使用的是系统时钟源

    2、窗口看门狗严格限定喂狗时间段,独立看门狗则是只要没有到时间,都能喂狗

你可能感兴趣的:(独立看门狗,窗口看门狗,独立看门狗和窗口看门狗区别,arm驱动)