AUX通道概述
做高速串行链路测试这么多年,我经常碰到有人把AUX通道和主数据通道弄混。其实呢,AUX通道没那么神秘——它就是个辅助角色,但少了他,主链路很可能连初始化都跑不完。今天我们就把它彻底说清楚。
什么是AUX通道
AUX,全称Auxiliary,翻译过来就是“辅助的”。在高速串行链路里,AUX通道是一条独立于主收发链路的带外通信路径。它不传大数据,只交换控制信息、状态信息和训练参数。
核心特点:
- 与主数据通道物理隔离,不受高速信号串扰影响
- 带宽极低(通常几MHz到几十MHz),但可靠性要求高
- 用于链路建立、训练、电源管理、热插拔等场景
一句话总结:主链路负责“运输货物”,AUX通道负责“指挥交通”。
在高速串行链路中的作用
我刚开始做SATA测试时,有个现象困扰了我很久:明明主链路眼图达标,但设备就是识别不了。后来才发现,是AUX通道上的训练序列没对齐。说白了,AUX通道扮演了以下几个关键角色:
- 链路训练与初始化
设备上电后,主链路还没准备好,AUX通道先交换握手信号,协商速率、预加重等参数。没有这一步,主链路不敢发数据。 - 电源管理协商
PCIe的ASPM(主动电源管理)就是通过AUX边带信号来唤醒链路的。省电模式下主链路全部关掉,靠AUX保持连接。 - 热插拔与事件通知
SATA的Device Sleep、USB的Connect/Disconnect检测,都依赖AUX通道传递状态变化。我曾在项目中遇到过热插拔瞬间AUX信号毛刺导致误触发的情况,后来加了个RC滤波就解决了。 - 边带错误报告
有些协议允许AUX通道直接报告CRC错误或链路降级,避免主链路反复重传导致的性能下降。
避坑提醒: 我曾经遇到过一个PCIe Gen3的设备,链路总是训练失败,查了三天才发现是AUX边带信号走线太长,导致握手序列时序违例。千万注意AUX通道的PCB布线阻抗和长度匹配,它虽然速率低,但对抖动同样敏感。
常见的AUX通道协议
不同高速串行标准对AUX通道的实现方式差异挺大。下表列了几个我接触最多的:
| 协议 | AUX通道名称 | 物理层实现 | 主要用途 |
|---|---|---|---|
| SATA | Sideband / Device Sleep信号 | 独立单线(通常为LVTTL) | 链路训练、省电状态切换、COMRESET/COMWAKE检测 |
| PCIe | Sideband (SB) / WAKE# / CLKREQ# | 单端信号,开漏或多点共享 | ASPM唤醒、参考时钟请求、带外复位 |
| USB 3.x / USB4 | SBU通道 / Sideband Use | 差分对(USB Type-C定义) | 协议隧道配置、DisplayPort Alt Mode协商、电源协商 |
| DisplayPort | AUX CH | 差分对(曼彻斯特编码) | EDID读取、链路训练、Main Link配置 |
我个人的经验: 做AUX通道抖动分离测试时,一定要先搞清楚协议定义的AUX信号电压阈值和时序容限。有些协议(比如PCIe WAKE#)对上升沿抖动要求很宽松,但SATA的Sideband对信号幅度变化的响应时间却非常严格。不同协议要分开处理,别用一个模板套所有。
下面这张图展示了AUX通道在高速链路中的位置和它与主数据通道的关系。我画得尽量简洁,方便你快速建立整体认知。
注意事项: 很多测试工程师容易忽略AUX通道上的电源噪声。我见过一个案例,由于PC主板CLKREQ#走线靠近PCIe插槽供电,导致边带信号上耦合了100mV的噪声,最终影响ASPM退出延迟。虽然AUX通道速率低,但它的时序余量也小,一个毛刺就可能让链路掉状态。
好了,现在你应该对AUX通道有了全局概念。下一小节我们开始深入抖动分离的核心——先把AUX通道的物理特性摸透,后面才好下手做精准测试。