什么信号需要绕等长?
绕等长是高速PCB设计中的一个常见操作,但是很多工程师并不清楚为什么要绕等长?也不清楚到底哪些信号需要绕等长?
如果你无法回答上面两个问题,那么你可以接着往下看。
目的
首先我们来说下为什么要绕等长?
在传输线基础知识一文中,我们提到传输线是存在延时的;所以如果传输线不等长,那么信号在PCB上的延时也将不同。
如果两根信号有时序要求(如:CLK和DATA),那么由传输线不等长引入的时差就有可能导致时序错误,从而造成通讯或传输的数据错误。
因此绕等长的目的就是:为了减小信号的传输时差(或者说为了信号等时)。
时序要求
现在我们知道绕等长就是为了满足时序要求,那么哪些信号有时序要求呢?
我们先了解下信号传输的4种基本方式:
-
异步(内时钟同步)传输:两个IC或设备以各自的时钟为参考时钟,通过计时机制或握手机制进行数据传输的一种通信方式。
-
共同时钟(外时钟)同步传输:两个IC使用同一个外部时钟作为参考时钟进行数据传输的一种通信方式。
-
源同步传输:发送端同时发送时钟和数据信号,接收端根据发送端提供的时钟提取出数据的一种通信方式。
-
时钟数据恢复方式:发送端只发送数据,接收端从数据信号中同时提取数据与时钟的一种通信方式。
异步传输方式的信号对时序无要求,所以也就不存在绕等长的要求。
共同时钟同步传输方式的信号传输速率一般都较低(300Mbps以下),对时序的要求不严苛,一般情况下不需要等长绕线;如果信号传输速率大于100Mbps或者PCB空间不紧张的情况下,也可以做绕等长处理,但是需要注意绕线长度不要太长。
源同步传输方式的时钟和数据是同时从发送端传输到接收端,对信号时序的要求最高,如果时钟和数据存在时差,就会导致采样点发生偏移,严重时数据提取错误。
时钟数据恢复方式传输的信号时钟和数据是共同传输的,不存在传输时差。
需要绕等长的信号
想要回答文章开头的问题,现在我们就只要了解哪些信号的传输方式是源同步传输即可。
DDR
首先可以想到的就是DDR信号(DDR是最常见的源同步传输方式的信号之一),DDR中所有的控制线和地址线都是在CK上升沿与CK#下降沿的交叉处被采样;而数据线与其对应的DQS、DQS#(数据选通)信号同步。
DQS、DQS#为数据选通(锁存)信号,双沿有效,写数据时输入,信号沿与数据中心对齐;读数据时输出,信号沿与数据边沿对齐。
以16bit DDR为例,其一共可以分为三组来做等长处理:
第一组:CLK/CLK#、地址线与所有的控制线
第二组:D0~D7、DQS0、DQM0
第三组:D8~D15、DQS1、DQM1
eMMC & SDIO
其次就是eMMC总线和SDIO总线,在这两种总线中,DATA信号和CMD信号都是与CLK同步。
所以eMMC总线和SDIO总线中DATA信号、CMD信号和CLK信号需要一起做等长处理,支持HS400的eMMC总线还有DATA Strobe信号,也需要和数据线做等长。
媒体独立接口(MII)
MII是媒体访问控制(MAC)子层和物理层(PHY)之间的接口,从媒体独立接口(Media Independent Interface)一文中我们可知,MII总线一般分为两部分(Tx和Rx),TX数据线与TX_CLK信号保持同步;RX数据线与RX_CLK信号保持同步。
所以MII总线的等长处理可以分为两组:
第一组:TXD[0:3]、TX_CLK
第二组:RXD[0:3]、RX_CLK
同理,RMII、GMII、RGMII、XGMII都需要分成两组做等长处理。
HDMI
在HDMI 2.1之前,HDMI有三对差分数据线和一对CLK信号,但是这组CLK信号只是作为参考信号,在接收端倍频用于数据信号的采样,传输时并不与数据信号同步。
所以在HDMI2.1之前,只要保证三对数据线绕等长即可(实际根据HDMI协议规定,HDMI 2.0的对间Skew可以允许最大2000mil,就算不绕等长也基本不会有问题)。
而对于HDMI 2.1,由于其采用了时钟数据恢复技术,不会存在时差,所以可以不用绕等长。
不需要绕等长的信号
根据上面的描述,我们也可以总结出不需要绕等长的信号有:
-
UART(低速信号线,异步传输方式)
-
SPI(低速信号线)
-
I2C(低速信号线)
-
Nand Flash并行总线(低速信号线)
-
XAUI(高速信号总线,时钟数据恢复技术)
-
USB(高速信号总线,时钟数据恢复技术)
-
PCIE(高速信号总线,时钟数据恢复技术)
-
HDMI 2.1(高速信号总线,时钟数据恢复技术)
-
SATA(高速信号总线,时钟数据恢复技术)
-
MDI接口(网口)(高速信号总线,时钟数据恢复技术)