EDA365欢迎您登录!
您需要 登录 才可以下载或查看,没有帐号?注册
x
本帖最后由 alexwang 于 2019-1-16 13:58 编辑 W8 `2 o8 C- d3 o1 a$ T E' l
; q/ M; `6 V1 d& T4 l6 z
高速信号-交流耦合电容 EDA365原创 作者:John
! R* }& i; p" e0 W, r) A
我们在处理高速差分信号的时候,经常使用交流耦合,也会使用直流耦合,比如PCI Express我们看到的是交流耦合。早期光模块和芯片之间的LVPECL则更多地使用直流耦合,这篇文章我们不打算讨论什么情况下使用交流耦合,什么情况下使用直流耦合,我们要讨论的是使用交流耦合时需要解决的问题。9 ^: S$ h$ L; D
8 F: `' b. q# [+ K1 ~! h
很简单的一个问题, 交流耦合的电容需要选择多大?我们最常见的有0.1uF和0.01uF, EDA365网友们有想过为什么吗?为什么不选更大或者更小的?今天我们试图来用最简单的方式来解释,我们先使用频域的方式。
7 l' b" `4 Z; c1 Z! [5 S
◆◆1. 频域◆◆ 8 @: ?' y/ o2 P C* a/ h+ C7 p- @& [, O
2 W) z* `$ H* N, s1 \: _
以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的速率指的是加上开销以后的速率。 1 {( Q: D- \% o
( f. }+ i; h5 z' m& k" {0 `
题外话不多说,我们知道8b/10b作用是确保0和1的平衡,使得信号不会出现很长0和很长的1,防止接收端的CDR失锁,也就是去除了信号的低频部分,使得信号的频谱保持在某个频率以上。如图所示经过8b/10b编码后信号的频谱在低频段衰减了8dB
8 D1 `, o( b; c
" @/ h F( \/ h( U, e* M
那么我们怎么去除、为什么我们要去除低频,保留高频呢?各位EDA365网友可以思考一下,这还得从AC耦合的结构原理说起: ( }: V, ~' n! `# M D' Y
4 F' B C" o; e7 }& L, s B1 J q. R
根据上图,我们进一步细化一下模型如下: 5 f& [; G( }0 H% h' y6 e2 U! c+ e# ~
( V M- g( ?* ~' a" A
我们看到耦合电容和传输线的特征阻抗组成了一个高通的滤波器,如下面的图所示我们需要确保此High pass filter的截止频率(绿色线)要低于信号经过8b/10b后的频谱的最低点(红色线),因为只有这样才能确保信号的能量完整的通过。
( h: K3 `$ E4 n& h0 f
4 f6 a6 L" U0 Y4 r9 I B; E* i
下面我们来计算一下: 1. 传输线特征阻抗Zr=50; 2. AC coupling电容值为C; 3. PCIE信号经过8b/10b后的信号频谱也是已知的,用频谱仪测一下或者简单用速率(比如PCIE2.0的5Gbps)除以4简单估算一下, 因为8b/10b最长0或者1只有4位了; 下面我们就来计算电容的值:
我们很容易就能得出C的值了,简单吧。 * l# S8 _' Q, O- s
◆◆2. 时域◆◆
, H2 C$ B$ h8 @3 c+ e5 a% G5 a# ^# @* ~3 x8 [$ q
从时域来解释,如果不用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会使得信号本身发生直流漂移。
' [: Y0 q3 G7 I+ e5 b2 G8 V3 g
! I% f8 u# ~. E' l: X! l z; [
而加了8b/10b以后,CDR和恢复和信号直流漂移问题解决,下面这张图我们再来看,所谓的“constant average value”已经趋于水平而不会上下摇摆。 ) H, f* u8 |) \2 U$ @* J# F
. x! A2 a' v4 w) P( J
我们继续阐述8b/10b在时域的作用,信号经过了ac coupling电容之后,相当于经过了一个高通的滤波器,会产生的问题如下,高频跳变的能量可以顺利通过, 而低频的长0和长1则不能通过, 低频信号发生了畸变,而经过了8b/10b后,信号的低频部分被消除,也不会有畸变的事情发生了。 2 d' ^9 L; H" [: @2 i% M/ \
9 m% h m' Y; b
那么是不是就说加了8b/10b后,使用ac coupling就什么问题都没有了呢?否,我们需要仔细考虑计算我们的ac coupling电容的大小。我们先来看看经过high pass后时域信号发生的变化: % e2 o. ?; B( @& U, }: Q- ?5 ~* h
* S# U- E3 V3 G0 S+ B5 i( W, G4 z& [. o
我们看到仍然有部分低频部分被去除,这可能是由于电容选择不合理,我们先来看看电容取值如果太小会怎么样?
4 b+ _% P9 N4 ~, ~5 A% Y' k
L9 I. g$ o& H1 ?/ \# q9 V/ t4 J
电容如果取值太小,高速信号在充放电的时候,很显然容易饱和,我们知道电容一旦饱和,阻抗就会变得很大,抵抗外面的高速信号的变化,为什么小电容容易饱和呢? 我们想象一下,电容的正负极板其实是随着信号跳变也在不停地做充放电,这样极板两边的极性才会随着信号的高低而变化,如果是小电容再加上长0长1的低频部分到来,一下就充满了。一旦充满,最终导致信号的有效低频部分被去除,如下如所示,连续三个1就会导致电容饱和,我们仔细看一下变化的步骤:
+ P' y+ P$ ]; J7 H
1) 开关打到1; 2) 电容阻抗无穷小,电阻分压最大; 3) 随着电容充电,电容的阻抗在变大,如果饱和了,阻抗就变得无穷大,阻碍外部的交流变化,而且电阻上的分压变得很小,导致直流漂移; 4) 开关打到2; 5) 电容开始放电,如此周而复始。
" g0 B T2 J# U7 {' E; f8 M( M# _. Y
我们可以看到直流电平缓慢下降的直流漂移会带来什么,会带来抖动,这种特殊的抖动叫PDJ。
K4 Y4 m. z9 ~3 ~
, G8 k D. H! V5 n- L7 d
我们看到当出现1110的数据时,就会在1到0转变的边沿偏离,产生抖动,产生的原因很简单,就是因为直流电平的起点低了,导致下降沿比正常的周期跳变信号提前了, 这种抖动是我们不喜欢的,一方面信号变形,另外一方面CDR需要跟踪并且修复这种抖动, 是的眼图质量裂化,误码率升高。 . X x6 I; n% [; E A" \+ N- }
那么电容选太大会怎么样? 当然很容易想明白,不能选太大的电容,因为大电容含有ESL/ESR,也会对信号有衰减。 ) a$ x5 s" y# T' \9 j6 ~ D
所以从时域和频域的两个角度,我们知道高速信号的ac coupling的电容选择需要仔细计算和考量,不能随意。
% K/ T+ x* u5 [: Y; D$ _
注:本文为EDA365电子论坛原创文章,未经允许,不得转载。
3 a3 y7 A3 v* Z1 g+ ? |