eDP的信号家族:时钟、数据、辅助与热插拔

各位工程师,大家好。今天我们来聊聊eDP的信号定义。这部分内容,我建议你放下“看手册”的心态,而是当成跟一位老工程师聊天。你想想看,一个高速接口跑得稳不稳,归根结底就看你懂不懂它的每一根信号线在干什么。

我记得刚做eDP项目那会儿,以为只要把差分线连上就完事了。结果第一次上电调试,屏幕死活点不亮。最后查来查去,发现AUX通道的握手时序差了那么一丢丢……从那以后,我就养成了一个习惯:先把信号的“脾气”摸透,再下手做设计。

eDP的信号主要由四大家族组成,咱们一个一个来过。

核心要点: eDP的四类信号——Main Link Clock、Data Lane、AUX CH、HPD——它们分工明确,但相互依赖。设计时,不能孤立看待。
信号类别 符号 方向 核心功能
主链路时钟 Main Link Clock Source → Sink 提供数据采样参考时钟
数据通道 Lane 0 ~ Lane 3 Source → Sink 传输视频数据流及辅助信息
辅助通道 AUX CH (AUX+) / (AUX-) 双向 链路管理、握手、EDID读取
热插拔检测 HPD Sink → Source 通知连接状态及中断事件

一、Main Link Clock:数据流的心脏

首先,聊聊主链路时钟。说白了,它就是所有差分数据通道的同步基准。eDP采用的是一个差分时钟对,频率范围通常从162MHz到270MHz,甚至更高。我刚开始做的时候,觉得时钟只要频率对就行。后来发现,时钟的抖动(jitter)才是隐形杀手。

时钟的职责:

  • 提供相位参考:每个数据通道的接收端,都靠这个时钟边沿来锁存数据。
  • 决定带宽上限:时钟频率越高,每通道能扛的数据率就越大。比如RBR(1.62Gbps)配162MHz时钟,HBR2(5.4Gbps)配270MHz时钟。
  • 必须与数据对齐:时钟的上升沿和下降沿,在PCB布线时必须严格控制等长。我踩过一个坑:时钟线和某根数据线差了50mil,结果高速跑不起来,降频才能用。
我的个人习惯:在做时序约束前,先把时钟路径的skew和jitter用仿真跑一遍。别偷懒,这一代eDP的时钟容限越来越紧。

二、Data Lane 0~3:四条高速公路

数据通道,就是真正拉货的。eDP最少可以配1对差分线(单通道模式),最多4对(Lane 0~3)。每对数据线都是单向的,从Source(显卡/主控)到Sink(显示屏)。

每个通道都有其固定的数据映射规则。简单说,一幅画面的像素数据,会被拆分成多个字节,然后轮流分配给各个通道。

举个例子,2通道模式(2-lane):

像素1(24bit色深) → Lane0: 字节0,1 ; Lane1: 字节2
像素2(24bit色深) → Lane0: 字节3,4 ; Lane1: 字节5
...

这里有个关键点:Lane总数必须一致才能建立连接。Source端说自己有4条车道,Sink端必须也支持4条车道。如果Sink只支持2条,那就只能降级到2-lane模式。

避坑指南:我曾经在layout时,不小心把Lane0和Lane1的差分对反接了。结果呢?画面全是花的,颜色错位。从此以后,我测试时会用示波器卡一下每个Lane的物理顺序,确保跟协议匹配。

数据通道上的特殊封装:除了视频数据,Lane上还会穿插传输一些辅助数据包,比如MST(多流传输)的控制信息,或者音频包。这些数据包的格式,咱们后面讲具体协议时再细聊。

三、AUX CH:沟通的桥梁

辅助通道,说白了是Source和Sink之间的一条双向低速控制总线。它基于I2C协议,但机制更丰富。AUX CH只有一对差分线,一个固定480MHz的时钟,波特率是1Mbps或2Mbps。

AUX干哪些活?

  • 链路训练:初始建立连接时,Source通过AUX告诉Sink“我要用几颗通道、什么速率”,Sink回复“收到,功率够不够”。
  • EDID读取:Source通过AUX读取显示器内部的EDID数据,搞清楚它的分辨率、色深、支持哪些视频格式。
  • 面板控制:比如调节背光亮度、上下电时序、刷新率切换等。
  • 异常处理:当HPD信号触发中断时,Source会立刻通过AUX询问“啥情况?”,然后做出响应。

AUX时序容限比较宽松,但电压摆幅需要注意。差分电压一般要求在200mV~600mV之间。我见过一个案例,AUX电压被layout拉低到150mV,结果偶尔换屏时识别不到。

一个实用的检查点:AUX通道的总线电容不能超过协议限定的400pF。如果PCB过长或接了很多设备,注意加总线buffer。

四、HPD:信号里的“门铃”

热插拔检测(HPD),是一个单向信号,从Sink发向Source。它其实就是一个电平信号,物理上是一根单端线,通常上拉到3.3V或1.8V。

HPD的工作机制很简单:

  • 连接事件:当显示器的eDP接口插上并稳定供电后,HPD从低电平变成高电平。Source检测到这个上升沿,就知道屏幕接上了。
  • 中断事件:当需要Source处理一些紧急事务时(比如用户按下OSD按键、或者面板内部温度告警),Sink会主动将HPD拉低一段很短的时间(约2ms),然后恢复高电平。Source检测到这个“短脉冲”,就会启动一次AUX交互。

为什么HPD这么重要?

因为它是Source感知外界变化的唯一硬件窗口。没有它,Source根本不知道屏幕还在不在。

注意:HPD信号抗干扰能力较弱。我遇到过因PCB走线距离开关电源过近,导致HPD误触发,屏幕反复闪黑的现象。解决办法是加一个RC滤波,时间常数约100μs,滤掉毛刺。

五、信号之间的关系:一张图看明白

说了这么多,它们是怎么配合工作的?来,咱们用一张图概括。

eDP信号体系与交互关系 Source(主控) 视频数据源 链路训练发起者 接收HPD命令 Sink(显示屏) 视频数据接收端 响应链路训练 发出HPD事件 Main Link Clock 源时钟:差分对,提供数据采样基准 Data Lane 0~3 差分对,支持2/4通道 承载视频+辅助数据 AUX CH 双向差分,链路管理与控制 HPD 单端信号,连接&中断通知 注意:AUX是双向通道;HPD为Sink主动发向Source

六、初学时容易踩的坑

最后,我总结几个在项目里碰到的实际案例,帮你避坑:

  • 时钟等长问题:有时候为了省空间,会把时钟线走得比数据线长。嗯,这是大忌。我的原则是,时钟对与最近的Lane对,长度差控制在±5mil以内。
  • AUX电平不匹配:Source端输出3.3V,Sink端如果只支持1.8V电平,必须加电平转换。我见过直接连的,结果Sink的AUX接口烧了。
  • HPD上拉电阻接法:有些新手把HPD直接接一个上拉到3.3V。正确做法是,HPD由Sink内部驱动,Source端只需加一个小下拉电阻(约10kΩ),避免悬空误判。
  • 差分对内走线不等长:尤其在BGA扇出时,容易一长一短。我的经验是,对内偏差控制在2mil以内,不然共模辐射会超标。
一个小技巧:测试时,用示波器同时抓AUX的差分波形和HPD的波形。如果看到HPD出现不应该的脉冲,多半是AUX通道的终端匹配出了问题。