随着数字数据流速度加快,频率会升高,每个比特的传输时间也会缩短。这就会引发信号完整性问题,而且数据速率每提高一次,这些问题就会变得更复杂。这些信号是通过电路板传输的。那电路板的材料和构造,会对板上传输的信号完整性产生怎样的影响呢?
导体粗糙度不仅会影响金属或导体本身的损耗,还会对材料的介电特性产生影响,而这些介电特性是用来给设计建模的。要是没考虑到这些,模拟结果往往会出错,不够准确。所以,导体粗糙度对PCB层压板的影响得放在首要位置,因为它会影响到所有这些方面。
实际的介电材料是有各向异性的。所谓各向异性,就是说介电材料里的电场,会根据激发方向的不同而有不同的反应。这就会影响到介电常数的推导和公布方式,而电路板厂商正是用介电常数来确定叠层结构和进行阻抗计算的。根据所用的测试方法不同,介电常数(Dk)可能是“面内”的,也可能是“面外”的。如果测试的是面内介电常数,却用它来做传输线建模,那算出来的阻抗就会出错。这样一来,做出来的电路板可能就达不到公差要求。
说完材料特性,再说说高速情况下的玻璃纤维编织效应。当我们用差分对连接串行链路时,大概在10G及以上的速率,玻璃纤维编织效应就会开始产生影响。因为速率越高,设计的余量就越少,而玻璃纤维编织效应会导致两条线之间出现时序偏移,也就是时间上的差异。这会影响到设计的裕量,还可能让设计产生额外的损耗。
人们可以用不同的技术来缓解这个问题。有种叫“分散编织玻璃布”的材料,它能把玻璃纤维布的纤维在树脂里分散开,有助于减轻这种效应,让损耗更均衡。电路板厂商在设计时也可以旋转布线,还有其他一些方法。不过,旋转布线也有问题,根据旋转角度的不同,可能会产生一种叫弗洛凯-布洛赫效应的现象,导致插入损耗出现微小的共振。所以说,这些因素都是相互关联的,得综合来看。简单说,导线表面的粗糙度会增加传输线的阻抗,进而影响电流流动和磁场。
覆铜的时候,铜面并不是完全光滑的。实际上,人们还会特意把铜面做得粗糙些,这样能让铜和介电材料更好地粘合。所以从某种意义上来说,这种有利于机械结合和剥离强度的做法——也就是让导线能牢牢粘在板上,方便返工之类的——在高速情况下,却对信号完整性不利。说白了,粗糙度会增加信号在互连或网络中的损耗。而且,粗糙度还会给电路带来额外的延迟,也会产生一些电感效应,可能会影响时序。
另外,要是做射频设计,虽然对损耗没那么在意,但粗糙度对介电特性的影响还是存在的。可以从电路模型的角度来看,人们建模时会考虑电子在导体中的流动,在一定程度上,这个模型是够用的。但从电磁学角度来说,信号是通过铜和参考平面形成的传输线来传播的。粗糙度会阻碍这种传播,既会增加延迟,也会吸收一部分能量,还会产生散射。以前人们对粗糙度的理解是,铜面上有高低起伏,电流流过的时候路径变长了,所以损耗就增加了。
这就是过去人们对粗糙度的看法:路径变长导致了额外损耗。但实际上,这并不符合物理规律。要是真那样的话,就违背了光速不变的物理定律——总不能说电流为了按时到达,速度就得超过光速吧。所以本质上,粗糙度对损耗没好处。在高速场景下,我们会尽量用粗糙度低的铜箔,同时采用不同的粘合技术,既能保证粘合效果,又能让铜面比较光滑,我们现在就在往这个方向努力。
现在速率越来越高了,肯定要涉及20G、25G、56G、112G以上的情况。似乎每隔几年,系统速率就会往上涨一截。每次数据速率提升,都会出现新的物理问题,玻璃纤维编织效应就是其中之一。
PCB里有玻璃纤维丝,这些纤维丝是用来增强电路板强度的。但它们会对信号完整性产生什么影响呢?
尤其是在差分信号里,我们制作实际的印制电路板层压板时,那材料其实是玻璃纤维编织布和其他东西混合成的。就像棉布是织出来的一样,玻璃纤维布也有网格状的纹路,经纬交错那种。
我们之前说过,纤维是按X和Y方向形成网格图案的。假设一根导线正好全程都落在X方向的纤维上,另一根导线却大部分落在纤维之间的树脂区域——因为X方向的纤维之间是有间距的。要是传输线的走向和纤维间距不匹配,就会出现一根导线主要在玻璃纤维上、另一根主要在树脂上的情况。
介电常数会影响信号的传播速度。玻璃的介电常数比树脂高,所以如果一根导线在玻璃纤维上方,信号传播速度就会比在树脂上方慢。这种速度差异就是咱们说的“时序偏移”。
差分对里有正信号和负信号一起传输。要是一个跑快了、一个跑慢了,到接收端时就对不齐了。这时候差分信号会转换成共模信号——偏移量越大,转换得越多。共模信号在差分对上可不是好事,容易产生辐射,所以才会加扼流圈之类的来处理。所以咱们得尽量避免差分对出现偏移。
电路板里,玻璃纤维编织效应是造成偏移的主要原因之一。因为两根导线遇到的介电常数不一样,速度也就不同。所以得想办法缓解这个问题,方法有好几种。最简单的就是别让导线走得笔直笔直的。
可以让导线稍微拐拐弯,别完全走直线。要是实在必须走直线,那就要么调整设计图的方向,要么在工厂制作时旋转电路板的面板角度。这样一来,导线就算是直的,也不会和纤维纹路完全平行,而是呈一定角度,就能减轻那种效应了。现在还有种“分散编织玻璃布”,就是把纤维拉开点,填满原来的空隙,让结构更均匀,也能起作用。
那“分散编织”是不是说,玻璃纤维丝之间的距离是特意弄成不一样的?
织布的时候都有经线和纬线。经线一般是垂直方向(Y方向),纬线是水平方向(X方向)。原本纤维之间是有空隙的,分散编织就是把纬线拉开,填满那些空隙(经线一般不怎么动,也可能两边都拉)。不管怎么说,目的都是让两种介电材料(玻璃和树脂)的分布更均匀。
把整个电路图案相对于网格旋转一下,怎么就能改善差分对的信号完整性呢?
这其实会带来另一个问题。因为旋转面板的话,根据旋转角度不同,可能会产生新的信号完整性问题。玻璃纤维编织的时候,经纬线是上下交错的,交叉点就像一个个“结”。
如果导线斜着走直线,最终会周期性地穿过这些“结”。这些结的地方介电常数更高,相当于增加了额外的电容,这叫“周期性负载”。根据角度不同,负载出现的周期也不一样,反映在插入损耗上就是一个个小的共振尖峰——虽然不深,但确实存在。要是这个尖峰正好出现在信号的奈奎斯特频率上,就会增加那个频率的损耗。
不过这能算出来。从标准里能查到经纬线的间距,用三角函数算一下就能预测共振会出现在哪个频率。所以关键是让这个尖峰避开重要的工作频率,这决定了旋转角度该怎么设。这事儿就是这样,解决了一个问题,要是没考虑到其他方面,可能又会冒出新问题。
现在复杂的电路板大多不止两层,八层、十层、十二层都很常见。这些层的堆叠方式对板上的信号有什么影响呢?
所谓叠层结构,顾名思义,就是把一层层板子堆起来。我之前说过那种双面覆铜的芯板,做多层板的时候,就是把这些芯板叠在一起。不过要把这些双面芯板粘起来,还是得用半固化片(prepreg)。所以叠层大概就是这样:从最上面开始,先是顶层,然后是一层半固化片,接着是另一块双面芯板,再铺半固化片,再放芯板,就这么一层层往下叠,直到达到需要的层数。
这本身倒不算啥大问题。但做叠层的时候,有个关键是要保持中心对称。也就是说,中心层上面的结构,不管是铜厚还是介质厚度,都得和中心层下面的一样。所以一般来说,叠层的层数都是偶数,很少会见到奇数层,就是为了保证这种对称性。
我们还会尽量让芯板两面的铜厚一样,这叫铜的重量规格。
PCB行业里有个挺特别的说法,他们常用铜的“重量”来表示厚度,比如半盎司铜、一盎司铜,每种重量对应着特定的厚度。这个重量指的是每平方英尺面积上铜的盎司数,半盎司铜大概是0.7mil厚,一盎司就是1.4mil左右。所以看叠层说明的时候,常会看到“盎司”这个单位,而不是直接说厚度。这有时候会让人迷惑:怎么从盎司算出厚度呢?其实就是这么个由来。
这些都决定了叠层具体怎么设计,但板子厚度肯定不能无限增加。
现在的电路板都要打通孔,要么是为了装元件,要么是通过过孔把不同层连起来。钻头都有固定尺寸,这就涉及到一个“纵横比”的问题——电路板厂商得保证过孔内壁能均匀镀上铜,从顶层一直到低层都得镀好。
纵横比就是钻孔直径和板厚的比例。比如10mil的钻头,对应的纵横比是10:1的话,那板子厚度大概就是100mil。说白了,就是板厚和钻孔直径的比例。厂商都会有自己能处理的最大纵横比限制,大多数厂商能做到10:1,这就不错了。高端一点的能做到15:1,有些工艺好的甚至能到20:1。这个纵横比决定了板子的最大厚度,因为钻头尺寸是固定的,得匹配才行。这还会影响到零件的引脚间距——要看引脚布局什么样,才能确定能装什么样的零件。所以说这些因素都是相互关联的,板厚、层数、零件引脚间距,还有具体工艺,都得互相配合,就像在跳一支协调的舞蹈,得平衡好才行。
最后,总结一下,电路板材料和构造对信号完整性影响显著。导体粗糙度影响介电特性,致模拟结果不准;介电材料各向异性,错误测试会导致阻抗计算出错;高速时玻璃纤维编织效应引发时序偏移;叠层结构需中心对称,板厚受纵横比限制。需综合考虑各因素,平衡板厚、层数、引脚间距及工艺,以改善信号完整性。
316