嵌入式系统复位电路介绍

电子说

1.2w人已加入

描述

嵌入式系统的复位电路简介

本文介绍嵌入式系统的复位电路的功能,复位电路或者芯片类型和特点。

电路设计

复位电路是一种用来使电路恢复到起始状态的电路设计。为确保嵌入式系统中电路稳定可靠工作,复位电路是必不可少的一部分,复位电路的第一功能是上电复位。复位电路最简单的只有电阻和电容组合,复杂就有专门的芯片等配合程序来进行了。

嵌入式系统的“复位”,其作用就是通过相关复位电路产生“复位信号”让嵌入式主控能在上电后或者运行中恢复到默认的起始状态。“复位”动作之后嵌入式主控会产生一系列的重置操作,例如I/O口默认的模式和状态、相关寄存器的默认取值、所有标志位的状态重置、通信/定时相关的数据内容设定等等。

由此可见,复位的意义就是让嵌入式主控相关单元进行初始重置且程序从内存起始地址重新执行 。

要让嵌入式主控正确复位就需要在RST引脚(等同于RESET引脚)上产生符合复位要求的有效信号,有的嵌入式主控需要高电平复位信号,有的则需要低电平复位信号。

名称:

1)复位脉冲宽度(Reset Pulse Width,时间)

以经典51单片机高电平复位为例,单片机正常运行时RST引脚应保持低电平。当需要复位时应拉高RST引脚的电平,并维持“系统时钟源、内部电路单元稳定周期+2个机器周期”的时间长度( 为保证有效复位,复位信号应持续20至200ms为宜 ),就是复位脉冲宽度。

2)POR(Power On Reset)/ Power-down Reset/ Brown-out Reset

(上电复位/掉电复位/欠压复位)

上电复位电路POR电路在芯片上电后会产生一个内部复位脉冲并使器件保持静态,直至电源电压达到稳定阈值后再释放复位信号。

欠压保护功能是当输入电压VIN低于正常工作所需的电压时停止开关工作的保护功能。

3)WDT(Watch Dog)

中文名为看门狗。是一个定时器电路,一般有一个输入,叫喂狗,一个输出到MCU的RST端,MCU正常工作的时候,每隔一段时间输出一个信号到喂狗端,给 WDT 清零,如果超过规定的时间不喂狗,(一般在程序跑飞时),WDT 定时超过,就会给出一个复位信号到MCU,使MCU复位. 防止MCU死机. 看门狗的作用就是防止程序发生死循环,或者说程序跑飞。

一般来说,复位电路主要有简单的阻容复位,复位芯片,看门狗复位芯片三种 。

1、阻容式复位电路

常见的阻容式微分复位电路如图1(a)所示,电路中的“Reset”电气网络节点连接至单片机“RST”引脚。该电路上电后的波形如图1(b),其波形在上电后先是高电平,经过100ms后跌落到了1V以下最终保持低电平状态,我们常将其称为“高电平”复位电路。

电路设计

(a)

电路设计

(b)

图1 微分型高电平复位电路原理图

分析阻容复位电路,该电路的组成十分简单,其核心实现仅有1个电阻和1个电容组成,外加的S1按键主要实现手动复位功能,当S1按下时“Reset”电路网络节点被强制拉高实现复位。在设计该电路时一定要先根据单片机工作的时钟频率去考虑阻容的取值,若系统选用12MHz石英晶振,则1个机器周期就是1us,复位信号的脉冲宽度最小也要2us以上,但是真正设计时最好不要贴近理论值去构造电路,复位信号脉冲宽度最好是20至200ms为宜。当晶振频率大于或等于12MHz时,常见取值C1为10uF,R1为10k。当系统上电时C1相当于通路,“Reset”电气网络上电瞬间为高电平,随着R1不断泄放C1的电荷,“Reset”电气网络的电压逐渐降低,最终降到低电平区间。在放电的过程中“Reset”电气网络的高电平持续了100ms左右才跌落到1V以下,这远大于2个机器周期的复位时间要求,即复位有效。

阻容式复位电路非常简单,成本也很低,但可靠性确实不高。首先来说,阻容器件本身存在器件误差,误差会直接导致RC时间常数和充放电时间的差异,批量制造时难以保证产品的一致性。其次,阻容器件存在老化现象和温漂问题,在长期使用或者严苛温度环境中容易造成较大误差导致失效。最后,简单的阻容复位电路会有电容的迟滞充放电问题,导致复位信号可能不满足复位电平阈值要求,且面对来自电源的波动或者快速开关机情况会出现无法复位的问题。

可能有的朋友还是不满意这种RC充放电电路产生的复位波形,能不能有什么电路或者器件使用简单又能产生类似方波一样的复位波形呢?答案是肯定的,想要高可靠复位单元可以选择专用的复位监控芯片。集成度的提高使抗干扰能力和温度适应性都得到了大幅提高,可以保证系统在不同的异常条件下进行可靠的复位。其原理其实是通过确定的电压阈值启动复位操作,同时排除瞬间干扰的影响,又有防止单片机在电源启动和关闭期间的误操作效果,以保证程序的正常执行。

2.专用复位芯片

电路设计

电路设计

LM809和LM810微处理器监控电路可用于监控微处理器和数字系统中的电源。它们在上电、掉电和欠压条件下为微处理器提供复位。该LM809和LM810的功能是监控VCC电源电压,每当此电压下降低于工厂编程复位阈值,就产生复位信号。在VCC上升到阈值以上之后,复位信号在240 ms内保持有效。该LM809具有低电平有效复位输出,而LM810具有高电平有效复位输出。七个标准复位电压选项可供选择,适用于监测5-V,3.3-V和3-V电源电压。LM809具有仅15 A的低电源电流。

3、看门狗集成电路 (IC)

电路设计

中文名为看门狗。是一个定时器电路,一般有一个输入,叫喂狗,一个输出到MCU的RST端,MCU正常工作的时候,每隔一段时间输出一个信号到喂狗端,给 WDT 清零,如果超过规定的时间不喂狗,(一般在程序跑飞时),WDT 定时超过,就会给出一个复位信号到MCU,使MCU复位. 防止MCU死机. 看门狗的作用就是防止程序发生死循环,或者说程序跑飞。

工作原理:在系统运行以后也就启动了看门狗的计数器,看门狗就开始自动计数,如果到了一定的时间还不去清看门狗,那么看门狗计数器就会溢出从而引起看门狗中断,造成系统复位。所以在使用有看门狗的芯片时要注意清看门狗。

硬件看门狗是利用了一个定时器,来监控主程序的运行,也就是说在主程序的运行过程中,我们要在定时时间到之前对定时器进行复位如果出现死循环,或者说PC指针不能回来。那么定时时间到后就会使单片机复位。

软件看门狗技术的原理和这差不多,只不过是用软件的方法实现,我们还是以51系列来讲,我们知道在51单片机中有两个定时器,我们就可以用这两个定时器来对主程序的运行进行监控。我们可以对T0设定一定的定时时间,当产生定时中断的时候对一个变量进行赋值,而这个变量在主程序运行的开始已经有了一个初值,在这里我们要设定的定时值要小于主程序的运行时间,这样在主程序的尾部对变量的值进行判断,如果值发生了预期的变化,就说明T0中断正常,如果没有发生变化则使程序复位。对于T1我们用来监控主程序的运行,我们给T1设定一定的定时时间,在主程序中对其进行复位,如果不能在一定的时间里对其进行复位,T1 的定时中断就会使单片机复位。在这里T1的定时时间要设的大于主程序的运行时间,给主程序留有一定的的裕量。而T1的中断正常与否我们再由T0定时中断子程序来监视。这样就构成了一个循环,T0监视T1,T1监视主程序,主程序又来监视T0,从而保证系统的稳定运行。

1)看门狗定时器介绍以及重要性

看门狗定时器就像名流钱包上的小狗挂饰一样,通常将其视为无用之物或认为其太过复杂。然而,将两者直接相提并论无法体现看门狗的巨大价值。与“钱包狗”不同,看门狗为系统添加了重要的监控功能,用户可在内部和外部监控系统故障并在发生故障时采取相应措施。

2)那么,何为看门狗定时器?

简而言之,看门狗定时器是一种监控器件。如果其在特定时间范围内并未从处理器接收到周期性脉冲信号,就会将复位输出置为有效。一种实施方案是将处理器的数字信号输出(通用输入/输出)馈入外部看门狗定时器的看门狗输入,如图 1 所示。TPS3851 是一款集成看门狗定时器的监控器。它既可以监控微控制器 (MCU) 的电源轨,也可以从外部监控 MCU 发出的数字脉冲。

电路设计

图1 看门狗功能

处理器周期性地向看门狗定时器发送脉冲,指示系统软件是否正常运行。如果看门狗定时器在给定时间范围内并未接收到该脉冲(称为看门狗超时),看门狗定时器会将复位输出置为有效。

此复位输出可以通知系统处理器处于挂起或冻结状态,或直接将处理器复位。图 2 给出了在看门狗超时期间内接收的脉冲和看门狗超时结束后接收的脉冲。

电路设计

图 2 标准看门狗定时器的运行

3)看门狗定时器为什么如此重要?

看门狗定时器提供了一种在处理器软件处于冻结或挂起状态时,向系统发出报警或将处理器复位的方法。虽然软件冻结不是蓄意制造的设计问题,但优秀的系统设计人员应该事先制定故障应对方案,未雨绸缪永远最明智的做法。如果不实施此类监控,处理器可能无限期地处于冻结状态,导致更严重的系统故障。超时间隔可以调节的外部看门狗定时器(如 TPS3851)可以在数毫秒内识别出此类软件冻结问题并相应 地复位系统或处理器。在嵌入式或远程系统中,这项功能更加不可或缺,因为手动复位这类系统不可行,甚至根本无法 实现。安全因素至关重要的应用也需要使用外部看门狗,从而在系统的处理器可能冻结或挂起时为其添加关键冗余。

4)如何在嵌入式系统中使用看门狗定时器?

看门狗定时器的实施方案主要有两种:

● 使用集成看门狗功能的处理器。包括 MSP430F5529 系列在内的许多微控制器均集成了看门狗功能。它易于实施并且不需要额外使用集成电路,颇具实用价值。然而,此类产品有一点需要格外注意:集成看门狗可能无法一直按照预期的方式工作,因为导致MCU出现故障的代码问题也可能无意中禁用看门狗定时器。此外,软件需要以内部看门狗应能检测到任何冻结或挂起的方式编写。然而,采取额外措施,以冗余方式监控看门狗输入有助于解决代码中无法预料的错误。针对这种情况,德州仪器 (TI) 提供 TPS3431 等独立的看门狗定时器,帮助用户解决问题。

● 使用具有看门狗定时器的电压监控器。借助TPS3851 或 TPS3110 等具有看门狗定时器功能的监控器,用户能够以外部冗余方式监控电源电压和看门狗信号。如果处理器的内置看门狗未能检测到错误或丢失的脉冲,外部看门狗定时器将增加一个无法实现的检测级别。

看门狗定时器的功能在原则上并不是错综复杂的。但是,它在保障系统可靠性方面的重要性不言而喻。在发生故障时无法或很难人为启动系统复位 的情况下,尤为如此。

一般来说,绝大多数嵌入式主控(或者SOC),在芯片内部集成了片上复位电路:片内复位电路和WDT(Watch Dog)电路。但基于可靠性考虑,很多应用通常建议客户在嵌入式主控(或者SOC)外部添加硬件复位电路,通过控制嵌入式主控(或者SOC)的RST引脚,或者嵌入式主控(或者SOC)的供地电源来实现掉电复位。

打开APP阅读更多精彩内容
声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉

全部0条评论

快来发表一下你的评论吧 !

×
20
完善资料,
赚取积分