Как читать отображаемый идентификатор

Обновлено: 21.11.2024

В этом разделе описывается поддержка Container ID для дисплеев — визуальное представление устройств, встроенных в дисплей или монитор.

Минимальная версия модели драйвера дисплея Windows (WDDM): 1.2

Минимальная версия Windows: 8

Реализация драйвера – полная графика и только отображение: обязательно

Интерфейс драйвера устройства Container ID (DDI)

Реализуйте эту функцию и структуру в драйвере минипорта дисплея:

Описание идентификатора контейнера

Новые возможности мониторов могут улучшить взаимодействие с пользователем. В частности, концентраторы универсальной последовательной шины (USB) являются популярными разъемами на мониторах для подключения мыши и клавиатуры. Кроме того, такие разъемы, как HDMI, поддерживают звук, поэтому в мониторы также встроены звуковые динамики. Многие новые устройства отображения поддерживают сенсорные возможности. Это обеспечивает удобство работы пользователей, уменьшая беспорядок проводов на рабочих столах пользователей.

Важно визуально представить подключение и состояние этих устройств для пользователя интуитивно понятным способом. Страница «Устройства и принтеры» появилась в Windows 7. Как показано здесь, папка «Устройства и принтеры» показывает пользователю установленные устройства, подключенные к ПК, предоставляя простой способ проверить принтер, музыкальный проигрыватель, камеру, мышь, или цифровая фоторамка (и это лишь некоторые из них). В то же время на этой странице сгруппированы устройства, входящие в состав одного и того же оборудования, чтобы пользователям было проще найти все их драйверы.

В Windows 7 корпорация Майкрософт представила концепцию идентификатора контейнера для устройств: "системная строка идентификации устройства, которая уникальным образом группирует функциональные устройства, связанные с однофункциональным или многофункциональным устройством, установленным в компьютер". (См. Идентификаторы контейнеров.) Устройства группируются, если они содержат одинаковый идентификатор контейнера.

Чтобы концепция идентификатора контейнера была успешной, ее должны поддерживать все классы устройств в Windows, а вся экосистема должна реализовать ее аппаратно. В Windows 7, если подключено несколько мониторов, поддерживающих звук, пользователю непросто определить, какой дисплей соответствует конечным точкам звука. Та же трудность существует и для сенсорных дигитайзеров. В Windows 8 класс устройства отображения добавляет поддержку идентификатора контейнера. Это позволяет всем функциям устройства отображения сообщать об одном и том же идентификаторе контейнера и визуально совмещать их в пользовательском интерфейсе Windows и API.

Сценарии использования идентификатора контейнера

Рассмотрите следующий рабочий процесс для монитора со встроенными динамиками:

  1. Пользователь подключает монитор с помощью кабеля HDMI.
  2. Драйвер WDDM сообщает графическому стеку Windows о наличии устройства отображения.
  3. Графический стек Windows запрашивает у драйвера WDDM идентификатор контейнера, используя интерфейсы драйверов устройств (DDI), представленные в Windows 8.
  4. Драйвер дисплея запрашивает у монитора идентификатор контейнера и передает его обратно в Windows.
  5. В то же время аудиодрайвер должен передавать точно такой же идентификатор контейнера в аудиостек Windows.
  6. При просмотре на панели управления "Устройства и принтеры" дисплей и динамики сгруппированы вместе.

В некоторых случаях устройство отображения может не содержать идентификатор контейнера. В этом случае Windows автоматически создает уникальный идентификатор контейнера, используя идентификатор производителя, идентификатор продукта и серийный номер, полученные из данных расширенной идентификации дисплея (EDID). Поскольку эти значения уникальны, идентификатор контейнера также уникален. Windows 8 предоставляет DDI, который передает ту же информацию драйверу WDDM, чтобы ее можно было передать аудиодрайверу для создания того же идентификатора контейнера.

В некоторых сценариях управление дисплеем передается между Windows, драйвером дисплея WDDM и прошивкой. Эти переходы связаны с аппаратным или программным обеспечением, которое сбрасывается или перенастраивается, и могут вызывать мигание и мерцание экрана. Возможные сценарии перехода и их поведение обсуждаются в разделе Обеспечение плавного перехода между состояниями в WDDM 1.2 и более поздних версиях.

Требования к сертификации оборудования

Информацию о требованиях, которым должны соответствовать аппаратные устройства при реализации этой функции, см. в соответствующей документации WHCK по функциональному тесту идентификатора контейнера монитора.

Я сталкиваюсь с различными проблемами чтения регистра и spi. Кажется, что чтение регистра различается между двумя последовательными попытками чтения, разделенными задержкой, и что мне нужно выдать спящий режим и отобразить по команде, прежде чем какой-либо графический тест будет работать
Идентификатор дисплея: 0x0,0,0
Статус дисплея: 0x0,0,0,0
Режим питания дисплея: 0x8
Режим MADCTL: 0x0
Формат пикселей: 0x6
>установить формат пикселей 16 бит
Формат пикселей: 0x5
Формат изображения: 0x8
Самодиагностика: 0x0
засыпать

поменял провода, похожие симптомы, теперь хуже, не работает
значения функции считывания (lcd) регистров возвращают разные значения при каждом последовательном вызове (без сброса, без отображения включен, без сна и т. д.) что-то еще казалось неправильным
идентификатор дисплея: 0x0,0,0
Статус дисплея: 0x0,0,0,0
Режим питания дисплея: 0x8
Режим MADCTL: 0x0
Формат пикселей: 0x0
установить формат пикселей 16 бит
Формат пикселей: 0x0

Первый шаг — получить надежный результат диагностики diag().
Любые проблемы указывают на ненадежные соединения SPI, т.е. ослабленный или оборванный провод.

Какую версию IDE вы используете? Ранние версии MapleCore аварийно завершают работу с макросом F().

/*
SETDC_CMD();
CS_ENABLE();
запись(0xD9); // добиться секретной команды?
SETDC_DATA();
spiwrite(0x10 + индекс);
CS_DISABLE();
*/

SETDC_CMD();
CS_ENABLE();
//if(hwSPI) digitalWrite(_sclk, LOW);
запись(с);

SETDC_DATA();
SPI.transfer(0x00); //первые 8 бит/тактов являются фиктивными часами
for (int i = 0; i

Я использовал 9341 с Maple Mini и библиотекой _stm (dma?). Провода длиной 12-15см. Он отлично работал на частотах 18/36 МГц.

спасибо,
мне нужно потихоньку отладить это, я заставил свою "пользовательскую" функцию readcommandx возвращать лишний байт, больше, чем указано в спецификации, пока не похоже, что мой ili9341 запрограммирован для 9bitspi, я обычно получаю как 0xff, так и 0x00, что пока ничего особенного не значит

Убедитесь, что у вас есть надежные связи. т. е. хорошие сокеты для заголовков.

выяснил это, мой контакт сброса ЖК-дисплея находится на контакте 0 PB11 на maple mini, коды написаны так, чтобы ожидать сброс ЖК-дисплея на контакт, отличный от 0
поменял контакты местами, и теперь он работает

удивительно, хотя теперь тест графики выполняется до завершения, различные значения команд чтения регистра ЖК-дисплея сохраняются, т. Е. Они все еще различаются между последовательными наборами чтений, первые чтения после запуска графического теста, по-видимому, отражают правильные значения, после этого они меняются на 0xff и 0x00

в своих тестах я заметил, что после запуска графического теста и выдачи статуса чтения 0x09 статус правильный / ожидаемый,
однако последующая та же команда и начало чтения "дрейфуют", и я либо получаю 0x00 или иногда 0xff. 0xff особенно наблюдается после сброса, а затем выдачи команды включения дисплея и отключения. но затем прочитайте все, что станет 0x00

однако, несмотря на все эти дурацкие байты состояния, в настоящее время графические тесты завершаются
в начальном сбросе в tft.begin() и кодах инициализации есть какая-то «магия»

на данный момент я все еще не совсем понимаю spi, например. часы spi работают, даже если нет команды SPI.transfer(0x00)? и если после выдачи команды, будут ли обстоятельства, при которых ЖК-дисплей займет больше spi-тактов, прежде чем дать ответ (в спецификациях, похоже, это не предполагалось)? другие вещи, которые могут повлиять на результаты, такие как тайминги, поскольку выводы D/C и CS являются выводами gpio, и понятие команды «sekret». я предполагаю, что, возможно, мне нужно кое-что еще узнать о spi, и что, похоже, некоторая информация не задокументирована в «справочном руководстве» для ili9341 (в частности, некоторые из тех «магических» загадочных команд, найденных в tft.begin ( ) не описаны в справочном руководстве)

Вы можете напрямую считывать регистры reg(0x04), reg(0x09) и GRAM.

Команда «sekret» нужна для чтения многобайтовых регистров, таких как ID (0xD3) или GAMMAP (0xE0)

Насколько я помню, код Adafruit правильно читает регистры. Используйте полный метод для индексации многобайтового регистра.

Обмен данными EDID – это стандартизированный способ, с помощью которого дисплей передает свои возможности исходному устройству. Предпосылка этой связи заключается в том, что дисплей передает свои рабочие характеристики, такие как собственное разрешение, на подключенный источник, а затем позволяет источнику генерировать необходимые характеристики видео, соответствующие потребностям дисплея. Это максимизирует функциональную совместимость между устройствами, не требуя от пользователя их ручной настройки, что снижает вероятность неправильных настроек и регулировок, которые могут поставить под угрозу качество отображаемых изображений и общую надежность системы.

Где используется EDID?

Как правило, исходным устройством является компьютерная видеокарта на настольном или портативном ПК, но предусмотрены условия для многих других устройств, включая приемники HDTV и цифровые видеорегистраторы, проигрыватели дисков DVD и Blu-ray и даже игровые консоли. для чтения EDID и вывода видео соответственно. Первоначально разработанный для использования между аналоговыми компьютерными видеоустройствами с портами VGA, EDID теперь также реализован для DVI, HDMI и DisplayPort.

История

EDID был разработан VESA — Ассоциацией стандартов видеоэлектроники. Версия 1.0 была представлена ​​в 1994 году в рамках версии 1.0 стандарта DDC. См. Таблицу 1.


Таблица 1: История развития EDID


Назначение контактов VGA-VESA

До разработки EDID контакты 4, 11, 12 и 15 на разъеме VGA иногда использовались для определения возможностей монитора. Эти выводы бита идентификатора имели либо высокие, либо низкие значения для определения различных разрешений экрана. VESA расширила эту схему, переопределив контакты 9, 12 и 15 разъема VGA как последовательную шину в форме DDC - Display Data Channel. Это позволило обмениваться гораздо большим объемом информации, так что между источником и дисплеем стали возможны EDID и другие формы связи.

Исходный протокол DDC определял 128 байтов для отправки с дисплея на источник видео, форматирование данных определялось спецификацией EDID.

В декабре 2007 г. VESA выпустила DisplayID, второе поколение EDID. Он призван заменить все предыдущие версии. DisplayID — это структура данных переменной длины, до 256 байт, которая передает информацию, относящуюся к дисплею, на подключенные устройства-источники. Он предназначен для устройств отображения ПК, потребительских телевизоров и встроенных дисплеев, таких как ЖК-экраны в ноутбуках, без необходимости использования нескольких блоков расширения. DisplayID не имеет прямой обратной совместимости с предыдущими версиями EDID/E-EDID, но еще не получил широкого распространения в продуктах AV.

Какой информацией EDID обмениваются дисплей и источник?


Таблица 2: Структура файла EDID

Блок идентификации производителя/продукта — первые 18 байт определяют производителя дисплея и продукт, включая серийный номер и дату изготовления.

Версия и версия структуры EDID. Следующие два байта определяют версию и версию данных EDID в структуре.

Основные параметры/функции дисплея. Следующие пять байтов определяют такие характеристики, как прием дисплеем аналоговых или цифровых входных сигналов, типы синхронизации, максимальный горизонтальный и вертикальный размер дисплея, характеристики передачи гаммы, возможности управления питанием, цветовое пространство и синхронизация видео по умолчанию.

Цветовые характеристики. Следующие 10 байт определяют метод преобразования цветового пространства RGB, который будет использоваться дисплеем.

Установленные тайминги — следующие три байта определяют установленные VESA разрешения видео/тайминги, которые поддерживаются дисплеем. Каждый бит представляет установленную синхронизацию, такую ​​как 640x480/60. Последний из трех байтов определяет зарезервированное производителем время, если таковое имеется.

Стандартная временная идентификация. Следующие 16 байтов определяют восемь дополнительных разрешений видео, поддерживаемых дисплеем. Эти разрешения должны соответствовать стандартным таймингам, определенным VESA.

Этот байт указывает количество доступных дополнительных блоков расширения. Определены различные структуры для этих блоков расширения, в том числе DI-EXT — расширение отображаемой информации, VTB-EXT — расширение блока синхронизации видео и LS-EXT — расширение локализованной строки.

Расширение CEA-861. Наиболее распространенным расширением EDID является CEA-861, предназначенное для поддержки расширенных возможностей потребительских устройств, включающих HDMI.


Таблица 3: Расширение EDID CEA-861-E

Протоколы EDID/DDC

DDC использует стандартную схему последовательной передачи сигналов, известную как шина I2C. I2C широко используется там, где электронным устройствам и компонентам необходимо обмениваться информацией, благодаря его простоте, малому количеству контактов и возможности двунаправленной связи. Шина I2C состоит из трех проводов: SDA — данные, SCL — часы и логическое «высокое» напряжение подтяжки постоянного тока. Для DDC логическое «высокое» напряжение указано равным +5 В.

Обмен данными EDID обычно происходит при запуске источника видео. Спецификации DDC определяют подключение источника питания +5 В для подачи питания на схему EDID дисплея, чтобы связь могла быть включена, даже если дисплей выключен. При запуске источник видео отправит запрос EDID через DDC.Спецификации EDID/DDC поддерживают обнаружение «горячего» подключения, поэтому информация EDID также может обмениваться при каждом повторном подключении дисплея к источнику видео. Обнаружение горячего подключения не поддерживается для VGA, но поддерживается в цифровых интерфейсах, включая DVI, HDMI и DisplayPort. Для этих интерфейсов устройство отображения будет подавать напряжение на контакт HPD — Hot Plug Detect, чтобы сигнализировать устройству-источнику видео о том, что оно подключено. Отсутствие напряжения на выводе HPD указывает на отключение. Устройство-источник видеосигнала отслеживает напряжение на контакте HPD и инициирует запросы EDID при обнаружении входящего напряжения.

Проблемы с EDID

Устройства отображения могут иметь различные уровни реализации EDID, а в некоторых случаях они могут вообще не иметь информации EDID. Такие несоответствия могут вызвать проблемы в работе, начиная от проблем с чрезмерным сканированием и разрешением и заканчивая тем, что устройство отображения вообще не отображает исходный контент.


Рис. 1. Проблемы с EDID могут привести к потере изображения при выборе нового источника.

Ниже приведены примеры некоторых потенциальных проблем со связью EDID, а также возможные причины:

Проблема
На дисплее нет изображения.
Возможная причина

  • Исходное устройство, например видеокарта ПК или ноутбук, не может считать информацию EDID с дисплея. В результате в некоторых случаях ПК не будет выводить видеосигнал.

Проблема
Дисплей теряет изображение при выборе нового источника.
Возможная причина

  • Это обычное явление для источников VGA из-за отсутствия функции обнаружения горячего подключения.
  • Хотя обнаружение горячего подключения поддерживается для DVI, HDMI и DisplayPort, проблемы со связью EDID могут возникать из-за несоответствий в реализации сигнализации HPD между устройствами разных производителей. Это часто становится проблемой для профессиональной интеграции, поскольку возможность переключения цифровых видеосигналов является необходимостью.


Рисунок 2. Разрешение источника не соответствует разрешению дисплея, что приводит к нечеткому искаженному изображению.

Проблема
Изображение отображается, но исходное разрешение не соответствует разрешению дисплея.
Возможная причина

  • ПК не может прочитать информацию EDID, поэтому по умолчанию используется стандартное разрешение, например 640x480. Если впоследствии пользователь попытается вручную установить разрешение в соответствии с разрешением экрана, некоторые драйверы видеокарты могут установить более низкое разрешение по умолчанию и создать рабочий стол с прокруткой/панорамированием без фактического изменения разрешения видео.
  • ПК может считывать информацию EDID, но графическая карта ограничивает выходное разрешение до XGA 1024x768, разрешение, которое может поддерживать большинство дисплеев, обеспечивая пригодное для использования изображение и снижая вероятность того, что изображение не будет отображаться. Если это не соответствует собственному разрешению дисплея, шрифты, скорее всего, будут выглядеть ненормально большими, маленькими или нечеткими.
  • ПК подключен к нескольким дисплеям с разными исходными разрешениями. Поскольку он может считывать EDID только с одного дисплея, выходное разрешение будет несовместимо по разрешению со всеми другими дисплеями, что приведет к менее чем оптимальному качеству изображения или вообще к отсутствию изображения. Эта проблема часто возникает в профессиональных системах, когда видеосигналы необходимо распределять или направлять на несколько дисплеев.


Программное обеспечение Extron EDID Manager позволяет считывать EDID дисплея, помогая при устранении неполадок, связанных со связью EDID с источником.

Инструменты EDID


Эмуляторы Extron EDID 101D и EDID 101V с EDID Minder®

Решения EDID

AV-системы обычно состоят из нескольких удаленных дисплеев и часто включают в себя несколько устройств-источников. Важно понимать, что это потенциально может привести к проблемам, связанным с EDID. Необходимость коммутировать, распределять и направлять сигналы от источников к дисплеям представляет собой серьезную проблему с точки зрения обеспечения надлежащей связи EDID и, следовательно, надежной работы системы.


Рисунок 3. Коммуникации EDID Minder®

Например, системы, использующие распределение на основе RGBHV, не имеют средств передачи информации EDID с дисплея на источник. Это может стать проблемой при проектировании систем, в которых ноутбуки и компьютеры, предназначенные для просмотра EDID, подключены к системе.Поскольку информация EDID не предоставляется этим устройствам, могут возникнуть некоторые из вышеупомянутых проблем со связью EDID.

Продукты Extron включают в себя функции, помогающие предотвращать или устранять многие из них за счет надлежащего управления обменом данными EDID между источниками и дисплеями в AV-системах. Эти функции обеспечивают автоматическое и непрерывное управление EDID с подключенными исходными устройствами, обеспечивая правильное включение питания и надежный вывод контента.

Эмуляция EDID — это функция многих продуктов Extron DVI и HDMI, включая коммутаторы, усилители-распределители и матричные коммутаторы. Он поддерживает постоянную связь EDID с исходными устройствами, предоставляя предварительно сохраненную информацию EDID для различных разрешений сигнала. Пользователь может выбрать желаемое разрешение сигнала, после чего соответствующий блок EDID передается на все подключенные устройства-источники. Эта информация EDID постоянно доступна источникам, даже в коммутационном приложении, где входы регулярно выбираются и отменяются. Выходные данные источников должны соответствовать собственному разрешению предполагаемого устройства отображения.

EDID Minder® — это передовая эксклюзивная технология Extron для управления EDID. Он включает в себя эмуляцию EDID, но также включает дополнительный уровень «интеллектуальности». Продукты Extron с EDID Minder® могут обмениваться данными с устройством отображения, а также автоматически захватывать и сохранять информацию EDID с дисплея. См. рис. 3. Полученную информацию можно затем использовать в качестве эталонного EDID для источников. EDID Minder® — это стандартная функция большинства удлинителей DVI и HDMI, коммутаторов, усилителей-распределителей и матричных коммутаторов Extron, а также продуктов, которые включают коммутацию DVI или HDMI.

Функциональная роль данного продукта в качестве усилителя-распределителя, коммутатора или матричного коммутатора определяет сложность реализации EDID Minder®. Среды матричной коммутации представляют собой наиболее сложную ситуацию управления EDID, поскольку для нескольких входов и выходов требуется одновременная связь EDID. Дисплеи, подключенные к выходам, скорее всего, будут разных моделей и родных разрешений. Информация EDID между ними отличается и должна быть передана на исходные устройства. Надлежащее управление EDID в системе имеет решающее значение для последовательной и надежной работы.


Матричный коммутатор Extron DXP 88 DVI Pro 8x8 DVI с EDID Minder®

Матричные коммутаторы Extron HDMI и DVI с EDID Minder® достигают этого за счет управления коммуникациями EDID для каждой связи ввода/вывода. EDID Minder® сначала анализирует EDID для всех дисплеев, подключенных к системе, применяет сложный алгоритм для определения общего разрешения, частоты обновления и цветового пространства, а затем использует протокол EDID для настройки источников ввода. Эта мощная удобная функция упрощает настройку системы для интегратора, помогает обеспечить последовательное и надежное отображение изображений и делает работу системы практически прозрачной для конечного пользователя.

Samsung Display разрабатывает новую технологию камеры под панелью, которую Apple планирует использовать, чтобы скрыть Face ID под дисплеем в моделях следующего года с предварительным названием «iPhone 15 Pro», согласно источникам, цитируемым корейским веб-сайтом The Elec< /эм>.


Хотя слухи предполагают, что модели «iPhone 14 Pro» этого года будут иметь как «дырокол», так и вырез в форме таблетки для передней камеры и компонентов Face ID соответственно, в сегодняшнем отчете утверждается, что Apple планирует, что в моделях iPhone 15 Pro будет только отверстие для фронтальной камеры, а Face ID будет скрыт под дисплеем.

Согласно отчету, технология Samsung сделает датчики Face ID невидимыми для невооруженного глаза, подобно скрытой под дисплеем камере смартфона Galaxy Z Fold3. В Fold3 плотность пикселей на камере под дисплеем ниже, чем на остальной части дисплея, что позволяет свету достигать камеры, но это приводит к тому, что камера делает фотографии относительно низкого качества.

Пока неизвестно, будет ли версия Face ID с нижним дисплеем такой же эффективной или безопасной, как существующая система в вырезе, или будут ли какие-либо другие компромиссы. Говорят, что Samsung сотрудничает с канадской OTI Lumionics для разработки этой технологии.

В версии отчета на корейском языке The Elec сообщается, что Samsung сначала планирует применить эту технологию в своем так называемом Galaxy Z Fold5 в следующем году, если разработка будет завершена по графику, а затем на iPhone 15 Pro и iPhone 15 Pro Max.

Это далеко не первый случай, когда в iPhone ходят слухи о том, что Face ID скрывается под дисплеем.В исследовательской записке от апреля 2021 года авторитетный аналитик Минг-Чи Куо сказал, что он ожидает, что Apple примет Face ID под дисплеем по крайней мере для одной новой модели iPhone, выпущенной в 2023 году, но в то время он не предоставил никаких дополнительных подробностей. Консультант по индустрии дисплеев Росс Янг также заявил, что Face ID не будет перемещен под дисплей как минимум до 2023 года.

Читайте также: