Display Data Channel

Last updated

Display Data Channel (DDC) is a collection of protocols for digital communication between a computer display and a graphics adapter that enable the display to communicate its supported display modes to the adapter and that enable the computer host to adjust monitor parameters, such as brightness and contrast.

Contents

Like modern analog VGA connectors, the DVI and DisplayPort connectors include pins for DDC, but DisplayPort only supports DDC within its optional Dual-Mode DP (DP++) feature in DVI/HDMI mode.

The standard was created by the Video Electronics Standards Association (VESA).

Overview

The DDC suite of standards aims to provide Plug and Play and DPMS power management experiences for computer displays.

DDC1 and DDC2B/Ab/B+/Bi protocols are a physical link between a monitor and a video card, which was originally carried on either two or three pins in a 15-pin analog VGA connector.

Extended display identification data (EDID) is a companion standard; it defines a compact binary file format describing the monitor's capabilities and supported graphics modes, stored in a read-only memory (EEPROM) chip programmed by the manufacturer of the monitor. The format uses a description block containing 128 bytes of data, with optional extension blocks to provide additional information. The most current version is Enhanced EDID (E-EDID) Release A, v2.0.

The first version of the DDC standard was adopted in August 1994. It included the EDID 1.0 format and specified DDC1, DDC2B and DDC2Ab physical links.

DDC version 2, introduced in April 1996, split EDID into a separate standard and introduced the DDC2B+ protocol.

DDC version 3, December 1997, introduced the DDC2Bi protocol and support for VESA Plug and Display and Flat Panel Display Interface on separate device addresses, requiring them to comply with EDID 2.0.

The DDC standard has been superseded by E-DDC in 1999.

DDC is also used as a communication channel for implementing High-bandwidth Digital Content Protection (HDCP).

Prior to the DDC, the VGA standard had reserved four pins in the analog VGA connector, known as ID0, ID1, ID2 and ID3 (pins 11, 12, 4 and 15) for identification of monitor type. These ID pins, attached to resistors to pull one or more of them to ground (GND), allowed for the definition of the monitor type, with all open (n/c, not connected) meaning "no monitor".

In the most commonly documented scheme, the ID3 pin was unused and only the 3 remaining pins were defined. The ID0 was pulled to GND by color monitors, while the monochrome monitors pulled ID1 to GND. Finally, the ID2 pulled to GND signaled a monitor capable of 1024×768 resolution, such as IBM 8514. In this scheme, the input states of the ID pins would encode the monitor type as follows: [1] [2] [3]

ID2 (pin 4)ID0 (pin 11)ID1 (pin 12)monitor type
n/cn/cn/cno monitor connected
n/cn/cGND< 1024×768, monochrome
n/cGNDn/c< 1024×768, color
GNDGNDn/c≥ 1024×768, color

More elaborate schemes also existed that used all of the 4 ID pins while manipulating the HSync and VSync signals in order to extract 16 bits (4 ID pin values for each of the 4 combinations of HSync and VSync states) of monitor identification. [4]

DDC changed the purpose of the ID pins to incorporate a serial link interface. However, during the transition, the change was not backwards-compatible and video cards using the old scheme could have problems if a DDC-capable monitor was connected. [5] [6] The DDC signal can be sent to or from a video graphics array (VGA) monitor with the I2C protocol using the master's serial clock and serial data pins.

DDC1

DDC1 is a simple, low-speed, unidirectional serial link protocol. Pin 12, ID1 functions as a data line that continuously transmits the 128-byte EDID block, and the data clock is synchronised with vertical sync, providing typical clock rates of 60 to 100 Hz.

Very few display devices implemented this protocol.

DDC2

The most common version, called DDC2B, is based on I²C, a serial bus. Pin 12, ID1, of the VGA connector is used as the data pin of the I²C bus, and the formerly-unused pin 15 is the I²C clock. Pin 9, previously used as a mechanical key, supplies +5V DC power (up to 50mA) to power the EEPROM. With this, the host can read the EDID even if the monitor is powered off. Though I²C is fully bidirectional and supports multiple bus-masters, DDC2B is unidirectional and allows only one bus master—the graphics adapter. The monitor acts as a slave device at the 7-bit I²C address 50h, and provides 128-256 bytes of read-only EDID. Because this access is always a read, the first I²C octet will always be A1h.

DDC2Ab is an implementation of the I²C-based 100-kbit/s ACCESS.bus interface, which made it possible for monitor manufacturers to support external ACCESS.bus peripherals such as a mouse or keyboard with little to no additional effort. Such devices and monitors were briefly available in the mid-1990s, but they disappeared with the introduction of USB.

DDC2B+ and DDC2Bi are scaled-down versions of DDC2Ab which only support monitor and graphics card devices but still allow bidirectional communication between them.

DDC2 is not exclusive to the VGA interface. Both DVI and HDMI feature dedicated DDC2B wires.

DDC/CI

DDC/CI (Command Interface) standard was introduced in August 1998. It specifies a means for a computer to send commands to the monitor, as well as receive sensor data from the monitor, over a bidirectional link. Specific commands to control monitors are defined in a separate Monitor Control Command Set (MCCS) standard version 1.0, released in September 1998.

DDC/CI monitors are sometimes supplied with an external color sensor to allow automatic calibration of the monitor's color balance. Some tilting DDC/CI monitors support an auto-pivot function, where a rotation sensor in the monitor enables the operating system to keep the display upright as the monitor is moved between its portrait and landscape positions.

Most DDC/CI monitors support only a small subset of MCCS commands and some have undocumented commands. Many manufacturers did not pay attention to DDC/CI in the past, but now almost all monitors support such general MCCS commands as brightness and contrast management. [lower-alpha 1]

DDC/CI standard describes a full suite of bidirectional control protocols - DDC2Ab, DDC2Bi and DDC2B+ - in a single standard and provides a means for packaging Monitor Control Command Set commands.

DDC/CI version 1.1 was adopted in October 2004. [9]

Monitor Control Command Set version 2.0 was adopted in October 2003. A new MCCS V3 was introduced in July 2006, though did not gain enough industry attention yet. The latest release of V2 standard is version 2.2a, adopted January 2011.

OS support for DDC/CI

Despite its ubiquity in post-2016 displays, DDC/CI is not generally used by the operating system by default for brightness control on external displays. [10] Additional software can be used to send commands to the display, but the degree of system integration vary.

Windows exposes DDC/CI as the Monitor Configuration Win32 API series. [11]

E-DDC

Enhanced Display Data Channel (E-DDC) is the most recent revision of the DDC standard. Version 1 was introduced in September 1999 and featured the addition of a segment pointer which allowed up to 32 Kbytes of display information storage for use by the Enhanced EDID (E-EDID) standard.

Earlier DDC implementations used simple 8-bit data offset when communicating with the EDID memory in the monitor, limiting the storage size to 28 bytes = 256 bytes, but allowing the use of cheap 2-Kbit EEPROMs. In E-DDC, a special I²C addressing scheme was introduced, in which multiple 256-byte segments could be selected. To do this, a single 8-bit segment index is passed to the display via the I²C address 30h. (Because this access is always a write, the first I²C octet will always be 60h.) Data from the selected segment is then immediately read via the regular DDC2 address using a repeated I²C 'START' signal. However, VESA specification defines the segment index value range as 00h to 7Fh, so this only allows addressing 128 segments × 256 bytes = 32  KiB . The segment index register is volatile, defaulting to zero and automatically resetting to zero after each NACK or STOP. Therefore, it must be set every time access to data above the first 256-byte segment is performed. The auto-reset mechanism is to provide for backward compatibility to, for example, DDC2B hosts, otherwise they may be stuck at a segment other than 00h in some rare cases.

Other important changes were removal of the DDC1 and DDC2Ab protocols, deprecation of separate VESA P&D and FPDI device addresses, and clarifications to the DDC power requirements.

E-DDC Version 1.1, approved March 2004, featured support for HDMI and consumer electronics.

E-DDC Version 1.2, approved December 2007, introduced support for DisplayPort (which has no dedicated DDC2B links and uses its bidirectional auxiliary channel for EDID and MCCS communication) and DisplayID standards.

E-DDC Version 1.3 from September 2017 contains corrections for errata and minor clarifications.

Disabling DDC

Some KVM switches (keyboard-video-mouse) and video extenders handle DDC traffic incorrectly, making it necessary to disable monitor plug and play features in the operating system, and maybe even physically remove pin 12 (serial data pin) from the analog VGA cables [12] that connect such device to multiple PCs.

Microsoft Windows features a standard "Plug and Play Monitor" driver which uses the display's EDID information to construct a list of supported monitor modes. The Display Resolution control panel applet can be used to disable this driver's Plug and Play features and manually select any resolution or refresh rate supported by the video card. [13] Many video card manufacturers and third parties provide control applications which can be used to select a custom display mode that does not conform to the EDID information or the monitor .INF file.

See also

Notes

  1. Note that MCCS glosses over the difference in how CRT and LCD or newer displays interpret brightness and contrast settings: adjusting LCD brightness affects overall luminance, which is the same as "contrast" on CRTs. LCD "contrast" instead adjusts the white level. [7] [8]

Related Research Articles

<span class="mw-page-title-main">Digital Visual Interface</span> Standard for transmitting digital video to a display

Digital Visual Interface (DVI) is a video display interface developed by the Digital Display Working Group (DDWG). The digital interface is used to connect a video source, such as a video display controller, to a display device, such as a computer monitor. It was developed with the intention of creating an industry standard for the transfer of uncompressed digital video content.

<span class="mw-page-title-main">Video Electronics Standards Association</span> Technical standards organization for computer display standards

VESA, formally known as Video Electronics Standards Association, is an American technical standards organization for computer display standards. The organization was incorporated in California in July 1989 and has its office in San Jose. It claims a membership of over 300 companies.

VESA BIOS Extensions (VBE) is a VESA standard, currently at version 3, that defines the interface that can be used by software to access compliant video boards at high resolutions and bit depths. This is opposed to the "traditional" INT 10h BIOS calls, which are limited to resolutions of 640×480 pixels with 16 colour (4-bit) depth or less. VBE is made available through the video card's BIOS, which installs during boot up some interrupt vectors that point to itself.

<span class="mw-page-title-main">Video Graphics Array</span> Computer display standard and resolution

Video Graphics Array (VGA) is a video display controller and accompanying de facto graphics standard, first introduced with the IBM PS/2 line of computers in 1987, which became ubiquitous in the IBM PC compatible industry within three years. The term can now refer to the computer display standard, the 15-pin D-subminiature VGA connector, or the 640 × 480 resolution characteristic of the VGA hardware.

<span class="mw-page-title-main">I²C</span> Serial communication bus

I2C (Inter-Integrated Circuit; pronounced as “eye-squared-see” or “eye-two-see”), alternatively known as I2C or IIC, is a synchronous, multi-controller/multi-target (historically-termed as master/slave), single-ended, serial communication bus invented in 1982 by Philips Semiconductors. It is widely used for attaching lower-speed peripheral ICs to processors and microcontrollers in short-distance, intra-board communication.

<span class="mw-page-title-main">CAN bus</span> Standard for serial communication between devices without host computer

A controller area network is a vehicle bus standard designed to allow microcontrollers and devices to communicate with each other. It is a message-based protocol, designed originally for multiplex electrical wiring within automobiles to save on copper, but it can also be used in many other contexts. For each device, the data in a frame is transmitted serially but in such a way that if more than one device transmits at the same time, the highest priority device can continue while the others back off. Frames are received by all devices, including by the transmitting device.

Extended Display Identification Data (EDID) and Enhanced EDID (E-EDID) are metadata formats for display devices to describe their capabilities to a video source. The data format is defined by a standard published by the Video Electronics Standards Association (VESA).

Serial Peripheral Interface (SPI) is a de facto standard for synchronous serial communication, used primarily in embedded systems for short-distance wired communication between integrated circuits.

<span class="mw-page-title-main">HDMI</span> Proprietary interface for transmitting digital audio and video data

High-Definition Multimedia Interface (HDMI) is a proprietary audio/video interface for transmitting uncompressed video data and compressed or uncompressed digital audio data from an HDMI-compliant source device, such as a display controller, to a compatible computer monitor, video projector, digital television, or digital audio device. HDMI is a digital replacement for analog video standards.

<span class="mw-page-title-main">VGA connector</span> 15-pin video connector

The Video Graphics Array (VGA) connector is a standard connector used for computer video output. Originating with the 1987 IBM PS/2 and its VGA graphics system, the 15-pin connector went on to become ubiquitous on PCs, as well as many monitors, projectors and high-definition television sets.

Text mode is a computer display mode in which content is internally represented on a computer screen in terms of characters rather than individual pixels. Typically, the screen consists of a uniform rectangular grid of character cells, each of which contains one of the characters of a character set; at the same time, contrasted to graphics mode or other kinds of computer graphics modes.

<span class="mw-page-title-main">S3 ViRGE</span>

The S3 ViRGE (Video and Rendering Graphics Engine) graphics chipset was one of the first 2D/3D accelerators designed for the mass market.

<span class="mw-page-title-main">KVM switch</span> Device that connects computer front-end hardware to multiple computers

A KVM switch is a hardware device that allows a user to control multiple computers from one or more sets of keyboards, video monitors, and mouse.

<span class="mw-page-title-main">VESA Digital Flat Panel</span>

The VESA Digital Flat Panel (DFP) interface standard specifies a video connector and digital TMDS signaling for flat-panel displays. It features 20 pins and uses the PanelLink protocol; the standard is based on the preceding VESA Plug and Display (P&D) standard, ratified in 1997. Unlike the later, electrically-compatible Digital Visual Interface, DFP never achieved widespread implementation.

<span class="mw-page-title-main">DisplayPort</span> Digital display interface

DisplayPort (DP) is a proprietary digital display interface developed by a consortium of PC and chip manufacturers and standardized by the Video Electronics Standards Association (VESA). It is primarily used to connect a video source to a display device such as a computer monitor. It can also carry audio, USB, and other forms of data.

<span class="mw-page-title-main">PDMI</span> Interconnection standard

PDMI is an interconnection standard for portable media players. It has been developed by CEA as ANSI/CEA-2017-A standard Common Interconnection for Portable Media Players in February 2010. Chaired by David McLauchlan from Microsoft, the standard was developed with the input or support of over fifty consumer electronics companies worldwide.

Generalized Timing Formula is a standard by VESA which defines exact parameters of the component video signal for analogue VGA display interface.

DisplayID is a VESA standard for metadata describing display device capabilities to the video source. It is designed to replace E-EDID standard and EDID structure v1.4.

Monitor Control Command Set or MCCS is a computer standard developed by Video Electronics Standards Association (VESA). It defines a binary protocol for controlling the properties of computer monitors from a host device such as PC, set-top box, etc.

<span class="mw-page-title-main">USB-C</span> 24-pin USB connector system

USB-C, or USB Type-C, is a 24-pin connector that supersedes previous USB connectors and can carry audio, video and other data, e.g., to drive multiple displays or to store a backup to an external drive. It can also provide and receive power, such as powering a laptop or a mobile phone. It is applied not only by USB technology, but also by other protocols, including Thunderbolt, PCIe, HDMI, DisplayPort, and others. It is extensible to support future standards.

References

  1. "Method and apparatus for automatic selection of scan rates for enhanced VGA-compatible monitors".
  2. Monitor Pinouts
  3. "VGA pinout diagram @ pinoutguide.com". pinoutguide.com.
  4. "ibm :: pc :: cards :: IBM VGA XGA Technical Reference Manual May92". May 25, 1992 via Internet Archive.
  5. Enhanced Display Data Channel Standard, Version 1.1 [ dead link ]
  6. "Enhanced Display Data Channel Standard, Version 1.1" (PDF). March 24, 2004. Archived from the original on 2023-05-04. Retrieved 2023-05-04.
  7. Poynton, Charles. ""Brightness" and "Contrast" controls". poynton.ca. Retrieved 17 November 2020.
  8. Patek, Marcel. "LCD Displays - liquid crystals - gamut - phosphors - polarization". Digital Photography.
  9. VESA Standards Summaries: Display Data Channel Command Interface (DDC/CI) Standard, Version 1.1(VESA document VESA-2004-10)
  10. "What is DDC/CI and How to Use It". Appuals.com. 21 February 2019.
  11. "Monitor Configuration - Win32 apps". docs.microsoft.com. 24 January 2023.
  12. Lyosha Blinnikov. "Allowing any screen resolution on Vista". I performed this mod on an old 6" patch cable that was previously used for connecting a 3D accelerator. I call it my "freedom cable", as it can be connected to any monitor to temporarily disable its EDID :D
  13. "You Cannot Select the Highest Monitor Graphics Modes". Archived from the original on 2011-04-15. Retrieved 2009-10-12.