1、80C51 单片机的上电复位 POR(Pmver On Reset)实质上就是上电延时复位,也就是在上电延时期间把单片机锁定在复位状态上。为什么在每次单片机接通电源时,都需要加入一定的延迟时间呢?分析如下。1 上电复位时序在单片机及其应用电路每次上电的过程中,由于电源同路中通常存在一些容量大小不等的滤波电容,使得单片机芯片在其电源引脚 VCC 和 VSS 之间所感受到的电源电压值VDD,是从低到高逐渐上升的。该过程所持续的时间一般为 1100ms(记作 tsddrise)。上电延时 taddrise 的定义是电源电压从 lOVDD 上升到 90VDD 所需的时间,如图 1 所示。在单片机电源电
2、压上升到适合内部振荡电路运行的范围并且稳定下来之后,时钟振荡器开始了启动过程(具体包括偏置、起振、锁定和稳定几个过程)。该过程所持续的时间一般为 150 ms(记作 tOSC)。起振延时 tOSC 的定义是时钟振荡器输出信号的高电平达到 Vih1 所需的时间。从图 1 所示的实际测量图中也可以看得很清楚。这里的 Vih1 是单片机电气特性中的一个普通参数,代表 XTALl 和 RST 引脚上的输入逻辑高电平。例如,对于常见的单片机型号 AT89C5l 和 AT89S5l,厂家给出的 Vih1 值为07VDDVDD+05V。从理论上讲,单片机每次上电复位所需的最短延时应该不小于 treset。这
3、里,treset 等于上电延时 taddrise 与起振延时 tOSC 之和,如图 1 所示。从实际上讲,延迟一个 treset往往还不够,不能够保障单片机有-一个良好的工作开端。在单片机每次初始加电时,首先投入工作的功能部件是复位电路。复位电路把单片机锁定在复位状态上并且维持一个延时(记作 TRST),以便给予电源电压从上升到稳定的一个等待时间;在电源电压稳定之后,再插入一个延时,给予时钟振荡器从起振到稳定的一个等待时间;在单片机开始进入运行状态之前,还要至少推迟 2 个机器周期的延时,如图 2 所示。2 上电复位电路 3 款上述一系列的延时,都是利用在单片机 RST 引脚上外接一个 RC
4、支路的充电时间而形成的。典型复位电路如图 3(a)所示,其中的阻容值是原始手册中提供的。在经历了一系列延时之后,单片机才开始按照时钟源的工作频率,进入到正常的程序运行状态。从图 2所示的实测曲线中可以同时看到 4 条曲线:VDD、Vrst、XTAL2 和 ALE。在电源电压以及振荡器输出信号稳定之后,又等待了一段较长的延时才释放 RST 信号,使得 CPU 脱离复位锁定状态;而 RST 信号一旦被释放,立刻在 ALE 引脚上就可检测到持续的脉冲信号。由于标准 80C51 的复位逻辑相对简单,复位源只有 RST 一个(相对新型单片机来说,复位源比较单一),因此各种原因所导致的复位活动以及复位状态
5、的进入,都要依靠在外接引脚 RST 上施加一定时间宽度的高电平信号来实现。标准 80C5l 不仅复位源比较单一,而且还没有设计内部上电复位的延时功能,因此必须借助于外接阻容支路来增加延时环节,如图 3(a)所示。其实,外接电阻 R 还是可以省略的,理由是一些 CMOS 单片机芯片内部存在一个现成的下拉电阻 Rrst。例如,AT89系列的 Rrst 阻值约为 50200k; P89V51Rx2 系列的 Rrst 阻值约为 40225 k,如图 4 所示。因此,在图 3(a)基础上,上电复位延时电路还可以精简为图 3(b )所示的简化电路(其中电容 C 的容量也相应减小了)。在每次单片机断电之后,
6、须使延时电容 C 上的电荷立刻放掉,以便为随后可能在很短的时间内再次加电作好准备。否则,在断电后 C 还没有充分放电的情况下,如果很快又加电,那么 RC 支路就失去了它应有的延迟功能。因此,在图 3(a)的基础上添加一个放电二极管 D,上电复位延时电路就变成了如图 3(c)所示的改进电路。也就是说,只有 RC支路的充电过程对电路是有用的,放电过程不仅无用,而且会带来潜在的危害。于是附加一个放电二极管 D 来大力缩短放电持续时间,以便消除隐患。二极管 D 只有在单片机断电的瞬间(即 VCC 趋近于 0V,可以看作 VCC 对地短路)正向导通,平时一直处于反偏截止状态。3 上电复位失败的 2 种案
7、例分析假如上电复位延迟时间不够或者根本没有延时过程,则单片机可能面临以下 2 种危险,从而导致 CPU 开始执行程序时没有一个良好的初始化,甚至陷入错乱状态。在时钟振荡器输出的时钟脉冲还没有稳定,甚至还没有起振之前,就因释放 RST 信号的锁定状态而放纵 CPU 开始执行程序。这将会导致程序计数器 PC 中首次抓取的地址码很可能是 0000H 之外的随机值,进而引导 CPU 陷入混乱状态。参考图 5 所示的实测信号曲线。在电源电压还没有上升到合适范围之前(自然也是时钟尚未稳定之前),就释放RST 信号的锁定状态,将会使单片机永远感受不到复位信号、经历不到复位过程、包含PC 在内的各个 SFR
8、内容没有被初始化而保留了随机值,从而导致 CPU 从一个随机地址开始执行程序,进而也陷入混乱状态。参考图 6 所示的实测信号曲线。4 外接监控器 MAX810x为了提高单片机应用系统的稳定性,以及保障单片机应用系统的可靠复位,许多世界著名的半导体公司,陆续推出了种类繁多、功能各异、封装微小的专用集成电路。本文仅以带有电源电压跌落复位和上电延迟复位功能的 3 脚芯片 MAX810x 为例,简单说明。MAX810x(x=L 、M、J 、T、S 或 R)是美国 Maxim 公司研制的一组 CMOS 电源监控电路,能够为低功耗微控制器 MCU(或 C)、微处理器 MPU(或 P)或数字系统监视 35V
9、 的电源电压。在电源上电、断电和跌落期间产生脉宽不低于 140ms 的复位脉冲。与采用分立元件或通用芯片构成的欠压检测电路相比,将电压检测和复位延时等功能集成到一片 3 引脚封装的小芯片内,大大降低了系统电路的复杂性,减少了元器件的数量,显著提高了系统可靠性和精确度。应用电路如图 7 所示。MAX810x 系列产品提供高电平复位信号,并且还能提供 6 种固定的检测门限(463V 、438V、4OOV、308V、2 93V 和 263V)。例如,MAX810M 的检测门限电压就是 438V ,回差电压约为 O16V。对于 MAX810,在电源上电、断电或跌落期间,只要 VCC 还高于 11V,就
10、能保证RESET 引脚输出高电压。在 VCC 上升期问 RESET 维持高电平,直到电源电压升至复位门限以上。在超过此门限后,内部定时器大约再维持 240 ms 后释放 RESET,使其返回低电平。无论何时只要电源电压降低到复位门限以下(即电源跌落),RESET 引脚就会立刻变高。关于 MAX8lO 芯片的更多信息,可以参考该器件的产品手册。在和一人聊天时,遇到了一个问题,单片机复位的问题,实在是很高深啊,因为一般书里是不说的,所以上网看看,转载于下:/问题/1、单片机要完成复位,为什么复位信号必须至少持续 2 个机器周期啊。2、复位期间单片机在做什么?主要是这 2 个机器周期内在做什么。3、
11、单片机上电之后复位之前,单片机在做什么?/答案/1.复位信号要持续一定的时期,因为检测复位信号状态首先需要一定的时间,其次是为了单片机状态的稳定。2.主要做的就是初始化每个寄存器,包括最重要的 PC 指针,不包括 RAM,然后单片机从复位地址开始执行程序。3.单片机上电后,上电复位信号使单片机被锁定在复位状态直到复位信号撤销。复位信号一上电就有,但是这时单片机并不执行复位操作,首先要等 Vcc 稳定、然后晶振开始起振、振荡稳定后才执行两周期的复位操作(晶振没起振 CPU 怎么操作啊)。因此单片机上电之后复位之前单片机不操作,状态稳定。开始复位操作时(振荡稳定后,也就是 2 周期开始)RESET
12、 信号仍然使单片机锁定在复位状态,但 CPU 执行 PC 指针、SFR等的复位操作。所以从上电到复位信号撤销前,单片机的状态一直是稳定的,单片机程序跑飞是由于复位信号的保持时间小于这个过程所需的时间,也就是 PC 指针、SFR 等还没复位,复位信号就撤销了而放任 CPU 执行,从而导致程序跑飞、单片机混乱等现象。复位信号的保持时间跟复位电路的设计有关。/ 在电路中,使用电阻给电容充电, 使电容的电压缓慢上升一直到 VCC,在还没有到 VCC时,芯片复位脚近似低电平, 但是芯片复位,接近 VCC 时,芯片复位脚近高电平,导致芯片停止复位,此时复位完成,整个电路循环运行.这个电路就叫做复位电路。它
13、主要为了能保证微型机系统得到稳定可靠的工作。目录 复位电路的分类 复位电路的 Multisim 仿真 电源和复位电路设计 利用自动复位电路保护辅助输出复位电路的分类 单片机复位电路主要有四种类型:(1)微分型复位电路:(2)积分型复位电路:(3)比较器型复位电路:比较器型复位电路的基本原理。上电复位时,由于组成了一个 RC 低通网络,所以比较器的正相输入端的电压比负相端输入电压延迟一定时间.而比较器的负相端网络的时间常数远远小于正相端 RC 网络的时间常数, 因此在正端电压还没有超过负端电压时,比较器输出低电平,经反相器后产生高电平. 复位脉冲的宽度主要取决于正常电压上升的速度. 由于负端电压
14、放电回路时间常数较大,因此对电源电压的波动不敏感.但是容易产生以下二种不利现象:(1)电源二次开关间隔太短时,复位不可靠:(2)当电源电压中有浪涌现象时,可能在浪涌消失后不能产生复位脉冲。为此,将改进比较器重定电路, 如图 9 所示. 这个改进电路可以消除第一种现象, 并减少第二种现象的产生.为了彻底消除这二种现象, 可以利用数字逻辑的方法和比较器配合, 设计的比较器重定电路。此电路稍加改进即可作为上电复位和看门狗复位电路共同复位的电路,大大提高了复位的可靠性。(4)看门狗型复位电路.看门狗型复位电路主要利用 CPU 正常工作时,定时复位计数器,使得计数器的值不超过某一值;当 CPU 不能正常
15、工作时, 由于计数器不能被复位,因此其计数会超过某一值,从而产生复位脉冲,使得 CPU 恢复正常工作状态. 此复位电路的可靠性主要取决于软件设计, 即将定时向复位电路发出脉冲的程序放在何处.一般设计, 将此段程序放在定时器中断服务子程序中.然而,有时这种设计仍然会引起程序走飞或工作不正常. 原因主要是:当程序“走飞“发生时定时器初始化以及开中断之后的话,这种“走飞“ 情况就有可能不能由 Watchdog 复位电路校正回来.因为定时器中断一真在产生, 即使程序不正常,Watchdog 也能被正常复位.为此提出定时器加预设的设计方法.即在初始化时压入堆栈一个地址,在此地址内执行的是一条关中断和一条
16、死循环语句.在所有不被程序代码占用的地址尽可能地用子程序返回指令RET 代替.这样 ,当程序走飞后, 其进入陷阱的可能性将大大增加.而一旦进入陷阱,定时器停止工作并且关闭中断,从而使 Watchdog 复位电路会产生一个复位脉冲将 CPU 复位. 当然这种技术用于实时性较强的控制或处理软件中有一定的困难。复位电路的 Multisim 仿真 复位电路的 Multisim 仿真结果如图所示。在图中,当电源电压上升到一定值时,复位信号跳高使控制部分正常工作。图中,处于上方的信号是电压信号,处于下方的信号是复位信号。图 复位电路波形电源和复位电路设计 TMS320C5409 型号 DSP 采用 33V
17、 和 18V 电压供电,其中 IO 采用 33V电压,芯片内核采用 18V 电压,内核采用低电压供电可以降低整个芯片的工作功耗。本节介绍 TPS73xx 系列的电压转换芯片,它们是 TI 公司为了配合 C54xx 系列 DSP 而专门设计的电压转换芯片。TPS73xx 系列的电压转换芯片包括 3 种固定输出电压的稳压器:TPS7333(33V)、TPS7348(485V)以及 TPS7350(5V )。同时,该系列还提供输出可调的低降落稳压器(LDO)TPS7301(12 975V )。此外,TPS73xx 系列的 LDO 和早期的 LDO 电压转换芯片相比有许多优点,例如改进节省功率的关断方
18、式,增加电源电压监控作用等。常规的 LDO 稳压器采用 PNP 通路元件。PNP 通路元件的基流正比于通过稳压器的负载电流,其实际工作电流比典型的静态电流和负载电流关系曲线中给出的电流大。因此,采用 PNP 通路元件的电压转换芯片,可能会导致常规的 LDO 稳压器进人降落状态,从而使电流趋于饱和,为了维持负载电流,此时 PNP 通路元件的基极电流就会增加。如果这种情况发生在芯片上电期间,会导致较大的启动电流,而限制的电源电流无法满足启动电路,将使启动失败。因此,当负载变化时,常规 LDO 稳压器可能无法正常工作。TPS73xx 系列 LDO 克服了常规 LDO 稳压器的弊端,它具有非常低的静态
19、电流,即使对于变化较大的负载,静态电流仍能保持稳定。TPS73xx 系列 LDO 采用晶石金属氧化物半导体(PMOS,Pachnolite MetalOxideS emiconductor)晶体管来传送电流。PMOS 元件的栅极是电压驱动的,所要求的工作电流较低,且在全负载范围内其工作电流能保持不变。因而采用 PMOS 通路元件的电压转换芯片,即使稳压器处于降落状况,静态电流仍然保持较低值。所以当负载发生变化时,TPS73xx 系列 LDO 仍能正常工作。TPS73xx 的另一个特点是具有关断特性。当关断时,可以使电源输出处于高阻状态(基本上等于反馈分压电阻),并使静态电流减至 05A 以下。
20、当不使用关断特性时,器件对使能端的跃变可以迅速做出反应,通常在 120s之后可重新建立起稳定的输出电压。TPS73xx 上电时,输出电压跟踪输入电压。由于 R 巳 SET 输出是漏极开路的NMOS,所以应当使用上拉电阻,以确保显示逻辑信号为高电平。因此,当输入电压接近有效 RESET 信号所需的最小值(250 时规定为 15V,在整个推荐工作范围内为19V)时,RESET 输出有效(低电平);当输出电压达到合适的正向输入门限时,200s(典型值)的超时周期开始(在此周期内,RESET 输出保持低电平);一旦超时周期结束,RESET 输出便变为无效。在欠压状态下,TPS73xx 的 RESET
21、输出能启动复位信号,该信号能实现对 DSP 的复位。TPS73xx 通过内部的比较器来监视稳压器的输出电容,从而检测输出电压是否处于欠压状态。当欠压状态发生时,RESET 输出晶体管导通,使 RESET 信号变为低电平。TPS73xx 电源掉电时,电源电压监控作用将被激活。当输人电压下降且达到降落电压时,输出电压将随输人电压的下降而线性地下降。当输出电压降至低于规定的负向输人门限以下时,RESET 输出变为有效(低电平)。如果输人电压降至有效 RESET 所需的最小值以下,那么 RESET 是不确定的。因为电路具有监视稳压器输出电压的作用,所以RESET 输出可以被禁止稳压器触发,或者被任何能
22、导致输出降至规定的负向输人门限以下的故障状态(如输出短路和低输入电压等)触发。如果输出电压恢复正常(如故障排除后,稳压器恢复正常供电),内部定时器将被启动,它将在 200s(典型值)的超时周期内使RESET 信号保持有效。TPS73xx 电路中输入和输出电容的选择。TPS73xx 不需要输入电容。但当它离电源的距离大于几英寸时,瓷片旁通电容(0047pF 至 01F)可以改进负载的瞬态响应。如果有快速上升时间的大负载瞬变(数百毫安),就必须使用大容量的电解电容。通常必须选择和 TPS73xx 相匹配的输人和输出电容。如果输入和输出电容选择不适当,那么瞬变负载或电源脉冲可能导致 TPS73xx
23、复位信号的产生。如果使用的 ESR 输出电容较高,那么快于 5s的负载瞬变可能产生 TPS73xx 复位信号。如果瞬变宽度很窄,那么瞬变期间内,输出电压的尖峰可以低于复位门限而不触发 TPS73x 的复位电路。在触发复位电路之前,1s 的瞬变必须降至比门限低 500mV。2s 的瞬变可以在刚好低于门限 400mV处触发 RESET。ESR 的输出电容低,可以通过减少瞬变期间输出电压的下降而有助于正常工作,当预期可能发生快瞬变时,应当使用低 ESR 的输出电容。TPS73xx 和外部设备的连接。为了保证稳压器正常工作,外部设各的传感器输出端必须连接到 TPS73xx 稳压器的输入端,在 TPS73xx 系列电压转换芯片的内部,电源通过电阻分压网络连接至高阻宽带放大器,噪声拾取反馈通至稳压器输出,这两个端点之间的连线应尽可能短。但是远程检测时,外部设各的传感器输出端可以在关键处进行连接,以改进连接的性能。连接的布线方式应该尽量避免噪声拾取或使噪声拾取为最小。尽量不要在传感器和稳压器输出之间加 RC 网络来滤除噪声,因为这样可能会引起稳压器振荡。TPS7301 的硬件连接如图 1 所示。图 1 TPS7301 的连接图 1 的外部电阻分压器可调整稳压器输出电压。控制稳压器输出电压的关系如下: