登录站点

用户名

密码

复位模块设计

已有 1416 次阅读  2009-09-27 16:36   标签模块  复位  设计 

ARM系统复位电路的结构并不复杂,且参考电路的形式较多。但是,在嵌入式系统设计中,由于ARM复位模块的复杂性,因此其外部的复位电路设计也是一种复杂而重要的设计工作,设计时也不能轻视。

1实例说明

在嵌入式应用系统的设计中,复位问题是ARM设计中一个基本而又重要的问题,复位电路的设计是相当重要的一步。复位的目的是为了在仿真时将设计强制定位在一个可知状态,合理选择复位方式是电路设计的关键。在ARM的应用系统中,会经常要求进入到复位状态,因此要求系统的复位电路必须能够准确、可靠地工作。同时,在ARM设计中不论是采用同步复位还是异步复位,复位信号都必须尽量与时钟信号同步,否则设计可能被复何到一个无效状态。

本实例给出了ARM的不同复位类型,以及基于ARM处理器的嵌入式系统复位电路的设计方法,并且给出复位硬件电路及其测试方法。

2 ARM复位原理

2.1 ARM复位源类型

     ARM处理器的复位源类型如表10-1所示,包括上电复位、外部硬件复位、内部硬复位(包括锁相环失锁复位、软件看门狗复位、检错停机复位和调试端口硬复位)、JTAG复位、外部软件复位和内部软件复位(包括调试端口软复位和JTAG软复位)。


所有的这些复位源都被引入到复位控制器,并且根据不同的复位源产生不同的复位动作。
ARM处理器还内置有复位控制器和硬件复位配置控制器,其中的复位控制器功能是确定复位原因、同步复位模块(若有必要的话),并且复位相应片内的逻辑模块(包括ARM嵌入式处理器模块、系统接口单元模块和通信处理器模块等)。
2.2复位工作原理
为保证ARM芯片在电源未达到所要求的电平时,不会产生不受控制的状态,必须在系统中加入电源监控和复位电路,由该电路确保在系统加电过程中,在内核电压和外围端口电压达到要求之前,ARM芯片始终处于复位状态,直到内核电压和外围接口电压达到所要求的电平。系统复位过程如图10-1所示。


同时,如果电源电压一旦降到门限值以下,则强制芯片进入复位状态,以确保系统稳定工作。对于复位电路的设计,一方面应确保复位低电平时间足够长(一般需要20ms以上),以保证ARM可靠复位;另一方面应保证稳定性良好,以防止ARM误复位。

一般应保证复位输入端(RS)低电甲至少持续6个时钟周期,即当时钟为20MHz时,为保让ARM芯片在电源未达到所要求的电平时,不会产生不受控制的状态,必须在系统中加入电源监控和复位电路,由该电路确保在系统加电过程中,在内核电压和外围端口电压达到要求之前,ARM芯片始终处于复位状态,直到内核电压和外围接口电压达到所要求的电平。

此外,ARM系统中还可以用硬件监控复位(看门狗电路,如硬件监控芯片MAX706等)。这是由于ARM系统的时钟频率较高,在运行时难以避免发生干扰和被干扰的现象,严重时系统会出现死机或程序异常现象,可以采用“看门狗”(Watch dog)电路来代替RC电路。这种电路除了具有上电复位功能外,还具有监视系统运行并在系统发生故障或死机时再次进行复位的能力。

该电路的功能为:当看门狗使能时,系统如果没有在规定时间间隔内对看门狗电路进行刷新,则产生复位信号,使系统重新从初始状态开始执行,以提高系统抗干扰能力。看门狗电路在上电复位后,应处于禁止状态,看门狗电路通过将系统控制寄存器O(Watchdog)中的控制位WDEN置1来使能。看门狗电路使能后,通过对看门狗刷新口做写操作,来刷新看门狗。

3硬件电路设计

3.1复位电路原理图

系统复位模块提供给ARM启动信号,是整个系统运行的开端。ARM的复位信号为RESET,如它有效,系统复位将由内部产生。RESET挂起程序,放ARM进复位状态。在电源打开已经稳定时,RESET必须保持低电平至少4个MCLK周期。本系统利用容阻电路设计的复位电路,如图10-2(a)所示,按键复位也可以设计成如图10-2(b)所示的形式。

如果电源芯片带有复位引脚,则可以输出低电平复位信号用于上电复位,可以不使用该复位信号。

如图10-2(a)所示,该复位电路的工作流程为:在系统上电时,通过电阻R1向电容C1充电,当C1两端的电压未达到高电平的门限电压时,Reset端输出为低电平,系统处于复位状态;当C1两端的电压达到高电平的门限电上压时,Reset端输出为高电平,系统进入正常工作状态。

当用户按下按钮s1时,C1两端的电荷被泄放掉,Reset端输出为低电平,系统进入复位状态,再重复以上的充电过程,系统进入正常工作状态。

    由一块74HC32D芯片搭成的两级非门电路用于按钮去抖动和波形整形,通过调整Rl
和C1的参数,可调整复位状态的时间。


3.2复位电路的调试

上电时ARM处于复位状态,RS为低电平使芯片复位。为了使芯片初始化正确,应保证RS为低至少持续5个CLKOUT周期,即当速度为25ns时约为125ns。但是,由于在上电后,系统的晶体振荡器往往需要几百毫秒的稳定时间,所以,RS为低的时间主要由系统的稳定时间所确定,一般为100~200ms。

电源部分工作正常之后,应该对ARM及其周边电路如复位电路进行调试,当然也可以进行简单的输出,这里用到了两个LED,同时这两个LED也是终端的两个控制输出。

对复位电路进行测试的过程是:断开IDE与核心板的连接,亦即断开JTAG调试接口,注意,在断开JTAG接口连接电缆前先断掉板上的电源。然后给核心硬件板加电,此时LED会有闪烁,等程序运行后一个LED会闪烁,按下复位键时,系统处于上电初始化期间,如果不松开复位键,所有的I/O口都会保持高电平,那么两个LED都会亮;松开复位键,程序重新开始运行。如果功能正常则复位电路调试完毕。

4看门狗软件复位

看门狗复位电路主要是利用ARM正常工作时,定时复位计数器,使得计数器的值不超过某一值;当ARM不能正常工作时,由于计数器不能被复位,因此其计数会超过某一值,从而产生复位脉冲,使得ARM恢复正常工作状态。

看门狗复位电路的可靠性主要取决于软件设计,即将定时向复位电路发出脉冲的程序放在何处,在一般设计中,将此段程序放在定时器中断服务子程序中。然而,有时这种设计仍然会引起程序工作不正常,原因主要是,当程序异常发生在定时器初始化及开中断之后时,这种情况就有可能不能由Watch dog复位电路校正回来。

因为定时器中断一直在产生,即使程序工作不正常,Watch dog也能被正常复位。为此可以使用定时器加预设的设计方法,即在初始化时压入堆栈一个地址,在此地址内执行的是一条关中断和一条死循环语句。在所有不被程序代码占用的地址尽可能地用子程序返回指令代替,这样,当程序异常后,其进入陷阱的可能性将大大增加。而一旦进入陷阱,定时器就会停止工作并且关闭中断,从而使Watch dog复位电路产生一个复位脉冲将ARM复位。

  看门狗应用程序如下所示。

 




5实例总结

在ARM嵌入式应用系统的设计中,保证ARM能够准确、可靠地复位,是ARM应用系统的重要环节。本章根据ARM复位模块的结构与特性,介绍了基于ARM处理器的嵌入式系统复位电路的设计方法,并且给出实用电路。

  在进行ARM处理器复位电路设计时需要注意如下问题。

  ·要正确理解上电复位、硬件复位、软件复位和测试复位的功能及其之间的区别。当上电复位有效时,可以产生处理器内部硬复位和软复位;当硬件复位时,可以产生处理器内部硬复位和软复位;但是,软件复位只能产生处理器内部的软复位。

  ·在进行具有下电模式的低功耗嵌入式系统复位电路设计时,由于要求上电复位电路    的供电来自带有电池的保持电源有效,因此在设计时应尽量选择低功耗器件作为复位电路的主器件。

上一篇: SDRAM模块设计 下一篇: A/D变换模块设计

分享 举报