高速差分信号概述:LVPECL与CML简介
刚开始接触高速设计那会儿,我总觉得单端信号走天下就够了。直到第一次调试10Gbps链路,眼图完全睁不开……嗯,从那以后,差分信号成了我的必修课。
今天咱们聊的LVPECL和CML,就是差分信号家族里两位“狠角色”。一个靠大摆幅硬抗噪声,一个靠低电压玩命省功耗。怎么选?你得先摸清它们的脾气。
为什么非要用差分?
说白了,差分信号就是用两根线“差着传”,到接收端再“差着比”。好处很明显:
- 共模噪声抑制 – 两根线受到的干扰几乎相同,相减就没了。
- 更低的电磁辐射 – 小摆幅、正反电流互相抵消,EMI比单端低一个数量级。
- 更好的信号完整性 – 对于千兆以上的时钟和数据,单端真是扛不住。
我见过不少新手一上来就选CML,觉得它功耗低。但如果你后级接的是LVPECL输入,电平不匹配就要额外加网络——教训啊。
LVPECL:低摆幅的ECL后代
LVPECL是ECL(发射极耦合逻辑)的低压版。核心结构是一个差动对,恒流源在下面,射极电阻拉到VCC-2V。
输出摆幅典型值:单端 400mV,差分 800mV。共模电压约 VCC - 1.3V(3.3V供电时就是2.0V左右)。
它的驱动器是开射极的,不接直流负载根本看不到有效摆幅。我刚开始调LVPECL时,示波器探头直接怼上去,波形全是毛刺——后来才想起需要50Ω到VCC-2V的终端。
CML:电流模式的低功耗选手
CML(电流模式逻辑)是另一种差分结构。它的输出是通过一对NMOS管的漏极,外接50Ω上拉电阻到VCC,产生电压摆幅。
典型摆幅:单端 200mV,差分 400mV。共模电压 VCC - 0.4V(3.3V供电就是2.9V左右)。
功耗?CML非常省电——摆幅小,动态电流也小。我在一个25Gbps的SerDes项目中,用CML代替原来的LVPECL驱动器,总功耗降低了40%。代价是噪声容限变小了,PCB布局必须更小心。
| 参数 | LVPECL | CML |
|---|---|---|
| 供电电压 | 3.3V / 2.5V | 3.3V / 1.8V |
| 差分摆幅 | 800mV | 400mV |
| 共模电压 | VCC - 1.3V | VCC - 0.4V |
| 输出结构 | 开射极,需外部偏置 | 开漏极,需外部上拉 |
| 功耗 | 较高 | 较低 |
| 常用领域 | 时钟分配、低频高速 | SerDes、25Gbps+ |
一张图看清家族关系
避坑指南:我走过的弯路
我曾在一个光纤通信项目中,用LVPECL时钟驱动CML的SerDes输入。结果时钟沿抖动大得吓人。为什么?因为CML的输入共模范围只有±50mV,而LVPECL的共模电压是2.0V,完全偏出了窗口。AC耦合?对,加上后解决了,但损失了直流电平信息,需要额外恢复电路。
总结几个我摔过的坑:
- 终端电阻不可省 – LVPECL必须接50Ω到VCC-2V;CML必须接50Ω到VCC。直接用示波器看“空载”全是假象。
- 共模电压不匹配 – 不同逻辑互连,先查接收端的共模输入范围。必要时使用电平转换芯片或AC耦合+偏置。
- 走线等长别放松 – 差分对内的等长误差控制在5mil以内,尤其是CML这种小摆幅,稍微不等长就会让共模噪声把信号吃掉。
- 供电噪声要小心 – LVPECL对VCC噪声敏感,因为它的参考电平就是VCC-1.3V。我通常会在VCC引脚加10μF+0.1μF去耦,电源平面完整。
什么时候选CML?什么时候选LVPECL?
我个人习惯这样区分:
- 时钟信号,特别是低于3GHz的 – 用LVPECL。它的摆幅大,抗干扰强,驱动长走线也没问题。
- 数据信号,高于10Gbps – 用CML。功耗低,速度上限高,SerDes接口基本都是CML。
- 既要高速度又要低功耗? – CML是唯一选择。我在25Gbps背板项目中就是用CML,LVPECL根本吃不住那么高的速率,眼图闭合得不成样子。
当然,也有混用的地方。比如FPGA的GTH收发器输出就是CML,但板上的时钟分配芯片可能是LVPECL。这时候就需要一个中间件——交流耦合电容加上偏置电阻,或者直接用电平转换芯片(比如TI的SN65LVCP114)。