差分信号与CML逻辑电平
做MIPI调试这么多年,我碰到最多的就是信号完整性问题。差分信号看着简单,其实坑不少。这章我们就聊聊差分信号在MIPI CSI-2链路中的核心——CML(电流模式逻辑)电平。你搞懂了CML的传输特性、共模电压范围和终端匹配,基本上就能避开一大半的SI(信号完整性)陷阱。
2.1 为什么MIPI选择差分信号?
说白了,就是为了抗干扰。单端信号靠GND做参考,GND一抖,信号就跟着遭殃。差分信号用两根线传互补信号,接收器只看两者的差值,共模噪声(比如电源抖动、地弹)被自然抵消。
MIPI CSI-2的D-PHY和C-PHY都基于差分架构,但具体电平标准不同。D-PHY用的是低压差分信号(LVDS的变种),而C-PHY是更复杂的3相调制。不管哪种,底层的物理层都依赖CML或类CML的驱动器。
2.2 CML传输特性
CML是电流模式逻辑的核心。发射端是一个恒流源(典型值3.5mA~6mA),通过差分对管切换电流流向,在外部负载电阻上产生电压摆幅。接收端则是高阻抗输入,靠外部终端电阻将电流转成电压。
| 参数 | CML典型值 | MIPI D-PHY参考值 |
|---|---|---|
| 输出摆幅(差分峰峰值) | 200~400mV | 140~270mV(LP模式另算) |
| 共模电压(Vcm) | Vdd - 0.4V(约1.2V@1.8V电源) | 200~1300mV(依赖于模式) |
| 终端电阻 | 50Ω对地(单端),100Ω差分 | 100Ω差分(HS模式) |
| 电流源 | 4~8mA | 3.5~6mA |
你想想看,CML的摆幅很小,只有几百毫伏。好处是功耗低、切换速度快,坏处是对噪声更敏感。这也是为什么终端匹配必须精确——任何反射都可能把信号幅度压到接收器的判决门限以下。
2.3 共模电压范围
CML的共模电压(Vcm)不是随便定的。在MIPI D-PHY的HS模式下,发射器产生的共模电压范围在200mV到1300mV之间,但CML驱动器通常设计在电源轨的1/2到2/3附近。接收器需要在这个范围内正确提取信号。
为什么共模电压很重要?因为接收器的输入级是个差分放大器,它有共模抑制比(CMRR)限制。如果Vcm偏离设计点,差分放大器的偏置会漂移,轻则降低灵敏度,重则导致误码。
- DC耦合场景:发射器和接收器共模电压必须匹配。MIPI规范要求Vcm差不超过50mV。
- AC耦合场景:通过隔直电容后,共模电压由接收器端的偏置电阻重新建立。这时要特别注意偏置网络的设计。
我建议在高速链路中,优先使用AC耦合。为什么呢?因为DC耦合时,两端的共模电压稍有偏差就会产生静态电流,增加功耗且可能影响信号质量。AC耦合把直流分量隔开,接收器自己决定Vcm,灵活多了。
2.4 终端匹配技术
CML的终端匹配比LVDS要求更高。LVDS的接收端通常只需要100Ω跨接在差分对上,而CML需要在两条线上分别对地接50Ω(或者用100Ω差分电阻,同时通过中心抽头接共模电压)。
MIPI D-PHY的HS模式要求差分阻抗100Ω,单端对地50Ω。实际匹配有三种常见方式:
- 远端匹配(最常见):在接收器附近放置100Ω电阻跨接在P/N之间。简单,但单端反射控制弱。
- 双电阻匹配:两个50Ω电阻分别接到GND,中间点接Vcm。占用空间大,但共模抑制好。
- Thevenin匹配:用一个电阻网络同时提供阻抗匹配和共模偏置。适用于AC耦合场景,接收器没有内部偏置时。
| 匹配方式 | 优点 | 缺点 | 适用场景 |
|---|---|---|---|
| 远端100Ω | 简单、面积小 | 共模噪声抑制差 | 短距离PCB走线 |
| 双50Ω+中心抽头 | 共模噪声抑制好 | 占用面积大 | 长距离、高速 |
| Thevenin | 同时提供偏置 | 阻值计算复杂 | AC耦合且接收器无内部偏置 |
我在项目里用过Thevenin匹配。当时有个FPGA的MIPI接收器没有内部偏置,手册建议外接电阻分压出Vcm。我按Thevenin等效算了一下,用两个电阻就搞定了匹配和偏置,省了一组电阻,不过计算得小心——算错了阻值,共模偏置就可能超出接收器范围。
// Thevenin匹配计算示例(假设Vterm = 1.2V, 目标Vcm = 0.9V, Rterm = 50Ω)
// Vcm = Vterm * (R2 / (R1 + R2))
// 同时R1 // R2 = 50Ω
// 求解:R1 ≈ 66.7Ω, R2 ≈ 200Ω
2.5 实战中的CML布局要点
讲完理论,说点实际的。CML的PCB布局有几个关键点,我总结成口诀:
- 终端电阻尽量靠近接收器。 超过5mm的stub就可能产生反射。
- 差分对等长,差控在5mil以内。 每1mil的等长误差,在2.5Gbps下会引起约2~3度相位差,累计多了眼图就关。
- 参考平面连续。 CML的回流路径依赖地平面,如果跨分割,共模噪声会增加不少。
- AC耦合电容放在发射端侧。 这样接收器看到的是完整的阻抗连续线,不需要过电容过孔。
这张图展示了一个典型的CML链路:恒流源驱动器通过AC耦合电容连接到差分走线,接收器端有终端匹配网络。红色虚线标注了共模电压的位置——它是由接收器内部偏置或外部Thevenin网络决定的,而不是来自发射器。
小总结
CML看起来简单,但实际设计中很多细节决定成败。共模电压范围、终端匹配方式、PCB布局规则,每一个都可以单独讲半小时。我建议你在做下一块MIPI板子时,先按这章的内容检查原理图和PCB,大概率能少走弯路。