位置:51电子网 » 技术资料 » 其它综合

利用看门狗改善系统可靠

发布时间:2008/5/28 0:00:00 访问次数:565

目前,在许多情况下,设计人员会用软件实现以往由硬件才能完成的电路功能,其中部分原因是低成本的微处理器(μp)为大家提供了广泛的选择。软件常常是解决问题成本最低、灵活性最高的方案,但它也迫使设计人员进行一些额外的测试以确保系统的可靠性。当然,如果程序没有代码错误也就不存在上述问题,细心的测试能够在1000条指令中减少1至10条错误。而设计人员则希望在10,000条指令中出错率不要超过十处。

在台式机系统中出现导致系统瘫痪的软件错误并不可怕,因为用户只需重新启动系统即可,它只会造成少量数据的丢失。然而,对于运行在工控系统的软件,系统则必须能够在没有人为干预的条件下恢复故障。这一特性在两种情况下非常关键:一种是高有效性系统,如服务器、电话系统以及生产线等;另一种是高可靠性系统,因为这种系统一旦出现错误将造成伤害,如汽车、医疗设备、工业控制、机器人、自动门等。即使不考虑这些要求严格的应用,系统在无需用户干预的条件下自动(按下复位键或重新上电)从故障状态下恢复也是很有益处的,这种设备的好处是显而易见的,因为用户不希望设备内部出现问题。改善这类系统可靠性的一种简单、有效的措施是采用看门狗电路。

1看门狗

看门狗实际上是一个计数器,它需要在一定的看门狗延时周期内被清零,如果没有清零动作,看门狗电路将产生一个复位信号以使系统重新启动或建立一个非屏蔽中断(nmi)并执行故障恢复子程序。大多数看门狗电路是沿触发,这样,无论是上升沿还是下降沿触发看门狗的输入端(wdi)通常都能够清计数器。wdi引脚一般连接在处理器的一个i/0口,这条口线可由软件触发。图1所示是微处理器通过在wdl脚发送脉冲清除看门狗定时器以防止复位的连接方式,实际上,清看门狗计数器的命令必须在主程序内。如果看门狗没有被清零,复位后软件将从地址为0000(启动程序)的子程序处开始运行。计算主程序的运行时间往往很困难,因为在此期间可能需要多次调用子程序,这与系统输入有关。因此,设计人员常常选择看门狗延时周期远远高于测试到的或计算出的循环时间。图2所示是正常工作情况下(看门狗在延时周期内被请零)的看门狗信号和复位信号。图3所示为看门狗计数器溢出时引发一次复位的时序示意图。工业标准的看门狗电路延时周期一般在l00ms~2s范围内,当然,也有些可调节或定制的看门狗电路能够覆盖更宽的延时范围(30ms至几分钟)。如果主程序的执行时间对于看门狗电路而言过长,设计人员可以在主程序的不同部位多次执行看门狗触发命令,也可以选用看门狗延时周期更长的器件。


一种防止系统滞留在死循环的技术是在主程序的初始化部分将相应的i/o引脚置为高电平,而在主程序的另一部分将其置为低电子。如果软件在主程序的起始部分进入了死循环,由于wdi始终保持高电平,看门狗将产生延时输出而使系统复位。如果采用一个低-高-低的脉冲,看门狗将被清零,但系统仍处于阻塞状态。为解决这个问题,一种比较成熟的方法是对程序中的多项任务进行监视,并对每项任务设置一个标志,只有当全部标志置位后,看门狗电路才被触发。执行全部任务的时间要比看门狗超出周期短。在更复杂的系统中,还存在一些潜在问题,如存储器泄漏、堆栈溢出等,此时系统同样需要对这些情况进行监视,尽管对这些问题的讨论超出了本文的范围,但通过合理的程序设计、认真审核代码或采用特殊的软件工具也可以解决上述问题。


2 内部看门狗与外部看门狗

许多μp都集成了可编程看门狗功能,软件控制可禁止其工作。通常内置看门狗易受代码错误的影响,它无法提供外部独立看门狗电路所具有的保护能力,因此在对安全性能要求较高的应用中(如自动门、医疗设备、机器人等),内置看门狗是无法接受的,从而使管理层采用独立的外部看门狗电路。现利用外部看门狗电路降低高可靠性系统的风险是一个极好的尝试。


2.1简单的看门狗+复位

通常看门狗延时将重新复位系统,大多数看门狗电路与 μp复位集成在一起,它同时可以监视处理器的供电电压。在出现看门狗延时或电源电压跌落的情况下均可产生复位动作,max823~max825系列产品就包含了这两种功能,它们可提供标准的复位电压门限、标

目前,在许多情况下,设计人员会用软件实现以往由硬件才能完成的电路功能,其中部分原因是低成本的微处理器(μp)为大家提供了广泛的选择。软件常常是解决问题成本最低、灵活性最高的方案,但它也迫使设计人员进行一些额外的测试以确保系统的可靠性。当然,如果程序没有代码错误也就不存在上述问题,细心的测试能够在1000条指令中减少1至10条错误。而设计人员则希望在10,000条指令中出错率不要超过十处。

在台式机系统中出现导致系统瘫痪的软件错误并不可怕,因为用户只需重新启动系统即可,它只会造成少量数据的丢失。然而,对于运行在工控系统的软件,系统则必须能够在没有人为干预的条件下恢复故障。这一特性在两种情况下非常关键:一种是高有效性系统,如服务器、电话系统以及生产线等;另一种是高可靠性系统,因为这种系统一旦出现错误将造成伤害,如汽车、医疗设备、工业控制、机器人、自动门等。即使不考虑这些要求严格的应用,系统在无需用户干预的条件下自动(按下复位键或重新上电)从故障状态下恢复也是很有益处的,这种设备的好处是显而易见的,因为用户不希望设备内部出现问题。改善这类系统可靠性的一种简单、有效的措施是采用看门狗电路。

1看门狗

看门狗实际上是一个计数器,它需要在一定的看门狗延时周期内被清零,如果没有清零动作,看门狗电路将产生一个复位信号以使系统重新启动或建立一个非屏蔽中断(nmi)并执行故障恢复子程序。大多数看门狗电路是沿触发,这样,无论是上升沿还是下降沿触发看门狗的输入端(wdi)通常都能够清计数器。wdi引脚一般连接在处理器的一个i/0口,这条口线可由软件触发。图1所示是微处理器通过在wdl脚发送脉冲清除看门狗定时器以防止复位的连接方式,实际上,清看门狗计数器的命令必须在主程序内。如果看门狗没有被清零,复位后软件将从地址为0000(启动程序)的子程序处开始运行。计算主程序的运行时间往往很困难,因为在此期间可能需要多次调用子程序,这与系统输入有关。因此,设计人员常常选择看门狗延时周期远远高于测试到的或计算出的循环时间。图2所示是正常工作情况下(看门狗在延时周期内被请零)的看门狗信号和复位信号。图3所示为看门狗计数器溢出时引发一次复位的时序示意图。工业标准的看门狗电路延时周期一般在l00ms~2s范围内,当然,也有些可调节或定制的看门狗电路能够覆盖更宽的延时范围(30ms至几分钟)。如果主程序的执行时间对于看门狗电路而言过长,设计人员可以在主程序的不同部位多次执行看门狗触发命令,也可以选用看门狗延时周期更长的器件。


一种防止系统滞留在死循环的技术是在主程序的初始化部分将相应的i/o引脚置为高电平,而在主程序的另一部分将其置为低电子。如果软件在主程序的起始部分进入了死循环,由于wdi始终保持高电平,看门狗将产生延时输出而使系统复位。如果采用一个低-高-低的脉冲,看门狗将被清零,但系统仍处于阻塞状态。为解决这个问题,一种比较成熟的方法是对程序中的多项任务进行监视,并对每项任务设置一个标志,只有当全部标志置位后,看门狗电路才被触发。执行全部任务的时间要比看门狗超出周期短。在更复杂的系统中,还存在一些潜在问题,如存储器泄漏、堆栈溢出等,此时系统同样需要对这些情况进行监视,尽管对这些问题的讨论超出了本文的范围,但通过合理的程序设计、认真审核代码或采用特殊的软件工具也可以解决上述问题。


2 内部看门狗与外部看门狗

许多μp都集成了可编程看门狗功能,软件控制可禁止其工作。通常内置看门狗易受代码错误的影响,它无法提供外部独立看门狗电路所具有的保护能力,因此在对安全性能要求较高的应用中(如自动门、医疗设备、机器人等),内置看门狗是无法接受的,从而使管理层采用独立的外部看门狗电路。现利用外部看门狗电路降低高可靠性系统的风险是一个极好的尝试。


2.1简单的看门狗+复位

通常看门狗延时将重新复位系统,大多数看门狗电路与 μp复位集成在一起,它同时可以监视处理器的供电电压。在出现看门狗延时或电源电压跌落的情况下均可产生复位动作,max823~max825系列产品就包含了这两种功能,它们可提供标准的复位电压门限、标

相关IC型号

热门点击

 

推荐技术资料

罗盘误差及补偿
    造成罗盘误差的主要因素有传感器误差、其他磁材料干扰等。... [详细]
版权所有:51dzw.COM
深圳服务热线:13692101218  13751165337
粤ICP备09112631号-6(miitbeian.gov.cn)
公网安备44030402000607
深圳市碧威特网络技术有限公司
付款方式


 复制成功!