Khorina · 1 天前

认识AUX协议 到AUX通信检测

之前有位读者让聊聊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写事务通过以下步骤启动:

  1. 设置AUX_ADDRESS寄存器
  2. 将数据写入AUX_WRITE_FIFO
  3. 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命令总结如下表:
image.png

通过组合使用这些命令,主机可以模拟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命令

  1. 仅写地址/仅读地址命令
  • 向I2C从设备发送地址和读/写信息(无数据传输)
  • 正常或异常终止先前活动的事务
  • 无长度字段通过AUX通道传输
  • 用途:
  • 生成方式:使用命令寄存器的Bit[12]配合I2C WRITE/READ命令
  1. 写状态命令
  • 无长度信息
  • 用途:当源端在AUX-I2C写操作中收到部分ACK或延迟响应时,确认已写入I2C从设备的数据字节数
  • 生成方式:使用命令寄存器的Bit[12]配合I2C WRITE STATUS命令

IIC超时机制
Sink控制器在事务启动后监控IIC总线,要求1秒内出现IIC停止信号。若未收到停止信号,则视为IIC超时,Sink控制器将发出停止条件释放总线,避免总线锁死。

5 AUX事务生成

AUX事务的生成如下表所述:
image.png
image.png
image.png

6 I2C读延迟/超时处理

当Sink核心对I2C突发读操作发出DEFER响应时,源核心可采取以下操作:

  1. 重新发出相同命令(相同设备地址和长度)并等待响应
  2. 中止当前读操作:
  • 读取不同I2C从设备
  • 发出写命令
  • 执行MOT=0的仅地址读/写
7 I2C写部分ACK处理

当Sink对I2C突发写操作发出部分ACK响应时,源核心可采取以下操作:

  1. 使用写状态命令轮询I2C传输状态
  2. 重新发出相同命令(相同设备地址/长度/数据)并等待响应
  3. 中止当前写操作:
  • 写入不同I2C从设备
  • 发出读命令
  • 执行MOT=0的仅地址读/写
8 I2C写延迟/超时处理

当Sink核心对I2C突发写操作发出延迟响应时,源核心可采取以下操作:

  1. 使用写状态命令轮询I2C传输状态
  2. 重新发出相同命令(相同设备地址/长度/数据)并等待响应
  3. 中止当前写操作:
  • 写入不同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场景)

  1. Step 1: 请求写入
  • 目标地址:0x01000(边带消息区)
  • 头部解析:消息长度=2,路径消息标识,序列号=0
  • 请求:80 10 00 04 10 02 CB 01 D5

图片

  1. Step 2: 查询中断状态
  • 请求:读取0x02003(中断状态寄存器)
  • 响应:0x10 → DOWN_REP_MSG_RDY=1(下行回复消息就绪)

图片

  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调试(如流分配监控)

图片

(四)典型应用场景

image.png

(五)工具对比总结

image.png

三、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

📊 核心功能对比

image.png

🔧 详细差异解析

  1. 功能定位
  • DPA-400
  • 专注协议层诊断,捕获AUX通道原始数据(DPCD寄存器操作/EDID读取/HDCP握手)
  • 分析通信时序和逻辑错误
  • UCD-400
  • 作为认证级测试平台,支持DP 1.4a链路层CTS测试
  • 执行HDCP 2.3合规性认证和8K/4K视频模式验证
  1. 硬件能力
  • DPA-400
  • 无视频处理能力,USB供电
  • 便携性强(10.5×13×3.5cm)
  • UCD-400
  • 集成视频发生器/分析仪,支持DSC/FEC/LTTPR
  • 需外接电源(272×170×60mm)
  1. 软件生态
  • DPA-400
  • 配套 AUX Monitor GUI,提供时间戳日志和DPCD解析
  • UCD-400
  • 搭载 UCD Console GUI,整合EDID编辑/HDCP控制/自动化测试套件
  • 支持TSI API用于产线集成
  1. 行业认证
  • 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

推荐阅读

更多汽车电子工程领域相关技术干货,请关注专栏芝能汽车电子设计 欢迎添加极术小姐姐微信(id:aijishu20)加入技术交流群,请备注研究方向。
推荐阅读
关注数
4581
内容数
217
Arm发布的PSA旨在为物联网安全提供一套全面的安全指导方针,使从芯片制造商到设备开发商等价值链中的每位成员都能成功实现安全运行。
目录
极术微信服务号
关注极术微信号
实时接收点赞提醒和评论通知
安谋科技学堂公众号
关注安谋科技学堂
实时获取安谋科技及 Arm 教学资源
安谋科技招聘公众号
关注安谋科技招聘
实时获取安谋科技中国职位信息