单片机应用系统的抗干扰设计①
2009-01-06米秀杰隋秀梅赵丽
米秀杰 隋秀梅 赵丽
[摘 要]本文分析了单片机系统干扰的现象和原因,提出了一些在实际应用中取得了良好效果的提高抗干扰能力的方法。
[关键词]单片机 抗干扰 硬件 软件
[中图分类号]TP368[文献标识码]A[文章编号]1007-9416(2009)11-0009-02
在进行单片机应用产品的开发过程中,我们经常会碰到一个很棘手的问题,即在实验室环境下系统运行很正常,但小批量生产并安装在工作现场后,却出现一些不太规律、不太正常的现象。究其原因主要是系统的抗干扰设计不全面,导致应用系统的工作不可靠。本文主要分析单片机应用系统出错的起因,并结合自己的工作经验,探讨一些解决的办法。
1 单片机应用系统出错的主要现象和原因
1.1 单片机应用系统出错的主要现象和内因
大量的电源和磁场干扰,会造成以下各种系统内部出错。表1列出了单片机应用系统出错的主要现象和内部原因。
1.2 单片机应用系统出错的外部原因
从设计和制造的角度来看,造成应用系统容易受干扰的主要原因是:
(1)系统电源的抗干扰能力差或功率不足;(2)程序没有采取抗干扰措施或措施不力;(3)器件间驱动功率不足,处在较临界状态;(4)远距离数据传输的电源、电压偏低;(5)没有采取屏蔽保护;(6)元件质量低。
针对以上出现的问题,我们分别从硬件和软件两个方面来探讨一些提高单片机应用系统 抗干扰能力的方法。
2 片机应用系统的硬件抗干扰设计
2.1 选择时钟频率低的单片机
外时钟是高频的噪声源,除能引起对本应用系统的干扰之外,还可能产生对外界的干扰,使电磁兼容检测不能达标。在对系统可靠性要求很高的应用系统中,选用频率低的单片机是降低系统噪声的原则之一。以8051单片机为例,最短指令周期1μs时,外时钟是12MHz。而同样速度的Motorola单片机系统时钟只需4MHz,更适合用于工控系统。
2.2 电源
(1)若系统空间允许的话,可使用现成的微电脑开关电源,它有4组输出,分别为+5V(18 A~25A)、-5V(0.5A)、+12V(6A~10A)、-12V(0.5A)。如果一个功率不够,可用多个分块供电,主机最好单独使用一个。电源的功率充足,就能减少电源本身所产生的纹波及谐波干扰。这是解决电源干扰和电源功率不足的最好方法;
(2)采用开关电源设计;
(3)主机部分采用单独的稳压电路,一片7805稳压块,加上较好的滤波电路;外围电路采用另外的电源供电。
2.3 提高输出信号的电源或电压
如果输入、输出连接线路超过80cm,最好提高传送的电压或电流,以减少信号的衰减和受干扰而造成的信号失真。简单的方法可在传送端加一个1488,将电平提高到12V;接收端加一个1489,将电平回复到5V。
2.4 输入、输出隔离
输入、输出信号可加光电耦合器隔离,防止外围器件动作时产生的回流冲击系统电路。
2.5 注意器件的驱动能力
一般1个TTL可推动8个TTL或10多个CMOS,而一个CMOS可推动1~2个TTL或20多个CMOS。如果输出负载过重,会降低输出电平,使电平处于或低于被驱动器件的输入门槛电平(TTL:高为2.4V,低为0.4V;CMOS;高为4.5V,低为1.4V),从而造成系统不稳定。
2.6 采取屏蔽保护
屏蔽可用来隔离空间辐射。对噪声特别大的部件(如开关电源),用金属盒罩起来,可减少噪声源对单片机的干扰。对容易受干扰的部分,可加设屏蔽金属罩并接地,使干扰磁信号被短路接地。
2.7 注意印制电路板的布线与工艺
印制电路板的设计对单片机系统能否抗干扰非常重要。要本着尽量控制噪声源,尽量减小噪声的传播与耦合,尽量减小噪声的吸收这三大原则设计印制电路板和布线。
(1)印制电路板要合理分区。单片机应用系统通常可分三区,即模拟电路区(怕干扰)、数字电路区(既怕干扰、又产生干扰)、功率驱动区(干扰源)。
(2)印制电路板要按单点接电源、单点接地的原则送电。三个区域的电源线、地线由该点分三路引出。噪声元件与非噪声元件要离得远一些。
(3)时钟振荡电路、特殊高速逻辑电路部分用地线圈起来,让周围电场趋近于零。
(4)使用满足系统要求的最低频率的时钟,时钟产生器要尽量靠近用到该时钟的器件。石英晶体振荡器外壳要接地,时钟线尽量短,且在石英晶体振荡器下面要加大接地的面积而不应该走其它信号线。
(5)I/O驱动器件、功率放大器件尽量靠近印制板的边、靠近引出接插件。
(6)在单面板、双面板设计中,地线、电源线要尽量粗。信号线的过孔要尽量少。
(7)四层板比双面板噪声低20dB,六层板比四层板噪声低10dB。经济条件允许时尽量用 多层板。
(8)使用45°的折线布线,不要使用90°折线,以减小高频信号的发射。
(9)重要的信号线尽量短并要尽量粗,并在两侧加上保护地。将信号通过扁平电缆引出时,要使用地线-信号-地线的结构。
(10)时钟线垂直于I/O线比平行于I/O线干扰小,时钟线要远离I/O线。
(11)对A/D类器件,数字部分与模拟部分宁可绕一下也不要交叉。噪声敏感线不要与高 速线、大电流线平行。
(12) 每个IC元件要加一个去耦电容,布线时去耦电容要真正接在芯片的电源、地上。要 选高频特性好的独石电容或瓷片电容作去耦电容。去耦电容焊在印制电路板上时,引脚要尽量短。
(13)从高噪声区来的信号要加滤波。继电器线圈处要加放电二极管。可以用串一个电阻 的办法来软化I/O线的跳变沿或提供一定的阻尼。
(14)闲置不用的门电路输入端不要悬空。闲置不用的运算放大器正输入端接地,负输入端接输出。单片机不用的I/O口定义成输出。单片机上有一个以上电源、地端的,每端都要 接上,不要悬空。
(15)尽量不要使用IC插座,把IC直接焊在印制板上,IC插座有较大的分布电容。
(16)选择良好的元件
现在市场上出售的元件,很多是可用但性能不佳,甚至有些是器件厂经测试认为不合格的产品。这些元件极易受干扰,只能在很好的环境(指电源稳定、没有磁干扰)下工作。因此在选购元件时,特别是单片机、晶振、RAM等,最好选购一级品。
3 应用系统的软件抗干扰设计
单片机应用系统的抗干扰不可能完全依靠硬件解决,软件抗干扰设计也是防止和消除整个应用系统故障的重要途径。
3.1 制状态失常的软件对策
软件冗余。对于条件控制系统,对控制条件的一次采样、处理控制输出改为循环地采样、处理控制输出。这种方法对于惯性较大的控制系统具有良好的抗干扰作用。
设置当前输出状态寄存单元,当干扰侵入输出通道造成输出状态破坏时,系统能及时查询寄存单元的输出状态信息,及时纠正输出状态。
设自检程序。在单片机内的特定部位或某些内存单元设状态标志,在开机后,运行中不断循环测试,以保证系统中信息存储、运输、运算的高可靠性。
3.2 序运行失常的软件对策
3.2.1 设置程序监视跟踪定时器
目前,大多数单片机片内都集成有程序监视跟踪定时器。监视跟踪定时器主要用来跟踪程序的运行。当程序运行出现故障时,计数器溢出,系统复位,重新运行系统程序。利用它可有效地实现程序防飞功能。
3.2.2 设置程序指针陷阱
在每个子程序后面或程序段后,插入5条指令NOP、NOP、NOP、N OP、LJMP MAIN(其中MAIN是初始化程序开始地址),在片的空白处(特别是后面的空白处),每32个字节放指令LJMP MAIN。设置了指针陷阱后,一旦单片机受干扰,使程序指针混乱,执行了一段程序后,就会落入陷阱中,执行LJMP MAIN指令,回复到初始化程序开始处,从而避免死机。
3.3 数据采集误差的软件对策
用软件滤波算法,可滤掉大部分由输入信号干扰而引起的输出控制错误。最常用的方法有算术平均值法、比较舍取法、中值法、一阶递推数字滤波法。具体选取何种方法,必须根据信号的变化规律选择。
[参考文献]
[1] 民MCS-51系列单片机应用系统设计[M].北京航空航天大学出版社,1999,7.
[作者简介]
米秀杰(1970—):女,长春职业技术学院工程技术分院、副教授,主要研究方向:自动控制研究、单片机技术应用。
隋秀梅(1965—):女,长春职业技术学院工程技术分院院长、副教授,主要研究方向:职业教育专业建设、教学管理。
赵丽(1972—):女,长春职业技术学院工程技术分院、讲师,主要研究方向:智能机器人技术应用研究、单片机技术应用。