eDP接口物理层:差分信号、主链路、AUX通道、热插拔检测

咱们开始聊物理层。说实话,很多做软件驱动的兄弟,一听到“物理层”就开始犯困。觉得这是硬件工程师的事,跟自己没关系。

但你想想看,如果不懂物理层,你调时序约束的时候,会碰到很多怪问题——明明代码写得没问题,就是跑不起来。为什么?问题很可能就出在这些物理信号上。

我刚开始做eDP项目时也犯过这错。觉得物理层跟我无关,结果调了一个星期的黑屏...后来才发现是差分信号走线长度没匹配好。从那以后,我再也不敢跳过物理层了。

2.1 差分信号原理

说白了,差分信号就是两根线传一个信号。一根叫P(正极),一根叫N(负极)。接收端看的是它俩的电压差,不是对地的电压。

  • 抗干扰强:外部噪声同时耦合到两根线上,电压差不变。这就是共模抑制。
  • EMI低:两根线电流方向相反,磁场互相抵消。辐射小得多。
  • 电压摆幅小:eDP差分摆幅通常只有200-400mV。功耗低、速率高。
避坑提示:我见过有工程师把差分信号当成单端信号来布线。结果两根线不等长,信号歪了,眼图成了一团浆糊。记住:eDP差分对的走线长度差不能超过5 mil,最好控制在2 mil以内。

2.2 主链路详解

主链路就是传视频数据的那条路。eDP的主链路由多对差分信号组成,每对都是双向的——哦不,是单向的。从Source到Sink。

主链路差分对数量:常见有1、2、4 Lane三种配置。我个人习惯用4 Lane做4K@60Hz,2 Lane做1080P@60Hz。别问我为什么,实测下来的经验。

数据速率:

速率等级 单Lane数据率 典型应用
RBR 1.62 Gbps 1080P@30Hz
HBR 2.70 Gbps 1080P@60Hz
HBR2 5.40 Gbps 4K@30Hz
HBR3 8.10 Gbps 4K@60Hz / 8K@30Hz

编码方式:eDP主链路用的是8b/10b编码。就是把8位数据变成10位传输。这样做的目的是保证直流平衡,防止信号长期跑偏。

这里我提一句,我在项目里遇到过8b/10b解码失败的情况。排查下来发现是Source端发送的K码(控制字符)和D码(数据字符)的极性不对。后来我直接在链路训练的时候把K码顺序打出来看,一眼就发现问题了。

注意:eDP的链路训练必须先完成后才能传数据。别想着直接传——Source和Sink要先握手确认Lane数量、速率、预加重、均衡等参数。这是我踩过的坑,曾经跳过了链路训练直接发数据...结果黑屏三天。

2.3 AUX通道

AUX通道是eDP的控制通道。它也是一对差分信号,不过是双向半双工的。

AUCH的特点:

  • 数据率:1 Mbps。别嫌慢,它只传控制命令和EDID数据。
  • 通信方式:I²C over AUX。没错,就是跑在AUX物理层上的I²C协议。
  • 主要功能:读EDID、写DPCD寄存器、做链路训练。

说实话,搞懂AUX通道很重要。因为调时序的时候,很多问题其实是AUX没跑通。

我举个例子:EDID读不出来。你会看到时序约束算出来的参数全是对的,但显示器就是不正常点亮。为什么?因为没EDID,时序参数对也没用。

那怎么排查AUX?我会在初始化阶段不停地打印AUX状态寄存器。如果看到AUX_NACK(无应答),那基本就是AUX链路有问题。这时候别去算时序了,先查物理连接。

我的经验:AUX通道的共模电压范围是0V到3.3V。如果测出来不对,八成是Source或Sink的PHY坏了。我遇到过三次AUX不通,结果两次是Sink端的PHY芯片虚焊,一次是Source端的电容短路了。

2.4 热插拔检测

热插拔检测,英文叫HPD(Hot Plug Detect)。它是靠一根独立的信号线实现的。

HPD的工作原理:

  • 连接检测:Source端给HPD线拉高(3.3V),Sink端拉低到地。没显示器时,HPD电平是低的。
  • 中断信号:Sink可以通过HPD线发送脉冲,通知Source有事件发生(如分辨率变了、插拔了外设)。
  • 电气特性:HPD线有上拉电阻,Sink端是漏极开路输出。

我刚开始做eDP时,觉得HPD很简单嘛。结果项目量产了,有客户反馈说插着显示器开机,有时候能点亮有时候不能。查了一周,发现是HPD检测的延迟没配好。Source检测到HPD高电平后,要等100ms左右才能开始链路训练。太快了Sink还没准备好。

关键参数:

参数 最小值 典型值 说明
HPD响应时间 100 ms 200 ms 检测到高电平后开始训练
HPD去抖时间 2 ms 10 ms 防止噪声误触发
中断脉冲宽度 250 μs 2 ms Sink发中断信号的脉冲长度
注意:HPD不是简单的按钮检测。它有电气时序要求。我曾经在项目中直接用GPIO中断处理,没加去抖,结果每按一次键盘,HPD就触发一次中断。显示器闪个不停。记住:2ms去抖是底线。

2.5 知识结构图

下面这张图展示了eDP物理层的核心结构。我建议你先把图看清,再回头细读上面这些文字。

eDP物理层知识结构 eDP Source(主机端) 主链路 1/2/4 Lane 差分对 AUX通道 双向半双工 1Mbps HPD检测 热插拔/中断信号 8b/10b编码 链路训练 I2C over AUX DPCD寄存器 去抖/脉冲/时序 核心要点 • 差分信号:P/N两根线传电压差,抗干扰强、EMI低 • 主链路:4 Lane最高可支持8K@30Hz,使用8b/10b编码保直流平衡 • AUX通道:控制通道,跑I2C协议读EDID和操作DPCD • HPD:检测显示器插拔,需加2ms去抖防止误触发
一个提醒:这张图把eDP物理层拆成了四个模块。我建议你把这四个模块先记牢,再去看后续的时序参数计算。基础不牢,地动山摇。这是我带团队时反复强调的。

好了,这章就到这。记住:物理层是eDP的根基。差分信号保证传输质量,主链路传数据,AUX通道做控制,HPD管插拔。四个缺一不可。