D-PHY 物理层基础:数据通道与时钟通道结构

咱们这一章聊聊 D-PHY 物理层最核心的两个东西 —— 数据通道和时钟通道。说白了,整个 MIPI D-PHY 的通信,就是靠这两套线把信号从发端搬到收端。我做高速接口这么多年,见过不少工程师把通道结构搞混,结果时序对不上,眼图一塌糊涂。

D-PHY 的物理层分两侧:发送端叫 DPHY-TX,接收端叫 DPHY-RX。通道分两种:数据通道(Data Lane)和时钟通道(Clock Lane)。每个通道都是差分对:Data Lane 用 Dp/Dn 两根线,Clock Lane 用 Clkp/Clkn。差分传输的好处不用我多说,抗共模干扰、低 EMI,搞信号完整性的人都知道。

2.1 数据通道结构

数据通道是并行的,最少 1 组,最多 4 组。一组 Data Lane 就是一个差分对。为什么要多组?因为要提升带宽。你想想看,1 组跑 1 Gbps,4 组就能飙到 4 Gbps,而且时钟共用,省线。

每个 Data Lane 内部有一个 Serializer(串化器)和一个 Deserializer(解串器)。发送端把并行数据转成串行比特流,接收端再还原回去。我刚开始学 MIPI 时总觉得这一步很简单,直到有一次用示波器抓波形,发现串化后的数据抖得厉害…嗯,后来才知道是时钟偏斜没控好。

重点提醒: 一个 Data Lane 在高速模式下,一次传输 8 比特数据。发送端每个时钟周期串化 8 个 bit,接收端每个时钟边沿采样一次,但实际会用双沿采样(DDR)来提升速率。所以,1 Gbps 的 Data Lane,时钟频率只需 500 MHz。

2.2 时钟通道结构

时钟通道只有 1 组差分对,专供所有 Data Lane 使用。它输出的是连续方波,不携带数据。发送端负责产生时钟,接收端用它来采样数据线上的比特流。

有个关键点:时钟通道和数据通道的相位关系。D-PHY 规范里,时钟的上升沿和下降沿分别对应数据窗口的中间位置。这样才能保证建立时间和保持时间有足够的余量。我之前调过一个项目,时钟路径上多走了一根过孔,结果相位偏了 30 度,整个系统跑不了速。最后加了一段 delay line 才摆平。

小技巧: 画 PCB 时,让 Clock Lane 的差分对走线长度比 Data Lane 短 5~10 mil。这样能抵消封装和芯片内部延迟,让时钟边沿正好对准数据眼图中心。这只是经验值,具体要看仿真。

2.3 高速模式(HS)与低功耗模式(LP)差异

D-PHY 最妙的设计就是两种模式切换。高速模式(HS)用于大吞吐传输,低功耗模式(LP)用于控制信号和闲时省电。它们用同一组差分线,但电压、驱动方式、接收阈值完全不同。

我把差异总结在下面这张表里,你一看就明白。

对比项 高速模式(HS) 低功耗模式(LP)
电压摆幅 约 200 mV(差分) 0~1.2 V(单端)
驱动方式 差分电流驱动(Low-voltage Differential Signaling,低压差分信号) 单端推挽驱动
接收阈值 差分比较器,阈值约 ±50 mV 单端 CMOS 逻辑电平,VIL/VIH 约 0.3V/0.8V
数据速率 80 Mbps~4.5 Gbps(每 lane) ≤ 10 Mbps
功耗 高,约 1~3 mW/Gbps 低,约 0.1 mW 以下
信号编码 NRZ(非归零码) 双向三态:0、1、Z(高阻)
应用场景 传输图像、视频等大数据流 总线控制、握手、电源管理

你看,HS 模式的电压摆幅只有 200 mV 左右,为什么这么小?因为要省功耗、降 EMI,而且差分信号在 100 欧姆端接电阻上产生的电流只有几毫安。而 LP 模式用 1.2V 的 CMOS 摆幅,靠的是强上拉/下拉管,速度慢但驱动能力强,适合长距离板级走线。

曾经踩过的坑: 我曾经在一个手机上调试 MIPI DSI 接口,LP 模式下的上拉电阻选得太弱,导致总线进入高组态时电平爬升太慢,控制器误判为高电平,一直切不到 HS 模式。后来把上拉电阻从 50kΩ 改到 10kΩ,问题解决。记住,LP 模式的时序容限很小,千万别照搬参考设计,要实测。

2.4 模式切换机制(BTA)

D-PHY 支持在 HS 和 LP 之间快速切换,这个过程叫 BTA(Bus Turnaround)。实际上就是通过一组特定的电压跳变序列来通知收端切换状态。具体序列有:LP-00 → LP-01 → LP-00 → HS-0 这样的多步操作。

模式切换的时序要求很严格。从 LP 到 HS 有个 预热时间(Wakeup Time),发送端要先驱动一组特定电平让接收端的 PLL 锁定,然后再发数据。接收端在检测到 HS 信号之后才开始采样。如果切换太快,PLL 没锁定,采到的全是错码。

下面这个流程图可以帮你理解两种模式的关系和切换路径。

D-PHY 物理层结构概览 DPHY-TX 发送端 DPHY-RX 接收端 Data Lane × 1~4 Clock Lane × 1 HS 高速模式 200mV差分 · 大带宽 LP 低功耗模式 1.2V单端 · 控制信号 BTA 总线切换 特定电压跳变序列 关键要点 • 所有 Data Lane 共用同一个 Clock Lane,必须保证等长走线 • HS模式使用差分电流驱动,LP模式使用单端推挽驱动,不能混用 • 模式切换通过BTA序列完成,预热时间不满足会导致PLL失锁

从图上你也能看出来,整个链路是“发送端 → 差分通道 → 接收端”。通道里同时存在 HS 和 LP 两种工作状态,通过 BTA 来回切换。嗯,这里要注意:同一个差分对在某一时刻只能工作在一个模式下,不能同时既发 HS 又发 LP。所有 lane 的模式切换是同步的,由协议层控制。

2.5 实际布局建议

搞信号完整性的人,最关心的就是差分对怎么走线。给你们几个实操建议:

  • 等长原则:每组 Data Lane 内的 Dp/Dn 走线长度差 ≤ 5 mil,四个 Data Lane 之间长度差 ≤ 50 mil。Clock Lane 的差分对长度也要与所有 Data Lane 平均长度对齐。
  • 阻抗控制:差分阻抗 100Ω ±10%,单端阻抗 50Ω。我建议用多层板,内层走差分,参考平面连续,避免跨分割。
  • 串扰隔离:Data Lane 之间间距 ≥ 3W(W 是线宽),Clock Lane 与其他信号间距 ≥ 5W。因为你想想看,时钟是连续方波,谐波丰富,容易干扰数据。
  • 过孔数量:每个差分对最多打 2 对过孔。过孔会引入寄生电感和阻抗不连续。我之前在 2 Gbps 的链路中多打了一对过孔,眼图高度直接掉了 15%。
实测验证法: 板子回来后,用 TDR(时域反射计)测试每条差分线的阻抗和长度差。再配合示波器看 HS 模式下的眼图,以及 LP 模式下的电压跳变波形。这两个测试通过,基本就没大问题。