微波EDA网,见证研发工程师的成长!
首页 > 硬件设计 > 嵌入式设计 > 单片机的干扰分析及MCU的改进

单片机的干扰分析及MCU的改进

时间:07-31 来源:互联网 点击:

国际标准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的基本门电路工作失误。

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

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

表1

从表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的设计与生产水平而言,在技术与成本上这种增加不会有很大困难。虽然这一办法在添加的校验位有限时

Copyright © 2017-2020 微波EDA网 版权所有

网站地图

Top