微波EDA网,见证研发工程师的成长!
首页 > 硬件设计 > 嵌入式设计 > Reset与嵌入式系统应用的稳定性

Reset与嵌入式系统应用的稳定性

时间:01-09 来源:互联网 点击:

eSoC芯片,硬件结构如图3所示,主要包括一个8051的MCU核和ZigBee收发器。调试时,发现ZigBee模块快速关机然后快速开机,即二次开机时不稳定,有时启动不正常,功能不能实现。在软件里加Trace信息,发现当快速开关机时MCU并没有正常启动,没有进入所需要的初始化和主循环。避免快速关机开机,则可以正常启动。当嵌入式系统关机后立即再开机,有时不能正常工作,是因为复位不充分,这是嵌入式系统的共同点。



最后发现,由于SoC芯片里有内部POR,所以片外没有加RC复位电路。而工作电源VDD_3V上有20μF电容,下电时不能快速放电。添加外部RC复位电路(100 kΩ电阻和1μF电容),延长复位时间,电源稳定后再取消复位。Reset功能在芯片上下电时更稳定,问题得以解决。有时候电阻电容这种“小器件”往往可以解决“大问题”。

3电压检测复位

为了防止系统在上电、突然掉电或者电网瞬间欠压引起嵌入式系统操作失误,更常用和有效的方法是采用具有复位信号输出的电压监测电路。电压监测电路提供多种保护功能:在系统上电、瞬间欠压时提供系统复位信号;系统突然断电、瞬间欠压时输出监测信号,以供系统实施保护措施,如数据保护、I/O安全设置;可连接备用电源,保证备用电源的投、切控制。

对于供电系统的容差范围较大、压值精度较低的情况,或者是遇到电网长期工作在欠压状态下时,可能会造成系统在正常工作条件下频繁复位。这种情况更应该监控电源电压,当监测到电压波动时,监控芯片向处理器发送电压异常信号,处理器响应该信号并中断正在运行的程序,进入掉电保护子程序,设置复位状态寄存器,避免下次上电时由于寄存器状态错误而无法启动上电复位。



电压监测复位,可以解决电源毛刺等造成系统不稳定。复位电路可以采用分立元件搭建,目前常用专用集成电路芯片,阈值电压和复位信号有些可通过编程修改。图4是一个典型的电压监控复位芯片与微处理器的连接图。

4看门狗复位

看门狗复位(即程序运行监视复位)可保证程序非正常运行时能及时进入复位状态。看门狗分硬件看门狗和软件看门狗。



4.1硬件看门狗复位

硬件看门狗的基本原理是,为电路提供一个用于监视系统运行的信号线,当系统正常运行时,应在规定的时间内给信号线提供一个特定信号;如在规定的时间内无这个信号,自动复位电路就认为系统运行不正常,并重新对系统进行复位。具体方式是通过处理器的定时复位计数器来实现。此复位电路的可靠性还与软件有关,即将向复位电路发出脉冲的程序放在何处,在哪里插入“喂狗”指令,需作优化。

硬件看门狗复位主要有三种形式:使用内部带WDT功能单元的电路,外部增设WDT电路和专用集成WDT芯片。图5是一个看门狗芯片的工作方式图。

4.2软件复位

软件复位可以节约电路板的空间和成本;软件复位方式更灵活,更便捷。尤其是对一些功能模块或者外设的监控,借鉴硬件看门狗思想,采用软件看门狗更有优越性。用软件来监测功能模块或者外设的工作情况,一旦认为功能模块或者外设工作异常,通过设定特殊的标记,达到Reset判据时,则通过处理器强行复位并重新初始化工作异常的功能模块或者外设,而其他功能模块或者外设照常工作。当然,有时也需要重新复位并初始化整个系统,使系统更稳定地运行。有些系统人为操作硬件复位(按键复位或者上下电)很不方便时,或者有些系统和产品不便于让用户知道其重启时,就可采用软件复位。

4.3实例分析:手机找网问题

笔者做过一个功能手机(feature phone)项目,由于手机平台刚推出,平台不太稳定,软件存在一些Bug,尤其是底层Layer1部分。手机找不到网,或者手机有网但过一段时间又没有网的现象,发生概率很小,很难Debug.当时软件找了很长时间的Bug,并把问题反馈给平台厂商,但没能及时给出解决方法。情急之下,只好做了应急之便,采用软件复位的方法来救急。

在RTOS实时多任务操作系统软件中,添加一任务,设置网络状态标志位来监视网络状态,当手机没有信号时设置某标志;通过适当的判据,确认是否Reset,如果达到Reset条件就迅速地软件复位,软件重新初始化,如图6所示。复位过程只能是“偷偷地”快速进行,不能让用户察觉,否则用户体验极为不好;要保持用户界面,底层快速重启,不知不觉地完成重启。重启后,网络正常,用户使用正常,巧妙地缓解,当然最终还是从本质上去解决问题。

5外设的复位及稳定性设计

5.1外设复位的特殊性与可控性

嵌入式系统通常有LCD显示、摄像头和无线通信模块等外设。外设正常工作

Copyright © 2017-2020 微波EDA网 版权所有

网站地图

Top