DisplayPort AUX vs I2C-over-AUX Transactions
This article provides a direct comparison between native DisplayPort physical Auxiliary (AUX) channel transactions and I2C-over-AUX transactions. It explores how the bidirectional DisplayPort AUX channel manages both modern DisplayPort Configuration Data (DPCD) operations and backward-compatible I2C operations (such as EDID and MCCS), detailing the structural, operational, and functional differences between the two protocols.
The DisplayPort AUX Channel Overview
The DisplayPort Auxiliary (AUX) channel is a dedicated, bidirectional, half-duplex AC-coupled differential link operating alongside the main video lanes. Originally designed with a raw bit rate of 1 Mbps using Manchester-II encoding (and expanded up to 720 Mbps with 128b/132b encoding in DisplayPort 2.0+), it acts as the primary control bus between the video source (transmitter) and the display sink (receiver).
Every interaction over this bus occurs through request-and-reply packet transactions initiated exclusively by the source device. These transactions are broadly categorized into two types: Native AUX Transactions and I2C-over-AUX Transactions.
Native DisplayPort AUX Transactions
Native AUX transactions represent the standard, direct communication protocol engineered specifically for DisplayPort architectures.
Key Characteristics:
- Primary Purpose: Used for low-level link configuration, link training, capability discovery, and ongoing link status monitoring.
- Target Address Space: Accesses the DisplayPort
Configuration Data (DPCD) registers located on the sink device. DPCD
uses a 20-bit address space (ranging from
0x00000to0xFFFFF). - Command Types:
AUX Native Write(Command code1000in binary /0x8)AUX Native Read(Command code1001in binary /0x9)
- Payload Capacity: Each transaction can transfer between 1 and 16 bytes of data per burst.
- Response Mechanism: The sink returns an immediate
AUX reply containing status bits:
ACK(success),NACK(negative acknowledgment), orDEFER(the receiver is busy and requests a retry).
Because native AUX operates directly with the sink's internal registers without bus translation, it features lower latency and minimal protocol overhead.
I2C-over-AUX Transactions
I2C-over-AUX is an emulation and tunneling protocol that allows standard I2C commands to be packaged and transmitted inside native AUX frames. DisplayPort does not include physical, dedicated I2C clock (SCL) and data (SDA) lines; instead, it encapsulates I2C traffic to maintain backward compatibility with legacy display identification standards.
Key Characteristics:
- Primary Purpose: Primarily used to read Extended Display Identification Data (EDID) via the Display Data Channel (DDC), send Monitor Control Command Set (MCCS) data, or perform HDCP authentication on legacy downstream components.
- Target Address Space: Targets 7-bit standard I2C
slave addresses (e.g.,
0x50for EDID data). The 7-bit I2C address is mapped into the standard 20-bit AUX address field, with the unused upper bits set to zero. - Command Types:
I2C-over-AUX Write(Command code0000/0x0)I2C-over-AUX Read(Command code0001/0x1)I2C-over-AUX Write-Status-Update(Command code0010/0x2)
- Transaction Control (The MOT Bit): I2C requires
START,REPEATED START, andSTOPconditions. To emulate this on a packetized channel, I2C-over-AUX uses a Middle-of-Transaction (MOT) bit in the command header:- Setting
MOT = 1holds the virtual I2C bus open, allowing multi-burst reads or combined write-then-read operations without issuing an I2C STOP condition. - Setting
MOT = 0signals the end of the transaction, instructing the sink to issue an I2C STOP condition.
- Setting
- Response Mechanism: In addition to standard AUX
reply codes (
ACK,NACK,DEFER), the sink can return anI2C-NACKto signify that the virtual or bridged I2C slave device did not acknowledge the address or data byte.
Direct Comparison of Differences
| Feature | Native AUX Transactions | I2C-over-AUX Transactions |
|---|---|---|
| Primary Role | Read/write DPCD registers; link training and device control | Read EDID, send MCCS commands, interact with I2C peripherals |
| Target Architecture | Modern DisplayPort sinks and branch devices | Legacy I2C slave devices (real or emulated) |
| Address Width | 20-bit address space | 7-bit I2C slave address (mapped into lower AUX address bits) |
| Protocol Flow | Direct stateless register access | Emulates stateful I2C bus conditions
(START, STOP, ACK) using the
MOT flag |
| Reply Codes | Native ACK,
NACK, DEFER |
Native replies plus virtual
I2C-NACK and I2C-DEFER |
| Overhead | Minimal; point-to-point packetization | Higher; requires encapsulation, bus-holding states, and translation |
Summary
Native AUX channel transactions provide direct, native access to DisplayPort's 20-bit DPCD register map for link setup and hardware control. In contrast, I2C-over-AUX is an encapsulation mechanism that simulates an I2C master-slave bus inside the AUX channel using the MOT bit, allowing DisplayPort sources to read EDID data and manage peripheral display features seamlessly without dedicated I2C pins.