硬件和软件看门狗的差别

这篇具有很好参考价值的文章主要介绍了硬件和软件看门狗的差别。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

  说到提高系统的可靠性,刚入门的工程师都知道,增加一个看门狗是重要的手段。看门狗又分软件看门狗和硬件看门狗,但是很多人可能没有深入了解其中的区别,工作中可能都遇到这样的PK:
硬件和软件看门狗的差别
  软件和硬件看门狗有什么区别?学完这篇文章就可以迎刃而解了。

1、硬件看门狗的原理

硬件看门狗是利用一个定时器电路,其定时输出连接到电路的复位端,程序在一定时间范围内对定时器清零(俗称“喂狗”),因此程序正常工作时,定时器总不能溢出,也就不能产生复位信号。如果程序出现故障,不在定时周期内复位看门狗,就使得看门狗定时器溢出产生复位信号并重启系统。
我们以ADI公司的ADM6316看门狗芯片为例。
硬件和软件看门狗的差别
  该看门狗芯片的主要功能有:
  1.可以监控主电源VCC,26种复位阈值选项:2.5 V至5 V,以100 mV递增;
  2.4种复位延迟选项:1 ms、20 ms、140 ms、1120 ms(最小值);
  3.4种看门狗喂狗超时选项:6.3 ms、102 ms、1600 ms、25.6 s(典型值);
  4.支持手动复位输入;
  5.复位输出级:推挽低电平有效,开漏低电平有效,推挽高电平有效。
  复位功能说明:
  该芯片内置复位功能。设备上电时,芯片的VCC电压一旦到达开启阈值电压VTH,延迟定时器启动,经过延迟时间tRP,复位信号RESET或者/RESET即可输出,实现设备的延迟上电复位;芯片同时会监测VCC的电压,一旦VCC跌落到VTH以下,经过延迟时间tRD后,复位信号输出电平翻转,实现设备的复位。
硬件和软件看门狗的差别
  看门狗功能说明:
  该芯片内置看门狗功能,设备上电时,芯片的VCC电压一旦到达开启阈值电压VTH,延迟定时器启动,经过延迟时间tRP,复位信号RESET或者/RESET即可输出,实现设备的延迟上电复位;当喂狗信号WDI收到第一个脉冲电平时,就触发芯片内部的定时器,软件必须在tWD时间内输出喂狗信号WDI,否则复位信号RESET或者/RESET将会在定时时间tWD到达时,进行复位,设备重新复位。
硬件和软件看门狗的差别

2、软件看门狗的原理

  软件看门狗原理上一样,只是将硬件电路上的定时器用处理器的内部定时器代替,这样可以简化硬件电路设计,一般是将一个芯片中的定时器来作为看门狗,通过程序的初始化,写入初值,并启动定时器。程序按时对定时器赋初值(或复位),以免它饿了。
  这种看门狗是可以被禁用的(只要停止这个定时器即可),好比对那只要咬你的狗来个“葵花点穴手”,大部分CPU都内置看门狗,硬件原理可参考各芯片数据手册。
  优点:可以通过程序改变初始时间,也可以随时禁用。
  缺点:需要初始化,如果程序在初始化、启动完成前跑飞或在禁用后跑飞,看门狗就无法复位系统,这样看门狗的作用就没有了,系统恢复能力降低。
硬件和软件看门狗的差别

3、软硬件看门狗的主要异同

  学习了上述的软硬件看门狗,我们总结一下两者的异同。
  两者相同点如下:
  1) 都是通过定时器实现;定时时间到没有喂狗就进行复位。
  2) 都是需要在规定的时间内喂狗。
  3) 两者都是靠软件进行喂狗。
  两者主要差异如下:
  1) 附加功能:硬件看门狗芯片一般还附带了延迟复位和电源检 测的功能,软件则没有。
  2) 屏蔽方法:软件看门狗很容易屏蔽关闭,只需修改其中的寄存器,而硬件看门狗一旦启动不断电就停不下来。
  3) 启动方式:软件看门狗很容易启动,只需修改其中的寄存器。硬件一般是收到第一个喂狗信号后就启动。
  4) 初始化:硬件看门狗上电后收到第一个喂狗脉冲就完成了初始化,软件看门狗则需要配置相关的寄存器(或者调用相关的看门狗子程序)。

4、一个软件看门狗搞不定的案例

  项目组研发一款户外远程采集器,应用场景包括偏僻的郊外,对可靠性要求很高,出现故障后或者远程升级后能够自动复位重启。为了节省成本,该产品采用主芯片内置的看门狗功能。主芯片其他资源初始化完成后,再初始化看门狗功能。产品批量后,远程升级过程中,大概有5%的概率设备升级后变砖,需要人工断电后再上电才能恢复正常。
  经过研发人员分析,软件的看门狗的流程如下图,一小部分设备,在升级程序过程,出现了死机的问题,程序还没有运行到初始化看门狗的阶段,看门狗无法生效,导致设备处于一直死机的状态,人工断电重启后恢复正常。

硬件和软件看门狗的差别
  经过改良升级,研发人员使用了硬件看门狗,上电瞬间就依赖上拉电阻形成的高脉冲开启看门狗,看门狗的延迟最迟喂狗时间为1.8S,评估升级+初始化时间最迟为1.2S,所以该看门狗芯片满足要求,一旦1.8S内应用程序还无法喂狗,则复位重启,问题得以解决。
硬件和软件看门狗的差别

5、总结

  软件和硬件的看门狗的最主要差异在于开启看门狗的时机,软件看门狗必须初始化(配置)看门狗才能使用,如果软件看门狗是厂商提供的SDK中的一个API接口,开发者又没有能力修改底层的uboot、内核,无法在uboot、内核阶段开启和喂狗,开启看门狗的时机就很晚了,程序就有可能还没有跑到看门狗初始化就挂了,中间的各种幺蛾子都不受控,就像上述的案例。
  而硬件看门狗开启则不受软件的约束,设备上电就可以依赖上拉电阻提供的高脉冲开启看门狗,只要软件不及时喂狗,就复位,这个是无条件的。所谓一分钱一分货,在电子产品也是适用的。
  当然,如果你能说服驱动工程师,能够在主芯片上电第一时间,就初始化和开启软件看门狗,理论上,软件看门狗也可以做的和硬件看门狗一样可靠。文章来源地址https://www.toymoban.com/news/detail-481490.html

到了这里,关于硬件和软件看门狗的差别的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 【Linux】进程信号 -- 信号产生 | 系统调用、硬件、软件的信号发送

    kill -l 是一个在 Linux 和 Unix 系统中使用的命令,用于列出可用的信号列表。 在Linux和Unix系统中,进程可以通过发送信号来与其他进程或操作系统交互。kill 命令可以向指定的进程发送一个特定的信号,以便对其进行控制,例如终止进程或重新启动进程等。 kill -l 命令会列出可

    2024年02月16日
    浏览(80)
  • 【Linux】1、操作系统、计算机硬件和软件、Linux 介绍

    🖥️ 计算机由 硬件 和 软件 组成 🖥️ 硬件:计算机中由 电子 、 机械 和 光电元件 等组成的各种物理装置的总称 🖥️ 如:CPU、内存、硬盘驱动器、光盘驱动器、各种扩展卡、连接线、电源、鼠标、键盘 🖱️ 软件(software): 用户和计算机硬件之间构建的桥梁 🖱️ 操作

    2023年04月26日
    浏览(46)
  • BMS电池管理系统纯硬件版,和软件版有什么区别?

    当今社会,电池已经成为人们生活和工作中不可或缺的重要组成部分。而电池的使用寿命、性能和安全性等问题一直是人们关注的焦点。为了保证电池的安全、高效和长寿命运行,BMS电池管理系统应运而生。 BMS电池管理系统通常由硬件和软件两部分组成,其中 硬件版BMS 和

    2023年04月23日
    浏览(51)
  • 在STM32上实现一个数据采集和存储系统(单片机软件与硬件)

    1. 硬件选择: 选择合适的STM32系列微控制器,根据采集数据的要求选择处理器型号和性能。同时,根据需要考虑外设模块,如ADC、SPI、I2C等。 2. 连接传感器: 根据需要选择合适的传感器,并将传感器与STM32的相应引脚连接。注意检查引脚的电平和电流要求,确保接口匹配。

    2024年02月03日
    浏览(50)
  • Spring Cloud+Uniapp+企业工程管理系统源码之提高工程项目管理软件的效率

     高效的工程项目管理软件不仅能够提高效率还应可以帮你节省成本提升利润 在工程行业中,管理不畅以及不良的项目执行,往往会导致项目延期、成本上升、回款拖后,最终导致项目整体盈利下降。企企管理云业财一体化的项目管理系统,确保项目的顺利完成,并帮助提升

    2024年02月16日
    浏览(49)
  • 【干货】Android系统定制基础篇:第十六部分(双屏异触、定时开关机与看门狗)

    在双屏异显产品中,有时候主副屏都带有触摸屏,并且要求主副屏触摸各自操作互不干扰。 Android 现有框架中已经支持副输入设备的逻辑,只是默认将所有的外部热插拔设备统一指定为副输入设备,这种逻辑我们如果是一个 I2C 加上一个 USB 触摸那么默认就可以支持,USB 触摸

    2024年02月10日
    浏览(48)
  • 软件or硬件?硬件的前途到底在哪里?

    一、硬件明明比软件更难,国内的硬件技术也不如软件,为什么硬件工程师待遇还不如软件? 1、不需要太高层次的硬件设计,比如大部分小家电企业,简单的电子产品企业,单片机+简单外围设计就够了,单片机+屏幕+继电器控制+电源就是一个完整的产品板,工作2年有实际经

    2023年04月27日
    浏览(34)
  • 菜狗的KMP学习

    为什么我们要学习KMP呢?这就不得不说起当年暑假在校队集训的时候, 苦逼 做不出题目的痛苦时光了。 三个人看着题目中字符串匹配的那个环节,思索了整整三个小时。 不得不说,从0到1,远比在前人的肩膀上前行要难得多。真不知的这些 变态 大佬 是怎么想出来的。 先来

    2024年03月27日
    浏览(42)
  • 硬件,固件,软件的区别

    参考链接:What is the Difference Between Hardware, Firmware and Software? 简单来说,三者的定义为: 硬件 是系统的物理部件,比如主板,处理器,内存条,硬盘等等 固件 存储在ROM(只读存储器)中,负责底层任务及引导系统 软件 在运行时存储在RAM(随机存储器),并且可以被处理器执

    2024年02月14日
    浏览(71)
  • 从硬件结构到软件

       先说说体系冯诺依曼的体系结构,有利于我们后面理解操作系统,软件再怎么发展,也必须遵守硬件的规则。 如下图: 1   为什么要有输入输出设备     很久以前,我们都是把指令打成孔,有孔无孔表示0,1,让计算机读,输出也是对一张纸进行打孔,输出0, 1,为了普及,

    2024年02月07日
    浏览(48)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包