单片机应用系统的抗干扰方法

发布者:逍遥游侠最新更新时间:2015-04-23 来源: diangon关键字:单片机  应用系统  抗干扰 手机看文章 扫描二维码
随时随地手机看文章
要消除单片机应用系统的干扰,只要去掉干扰形成的三个基本条件(干扰源、传播路径、敏感器件)之一即可,内部的干扰源可以通过合理的电气设计在一定程度上予以消除,外部干扰源则采取屏蔽、接地、隔离等措施予以消除或切断。抗干扰设计的主要工作是围绕这一部分展开的,上述三个部分也不是绝对划分的,通常一个系统的抗干扰措施是多方面的综合以达到最佳的效果。
在实践中,单片机应用系统的抗干扰设计一般是通过硬件抗干扰设计和软件抗干扰设计两种途径来实现的。硬件如果设计得当,就可以将绝大部分干扰拒之门外,但仍然会有少量干扰,所以软件措施必不可少。由于软件措施是以占用CPU为代价的,如果没有硬件消除绝大部分干扰,CPU将疲于奔命,严重影响系统的工作效率和实时性。因此一个抗干扰性良好的单片机应用系统则是由硬件设计和软件开发相辅相成而构成。
1. 硬件抗干扰设计
①     电源电路
单片机系统使用的电源,一般都是由电网的工频交流电源经降压、整流、滤波等环节后提供。由于电网的影响以及生产现场大容量电气设备的开停,会使交流电压中含有高频成分、浪涌电压、尖峰脉冲或者发生较大幅度的电压波动。这些因素都将导致干扰通过电源途径影响系统的正常工作。电源做得好,整个电路的抗干扰工作就完成了一大半。许多单片机对电源噪声很敏感,因此,应采用抗干扰的开关电源或给单片机电源加滤波电路或稳压器,以减少电源噪声对单片机的干扰。电源线的布置除了要根据电流的大小,尽量加租导体宽度外,还要使电源线、地线的走向与数据传递的方向一致。这将有助于增强抗噪声的能力。每种型号的单片机都有一个稳定工作的电压范围,例如凌阳SPCE061A单片机工作电压为3.3V~5V ,超出这个范围将出现异常。
②     硬件复位电路


图1  采用MAX6827的复位电路
复位电路是最容易受干扰的(因为CPU 内部的复位电路的阻抗都比较高,为10~50kΩ) ,影响也是最大的。因此,必须采取抗干扰措施。图1是采用MAX6827的复位及“看门狗”电路图。该电路具有较强的抗干扰能力,由于没有复位电容,不易引入干扰。
③     注意印制电路板的布线
印刷电路板是单片机系统中器件、信号线、电源线的高密度集合体,印刷电路板设计的好坏对系统的抗干扰能力影响很大。故在印刷电路板设计不单是器件、线路的简单布局安排,还必须符合抗干扰设计原则。合理设计系统电路板,能有效地切断干扰的传播途径和抑制干扰源,同时还可以提高敏感元件(如单片机、数字IC、A/ D、D/ A 等容易被干扰的对象) 的抗干扰能力。主要采取:
[1]  电路板合理分区,如强、弱信号,数字、模拟信号分区。尽可能使干扰源(如电机,继电器) 远离敏感元件。大功率器件尽量布置在电路板的边缘。
[2]  布线时尽量减少回路环的面积,以降低感应噪声;电源线和地线要尽量粗,除减小压降外,更重要的是降低耦合噪声;连接线避免90度的折线,以减少高频噪声发射。
[3]  不用的单片机管脚,特别是中断的入口,不要悬空,一般要通过上拉电阻接电源。
[4]  电路板上每个IC 要并接一个0.01μF~0.1μF高频电容,以减少IC对电源的影响。
[5]  注意晶振布线。晶振与单片机引脚尽量靠近,用地线把时钟区隔离(圈) 起来,晶振外壳接地并固定。此措施可解决许多疑难问题。
[6]  用地线把数字区与模拟区隔离,数字地与模拟地要分离,最后接于电源地一点汇集,呈“星形”状。
在单片机应用系统中,接地是抑制干扰的重要方法。接地是否正确,接地是否牢固,将直接影响到系统的正常工作。如能将接地和屏蔽正确结合起来使用,可以解决大多数的干扰问题。
为了防止系统内部地线干扰,在设计印刷电路板时可采取如下措施:接地线尽量加粗。若接地线很细,接地电位则随着电流的变化而变化,致使计算机的定时信号电平不稳,抗噪声性能变差。因此要根据通过电流的大小决定地线的宽度,应在可能的情况下,尽量将接地线条加粗、加宽,最好不小于3mm,使它能通过3倍于印刷电路板上的允许电流。对于多级电路,设计时要考虑各级动态电流,注意接地阻抗相互耦合的影响,工作频率低于1MHz 时采用一点接地,工作频率较高时采取多点接地。
2. 软件抗干扰设计
在单片机应用系统中,尽管采取了硬件抗干扰措施,但由于干扰信号产生的原因十分复杂,且有很大的随机性,因此在采取硬件抗干扰措施的基础上,采取软件措施加以补充。现简要介绍如下几种软件抗干扰措施。
①     设立软件陷阱(Trap)
单片机受到干扰时,程序计数器PC值最容易受影响,PC值的改变是随机的,完全可以造成CPU离开正确的指令顺序去执行一些无定义地址中的内容,或进入数据区,把数据当作操作码来控制,使整个工作紊乱,系统失控。这种情况对系统来说,比某个数据出错造成的危害要严重得多。后者只涉及某个功能不能实现或者产生偏差,而前者则会使整个系统造成瘫痪。造成程序失控的原因并非程序设计本身的问题,而是由于外部的干扰或单片机内部硬件瞬间故障,使得程序计数器(PC)偏离了原定的值。例如,当执行完一条指令时,程序计数器PC应加数值1,但由于某种原因,使PC实际加2,这样,程序就会把操作数和操作码混淆起来,造成后面一系列的错误。
为了防止上述情况的发生,在软件设计时,可以采用设立软件陷阱的方法加以克服。其具体做法是,在ROM或RAM中,每隔一些指令(如十条或二十条),把连续的几个单元置成“00”(空操作)。这样,当出现程序失控时只要失控的单片机进入这众多的软件陷阱中任何一个,都会被捕获,连续进行几个空操作。执行这些空操作后,程序自动恢复正常,继续执行后面的程序。这种方法虽浪费一些内存单元,但可以保证程序不会跑飞。这种方法对用户是不透明的,亦即用户根本感觉不到程序是否发生错误操作。
②     开辟多个存储区抗干扰
为了防止RAM出错,丢失最重要的数据,对于重要的输入输出数据开辟2~3个存储区同时保存。存取数据时,采取比较表决法,以使数据去伪存真。[page]
③     时间监视器
时间监视器(Watch-Dog Timer),也称“看门狗”技术,用于设立软件陷阱失效的情况下,让系统从故障中恢复过来。因为因干扰而失控的程序不一定都会掉到陷阱中去,比如程序的死循环就是如此。所谓死循环,就是由于某种原因使程序陷入某个应用程序或中断服务子程序中做无休止的循环。这样,CPU及其他系统资源被其占用而别的任务程序都无法执行。也就是说,死循环使程序失去正常控制,但它不会使程序控制转入陷阱区,因而软件陷阱无法捕捉它。
时间监视器由两个计数器组成,计数器靠系统时钟(或分频后的脉冲信号)进行计数。当计数器记满时,将由计数器产生一个复位信号,强迫系统复位,使系统重新执行程序。在正常情况下,每隔一定的时间(根据系统应用程序执行的长短来确定),程序使计数器清零。这样,计数器就不会记满,因而不会产生复位。


图2  SPCE061A 看门狗结构与时序
例如,凌阳单片机SPCE061A的WatchDog的清除时间周期为0.75s。因为WatchDog的溢出复位信号WatchDog_Reset是由4Hz时基信号经4分频之后产生的,即每4个4Hz时基信号(1s)将会产生一个WatchDog_Reset信号。而清除WatchDog的WatchDog_Clear信号却可以发生在4Hz信号(0.25s)之间的任意一个时刻点上。假如WatchDog_Clear信号发生在4Hz信号尾端的0.01s即第0.25s时刻,此时虽然WatchDog被清除掉,但由于它发生在4Hz信号之后,再经3个4Hz信号即0.75s,如果一直没有WatchDog_Clear信号,便会产生出一个WatchDog_Reset信号。如图2所示,如果程序运行不正常,例如陷入死循环等,计数器将记满而产生溢出此溢出信号用来产生复位信号,使程序重新开始启动。在编程中,我们只需将0X0001H写入P_WatchDog_Clear单元即可完成清除WatchDog操作,如果在0.75秒内没有将0X0001H写入P_WatchDog_Clear单元,则CPU将进行系统复位操作,即平常我们说的重启系统。看门狗经常用于延时程序中,如
void Delay()
{
unsigned int j;
for(j=0x7fff;j>0;j--);
*P_Watchdog_Clear = 0x0001;//清看门狗
}
④     加入空操作NOP
在ROM或RAM的若干区域内,存放若干个空操作组,空操作的个数等于所选CPU芯片最长指令节数。空操作指令NOP除了占用一个存储单元和执行时间外,对CPU的工作状态没有影响。如有选择地在程序某地方插进1~2个NOP指令,也能使PC中的内容得到调整,使程序在受到干扰后回到正确的顺序。插入的位置要在程序调试过程中摸索、分析和实验。一般来说,在对外设端口的操作指令、多字节指令、转移指令、堆栈操作指令前插入NOP指令会得到好的效果。此外,还可以在空操作组之后,再增加处理跑飞的程序,而且让CPU在执行正常程序时,不执行这些指令组。只有当跑飞时才有可能遇到这些指令组。例如:
NOP
NOP
NOP
LJMP  FF
FF:ACALL FLY
MOV A,FLG
CJNE A,#11H,RSM
……
⑤     分段式软件抗干扰
某些时候,控制系统要顺序执行几个不同的主循环通道以完成不同的功能。这时可在不同主环路内编制抗干扰判别及自恢复功能。这样做可以避免不必要的重复执行,以保证顺序的完整性。
⑥     数字滤波
数字滤波是通过程序设计对单片机数据采集部分输入的信号进行加工处理,以达到抗干扰的目的。当干扰叠加输入通道的模拟信号时,使数据采集误差加大,特别当输入通道模拟信号较弱时,此现象更加严重。为了消除数据采集的误差,常用算术平均法、比较取舍法、一阶滞后滤波法和中值法,可根据信号和干扰的规律,采用最优的设计方法。
不同的单片机应用系统都有自己的系统要求和特点,在硬件和软件抗干扰设计上也各有自己的特色。软件抗干扰技术作为硬件抗干扰的补充,以其灵活性、实用性和可靠性在单片机应用系统抗干扰方面起着举足轻重的作用。在工程实践中通常都是几种抗干扰技术并用,互相补充,才能取得良好的抗干扰效果。我们在设计单片机应用系统时,要仔细分析干扰源,软硬件抗干扰技术相结合,完善系统监控程序,则可以保证系统准确、可靠地运行。

关键字:单片机  应用系统  抗干扰 引用地址:单片机应用系统的抗干扰方法

上一篇:开发设计单片机应用系统应注意的问题
下一篇:单片机应用系统的主要干扰形式

推荐阅读最新更新时间:2024-03-16 13:59

Microchip:不断拓展8位和16位MCU市场
一、约400种8位和16位MCU产品可供选择 Microchip如今有约400种8位和16位的单片机(MCU)产品供用户选择,适用于消费、汽车、办公自动化、通信及工业控制等不同市场领域的高产量嵌入式控制应用。这些产品可提供一系列功能特色:小的封装尺寸、高集成度、超低功耗、极高的性能、先进的模拟功能、高度可靠的闪存技术,以及先进的通信功能,如CAN、USB、Ethernet、LIN和RF。此外,Microchip还提供配套的开发工具和软件来为整个8位和16位单片机市场服务,让用户能够轻松、快速地开发出他们的应用。 Microchip产品的一大特色就在于所有产品都采用了同一种开发系统基础架构。当应用需求发生变动时,能够实现各类Mi
[单片机]
STM8L15x系列单片机判断指定I/O引脚电平
/** * @brief Reads the specified GPIO input data pin. * @param GPIOx : Select the GPIO peripheral number (x = A to I). * @param GPIO_Pin : Specifies the pin number. * This parameter can be one of the following values: * @arg GPIO_Pin_0: Pin 0 * @arg GPIO_Pin_1: Pin 1 * @arg GPIO_Pin_2: Pin 2
[单片机]
单片机STM32的引脚模式设置
单片机STM32的引脚有多种方式可以选择。 如果你是用直接写寄存器来配置的话,那么,看上手册,给“配置寄存器”对应的位写0或者1就可以达到目的。如下图: 如果是用库函数来配置的话,就需要知道下面这个结构体中的变量代表的意义。 库函数,选择好GPIO_Mode之后,就要使用GPIO_Init()函数来配置,你可以打开这个配置函数,实际上也是在对“配置寄存器”进行写操作。 先解释一下这个结构体中的各个变量的意思: GPIO_Mode_AIN:模拟输入模式 GPIO_Mode_IN_FLOATING:浮空输入模式 GPIO_Mode_IPD:下拉输入模式 GPIO_Mode_IPU:上拉输入模式 GPIO_Mode_Out_O
[单片机]
<font color='red'>单片机</font>STM32的引脚模式设置
51单片机GPRS模块(LT8030)汇编通讯程序
stack segment para stack 'stack' db 256 dup(0) stack ends DATA SEGMENT PARA PUBLIC 'DATA' WEN1 DB 'AT+IISP1=*99***1#',0DH,0AH,00H WEN2 DB 'AT+IDNS1=211.136.18.171',0DH,0AH,00H WEN3 DB 'AT+IUSRN=WAP',0DH,0AH,00H WEN4
[单片机]
STM8等低端单片机打印各种格式数据
#include “stm8l15x.h” #include “delay.h” #include “stdarg.h” #include “stdio.h” //定义LED与按键接口 #define LED_GPIO_PORT GPIOC #define LED_GPIO_PINS GPIO_Pin_4 #define KEY_GPIO_PORT GPIOD #define KEY_GPIO_PINS GPIO_Pin_4 uint8_t HexTable ={‘0’,‘1’,‘2’,‘3’,‘4’,‘5’,‘6’,‘7’,‘8’,‘9’,‘A’,‘B’,‘C’,‘D’,‘E’,‘F’}; void USART1_S
[单片机]
51LPC系列单片机用于控制交流电机
1 概述 PHILIPS 51LPC系列单片机目前已包括P87LPC760/1/2/4/7/8/9共七个型号。51LPC提供高速和低速的晶振和RC振荡方式,可编程选择;具有较宽的操作电压范围2.7~6.0V,可编程I/O口线输出模式选择,可选择施密特触发输入,LED驱动输出;有内部看门狗定时器及提供掉电检测模拟功能,最大限度地减少了外部元件的使用。这些特性和改进的C51结构结合在一起,使得在设计高集成度、低成本和低功耗控制电路时具有更多的选择。该系列主要用于对系统成本有严格要求,且系统具有高抗干扰性能的低功耗应用领域,已广泛用于电子阳性能表、IC卡水表、电子称、消毒碗柜、LED显示屏、煤气表等工业控制领域。 本文介绍在市电情
[单片机]
掌握这7个规则,单片机开发没难度!
01设计满足要求的最精简的系统 正确估计单片机的能力,知道单片机能做什么,最大程度的挖掘单片机的潜力对一个单片机系统设计者来说是至关重要的。我们应该有这样一个认识,即单片机的处理能力是非常强大的。 早期的PC机,其CPU(8086)处理能力和8051相当,却能处理相当复杂的任务。单片机的能力的关键就在软件设计者编写的软件上。只有充分地了解到单片机的能力,才不会做出“冗余”的系统设计。而采用许多的外围芯片来实现单片机能实现的功能。这样做,即增加了系统成本,也可能会降低了系统的可靠性。 02使用看门狗 看门狗电路通常是一块在有规律的时间间隔中进行更新的硬件。更新一般由单片机来完成,如果在一定间隔内没能更新看门狗,那看门狗将产生复
[单片机]
基于C8051F350单片机的气体流量计检测仪硬件设计
气体流量计是较为常用的仪表设备。钟罩式气体流量标准装置是以空气作为介质,对气体流量计进行检定、校准和检测的计量标准装置。主要适用于速度式、容积式和差压式等气体流量计的检定、校准和型式评价工作,也可用于气体流量测量的研究工作。本文基于C8051F350单片机,改造现有的钟罩装置,设计一种气体流量计检测仪。 气体流量计检定技术概述 目前,气体流量计的检定方法广义上可分为直接测量和间接测量两种。 直接测量法的是用实际流体进行计量检定,其具体定义为用标准装置(标准流量计或计量器具)与被测流量计串联,通过比较两者测得流体的累积流量值,得出被测流量计测量误差的方法。实流检测法具有检定环境与工况环境一致、流量值准确可靠和真实反映被测流量计计
[单片机]
基于C8051F350<font color='red'>单片机</font>的气体流量计检测仪硬件设计
小广播
添点儿料...
无论热点新闻、行业分析、技术干货……
设计资源 培训 开发板 精华推荐

最新单片机文章
何立民专栏 单片机及嵌入式宝典

北京航空航天大学教授,20余年来致力于单片机与嵌入式系统推广工作。

换一换 更多 相关热搜器件
随便看看
电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2024 EEWORLD.com.cn, Inc. All rights reserved