EDA365欢迎您登录!
您需要 登录 才可以下载或查看,没有帐号?注册
x
本帖最后由 alexwang 于 2019-1-16 13:58 编辑
. W" x5 ]# T9 x. J: u* l6 z; \* W$ U2 t4 a$ U4 M* J, ^0 w
高速信号-交流耦合电容 EDA365原创 作者:John
7 e) g( x9 J! [$ k+ c4 y% W. m
我们在处理高速差分信号的时候,经常使用交流耦合,也会使用直流耦合,比如PCI Express我们看到的是交流耦合。早期光模块和芯片之间的LVPECL则更多地使用直流耦合,这篇文章我们不打算讨论什么情况下使用交流耦合,什么情况下使用直流耦合,我们要讨论的是使用交流耦合时需要解决的问题。
7 m4 G- H# w2 n9 f - T( t' V. M" g/ _ N. D& a
很简单的一个问题, 交流耦合的电容需要选择多大?我们最常见的有0.1uF和0.01uF, EDA365网友们有想过为什么吗?为什么不选更大或者更小的?今天我们试图来用最简单的方式来解释,我们先使用频域的方式。
9 F% e% n% g4 T5 g6 h
◆◆1. 频域◆◆ ) m. w* q! x% i9 h1 L1 I
( Y* t- S( n. a3 b3 B6 D( H
以PCIE为例,我们知道PCIE内含8b/10b编码,并且我们知道它的所谓2.5Gbps (PCIE1.0),5Gbps(PCIE2.0),8Gbps(PCIE3.0)速率指的包含了8b/10b后(PCIE3.0是128b/130b)的速率,也就波特率,这一点和以太网不一样,千兆以太网的SGMII接口速率其实1.25Gbps,去除8b/10b后比特率是1000M,所以这里的千兆指的payload速率,而且PCIE的速率指的是加上开销以后的速率。 . u1 p! G4 W8 G# t, J4 T# x$ |
- U4 I, ^! L9 ]7 t* p/ t
题外话不多说,我们知道8b/10b作用是确保0和1的平衡,使得信号不会出现很长0和很长的1,防止接收端的CDR失锁,也就是去除了信号的低频部分,使得信号的频谱保持在某个频率以上。如图所示经过8b/10b编码后信号的频谱在低频段衰减了8dB
" l, O1 r! c- O! T' w1 G$ L' \/ C
) V% J- L2 E' A- i; e1 Q8 _
那么我们怎么去除、为什么我们要去除低频,保留高频呢?各位EDA365网友可以思考一下,这还得从AC耦合的结构原理说起:
2 p L, [ k8 R/ ^$ B# b3 u
0 M1 y- v0 ~$ r. M8 u
根据上图,我们进一步细化一下模型如下:
) N9 a2 b. |8 q0 Q# n( v5 }
2 o+ d C" v( i& x- N1 p
我们看到耦合电容和传输线的特征阻抗组成了一个高通的滤波器,如下面的图所示我们需要确保此High pass filter的截止频率(绿色线)要低于信号经过8b/10b后的频谱的最低点(红色线),因为只有这样才能确保信号的能量完整的通过。 ( t5 R2 a$ J; g4 u0 ^
( N* V' f: |6 V
下面我们来计算一下: 1. 传输线特征阻抗Zr=50; 2. AC coupling电容值为C; 3. PCIE信号经过8b/10b后的信号频谱也是已知的,用频谱仪测一下或者简单用速率(比如PCIE2.0的5Gbps)除以4简单估算一下, 因为8b/10b最长0或者1只有4位了; 下面我们就来计算电容的值:
我们很容易就能得出C的值了,简单吧。 * e3 _, F( c& r" |# ^
◆◆2. 时域◆◆ . [- s* G) J6 ?% e+ _) q8 s
3 e6 ?; G9 c! s. G) a2 C o6 }
从时域来解释,如果不用8b/10b的话,问题有两个,请看下面这段英文的精妙论述:AC coupled data signals would have DC drifts depending on the data content. A long sequence of 1′s will lead into positive drift and many 0′s will drift toward negative voltage. 意思是说如果没有8b/10b的话,信号的长0和长1会使得信号本身发生直流漂移。
# d! g( H" Q( k
7 Q7 S; z2 n, P0 U% O
而加了8b/10b以后,CDR和恢复和信号直流漂移问题解决,下面这张图我们再来看,所谓的“constant average value”已经趋于水平而不会上下摇摆。
6 V, k9 k0 _* M5 i% w
" e/ ]' o3 w: X! m6 H/ N
我们继续阐述8b/10b在时域的作用,信号经过了ac coupling电容之后,相当于经过了一个高通的滤波器,会产生的问题如下,高频跳变的能量可以顺利通过, 而低频的长0和长1则不能通过, 低频信号发生了畸变,而经过了8b/10b后,信号的低频部分被消除,也不会有畸变的事情发生了。
& r0 u# V1 s( W- ?; b
, J/ c1 c; X* ~8 T" S
那么是不是就说加了8b/10b后,使用ac coupling就什么问题都没有了呢?否,我们需要仔细考虑计算我们的ac coupling电容的大小。我们先来看看经过high pass后时域信号发生的变化: ! w3 o, ^: [* r, q( G$ M- ?" x
' a0 `+ A8 C+ v V; v' ^4 z
我们看到仍然有部分低频部分被去除,这可能是由于电容选择不合理,我们先来看看电容取值如果太小会怎么样?
/ `1 T6 A: g+ m/ s0 W
' W) V5 P8 s' t. M) g% K
电容如果取值太小,高速信号在充放电的时候,很显然容易饱和,我们知道电容一旦饱和,阻抗就会变得很大,抵抗外面的高速信号的变化,为什么小电容容易饱和呢? 我们想象一下,电容的正负极板其实是随着信号跳变也在不停地做充放电,这样极板两边的极性才会随着信号的高低而变化,如果是小电容再加上长0长1的低频部分到来,一下就充满了。一旦充满,最终导致信号的有效低频部分被去除,如下如所示,连续三个1就会导致电容饱和,我们仔细看一下变化的步骤:
* c$ ~" u) O/ q
1) 开关打到1; 2) 电容阻抗无穷小,电阻分压最大; 3) 随着电容充电,电容的阻抗在变大,如果饱和了,阻抗就变得无穷大,阻碍外部的交流变化,而且电阻上的分压变得很小,导致直流漂移; 4) 开关打到2; 5) 电容开始放电,如此周而复始。
8 o8 l% }0 G& O: e3 z
我们可以看到直流电平缓慢下降的直流漂移会带来什么,会带来抖动,这种特殊的抖动叫PDJ。
0 v' _1 _& k. _3 v/ K! R
- C7 Y0 c4 M# r' T
我们看到当出现1110的数据时,就会在1到0转变的边沿偏离,产生抖动,产生的原因很简单,就是因为直流电平的起点低了,导致下降沿比正常的周期跳变信号提前了, 这种抖动是我们不喜欢的,一方面信号变形,另外一方面CDR需要跟踪并且修复这种抖动, 是的眼图质量裂化,误码率升高。 " k+ i$ M* _3 u
那么电容选太大会怎么样? 当然很容易想明白,不能选太大的电容,因为大电容含有ESL/ESR,也会对信号有衰减。
( ]4 }, R( w! H2 L/ v" n
所以从时域和频域的两个角度,我们知道高速信号的ac coupling的电容选择需要仔细计算和考量,不能随意。 0 K" z6 Z3 s ~/ q; o8 h
注:本文为EDA365电子论坛原创文章,未经允许,不得转载。
& w$ X5 T) \' u: I+ m |