之前有位读者让聊聊AUX协议,可能是因为之前讲DP,没有深入这部分,于是今天专门在节前整理点资料,聊聊这个。
一、AUX协议
1 访问链路伙伴
DisplayPort 1.4 TX子系统核心通过AXI4-Lite主机接口进行配置。主机处理器接口利用DisplayPort AUX通道读取连接的Sink设备的寄存器空间,并确定链路性能。
访问Sink设备的DPCD和EDID信息需通过读写寄存器空间0x100至0x144实现。有关DPCD寄存器空间的详细信息,请参阅VESA DisplayPort标准v1.4。
在执行任何AUX通道操作前,必须先在寄存器0x10C中设置正确的时钟分频值(复位后仅需设置一次)。该寄存器值应等于s_axi_aclk的工作频率。例如,若s_axi_aclk运行在135 MHz,则寄存器值应设为135(十六进制'h87)。此寄存器用于为AUX通道采样时钟提供适当的分频功能(AUX通道必须工作在1 MHz)。向AUX_COMMAND寄存器写入操作将触发AUX事件。一旦AUX请求事务启动,在REPLY_RECEIVED状态位设置为1(表示Sink已返回响应)之前,主机不应写入任何控制寄存器。
2 AUX写事务
AUX写事务通过以下步骤启动:
- 设置
AUX_ADDRESS
寄存器 - 将数据写入
AUX_WRITE_FIFO
- 向
AUX_COMMAND
寄存器写入操作码0x08
写入命令寄存器后即开始AUX通道事务。主机需等待检测到回复接收事件或回复超时事件,这些事件通过读取INTERRUPT_STATUS
中断状态寄存器检测(可采用中断服务程序ISR或轮询模式)。
当检测到回复时,主机应读取AUX_REPLY_CODE
寄存器,并检查返回值是否为0x00
——该代码表示AUX通道已成功确认事务。
下图展示了AUX写事务的完整流程。
3 AUX读事务
AUX读事务通过以下步骤准备: 将事务地址写入AUX_ADDRESS
寄存器
将命令和要读取的字节数写入AUX_COMMAND
寄存器
启动传输后,主机应等待中断或轮询INTERRUPT_STATUS
寄存器以确定何时收到回复。
当检测到REPLY_RECEIVED
信号时,主机可从AUX_REPLY_DATA
寄存器读取请求的数据字节。该寄存器提供对深度为16字节的FIFO缓冲区的单地址接口。读取此寄存器会自动推进内部读指针以准备下一次访问。
下图展示了AUX读事务的完整流程。
4 AUX通道I2C事务命令
该子系统支持特殊的AUX通道命令,旨在使通过AUX进行的I2C事务执行更快更简便。在此模式下,主机绕过外部I2C主/从接口,直接通过写入寄存器集来发起命令。
执行这些事务的序列与原生AUX通道事务完全相同,仅需更改写入AUX_COMMAND寄存器的命令。支持的I2C命令总结如下表:
通过组合使用这些命令,主机可以模拟I2C事务。下图展示了I2C事务的流程。
由于I2C事务可能显著慢于AUX通道事务,主机应准备好在执行上述状态机期间接收多个AUX_DEFER回复代码。
AUX-I2C命令定义如下:
MOT定义
命令字段中的"事务中位"(Middle Of Transaction bit):
- MOT=1时:I2C总线不发送STOP信号,保持先前状态
- MOT=0时:当前命令结束或异常中止时强制I2C总线进入IDLE状态
部分ACK
对于I2C写事务,Sink核心可响应部分ACK(ACK响应后跟随实际写入I2C从设备的字节数)。
特殊AUX命令:
- 仅写地址/仅读地址命令
- 向I2C从设备发送地址和读/写信息(无数据传输)
- 正常或异常终止先前活动的事务
- 无长度字段通过AUX通道传输
- 用途:
- 生成方式:使用命令寄存器的Bit[12]配合I2C WRITE/READ命令
- 写状态命令
- 无长度信息
- 用途:当源端在AUX-I2C写操作中收到部分ACK或延迟响应时,确认已写入I2C从设备的数据字节数
- 生成方式:使用命令寄存器的Bit[12]配合I2C WRITE STATUS命令
IIC超时机制
Sink控制器在事务启动后监控IIC总线,要求1秒内出现IIC停止信号。若未收到停止信号,则视为IIC超时,Sink控制器将发出停止条件释放总线,避免总线锁死。
5 AUX事务生成
AUX事务的生成如下表所述:
6 I2C读延迟/超时处理
当Sink核心对I2C突发读操作发出DEFER响应时,源核心可采取以下操作:
- 重新发出相同命令(相同设备地址和长度)并等待响应
- 中止当前读操作:
- 读取不同I2C从设备
- 发出写命令
- 执行MOT=0的仅地址读/写
7 I2C写部分ACK处理
当Sink对I2C突发写操作发出部分ACK响应时,源核心可采取以下操作:
- 使用写状态命令轮询I2C传输状态
- 重新发出相同命令(相同设备地址/长度/数据)并等待响应
- 中止当前写操作:
- 写入不同I2C从设备
- 发出读命令
- 执行MOT=0的仅地址读/写
8 I2C写延迟/超时处理
当Sink核心对I2C突发写操作发出延迟响应时,源核心可采取以下操作:
- 使用写状态命令轮询I2C传输状态
- 重新发出相同命令(相同设备地址/长度/数据)并等待响应
- 中止当前写操作:
- 写入不同I2C从设备
- 发出读命令
- 执行MOT=0的仅地址读/写
9 AUX IO位置配置
DisplayPort源端的AUX IO可位于IP内部或外部,通过GUI界面选择AUX IO位置。当AUX IO位于IP内部时,支持单向/双向IO类型。
二、如何检测 AUX通道
(一)AUX通道基础
1. 拓扑结构
- Source设备:AUX主设备(Requester),发起请求事务。
- Sink设备:AUX从设备(Replier),响应回复事务。
- 物理层:
- 单差分对,半双工双向通信
- 1 Mbps速率,采用曼彻斯特-II编码
2. 核心功能
功能类型
具体服务
链路服务
链路能力读取、链路配置(训练)、链路状态读取
设备服务
EDID读取(显示器身份信息)、MCCS支持(显示器命令控制集)、Sink事件通知
Sideband消息
支持多流传输(MST)状态报告与错误通知(如远程节点通信)
(二)AUX协议实例解析
示例1:读取Sink DPCD(DisplayPort配置数据)
- 请求帧:
90 02 19 00
- 含义:从DPCD地址
0x00218
读取1字节数据 响应帧:
00
参考规范:DP v1.2a 2.9.3.1节(地址映射表)
- 解析:
TEST_REQUEST
寄存器值(全0表示无测试请求)
示例2:写入Sink DPCD
- 请求帧:
80 01 02 04 22 38 38 38 38
0x00102 = 0x22
→ 训练模式设为Pattern 2,加扰禁用0x00103 = 0x38
→ Lane 0电压/预加重配置(电平0,预加重3级)- 含义:向DPCD地址
0x00102
写入5字节数据: - 响应:
ACK
(操作成功)
> **关键字段**:`TRAINING_PATTERN_SET`、`TRAINING_LANE0_SET`
示例3:边带消息交互(MST场景)
- Step 1: 请求写入
- 目标地址:
0x01000
(边带消息区) - 头部解析:消息长度=2,路径消息标识,序列号=0
- 请求:
80 10 00 04 10 02 CB 01 D5
- Step 2: 查询中断状态
- 请求:读取
0x02003
(中断状态寄存器) - 响应:
0x10
→DOWN_REP_MSG_RDY=1
(下行回复消息就绪)
Step 3: 读取回复消息
注意:需多次事务完成长消息传输(
End_Of_MT=0
表示未结束)
- 请求:从
0x01410
读取16字节 - 响应:
00 22 93 1a ...
→ 含MST消息片段(链路计数=1,消息长度=21)
(三)监控工具方案
方案1:DPA-400独立监控设备
- 设备组成:DPA-400主机 + Unigraf "Y"型电缆 + AUX监控GUI软件
- 拓扑连接:串联在Source与Sink之间
- 核心优势:
- 通用性强,支持任意DP设备
- 必需场景:MST分支器与Sink之间的监控
方案2:DPR-120内置AUX监控
- 设备组成:DPR-120测试仪 + 调试控制器GUI(含AUX Monitor标签页)
- 拓扑连接:直接连接DP Source设备
- 核心优势:
- 集成链路一致性测试(CTS)与AUX监控功能
- 减少物理连接,简化MST调试(如流分配监控)
(四)典型应用场景
(五)工具对比总结
三、DPA-400 是什么?
🔍 DPA-400 是什么?
DPA-400 是 Unigraf 公司推出的专业硬件设备,主要用于 DisplayPort(DP)接口的 AUX 通道流量监控与分析。它是工程师在研发、调试和兼容性测试中深入解析 DP 通信协议的关键工具。
⚙️ 核心功能与技术特性
1. 基本定义与核心功能
- AUX 通道监控:
- DPCD 寄存器读写操作
- MST(多流传输)边带信道通信
- EDID(显示器标识数据)读取
- HDCP 1.3/2.3 认证消息解码
- 实时捕获 DP 链路的 AUX 通道通信数据
- 支持监控:
- 时间戳记录:
- 所有通信事件附带精确时间戳
- 支持信号交互时序分析
2. 技术特性
- 广泛兼容性:
- 支持 DP 1.0 至 DP 2.1 全版本(含 DP 2.1 的 20Gbps 单通道速率)
- 兼容 USB Type-C 的 DisplayPort Alt Mode
- 数据解析能力:
- 原始数据与解析后数据双模式显示
- 术语与 VESA 标准及 Unigraf 测试报告一致
- 支持生成 HTML 格式日志
- 信号完整性保障:
- 分流设计最小化对高速信号的影响
🛠️ 应用场景与设备特点
3. 应用场景
- 芯片验证:监控 Source/Sink 设备底层交互
- 软件调试:追踪 DPCD 寄存器变更及 HDCP 认证流程
- 互操作性测试:解决设备兼容性问题(如 MST 拓扑异常)
- 事件时序分析:测量 HPD 信号响应时间等关键事件
4. 设备特点
- 便携易用:
- USB 供电,尺寸仅 10.5×13×3.5cm
- 可搭配笔记本电脑移动使用
- 独立硬件:
- 无需外部电源或复杂适配器
- 即插即用设计
💎 总结
DPA-400 是专为 DisplayPort 协议深度分析设计的工具,通过高精度捕获 AUX 通道数据,帮助工程师实现:
- 硅前验证中的"无猜测"问题定位
- 系统调试及合规性测试
- DP 2.1 与 USB-C Alt Mode 的前沿开发支持
其精准的协议分析能力使其成为 DP 生态开发的核心工具。
四、DPA-400 VS UCDx00
📊 核心功能对比
🔧 详细差异解析
- 功能定位
- DPA-400:
- 专注协议层诊断,捕获AUX通道原始数据(DPCD寄存器操作/EDID读取/HDCP握手)
- 分析通信时序和逻辑错误
- UCD-400:
- 作为认证级测试平台,支持DP 1.4a链路层CTS测试
- 执行HDCP 2.3合规性认证和8K/4K视频模式验证
- 硬件能力
- DPA-400:
- 无视频处理能力,USB供电
- 便携性强(10.5×13×3.5cm)
- UCD-400:
- 集成视频发生器/分析仪,支持DSC/FEC/LTTPR
- 需外接电源(272×170×60mm)
- 软件生态
- DPA-400:
- 配套 AUX Monitor GUI,提供时间戳日志和DPCD解析
- UCD-400:
- 搭载 UCD Console GUI,整合EDID编辑/HDCP控制/自动化测试套件
- 支持TSI API用于产线集成
- 行业认证
- DPA-400:
- 无官方认证,属调试辅助工具
- UCD-400:
- 获VESA认证(DP 1.4a LL CTS)和DCP认可(HDCP 2.3 CTS)
⚖️ 选择建议
- 选 DPA-400 当:
- 需深度排查协议交互问题(如DPCD写入失败、MST拓扑异常)
- 需要便携式协议层调试工具
- 选 UCD-400 当:
- 需执行合规认证(如送检VESA/DCP)
- 需验证高带宽视频性能(如8K/DSC)或HDCP认证
💎 总结:
DPA-400是"协议显微镜",UCD-400是"全能测试站"。两者互补而非替代,大型实验室常同时配备以覆盖从底层调试到标准认证的全流程需求。
END
作者:Hcoco
文章来源:TrustZone
推荐阅读
- 自动驾驶感知系统中卷积神经网络原理的疑点分析
- 深度剖析汽车智能座舱芯片:舱驾融合大战背后的逻辑
- 具身智能走向规模化的三大核心技术:算法、数据到控制器
- 台积电的汽车芯片技术:3 纳米工艺和先进封装 CoWoS
更多汽车电子工程领域相关技术干货,请关注专栏芝能汽车电子设计 欢迎添加极术小姐姐微信(id:aijishu20)加入技术交流群,请备注研究方向。