解析嵌入式系统串扰问题
图4感性耦合的近端、远端串扰波形
正常条件下,在一个完整平面上,感性和容性的串扰电压大小基本相等。远端的串扰分量(在D点的电压)相互抵消,近端的串扰分量(在C点的电压)相互增强。带状线电路具有很好的感性和容性耦合平衡性,因此其远端耦合系数极小;对于微带线路,与串扰相关的电场大部分穿过空气(而不是其他的绝缘材料),介电常数较小,因此容性串扰比感性串扰小,导致其远端串扰是一个小的负数。在开槽和其他不完整的参考平面上,感性耦合比容性耦合更大,使远端串扰变大。
1.4 串扰的反射
电压反射系数ρ的计算公式:
式中,RL是终端负载电阻,Z0是传输线特性阻抗。若RL =Z0,则ρ=0;若终端开路(RL=∞),则ρ=1;若终端短路(RL=0),则ρ=-1。在图1中,若近端阻抗与传输线特性阻抗不匹配,会使近端串扰在远端造成反射。为了消除近端串扰反射到远端,可以通过在近端接入正确的匹配电阻使ρ=0,消除反射。
2 串扰理论的应用实例
在工作实践中,笔者遇到了很多有关串扰的实际案例,通过运用上述分析的结论,均较好地得以解决。现将几个代表性问题的解决方法与大家分享。
2.1 增大信号走线间距
现象:Linux操作系统在加载过程中,出现偶然性意外错误而终止,系统提示访问了非法地址。
分析:操作系统从NAND Flash解压到SDRAM中并执行。SDRAM的CLK信号频率较高、沿斜率较大,本身就是一个干扰源。同时,由于CLK信号对于SDRAM时序控制的重要性,若受到周围信号的干扰,则可能影响SDRAM的正常读写。用示波器测试SDRAM的CLK信号,发现信号上偶尔会出现一些很小的干扰,但系统加载却正常了。经分析,这应与示波器探头自带的电容有关。尝试在CLK信号与地之间并接10 pF去耦电容,系统加载即正常。可见,CLK信号确实是受到了干扰,并接去耦电容正是将干扰滤除了一部分。
解决:由于SDRAM是高速器件,时序要求较高,CLK并接电容后,信号沿变缓,时序参数较为临界,通过增大信号走线间距的方法解决串扰问题更为合适。重新设计PCB时,将CLK与信号其他信号的中心距增大到3W(即3倍线宽),问题得以解决。
2.2 在信号源端串接电阻
现象:CPU通过总线外扩一个以太网芯片,但程序无法正常初始化该芯片,网络不通。
分析:用示波器测试“读”、“写”、“片选”、“数据”、“地址”等总线信号,发现这些信号上升、下降沿时间很短,信号过冲较严重,信号间距受空间所限无法增大,因此,总线信号间必然存在串扰问题。各总线信号既是干扰源,又是被干扰对象。在信号源端串接电阻有两个好处:作为干扰源,源端阻抗变大,电流变化率降低,与其他信号的互感耦合减小;作为被干扰对象,源端阻抗与传输线匹配,有利于吸收近端串扰,避免将近端串扰反射到远端。
解决:将总线信号源端串联电阻的阻值从10 Ω增大到50 Ω,重新运行程序,网卡芯片初始化正常,串扰问题解决。
2.3 为信号提供完整的参考平面
现象:CPU总线上增加点阵液晶设备,发现网口通信时网口1经常出现丢包现象,网口2甚至无*INK UP成功。
分析:系统主板为两层板,没有完整的信号参考平面,由于液晶连接线较长,使数据总线的长度增加,从而使串扰变得更加严重。网卡芯片与点阵液晶共用低8位数据总线与读、写控制信号,因此信号受到干扰、通信受到影响。
解决:重新设计PCB时,将2层板改为4层板,增加地层、电源层,为总线信号提供完整的参考平面,串扰减小。
2.4 减小被干扰电路接地阻抗
现象:SPI通信时,从SPI设备读回的数据不是期望的数据。
分析:用示波器测试SPI总线信号,发现CLK信号的上升沿、下降沿产生高频振荡,并两次跨过高、低门限电平。这将引起SPI数据的误触发,使CPU得到不正确的数据,因此需要滤除该高频干扰信号。
解决:在CLK信号与地之间并接1000 pF去耦电容,为高频干扰信号提供对地的低阻抗通道,干扰问题解决。
结语
串扰在高速电路设计中是一个不可忽视的问题,会影响系统的时序、降低噪声容限,导致系统无法正常工作。本文介绍了串扰产生的原理,通过对串扰电压的计算推导得到影响串扰的关键因素,根据这些因素提出一系列解决串扰问题的方法,并在实例中进行验证应用,对于解决串扰问题有一定的借鉴、指导意义。
linux操作系统文章专题:linux操作系统详解(linux不再难懂)
评论