大家在设计诸如PCIE、SATA、USB3.0、SGMII等高速信号接口时,常常会在差分数据线上见到一个电容,这个电容就是AC耦合电容。
为方便查阅起见,先将各类耦合电容的大小及放置位置列表如下:
信号类型 | AC耦合电容大小 | AC耦合电容放置位置 |
PCIE2.0 | 100nF | TX 信号线上,靠近TX端放置 |
PCIE3.0 | 220nF | TX 信号线上,靠近TX端放置 |
SATA3.0 | 10nF | TX和RX信号线上,靠近连接器放置 |
USB3.0 | 100nF | TX 信号线上,靠近连接器放置 |
PCIE2.0参考规范:PCI Express@ Base Specification, Revision 2.1
PCIE 2.0传输速率5GT/S,AC耦合电容75nF-200nF,一般取100nF。
PCIE3.0参考规范:PCI Express@ Base Specification, Revision 3.0
PCIE 3.0传输速率8GT/S,AC耦合电容75nF-265nF,一般取220nF。
SATA3.0参考规范:Serial ATA International Organization: Serial ATA Revision 3.0
SATA 3.0传输速率6Gb/S,AC耦合电容规定最大12nF,一般取10nF。
USB3.0参考规范:Universal Serial Bus 3.0 Specfication.Revision 1.0
USB3.0传输速率5Gb/S,AC耦合电容规定75nF-200nF,一般取100nF。值得一提的是USB2.0不需要AC耦合电容。
简要说明下USB2.0为什么不要AC耦合电容:USB2.0速率只有480M。速率并不高,而且存在长连0和长连1的情况,这种情况下有耦合电容的话,长连0和长连1的传输会出问题(长连0和长连1是不是一段电平不再跳变的信号,看,像不像直流,巧了,电容隔直流,还怎么通信啊)。USB3.0更改了编码方式,减少了长连0和长连1的情况,所以需要。
以上为实际设计应用需要用到的信息,下面说说本人对AC耦合电容的看法。
耦合电容拆开来看,分为“耦合”和”电容“两部分含义。所谓耦合,就是让两个东西之间产生联系,相当于把电容两端的不一样的信号联系在一起。所谓”电容“,在这里就起电容最基本的作用:隔直。所以耦合电容到底是怎么实现让两端的不一样的信号联系在一起的呢?
这里可以类比到通信领域理解,在通信领域存在调制和解调的概念。调制就是给目标信号加一个载波以实现目标信号能传输的更远或更优,在这里,目标信号是实际携带信息的,是我们实际需要的信号,而载波只是目标信号的一种交通工具罢了。而解调的含义,就是当目标信号乘坐着载波来到接收端,接收器需要将目标信号和载波分开,从而实现对目标信号的接收,载波的接收是不需要的,以节省更多的资源或提高接收速率。
举个例子,某人要出差到客户那去解决问题(目标信号要发送到接收端去实现通信),为了在有限的时间内到达目的地乘坐了高铁(为了实现信号更远的传输给信号加上了载波,也就是调制),到达目的地后下高铁到客户那解决问题(目标信号到达接收端后经过解调被接收器接收)。总不能把高铁开到客户家里吧,客户家里面积也不够啊(抛除掉载波更节省资源)。
从这里可以看出,我们实现了人到人的通信,但中间借用了高铁这个交通工具。放在高速信号上也一样,信号与信号之间的通信也借用了另一个交通工具:直流偏置,也就是给一个信号的幅值整体抬升了若干电压值,这个电压值就是直流偏置。那假如说通信的两个器件之间的电平标准不一致呢,信号都是一样的,一个直流偏置是1V(一个人的交通工具是汽车),一个直流偏置是2V(另一个人的交通工具是高铁),那直接通信就会出现电平不一致,通信就会出问题(汽车和高铁怎么实现一致性呢,怎么完成通信呢)。这时耦合电容的作用就来了,甭管你乘坐什么来的,统统下车,就人走下来就完事,两个人之间不就可以平等的通信了,对信号来说,对耦合电容两边的信号都实现了解调,只保留最原始的信号,去掉了载波或者直流偏置,两边就可以直接通信了。
所以,耦合电容看起来是实现了电平的转换,使电平不一致的双方可以完成通信,但本质还是对直流偏置的滤除,电平转换只是滤除掉直流偏置的表象罢了。至此,耦合电容的工作原理也就完了,但又产生了新的问题,既然只是滤除直流,那任何电容都可以实现啊,为什么文章开头所说的各类标准中的耦合电容值大小不一样呢。说实话,看了好多文章,各种理论都有,综合起来大多都与信号速率,编码方式等有关,其具体深层原理还未探究,只是别人给定了标准,就按着别人的标准干就完事了,高速信号的标准规范里基本都有规定耦合电容容值的大小。最差的情况:假设没规定,设计可以先上一个104,不行再换呗,设计上有这个理念,调试时再更换呗。