4. AUX传输速率与抖动容限
这一章我们来聊聊速率和抖动——这两个家伙在AUX调试里简直是死对头。我做了这么多年嵌入式调试,见过太多因为抖动踩坑的板子。说白了,你速率选对了,时钟干净了,链路就稳了一半。另一半,就是跟抖动死磕。
4.1 AUX标准传输速率
AUX通道的标准速率,在绝大多数DisplayPort实现里是1 Mbps,采用曼彻斯特编码。后来为了应对高带宽需求,业界也推了Fast AUX模式,把速率翻到2 Mbps。我自己经历过一个案子:供应商给的IP默认配了2 Mbps,但主控那边用了1 Mbps的PHY,结果两边握手始终超时——唉,速率不匹配。
| 速率 | 编码方式 | 时钟频率 | 典型抖动容限(UI) |
|---|---|---|---|
| 1 Mbps | 曼彻斯特 | 1 MHz | 0.45 UI(经验值) |
| 2 Mbps (Fast AUX) | 曼彻斯特 | 2 MHz | 0.35 UI(经验值) |
注意,UI(Unit Interval)是位周期。1 Mbps时1 UI = 1 μs,2 Mbps时1 UI = 0.5 μs。抖动容限一旦按时间算,就小得可怜了。
4.2 抖动容限的物理意义
什么是抖动容限?就是接收端在保证无误码的前提下,所能容忍的最大信号边沿抖动幅度。你想想看,曼彻斯特编码靠边沿跳变来传递时钟和数据,如果抖动太大,采样窗口就直接被吃掉,比特就取错了。
我习惯用眼图来直观感受。打开示波器,把AUX差分线挂上去,触发在SYNC序列上。如果你的眼图足够张开——像一条宽阔的马路,那抖动容限就宽裕。如果眼图只剩下一条缝,那就危险了。
4.3 抖动容限的定量关系
抖动容限 = UI - (采样窗口宽度 + 固定时序偏差)。接收端的采样窗口一般取0.3~0.4 UI,加上PLL跟踪误差和PCB延迟变化,留给纯抖动的预算通常不到0.4 UI。速率翻倍,UI减半,抖动容限的值直接砍半还要多。我在一个高速FPGA调试中就因为忽略了这层关系,2 Mbps链路上误码率高达1e-4,最后降回1 Mbps立马干净。
| 速率 | UI (ns) | 典型抖容限(ns) | 安全裕度建议(ns) |
|---|---|---|---|
| 1 Mbps | 1000 | 450 | ≥200 |
| 2 Mbps | 500 | 175 | ≥80 |
为什么安全裕度越来越小?因为电路本身的上升/下降时间、I/O延时变化是固定的,不会跟着UI等比缩小。这是高频调试里最值得警惕的事。
我手边正好有一套前阵子画的关系图,直接把速率、抖动和采样窗口之间的制约画清楚。从这张图可以看得很清楚:发送端时钟品质直接决定眼图开口;信道干扰让抖动进一步恶化;最后采样窗口能容纳多少剩余裕度,就决定了误码率。我每次拿到一块新板,第一件事就是按这个链路扫一遍,哪里出现问题一目了然。
4.4 实际调试中的避坑指南
我曾经在批量产线上遇到一块板子,AUX通信时好时坏。示波器抓眼看眼图还行,但误码率就是稳不住。后来发现是地平面回流路径不当,导致共模噪声转换成差模抖动,把本就不多的容限直接吃光。换了四层板独立地之后,再也没有复现。
- 速率协商确认:用AUX分析仪抓取握手阶段,确认主端和从端速率一致。很多故障源于一方支持Fast AUX,另一方不支持。
- 抖动测量要点:用示波器看眼图时,至少捕获10万个UI,统计峰峰值抖动(peak-to-peak jitter)和RMS抖动。我习惯把峰峰值与容限对比,如果超过70%就要小心。
- 边沿速率调校:曼彻斯特编码对上升下降时间敏感。太陡的边沿产生过冲,增加确定性抖动;太缓则容易受噪声干扰。一般控制tr/tf在0.2~0.4 UI比较合理。
4.5 本章要点汇总
啰嗦这么多,其实就三件事:
- 速率决定UI,UI决定抖动的预算。
- 眼图张开度是抖动容限的直接体现,平时多练练眼图判读。
- 高带宽链路下,PCB设计、电源噪声、接地点这些固定开销会被放大,必须逐个排查。
我自己有个习惯:每次做完一次AUX调试,都会把示波器保存的眼图标上速率和峰峰值抖动,归档到项目材料里。之后遇到类似问题,翻出来一对比,定位能快很多。希望这个方法对你也管用。