单片机软件抗干扰技术

2024-09-24

单片机软件抗干扰技术(共7篇)

单片机软件抗干扰技术 篇1

0 引言

在单片机系统的实际应用中, 当电磁干扰信号窜入时, 可能会对中央处理器 (CPU) 、特殊功能寄存器SFR、存储器MEM造成影响。比如CPU错误地执行指令, 引起误动作, 甚至系统紊乱, 引发故障和安全事故。因此, 如何通过软件技术保证单片机系统稳定可靠的运行, 是一个重要的课题。本文将主要探讨单片机系统中的软件抗干扰技术。

1 数据采集系统抗干扰

对于单片机实时数据采集系统, 为了消除信号通道的干扰信号, 提高检测数据的精度, 软件上经常采用数字滤波技术。其优点在于:不需要增加硬件成本, 对于不同的干扰信号, 编写相应的程序, 有的放矢。常见的技术和措施有:

(1) 算数平均值滤波。该方法是连续对数据进行采样, 然后计算其平均值, 这样可以减少系统的随机干扰。用公式表示为undefined为n次采样平均值, xi为第i次采样值, n为采样次数) 。

(2) 限制滤波法。就是根据实际, 在程序中设定输入信号的上下限, 比如输入信号幅值的上限为Xmax, 下限为Xmin, 若被测信号Xi正好落在此范围内, 即Xmin≤Xi≤Xmax, 则表明此信号是有用信号, 可取本次采样值为Xi;若XiXmax, 则表明此信号是干扰信号, 应该滤去。这种方法适合于滤去大电流电感负载的切断, 或电动工具的火花等产生的随机干扰脉冲。

(3) 一阶数字滤波法。用软件方法代替硬件RC滤波器, 也就是利用软件完成低通滤波器的算法。算法为:Yn=QXn+ (1-Q) Yn-1, 式中:Q是数字滤波系数, Xn是第n次采样时的滤波器输入;Yn是第n次采样时的滤波器输出;Yn-1是第 (n-1) 次采样时的滤波器输出。滤波系数Q=ΔT/Ti<1;ΔT为采样周期;Ti为数字滤波器的时间系数。这种方法适合于滤去周期性噪声, 结合实际, 通过具体的参数设置, 使周期性噪声减至最弱甚至全部消除。

2 指令冗余技术

指令冗余技术是在程序编写的过程中, 多使用单字节的指令, 在关键的地方, 重复写入单字节指令。以减少因干扰而程序“乱飞”的机率。

在单片机系统中, 最易受干扰的是程序计数器——PC值。受到干扰后, PC值可能会被“碰飞”, 即出现不稳定, 随机值的情况。这样, 就可能导致CPU的误动作, 产生错误结果。

单片机系统的指令一般不超过3个字节, 多为单字节指令。指令由操作码和操作数组成, CPU取指令过程是先取操作码, 后取操作数, 执行完一条指令后, 再取下一条。当PC受到干扰而出现错误, 程序便脱离正常运行轨道而乱飞, 出现操作数数值改变以及将操作数当作操作码。为了使乱飞的程序在程序区迅速纳入正轨, 可采用以下技术:

(1) 尽量使用单字节指令。当程序“跑飞”到某一个单字节指令上时, 便会自动纳入正轨。当“跑飞”到三字节指令上时, 可能会把操作数误认为操作码, 出现错误。因此, 需要在关键的地方人为地插入单字节指令, 比如NOP指令。

(2) 在一些对程序流向起决定作用的指令, 如SJMD、LJMD、JZ、JNZ、JC、LCALL等指令前插入NOP指令。

(3) 在某些对系统工作起至关重要作用的指令, 如RET、SETB、EA、POP、PUSH等前面插入几条NOP指令。

(4) 在程序中每隔20条左右的指令中插入3条NOP指令, 有助于降低程序计数器发生错误的概率。

3 软件陷阱技术

指令冗余技术的有效利用是有前提条件的:“跑飞”的程序必须落到程序区, 且执行到冗余指令。如果乱飞的程序落到非程序区, 比如EPROM中未使用的空间等, 或者说在执行到冗余指令以前, 程序已经陷入死循环, 那么此时, 冗余技术对引导程序回到正常轨道就不再有效。此时可通过设立“软件陷阱”来处理, “软件陷阱”就是一条引导指令, 当系统受到干扰而失控时, 用引导指令强行将捕获的失控程序引向一个指定的地址, 在那里有一段专门对程序出错进行处理的程序, 使程序纳入正常轨道。假设出错处理程序入口标号为ERR, 则软件陷阱指令如下:

NOP

NOP

LJMP ERR;转到预先设计的入口执行

“软件陷阱”一般安排在以下四个地方:

(1) 未使用的中断向量区

在这些地方设置“软件陷阱”, 能及时有效地捕捉到错误中断。

(2) 未使用的大片EPROM空间

如果在此区域设置软件陷阱, 当程序跑飞到此区域时, 便会迅速纳入正轨。

(3) 表格和程序区

在表格中只能在最后安排“软件陷阱”, 有一定的效果, 但是也不一定能保证捕捉到“跑飞”的程序;在程序区中不能任意安排陷阱, 否则影响正常程序的执行, 但是, 对于一些断裂点, 正常执行的程序到此便不会再继续执行了, 比如在指令LJMP、SJMP后, 加软件陷阱, 就能捕捉到“跑飞”的程序。

4 “看门狗”技术

当程序发生死循环, 或者系统紊乱, 利用以上的指令冗余技术和“软件陷阱”技术, 都不能解决问题的时候, 就要利用“看门狗”技术。看门狗”其实是单片机内部的一个定时器, 该定时器被设为高级中断, 一旦发生溢出, 立即向CPU发出复位信号, 使系统强行复位。

系统在工作时, 由CPU向定时器中写入初值, 并启动工作, 系统定时刷新定时器, 让定时器不断计数, 又不断回到初值, 俗称“喂狗”。只要系统的刷新周期小于定时器的定时周期, 就不会产生定时溢出。如果系统出现了故障, 比如陷入死循环, 或者功能紊乱, 就不能再定时刷新定时器, 而CLK是由硬件控制的, 不受系统的影响, 定时器将继续计数, 直至产生“溢出”输出信号。而定时器的输出又与CPU的RESET引脚相连, 那么此时的“溢出”信号就可以让CPU复位, 重新启动系统, 使系统脱离死循环, 从而确保程序的连贯, 系统的可靠。

软件“看门狗”具体设计方法如下:

选用某定时器T0作为“看门狗”, 将T0的中断设为高级中断, 系统的其他中断设为低级中断, 在初始化时可以这样设计“看门狗”:

以上初始化可和其他资源的初始化一并进行, 其中TH0、TL0的时间常数可以根据实际要求而设定。“看门狗”启动后, 系统必须及时刷新T0的时间常数。这样, 当程序正常运行时, 由于每次还未到T0产生中断时就将T0的时间常数刷新, 故中断不会发生, 当程序受干扰进入死循环时, T0就会产生高级中断, 使系统程序重新正确运行。

5 结束语

单片机软件抗干扰设计是一项综合性的设计, 在应用中, 要根据实际情况, 采用相应的抗干扰技术, 使单片机系统更加稳定、可靠。

摘要:分析了单片机系统中的软件抗干扰的基本原理, 并提出了数字滤波法、指令冗余技术、软件陷阱、“看门狗”技术等提高单片机系统稳定性的软件方法。

关键词:单片机,软件,抗干扰

参考文献

[1]吴良斌, 高玉良, 李延辉.现代电子系统的电磁兼容性设计[M].北京:国防工业出版社, 2004.

[2]曹玲芝, 崔光照, 吴刚.现代测试技术及虚拟仪器[M].北京:北京航空航天大学出版社, 2004.

[3]王津, 周卫华, 朱华贵.单片机原理与应用[M].重庆:重庆大学出版社, 2000.

[4]刘春平, 张国钧, 戴婧.单片机抗干扰设计[J].电脑开发与应用, 2006, 19 (5) :43.

单片机软件抗干扰技术 篇2

1 干扰源的形成

所谓噪声,主要指在系统或者电路中产生的非期望的信号,由于噪声而对系统或者电路产生的负面影响,即干扰。对于单片机应用系统中产生的干扰,有些来自系统外部,有些来自系统内部,而干扰源的形成,主要具备3大要素:噪声源、接收噪声的电路和接收电路的耦合通道。以下将对具体内容进行分析:

1.1 外部干扰源

首先,天体与天电的干扰。天体干扰主要来自太阳或者其他恒星的电磁波辐射,以此产生大量干扰;天电干扰则主要来自大气、雷电等电离作用,或者由于地震、火山爆发等自然现象产生电磁波,造成空间电位的变化,引发干扰;其次,放电干扰。对于电动机中的整流子以及电刷之间,产生周期性放电,如果应用于电火花、电焊加工机床,或者电气开关设备中,就会产生放电现象;再次,射频干扰与工频干扰。射频干扰主要来自无线电收发机、雷达或者电子设备、电视广播等;工频干扰则来自大功率的输配电线或者临近系统传输线,由于耦合作用,形成干扰源。

1.2 内部干扰源

首先,由电器元器件自身产生的噪声,在系统内部或者电路内部,一般包括晶体管、电阻以及运算放大器等零部件,由于这些零部件在运行过程中会产生噪声,如晶体管闪烁、电阻热噪声或者散粒噪声等,因此产生干扰源;其次,在实行感性负载切换过程中,容易产生噪声干扰。在单片机控制系统中,包含了若干感性负载,例如接触器、电机、电磁铁、交直流继电器等,它们的自感反应较为敏感,在切换设备过程中,由于受到电磁感应作用,线圈的两端会产生极高的瞬态电压,以此产生干扰问题[3];再次,接触噪声也是单片机干扰的主要来源之一,由于单片机中两种材料的不完全接触,引发导电率的起伏不定,进而产生噪声。例如,晶体管焊接位置的接触不良、插头与插座接触不良、继电器各触点之间的接触不良,等等,都可能成为干扰的来源。

2 干扰源的传输方式

单片机应用系统中的干扰源,主要通过以下3种方式实行传播:

2.1 前向通道传播

所谓前向通道,主要指处于主机输入接口前端的电路部分,也就是被测电信号的输入通道。一般情况下,由于被测量的信号状态主要为非电物理量形式,因此前向通道主要为小信号输入之后的放大电路以及A/D转换电路,如果干扰源进入到前向通道中,则可能造成模拟信号的输入失真,信号传播出现错误,进而加大数据误差,叠加于各种条件状态或者信号中,对计算机输出与控制产生影响,不利于系统的稳定运行。

2.2 后向通道传播

在单片机输出口之后的电路,其信号电平比较高,一般不容易受到干扰影响,但是可能对其他电路部件产生干扰,需加强注意。

2.3 CPU传播

这种干扰主要通过CPU内核的噪声或者内部时钟而引起,可能造成单片机系统中的总线数字信号混乱,产生各种不利后果或错误。如果CPU获得错误的地址信号,则程序就会脱离正常运行轨道,造成程序失控、死循环或者飞跑现象,后向通道的输出信号产生混乱,难以正常输出。

3 抗干扰技术的应用

虽然在单片机应用系统中已经强化硬件抗干扰措施,但是由于产生干扰信号的原因较为复杂,再加上随机性较强,因此系统完全不受干扰十分困难。在保证硬件抗干扰措施顺利实现的基础上,强化软件抗干扰措施,予以补充和扩展,发挥重要作用。

3.1 数字滤波

有关单片机中的实时数据采集系统,为了减少传感器中产生的各种干扰信号,一般在硬件措施中应用有源RLC网络或者无源RLC网络,形成模拟化的滤波器,完成信号频率滤波作用。同理,在运算CPU或者控制功能过程中,也应用到数字滤波技术。对于一般性的数据采集系统来说,可通过简单的数据运算或者逻辑处理方法,实现滤波作用。应用软件滤波器,即可发现数据采集中存在的误差,予以消除,确保单片机系统的正常运行。

3.2 重复检测输入信号

对于输入信号受到的各种干扰,叠加在电平信号基础上,产生各种离散的尖脉冲,其作用时间较短,但是影响较大。如果控制系统中产生了输入干扰,但是难以通过硬件控制,就可应用软件的重复检测功能,当检测结果连续两次或者两次以上的结果一致,则视为有效;如果信号反复不定,已经达到最高测试限额,则发出报警信号。对于各种开关型的传感器信号,包括操作按钮、行程开关以及限位开关等,均可采取这种方法,如果在数据连续采集过程中出现延时现象,则可有效控制干扰行为。

3.3 软件拦截处理

如果干扰源作用到CPU内核部位,将产生非常严重的后果,甚至系统失灵、死机。这种故障的最典型表现为:对系统中的PC程序状态造成破坏,其程序从某个区域跳转到另外一个区域中;或者在地址空间中“乱飞”,甚至陷入死循环中。如果应用软件拦截系统,就可避免程序“乱飞”现象,从死循环中摆脱出来,确保系统运行进入正轨,转入指定程序。

3.4“看门狗”技术

“看门狗”技术既可通过硬件实现,也可通过软件实现,如果单片机内部没有设置集成化的看门狗,则可通过软件形式进行硬件模拟。以51单片机系统为例,利用定时器对主程序运行的时间进行实时监控,并将T0设置为高优先级中断,并设置具体时间。如果出现定时中断现象,则对变量实现赋值处理。在主程序运行过程中,如果变量已经为初值,设置的定时值应该小于主程序的运行时间,并对主程序的尾部进行判断。如果其赋值产生了变化,则说明中断正常;如果没有任何变化,则实现程序复位。另外,在程序功能顺利实现的情况下,还可通过应用单片机中“待机”形式来实现抗干扰作用。在系统待机状态下,只有定时器及计时器处于工作状态,而系统中的主线不会产生任何干扰,有效控制干扰信号的敏感度。

4 系统软件的可靠性设计

根据可靠性的设计模型,可确保在软件设计过程中,应用程序根据既有顺序开展工作,以提高硬件运行可靠性,避免由于硬件故障而出现错误。对于单片机应用系统的软件设计,可主要关注以下几点:

4.1 确保时序余度充足

在程序设计过程中,时序问题不容忽视。程序的可靠性运行,不仅需要提高时序精准性,也要保证一定的时序余度。

4.2 初始化数据存储器

在单片机应用系统软件中,针对数据存储器开展工作,是较为频繁的操作程序,因此需加强注意。在单片机应用过程中,由于不能确定其运行状态,直接读取数值将出现极大偏差。因此,使用高级语言进行编程,需开辟一定的数组余量,避免由于数组溢出而造成的程序失常。

4.3 容错保障

对于单片机应用系统的可靠性设计,应建立在应用模型的基础上。在程序设计中,确定了唯一的软件运行状态与路径,但是在系统运行过程中,往往由于硬件错误、误操作或者噪声干扰等问题,产生诸多非正常激励现象,产生软件故障。采取软件的容错设计,就是确保在非正常激励状态下,不对程序产生破坏,减少由于非正常激励而产生的负面影响。其容错基本原则为:屏蔽非正常激励,如果没能完全屏蔽,则需及时进行相应调整,直到回归正常路径。

由上可见,当前单片机已在诸多领域广泛应用,尤其在恶劣环境中,对其运行的可靠性提出较高要求。单片机应用系统软件只有采取必要的抗干扰措施,才能确保运行的可靠性、稳定性。通过合理应用硬件抗干扰技术与软件抗干扰技术,可有效避免干扰源的产生,减少由此引发的各种问题,确保系统长期稳定工作,延长使用寿命。另外,由于抗干扰软件的设计灵活、应用方便,可大量节约硬件资源,即使受到外界条件干扰,系统不能正常工作,抗干扰软件中的子系统也会开启系统程序,确保进入正常的运行状态,为单片机的正常运行提供保障。总之,软件抗干扰技术已得到广泛认可与关注,产生良好的经济效益与社会效益。

参考文献

[1]田世锋,杨亭.单片机应用系统的可靠性研究[J].技术与市场,2011,(8).

[2]秦万坤.单片机抗干扰设计问题的几点研究[J].科技创业家,2011,(8).

单片机软件抗干扰技术 篇3

软件抗干扰的设计方法通常有:开机自检和初始化、软件陷阱、看门狗、关键信息三取二等等,这些设计能有效地防止程序走飞,或者在程序走飞后将程序拉回正常轨道。本文结合了作者在软件测试工作的经验和实例,讲述了51系列单片机软件的多种抗干扰设计方法及注意事项。

1 抗干扰设计方法

1.1 开机自检和初始化

开机自检和初始化是每个嵌入式软件上电运行的第一个抗干扰步骤,通常会有以下一些操作:

1)对程序ROM区的校验和;

2)对RAM区先写后读0xaa,0x55查看写入与读出的数是否一致;

3)检查I/O口;

4)检测其他接口电路,如扩展的EEPROM、A/D转换电路等。

程序自检和初始化设计时需要注意的问题有:

1)自检错误时程序应给出错误提示;

2)对接口进行自检时,应设定响应时间限制,以保证在硬件无响应的情况下程序不会陷入死循环,会及时报错;

3)初始化时注意考虑对自检结果带来的影响。

这里对于第3点举例说明:

某软件要求程序的遥测下传数据中应包含当前工作状态、硬件故障等信息,该软件具有冷、热启动功能。程序实现:冷启动时对所有的内存进行了初始化,热启动时对遥测下传数据进行初始化。程序自检和初始化流程如图1所示。

从流程可以看出,自检工作在初始化之前进行,导致自检错误信息被初始化,即自检错误不会被遥测记录并发送。

由于程序自检一般不会出错,因此该错误一直潜伏在程序中,直至第三方测试时构造了自检错误的测试案例才被发现。从这个实例我们得出:软件的初始化内容要慎重处理,不能简单地直接初始化所有使用资源,要充分考虑自检操作使用资源的因素,并在设计时梳理全局资源,避免全局资源的使用冲突。

1.2 软件陷阱

通常在程序存储器中未使用的EPROM空间填入空操作指令NOP(00H),最后再填入一条跳转指令,跳转到跑飞处理程序,或者直接填入指令LJMP 0000H(020000)。

软件陷阱的一般结构为:

由于51单片机有两个中断优先级,为了防止软件在二级中断嵌套时走飞,由软件陷阱转入初始化程序时,要用两个中断返回语句清除二级中断服务状态标志,如以下代码所示:

在某软件的测试中,将程序PC指针拉飞后程序运行至跑飞处理程序,确没有正确复位,跑飞处理程序如下:

与标准的跑飞处理程序比较可以看出,该程序的错误是在ERR子程序中地址压栈时高低位顺序错误。为什么设计师会犯这样的错误呢?因为设计师习惯了中断子程序中的现场保护写法,在普通的中断子程序中,通常会在中断开头保护现场,中断结束恢复现场,即:

设计师照着中断中现场保护的写法来涉及跑飞处理程序,却没有注意到,中断中的地址是先压栈后出栈的,而跑飞处理程序中该地址只有压栈操作,是靠RETI这个指令进行出栈操作的。

这里就涉及到对RETI这个指令的理解,在51系列单片机中,响应中断后,硬件自动生成LCALL addr16的指令,addr16是各中断源的中断矢量地址。被中断打断时程序运行至一个地址,我们称为断点地址。处理器首先将程序计数器PC的内容(断点地址)压入堆栈进行保护,先低位地址后高位地址,同时堆栈指针SP加2。然后将对应中断源的中断矢量地址addr16装入PC,使程序转向该地址去执行中断程序。在遇到RETI指令后,程序干两件事:一是撤销中断申请,弹出断点地址,先弹出高位地址,后弹出低位地址,同时堆栈指针SP减2,恢复原程序的断点地址执行;二是恢复中断触发器原先状态。

以上这些都是在中断响应时硬件自动执行的,因此,对于断点地址入栈的顺序设计师通常都不会注意,断点地址自动入栈时是先低位地址后高位地址,RETI恢复时是先弹出高位地址,后弹出低位地址。由于跑飞处理程序是一个子程序,而不是中断程序,因此硬件不会自动将断点地址压栈,这里ERR的PUSH语句就是为了将断点地址压栈,因此应当按照先低位后高位的顺序进行,以匹配之后RETI语句的出栈操作。

以上是汇编语言的跑飞处理程序,需要注意的是在51系列的高级语言编程程序中,要在跑飞处理程序中进行中断申请的撤销。因为通常中断子程序在结束处会对中断申请进行撤销,但是一旦在中断执行过程中程序走飞进入跑飞处理程序,那么中断子程序最后的撤销操作未被执行,即中断申请未被撤销,因此需要在跑飞处理程序中进行该操作,避免程序复位后中断未被释放而导致中断不响应。

1.3 看门狗

看门狗是防止软件陷入死循环的有效手段,在正常工作时,安插在循环程序中的清除脉冲信号周期性地清除看门狗,看门狗定时器不会溢出,当系统受到干扰使程序跑飞时,看门狗定时器得不到及时清除而溢出,产生CPU复位信号,使系统重新开始[2]。

由于看门狗对时间的要求非常精确,为了避免在正常的流程中超时喂狗而导致看门狗复位,设计师有时会陷入“喂狗综合症”,即过于频繁的清除看门狗,导致看门狗失去作用。

在某程序的测试过程中,设计师在主程序和某中断程序中均进行了喂狗操作,由于该中断触发频繁,且中断优先级高,导致喂狗过频。在这种情况下如果主程序走飞,看门狗也不能发现,因为频繁到来的中断中不停在喂狗,导致看门狗定时器不会溢出。因此在看门狗设置上,通常的建议是只在主程序中喂狗,以保证狗确实能看住“门”。

1.4 关键信息三取二

对于在太空环境中运行的软件来讲,关键数据三取二是防止单粒子翻转的有效且必要的手段,所谓三取二即是将关键的数据存储在三个不同的地方,访问数据应采取三取二表决方式裁决。

某软件的主要功能是控温,加热片温度低于加热点则控制进行加热,加热片温度高于断开点则控制停止加热。加热点/断开点的温度值由外部注入,程序中对加热点/断开点温度值进行了三取二操作。测试中针对三取二模拟了各种情况,当构造三取二操作两两相异的情况时,问题出现了。所谓两两相异,即温度值存放的三个地方的值各不一样。程序中当遇到三取二错误时,直接放弃了控温操作,既没有采取遥测下报措施,也没有考虑重要数据三取二错误后的备份控温方案。如果当前加热片处于加热状态,而外部也没有重新进行控温注数,那么加热片将一直加热下去,很可能导致硬件故障。

因此,三取二操作设计时应注意容错性的设计,即在三取二操作失效后程序的处理。

2 结束语

当前的科研生产均提倡“降本增效”,在硬件上增加抗干扰性设计提高成本,因此通过软件设计提高系统和产品的可靠性已越来越受到科技人员的重视。软件抗干扰设计方法多种多样,且都不是单独使用的,不同的软件需要根据实际情况结合实现多种抗干扰手段。设计师在进行抗干扰设计时应考虑全面,使程序做到防错、容错、纠错的全面性,保证单片机系统稳定可靠地工作。

参考文献

[1]于洪洲,程建.51系列单片机软件抗干扰设计[J].集成电路通讯,2007(6):1-2.

单片机应用系统的软件抗干扰研究 篇4

单片机的工作环境中存在着许多的干扰因素, 这些干扰会使单片机的程序计数器PC的值出错, 这种错误的出现往往会造成一些无法预估的危害。因此, 对于单片机应用系统通常会采取许多抗干扰措施, 单片机应用系统的抗干扰措施主要分为两个方面, 一是硬件方面, 二是软件方面。硬件方面的抗干扰措施一般花销比较大, 由于财力有限, 可能相关人员不能实施完美的抗干扰方案, 但软件方面的抗干扰措施花销较小, 且能更为有效地进行单片机应用系统的抗干扰工作, 因此, 我们必须加强对单片机应用系统软件抗干扰方法的探究。

干扰对单片机应用系统造成的影响

干扰存在于单片机应用系统的各个运行过程之中。笔者先介绍一下单片机应用系统的运行过程, 要使单片机应用系统开始运行, 就需要对单片机应用系统的激励输入端输入一个正常激励, 单片机应用系统接收到激励信号时就会开始运行, 将输入的信号通过输入通道传输到程序运行空间之中, 程序运行的结果再通过输出通道传出, 传出后响应墙会对结果进行正常响应。再来说一下干扰, 第一, 在激励输入端接收正常激励信号时, 还会接收到不正常的激励信号 (即干扰) , 这些不正常的激励信号会叠加到将要传送至输入通道的数字量之中, 程序运行空间会将其与数字量同化, 这就会使数据采集误差变大。第二, 数字量输入过程中, 还会受到输入通道中的干扰, 这些干扰也会与数字量一起进入程序运行空间之中, 由此进一步地加大了数据采集误差。第三, 程序运行过程中也会受到外界的干扰, 这些干扰会影响到程序的正常运行, 从而导致程序计数器PC值发生改变, 干扰较为严重时甚至还会使程序跑飞造成单片机死机。第四, 尽管单片机应用系统的响应墙是安全性包容的, 可以保证响应的正常, 但程序运行结果在通过输出通道时也会受到外界的干扰, 这就会导致结果的数字量发生变化, 从而使响应墙所响应的结果并不是真实的。综合以上四个过程中的干扰, 可见干扰对单片机应用系统造成的影响有多么恶劣。

软件的可靠性设计

由上文所介绍的单片机应用系统运行过程不难知道, 要使最终的响应结果可靠, 必须为程序运行创造一个安全可靠的运行环境, 使程序能井然有序地运行, 要使程序运行环境安全可靠, 一是硬件基础必须可靠, 有足够的能力承担程序的运行压力, 二是软件必须可靠, 软件的可靠性主要体现在三个方面:足够的时序余度、足够的容错设计以及初始化数据存储器。

1足够的时序余度

要使程序能够有序地运行, 必须考虑时序这一因素。在设计软件的过程中, 必须保证时序的正确性, 使程序能在正确的时序下运行。除此之外, 为使程序在运行过程中不发生意外, 并且保证程序能迅速有效地运行, 还要注意设计出足够的时序余度。

2足够的容错设计

尽管单片机拥有许多抗干扰的机制, 但由于其工作环境太过复杂, 干扰还是不能避免的。除了外界环境对单片机的干扰之外, 还存在许多人为因素与硬件因素造成的干扰, 比如操作失误、硬件出错等。因此在设计软件时还要有足够的容错设计, 在单片机应用系统受到不正常激励信号的时候, 足够的容错设计能屏蔽掉大部分的不正常激励信号, 对于那些没有被屏蔽掉的不正常激励信号, 软件的容错设计能对其进行有序化处理, 使单片机应用系统在受到不正常激励信号干扰的情况下还能保证程序的正常运行, 除此之外, 足够的容错设计还能减轻干扰对单片机应用系统的影响。

3初始化数据存储器

在单片机应用系统运行过程中, 存在许多数据处理、数据存储的问题, 因此, 数据存储器对于单片机应用系统是非常重要的。当单片机刚上电时, 单片机应用系统及数据存储器通常会有些不稳定, 如果直接使用数据存储器, 可能会导致所读数据出现偏差。因此, 在软件设计时, 应注意对数据存储器的初始化, 使软件的可靠性得以加强。

数字量输入过程中的软件抗干扰方法

1算术平均法

算术平均法是指在数字量输入过程中对数据进行多次采样 (采样次数最好为偶数, 这样执行右移指令就可以完成) , 在这些采样数据中, 去掉最大值和最小值, 然后对余下的采样数据进行求和, 求和之后进行平均, 得到的平均值就是有效采样值。怎样使用算术平均法要从两个方面进行考虑:第一, 慢变参数应在采样的同时进行数据处理, 这样可以减少干扰对结果的影响, 除此之外, 还应注意不要在运行内存中开辟数据暂存区。第二, 快变参数应按照前文所说的一般步骤进行, 即先采样, 再对采样结果进行处理, 除此之外, 还应注意在运行内存中开辟足够的数据暂存区。

2竞赛平均值法

竞赛平均值法是算术平均法的升级。由前文可以得知, 使用算术平均法要在同一时间点进行多段采样, 但随机误差是时时刻刻都在变化的, 因此, 当外界环境变数过多时, 算术平均法产生的结果并不具有实用性, 竞赛平均值法正是基于这一点提出的。尽管随机误差不可预料, 但随机误差总体来说具有三个性质, 即有界性、抵偿性以及对称性。针对随机误差的三个性质, 竞赛平均法对其进行了相应的改变。竞赛平均值法是指在某一时间段 (时间段应较小) 内, 快速地对某一个数据量进行多次采样, 为使采样结果较为准确, 采样次数应尽量多, 在多个采样数据中去掉几个明显较大或较小的值 (去掉最大值和最小值时要注意对称, 比如去掉三个最大值, 就应去掉三个最小值) , 然后对余下的采样值进行求和, 求和之后进行平均, 所得到的算术平均值即有效采样值。

3中位值滤波法

由于在采样时可能会存在因偶然因素发生波动以及采样器不稳定的问题, 因此, 必须要探索一种能有效解决这种问题的方法, 中位值滤波法就可以有效克服这种问题。中位值滤波法是指对数据进行多次采样, 将采样数据从大到小进行排列, 然后将其从左至右分为相等的三部分, 去掉左右两部分, 取中间那一部分对其进行求和, 求和之后进行平均, 所得的平均值即为有效采样点。

4一阶递推数字滤波法

5比值滤波法

单片机应用系统除了会受到来自外界的随机误差, 系统本身也会产生误差, 但上述的方法却不能对系统误差做出有效的处理。单片机应用系统产生系统误差主要有两种情况:第一, 在上文所说的算术平均法中, 需要在同一时间点进行多段取样, 此时系统在处理误差的时候会保证其符号与绝对值的一致, 但可能有时候误差之间还是存在许多差别的, 这时就产生了系统误差。第二, 外界环境是极为不确定的, 在以上处理干扰的方法中, 有些方法是在外界环境发生变化时进行采样的, 由于外界环境的不确定性, 采样数据也在按照一个不确定的方向变化, 但单片机应用系统很有可能将这种不确定变化处理成近似确定的变化规律, 由此就产生了系统误差。对于系统误差, 就应该使用比值滤波法进行解决, 比值滤波法是指对信号进行多次测量, 将被测信号数据与参考数据相除, 然后记录下比值, 将比值作为测量的数据。显而易见, 使用比值滤波法所得到的测量数据也会随着外界环境的不确定变化而变化, 这样就避免了系统误差对测量结果的干扰。

数字量输出过程中的软件抗干扰方法

前文已经介绍了干扰对单片机应用系统各个运行过程造成的影响, 在数字量输出过程中, 干扰会使本来正确的数据发生改变, 从而导致响应墙响应的结果发生错误。针对这种干扰情况, 应注意防止输出设备发生误动作, 要防止输出设备发生误动作, 就应该注意对输出结果进行重复输出, 使输出结果在不断输出时, 输出设备还来不及对干扰进行响应, 除此之外, 在数字量输出的过程中, 还应注意对输出结果进行监控, 最为简单的方法就是将输出通道设置在监控循环之中, 然后注意对输出接口芯片进行初始化。基于重复输出防止输出设备发生误动作的思想, 软件应做出相应的改进, 对于软件的改进主要有三个方面:第一, 软件冗余;第二, 注意设置自检程序;第三, 注意设置当前输出状态寄存单元。

程序跑飞的软件抗干扰方法

1设置软件陷阱

软件陷阱是针对跑飞的程序设置的, 软件陷阱可以强迫跑飞的程序进入复位入口地址, 从而使跑飞的程序继续正常有序地运行。设置软件陷阱的位置可以是中断服务程序区、没有使用的EPROM与中断区、非EPROM芯片空间以及运行程序区, 在这些区域中设置一条空操作指令, 然后周期性地写入一条引导指令, 就可以有效的将跑飞的程序引入复位入口位置。

2指令冗余

当CPU在提取指令时, 会先提取操作码, 然后再提取操作数, 而指令的排序就决定了数据是否为操作码。CPU循环进行对操作码和操作数的提取取决于时序, 而时序又是由程序计数器PC决定的, 因此, 一旦程序计数器发生错误, CPU就不能正常提取操作码和操作数。要解决这种问题, 就要设置指令冗余, 即在双字节或三字节的指令后面添加两个空指令, 这就可以使后续命令能完整地发出。

3设置监视跟踪定时器

当程序跑飞且进入死循环时, 以上两种方法都不能对这种情况进行有效的解决。这种情况应使用监视跟踪定时器进行解决, 监视跟踪定时器能自动监视程序, 基本上不依赖CPU, 且每隔一段时间都会向系统反馈程序运行状况, 当系统进入死循环时能使其复位。

总结

单片机软件抗干扰技术 篇5

短波发射机是发射台的核心设备, 也是自动化控制系统主要的控制对象, 发射机产生高频电能并通过天馈线发射强电磁波, 在发射台内也产生各种复杂的高频干扰, 而与单片机控制系统相连的被控对象及待测参数往往遍布整个发射区域内, 这就使得各种强烈的干扰源直接或间接的影响微机控制系统的工作。这些干扰源会使系统的可靠性和稳定性大大降低, 严重的还会导致系统的运行紊乱, 造成停播事故。因而在实际的应用设计中, 就要提高控制系统的抗干扰能力, 保证控制系统可靠的工作。

单片机应用系统的抗干扰措施具体可分为硬件和软件两方面, 其中软件抗干扰以其设计灵活、不需增加硬件资源、成本低等优势越来越得到广泛采用。在实际应用中, 软件抗干扰主要从两方面入手: (1) 对输入输出信号的处理; (2) 程序失控时的处理。在此, 本文分别对这两方面进行较深入的探讨。

1对输入输出信号的处理

采用合适的软件滤波算法对消除信号通道中的干扰信号 (特别是脉冲干扰和工频干扰) 可以获得很好的效果。

(1) 消除偶然脉冲干扰的滤波:

消除偶然脉冲干扰可采用限幅滤波法和中值滤波法。

限幅滤波法是用当前的采样值y (n) 和上一次采样值y (n-1) 进行比较, 若差值超过最大可能的变化范围, 则当前采样值无效, 仍取上一次采样值。差值的最大变化范围可用参数的最大变化率和采样周期的乘积决定。中值滤波法是对被测参数连续采样m次 (m≥3) , 并按大小顺序排列, 从首尾各舍掉1/3个大数和小数, 再将剩余的1/3个大小居中的数据进行算术平均, 作为本次采样的有效数据进入计算机。

(2) 消除低频干扰的滤波:

极低频干扰经常会突破硬件的抗干扰措施进入微机系统, 对此可以采用一段程序来模拟RC滤波器, 其计算公式为:Y (n) = ax (n) + (1-a) Y (n-1) , 其中x (n) 为第n次采样时滤波器输入值, Y (n-1) 为第 (n-1) 次采样时滤波器输出值, a=Ts/ (Ts+Tf) 称为滤波系数, Ts是采样周期, Tf是滤波器的时间常数, 它由低频干扰信号的频率来决定。

(3) 消除周期性干扰的滤波:

周期性干扰的消除可以采用递推平均滤波法, 它始终取最新的m个输入信号的平均值为滤波器输出, 其递推公式为:y (n) =Y (n-1) +[x (n) -y (n-m) ]/m, 当对象的纯滞后较大时, 可采用加权递推平均滤波算法, 越接近现时刻的数据其权取得越大。

上述三种数字滤波方法若需要同时采用时, 应注意使用的先后顺序, 一般先进行消除偶然脉冲干扰的滤波, 再进行其它滤波算法。

2程序失控时的处理

2.1 “看门狗 (WATCHDOG) ”技术

“WATCHDOG”即监控定时器, 俗称看门狗, 是自动化控制系统普遍采用的一种抗干扰措施。

“WATCHDOG”有多种用法, 主要用于因干扰引起的系统程序弹飞的出错检测和自动恢复。它实质上是一个可由CPU复位的定时器, 原则上可由定时器以及与CPU之间的适当的输入/输出接口电路组成, 如振荡器加上可复位的计数器构成的定时;各种可编程的定时器/计数器;单片机内部的定时/计数器等。

图1为“WATCHDOG”的工作原理, 两个计时周期不同的定时器T1, T2, 假如两定时器的时钟源相同, 设T1=1。0S, T2=1。1S, 用T1定时器的溢出脉冲P1同时对T1, T2定时器清零。那么, 只要T1定时器工作正常, 则T2定时器永远不会计时溢出。一旦定时器T1不再计时, T2就会计时溢出, 产生溢出脉冲P2, 表明T1出了故障。这里T1是应用程序的周期, T2即是“WATCHDOG”, 利用输出脉冲P2并进行巧妙的程序设计, 可以检测出系统的出错, 使弹飞的程序重新回到正常的轨道中。

图2所示为“WATCHDOG”的构成, 实际上它是一个和CPU构成闭合回路的定时器。当程序弹飞到一个临时形成的死循环里, 或者PC指针落到EPROM的芯片范围外, 即全地址区之外时, 系统将完全瘫痪。“WATCHDOG”可以代替人工对系统自动复位, 使CPU从死循环或弹飞状态回到正常的程序流程中。

以下是利用8031的定时器T0来形成的一个软件WATCHDOG。将T0的溢出中断设为高级中断, 其它中断均设置为低级中断, 若采用6 MHz的时钟, 定时时间约为10 ms, 则软件程序如下:

这一程序启动后, 系统工作程序必须每隔小于10 ms的时间执行一次MOV THO, #0EOH指令, 重新设置T0的计数初值。如程序弹飞或进入死循环后执行不到这条指令, 在10 ms之内即会产生一次T0的溢出中断, 如在T0中断向量区安放一条转移到出错处理程序的指令:LJMP ERR, 则由出错处理程序来进行必要的处理。

2.2软件陷阱

软件陷阱是通过指令强行将捕获的程序引向一指定的地址, 并在此用专门的出错处理程序加以处理的软件抗干扰技术。干扰可能使程序脱离正常的运行轨道, 软件陷阱技术在陷阱处强令程序进入复位状态, 这样走飞的程序又回到初始化状态, 不会出现“死机”现象。这种方法的指导思想是把控制系统中未使用的单元用某一种引导指令填满, 作为软件陷阱, 以捕获飞掉的程序, 并强行将捕获的程序引向指定的地址, 在那里由一段专门处理错误的程序进行处理, 以恢复系统的正常运行。为提高对弹飞程序的捕获率, 通常还要在引导指令前置两条空操纵指令, 例如:

NOP

NOP

LJMP ERR

上述3条指令就构成一个软件陷阱, 其中ERR为处理错误的程序入口地址。

2.3 CPU睡眠法

CPU并不是随时都处于工作状态, 有许多情况是在执行循环检查程序或踏步等待命令, 这时, CPU干事不多容易受干扰。如果让CPU此时睡眠, 而在有活干时用中断系统唤醒它, 干完工作再睡眠, 则CPU受到的随机干扰将大大减少。在80C31单片机中, 通过执行ORL PCON, 撑1指令就可以让CPU进入睡眠, 在睡眠状态中只有定时计数系统和中断系统处于值班工作状态。

2.4指令冗余法

微机、单片机受到干扰后, 往往会把操作数当作指令码来执行.从而引起整个程序的混乱和程序弹飞。当程序弹飞到某一条单字节指令上时, 就不会发生将操作数当成指令的错误, 而能自动纳入正轨。当弹飞到双字节或三字节指令的操作数上时.程序将继续弹飞。因此, 在程序中插入两个单字节的空操作指令NOP, 就可以保护其后面的指令不被拆散而被完整地执行。为抑制程序的弹飞而在其中增加多余指令的方法就叫指令冗余。

2.5设置检验标志单元

微机 (单片机) 系统受干扰而导致出错后, 若无法自动恢复, 通常是由于RAM 区数据被破坏的缘故。因此, 可以利用数据RAM单元设置检验标志单元, 应用程序定期检查各标志, 若标志正确, 相应功能程序正常运行, 否则, 进入初始化程序。

3结束语

在发射台自动化系统中, 利用其微机控制系统在软件编程方面的灵活性, 采取各种软件抗干扰措施, 能够大大地提高仪器仪表的可靠性。但软件抗干扰设计没有固定模式, 灵活多样.并且正在不断地发展。本文仅介绍了几种常用的软件抗干扰措施, 如果能够与硬件抗干扰措施相结合, 发射台自动化系统的抗干扰能力和可靠性将会提高到一个新的水平 。

摘要:单片机的应用系统中, 由于短波发射台存在的各种复杂干扰, 非常容易导致系统不稳定甚至无法正常工作。因此, 如何确保系统的稳定性运行是我们的重点。本文从实践的角度出发, 对软件抗干扰措施作了比较细致的探讨。

关键词:单片机,可靠性,软件抗干扰

参考文献

[1]何立民.单片机应用系统设计[M].北京:北京航空航天大学出版社, 1999.

[2]徐爱钧.智能化测量控制仪表原理与设计[M].北京:北京航空航天大学出版社, 1995.

小议单片机系统抗干扰技术 篇6

1 单片机系统的构成情况

单片机系统的硬件电路主要由五个部分构成:其一是信号检测部分;其二是信号处理与控制部分;其三是控制信号驱动部分;其四是系统交互部分;其五则是显示部分。由此可见, 单片机系统的构成成分较为复杂, 不仅包括了多种类型的传感器, 种类繁多的继电器、接触器及电磁阀, 而且还有各种集成电路, 多种形式的耦合器件、各执行部件以及显示器件等等。

2 单片机系统受干扰的种类

干扰是指叠加在有用信号之上的那部分无用信号。干扰以电信号的形式存在, 通过混入有用信号的形式来侵入单片机系统, 从而导致系统无法稳定工作。在各种实际环境之中, 干扰总是不可避免地存在着, 这些干扰极有可能会降低电子系统的有效性, 甚至将破坏电子系统的可靠性。干扰分为主要两种形式:一种是系统内部元器件在工作过程中所产生的干扰, 克通过地址、电源线、信号线及电感等进行传输, 进而影响到系统的工作状态。另一种是系统外部的其它设备所形成的干扰, 主要可通过传导辐射等进行传播, 从而影响到单片机系统的工作。

3 单片机硬件抗干扰技术

3.1 抑制电源干扰

系统可采用交流稳压器, 从而确保供电之稳定性, 防止电源产生过压或欠压。我们可使用隔离变压器来滤去高频噪声, 还可使用低通滤波器来滤去工频干扰。主机部分则可利用单独稳压电路来抑制干扰。

3.2 使用过压保护电路

在输入输出的通道中, 要采用过压保护电路, 以防止引入高电压, 避免伤害到系统。过压保护电路一般是由限流电阻及稳压管构成。要选择合理的限流电阻, 一旦电阻过大, 就会造成信号衰减, 而电阻过小, 则难以起到有效保护稳压管的作用。在稳压管稳压值的确定上, 应当略高于最高传送信号的电压, 如果太低, 就会对有效信号产生限幅效果, 从而造成信号失真现象。

3.3 采取差动放大输入和输出信号

鉴于绝大多数干扰信号都是共模信号, 所以, 为有效抑制干扰, 可顺势采用差动放大器与双端输出信号。在接收过程中, 要运用差动放大电路, 把信号转换成为单端信号。这种抗干扰的方法, 在应对远距离信号输送的抗干扰上显得十分有效。

3.4 减少系统连接中工作部件之间的干扰

在单片机系统中, 可充分利用双绞线来解决控制系统中所出现信号长线传输问题。事实证明, 双绞线的抗干扰能力很强, 能够让各个小环路上的电磁感应干扰实现相互抵消。况且, 双绞线的分布电容仅为数十皮法, 距离信号源十分近, 不仅能起到积分的作用, 而且还能对电磁场产生一定的抑制效果。

3.5 配置去藕电容

数字电路信号进行电平转换的过程中, 十分容易产生巨大的冲击电流, 还有可能在传输线与电源的内阻上造成较大压降, 形成较为严重的干扰。为有效控制这种干扰, 可在系统电路中合理地配置去耦电容, 其作用是主要有两个方面:其一是能够提供和吸收集成电路在开门瞬间的充、放电能量, 其二是还能过滤集成电路的部分高频噪声。在电路布线的过程中, 去耦电容一定要尽力接近集成电路的电源输入端。

4 单片机软件抗干扰技术

4.1 使用软件看门狗

单片机系统受干扰之后, 极有可能形成程序失控, 引起程序乱飞现象, 也有可能导致程序进入死循环状态。如果使用了看门狗技术, 就可不断地监视程序运行的时间, 一旦发现时间已经超过了设定的时间, 那么就可以认为系统已进入到了死循环状态。那么, 看门狗将立即采取行动, 将CPU复位, 并强迫程序返回到0000H处, 并在该处设置出一段出错处理程序, 从而让系统能够运行, 并返回到正常程序之中。软件看门狗一般占用的是单片机系统的定时器。在主程序运行过程中, 要围绕定时器的溢出周期对定时器实施初始化处理, 如果程序已经受到了干扰跑飞, 那么就应当在中断的子程序中设置出一条内容为出错跳转的指令, 并随即将程序转移至出错子程序行列, 并在出错子程序当中来完成程序的初始化过程。

4.2 采用软件陷阱

所谓的软件陷阱, 主要就是指用引导指令将捕捉到的各种乱飞程序重新引到复位入口地址0000H处, 并在该处转到专门对程序出错开展处理的程序, 从而让程序纳入正规流程。使用方法是在程序存储器的未使用区域中加入几条空操作指令和无条件跳转指令。无条件跳转指令都会转向复位入口的地址。

4.3 运用指令冗余

指令冗余主要是运用在程序区之中, 运用指令冗余的主要方法是:在正常的指令之后, 要插入一部分NOP指令, 或者是将有效字节进行重写。在运用了指令冗余技术之后, 不但能够让跑飞程序纳入到正规流程, 而且还能有助于消除单片机系统要面对的随机干扰, 进一步提高系统的可靠性。

4.4 实施开机自检

开机自检程序主要包括了对R A M、ROM与I/O口等状态所进行的检测。在程序的编制中, 可以将RAM或ROM中的内容分区分别存放, 在程序运行的初始或中间过程, 要经常对上面这些数据开展比较检查, 一旦发现有数据出错, 就立即重写这部分数据, 避免系统受到干扰。

5 结语

综上所述, 抗干扰技术是一项较为复杂的技术手段, 然而又是单片机系统在设计过程中必须要详加考虑的重要环节。笔者认为, 惟有有效地运用硬件抗干扰与软件抗干扰技术, 才能保证单片机系统的长期、稳定与可靠的运行。就抗干扰技术而言, 硬件抗干扰是十分主动的, 而软件抗干扰则是较为被动的。与硬件抗干扰技术进行比较, 软件抗干扰技术不仅在设计上较为灵活, 而且还能节约硬件资源, 成本也较低。在工程实践之中, 我们往往采取多种抗干扰方法并用的形式, 通过多种手段的互相补充、完善, 从而取得最为理想的抗干扰效果。

摘要:单片机系统抗干扰能力的强弱, 一直是设计工作中必须考虑到的重要课题。然而, 由于单片机系统的复杂性, 如何应用抗干扰技术, 对于系统究竟要采取哪些措施, 对于设计者来说, 还是一个难题。本文就此分析了单片机系统的构成情况及受干扰的种类, 并分别从硬件抗干扰和软件抗干扰等方面探讨了单片机系统抗干扰技术。

关键词:单片机系统,硬件抗干扰,软件抗干扰

参考文献

[1]程继兴.单片机系统软件抗干扰措施[M].电子测量技术, 2003 (6) .

浅谈单片机抗干扰技术 篇7

1 干扰因素

1.1 干扰的构成

构成干扰必须具备三个主要因素:干扰源、耦合或传播途径及干扰接受器, 如图1所示。

在单片机系统和电子设备中, 一个电路抗干扰的程度可以用S=WC/I表示, 其中:S示电子线路受干扰的程度;W示干扰源的强度;C示耦合或传播途径的因素;I表示电路的抗干扰能力;要减少干扰, 需尽量减少干扰源的强度, 也可降低干扰耦合因素或切断干扰途径, 或采取措施提高电路的抗干扰能力。

1.2 干扰的来源

现场环境中干扰是脉冲的形式进入单片机系统, 干扰形式主要有三种:空间干扰, 多发生在高压电、大电流、高频电磁场附近, 并通过静电感应, 电磁感应等方式侵入系统内部;供电系统干扰, 它是危害最严重也是最广泛的一种干扰, 是由于电源的噪声干扰引起的;过程通道干扰, 干扰是通过前向通道和后向通道以及其他主机的相互通道进入系统的。

1.3 干扰对单片机应用系统的影响

1.3.1 使测量数据误差加大。

干扰信号侵入单片机系统测量单元模拟信号的输入通道, 叠加在测量信号商, 会使数据采集误差加大, 甚至干扰信号淹没测量信号, 特别是检测一些微弱信号。

1.3.2 影响单片机RAM存储器和E-PROM等。

在单片机系统中, 存在程序存储器E-PROM或FLASH中的数据存, 可以免受干扰。但是对于片内RAM、外扩RAM、E-PROM中的数据都有可能受到外界干扰而变化。

1.3.3 控制系统失灵。

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

1.3.4 程序运行失常。

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

2 单片机应用系统的硬件抗干扰设计

2.1 保证供电系统稳定性

为防止从电源系统引入干扰, 可采取交流稳压器保证供电的稳定性, 防止电源的过压和欠压, 使用隔离变压器滤掉高频噪声, 低通滤波器滤掉工频干扰。同时, 可采用开关电源并提供足够的功率余量, 主机部分使用单独的稳压电路, 必要时输入、输出供电分别采用DC-DC模块隔离, 以避免各个部分相互干扰。

2.2 隔离与屏蔽

信号的隔离目的之一是从电路上把干扰源和易受干扰的部分隔离出来, 使监控装置与现场仅保持信号联系, 但不直接发生电的联系。隔离的实质是把引进的干扰通道切断, 从而达到隔离现场干扰的目的。一般单片机应用系统既有弱电控制系统又有强电控制系统, 通常实行弱电和强电隔离, 是保证系统工作稳定、设备与操作人员安全的重要措施。常用的隔离方式有光电隔离、变压器隔离、继电器隔离和布线隔离等。典型的信号隔离室光电隔离。使用光电隔离器件将单片机的输入输出隔离开, 一方面使干扰信号不得进入单片机系统, 另一方面单片机系统本身的噪声也不会以传导的方式传播出去。

2.3 单片机系统的复位电路设计

通常单片机都有一个复位引角, 用于系统的复位。但复位电路易受电源波动的干扰, 当单片机电源收到干扰后, 电压下降至低电平时, 复位端电位也跟随下降至低电平。显然会引起单片机的复位, 使单片机无法正常工作。为此, 在设计中对复位电路进行改进。复位电路在复位端与地之间分别并联了一个简单的RC滤波电路, 从而有效抑制了单片机电源波动对复位端的影响。

2.4 印刷线路板的布线与工艺

印刷线路板的设计对单片机系统能否抗干扰非常重要。要本着尽量控制噪声源、尽量减小噪声的传播与耦合, 尽量减小噪声的吸收这三大原则设计印刷线路板和布线。单片机系统印刷线路板通常可分三区, 即模拟电路区, 数字电路区, 功率驱动区。印刷板按单电接电源、单点接地原则送电。三个区域的电源线、地线由该点分三路引出。噪声元件与非噪声元件要离得远一些。时钟震荡电路、特殊高速逻辑电路部分用地线圈起来, 让周围电场趋近于零;能用低速的就不用高速的, 高速器件只用在关键的地方;使用满足系统要求的最低频率的时钟, 时钟产生器要尽量靠近用到该时钟的器件;石英晶体振荡器外壳要接地, 时钟线要尽量短。

3 软件抗干扰技术

3.1 指令冗余技术

单片机最易受干扰的是内部程序计数器-PC的值。在受到强干扰时, PC的值被改变, 改变后的值是随机的不确定值。这可使CPU将程序从正确的位置跑飞到ROM中的任何一个地址, 当PC值飞到用户工作程序ROM区内时, 可采用指令冗余的方法使程序走上正轨。具体方法是:流向起决定性作用的指令。对系统工作至关重要的指令。中每隔若干条指令, 一条NOP指令。节指令前插入一条或两条NOP指令。

3.2 软件滤波技术

对于实时数据采集系统, 为了消除传感器通道中的干扰信号, 可采用软件滤波方法。常用的软件滤波方法有:去极值平均滤波法:对重要信号进行多次N刺采样, 去除最大和最小值, 取剩余的N-2个值的平均值。此方法可消除由于偶然出现的脉冲干扰引起的采样值偏差。程序判断滤波法:根据经验确定出两次采样的最大偏差值ΔY, 若两次采样信号相减数值大于ΔY, 表明为干扰信号, 应去除。用上次采样值与本次采样值比较, 若小于或等于ΔY, 表明没有收到干扰, 此时采样值有效, 这种方法可虑去随机干扰和由传感器不稳定引起的误差。

3.3 设置系统自检程序

自检程序能对单片机测控系统的主要器件如单片机内部RAM, SFR及EPROM, I/O芯片等进行故障检查和诊断, 并能给出故障部位。设置自检程序是提高测控系统可靠性的有效方法之一。

抗干扰技术是单片机系统设计过程中重要的环节, 需合理的使用软件、硬件抗干扰技术, 硬件抗干扰是主动措施, 与之相比软件抗干扰就是被动措施。只有将软、硬件相结合的抗干扰措施, 才能有效的保证系统长期、可靠地运行。在选用抗干扰方案时, 还需要考虑系统的性价比。对于重要的设施或是在干扰后可能造成巨大损失的系统, 应选用可靠性较高的抗干扰方法。综合选用多种抗干扰的方法并把他们有机地结合起来, 将有助于解决单片机系统的抗干扰问题。

摘要:随着单片机技术及其他电子技术的发展, 单片机以其超小型化、高可靠性和高性价比的特点, 广泛地应用于工业自动化、生产过程控制、智能仪器仪表等各个领域。但由于测控系统的工作环境复杂, 有时还比较恶劣, 比如系统周围的电磁环境, 因此必须采取抗干扰措施, 否则难以稳定、可靠运行。对单片机系统的可靠性提出了更高的要求。单片机系统的可靠性由多种因素决定, 其中系统抗干扰性能是可靠性的重要指标。在分析干扰对单片机系统危害的基础上, 介绍了单片机应用系统的硬件抗干扰技术, 这些技术在实际应用中取得了良好的效果。

关键词:单片机,硬件,抗干扰

参考文献

[1]杨国山.单片机测控系统软件抗干扰技术浅析[J].装备制造技术, 2008.

[2]朱顺华, 王成春, 邹逢兴.单片机控制系统的硬件抗干扰设计[J].微计算机信息, 2007.

[3]夏铭, 颜群.单片机抗干扰技术研究[J].电脑与信息, 2008.

上一篇:外来工子弟下一篇:建筑工程设计质量