单片机抗干扰技术

摘 要

近年来,单片机在工业自动化、生产过程控制、智能仪器仪表等领域的应用越来越广泛,大大提高了产品的质量,有效地提高了生产效率。但是,测控系统的工作环境往往复杂、比较恶劣,尤其是系统周围的电磁环境,这对系统的可靠性与安全性构成了极大的威胁。单片机测控系统必须长期稳定、可靠运行,否则将导致控制误差加大,严重时会使系统失灵,甚至造成巨大损失。

本文主要介绍了单片机应用系统在工业现场中的干扰来源和这些干扰产生的影响,通过参考相关文献资料,并结合亲身经验,从软、硬件两个方面给出具体的解决方法及其应用。

关键词:单片机,应用系统,抗干扰技术,硬件设计,软件设计

第1章 单片机应用系统中的干扰

单片机由于其优异的性能价格比,被广泛地应用于各个领域。在工业控制、医疗器械、通讯等场合,对单片机的可靠性的要求越来越高。随着单片机种类越来越多,其功能越来越完善,硬件的设计也变得越来越简单。但在实验室里设计的控制系统,在安装、调试后完全符合设计要求,但把系统置入现场后,系统常常不能够正常稳定地工作。产生这种情况的原因主要是现场环境复杂和各种各样的电磁干扰,所以单片机应用系统的可靠性设计、抗干扰技术的应用变得越来越重要了。

1.1 干扰的主要来源

工业现场环境中干扰是以脉冲的形式进入单片机系统的,其主要的渠道有三条,即空间干扰,供电系统干扰,过程通道干扰。空间干扰多发生在高电压、大电流、高频电磁场附近,并通过静电感应,电磁感应等方式侵入系统内部;供电系统干扰是由于电源的噪声干扰所引起的;过程通道干扰是干扰通过前向通道和后向通道进入系统。

干扰一般沿各种线路侵入系统。系统接地装置不可靠,也是产生干扰的重要原因;各类传感器,输入输出线路的绝缘损坏均有可能引入干扰。

1.2 干扰产生的后果

各种干扰一旦侵入单片机应用系统,将使系统无法正常运行,甚至造成重大损失。干扰产生的后果,归纳起来,可概括为如下几个方面:

1、数据采集误差的加大

当干扰侵入单片机系统的前向通道叠加在信号上,会使数据采集误差增大,特别是前向通道的传感器接口是小电压信号输入时,此现象会更加严重。

2、程序运行失常

程序运行失常又可分为如下几种情况:

1)控制状态失灵:单片机输出的控制信号通常依赖于某些条件的状态输入信号和对这些信号的逻辑处理结果。若这些输入的状态信号受到干扰引入虚假状态信息将导致输出误差加大,造成逻辑状态改变,最终导致控制失常。

2)死机:外界的干扰有时导致机器频繁复位而影响程序的正常运行。若外界干扰导致单片机程序计数器PC值的改变,破坏程序正常运行。由于受干扰后的PC值是随机的,程序将执行一系列毫无意义的指令,最后进入“死循环”这将使输出严重混乱或死机。

3、系统被控对象误操作

由于干扰的影响使单片机内部程序指针错乱,指向了其它地方,运行了错误的程序;RAM中的某些数据被冲乱或者特殊寄存器的值被改变,使程序计算结果错误;或中断误触发,使系统进行错误的中断处理,都有可能使单片机对系统被控对象产生误操作。

4、被控对象状态不稳定

锁存电路与被控对象间的线路(包括驱动电路)受干扰,从而造成被控对象状态不稳定。

5、定时不准

当干扰使单片机内部程序指针错乱,使中断程序运行超出定时时间,以及RAM中计时数据被冲乱,使程序计算出错误的结果等,都将影响单片机定时的准确性。

6、数据发生变化

在单片机应用系统中,由于外部RAM是可读写的,在干扰的侵入下,RAM中数据有可能发生改变,虽然ROM能避免干扰破坏,但单片机片内RAM以及片内各种特殊功能寄存器等状态都有可能受干扰而变化,甚至EEROM中的数据也可能误读写,使程序计算出错误的结果。

针对以上出现的问题,本文分别从硬件和软件两个方面来探讨一些提高单片机应用系统抗干扰能力的方法。


第2章 单片机应用系统的硬件抗干扰技术

硬件抗干扰技术是系统设计时首选的抗干扰措施,它能有效抑制干扰源,阻断干扰传输通道。本章简要介绍常用的硬件设计抗干扰措施。

2.1 元器件与单片机的选择

现在市场上出售的元器件种类繁多,有些元器件可用但性能不佳,有些元器件极易受到干扰,因此在选择关键元器件如译码器、键盘扫描控制器、RAM等时,最好选用性能稳定的工业级产品。
单片机的选择不光考虑硬件配置、存储容量等,更要选择抗干扰性能较强的单片机。当前的单片机种类繁多,AVR系列单片机抗干扰能力较强是被一致公认的,因此在设计过程中,应尽可能选择该系列的单片机。
外时钟是高频的噪声源,对系统的内外都能产生干扰,因此在满足需要的前提下,选用频率低的单片机是明智之举。

防止从电源系统引入干扰,可采取交流稳压器保证供电的稳定性,防止电源的过压和欠压。使用隔离变压器滤掉高频噪声,低通滤波器滤掉工频干扰。

采用开关电源并提供足够的功率余量,主机部分使用单独的稳压电路,必要时输入,输出供电分别采用DC-DC模块隔离,以避免各个部分相互干扰。

2.2 抑制电源干扰

单片机系统中的各个单元都需要使用直流电源,而直流电源一般是市电电网的交流电经过变压、整流、滤波、稳压后产生的,因此电网上的各种干扰便会引入系统。除此之外,由于交流电源共用,各电子设备之间通过电源也会相互产生干扰,因此抑制电源干扰尤其重要。电源干扰主要有以下几类:
1、电源线中的高频干扰:供电电力线相当于一个接受天线,能把雷电、电弧、广播电台等辐射的高频干扰信号通过电源变压器初级耦合到次级,形成对单片机系统的干扰。
2、感性负载产生的瞬变噪音:切断大容量感性负载时,能产生很大的电流和电压变化率,从而形成瞬变噪音干扰,成为电磁干扰的主要形式。
3、晶闸管通断时的干扰:晶闸管通断时的电流变化率很大,使得晶闸管在导通瞬间流过一个具有高次谐波的大电流,在电源阻抗上产生很大的压降,从而使电网电压出现缺口,这种畸变了的电压波形含有高次谐波,可以向空间辐射或通过传导耦合,干扰其它设备。此外,还有电网电压波动或电压瞬时跌落产生干扰,等等。
电源干扰的抑制,通常可采用以下几种方法:

1、防止从电源系统引入干扰:可采取交流稳压器保证供电的稳定性,防止电源的过压和欠压。使用隔离变压器滤掉高频噪声,低通滤波器滤掉工频干扰。采用开关电源并提供足够的功率余量,主机部分使用单独的稳压电路,必要时输入,输出供电分别采用DC-DC模块隔离,以避免各个部分相互干扰。
2、接地技术:实践证明,单片机系统设备的抗干扰与系统的接地方式有很大关系,接地技术往往是抑制噪音的重要手段。良好的接地可以在很大程度上抑制系统内部噪音耦合,防止外部干扰的侵入,提高系统的抗干扰能力。设备的金属外壳等要安全接地;屏蔽用的导体必须良好接地。
3、屏蔽线与双胶线传输:屏蔽线对静电干扰有强的抑制作用,而双胶线有抵消电磁感应干扰的作用。开关信号检测线和模拟信号检测线可以使用屏蔽双胶线,来抵御静电和电磁感应干扰;特殊的干扰源也可以用屏蔽线连接,从而屏蔽了干扰源向外施加干扰。
4、隔离技术:信号的隔离目的之一是从电路上把干扰源和易干扰的部分隔离出来,使监控装置与现场仅保持信号联系,但不直接发生电的联系。隔离的实质是把引进的干扰通道切断,从而达到隔离现场干扰的目的。一般单片机应用系统既有弱电控制系统又有强电控制系统,通常实行弱电和强电隔离,是保证系统工作稳定、设备与操作人员安全的重要措施。常用的隔离方式有光电隔离、变压器隔离、继电器隔离和布线隔离等。
5、模拟信号采样抗干扰技术:单片机应用系统中通常要对一个或多个模拟信号进行采样,并将其通过A/D转换成数字信号进行处理。为了提高测量精度和稳定性,不仅要保证传感器本身的转换精度、传感器供电电源的稳定、测量放大器的稳定、A/D转换基准电压的稳定,而且要防止外部电磁感应噪声的影响,如果处理不当,微弱的有用信号可能完全被无用的噪音信号淹没。在实际工作中,可以采用具有差动输入的测量放大器,采用屏蔽双胶线传输测量信号,或将电压信号改变为电流信号,以及采用阻容滤波等技术。
在许多信号变化比较慢的采样系统中,如人体生物电(心电图、脑电图)采样、地震波记录等,影响最大的是50Hz的工频干扰。因此对工频干扰信号的抑制是保证测量精度的重要措施之一。抑制和消除工频干扰,常用的方法是在A/D转换电路之前加RC滤波器,或者采用采样时间是50Hz的工频周期整数倍的双积分式A/D转换器。

2.3 印制电路板的布线与工艺

印制电路板(PCB)是电子产品中电路元件和器件的支撑件,它提供电路元件和器件之间的电气连接。随着电子技术的飞速发展,PCB的密度越来越高,PCB设计的好坏对抗干扰能力影响很大。因此,在进行PCB设计时,必须遵守PCB设计的一般原则,并应符合抗干扰设计的要求。

1、尽量采用多层印制电路板,多层板可提供良好的接地网,可防止产生地电位差和元件之间的耦合。

2、印制电路板要合理分区。模拟电路区、数字电路区、功率驱动区要尽量分开,地线不能相混,分别和电源端的地线相连。

3、元件面和焊接面应采用相互垂直、斜交、或者弯曲走线,避免相互平行以减小寄生耦合:避免相邻导线平行段过长;加大信号线间距。高频电路互联导线尽量短,使用45°或者圆弧折线布线,不要使用90°折线,以减小高频信号的发射。

4、印制电路板要按单点接电、单点接地的原则送电。三个区域的电源线、地线分三路引出。地线、电源线要尽量粗,噪声元件与非噪声元件要尽量离远一些。时钟振荡电路、特殊高速逻辑电路部分用地线圈起来,让周围电场趋近于零。

5、使用满足系统要求的最低频率的时钟,时钟产生器要尽量靠近用到该时钟的器件。石英晶体振荡器外壳要接地,时钟线尽量短,时钟线要远离I/O线,在石英晶体振荡器下面要加大接地的面积而不应该走其它信号线。

6、I/O驱动器件、功率放大器件尽量靠近印制板的边缘、靠近引出接插件。重要的信号线尽量短并要尽量粗,并在两侧加上保护地。将信号通过扁平电缆引出时,要使用地线—信号—地线相间的结构。

7、原则上每个IC元件要加一个0.01—0.1µF去耦电容,布线时去耦电容应尽量靠近IC的电源脚和接地脚。要选高频特性好的独石电容或瓷片电容作去耦电容。去耦电容焊在印制电路板上时,引脚要尽量短。

8、闲置不用的IC管脚不要悬空以避免干扰引入。不用的运算放大器正输入端接地,负输入端接输出。单片机不用的I/O口定义成输出。单片机上有一个以上电源、接地端,每个都要接上,不要悬空。

9、关键器件放置:在器件布置方面与其它逻辑电路一样,应把相互有关的器件尽量放得靠近些,这样可以获得较好的抗噪声效果。时钟发生器、晶振和CPU的时钟输入端都易产生噪声,要相互靠近些;CPU复位电路、硬件看门狗电路要尽量靠近CPU相应引脚;易产生噪声的器件、大电流电路等应尽量远离逻辑电路,如有可能,应另外做电路板。
10、D/A、A/D转换电路要特别注意地线的正确连接,否则干扰影响将很严重。D/A、A/D芯片及采样芯片均提供了数字地和模拟地,分别有相应的管脚。在线路设计中,必须将所有器件的数字地和模拟地分别相连,但数字地与模拟地仅在一点上相连。
另外,也可以采用屏蔽保护,屏蔽可用来隔离空间辐射。对噪声特别大的部件(如变频电源、开关电源)可以用金属盒罩起来以减少噪声源对单片机的干扰,对容易受干扰的部分,可以增加屏蔽罩并接地,使干扰信号被短路接地。

2.4 输入输出干扰的抑制

输入、输出信号加光电耦合器隔离,可以将主机部分和前向、后向通道及其它部分切断电路的联系,可有效的防止干扰进入主机系统。

双绞线传输和终端阻抗匹配:在数字信号的长线传输时利用双绞线,可对噪声干扰有较好的抑制效果。可与光电耦合器联合使用或者使用平衡输入接收器和输出的驱动器。在发送和接收信号端必须有末端电阻,双绞线应该阻抗匹配。

数字信号传输通道的抗干扰技术:数字输出信号可作为系统被控设备的驱动信号(如继电器等),数字输入信号可作为设备的响应回答和指令信号(如行程开关、启动按钮等)。数字信号接口部分是外界干扰进入单片机系统的主要通道之一。在工程设计中,对数字信号的输入/输出过程采取的抗干扰措施有:传输线的屏蔽技术,如采用屏蔽线、双胶线等;采用信号隔离措施;合理接地,由于数字信号在电平转换过程中形成公共阻抗干扰,选择合适的接地点可以有效抑制地线噪声。

2.5 提高器件的马嘞能力和可靠性

一般1个TTL可推动8个TTL或10多个CMOS,而一个CMOS可推动1-2个TTL或20多个CMOS。如果输出负载过重,会降低输出电平,使电平处于或低于被驱动器件的输入门槛电平,从而造成系统不稳定。

另外,元器件的好坏也会直接影响到系统的稳定性。避免此类问题,应选用质量好的电子元件并进行严格的测试和筛选。设计时元件技术参数要有一定的余量。提高印制板和组装的质量。

2.6 使用双机冗余设计

在对控制系统的可靠性有严格要求的场合,使用双机冗余可进一步提高系统抗干扰能力。双机冗余,就是执行同一个控制任务,可安排两个单片机来完成,即主机与从机。正常情况下,主机掌握着三总线的控制权,对整个系统进行控制,此时,从机处于待机状态,等待仲裁器的触发。当主机由于某种原因发生误动作时,仲裁器根据判别条件,若认为主机程序已混乱,则切断主机的总线控制权,将从机唤醒,从机将代替主机进行处理与控制。

2.7 硬件监控电路

在单片机系统中,为了保证系统可靠、稳定地运行,增强抗干扰能力,需要配置硬件监控电路,硬件监控电路从功能上包括以下几个方面:
1、上电复位:保证系统加电时能正确地启动;
2、掉电复位:当电源失效或电压降到某一电压值以下时,产生复位信号对系统进行复位;
3、数据保护:当电源或系统工作异常时,对数据进行必要的保护,如写保护、后备电池切换等;
4、电源监测:供电电压出现异常时,给出报警指示信号或中断请求信号;
5、硬件看门狗:当处理器遇到干扰或程序运行混乱产生“死锁”时,对系统进行复位。
有些著名的半导体厂商已将上述这些功能集成到一起,如MAXIM公司的MAX690、MAX706等。


第3章 单片机应用系统的软件抗干扰技术

尽管我们采取了硬件抗干扰措施,但由于干扰信号产生的原因错综复杂,且具有很大的随机性,很难保证系统完全不受干扰。因此,往往在硬件抗干扰措施的基础上,采取软件抗干扰技术加以补充,作为硬件措施的辅助手段。软件抗干扰方法具有简单、灵活方便、耗费低等特点,因此,在单片机系统中被广泛应用。

3.1 软件滤波法

当干扰影响到单片机系统的输入信号时,将增大系统的数据采集误差。因此,单片机在读取输入信号后,对输入数据的“真伪”判断就显得十分重要。利用软件来判断输入信号是正常的输入信号,还是干扰信号的方法称为软件滤波技术。软件滤波技术可滤掉大部分由输入信号干扰而引起的输出控制错误。最常用的方法有算术平均值法、比较舍取法、中值法、一阶递推数字滤波法。具体选取何种方法,必须根据信号的变化规律选择。对开关量采用多次采集的办法来消除开关的抖动。

3.2 数据冗余技术

根据概率论,一个RAM寄存器的数据被冲毁的概率是很大的,但地址不连续的多个RAM同时被冲毁的概率相对就要小得多。一些重要的原始数据信息备份2分或2分以上,数据存储空间足够的情况下,份数越多越好,并存放在RAM地址不相连的不同区域中。当平时对这些数据进行修改时,同时也更新备份,保证备份数据的同步。当干扰发生并被拦截到程序错误处理段时,将数据与备份数据做比较,选出正确的,也就是未被干扰的数据。在对数据进行备份时,只备份最原始的数据,那些可以从原始数据计算推导而来的数据则没有必要备份。

3.3 输入信号重复检测方法

输入信号的干扰是叠加在有效电平信号上的一系列离散尖脉冲,作用时间很短。当控制系统存在输入干扰,又不能用硬件加以有效抑制时,可用软件重复检测的方法,达到“去伪存真”的目的,直到连续两次或连续两次以上的采集结果完全一致时方为有效。若信号总是变化不定,在达到最高次数限额时,则可给出报警信号。对于来自各类开关型传感器的信号,如限位开关、行程开关、操作按钮等,都可采用这种输入方式。如果在连续采集数据之间插入延时,则能够对付较宽的干扰。

3.4 输出端口数据刷新方法

开关量输出软件抗干扰设计,主要是采取重复输出的方法,这是一种提高输出接口抗干扰性能的有效措施。对于那些用锁存器输出的控制信号,这些措施很有必要。在尽可能短的周期内,将数据重复输出,受干扰影响的设备在还没有来得及响应时,正确的信息又到来,这样就可以及时防止误动作的产生。在程序结构的安排上,可为输出数据建立一个数据缓冲区,在程序的周期性循环体内将数据输出。对于增量控制型设备不能这样重复送数,只有通过检测通道,从设备的反馈信息中判断数据传输的正确与否。

3.5 指令冗余技术

对MCS-51系列单片机大部分指令为单字节,当出错的程序落到其上时,出错的程序可自动纳入正轨;当落到多字节指令的操作数时,程序将继续出错,所以在关键的对程序的流向起决定陆的指令之前插入两条NOP指令使被弹飞的指令恢复正轨。

CPU取指令过程是先取操作码,再取操作数。当PC受干扰出现错误,程序便脱离正常轨道“乱飞”,当乱飞到某双字节指令,若取指令时刻落在操作数上,误将操作数当作操作码,程序将出错。若“飞” 到了三字节指令,出错机率更大。
在关键地方人为插入一些单字节指令,或将有效单字节指令重写称为指令冗余。通常是在双字节指令和三字节指令后插入两个字节以上的NOP。这样即使乱飞程序飞到操作数上,由于空操作指令NOP的存在,避免了后面的指令被当作操作数执行,程序自动纳入正轨。
此外,对系统流向起重要作用的指令如RET、 RETI、LCALL、LJMP、JC等指令之前插入两条NOP,也可将乱飞程序纳入正轨,确保这些重要指令的执行。

3.6 程序拦截技术

所谓拦截,是指将乱飞的程序引向指定位置,再进行出错处理。通常用软件陷阱来拦截乱飞的程序。因此先要合理设计陷阱,其次要将陷阱安排在适当的位置。

1、软件陷阱的设计
当乱飞程序进入非程序区,冗余指令便无法起作用。通过软件陷阱,拦截乱飞程序,将其引向指定位置,再进行出错处理。软件陷阱是指用来将捕获的乱飞程序引向复位入口地址0000H的指令。通常在EPROM中非程序区填入以下指令作为软件陷阱:
NOP
NOP
LJMP 0000H
其机器码为0000020000B。
2、陷阱的安排
通常在程序中未使用的EPROM空间填0000020000。最后一条应填入020000,当乱飞程序落到此区,即可自动入轨。在用户程序区各模块之间的空余单元也可填入陷阱指令。当使用的中断因干扰而开放时,在对应的中断服务程序中设置软件陷阱,能及时捕获错误的中断。如某应用系统虽未用到外部中断1,外部中断1的中断服务程序可为如下形式:
NOP
NOP
RETI

返回指令可用“RETI”,也可用“LJMP 0000H”。如果故障诊断程序与系统自恢复程序的设计可靠、 完善,用“LJMP 0000H”作返回指令可直接进入故障诊断程序,尽早地处理故障并恢复程序的运行。
由于程序存贮器的容量十分宝贵,软件陷阱一般1K空间有2-3个就可以进行有效拦截。

3.7 软件“看门狗”技术

若失控的程序进入“死循环”,通常采用“看门狗”技术使程序脱离“死循环”。通过不断检测程序循环运行时间,若发现程序循环时间超过最大循环运行时间,则认为系统陷入“死循环”,需进行出错处理。
“看门狗”技术可由硬件实现,也可由软件实现。在工业应用中,严重的干扰有时会破坏中断方式控制字,关闭中断。则系统无法定时“喂狗”,硬件看门狗电路失效。而软件看门狗可有效地解决这类问题。
笔者在实际应用中,采用环形中断监视系统。用定时器T0监视定时器T1,用定时器T1监视主程序,主程序监视定时器T0。采用这种环形结构的软件“看门狗”具有良好的抗干扰性能,大大提高了系统可靠性。对于需经常使用T1定时器进行串口通讯的测控系统,则定时器T1不能进行中断,可改由串口中断进行监控(如果用的是MCS-52系列单片机,也可用T2代替T1进行监视)。这种软件“看门狗”监视原理是:在主程序、T0中断服务程序、T1中断服务程序中各设一运行观测变量,假设为MWatch、T0Watch 、T1Watch,主程序每循环一次,MWatch加1,同样T0、T1中断服务程序执行一次,T0Watch、 T1Watch加1。在T0中断服务程序中通过检测T1Watch的变化情况判定T1运行是否正常,在T1中断服务程序中检测MWatch的变化情况判定主程序是否正常运行,在主程序中通过检测T0Watch的变化情况判别T0是否正常工作。若检测到某观测变量变化不正常,比如应当加1而未加1,则转到出错处理程序作排除故障处理。当然,对主程序最大循环周期、定时器T0和T1定时周期应予以全盘合理考虑。限于篇幅不赘述。

3.8 使用程序监视跟踪定时器

程序监视跟踪定时器即Watchdog在单片机抗干扰设计中使用非常广泛,各大器件生产商提供了不同的功能的芯片,如MAXIM的MX760、MX813,IMP的IMP690 A/692AL是用于微处理器系统的电源监视和控制电路。可为CPU提供复位信号、看门狗监视、备用电池自动切换及电源失效监视。除上、掉电条件下为微处理器提供复位外,这些器件还具有备用电池切换功能。利用watchdog和软件的配合使用可大大提高系统的抗干扰能力。

3.9 使用实时嵌入式操作系统RTOS

操作系统首先建立多个实时任务并初始化,各个任务在操作系统的调度下运行,若某一任务由于干扰而运行失常,操作系统可将该任务强制退出并让出CPU控制权,根据故障情况进行处理。使用RTOS可减小系统的复位的次数,提高抗干扰能力。

3.10 系统故障处理、自恢复程序的设计

单片机系统因干扰复位或掉电后复位均属非正常复位,应进行故障诊断并能自动恢复非正常复位前的状态。
1、非正常复位的识别
程序的执行总是从0000H开始,导致程序从0000H开始执行有四种可能:1、系统开机上电复位;2、软件故障复位;3、看门狗超时未喂狗硬件复位;4、任务正在执行中掉电后来电复位。四种情况中除第一种情况外均属非正常复位,需加以识别。
1)硬件复位与软件复位的识别
此处硬件复位指开机复位与看门狗复位,硬件复位对寄存器有影响,如复位后PC=0000H,SP=07H,PSW=00H等。而软件复位则对SP、SPW无影响。故对于微机测控系统,当程序正常运行时,将SP设置地址大于07H,或者将PSW的第5位用户标志位在系统正常运行时设为1。那么系统复位时只需检测PSW.5标志位或SP值便可判此是否硬件复位。图1是采用PSW.5作上电标志位判别硬、软件复位的程序流程图.

图1 硬、软件复位识别流程图

此外,由于硬件复位时片内RAM状态是随机的,而软件复位片内RAM则可保持复位前状态,因此可选取片内某一个或两个单元作为上电标志。设 40H用来做上电标志,上电标志字为78H,若系统复位后40H单元内容不等于78H,则认为是硬件复位,否则认为是软件复位,转向出错处理。若用两个单元作上电标志,则这种判别方法的可靠性更高。
2)开机复位与看门狗故障复位的识别
开机复位与看门狗故障复位因同属硬件复位,所以要想予以正确识别,一般要借助非易失性RAM或者EEROM。当系统正常运行时,设置一可掉电保护的观测单元。当系统正常运行时,在定时喂狗的中断服务程序中使该观测单元保持正常值(设为 AAH),而在主程中将该单元清零,因观测单元掉电可保护,则开机时通过检测该单元是否为正常值可判断是否看门狗复位。
3)正常开机复位与非正常开机复位的识别
识别测控系统中因意外情况如系统掉电等情况引起的开机复位与正常开机复位,对于过程控制系统尤为重要。如某以时间为控制标准的测控系统,完成一次测控任务需1小时。在已执行测控50分钟的情况下,系统电压异常引起复位,此时若系统复位后又从头开始进行测控则会造成不必要的时间消耗。因此可通过一监测单元对当前系统的运行状态、系统时间予以监控,将控制过程分解为若干步或若干时间段,每执行完一步或每运行一个时间段则对监测单元置为关机允许值,不同的任务或任务的不同阶段有不同的值,若系统正在进行测控任务或正在执某时间段,则将监测单元置为非正常关机值。那么系统复位后可据此单元判系统原来的运行状态,并跳到出错处理程序中恢复系统原运行状态。
2、非正常复位后系统自恢复运行的程序设计
对顺序要求严格的一些过程控制系统,系统非正常复位否,一般都要求从失控的那一个模块或任务恢复运行。所以测控系统要作好重要数据单元、参数的备份,如系统运行状态、系统的进程值、当前输入、输出的值,当前时钟值、观测单元值等,这些数据既要定时备份,同时若有修改也应立即予以备份。
当在已判别出系统非正常复位的情况下,先要恢复一些必要的系统数据,如显示模块的初始化、片外扩展芯片的初始化等。其次再对测控系统的系统状态、运行参数等予以恢复,包括显示界面等的恢复。之后再把复位前的任务、参数、运行时间等恢复,再进入系统运行状态。
应当说明的是,真实地恢复系统的运行状态需要极为细致地对系统的重要数据予以备份,并加以数据可靠性检查,以保证恢复的数据的可靠性。
其次,对多任务、多进程测控系统,数据的恢复需考虑恢复的次序问题,笔者实际应用的数据恢复过程流程图如图2所示。

图中恢复系统基本数据是指取出备份的数据覆盖当前的系统数据。系统基本初始化是指对芯片、显示、输入输出方式等进行初始化,要注意输入输出的初始化不应造成误动作。而复位前任务的初始化是指任务的执行状态、运行时间等。

图2 系统自恢复程序流程图
结 论

对于软件抗干扰的一些其它常用方法如数字滤波、RAM数据保护与纠错等,限于篇幅,本文未作讨论。在工程实践中通常都是几种抗干扰方法并用,互相补充、完善,才能取得较好的抗干扰效果。从根本上来说,硬件抗干扰是主动的,而软件是抗干扰是被动的。细致周到地分析干扰源,硬件与软件抗干扰相结合,完善系统监控程序,设计一稳定可靠的单片机系统是完全可行的。

抗干扰技术是单片机应用系统设计过程中的重要环节,合理地使用软件和硬件抗干扰技术,可使系统最大限度的避免干扰的产生和受干扰后能使系统恢复正常运行,保证系统长期稳定可靠地工作。


参考文献

1、《单片机应用系统抗干扰技术》王辛之著北京航空航天大学出版

2、《单片微机原理及应用》张毅坤、陈善久著西安出版社

3、《单片机原理及应用》 汪志锋著 高等教育出版社

4、《单片机接口技术及在工业控制中的应用》李秉操、张登举等著 陕西电子编辑部

5、《单片微型计算机应用系统设计与实现》 孙育才、苏学成著 东南大学出版社

6、单片机学习网 网址:http://www.mcu51.com

转自: http://apps.hi.baidu.com/share/detail/33981035

你可能感兴趣的:(单片机,任务,嵌入式操作系统,工作,出版,系统监控,产品)