Display Data Channel
Display Data Channel (DDC) — интерфейс обмена данными между компьютером и монитором. Существуют два варианта этого интерфейса:
- DDC 1 — односторонний, от монитора к компьютеру, передача данных о модели монитора и параметрах поддерживаемых видеорежимов.
- DDC 2 — двусторонний обмен данными.
Стандарт VGA
ID2 (контакт 4) | ID0 (контакт 11) | ID1 (контакт 12) | Тип монитора |
---|---|---|---|
n/c | n/c | n/c | нет присоединённого монитора |
n/c | n/c | GND | разрешение менее 1024×768 пикселей, монохромный |
n/c | GND | n/c | разрешение менее 1024×768 пикселей, цветной |
GND | GND | n/c | разрешение более или равно 1024×768 пикселей, цветной |
До опубликования и использования стандарта DDC в стандарте VGA было предусмотрено использование 4 контактов в стандартном аналоговом разъеме VGA для идентификации типа монитора. Комбинация заземлённых линий на этих 4 контактах служило информацией для видеокарты и операционной системе о допустимом формате видеоотображения монитором.
Эти контакты обозначались ID0, ID1, ID2, ID3 и имеют номера в аналоговом разъеме VGA 11, 12, 4, 15 соответственно. В некоторых мониторах и видеокартах линия ID3 (контакт 15) не используется.
В этом раннем стандарте тип монитора кодировался заземлением внутри монитора (GND) некоторой комбинации этих идентификационных линий, на плате видеоадаптера эти линии снабжены «подтягивающими» резисторами на линию питания +5V.
Наиболее популярная кодировка типа монитора посредством этих идентификационных линий приведена в таблице, n/c - контакт не присоединён.
В стандарте DDC2 для организации обмена данных по протоколу I2C используются линии ID1 (данные) и ID3 (синхронизация).
Стандарт VESA DDC/CI
VESA Display Data Channel Command Interface (DDC/CI). Этот стандарт описывает способ формирования и передачи команд в монитор и прием из него ответов. Набор общедоступных команд стандартизирован и описан в документе VESA Monitor Control Command Set (MCCS). Все эти документы конфиденциальны, однако, найти их возможно[1][2]. Кроме того, есть и общедоступный документ, который называется «ACCESS.bus Specifications Version 3.0». В нём достаточно понятно описано устройство команд и способ их применения. При этом в операционной системе Windows есть сложность в том, что доступ к I²C шине монитора, который, собственно говоря, на сегодняшний день, является единственным устройством, поддерживающим эти стандарты, можно получить только через достаточно сложную надстройку Microsoft над драйвером видеокарты. В ОС Linux управление монитором возможно например через утилиту ddccontrol при помощи которой доступно чтение и изменение всех 255 регистров устройства.
Из широкодоступных готовых средств для работы с этим интерфейсом, поддерживающих основные языки программирования, есть продукт фирмы Nicomsoft, который называется WinI2C/DDC.
Аналогичная библиотека есть ещё и у фирмы EnTech Taiwan, и называется она softOSD, но, к сожалению, даже демоверсия этого продукта не доступна для загрузки.
С сайта EnTech Taiwan можно скачать приложение softMCC, которое, в свою очередь, может посылать команды DDC/CI.