DisplayPort AUX перехватывают физически: два M-LVDS-трансивера и PIO в RP2040
Служебный канал DisplayPort AUX удалось физически снять с линии парой M-LVDS-трансиверов и PIO микроконтроллера RP2040. Проект HardwareDDC нацелен на управление монитором по MCCS там, где команды яркости и выбора входа доступны по HDMI, но отсутствуют на DisplayPort. Пока захват ограничен повторяемыми битовыми фрагментами, а ключевой вопрос состоит в достоверном Manchester-декодировании и прозрачной передаче AUX.
Проект HardwareDDC собрал аппаратную врезку в канал DisplayPort AUX на базе RP2040 и двух полудуплексных трансиверов SN65MLVD200A/AD. Целью стало управление монитором по MCCS, включая яркость и переключение входа, в конфигурациях, где устройство принимает такие команды через HDMI, но не отвечает на них по DisplayPort.
Видеотракт Main Link в этой архитектуре не декодируется. До четырёх дифференциальных пар проходят через плату сквозным соединением, а активная часть включена в AUX и линию Hot Plug Detect. Такое разделение принципиально для практической реализации: AUX обслуживает обнаружение дисплея, чтение DPCD и туннелированный I²C-обмен с EDID, при этом его скорость составляет около 1 Мбит/с. Основной видеоканал требует совсем другого уровня СВЧ-трассировки, измерений и аппаратуры.
На каждой стороне AUX установлен отдельный SN65MLVD200A/AD: один обращён к источнику DisplayPort, второй — к монитору. Это M-LVDS-компонент с одним передатчиком и одним приёмником, рассчитанный на полудуплексную шину и паспортную сигнализацию до 100 Мбит/с. Его применение не делает тракт автоматически совместимым с DisplayPort AUX. Канал использует Manchester-II, AC-связь и строго ограниченные уровни common-mode и амплитуды, поэтому работоспособность врезки определяется всей аналоговой цепью, режимами включения передатчиков и качеством фронтов.
Захват прототипа реализован в PIO RP2040 на MicroPython. Четыре state machine обслуживают обмен, две из них семплируют AUX на 8 МГц и выдают 32-битные фрагменты, которые затем форматируют ядра ARM. В опубликованных захватах видны повторяемые последовательности, похожие на начальный диалог источника с монитором. Предполагается, что это чтение DPCD, за которым следует I²C-over-AUX доступ к EDID. Такая интерпретация пока остаётся рабочей гипотезой: транзакции ещё не подтверждены декодером Manchester, проверкой структуры пакетов и сравнением с эталонным логическим анализатором.
Отдельная инженерная проблема возникла на проходе Main Link. Для четырёхслойной платы толщиной 0.6 мм был рассчитан дифференциальный импеданс 100 Ω ±10%. Препрег толщиной 0.0925 мм приблизил сигнальный слой к сплошной земле, однако тонкая плата оказалась склонна к короблению при пайке и механически уязвима возле крупного разъёма DisplayPort. Расчёт импеданса ещё не заменён измерениями TDR, S-параметрами, eye diagram или BER-тестом в реальном видеорежиме, поэтому качество высокоскоростного прохода не подтверждено.
Следующий этап работы — стабильное пассивное чтение AUX с независимой валидацией, затем разбор EDID и только после этого эмуляция либо модификация I²C-over-AUX и MCCS-команд. Уже существующий независимый проект DP_aux_emulator показывает, что топология с RP2040 и двумя SN65MLVD200A может дойти до работающей платы, но для HardwareDDC запись в канал пока не продемонстрирована.