初识独立看门狗 和 窗口看门狗

初识独立看门狗 和 窗口看门狗


一、看门狗


问题

在单片机构成的微型计算机系统中,由于其运作极易受到外部电磁场干扰,可能导致寄存器及内存数据紊乱,进而引发程序指针偏移至非预定区域,执行错误指令,致使程序陷入死循环,阻断正常执行流程。
这种情况下,由单片机操控的系统将无法维持正常运作,从而陷入停滞,产生不可预见的后果。


概念

看门狗监控芯片内部状态,并在检测到异常时迅速发出重启信号,以恢复系统秩序。
看门狗指令在中断处理中享有最高优先级,确保其功能得以即时执行。
看门狗电路的作用:使得单片机能够在无人值守的情况下维持持续运行。


工作原理

在这里插入图片描述

其工作机制如下:看门狗芯片与单片机的一个I/O端口相连,该端口通过程序控制,周期性地向看门狗引脚发送脉冲信号。这些发送脉冲的程序语句被嵌入到单片机的其他控制代码之间。若单片机因干扰导致程序失控,进入某个死循环,原本负责更新看门狗引脚的程序将无法执行。此时,看门狗电路由于未接收到预期的信号,便会激活并向单片机的复位引脚发送复位信号,促使单片机进行复位操作,从而使程序重新从存储器的起始位置开始执行,实现单片机的自动重置功能。
简单就一句话:看门狗就是一个监控程序是否可靠运行的电路,如果不能可靠运行,则复位CPU。


二、独立看门狗

独立看门狗(IWDG)由其专用低速时钟(LSI)驱动,因此即便在主时钟发生故障时仍然保持工作状态。
IWDG最适合应用于那些需要看门狗作为一个在主程序之外,能够完全独立工作,并且对时间精度要求较低的场合。

IWDG主要特性
1、自由运行递减计数器
2、时钟由独立RC振荡器提供(可在待机和停止模式下运行)
3、当递减计数器值达到0x000时产生复位(如果看门狗已激活)
独立看门狗使用了另外的时钟源,不与其他硬件共用主时钟
这种是一种主动冗余技术,提高可靠性。

举例:
可以看我的另外一篇文章:时钟系统框图(时钟树)解析
独立看门狗,拥有自己的时钟源。一般由LSI提供
在这里插入图片描述
假如PLL崩溃了,负责运行程序的硬件单元ALU就无法工作,世也就无法喂狗。
独立看门狗依然能够正常工作,检测到其计数值为0,认为软件故障,则触发系统复位。

在这里插入图片描述

独立看门狗的工作流程:
启动和配置:在系统启动时,开发者会配置看门狗的时间窗口大小和预分频器的值。
喂狗(刷新):系统软件需要定期向看门狗写入数据(喂狗),以重置计数器,防止其溢出。
监测和复位:如果系统在规定时间内未执行喂狗操作,看门狗会触发复位信号,使系统复位。
复位后的操作:系统复位后,看门狗会自动重新初始化,准备下一次的监测周期。


三、窗口看门狗

窗口看门狗(Window Watchdog Timer, WDT)是一种硬件机制,用于监控微控制器或计算机系统的运行状态,**确保它们按照既定的时间间隔执行特定的操作。**如果系统未能在预设的时间窗口内完成这些操作,看门狗便会触发一个复位信号,从而帮助系统恢复正常运行。

窗口看门狗通常包括一个计数器,该计数器在初始化时设置一个特定的时间窗口。
系统软件必须定期重置这个计数器,以延长窗口时间。
如果计数器达到零值,看门狗便会触发复位信号。

窗口看门狗通常被用来监测,由外部干扰或不可预见的逻辑条件造成的应用程序背离正常的运行序列而产生的软件故障。
除非递减计数器的值在 T6 位变成 0 前被刷新,看门狗电路在达到预置的时间周期时,会产生一个MCU复位。
如果在递减计数器达到窗口寄存器值之前刷新控制寄存器中的7位递减计数器值,也会产生MCU复位。
这意味着必须在限定的时间窗口内刷新计数器计数值

在系统复位后,看门狗总是处于关闭状态。
可通过设置 WWDG_CR 寄存器中的 WDGA 位来使能看门狗,之后除非执行复位操作,否则不能再次关闭。

窗口看门狗(WWDG)时钟由APB1时钟经预分频后提供,通过可配置的时间窗口来检测应用程序非正常的过迟或过早的操作。
WWDG最适合那些要求看门狗在精确计时窗口起作用的应用程序。

WWDG主要特性:
1、可编程的自由运行递减计数器
2、复位条件
1)、当递减计数器值小于0x40时复位(如果看门狗已激活)
2)、在窗口之外重载递减计数器时复位(如果看门狗已激活)
3、提前唤醒中断(EWI):当递减计数器等于0x40时触发(如果已使能且看门狗已激活)

窗口看门狗的工作流程:
初始化:在系统启动时,开发者设定一个时间窗口,通常是几秒到几分钟。
计数器启动:看门狗计数器开始倒计时。
重置计数器:系统软件定期(通常是每几百毫秒到几秒钟)对计数器进行重置,以防止其归零。
检测异常:如果系统正常运行,软件会按时重置计数器。但如果系统出现故障,如进入死循环或崩溃,重置操作将被忽略。
触发复位:当计数器归零时,看门狗判定系统已无法正常响应,便会发送复位信号,重启系统。


PS:质量属性

质量属性(quality attribute)是2018年公布的计算机科学技术名词。
质量属性种类:
• 性能 (Performance)
• 安全性(Security)
• 可用性(Availability)
• 可扩展性(Scalability)
• 易用性(Usability)
• 可靠性(Reliability)
• 可移植性(Portability)
• 可修改性(Modifiability)
• 可维护性(Maintainability)


三个可靠性指标

可靠性,作为一个衡量指标,起初定义了系统在特定运行时段内有效运作的概率,是评估系统稳定性的关键参数。
要衡量可靠性,必须考察系统在一段时间内的持续正常运行能力。

MTBF(Mean Time Between Failure)

平均无故障工作时间。就是从新的产品在规定的工作环境条件下开始工作到出现第一个故障的时间的平均值。MTBF越长表示可靠性越高正确工作能力越强 。

MTTR(Mean Time To Repair)

平均修复时间。是指可修复产品的平均修复时间,就是从出现故障到修复中间的这段时间。MTTR越短表示易恢复性越好。

MTTF(Mean Time To Failure)

平均失效时间。系统平均能够正常运行多长时间,才发生一次故障。系统的可靠性越高,平均无故障时间越长。

系统可用性计算

MTTF=1/失效率
MTTR=1/修复率
系统可用性=MTTF/(MTTF+MTTR)*100%


PS:冗余设计

又称余度设计技术,是指在系统或设备完成任务起关键作用的地方,增加一套以上完成相同功能的功能通道、工作元件或部件,以保证当该部分出现故障时,系统或设备仍能正常工作,减少系统或者设备的故障概率,提高系统可靠性。


冗余设计的类型


按冗余方法划分

(1)静态冗余:只利用冗余资源把故障的后果屏蔽掉,而不对原系统结构进行重新改变。此方法多用于电路或部件。
(2)动态冗余:在发现故障后,对有故障的部件或分系统进行切换或对系统进行重构或恢复。此方法多用于系统。
(3)混合冗余:上述两种冗余方法的组合。

按冗余使用的资源划分

(1)硬件冗余:通过使用外加的元器件、电路、备份部件等对硬件进行冗余。
(2)数据/信息冗余:通过诸如检错及自动纠错的检校码、奇偶位等方式实现的’数据和信息冗余。
(3)指令/执行冗余:通过诸如重复发送、执行某些指令或程序段实现的指令/执行冗余。
(4)软件冗余:通过诸如增加备用程序段、并列采用不同方式开发的程序等对软件进行冗余。

按工作方式和工作状态划分

(1)主动冗余也称为工作冗余、热储备或热备份
  执行规定功能的所有手段同时处于工作状态的冗余。
  主动冗余包括并行冗余和表决冗余两种方式。
(2)备用冗余包括冷储备、温储备或冷备份、温备份
  执行规定功能的一部分手段处于工作状态,而其余部分在需要之前处于不工作状态的冗余。

按实施冗余的产品级别划分

部件冗余、系统冗余等。

  • 19
    点赞
  • 15
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值