单片机干扰分析MCU的改进

发布者:VS821001最新更新时间:2011-08-10 关键字:单片机  干扰分析 手机看文章 扫描二维码
随时随地手机看文章

  本文讨论了干扰对错误的形成机制,提出了对MCU改进的建议。这个建议如果实施,不仅有利于高技术领域的应用,也会惠及一般的民用领域。

  1 干扰源的讨论

  很久以前,还在“8031+2764+14433”的年代,我们做了一批过程监控仪表,用于灭菌过程F0的监控,遇到了强烈的干扰问题。灭菌过程约30 min,由电触点压力表控制进气电磁阀,间接控制温度。F0是一个温度函数的积分值,可以反映灭菌的效果,它综合考虑了温度波动的影响。当时采取了一些抗干扰措施,例如,硬件上对信号线屏蔽,信号滤波;软件上的智能滤波,程序复执,程序分段保护,数据后备,端口等重复初始化,ROM的定时校验和检验,多种出错报警,出错时重新热启动(可使问题有所缓和,但偶然会有判为ROM校验和错而停机的情况出现)。由于当时F0只是用作参考,问题尚不严重,如要掩盖,也可以用热启动代替停机;但很快F0要作为产品工艺参数,用记录纸备案,于是就重新设计了监控仪。新的监控仪用89C51+14433,再加上光耦和TI5617 D/A转换器,将温度和F0变为模拟量后送到双笔记录仪,实现产品工艺过程的记录与存档。硬件上,光耦隔离后部分是D/A和模拟电路,软件在原有基础上添加与TI5617有关的串行通信部分。TI5617的串行通信类似I2C,由CS、DIN和SCLK三条线构成,SCLK数据位时钟可达到25 ns,速度很高。用于计算的周期是6 s,仪表用定点算法配以查表,所以留出了充足的时间做许多抗干扰的工作。在D/A用的串行通信中甚至考虑了多次重复发送的子程序,希望减少通信错误的影响;但结果却很坏,记录纸上是一片墨带。由于不知道通信对错,很可能最后一次传送就是错的,于是不得不重新处理抗干扰问题。

  经查干扰主要发生在电磁阀动作的时候,由于不可能在现场为每一个简单的小表制作一个良好的地线,一般的市售电源滤波器件根本不起作用。现场用的是220 V交流电磁阀,无法设计缓冲线路。分析认为,电磁阀断开时会在电源上产生很大的反向电压。交流电源的示波器受到干扰,在无法看清干扰的情况下,就用数字万用表观察,可以观察到1 300 V以上的读数。考虑到数字万用表输入的滤波效果,真正的峰值还要大,因此推想,高频的干扰穿越了变压器绕组间电容,造成变压器次级交流电压瞬间反向。尽管反向波幅的衰减很大,但因方向已改变,整流二极管来不及响应,已不供电,而滤波的电解电容器动态上来不及反应,也不供电,造成稳压前直流电源瞬间下降。同时它通过整流二极管,78L15、78L05等低频器件到达二组隔离的电源,造成直流电源跌落。循此思路,发现TI5617的SCLK可能出现不正确的时钟信号,造成数据传送的错误。TI5617的读数发生在SCLK的下降沿,说明书上强调,在非传送时减少馈通应使SCLK=LOW,为节省电流消耗,SCLK是从光耦的基极输出的。因此若光耦次级电源跌落,确实会造成SCLK下降而误读。然后我们在基极电阻(20 kΩ)上并联0.1 μF电容,在光耦次级电源上串接高频二极管,以防0.1 μF电容器通过光耦反向放电。采取此措施后,记录曲线不再有墨带。对本应用而言,干扰问题初步解决,但仍不彻底。干扰得到解决本身证实了分析是正确的——来自电源的干扰有可能进到直流电源部分。

  国际标准ISO 7637是针对汽车电子领域电源的传导干扰问题的。它规定有#1、#2a/b、#3a/b、#4、#5a/b等多种测试波形,反映实际应用中会遇到的情形。其中,关断感性负载(例如雨刮器的马达)引起的电压升高,在12 V系统中可达50 V,虽有瞬间超过元器件耐压而引起损伤的可能性,但不会直接引起误动作。而在波形#1中,关断感性负载(例如电动座椅的马达和座椅的加热系统)产生的脉冲,在电源为12 V的系统中1 μs可达到-100 V,衰减到10%的时间为2 ms。在波形#3a中,电源为12 V的系统里5 ns可达到-138 V,回到0 V的时间大约为100 ns。这些是典型数据,实际上电源线不是匹配的传输线,干扰波还要来回反射,情况更为复杂。在这些场合,也可能发生直流电源的跌落干扰。

  空间的幅射干扰也是经常遇到的问题,例如在太空或反应堆附近,电子器件会受到重离子的轰击而产生故障;又如在空港区或大电流、高电压区域,电子器件也会受到强电磁辐射而发生故障。在这些场合,干扰也会引起MCU的基本门电路工作失误。

   [page]

2 Watchdog不能解决软件可靠性问题

  Vcc的跌落会引起MCU的误动作。MCU里每一个读/写操作都是由门电路实现的,门的开关依赖于门的阈值和信号的时序。电源跌落时阈值发生变化,振荡器产生的信号时序也会变形。下面以8051单片机为例,考察如果干扰发生在执行指令“MOV dir1, dir2”时会产生什么后果。假定错误发生在指令的第1字节,最坏的情形是每个bit都反转,而最大的概率是只有一个bit发生反转。一个bit发生反转的情况如表1所列。

  表1

  

一个bit发生反转的情况

 

  从表1可见,一个bit的变化完全改变了指令的意义,程序流或数据产生不可预测的变化。例如,表中的跳转部分(bit 0, 2或5发生变化)可能不转入死循环,不引起Watchdog动作,也有可能跳到非正常指令处,直至死循环。表中非跳转指令则有可能改变累加器(bit 0, 1, 3, 4,6或7发生变化),数据RAM(bit 1,3, 6或7发生变化)或状态寄存器(bit 0, 1, 3, 4,6或7发生变化)。如果错误发生在指令的第2或第3字节,数据的源或目的地址就错了。因此,即使Watchdog没动作,也不表示程序运行正常。对8051其他指令作分析可得到类似的结果。由此可见,Watchdog至多保证系统不死机,却有可能掩盖了数据的错误。

  F0设计中,在关键点大量采用了“MOV dir1,tmp”,“MOV tmp, dir2”的形式将数据从dir1送到dir2,而不采用“MOV A,@R1”类指令,以减小对原始数据破坏的可能性,从而为程序复执创造条件。例如在备份数据Treh到Tbkh时,先将Treh送tmp1,然后将数据由tmp1送到备份Tbkh,再校验Tbkh与Treh是否一样。若不一样,就重作备份。采用的部分程序如下:

  MOVtmp1, Tbkh85 53 19

  MOVA, tmp1E5 19

  XRLA, Treh65 4C

  JNZtbkp70 F1

  其中“MOV A, tmp1”仍有破坏tmp1的可能性,但tmp1是Treh的拷贝,坏了可重做;“XRL A, Treh”有可能破坏Treh,但已无法作其他选择。

  在硬件抗干扰方面,有许多专用的电源监控芯片,如TL7705等,但是它们只适合在较慢的电源扰动下使用。对于直流电源的跌落干扰,MCU根本来不及作现场的保护工作,所以它不是解决快速干扰问题的办法。

  在F0中使用的办法也不尽完善,一般单片机线路中还有很多外围线路,例如F0中的光耦,3个光耦同时导通时要消耗约50 mA的电流,它们形成的动态电阻很小,发生电源跌落时,并联于MCU的解耦电容对此电阻放电,无法保证MCU正常工作的额定电压。如在MCU电源中串接高频二极管,就会引起额外的电源消耗,在低功耗的应用中也会形成新的缺点。有些功能强大的MCU本身功耗就大,容许的电源变化范围小,能否依靠解耦电容对抗电源跌落还需要检验。综上所述,软件解决办法不彻底,硬件解决办法也有很多缺点与限制。

  3 MCU要增加的功能

  由于干扰而使指令出错的问题不是Watchdog能解决的,特别是造成源数据错时,程序复执也不能纠正错误的结果。程序设计者要在现成的指令体系中找到对源数据危害性概率最小的指令不容易。即使找到,也不能保证指令在有多bit跳变时源数据不错。另外,有些指令错误也可能破坏其他处的数据。利用破坏数据概率最小的指令设计程序也不是好办法,它既耗ROM空间,又费运行时间。

  增大指令的Hamming距离可以改善这一情况。例如,给指令增加一到数位校验位,一旦指令通不过校验,就不执行,并重新取指。这样,问题就有可能在产生后果前解决。就目前MCU的设计与生产水平而言,在技术与成本上这种增加不会有很大困难。虽然这一办法在添加的校验位有限时仍会有一定出错概率,但这种概率可以小到能接受的程度。

  为了更为可靠,作校验的线路可有某种冗余。连续重取指可能反映有其他故障,应通过某种方式通知应用层。为了不打扰程序设计者,这些指令的添加位应该在写入ROM时自动生成,这样就不会产生与现有产品的兼容性问题。

  在早期的MCU应用中,Watchdog是外置的,后来都集成到MCU里面去了。如果实现上述功能,MCU的抗干扰能力会更强,Watchdog可能就不需要了。软件的可靠性分析就可以将程序走飞和数据的完整性问题分割出来加以处理,软件部分更专注于逻辑分析,意义深远。

 

 

关键字:单片机  干扰分析 引用地址:单片机干扰分析MCU的改进

上一篇:单片机和工业无线网络
下一篇:基于C8051F550的CAN总线智能节点的设计

推荐阅读最新更新时间:2024-03-16 12:39

单片机MCU)电压输出选择
实际使用中大量的输入信号或者是输出信号是必不可少的,但是单片机却没有这么多引脚。利用移位寄存器就能解决这个问题,很多制造厂商的移位寄存器均可供选择。这些寄存器由源电流和灌电流驱动组成,可驱动60V的电压,是多达32路输出的串行输入驱动器。即使这样,在某些情况下,输出电流并不高。这些对驱动继电器、LED甚至是PLC的输入尤其重要。板子的线路密度因为串行连接降低,从而光电隔离很容易。 关注原装IC网官方微信(微信号:yzic998)免费得样品! 在我看来,还有以下选择: 1.像TPIC6A259这样的TI电源逻辑类的8位可寻址锁存器可供选择; 2.ST公司的STP16CP05 16位LED驱动有可调限流功能,但是只有15V的输
[单片机]
单片机实用工具大全,超级赞,工程师必备!
作为一个电子工程师,在大众的眼里,你们似乎拥有麒麟臂,上能九天揽月,下可五洋捉鳖,抄板、焊板、画板、仿真、编程、调试、创意什么的通通不在话下。 今天,创客学院小编要给各位大佬介绍几款非常实用的单片机小工具,涉及调试、计算、设计、自动代码生成等。 第1款:555定时器自动计算工具, 想要什么频率,想要什么占空比,输入要求,点一下开始计算,然后结果就出来了!!! 第2款:串口调试助手, 单片机和电脑串口通信必备的工具! 第3款:色环电阻计算器, 输入色环电阻的颜色,然后阻值和精度就会自动计算出来! 第4款:51单片机定时器初值计算工具, 想用哪个定时器,哪个定时方式,多大的晶体,多长的
[单片机]
<font color='red'>单片机</font>实用工具大全,超级赞,工程师必备!
51单片机在智能窗控制系统中的应用
  一、引言   随着电子技术的不断发展, 家庭中的许多电器设备如彩电、冰箱、空调等都已贴上了智能化的标签, 为提高人们的生活质量做出了贡献。但遗憾的是, 居室的眼睛---窗户, 却迟迟未跟上时代的步伐。即使是在众多的智能化生活小区, 我们都可以发现, 几乎所有的窗户的管理仍然处在原始管理方式, 与电子技术毫不沾边, 更不用说智能化了。如果使窗户具有一定的智能, 如下雨则自动关、室内有害气体超标则自动开、有盗贼入内则自动报警等, 就会给人们的居家生活带来诸多方便, 从而进一步提高人们的生活质量。   沿着这样的思路, 我们设计了以AT89C51 单片机为中央控制器的智能窗控制系统。   该控制系统能通过其数据检测传感电路
[单片机]
51<font color='red'>单片机</font>在智能窗控制系统中的应用
关于ST MCU的UID详细说明
ST MCU芯片中的绝大部分都内置一串96位唯一标识码【unique ID】。时不时有人问起这个东西,尤其最近感,觉询问它的人甚是热闹。这里跟大家一起简单分享下。 上面说了ST MCU芯片中的绝大部分都带UID,也就是说并非所有ST MCU芯片都带它。到底谁带谁不带,从各自芯片数据手册的首页即可确认。如果首页没有明确写明,就表示该芯片没有UID或者说即使相应地址有数据但不保证其唯一性。 比方在STM8系列中,STM8S0XX、STM8L0XX系列芯片就不带UID的。 在STM32家族中,STM32F0系列中的STM3F030子系列、STM32F070子系列也是不带UID的【如果此处说错,遵照数据手册所言】,而STM32F042、
[单片机]
关于ST <font color='red'>MCU</font>的UID详细说明
51单片机 使用蜂鸣器播放简单音乐
MCU型号 STC 89C52RC #include reg52.h #define RldTmr(fr) 65536 - (11059200 / 12) / (fr 1) #define FuDian(n) (n 1) / 3 //附点n分音符的换算 typedef unsigned char UCHAR; typedef unsigned int UINT; typedef unsigned long ULONG; sbit BUZZ = P1^6; UINT code noteFreq = { //中音 1-7 和高音 1-7对应的频率列表 523, 587
[单片机]
STM8单片机的低功耗处理方案
要低功耗设计,主要考虑几个方面: 1.外设的低功耗,不需要的外设模块,全部关闭。 2.GPIO的处理,不需要的IO最好做悬浮输入处理。 3.主时钟的处理,先降到最低内部LSI时钟,关闭其他不需要的时钟模块。 4.进入低功耗模式。 除了运行模式,可以采用以下三种低功耗模式:等待、主动停机、停机。 1)等待(Wait)模式:CPU停止工作,片上设备可以选择被关断,任意内部外部中断及复位均可唤醒,耗电2.4mA@24MHz,5v。 2)主动停机模式(Active Halt):保留一个定时唤醒单元AWU工作,CPU和片上设备全停止工作,AWU和外部中断及复位均可唤醒,耗电11uA - 1000uA,取决于片上稳压器(MVR还是LPVR
[单片机]
STM8<font color='red'>单片机</font>的低功耗处理方案
基于STM32单片机的红外测温仪的设计与实现
红外测温仪是一种将红外技术与微电子技术相结合的新型温度测量仪器。与传统接触式测温仪器相比,具有测温精度高、非接触、不影响被测对象温度场、响应速度快及稳定性好等一系列优点,在电力、石油、化工、医疗等领域得到广泛应用 。 热释电红外测温仪是利用热释电效应工作的一种新型红外测温仪。与其他传统测温仪相比,具有不需制冷、能在室温下工作和光谱响应宽等优点,且其灵敏度高、响应速度快、抗干扰能力强 。本文利用热释电探测器,结合32 bit ARM核处理器低功耗、高性能和低成本的优点,设计了一个以ARM微控制器STM32为核心的红外测温仪。 1 红外测温的原理 一切温度高于绝对零度的物体都在不停地向周围空间发出红外辐射能量,其辐射能量的大小及
[单片机]
基于STM32<font color='red'>单片机</font>的红外测温仪的设计与实现
利用单芯片MCU提高照明系统能源效率
在住宅用电中,照明用电占有相当大的比重。以家庭 用电为例,空调、冰箱、热水器等用电大户一直是大家关注 的焦点,而天天都在使用的照明反倒被认为是“小儿科” 了。其实,每一张电费账单中都要为照明用电支付1/6的 费用。如何在中国推广节能的照明产品,提高照明系统的 能源效率,降低照明用电量,已经成为摆在中国工程界面 前的最大挑战,这使工程师们必须考虑采用节能器件来设 计自己的产品。 1 数控电子镇流器应运而生 在鳞次栉比的建筑物中,照明系统最普遍的形式是使用各种荧光灯管,以及采用简单的感应器和启辉器的镇流器。据估算,这种传统的方式可消耗建筑物用电量的 40%,既低效又浪费,而且成本昂贵。新的欧洲和国际立法要求从2005年开始增加效
[应用]
小广播
添点儿料...
无论热点新闻、行业分析、技术干货……
设计资源 培训 开发板 精华推荐

最新单片机文章
  • 学习ARM开发(16)
    ARM有很多东西要学习,那么中断,就肯定是需要学习的东西。自从CPU引入中断以来,才真正地进入多任务系统工作,并且大大提高了工作效率。采 ...
  • 学习ARM开发(17)
    因为嵌入式系统里全部要使用中断的,那么我的S3C44B0怎么样中断流程呢?那我就需要了解整个流程了。要深入了解,最好的方法,就是去写程序 ...
  • 学习ARM开发(18)
    上一次已经了解ARM的中断处理过程,并且可以设置中断函数,那么它这样就可以工作了吗?答案是否定的。因为S3C44B0还有好几个寄存器是控制中 ...
  • 嵌入式系统调试仿真工具
    嵌入式硬件系统设计出来后就要进行调试,不管是硬件调试还是软件调试或者程序固化,都需要用到调试仿真工具。 随着处理器新品种、新 ...
  • 最近困扰在心中的一个小疑问终于解惑了~~
    最近在驱动方面一直在概念上不能很好的理解 有时候结合别人写的一点usb的例子能有点感觉,但是因为arm体系里面没有像单片机那样直接讲解引脚 ...
  • 学习ARM开发(1)
  • 学习ARM开发(2)
  • 学习ARM开发(4)
  • 学习ARM开发(6)
何立民专栏 单片机及嵌入式宝典

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

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