4. CML 电平标准与直流特性归纳总结

CML,全称 Current Mode Logic,电流模式逻辑。说白了,它和 LVPECL 一样都是高速差分信号标准,但底层思路完全不同。LVPECL 靠电压摆幅推信号,CML 靠电流切换拉信号。我刚开始接触 CML 的时候,最直观的感受就是:它比 LVPECL 省电,而且驱动能力不差。

这一节,我们专门把 CML 的电平标准和直流特性拎出来讲透。你搞懂了直流偏置,交流眼图才会有保障。我记得几年前调一块 25Gbps 的 SerDes 板,CML 输出直接接 AC 耦合电容,结果直流电平没算对,眼图张不开——嗯,从那以后我对 CML 的直流点就特别较真。

4.1 CML 的基本结构

CML 发送端通常是一个差分对管加一个尾电流源。输出通过上拉电阻(通常是 50Ω 到 VCC)把电流转成电压。接收端一般是 50Ω 端接到 VCC 或者内部偏置。

典型的拓扑长这样:

     VCC
      |
     Rload (50Ω)
      |
      +---- VOUT+
      |
      Q1     Q2    (差分对)
       \\
        \\
         +---- I_tail (通常 16mA)
         |
        GND

嗯,说白了,CML 的输出电压就等于 VCC 减去 Rload 上的压降。尾电流在 Q1 和 Q2 之间切换,所以输出是一个以 VCC 为参考的电压摆幅。

核心关系:
VOH = VCC (没有电流流过该侧上拉电阻时)
VOL = VCC - I_tail × Rload (全电流流过该侧时)
摆幅 = VOH - VOL = I_tail × Rload

我常用的尾电流是 16mA,上拉 50Ω,摆幅就是 800mV 峰峰值。当然也有 12mA、20mA 的变种,取决于功耗和信号完整性要求。

4.2 直流电平标准

CML 不像 LVPECL 有固定的 VOH/VOL 规范。它的输出电平完全取决于 VCC、Rload 和 I_tail。但在工业界,有几个实际标准要记住。

参数 典型值 说明
VCC 3.3V / 2.5V / 1.8V 电源电压,CML 可以灵活适配
I_tail 16 mA (常用) 尾电流,决定了摆幅和功耗
Rload 50 Ω 上拉电阻,通常集成在片内或外部
VOH ≈ VCC 高电平,接近电源
VOL ≈ VCC - 0.8V 低电平,摆幅 800mV
共模电压 ≈ VCC - 0.4V 差分的直流中心点

注意:CML 的共模电压非常靠近 VCC。你想想看,如果 VCC=3.3V,共模大约在 2.9V 左右。这时候接收端的输入共模范围必须能覆盖这个电平。很多高速芯片的 CML 输入都做了内部偏置,能自动适应。

我曾经掉过的坑: 把 CML 输出直接接到 LVPECL 输入端。LVPECL 的输入共模大约 VCC-1.3V,而 CML 是 VCC-0.4V,差将近 1V。结果电平不匹配,信号完全失效。后来老老实实加了 AC 耦合电容并重新偏置。

4.3 直流特性详细分析

我们拆开来看几个关键参数:

4.3.1 输出摆幅

摆幅 = I_tail × Rload。如果你的板子损耗大,可以适当调高 I_tail 来增大摆幅。但我建议不超过 800mV,否则 EMI 和功耗都会飙升。

4.3.2 共模电压

共模电压 = VCC - (I_tail×Rload)/2。它是直流偏置点,直接决定了接收端能否正确识别。遇到芯片手册只给 VICM (输入共模范围) 的,一定要拿这个值去比对。

4.3.3 功耗

CML 的功耗主要来自尾电流:P = VCC × I_tail。相比 LVPECL 用电阻分压到地,CML 功耗更可控。尾电流关掉就几乎不耗电,适合热插拔或节电模式。

快速计算口诀:
摆幅(mV) = I_tail(mA) × Rload(Ω)
共模(V) = VCC - 摆幅/2
功耗(mW) = VCC × I_tail

4.4 AC 耦合时的直流重建

很多高速链路用 AC 耦合电容隔掉直流偏置。但 CML 的接收端必须自己重建直流偏置。我记得有块板子,CML 输出经过电容后忘了加偏置电阻,结果接收端没偏压,输出全乱。

AC 耦合后,接收端的直流偏置通常通过两个 50Ω 电阻到 VTT 实现。VTT 一般设成 VCC - 0.4V,也就是 CML 的共模电压。或者直接用芯片内部的偏置电路。

推荐配置:

  • 发送端 CML 输出 → 隔直电容 (0.1μF 或更小,看速率)
  • 隔直电容 → 接收端输入
  • 接收端输入对地接 50Ω 到 VTT (VTT = VCC - 0.4V)
  • 或者接收端有内部偏置,外部只需 50Ω 到 GND(取决于芯片)

我个人习惯:只要能 AC 耦合,尽量 AC 耦合。这样发送端和接收端的共模电压互不影响,电平兼容性大大提高。碰到不同电源域的系统,这招简单有效。

4.5 与其他电平标准的直流对比

参数 CML LVPECL LVDS
电源电压 3.3/2.5/1.8V 3.3V 3.3/2.5V
输出摆幅 800mV (典型) 800mV 350mV
共模电压 ≈ VCC-0.4V ≈ VCC-1.3V ≈ 1.2V (对 GND)
功耗 (每对) ≈ 53mW (3.3V×16mA) ≈ 105mW ≈ 5mW
驱动距离 中等 中等 长距离
速度上限 极高 (>50Gbps) 高 (10Gbps+) 中等 (2Gbps)

从表里你一眼就能看出,CML 的共模和 LVPECL 差很多,不能直接连。LVDS 的共模又低得离谱,完全不是一个世界。我选型的时候,只要单通道速率超过 10Gbps,首选 CML。LVPECL 在 1-10Gbps 区间还有一席之地。

4.6 直流特性总结 —— 一张图看明白

为了帮你在脑子里搭个结构,我画了下面这张 CML 直流特性的归纳图。它把发送端、接收端、AC 耦合、关键电平点串在一起,你以后调试时可以快速参考。

CML直流特性核心逻辑 CML 直流特性归纳 发送端 I_tail = 16mA Rload = 50Ω 输出摆幅 = I_tail × Rload 典型 800mV 共模电压 VCC - 摆幅/2 AC 耦合 隔直电容 + 偏置电阻 接收端 50Ω 到 VTT VTT = VCC - 0.4V 常见陷阱 共模不匹配 / 缺偏置 遵循 VOH≈VCC, VOL≈VCC-0.8V, 共模≈VCC-0.4V 典型尾电流 16mA, 摆幅 800mV

4.7 实测小贴士

调试 CML 直流特性时,我建议你拿示波器看两个地方:

  1. 单端波形的高电平: 是不是接近 VCC?如果是,说明发送端上拉正常。
  2. 共模电压: 用数学通道算 (CH1+CH2)/2,看是不是 VCC - 0.4V 左右。

如果你发现共模异常,先量 VCC 电压和地回路。很多情况下共模漂移其实是电源噪声或接地阻抗过大引起的。我曾遇到一块板子,CML 信号的眼图一直塌,最后发现是电源平面在接头处有 10mV 的纹波,把共模踩歪了。加个 0.1μF 去耦电容搞定。

再次提醒: CML 的共模离 VCC 很近,所以对电源噪声很敏感。高速 CML 链路一定要保证 VCC 的干净度。每对差分线附近放个 100nF 电容,别省。

好了,这一章的内容就到这里。CML 的直流特性总结起来就是:尾电流决定摆幅,共模接近电源,AC 耦合要重建偏置。你记住这三点,调试起来基本不会跑偏。