VESA Display Data Channel

VESA Display Data Channel (w skrócie DDC) – standard VESA definiujący sposób komunikacji karty graficznej z urządzeniem wyświetlającym (monitorem, LCD): określa parametry elektryczne, jak również interfejs programisty. Pierwsza wersja standardu została ogłoszona w 1994 roku, poprawiona – oznaczona numerem 1.1 – w roku 1999. Przed ogłoszeniem tego standardu nie istniał żaden inny (powszechny), który definiowałby podobną funkcjonalność.

Główna idea jest taka, że producent monitora w pamięci ROM zapisuje parametry monitora, które można odczytać programowo. Informacje udostępniane przez monitor pozwalają określić m.in. fizyczne rozmiary monitora, maksymalną częstotliwość odchylania poziomego i pionowego, punkt bieli.

Dodatkowy standard DDC/CI (Command Interface) umożliwia programowe sterowanie monitora, tzn. wysyłanie rozkazów, które mogą powodować np. zmianę jasności, kontrastu, czy rozmiaru obrazu.

Komunikacja z monitorem zrealizowana została za pomocą szeregowego interfejsu I²C (wprowadzonego przez firmę Philips). Istnieją trzy wersje DDC:

  1. DDC1 – port I²C jest jednokierunkowy, dane spływają z monitora do karty,
  2. DDC2B – port I²C jest jednokierunkowy, dane spływają z monitora do karty,
  3. DDC2AB – port I²C jest dwukierunkowy, możliwa jest komunikacja w obie strony.

Do elektrycznego połączenia potrzebne są 3 linie dla: danych, zegara oraz masy. W złączu VGA wykorzystano nieużywane linie, dla danych jest to pin 12, natomiast dla zegara pin 15.

Format w jakim dane są zapisane jest ustandaryzowany, nazywa się EDID ang. Extended Display Identification Data. Dane są przesyłane w blokach po 128 bitów (standardy EDID 1.0-1.3) lub 256 bitów (standard EDID 2.0).

Dostęp programowy zrealizowano jako rozszerzenie przerwania programowego 10h zdefiniowanego w VGA BIOS. Chociaż DDC jest związany ze standardem VESA BIOS Extension, to możliwa jest implementacja DDC, nawet jeśli karta nie obsługuje VBE.