1 EMC的特点
嵌入式系统EMC(Electro Magnetic Compatibility)即嵌入式系统电磁兼容性,指嵌入式系统在复杂电磁环境中抵抗其他系统所产生的电磁干扰同时本身产生的电磁干扰又不影响其他系统正常工作。EMC包括EMI(Electro Magnetic interference)和EMS(Electro Magnetic Susceptibility)分别表示嵌入式系统本身产生电磁干扰和嵌入式系统抗电磁干扰的能力。一般要求尽量减小系统工作时本身产生的电磁干扰,加强系统抵抗电磁干扰的能力。例如高频谐波干扰,这是目前嵌入式系统工作不定的潜在因素。怎样减小嵌入式系统干扰增强其抗干扰性能,尽可能地提高嵌入式系统工作的稳定性和可靠性成为
电子工程师们的一大技术难题。
2 嵌入式系统EMC的产生
嵌入式系统产生电磁干扰的大小和抗电磁干扰的能力同系统本身功能有很大关系,不同嵌入式系统产生的电磁干扰不同抗电磁干扰能力也不同。
2.1 高次谐波干扰
根据Fourier series任何一个周期信号S(t)并非单一波形,都由直流分量、基波和各次谐波组成,谐波频率十分丰富,周期信号S(t)可以用式(1)表示:
直流成分,当n=1时表示信号基波,n=2,3,4,…表示信号2,3,4,…各次谐波,其中基波是该信号主要组成成份,很多时候信号的特性呈现为基波特性。例如在电源系统中交流信号为S(t)=380sin 2π50t表示市电信号存在n=1的基波,信号在基波附近谐波频率不断增加、幅度迅速衰减,从理论上说正弦和余弦信号频谱只存在一点冲击信号。正弦信号本身所产生的谐波较小而其他电磁干扰参杂在正弦信号中造成系统谐波很大。系统对信号的基波要加以利用,对信号的谐波要加以抑制、滤除。正弦信号本身对外来干扰信号的抑制能力较差容易出现EMC,严重干扰系统工作,影响系统稳定性。
2.2 嵌入式系统主频过高,引起干扰
随着电子技术的发展,CPU处理速度越来越快,数据吞吐量越来越大,主频越来越高。8位51单片机系统主频为12 MHz,16位凌阳单片机系统主频为50 MHz,Altera公司Cyclone系列FPGA芯片系统主频可达200 MHz,以Inter PAX255,PAX270,PAX310为的嵌入式系统主频可达820 MHz,CPU主频过高信号变化速率过快,信号f.jpg幅度大的地方容易引起干扰。根据Fourier Series和Euler Formula,方波信号频谱为Sine信号,Sine信号为连续信号其本身谐波很大,容易造成系统工作不稳定。
2.3 系统中大功率、大电流用电器动作产生火花引起干扰
系统中含有大功率、大电流继电器或交流接触器,驱动电流或电压过大使谐波幅度大,容易产生较强的电磁干扰;在复杂电磁环境中电机频繁启动与大电流有
触点开关的打火现象都会引起很强的电磁干扰,在要求较高的系统中必须解决,否则会引起系统工作不稳定、可靠性差。
2.4 微弱模拟信号的提取与高数据采集放大
随数字信号高速发展,很多模拟信号要转变成数字信号进行处理,CPU处理完成后又要将数字信号还原成模拟信号,涉及微弱模拟信号的提取和采集放大电路。对于微弱模拟信号的提取通常采用传感器,传感器提取的模拟信号非常微弱如果受到外来干扰或系统本身干扰,会造成系统数据采集和处理有误不高、系统工作不稳定。
2.5
电子元器件和电路板本身所产生的寄生干扰
每个电子元器件都有不同的截止频率,元器件在不同的频率下会呈现不同的特性。如果信号衰减和信号畸变过大会造成整个系统稳定度受影响甚至系统“死机”或“程序跑飞”。信号频率过高电容的分布电感,电感的分布电容,电阻对高频信号的反射,引线的分布电容和分布电感影响系统稳定性,当引线长度大于噪声频率相应波长的1/20时,就产生
天线效应,噪声通过引线向外发射。
3 嵌入式系统硬件抗EMC技术
嵌入式系统工作不稳定、不可靠因素有很多,干扰可以来自系统本身也可以来自本系统外其他系统,关于系统干扰靠软件处理能起一定作用,但仅靠软件没有硬件的局面难以支撑,系统抗干扰问题始终难以解决。在可编程系统中为了增加系统稳定性和可靠性,减小系统CPU开支,常用以下方法:
3.1 抑制电源谐波干扰
在可编程电子系统中,能够解决好电源干扰问题就解决整个系统干扰的一大半,很多干扰都是从电源中出来,电源干扰过大会造成系统不稳定。单纯正弦信号不会有干扰,关键正弦信号处于干扰很大的环境中,这时正弦信号就会附加干扰。例如:
电源线过长在电源线上就会产生寄生干扰,可以在电源线上加上小磁珠或磁环滤波,要求不高的情况下可以加100 Ω电阻对干扰信号进行衰减,使干扰信号对系统不起作用。对开关电源来说,主要是振荡器振荡频率过高引起谐波,不仅影响电源而且会影响整个系统,开关电源效率较高很多地方都采用,但在要求比较高的系统中仍然采用线性电源。
3.2 CPU选择能够满足系统要求的主频
CPU主频过高系统时钟加快,系统时钟产生的方波频率升高,由方波带来的谐波随之增加。从Fourier Series和Euler Formula得单一方波比正弦波的谐波幅度大得多,谐波频率复杂得多,由此系统主频越高产生的谐波越复杂,影响系统工作的稳定性。但随着电子技术的发展,CPU主频越来越高,电子系统越来越复杂,功能不断增加,集成度不断提高,但对于CPU来说无论哪方面使用,系统主频够用即可。
3.3 减小信号在传输过程中的衰减、畸变和反射
现代集成电路制造主要采用CMOS技术,输入阻抗大、输出阻抗小,抗干扰能力强,适合小信号放大。CMOS集成电路输入电流大约为1 mA,信号在电路板上延时Td与电路板引线阻抗有关,阻抗越大信号衰减越大、信号延时越长、系统发热越大,系统稳定性越差。在高速系统设计过程中要考虑PCB信号传输延时Td,使信号人为延时Tr大于信号传输延时。
3.4 注意PCB布线和元器件高频特性
PCB布线原则是元器件之间引线尽量短、信号线交叉尽量少,尽量不用或少用过孔。模拟地、数字地、高频地分开走线,然后汇聚成一点,大功率器件、小功率器件和干扰信号特别大的器件在布局时要分开。对干扰信号特别敏感的高频元器件可以用金属罩屏蔽起来,避免电磁干扰。
3.5 退耦电容的使用
一般在系统集成电路供电引脚旁都要放置去耦陶瓷电容到地,滤除电源在传输过程中所产生的寄生干扰。去耦电容选取并不严格,一般来说都是可按f=1/C来选取,对于CPU控制系统来说滤除10~100 MHz电源信号寄生干扰,电容取0.01~0.1μF陶瓷电容,系统要求较高的高速电路中可以在集成电路电源端到地用一个1~10μF的电解电容,滤除电源1~10GHz的谐波干扰。
4 嵌入式系统软件抗EMC技术
为了增强嵌入式系统工作的稳定性和可靠性,嵌入式系统除硬件抗干扰外,可以在软件上采用一定的技巧抗干扰,使系统工作更加稳定可靠。
4.1 信息冗余技术
为了防止干扰,系统对重要数据或文件复制到多个存储单元,当一个存储单元数据损坏后立即启动备用存储单元使数据恢复。
4.2 时间冗余技术
为了增强系统可靠性,对于重要区域重复执行,将第1次与第2次的执行结果相比较如相同则认为正确,如不同第1次或第2次执行有问题或两次都有问题,程序再执行第3次、第4次,如果有1次相同则认为正确。
4.3 自动检测与诊断技术
自动检测包括嵌入式系统RAM的检测、ROM的检测、标志位的检测等,对RAM的检测在开机时可以在RAM存储区内开辟几个单元,向RAM存储单元写入不同的数值例如55H、AAH、EEH等,在执行程序时读出这些存储单元的值是否开机放置的数值相等,判断程序执行的正确性。ROM用来放程序或表格数值,对ROM区域二进制数0和1的个数检测系统程序执行的正确性。在程序的执行过程中RAM区域数据结果不同,对标志位产生影响不同,例如51单片机中PSW,当两个数据相加出现进位时PSW中第位7位CY由硬件置,用户可以查询PSW中第7位判断程序执行的正确性。
4.4 软件陷阱技术
软件陷阱技术指嵌入式系统中程序存储器不一定用完,如因干扰嵌入式系统程序计数器PC值错误,程序将会跳到没用到的存储空间,导致系统出错或程序跑飞,软件陷阱就是在这些没有用到的程序存储器中放入空指令和无条件跳转指令,当程序跑飞跑到空程序存储器中,嵌入式系统则认为系统受到干扰程序执行出错,系统自动复位。
5 集成STFWD100xP WTD的应用
5.1 看门狗WTD的分类和特点
看门狗可分为硬件看门狗和软件看门狗,软件看门狗不需要外接硬件电路,但软件定时器会耗费系统CPU资源,软件过长还可能引起系统不稳定导致系统瘫痪;硬件看门狗几乎不耗费系统资源使用随意性较大,硬件看门狗主要是为防止程序在执行过程中受到干扰致使程序跑飞的一种监控芯片,常用WTD集成电路有Xicor公司X25045,Dallas公司DSl232和意法半导体公司STWD100等,有的嵌入式CPU本身自带WTD,如PIC系列和51S系列单片机。硬件看门狗实际就是一个Timer,未等到定时器溢出时程序不断给定时器赋值,程序正常执行情况下定时器不会溢出,当程序跑飞没有正常为WTD赋值定时器会溢出,系统自动复位。看门狗就是在程序正常执行处放一条或几条喂狗指令,使看门狗处于喂饱状态,如程序跑飞长时间没有喂狗,看门狗就会叫使嵌入式系统重启或复位。
STWD100是意法半导体公司新推出的一款操作简单、SOT23-5小型封装、超低功耗、超小体积5脚WTD集成电路,静态电流13μA、输出电流20 mA、输出功耗320 mW。STWD100系列与X25045不同,STWD100省去繁琐的命令,例如X25045读、写锁存器,读写状态寄存器;STWD100系列芯片不同喂狗周期不同,每种芯片只有一个固定的定时周期,例如STWD100xP,STWD100xW,STWD100xX,STWD100xY喂狗周期分别为3.4 ms,6.3 ms,102 ms,1.6 s。STD100xP引脚和封装如图1所示。
图1中1脚WD0:看门狗溢出后输出,漏级开路门使用时须接上拉电阻;2脚GND:接地;3脚EN:集成电路使能信号,低电平有效保持时间1μs;4脚WDI:时钟信号输入端(0.2~0.8)Vcc,上升沿定时器置数并启动;5脚Vcc:电源,2.7~5.5V。
5.2 STWD100的硬件设计
5.2.1 STWD100与51嵌入式系统连接原理图
STWD100同51单片机系统连接如图2所示。
该系统中嵌入式系统复位信号共有3种、上电复位、按键复位和看门狗定时器溢出复位。STDW100初始化设置有2种方式:
(1)当系统上电、使能信号EN=0,STWD100xY看门狗启动定时,定时周期为3.4 ms,在3.4 ms内WDO输出高电平,程序必须在3.4 ms内送入喂狗指令否则系统认为程序跑飞,WDO输出低电平系统自动复位,如图2所示。
(2)当WDI输入上升沿时看门狗定时器启动,启动后WDO保持原有高电平直到定时器3.4 ms后溢出WDO翻转,WDO输出低电平系统自动复位。
5.2.2 STWD100的软件设计
根据STWD100时序原理,当系统上电初始化设置使能信号EN=0,WD0=1启动看门狗,程序在3.4 ms定时周期内喂狗防止系统死机或程序跑飞,如在3.4 ms内系统未检测到喂狗指令,WDO输出低电平系统自动复位,具体程序如下:
5.3 STWD100实验结果
STWD100技术比较成熟,基本不会出现由STWD100自身技术原因和缺陷带来的不稳定,关键是用户掌握好软件看门狗喂狗的时间和时序,喂狗时间过短系统效率不高,喂狗时间过长容易导致系统重启。STWD100xP时序图如图3所示。实验结果证明在几乎不占用CPU资源的情况下,系统加上STWD100硬件看门狗后,系统工作稳定度提高很多几乎没有出现死机和程序跑飞的情况,有效防止了系统干扰提高了系统稳定性和可靠性。