Разработка волоконно-оптического удлинителя HDMI на 300 метров. Отказ от обратного канала (передача данных по одному волоконно-оптическому кабелю). Клонирование EDID с монитора.
Стандарт HDMI широко применяется во многих сферах, где требуется вывод изображения на экран. Лично мне удавалось передавать сигнал по HDMI кабелю на расстояние до 10 метров (больше просто не требовалось). Думаю, что без потери качества, можно передать картинку на расстояние до 30-40м. Основные минусы в случае протяжки такого кабеля – это его диаметр и размер, непосредственно, разъемов. Самый простой способ исключить кабель – это использовать беспроводной удлинитель, думаю получится достигнуть 100-150 метров, но точно не скажу. К сожалению, не все объекты, по тем или иным причинам, разрешают использование беспроводных сетей. А если нужно еще дальше?
Рис.1. Разъем HDMI кабеля и оптики
Конечно, оптика, наверное, не лучший вариант для передачи видео, но при использовании стационарных ПК и мониторов – очень даже ничего. Первый тезис – это диаметр оптического кабеля (в моем случае, это 2-3мм) и диаметр коннектора волоконно-оптического кабеля. Второе – это, безусловно, расстояние. Забегая вперед, скажу, что тесты проводились на кабеле 300м, диаметр (внешний) – 3мм.
Элементная база
При проработке элементной базы, выбор, неожиданно, пал на китайскую компанию SiFotonics, которая специализируется на такого рода оборудовании. Для начала, мы изучили их продукцию и получили две отладки, которые соединили трехсотметровым оптическим кабелем и убедились, что все работает без нареканий. В их ассортименте есть и SFP оптические приемники/передатчики (ROSA/TOSA), сериалайзеры/десериалайзеры, драйверы и т.д.
Принцип работы
Для соединения и работы устройств необходимо подключить два оптических кабеля и подать питания (кабель microUSB). Если приводить аналогию с обычным кабелем HDMI, в котором для обмена таблицей EDID есть I2C, то тут все тоже самое – один канал для передачи данных, второй – для передачи EDID от монитора к видеокарте. Данные передаются со скоростью 10Gbps. Отрывая кабель обратного канала, картинка неизменно пропадает. В этот момент закрались некоторые сомнения, а не передаются ли какие-нибудь служебные данные или метки синхронизации в обратном канале, или может устройства мониторят подключения друг к другу…
Рис.2. Состав модулей
Первая итерация платы, она же макет, получилась размерами 20Х45мм. С разъемом питания «вбок», чтобы было удобнее разводить шины питания в полигонах. Итого получилось 4 слоя. Чем плоха данная конфигурация печатной платы, я напишу позже. Хитрые разработчики на отладке использовали пассив размерами 0201, что мне делать категорически не хотелось, поэтому я использовал 0402 и под чипом каша из конденсаторов.
Рис.3. 3D модель макета платы модуля источника
Как я писал выше, моей задачей было не только сделать пару с рабочим расстоянием 300 метров, но еще и убрать обратный канал оптики. Еще на этапе проработки мы решили не ввязываться в доработку китайского софта (хотя, нам любезно были предоставлены все исходники), так как, во-первых, это куча строк непонятного кода в непонятном компиляторе, во-вторых, SiFotonics может поставлять прошитые чипы, что очень удобно, так как прошивать устройства в рамках производства весьма не просто. Чтобы читатель не подумал, что я преувеличиваю, говоря о сложностях, я приведу фото стенда для программирования.
Рис.4. Стенд для программирования и диагностики
Да-да, как вы уже, наверное, догадались, контакты JTAG для программирования выведены на контакты microUSB, и на некоторые контакты HDMI, которые раньше были GND. Сразу оговорюсь, что на качество работы это не повлияло. Итак, стенд. Чтобы запрограммировать чип, нужно сначала собрать одну схему стенда и перевести микросхему в режим программирования с помощью специализированного ПО. Далее необходимо собрать другую схему и с помощью другого ПО прошить плату. После этого она автоматически переходит в рабочий режим.
В общем, как мне кажется, это не целесообразно даже на 1000 штуках.
Вернемся к обратному каналу. Для хранения EDID таблиц нам необходима EEPROM, и понадобится налету менять ее адрес. Взял N24C02UDTG в миниатюрном корпусе US-8. Для ее программирования использую микроконтроллер STM32F031G4U6, тоже в самом маленьком корпусе, который можно найти в свободном доступе — UFQFPN-28. Также я взял свитч питания TPS27081ADDCR. И вот что у меня получилось:
Рис.5. Схема реализации клонирования EDID
Идея в следующем. Эта схема реализуется на передающем модуле (тот, что подключается к ПК). Для клонирования EDID монитора устройство подключается к монитору. По умолчанию адрес EEPROM на нашем модуле не должен совпадать с адресом EEPROM в мониторе (во время чтения), то есть он может быть любым другим, я, например, сделал ножку A0 управляемой. В момент подключения к монитору питание на EEPROM подается, а нога А0 подтянута к логическому «0» резистором. На шине i2c висят два EEPROM с одинаковыми адресами, но это не критично, так как мы с ними еще не работаем. В моей схеме есть еще кнопка и светодиод индикации питания/прошивки EDID/ошибок. Кратковременное нажатие кнопки приводит к смене адреса и разрешению микроконтроллеру начинать чтение/запись EDID. Ресетим EEPROM питанием (на всякий случай) когда получили сигнал от кнопки, читаем EDID монитора и сразу пишем его в нашу микросхему. Мигаем 3 раза светодиодом и отключаем питание EEPROM. Чтение/запись происходит мгновенно, поэтому для мигания сделана принудительная задержка, чтобы пользователь понимал, что что-то происходит. То есть мигать начинаем тогда, когда уже можно отпускать. Если что-то не так, то не зажигаем светодиод.
Далее подключаем модуль к ПК и сразу видим новый монитор в настройках. Задача решена.
Для программирования микроконтроллера вывел SWD шину.
Рис.6. Обратная сторона платы модуля
Особенности
После всей проделанной работы с клонированием EDID я убрал обратный оптический канал, и все работало без нареканий. При данных опытах питание происходило от USB ПК. Во время загрузки компьютер (во всяком случае мой) на мгновение выключает питание USB и картинка с BIOS мигает на мониторе – это не критично. Затем я выпаял модули обратного канала с устройств и после этого мигания картинка перестала восстанавливаться. И происходило это именно из-за отсутствия модуля TOSA на мониторном устройстве. Я попытался эмулировать наличие лазера, но все безуспешно. Я почти уверен, что эту проблему можно решить прошивкой, но мы решили в нее не лезть. Чудо произошло, когда я подключил оба устройства (приемник и передатчик) к блокам питания (как, кстати, было указано в ТЗ). Картинка перестала моргать, а соответственно и пропадать. Если во время работы передергивать питания устройств, то картинка восстанавливается без проблем.
Рис.7. Схема включения передающего модуля (лазера)
Теперь вернемся к конфигурации печатной платы и разъему питания «вбок». Эта реализация была изначально неудобна и подходила только для макета. В релизном устройстве я уменьшил ширину платы до 16,3мм и вынес разъем питания на место оптического модуля обратного канала – это позволит включить несколько устройств в одну видеокарту. В противном случае мне мешал разъем питания и плата была очень широкой.
Рис.8. Узкие платы приемника и передатчика
Тут, конечно, было много переразводки и перестановок компонентов. Полигоны питания были переделаны полностью для оптимизации под эти размеры и переноса разъема microUSB. Как можно догадаться, корпуса для обоих устройств идентичны, поэтому конфигурация платы, разъемы и оптический модуль расположены одинаково. Корпус фрезеруется из алюминия и является теплоотводом, для процессора и драйвера. На внутренней стороне фрезеруются выступы под эти компоненты, поэтому они тоже располагаются одинаково.
Заключение
На данный момент спаяно четыре пары устройств, проводятся тесты на длинном кабеле на разных мониторах и ТВ. Нареканий по работе нет никаких. Проверяем только на fullHD и ниже.
Спасибо за внимание и до скорых встреч!
Комментарии (94)
AVKinc
30.10.2019 14:57На али есть удлинители через витую пару. Стоит около двух тысяч. 120 метров вроде как могут.
spesso
30.10.2019 15:38«Удлинители по витой паре» есть как минимум двух видов, пассивные, там всё плохо-плохо и активные, там получше но хромает качество изготовления. В активных часто используют 1Gb Ethernet как среду передачи видео.
mikluha
30.10.2019 17:24Те которые с Ethernet — там скорее всего не 1G а всего 100Base-Tx и там будет h.264 или mjpeg. Для нежатого потока 1G очень мало, а для сжатого 100Mbit достаточно.
spesso
30.10.2019 20:17Те что использовал я имеют 1G, и имеют некоторые плюшки в виде нескольких приёмников на один передатчик.
homeles
30.10.2019 19:28Советую разделить удлинители на 2 группы — а) удлинители по физической витой паре (и это не Ethernet) и б) удлинители по Ethernet…
Удлинители по витой паре — просто пользуются свойствами кабеля, однако гоняют внутри нее свои собственные уровни, форматы. А вот удлинители по Ethernet — таки используют стандарты для локальных сетей и попутно (а иначе нельзя) жмут передаваемый видеосигнал с потерей качества и задержкой.
Dark_Purple
30.10.2019 18:13Нужно ли NDA доя получения отладок и документации?
the_bat Автор
30.10.2019 18:23Да. Я как раз хотел привести пару скринов из даташита, но на них на всех конфиденшенал.
SignallerK
30.10.2019 19:38+1А в чем сложность использовать 2 оптических кабеля?
Вроде ж не такая редкая штука ( на али первый попавшийся лот $300 — 300 м).
Ну или как вариант использовать 1 оптический кабель но с разделением приемника/передатчика по волне — опять же есть промышленные решения.
Или ваше решение получилось дешевле благоря экономии одного волокна?the_bat Автор
30.10.2019 20:00+1Во-первых, нет смысла использовать два кабеля, если можно один. Во-вторых, (понимаю что это звучит нелепо) заказчик боится /внимание(!)/ слива данных (видео) с дисплея по i2c по обратному каналу.
SignallerK
30.10.2019 22:27+1Эм, типа ПК или что-там транслирует, и потом обратно забирает?
Или они боятся, что кто-то оторвет обратку и скачает видео?
Вопросы риторические. Как говориться хозяин барин, теперь понятно почему такое решение.
Спасибо.
safari2012
31.10.2019 17:26Вы сейчас NDA не нарушили, случайно? :)
the_bat Автор
31.10.2019 17:37Нет, я не раскрыл схему, не продал разработку, ни слил софт и даташиты)
ovel1
31.10.2019 09:56Если смотреть в рамках существующей скс в пределах здания например, то если просто не хватает волокон это решение имеет смысл, потому что проложить новые волокна может стоить сильно дороже и дольше.
mrHobbY
30.10.2019 19:50Atlona делает что-то похожее, но только с cat6 (<100m). Плюс цены там кусаются.
atlona.com/extenders-catalogm1skam
30.10.2019 22:08+1Много кто делает, например 10gtek. Комплект из приемника и передатчика + 2 SPF+, обойдутся в 200$.
У автора классное решение в плане размеров, это действительно круто!
Жаль в статье нет описания, чем не подошли решения которые есть на рынке.the_bat Автор
31.10.2019 09:43Спасибо!
Все просто, заказчик хочет сделать свое решение под своей торговой маркой, получить сертификат и продавать. Думаю как-то так.
Dj_Art
30.10.2019 20:45+1А можно было взять питание с самого HDMI?
the_bat Автор
30.10.2019 20:52+1По спецификации, если я не ошибаюсь, 50мА. Но я не припоминаю защиту на видяхе и мониторе. Завтра измерю потребление, посмотрим)
Dj_Art
30.10.2019 21:07Я могу ошибаться, но кажется, хромкасты спокойно запитываются от некоторых телевизоров. Если схема устройства позволяет с незначитильными изменениями забирать ток с HDMI, то это минус лишние провода для поддерживаемых устройств, а коль таких устройств, как я понял, может понадобится много на один компьютер, то вообще профитно. Но это, конечно, если так можно сделать.
the_bat Автор
31.10.2019 09:44Если Вы говорите про классический хромкаст от гугла, то он питается от USB.
mig126
31.10.2019 14:15И то на многих телезирорах ему не хватает питания и оттуда периодические перезагрузки. Т.к. они не в силах выдать на порт более 0.5а.
У моего хромкаста к примеру родной бп идёт на 1 ампер.
serf
30.10.2019 22:25Существуют готовые оптические кабели Thunderbolt 3, вроде до 100 метров тянут на полной скорости (40 Gbps), дальше видимо скорость будет падать, не вникал. Так вот через такой проводок можно все данные сразу передать, а не только картинку/звук. По сути можно изолировать компьютер в кладовке/подвале, провести такой провод к рабочему месту, там поставить хаб с разными портами и наслаждаться тишиной и отсутствием ящика в комнате.
cahbe
30.10.2019 23:26А чем РДП и тонкий клиент хуже? Если речь о «дизинерах», которым критична цветопередача, кодировка сигнала так или иначе всё равно наложит 2-3 миллисекунды задержки, что для таких извратов критично.
DaemonGloom
31.10.2019 06:26РДП и тонкий клиент совершенно не годятся для современных игр, например. Как в плане качества графики, так и в плане задержки. Бонусом — ломается поддержка геймпадов, софт для мышей|клавиатур и т.д.
kozar
31.10.2019 00:02+1Готовые оптические кабели до 100м. Покупал 10 м — работают, довольно тонкие и гибкие.
www.aliexpress.com/item/32952707471.html?spm=a2g0s.9042311.0.0.18264c4dIfTC51
Temtaime
31.10.2019 00:42А по microusb оно прошиваться не будет? Почему прицепили stm32, возможностей главного контроллера не хватило?
JerleShannara
31.10.2019 06:09По опыту работы с китайскими чипами с какими-либо контроллерами внутри — пока рефренсная прошивка всё хорошо, а дальше хоть вешайся: документация просто отвратительная (и хорошо, если в ней хоть распиновка и назначение пинов будет по английский написано), errata — ну она есть, иногда её надо выбивать, а далее см. про документацию, плюс можно между делом открыть пару новых багов. Среда разработки — клёво, если там gcc+makefile или аналоги в итоге можно выцепить, часто это IDE со своим компилятором (и бывает, что это на китайском опять). И в таком случае бывает проще и надежнее вставить костыли и приделать велосипед.
Nick_Shl
31.10.2019 01:18+2Непонятно зачем два кабеля. Есть же возможность передачи в обе стороны по одному — используя лазеры с разной длинной волны. Или таких доступных приемо-передатчиков не нашлось?
И в обе стороны может быть нужно из-за CEC, ARC или еще чего-нибудь такого.
maxivanuk
31.10.2019 07:43Мы используем оптические кабели DVI уже готовые, фирма Kramer их желает, очень удачные. И есть такие же удлинители от фирмы GEFEN, тоже очень рекомендую, они по многомодовому волокну дают до 1000 футов (300метров), как и у вас… Используется также одно волокно… У нас ещё используются DVI коммутаторы, там можно принудительно поднимать питание на входах и выходах — очень удобно записывать такие удлинители и кабели, не нужно городить гирлянду из блоков питания.
YouMom
31.10.2019 09:38Добрый день, раз уж тут такая тема, никто не может подсказать ссылок на покупку устройства для передачи usb3.0 по 4х парной витой паре?
pavelvveselkov
31.10.2019 09:39Привет. Скажу не как разраб, но как телевизионщик. Идея хорошая, но давно реализованная в разных вариациях. Blackmagic, AJA, Ross… Миллион. Выбирай любой — hdmi to fiber, sdi to fiber… С интнркомом, без. Расстояние работы до 20 км. Регулярно стреляю по оптике видеосигнал на 16км. Расстояния до 60 метров, я прохожу SDI кабелем, который оконечиваю одним или двумя конверторами. Но я о другом. Сейчас все больше в обиход входит стандарт NDI. Сигнал гоняется по обычной витухе. Расстояние работы стандартные 100 метров при CAT 6. Для усиления обычный свитч… Поддерживает стандарт все больше софтин. Сони выпустила камеры с поддержкой протокола. Есть конвертора BirdDog, например.
the_orange
31.10.2019 14:15Blackmagic, AJA, Ross… — А вопросы цены этих устройств каков? И как сильно влияет возможности по расстоянию передачи на конечную цену девайса?
Если здесь автор только подрядчик для заказчика, который придумывает нечто подобное, но сильно дешевле — заказчик имеет цель завоевать рынок за счет объема поставок по выгодной цене.
Ogiv
31.10.2019 09:39Так вроде же готовые есть в продаже, оптический HDMI-кабель, например: ru.aliexpress.com/item/32959990425.html
есть 100-200 и более метров. Дома такой использую, разумеется, меньшей длины, но 4k-HDR на 20 метров тянет спокойно (обычный, не оптический, не тянул).the_bat Автор
31.10.2019 09:40Конечно есть. Я же не для себя делаю. Если бы мне нужно было протянуть кабель для одного устройства, я бы купил на али.
endoftime
31.10.2019 09:47А не подскажите в интересах кого вы создаёте видеодиод?
the_bat Автор
31.10.2019 09:48Я не уверен что могу это сказать.
JerleShannara
31.10.2019 18:42Удаление обратного канала уже многое за вас сказало =)
endoftime
01.11.2019 13:53В смысле? Например официально такие (аналогичные) устройства делает ЦБИ с 2 сертификатами конфиденциалка сертификат ФСТЭК (устройство для органов госвласти и компаний работающих с конфиденциальной информацией) и гостайна — сертификат ФСБ (для всех соответственно заинтересованных).
JerleShannara
01.11.2019 15:52Собственно вы сейчас и назвали формат заказчиков такой техники.
endoftime
01.11.2019 21:47Э… У вас видимо мания преследования, как я вижу… Любая организация которая работает с конфиденциалкой, сертифицируется по ФСТЭК…
А это в том числе ЧАСТНЫЕ компании (и с иностранным капиталом)…
Ясно что данное устройство не для дома «фильмца под пивас глянуть»…
udbv
31.10.2019 09:48А зачем снова придумывать велосипед если есть готовое решение?
http://www.tesla-smart.com/Products?_l=en&product_id=224
HiMem-74
31.10.2019 10:09Думаю, что без потери качества, можно передать картинку на расстояние до 30-40м.
Ах если бы! На практике 10 метров HDMI обычно работает, до 15 метров работает только на хорошем кабеле, дальше начинается лотерея с низкой вероятностью успеха.
К разработчикам: Скажите, the_bat, чем обусловлен велосипед с лазерами, вместо использования стандартного модуля SFP+ WDM (одноволоконного)?
И еще — думаю, что длинная плата, воткнутая в системник, с висящим на торце кабелем, даже легким оптическим, будет создавать нагрузки на разьем видеокарты или материнской платы + риск сломать шеловким движениемшвабрыноги. Более оправданным видится использование разъема HDMI-female и короткий промежуточный кабель.DaemonGloom
31.10.2019 10:46К разработчикам: Скажите, the_bat, чем обусловлен велосипед с лазерами, вместо использования стандартного модуля SFP+ WDM (одноволоконного)?
Подскажите, а могут стандартные sfp модули запускать не ethernet, а иные протоколы? В этом решении, как я понял, использовали какой-то свой.HiMem-74
31.10.2019 12:08-1Подскажите, а могут стандартные sfp модули запускать не ethernet, а иные протоколы?
Не делал этого сам, не было таких задач, но то, что SFP модули «шьются», а так же существование SFP для Fibre-channel и пр., настойчиво намекает, что протокол задаётся прошивкой.romanetz_omsk
31.10.2019 13:36SFP работает с сигналом lvpecl от физики, так что — не факт, внутри него только драйвер для лазера/светодиода и tia для фотодиода. Память там постольку-поскольку.
insekt
01.11.2019 07:20+1Могут. Для модуля в целом не важно какой тип данных вы гоняете.
В частности, подавляющее большинство модулей многоскоростные и могу предать данные от сотен Мбит/с до нескольких Гбит/с, один и тот же модуль может быть использован для SDH, Ethernet, Fiber channel.
the_bat Автор
31.10.2019 10:48+1Главным образом размеры SFP+ WDM. По ТЗ не должно быть никаких кабелей, переходных коробок и т.д. Только два модуля, в мониторе и ПК, соединенные между собой оптикой.
JerleShannara
31.10.2019 18:45Года два назад видел специальные готовые SFP+ модули, которым надо было только подать питание и напрямую подключить HDMI, ну и бонусом был USB проброшен всё через тоже самое одно волокно.
insekt
01.11.2019 07:22+1Есть компания https://www.embrionix.com которая специализируется на передачи аудио/видео — у них большой выбор устройств в форм-факторе SFP.
Dueurh
31.10.2019 10:49Мы на работе стандартные HDMI кабели больше 10м не используем, вылезают артефакты. Для больших расстояний либо пассивные 25м оптические кабели либо HDMI-Ethernet.
safari2012
31.10.2019 17:33у меня дома от ПК до проектора лежит обычный китайский кабель HDMI 15м, за 10 лет никаких артефактов не видел.
madcatdev
01.11.2019 19:05Кстати говоря, а почему бы в качестве обратного канала не использовать то же самое волокно, по которому идет видеосигнал? В медиаконвертерах ведь это реализовано, например. Тогда не придется заморачиваться с клонированием ID, все будет работать нативно.
DoMoVoY
Тоже нужна такая штука. Тянуть под плинтусам длинный толстый 15м кабель HDMI не удобно. Оптикой было бы удобнее. На алиэкспрессе DisplayPort кабели большой длины уже оптические, но стоят многовато. Если выйдете в серию, сколько будет стоимость?
the_bat Автор
Серия будет, да. Стоимость пока не ясна, мы исполнитель.
mig126
Не только DP, но и HDMI, DVI, USB и т.д. Есть и на 300м и на 2км. И не только на али.
Продаются давно, но цена и правда дикая.
the_bat Автор
Мне встречались пары со стоимостью от 80тр до 160тр… Но это, конечно, не али.
mig126
Цены рассчитаны на бизнес, которым хочешь не хочешь, а покупать придётся. Т.к. альтернатива только аналог, который не защищён от слова совсем.
Беспроводной же вариант мало того что порой ещё дороже, как ещё и страдает потерей сигнала. Ну и подключится к такому «каналу» теоретически проще, т.к. сильно зашифровывать/жать нельзя, вырастет задержка/полезут неприемлемые артефакты.
safari2012
А каковы требования к оптическому кабелю и разъемам и почему тестируется только FullHD?