当前位置:文档之家› 单片机抗干扰措施

单片机抗干扰措施

在工业控制、智能仪表中都普遍采用了单片机,单片机抗干扰措施提到重要议事日程上来。单片机抗干扰措施不解决,其它工作也是白费劲。要解决单片机干扰问题,必须先找出干扰源,然后采用单片机软硬件技术来解决。



干扰源:主要来自外部电源、内部电源,印制板排版走线互相干扰,周围电磁场干扰,外部干扰一般通过IO口输入等



按干扰的传播路径可分为传导干扰和辐射干扰两类。
所谓传导干扰是指通过导线传播到敏感器件的干扰。高频干扰噪声和 有用信号的频带不同,可以通过在导线上增加滤波器的方法切断高频干扰 噪声的传播,有时也可加隔离光耦来解决。电源噪声的危害最大, 要特别注意处理。 所谓辐射干扰是指通过空间辐射传播到敏感器件的干
扰。一般的解决方法是增加干扰源与敏感器件的距离,用地线把它们隔离和在敏感器件上加蔽罩。




影响单片机系统可靠安全运行的主要因素主要来自系统内部和外部的各种电气干扰,并受系统结构设计、元器件选择、安装、制造工艺影响。这些都构成单片机系统的干扰因素,常会导致单片机系统运行失常,轻则影响产品质量和产量,重则会导致事故,造成重大经济损失。
形成干扰的基本要素有三个:
(1)干扰源。指产生干扰的元件、设备或信号, 用数学语言描述如下:du/dt, di/dt大的地方就是干扰源。如:雷电、继电器、可控硅、电机、高频时钟等都可能成为干扰源。
(2)传播路径。指干扰从干扰源传播到敏感器件的通路或媒介。典型的干扰传播路径是通过导线的传导和空间的辐射。
(3)敏感器件。指容易被干扰的对象。如:A/D、 D/A变换器,单片机,数字IC,弱信号放大器等。
1 干扰的分类
1.1 干扰的分类
干扰的分类有好多种,通常可以按照噪声产生的原因、传导方式、波形特性等等进行不同的分类。按产生的原因分:
可分为放电噪声音、高频振荡噪声、浪涌噪声。
按传导方式分:可分为共模噪声和串模噪声。
按波形分:可分为持续正弦波、脉冲电压、脉冲序列等等。
1.2 干扰的耦合方式
干扰源产生的干扰信号是通过一定的耦合通道才对测控系统产生作用的。因此,我们有必要看看干扰源和被干扰对象之间的传递方式。干扰的耦合方式,无非是通过导线、空间、公共线等等,细分下来,主要有以下几种:
(1)直接耦合:
这是最直接的方式,也是系统中存在最普遍的一种方式。比如干扰信号通过电源线侵入系统。对于这种形式,最有效的方法就是加入去耦电路。
(2)公共阻抗耦合:
这也是常见的

耦合方式,这种形式常常发生在两个电路电流有共同通路的情况。为了防止这种耦合,通常在电路设计上就要考虑。使干扰源和被干扰对象间没有公共阻抗。
(3)电容耦合:
又称电场耦合或静电耦合。是由于分布电容的存在而产生的耦合。
(4)电磁感应耦合:
又称磁场耦合。是由于分布电磁感应而产生的耦合。
(5)漏电耦合:
这种耦合是纯电阻性的,在绝缘不好时就会发生。




为叙述方便,我们分硬件、软件抗干扰措施来讲:



以MSC-51系列的8031单片机为例,给出了在软硬件设计的不同阶段,对于不同干扰应采取的一些措施。



2 单片机系统软件的抗干扰



一般来讲,窜入微机测控系统的干扰,其频谱往往很宽,采用硬件抗干扰措施,只能抑制某个频率段的干扰,仍有一些干扰会进入系统。因此,除了采取硬件抗干扰方法外,还要采取软件抗干扰措施。




(二)软件抗干扰措施
 1.多用查询代替中断,把中断源减到最少,中断信号连线不大于0.1米,防止误触发、感应触发
 2.A/D转换采用数字滤波,平均法,比较平均法等,防止突发性干扰
 3.MCS-51单片机空单元写上00H,最后放跳转指令到ORG 0000H,因干扰程序走飞,可能抓回去
 4.多次重复输出,输出信号保持在RAM中,防止干扰信号输出
 5.开机自检自诊断,RAM中重要内容要分区存放,经常进行比较检查,机器不能带病工作
 6.表格参数放在EPROM中,检验和存于最后单元,防止EPROM内容被修改
 7.加看门狗,软件走飞可从头开始
 8.开关信号延时去抖动
 9.IO口正确操作,必须检查口执行命令情况防止外部故障不执行控制命令
 10.通讯应加奇偶校验或查询表决比较等措施,防止通讯出错




2.1 模拟输入信号抗干扰



叠加在系统模拟输入信号上的噪声干扰,会导致较大的测量误差。但由于这些噪声的随机性,可以通过数字滤波技术剔除虚假信号,求去真值。常用方法如下:



(1)算术平均滤波法算术平均滤波法就是连续取N个值进行采样,然后求其平均值。该方法适应于对一般具有随机性干扰的信号进行滤波。这种滤波法的特点是:N值较大时,信号的平滑度好,但灵敏度低;当N值较小时,平滑度低,但灵敏度高。



(2)递推平均滤波法

该方法是把N个测量数据看成一个队列,队列的长度为N,每进行一次新的测量,就把测量结果放入队尾,而扔掉原来队首的一次数据。计算N个数据的平均值。对周期性的干扰,此方法有良好的抑制作用,平

滑度高,灵敏度低。但对偶发脉冲的干扰抑制作用差。

(3)防脉冲干扰平均值滤波法



在脉冲干扰比较严重的场合,如果采用一般的平均滤波法,则干扰将会“平均”到结果中去,故平均值法不易消除由于脉冲干扰而引起的误差。为此,在N个采样数据中,取掉最大值和最小值,然后计算N-2个数据的算术平均值。为了加快测量速度,N一般取值为4。
2.2 “死机”现象的克服



当干扰通过总线或其他口线作用到CPU时,就会造成程序计数器PC值的改变,引起程序混乱,使系统失控。因此,在设计单片机系统时,如何发现CPU受到干扰,并尽可能无扰地使系统恢复到正常工作状态是软件设计应考虑的主要问题。



无论何种控制系统,一般讲,死机现象都是不允许的。克服死机现象最有效的办法就是采用单片机工加了硬件看门狗电路后仍然有死机现象,分析原因,可能有以下方面:

(1)因为某种原因,程序混乱后,看门狗电路虽然发出了复位脉冲,但在程序刚刚正常还来不及发出一个脉冲信号,此时程序再次被干扰,而这时看门狗电路已处于稳态,不能再发出复位脉冲。



(2)程序进入死循环,在该死循环中,恰好又有看门狗监视I/O口上操作的指令。而该I/O口仍有脉冲信号输出,看门狗检测不到这种异常情况。



(3)在有严重干扰时,中断方式控制字有时会受到破坏,导致中断关闭。



可见,只用硬件看门狗电路是无法确保单片机正常工作的。因此,可采用以下方法作为补充。

(1)软件“看门狗”的应用



选用定时器T0作为看门狗,将T0的中断定义为最高级中断。看门狗启动后,系统必须及时刷新T0的时间常数。



(2)指令冗余技术



①NOP的使用



在8031单片机指令系统中所有指令都不超过3个字节。因此,在程序中连续插入3条NOP指令,有助于降低程序计数器发生错误的概率。

②重要指令冗余



对于程序流向起决定作用的指令(如RET,RETI,ACALL,LJMP,JZ等)和某些对系统工作状态有重要作用的指令(如SETBEA等)的后面,可重复写下这些指令,以确保这些指令的正确执行。



(3)软件陷阱法



单片机系统程序跑飞意味着CPU执行不正确流程程序。而当乱飞程序进入非程序区,采用冗余技术无法使程序纳入正确轨道,此时可采用软件陷阱法,拦截乱飞程序。软件陷阱就是用引导指令(如LJMP)将扑获到的乱飞程序引向复位入

口地址0000H,在此对程序进行出错处理,使其纳入正轨。



①软件陷阱格式
NOP
NOP
LJMP0000H
②软件陷阱安排未使用的中断区;
未使用的大片ROM空间;
程序区;
中断服务程序区。



2.3 系统复位特征



单片机应用系统采用看门狗电路后,在一定程度上解决了系统死机现象,但是每次发生复位都使系统执行初始化,这在干扰较强的情况下仍不能正常工作。同时系统虽然没有死机,但工作状态频繁改变,这同样是不能容忍的。



理想的复位特征应该是:系统可以鉴别是首次上电复位(又称冷起动),还是异常复位(又称热启动)。首次上电复位则进行全部初始化,异常复位则不需要进行全部初始化,测控程序不必从头开始执行,而应故障部位开始。



(1)上电标志的设定方法
①SP建立上电标志。
②PSW.5建立上电标志。
③内RAM建立上电标志。



(2)软件复位与中断激活标志

当系统执行中断服务程序时,来不及执行RETI指令而受干扰跳出该程序后,程序乱飞过程中由软件陷阱或软件“看门狗”将程序引向0000H,显然这时中断激活标志并未清除,这样就会使系统热启动时,不管中断标志是否置位,都不会响应同级中断的请求。因此,由软件陷阱或“看门狗”捕获的程序一定要完成清除 MSC-51系列中中断激活标志,才能消除系统热启动后不响应中断的隐患。



(3)程序失控后恢复运行的方法



一般来说,主程序是由若干个功能模块组成,每个功能模块入口设置一个标志,系统故障复位后,可根据这些标志选择进入相应的功能模块。这一点对一些自动化生产线的控制系统尤为重要。



总之,微机测控系统由于受到严重干扰而发生程序乱飞、陷入死循环以及中断关闭等故障。系统通过冗余技术、软件陷阱技术和“看门狗”技术等,使程序重新进入 0000H单元,纳入正轨。因故障而进入0000H后,系统要执行上电标志判定、RAM数据检查与恢复、清除中断激活标志等一系列操作,决定入口地址。



2.4 睡眠抗干扰



在实际应用中,强干扰的来源往往是系统本身,例如被控负载的中断状态变化等。而这种干扰是可预知的,在软件设计时可采取适当措施避开。当系统接通或断开大功率负载时,暂停一切数据采集等工作。待干扰过后,再恢复进行。这比单纯在硬件上采取抗干扰措施要好的多。8031单片机中有一个电源控制寄存器 PCON。当PCON.0=1时,8031单片机进

入等待工33作状态。这时单片机时钟被封锁,所有I/O口引脚均保持进入等待工作方式前的状态,内部时钟仍然继续供给中断系统定时/计数器和串行口、8031单片机现场(栈指针、程序计数器PC、状态字PSW、累加器ACC、内部RAM)和其他特殊功能寄存器内容保持不变。中断退出和硬件复位均可使8031单片机退出睡眠状态。



(二) 单片机系统中硬件抗干扰设计



一个好的电路设计,应在设计过程中充分考虑抗干扰性的要求。分析系统中可能引起干扰的部件,采取必要的硬件抗干扰措施,抑制干扰源、切断干扰传播途径。




 1.交流电源尽量采用电压稳定的电网
 2.交流端用电感电容滤波,去掉高频低频干扰脉冲
 3.变压器双隔离措施,变压器初级输入端串接电容,初、次级线圈间屏蔽层与初级间电容中心接点接大地,次级外屏蔽层接印板地,这是硬件抗干扰的关键手段
 4.次级加低通滤波器,吸收变压器产生的浪涌电压
 5.采用集成式直流稳压电源,有过流过压过热等保护
 6.IO口光电磁电继电器隔离,避免公共地
 7.通讯线用双绞线,排除平行互感
 8.防雷电,用光纤隔离最为有效
 9.A/D转换用隔离放大器或采用现场转换,减少误差
 10.外壳接大地,解决人身安全及防外界电磁场干扰
 11.加复位电压检测电路,仿止复位不充份CPU就工作,尤其有EEPROM的器件,复位不充份会改变EEPROM的内容
 12.印制板工艺抗干扰:
 (1) 电源线加粗,合理走线接地,三总线分开,减少互感振荡
 (2) CPU/RAM/ROM等主芯片,VCC和GND间接电解电容及瓷片电容,去掉高低频干扰脉冲
 (3) 独立系统结构,减少接插件与连线,提高可靠性,减少构障率
 (4) 集成块与插座接触可靠,用双簧插座,最好集成块直接焊在印制板上,防止器件接触不良故障
 (5) 有条件采用四层以上印制板,中间两层为电源和地




3.1 抑制干扰源常用措施



抑制干扰源就是尽可能的减小干扰源的du/dt, di/dt。这是抗干扰设计中最优先考虑和最重要的原则,常常会起到事半功倍的效果。 减小干扰源的du/dt主要是通过在干扰源两端并联电容来实现。减小干扰源的di/dt则是在干扰源回路串联电感或电阻以及增加续流二极管来实现。
(1)给继电器线圈增加续流二极管,消除断电时产生的反电动势。
(2)在继电器接点两端并接火花抑制电路,(一般为RC串联电路,电阻一般为几~几十kΩ,电容为0.01μF)减小电火花影响。
(3)给电机加滤波电路,注意电容、电感连线要尽量靠近电机。
(4)电路板上每

个IC要并接一个0.01~0.1μF高频电容,减小IC对电源的影响。注意高频电容的布线应靠近电源端,并尽量短,否则等于增大了电容的等效串联电阻,会影响滤波效果。
(5)避免90°折线,减小高频噪声发射。
(6)在可控硅两端并接RC抑制电路,减小可控硅噪声(这个噪声严重时可能 会把可控硅
击穿的)。



3.2 切断干扰传播途径措施



(1)充分考虑电源对单片机的影响。电源做得好,整个电路的抗干扰就解决了一大半。许多单片机对电源噪声很敏感, 要给单片机电源加滤波电路或稳压器,以减小电源噪声对单片机的干扰。比如,可以利用磁珠和电容组成π形滤波电路,当然条件要求不高时也可用100Ω电阻代替磁珠。
(2)如果单片机的I/O口用来控制电机等噪声器件,在I/O口与噪声源之间应加隔离(增加π
形滤波电路)。 控制电机等噪声器件,在I/O口与噪声源之间应加隔离(增加π形滤波
电路)。
(3)注意晶振布线。晶振与单片机引脚尽量靠近,用地线把时钟区隔离起来,晶振外壳接地
并固定。此措施可解决许多疑难问题。
(4)电路板合理分区,如强、弱信号,数字、模拟信号。尽可能把干扰源 (如电机,继电
器)与敏感元件(如单片机)远离。
(5)用地线把数字区与模拟区隔离,数字地与模拟地要分离,最后在一点接于电源地。A/D、
D/A芯片布线也以此为原则,厂家分配A/D、D/A芯片 引脚排列时已考虑此要求。
(6)单片机和大功率器件的地线要单独接地,以减小相互干扰。 大功率器件尽可能放在电路
板边缘。
(7)在单片机I/O口,电源线,电路板连接线等关键地方使用抗干扰元件 如磁珠、磁环、电
源滤波器,屏蔽罩,可显著提高电路的抗干扰性能。



3.3 提高敏感器件的抗干扰性能 



提高敏感器件的抗干扰性能是指从敏感器件考虑尽量减小对干扰噪声的拾取,以及从不正常状态尽快恢复的方法。常用措施:
(1)布线时尽量减少回路环的面积,以降低感应噪声。
(2)布线时,电源线和地线要尽量粗。除减小压降外,更重要的是降低耦 合噪声。
(3)对于单片机闲置的I/O口,不要悬空,要接地或接电源。其它IC的闲置 端在不改变系统
逻辑的情况下接地或接电源。
(4)对单片机使用电源监控及看门狗电路,如:IMP809,IMP706,IMP813,X25043,X25045
等,可大幅度提高整个电路的抗干扰性能。
(5)在速度能满足要求的前提下,尽量降低单片机的晶振和选用低速数字 电路。
(6)IC

器件尽量直接焊在电路板上,少用IC座。




我先说说我在这方面的经验吧!不当之处请指正,有好经验与心得也请大方贡献!
软件方面:
1、我习惯于将不用的代码空间全清成“0”,因为这等效于NOP,可在程序跑飞时归位;
2、在跳转指令前加几个NOP,目的同1;
3、在无硬件WatchDog时可采用软件模拟WatchDog,以监测程序的运行;
4、涉及处理外部器件参数调整或设置时,为防止外部器件因受干扰而出错可定时将参数重新
发送一遍,这样可使外部器件尽快恢复正确;
5、通讯中的抗干扰,可加数据校验位,可采取3取2或5取3策略;
6、在有通讯线时,如I^2C、三线制等,实际中我们发现将Data线、CLK线、INH线常态置为高,其抗干扰效果要好过置为低。



硬件方面:
1、地线、电源线的部线肯定重要了!
2、线路的去偶;
3、数、模地的分开;
4、每个数字元件在地与电源之间都要104电容;
5、在有继电器的应用场合,尤其是大电流时,防继电器触点火花对电路的干扰,可在继电器
线圈间并一104和二极管,在触点和常开端间接472电容,效果不错!
6、为防I/O口的串扰,可将I/O口隔离,方法有二极管隔离、门电路隔离、光偶隔离、电磁隔
离等;
7、当然多层板的抗干扰肯定好过单面板,但成本却高了几倍。
8、选择一个抗干扰能力强的器件比之任何方法都有效,我想这点应该最重要。因为器件天生
的不足是很难用外部方法去弥补的,但往往抗干扰能力强的就贵些,抗干扰能力差的就便
宜,正如台湾的东东便宜但性能却大打折扣一样!主要看各位的应用场合了!


相关主题
文本预览
相关文档 最新文档