收藏 分销(赏)

2022年单片机应用系统抗干扰技术(1).ppt

上传人:二*** 文档编号:10297282 上传时间:2025-05-19 格式:PPT 页数:53 大小:513.54KB
下载 相关 举报
2022年单片机应用系统抗干扰技术(1).ppt_第1页
第1页 / 共53页
本文档共53页,全文阅读请下载到手机保存,查看更方便
资源描述
单击此处编辑母版标题样式,单击此处编辑母版文本样式,第二级,第三级,第四级,第五级,*,第五章 单片机应用系统抗干扰技术,一 干扰的主要来源,三 抗干扰措施,硬件抗干扰措施,软件抗干扰措施,二,干扰产生带来的后果,一、,干扰的主要来源,工业现场环境中的干扰通常是以,脉冲,的形式进入单片机系统,其主要的渠道有三条,1、空间干扰,空间干扰,,又称场干扰。电磁信号通过空间辐射进入系统,,多发生在高电压、大电流、高频电磁场附近,并通过静电感应,电磁感应等方式侵入系统内部。,2、供电系统干扰,电磁信号通过供电线路进入系统。,供电系统干扰主要由电源的噪声干扰引起的。,3、过程通道干扰,干扰通过与系统相连的前向通道、后向通道及与其它系统的相互通道进入,一般沿各种线路侵入系统。,说明:,一般情况下,空间干扰,在强度上,远小于,其它两种,故微机系统,中应重点防止过程通道干扰和供电系统干扰,。,此外,系统接地装置不可靠等,也是产生干扰的重要原因;各,类传感器,输入输出线路的绝缘损坏也有可能引入干扰。,二,、,干扰产生带来的后果,1、,数据采集误差加大,2、,程序运行失常,3、,系统被控对象误操作,4、,被控对象状态不稳定,5、,定时不准,6,、,数据发生变化,2、,程序运行失常,控制状态失灵,当干扰侵入单片机系统的前向通道叠加在信号上,会使数据采集误差增大,特别是前向通道的传感器接口是小电压信号输入时,此现象会更加严重。,在单片机系统中,由于干扰的加入使输出误差加大,造成逻辑状态改变,最终导致控制失常。,死机,在单片机系统受强干扰后,造成程序计数器PC值的改变,破坏程序正常运行,,,造成死循环,。,1、,数据采集误差的加大,4.,被控对象状态不稳定,锁存电路与被控对象间的线路(包括驱动电路)受干扰,从而造成被控对象状态不稳定(锁存电路一般较敏感)。,单片机内部程序指针错乱,指向了其它地方,从而运行了错误的程序。,RAM中的某些数据被冲乱或者特殊寄存器的值被改变,使程序计算出错误的结果。,中断误触发,使系统进行错误的中断处理。,6.,数据发生变化,在单片机应用系统中,由于外部RAM是可读写的,在干扰的侵入下,RAM中数据有可能发生改变,虽然ROM能避免干扰破坏,但单片机片内RAM以及片内各种特殊功能寄存器等状态都有可能受干扰而变化,甚至,EEPROM,中的数据也可能误读写,使程序计算出错误的结果。,5.,定时不准,RAM中计时数据被冲乱,使程序计算出错误的结果。,单片机内部程序指针错乱,使中断程序运行超出定,时时间。,抗干扰措施有,硬件措施,和,软件措施,。硬件措施如果得当,,可将绝大部分干扰拒之门外,,但仍然会有少数干扰进入微机系统,故软件措施作为第二道防线必不可少。由于,软件抗干扰措施是以降低CPU效率为代价的,,如果没有硬件消除绝大多数干扰,CPU将疲于奔命,无暇顾及正常工作,严重影响系统的工作效率和实时性。因此,一个成功的抗干扰系统是由硬件和软件相结合构成的。,三、抗干扰措施,1、注意印制电路板的布线与工艺,2、屏蔽,4、光电隔离,3、提高元器件的可靠性,5、过压保护电路,6、增加硬件看门狗电路,7、供电系统抗干扰措施,硬件抗干扰措施,1、注意印制电路板的布线与工艺,尽量采用,多层印制电路板,,多层板可提供良好的接地网,可防止产生地电位差和元件之间的耦合(但要考虑性价比)。,印制电路板要,合理分区,。,模拟电路区、数字电路区、功率驱动区,要尽量分开,地线不能相混,分别和电源端的地线相连,。,元件面和焊接面应采用,相互垂直,、尽量避免相互平行走线以减小寄生耦合;避免相邻导线平行段过长;加大信号线间距。高频电路互联导线尽量短,使用45或者圆弧折线布线,不要使用90折线,以减小高频信号的发射,。,三个区域的电源线、地线分三路引出。地线、电源线要尽量粗,噪声元件与非噪声元件要尽量离远一些。时钟振荡电路、特殊高速逻辑电路部分用地线圈起来,让周围电场趋近于零。,使用满足系统要求的,最低频率,的时钟,时钟产生器要尽量靠近用到该时钟的器件。石英晶体振荡器外壳要接地,时钟线尽量短,时钟线要远离IO线,在石英晶体振荡器下面要,加大接地的面积,而不应该走其它信号线。,IO,驱动器件、功率放大器件,尽量靠近印制板的边、靠近引出接插件。重要的信号线,尽量短,并要,尽量粗,,并在两侧加上保护地。将信号通过扁平电缆引出时,要使用地线-信号-地线相间的结构。,原则上,每个IC元件,去耦电容,,布线时去耦电容应尽量靠近IC的电源脚和接地脚。要选高频特性好的独石电容或瓷片电容作去耦电容。去耦电容焊在印制电路板上时,引脚要尽量短。这样便,可以消除大部分高频干扰。,闲置不用的,IC管脚,不要悬空以避免干扰引入。单片机不用的IO口定义成输出。单片机上有一个以上电源、接地端,每个都要接上,不要悬空。,2、屏蔽,避免环流的产生,。,加粗的线,晶振,尽量,靠近用到时钟的器件,AT89c2051,选用质量好的电子元件并进行严格的测试、筛选和老化。,设计时元件技术参数,要有一定的余量,。,提高印制板和组装的质量。,4、光电隔离,在输入和输出通道上采用光电隔离器来进行信息传输,将微机系统与各种传感器、开关、执行机构从电气上隔离开来,很大一部分干扰将被阻挡。,3、提高元器件的可靠性,2、屏蔽,对容易产生干扰和被干扰的部件,使用金属盒进行屏蔽,以使干扰电磁波短路接地。,在输入输出通道上应采用一过压保护电路,以防引入高电压,伤害微机系统。,过压保护电路由限流电阻和稳压管组成,,限流电阻选择要适宜,太大会引起信号衰减,太小起不到保护稳压管的作用。稳压管的选择也要适宜,,其稳压值以略高于最高传送信号电压为宜,,太低将对有效信号起限幅效果,使信号失真。,5、过压保护电路,out,in,6、增加硬件看门狗电路,对于失控的CPU,最简单的方法是使其复位,程序自动从0000H开始执行。为此只要在单片机的,RESET,端加上一个高电平信号,并持续10ms以上即可。,WATCHDOG有如下特征:,本身能独立工作,基本上不依赖于CPU。CPU只,在一个固定的时间间隔,内与之打一次交道,表明整个系统“,目前尚属正常,”。,当CPU落入死循环之后,能及时发现并使整个系统复位。,“喂狗”过程一般安排在,监控循环或定时中断,中,如果有比较长的延时子程序,则应该在其中插入“喂狗”过程。目前有很多单片机在内部已经集成了片内的硬件WATCHDOG电路,使用起来更为方便。对于片内看门狗,是通过两条特定的赋值指令来完成。此外,也可以也可以用软件程序来形成WATCHDOG,。,CPU,WATCH,DOG,RESET,脉冲,RESET,供电系统抗干扰措施,(1)防止从电源系统引入干扰,可采取交流稳压器保证供电的稳定性,防止电源的过压和欠压。使用隔离变压器滤掉高频噪声,低通滤波器滤掉工频干扰。,(2),采用开关电源并提供足够的功率余量,,主机部分使用单独的稳压电路,必要时输入,输出供电分别采用DC-DC模块隔离,以避免各个部分相互干扰。,2.软件陷阱(程序“跑飞”检测),8.软件“看门狗”,常用软件抗干扰措施,:,1、开机自检,开机后首先对单片机系统的硬件及软件状态进行检测,一旦发现不正常,就进行相应的处理。开机自检程序通常包括对,RAM,、,ROM,、,I/O,通道等的检测,。,不改变RAM单元内容的检查方法实例程序,设有1片6264,地址为2000H3FFFH,结果F0=1:出错,。,TEST7:MOV DPTR,#2000H;,诊断6264,MOV R2,#20H ;,共20H页,TEST70,:LCALL TEST75 ;,JB F0 TEST71 ;,出错_跳,DJNZ R2,TEST70,TEST71:RET,TEST75:,SETB,F0,;,页内检测,TEST76,:MOVX A,DPTR;,检查一个字节,MOV B,A;,保存副本,CPL A;,取反,MOVX DPTR,A ;,写,MOVX A,DPTR ;,读,CPL A;,取反,CJNE A,B,TEST78 ;,校对,错转,MOVX DPTR,A,;,恢复,MOVX A,DPTR ;,再读,CJNE A,B,TEST78 ;,校对,错转,INC DPTR ;,下一单元,MOV A,DPL,JNZ,TEST76,;,全页完?,CLR F0,TEST78:RET,说明:,256Byte为1页,1K有4页。6264是8KRAM,故有32页=20H页。,检测ROM,对ROM单元的检测主要是检查ROM单元的内容的校验和。,1.,将,ROM,的内容逐一相加,放弃进位后得到的一个数值。,2.,将,ROM,的内容逐一异或相加,得到的一个数值。,校验和求法:,编程完成后,另编程序求出校验和,存入ROM的最后一个单元,校验时用相同方法求校验和并和ROM最后一个单元中的内容进行比较,若相同则校验通过。,校验方法:,实例程序:,求校验和程序(异或和),设有1片EPROM2764(8K),地址:0000H 1FFFH,方法:在应用软件(包括各种抗干扰措施)编译后,把目标码调入开发系统的RAM中,例如0A000H 0BFFFH,然后用程序求出这8K字节(最后1个单元除外)的校验和,并把它存入最后1个单元0BFFFH中。至此即可将0A000H 0BFFFH的内容写入2764中了。,(程序),求异或校验和程序,ORG 8000H,ROMT:MOV DPTR,#0BFFFH;指向最后单元,CLR A,MOV B,A,MOVX DPTR,A;最后单元清零,,MOV R2,#20H;8K有20H页,MOV DPTR,#0A000H,XRT0,:MOVX A,DPTR,XRL B,A,INC DPTR,MOV A,DPL,JNZ,XRT0,;本页结束否,没结束跳,DJNZ R2,XRT0,;全部结束否,没结束跳,MOV DPTR,#0BFFFH;指向最后单元,MOV A,B,MOVX DPTR,A;存异或和,RET,求,和,区,.,.,.,00,8000H,BFFFH,BFFEH,ROM检测程序,ROMT1:MOV DPTR,#0000H;首地址,MOV R2,#20H,MOV B,#0,R0MT2:CLR A,MOVC A,A+DPTR;读ROM,XRL B,A,INC DPTR,MOV A,DPL,JNZ ROMT2;本页校完?,DJNZ R2,ROMT2;全部校完?,MOV A,B,;判断:,A0 正确,RET,;,A0 出错,检测I/O通道,数字I/O通道,模拟I/O通道,方法:人机互动进行检测,数字I/O通道,显示器件(数码管、指示灯),一般开机时全部点亮数秒钟,或闪亮数秒种。,键盘,逐个按动并作相应指示来检查。,报警器(蜂鸣器、喇叭),开机鸣响数秒。,通讯口,进行通讯检测。,模拟I/O通道,A/D通道,用基准电压源进行转换,检查结果是否正确,。,D/A通道,输出标准数据(固定之值或步进增长值),检查结果是否正确。,软件陷阱,设置目的:捕捉“跑飞”程序,设置位置:程序存储器未使用的区域,程序段之间,程序存储器的结尾处,捕捉方法:,若干条空操作和无条件跳转指令相结合,,使程序转到“跑飞”处理程序入口。,实例程序:,软件陷阱,NOP,NOP,NOP,LJMP FLY,程序存储器未使用区域的代码,数据:,FFH,相当指令:,MOV R7,A,.,.,.,.,FF,FF,FF,FF,FF,0000H,07FFH,有程序区,无程序区,在程序存储器未使用的区域设软件陷阱,设有4K地址范围:0000H0FFFH,空区域0800H 0FFFH,ORG 0800H,NOP,;软件陷阱,NOP NOP,LJMP FLY,ORG 0C00H,NOP,;软件陷阱,NOP NOP,LJMP FLY,.,.,.,.,NOP,NOP,NOP,LJMP,FLY_h,FLY_l,0000H,0FFFH,07FFH,0800H,在长程序段中的非连续程序处设软件陷阱,CJNE Rn,#DATA,L1,;跳转L1,SJMP,L2,;=跳转L2,NOP,;软件陷阱,NOP NOP LJMP FLY,L1,:,.,L2,:.,在程序存储器的结尾处设软件陷阱,设ROM为8K,地址范围:0000H1FFFH,ORG 1FFAH,1FFAH:,NOP,;软件陷阱,1FFBH:,NOP,1FFCH:,NOP,1FFDH 1FFFH:,LJMP FLY,.,.,.,FF,FF,FF,FF,FF,FF,0000H,1FFFH,0000H,如果不设陷阱,程序又将从头开始执行。,ROM地址,对应指令:,MOV R7,A,程序开头中断地址处理,地址 机器码 ORG 0000H,0000 020100 STR:LJMP KS,0003,0205C5,LJMP WZD0,;,外中断0,0006 00,NOP,0007 00,NOP,0008 020030,LJMP ERR,000B,020030 LJMP ERR,;T0中断(没用),000E 00,NOP,000F 00,NOP,0010 020030,LJMP ERR,0013,0205E2,LJMP WZD1,;外中断1,0016 00,NOP,0017 00,NOP,0018 020030 LJMP ERR,001B,0205FF,LJMP DDS,;定时,001B 0205FF LJMP DDS ;定时,001E 00,NOP,001F 00,NOP,0020 020030,LJMP ERR,0023,020030 LJMP ERR;,串行口中断(没用),0026 00,NOP,0027 00,NOP,0028 020030,LJMP ERR,002B 020030 LJMP ERR,002E 00,NOP,002F 00,NOP,0030 ERR:,注意;没用到的中断入口设置软件陷阱,设置程序运行状态标记,程序运行状态标记是在RAM区中,设立一些标志位,这些标志位分别代表程序运行的不同阶段及运行后的状态,。在初始化程序中,首先对这些单元置初值,在程序运行的不同阶段,这些单元的内容将被改变成特定值,标记程序运行的阶段和运行后的状态。这些标志除了在程序正常运行中起到条件转移的作用外,还能在程序“跑飞”,而RAM区数据正常时起到恢复程序运行现场的作用。,输出端口刷新,由于单片机的,I/O,口很容易受到外部信号的干扰,输出口的状态也可能因此而改变。在程序中周期性地添加输出端刷新指令,可以降低干扰对输出口状态的影响。,方法:,1。在程序中指定,RAM,单元存储输出口当时应处的状态,在程序运行过程中根据这些,RAM,单元的内容去刷新,I/O,口。,2。输出时连续两次对端口置状态。,NOP,输入多次采样,键输入,要注意消抖,。,数据输入(如A/D转换结果),对输入数据进行多次采样,而后进行数据滤波。,键输入去抖,一般每隔10mS读一次键进行去抖,。,读键,去抖动,执行,等待键释放,读键,去抖动,执行,等待键释放,实例1,实例2,键输入去抖程序实例,1,(设键值为,8,位,无键时为,FF,),KEY:LCALL KEYIN;读键,CPL A;取反,JZ KEY;取反后,无键时全0,LCALL TIME;延时10mS,去抖,LCALL KEYIN;再读,CPL A;,JZKEY;未按,再读,CPLA;恢复有效键码,.;散转到各执行模块,.;,K_OFF:LCALL KEYIN;读键,CJNE A,#0FFH,K_OFF;未释放,再读,LJMP KEY;已释放,读新的按键,键输入去抖程序实例2(设一个键对应一个I/O口),;高电平输入有效,读键程序为:,;,LCALL TIME;延时10mS,去抖,JNB P1.0,KEY,KEY1:JB P1.0,$;等键释放,LCALL TIME,JB P1.0,KEY1;已释放,.;散转到各执行模块,.;,LJMP KEY;读新的按键,实例2说明,1。这是一段开关量输入信号必加的去抖程序,开关量输入信号有光电传感信号、继电器触点输入、水银接点、干簧管输入、比较器信号输出等等。,2。去抖方法有多种,要否等键释放、等待时间有否限制等诸多因素的考虑,视实际项目而定。,试编一段等待按键时间为2秒的程序,2秒之内如未按键,程序继续执行。,数据滤波,为排除干扰的影响,对采样数据,必须,进行数据滤波。,数据滤波的,前提:,对同一数据进行多次采样。,数据滤波,方法:,中值滤波:,一般采样5、7次,排序后取中间值。,求平均值,:一般采样8次,求平均值。,去极值平均滤波:,去掉最大最小值后求平均值,一般采样10、12次。,加权平均滤波,:各加权系数之和为1。,滑动平均滤波,:本次采样值和前n次采样值求平均。,数据滤波,方法选用:,视现场环境和被测对象而定,。,指令冗余,MCS51,指令系统最多为三字节指令,,CPU,受干扰后,会把双字节指令、三字节指令中的,操作数当作指令码来执行,,即把多字节指令拆散了,从而使程序出错,所以,应尽量采用单字节指令,,并在一些关键地方插入一些单字节指令,(,NOP,),或将有效单字节,指令重复设置,,这便是,指令冗余,。,原指令正常入口,ANL 30H,#data,JNB bit,rel,53,30,data,ROM,53,30,data,ROM,如跑飞并从此处入口,会形成错误指令:,正确指令,错误指令,data1,指令错误并冲散下条指令,data1,下条指令,指令冗余(续),具体操作:,1。,在双字节指令、三字节指令之后,插入两条,NOP,指令,这样保证其后的指令不被拆散。,2。在一些对程序流程起决定性作用的,指令前,插入两条NOP指令。此类指令有:RET、RETI、ACALL、LCALL、SJMP、AJMP、LJMP、JZ、JNZ、JC、JNC、JB、JNB、CJNE、DJNZ等。,RET,NOP,NOP,ROM,LCALL,data1,data2,ROM,NOP,NOP,LJMP,data1,data2,ROM,NOP,NOP,举例:,指令冗余(续),说明:,1。指令冗余降低了系统的效率,所以只有关键地方才加上指令冗余。,2。在冗余指令起作用时,系统已受干扰,并由此可能已使系统发生紊乱。表面上看冗余指令又使系统回到正常轨道,这只是一个假象,系统正常与否,还要看系统的容错能力,。,软件“看门狗”设计方法:,设计思路:,看门狗作用的前提是程序进入死循环,不能及时喂狗而导致的,当系统掉入死循环后,只有比这个死循环程序,更高级的中断程序才能夺取对CPU的控制权,。为此用一个定时器来作watchdog,并把它的溢出设为高级中断。此时系统中的其它中断要设为低级中断。,例如,T0作watchdog,定时约16mS,则初始化程序如下:,watchdog,初始化程序,;,设晶振为6MHz,定时常数为#0E0C0H,MOVTMOD,#01H;设T0为16位定时器,SETBET0;允许T0中断,SETB PT0;置T0为高级中断,MOVTH0,#0E0H;定时约16mS,TL0忽略,SETBTR0;启动T0,SETB EA;开中断,Watchdog启动后,系统必须每隔不大于16mS喂它一次,执行指令,MOV TH0,#0E0H,即可,如果用指令MOV TH0,#0 来,喂它,它将安静131mS(而不是设计的16mS,,,思考为什么?,)。,Watchdog说明,当程序掉入死循环后,16mS之后即可产生T0中断,T0中断可直接转向出错处理程序。,ORG 000BH,LJMP ERR,纯软件看门狗要占用系统资源,建议,采用硬件看门狗,或带硬件看门狗的单片机。,简单的ERR处理程序,ERRO:CLR EA,MOV DPTR,#ERR1,PUSH DPL,PUSH DPH,RETI,ERR1:CLR A,PUSH ACC,PUSH ACC,RETI,两次退中断,保证系统,启动时无中断请求.,;从0000H重新执行,也可从其它地址,;开始执行,方法一样.,
展开阅读全文

开通  VIP会员、SVIP会员  优惠大
下载10份以上建议开通VIP会员
下载20份以上建议开通SVIP会员


开通VIP      成为共赢上传
相似文档                                   自信AI助手自信AI助手

当前位置:首页 > 包罗万象 > 大杂烩

移动网页_全站_页脚广告1

关于我们      便捷服务       自信AI       AI导航        抽奖活动

©2010-2025 宁波自信网络信息技术有限公司  版权所有

客服电话:4009-655-100  投诉/维权电话:18658249818

gongan.png浙公网安备33021202000488号   

icp.png浙ICP备2021020529号-1  |  浙B2-20240490  

关注我们 :微信公众号    抖音    微博    LOFTER 

客服