欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

树莓派的芯片周围为什么有这样的蛇形走线?

程序员文章站 2022-03-27 09:56:41
...

  近来我发现树莓派的芯片周围有各种各样的蛇形走线,感觉好奇怪,特意请教了高手分析一下。大家请指教!

  我认为主要牵涉到两个方便的问题:

  1.差分线,就是题主发的图片中电路板上特别接近的两根线,总是一对一对的出现。

  2.蛇形走线,就是图中弯弯曲曲的电路线。

  不管是差分走线还是蛇形走线其实都是为了保证电路设计中很重要的一个东西——信号完整性。什么是信号完整性呢?下面是*给的一个解释:

  信号完整性(Signal integrity, SI)是对于电子信号质量的一系列度量标准。在数字电路中,一串二进制的信号流是通过电压(或电流)的波形来表示。然而,自然界的信号实际上都是模拟的,而非数字的,所有的信号都受噪音、扭曲和损失影响。在短距离、低比特率的情况里,一个简单的导体可以忠实地传输信号。而长距离、高比特率的信号如果通过集中不同的导体,多种效应可以降低信号的可信度,这样系统或设备不能正常工作。信号完整性工程是分析和缓解上述负面效应的一项任务,在所有水平的电子封装和组装,例如集成电路的内部连接、集成电路封装、印制电路板等工艺过程中,都是一项十分重要的活动。信号完整性考虑的问题主要有振铃(ringing)、串扰(crosstalk)、接地反弹、扭曲、信号损失和电源供应中的噪音。

  一、差分线的作用。

  差分线主要是对抗电路板上干扰和噪声的。组成数字电路的数字器件一般都是由数字逻辑单元组成,而逻辑单元一般都是由开关器件,例如晶体管,mos管构成。数字电路中通常由高低电平来表示数字逻辑的”1”和”0”,但是电路中传输的高低电平本身却是模拟量。由于电路信号线导线带宽不是无穷大的,而且开关器件高频工作时候不能忽略寄生的电容以及电感的影响,其结果就是,在数字开关导通截止的时候,输出电压不会从高到底,或者从低到高的平滑过渡,会产生吉布斯(Gibbs phenomenon,如图所示)振荡,寄生电容,电感振荡等等,这些多余的振荡电压如果通过某种路径影响到有用信号的传输,那么对于有用信号来说,这些多余的东西就是干扰噪声了。

  上述只是信号干扰噪声的一个来源,还有很多其他的来源例如电源噪声,电磁干扰噪声等等。

  解决干扰噪声问题的思路有两个方面:

  1. 从干扰的传输的路径上去消除。

  就是让干扰和噪声尽可能大的衰减,在抵达有用信号传输导线上时候变得很小,从而不影响正常信号的传输。现在的高速电路设计有很多的设计原则和指导,都是用来减小干扰和噪声的。例如,EMC(Electro Magnetic Compatibility),电源去耦,快速入地,模拟和数字电源和地平面隔离等等,这里就不展开说了。

  2. 从提高传输信号本身的抗干扰和噪声的能力入手。

  先普及一个叫噪声容限(Noise Margin)的概念,噪声容限是指在前一极输出为最坏的情况下,为保证后一极正常工作,所允许的最大噪声幅度。噪声容限越大说明容许的噪声越大,电路的抗干扰性越好。如下图中,驱动器A传输信号到接收器B端的输入。

  高电平噪声容限=min{VOH_A}(最小输出高电平电压)— min{VIH_B}(最小输入高电平电压)

  低电平噪声容限=max{ VOL_A }(最大输入低电平电压) — max{ VIL_B}最大输出低电平电压

  噪声容限=min{高电平噪声容限,低电平噪声容限}

  理论上说,只要表示逻辑“1”和“0”的高低电平电压差越大,噪声容限就会越大,但是越大的电压差就需要越高的电压供电,造成功耗的浪费,另外电压差越大,从低电过渡到高电平或者从高平过渡到低电平需要的时间越长,直接影响电路的最高的工作频率。

  早先的数字电路通常是晶体管(transistor)电路,对应这种电路,自然发展出一种叫TTL(Transistor-Transistor Logic)的电平标准,数字器件在5V电源工作,通常驱动器表示高电平,既逻辑”1”的时候,输出电压》2.4V,典型值为3.5V;表示低电平,既逻辑“0”的时候,输出电压《0.4V,典型值0.2V。同时,输入端可分辨的最小输入高电平和最大输入低电平:输入高电平》=2.0V,输入低电平《=0.8V,噪声容限是0.4V。

  可见TTL电路的抗噪声能力是不强的,TTL电路中高电平2.4V与电源5V之间还有很大空闲,对改善噪声容限并没什么好处,又会白白增大系统功耗,还会影响速度。所以后来就把一部分“砍”掉了,逐渐发展出一种叫LVTTL(Low-Voltage TTL)的电平标准,分辨支持3.3V电源和2.5V电源(还有支持更低电源的):

  3.3V LVTTL: VCC:3.3V;VOH》=2.4V;VOL《=0.4V;VIH》=2V;VIL《=0.8V。

  2.5V LVTTL: VCC:2.5V;VOH》=2.0V;VOL《=0.2V;VIH》=1.7V;VIL《=0.7V。

  虽然LVTTL的标准,降低了供电电压,但是对噪声容限没有什么改善(还是0.4V),后来CMOS电路逐渐取代晶体管电路成为主流,对应便有了LVCMOS电平标准:

  3.3V LVCMOS:VCC:3.3V;VOH》=3.2V;VOL《=0.1V;VIH》=2.0V;VIL《=0.7V。

  2.5V LVCMOS:VCC:2.5V;VOH》=2.0V;VOL《=0.1V;VIH》=1.7V;VIL《=0.7V。

  相比于LVTTL,LVCOMS电路的噪声容限得到一定的改善。

  另外,TLL电路是不能和LVTTL和LVCMOS直接相连的,两者之间需要经过电阻网络匹配才可以。相同电源下LVTTL和LVCMOS电路导线是可以直接互连的,甚至不同电源之间也可以互相直连的,只是不能达到最佳的噪声容限。不过为了防止电流过载的情况出现,推荐在做电路设计的时候,QQ账号出售信号导线串联个电阻什么的。

  除了上述提到的电平标准之外常用的还有RS232(串口),RS422等电平标准,它们用正负电平表示逻辑“1”和“0”。还有工作在非饱和状态(饱和状态指只有导通和截止状态)的电平标准ECL,PECL等,这里也不展开说了。

  多说一句,现在开源硬件很火,买个开发板,再买些周围的小的设备板子,或者自己做一些小板子很随意便可以搭起电路系统来,根本不用担心各个芯片,器件之间是否存在电压兼容的问题,就得益于LVTTL和LVCMOS这些电平标准的统一应用。所以真应该感谢前人的努力,使得我们可以像做软件一样做硬件。

  以上无论TTL,LVTTL还是LVCOMS电平标准都是单端电压标准。所谓单端电压标准是指这些标准的输出或者输入电压都是相对于电路公用的地平面来讲的,在高速数字电路中,公用的地平面很容易传播干扰和噪声。

  所以有没有某种技术既可以隔离干扰噪声,又能保持一定的噪声容限,还能高速的传输信号?

  这当然难不倒聪明的攻(dan)城(shen)狮(gou),这时候差分传输技术出现了,区别于传统的一根信号线一根地线(在PCB中就是公用地)的做法,差分传输在这两根线上都传输信号,这两个信号的振幅相等,相位相反,例如网线中的双绞线就利用差分传输技术。一种比较常见的差分传输的电平标准叫LVDS(Low Voltage Differential Signal,用的也比较多,因为没有专利费),如下图:

  LVDS翻转电压只有350mv对应比较小的噪声容限,但是LVDS本身是不容易被干扰,如图线图中,差分信号分别在AB两路上传输,虽然单独看A和B都收到很大的干扰影响,但是他们差值A-B则受到的干扰影响小很多,这个过程叫共模干扰抑制(Common Mode Rejection )。另外,较小的翻转电压能支持高速信号传输。

  我对题主所发的树莓派的开发板不太了解,但是大体上,如果是连接内存的差分线采用的应该是LVDS标准,显示方面如果支持的是普通RGB高清LCD屏幕,差分线采用的也应该是LVDS标准(没有专利费),如果支持的是HDMI估计采用的是TMDS标准,具体这两个标准有什么差别,感兴趣的话可以查查资料什么的。

  二、蛇形走线的作用。

  蛇形走线是为了保证电路时序约束的正确。数字电路中高低电平相互翻转的时候是需要时间的,为了保证在接受端电平能被正确的采样,通常会预留一点时间给信号电平建立起来,同样,正确的采样也需要一点时间,就需要信号翻转到某个电平后保持一段时间。这就是所谓的setup time和holdup time。

  如上图,左边红色的Ts是setup time,右边Th是holdup time。对于一个导线上传输信号来说了最大的时间延迟 Tdelay=Tclk(工作时钟)-Ts-Th。对于多个导线信号传输的情况,如果他们之间的长度差距过长,信号在导线走的路线长短不一样,造成的时延差大过Tdelay,则接收端就会接收错误。

  上面两张图是从TI某款DAC芯片手册上截出来的,可以看出这个时钟芯片上升沿和下降沿都是要采样数据的。有一点让人疑惑了,为什么 Ts时间为0,这是因为该DAC芯片对于数据来说是输入端,自身没有要求,而实际上数据从驱动端到输入端,电平翻转建立是需要时间的,如下图是该DAC芯片自己输出的上升和下降时间(电压从高电平电压的10%升到90%,或者从90%降到10%)。

  实际的Ts跟驱动器的能力,电路设计都有关系,我们取一个大概可能的值例如300(setup time是指信号建立并稳定的时间一般要比简单上升或者下降时间大些)

  可以算出Tdelay=1000000/(2*625)-300-400=100ps=0.1ns,既折算回导线之间最大的长度差L=0.1* 299792458(光速)/10^9=0.012m=1.2cm。所以导线之间最大的布线距离差在此种情况下估算不能超过1.2cm。

  在高速电路的PCB布线中,因为器件位置的影响,有些位置的导线天生的长些,有些会短,所以为了保证时序约束的正确性,使得有些位置的导线多走些路,保证走过的距离差不多,时延差也差不多。

  另外,在板级系统设计上,时延约束并不是一个特别大的问题,这是因为板级系统的时钟工作频率不会特别高。实际上,时延约束在芯片级系统的设计上才是一个比较难解决的问题,因为芯片的工作频率动辄上G,对于时延要求很高,通常攻(dan)城(shen)狮(gou)要耗费大量的工作在优化逻辑门电路的布局和布线上。

  英飞凌92种芯片免费申请活动,正在云汉电子社区火热进行中,活动详情请点击:英飞凌活动