banner
Дом / Новости / DisplayPort: под капотом
Новости

DisplayPort: под капотом

Jun 15, 2023Jun 15, 2023

В прошлый раз мы рассмотрели все, что делает DisplayPort уникальным для пользователей. А как насчет того, что делает его уникальным для хакеров? Давайте рассмотрим все способы, которыми DisplayPort может помочь вам в ваших современных приключениях в сфере технологий.

С появлением DisplayPort шины I2C, которую мы всегда видели в комплекте с VGA, DVI и HDMI, больше нет – ее заменила шина AUX. AUX представляет собой двунаправленную дифференциальную пару с частотой 1 МГц – слишком сложную для дешевого логического анализатора, хотя, возможно, с этим можно поспорить с PIO RP2040. Если отбросить мысли о хакерстве, это прозрачная замена I2C, поэтому программное обеспечение не нужно переписывать — например, оно обычно выполняет сквозную передачу устройства I2C через AUX, так что данные EDID по-прежнему могут храниться в отдельной микросхеме EEPROM на мониторе. или ЖК-панель eDP.

AUX — это не просто дифференциальная шина, это скорее псевдодифференциальная шина, как USB2 — например, AUX_P и AUX_N используются отдельно, с комбинацией подтягивающих и понижающих резисторов 1 МОм и 100 кОм, сигнализирующих о различных состояниях физического соединения — например, Повышение напряжения на AUX+ и понижение напряжения на AUX- означает, что внешнее устройство подключено. Если вы хотите узнать, какая комбинация резисторов что означает, вы можете найти это в спецификации DisplayPort, которая не распространяется открыто, но ее также несложно найти.

Кроме того, обучение каналу DisplayPort происходит через AUX, и для облегчения этого часть внешней памяти контроллера DisplayPort обычно предоставляется через канал AUX с помощью механизма, называемого DPCD. Если вы немного покопаетесь, используя «DPCD» в качестве ключевого слова, вы можете легко добраться до деталей нижнего уровня вашего соединения DisplayPort. Часть карты памяти DPCD является статической, а некоторые части представляют собой FIFO, в которые или из которых можно направлять данные. В Интернете можно найти множество документов, описывающих структуру DPCD. А пока вот фрагмент Bash, который работает с графическими драйверами Linux для AMD и Intel и покажет вам первые 16 байтов DPCD:

# sudo dd if=/dev/drm_dp_aux0 bs=1 Skip=256 count=16 |xxd00000000: 0084 0000 0000 0000 0108 0000 0000 0000 ................[...]

В частности, 4-й полубайт (цифра) здесь описывает количество полос для установленного канала DisplayPort — как вы можете видеть, мой ноутбук использует четырехполосный канал. Кроме того, возможно, потребуется настроить путь /dev/drm_dp_aux0 для вашего устройства. Если вы когда-нибудь захотите отладить канал DP, прямой доступ к пространству памяти DPCD, подобный этому, может вам очень помочь! А пока давайте перейдем к другим практическим аспектам.

Что делать, если у вас есть под рукой дисплей eDP и вы хотите повторно использовать его в проекте? Во-первых, вам нужно узнать распиновку. Для дисплеев ноутбуков распиновка панели eDP достаточно стандартизирована: имеется три распиновки: одна 30-контактная, 2-полосная, одна 40-контактная, 2-полосная с дополнительными контактами USB и I2C для подключения сенсорного экрана, и одна 40-контактная, 2-полосная. контактный разъем на 4 линии и без поддержки сенсорного экрана; Более подробную информацию об этих распиновках можно посмотреть здесь. Существуют и другие распиновки, но они редки — мой друг пока нашел один дисплей в планшете Wacom, который использует 30-контактную распиновку, но переворачивает контакты, так что контакт 1 сопоставлен с контактом 30 разъема и так далее. ; к сожалению, это привело к появлению волшебного дыма. Тем не менее, это случается редко, и быстрое наблюдение за трассировкой платы или даже проверка мультиметром избавят вас от таких проблем, если вы не уверены. Кроме того, техническое описание панели ответит на все ваши вопросы, если не на все.

Если у вас 30-контактная распиновка, вам повезло — существует множество плат драйверов с одинаковым оборудованием и прошивкой, адаптированной для панели; Существуют также универсальные платы, которые, как правило, хорошо работают с панелями 1920 x 1080 — самого популярного разрешения для экранов ноутбуков за последние пять лет. Однако похоже, что эти платы могут использовать определенные ярлыки, когда дело доходит до управления ссылками DisplayPort – независимо от того, предполагают ли они параметры обучения ссылок панели, для которой они запрограммированы, или, возможно, это формат пикселей, но мой опыт показал – если вы можете взять плату, на которой указано, что ее можно запрограммировать для вашей конкретной панели, подумайте именно об этом; в противном случае он может не запуститься, или вы можете увидеть визуальные интерфейсы или странное мерцание. С другой стороны, когда я занялся повторным использованием дисплеев ноутбуков, я нашел несколько плат, на которых разрешение панели DP можно установить с помощью перемычек, и они зарекомендовали себя более чем достаточно универсальными, так что, если вы можете Приобретя одну из заранее запрограммированных плат, вы можете быть вознаграждены большей совместимостью, чем вы ожидаете от любых ваших дальнейших приключений с eDP.