Эта статья - новый способ "разогнать" изолированный USB-порт. Здесь приведен частный пример, а так же немного дополнительной информации про скорость USB.
Если сильно постараться, то можно ужать данную статью до мема.
Общаться и с людьми бывает небезопасно - неосторожное слово и у кого-то полыхнет, сложная мысль заставит зависнуть, а упоминание матери вообще может напрочь закоротить весь обмен информацией. С цифровой электроникой почти то же самое. USB - один из самых популярных цифровых интерфейсов для подключения чего-бы-то-ни-было, и задача его обезопасить (== изолировать) возникает часто.
Практическая часть
В 2009м году миру явили ADuM4160 - USB-изолятор. Казалось бы, чего еще желать, однако, из трёх возможных скоростей USB 2.0 (1500 Кбит/c, 12 Мбит/с, 480 Мбит/с) микросхема поддерживает только две самые медленные. Обычно этого вполне достаточно, чтобы реализовывать HID-устройства, виртуальные COM-порты. Это перекрывает практически все потребности при работе с микроконтроллерами, но сегодня мы преодолеем это ограничение. Недавно (в ноябре 2021!), Texas Instruments выпустили партию инженерных образцов микросхемы ISOUSB211.
Мне повезло заполучить пару микросхем и протестировать их работоспособность. В схемотехнике я не выдумывал ничего за границами даташита и развёл небольшую платку с прицелом на имеющийся у меня на руках корпус. Я развёл собственный изолированный DC-DC преобразователь, но для того чтобы быстрее перейти к тестам я использовал старенький SBT01L-05
В качестве первого теста я скопировал туда-обратно файлы на флешку, получив ~23 МБайт/с (184 МБит/с) для чтения и ~10 МБайт/с (80 МБит/с) для записи (см. Рис. 3)
Я результатом доволен скорость High Speed взята! Ура! Спасибо за внимание! Фото поделки в сборе на рисунке 4.
Факультативная теоретическая часть
Тэкс, почему-то некоторые не расходятся... Дайте угадаю, у вас в голове сейчас что-то такое: "Так, @coolebyak, ты говорил про USB 2.0 High Speed, у которого 480 Мбит/с или 60 МБайт/c. А результаты-то у тебя на скриншотах меньше! Обман!"
Я рад, что вы остались, потому что это действительно может сбить с толку. Лаконичный ответ на этот вопрос лежит в сети уже с 2011-го. По сути, я сейчас повторю, что ответили вот в этом посте, но только переводя с английского.
USB 2.0 использует фреймы в 1 мс, а в режиме High Speed (480 Мбит/с) они делятся на 8 микрофреймов. Максимальный размер пакетов, используемых запоминающими устройствами USB, составляет 512 Байт. Согласно этому очень информативному документу теоретический максимум составляет 13 пакетов на микрофрейм. Итак, теоретическая максимальная скорость USB-накопителя 2 составляет:
1000 * 8 * 512 * 13 = 53248000 ~ = 53 МБайт/с
На практике слабым местом, как правило, является сама флешка. В качестве примера приводят временную диаграмму записи в NAND Flash (Рис. 7). Время для каждого передаваемого пакета можно разбить на три участка: 1) время для выполнения USB-передачи, 2) первичные временные затраты операционной системы (или встроенного ПО) и 3) время программирования NAND Flash.
Получается, для моей видавшей виды флешки результаты вполне достойные. Главное, что они выше 1.5 МБайт/с.
Результаты и выводы
Испытание высоким напряжением еще предстоит, пока что могу сказать лишь, что электрический разряд от шерстяного свитера микросхема выдерживает. Прототип изолятора получен и успешно испытан на флешках, камерах, внешних аудиокартах. Что очень меня радует, чем делюсь и хвастаюсь здесь. Надеюсь, Texas Instruments наладят производство и в скором времени эти микросхемы снова появятся в продаже и будут дешевле ~13$. Надеюсь, было полезно. Теперь точно Спасибо за внимание!
P.S.
Пример, как задачу изолирования USB 2.0 High Speed решить супер дорого. 2*ULPI, 2*ПЛИС, быстродействующие оптопары и не забывайте - кто-то это программировал.
P.P.S.
Прикладываю схему. На ней отсутствует разработанный мною изолированный DC-DC, т.к. я его ещё не тестировал.
Комментарии (26)
jaiprakash
27.12.2021 15:28Какой принцип работы? У нас с тексасом в своё время случилось расхождение понимания термина "гальваническая изоляция". Они посчитали, что достаточно просто конденсаторов. Из-за этого шли высокочастотные помехи и всё портили. Выкинули их микросхемы и поставили силабовские и аналоговские, смотря что доступнее. Речь о простой изоляции на несколько каналов, без заточенности на протоколы.
coolebyak Автор
27.12.2021 16:52Я не уидел в материалах упоминания о принципах работы. Можно лишь предположить, что это прокачанная версия технологии iCoupler, может придумали своё, но блюдут коммерческую тайну. Насчёт USB-изолятора могу сказать лишь то, что только конденсаторами тут никак не обойтись.
А ваш случай вызывает любопытство и негодование, можете описать вкратце? Что за микросхема? Что за задача (чуть подробнее, если можно)? Ну и самое главное, на что заменили? Хочется не наступить на те же грабли. Потому что к текущему моменту, если миросхема от TI не работала, то это были мои ошибки проектирования. Я с ходу припоминаю только один случай, когда пришлось возиться с TXB0104, но там не до конца всё чисто, т.к. работал он с покупным модулем со скудной документацией.jaiprakash
28.12.2021 07:15+1Это были ISO7231. Ноутбук с питанием - USB - FT232 - изолятор - драйвер RS485. Развязанная часть питается от изолирующего DC-DC преобразователя. В линию сыпался мусор. Заменили на ADuM1302 и Si8431.
LordCarCar
27.12.2021 17:56А вообще существует термин "гальваническая изоляция"?
coolebyak Автор
27.12.2021 18:03+2Есть такой. Это просто прямой перевод с английского. Если говорить строго поГОСТовски, то на русском языке это Гальваническая развязка.
dmitriyrudnev
27.12.2021 19:16+1Мне тоже глаз зацепило. Оказалось, что такой термин есть. Вот пример: ГОСТ Р ИСО/МЭК 9549-93 Информационная технология. Гальваническая изоляция симметричных цепей стыка
OLEGator_by
27.12.2021 21:25+1Принцип довольно простой.
первые были сделаны с помощю разделительных ескостей, но они имеют малое пробивное напряжение или очень не стабильны работе, а теперь все схемы делают на индуктивной развязке. На рынке их довольно много.
Сама схема сделана как генератор на довольно большую частоту который передаёт на индуктивность(сделанную металами верхнего уровня)
нижним уровнем металла делается приёмна катушка - связт между ними инуктивная(чаще всего неа резонансе.), детектор и далее. Да, это не обычный tx/rx, есть встроенный контроллек уоторый принемает сигнал, корректирует и конвертирует обратно в usb. И таких канала минимум 2. Они могут работать на разных частотах, поэтому междуканальная индуктивная связь. Может быь ещё 3й канал, для питания.
Эту схему можно сделать в стандартном техпроцессе(SOI или КНИ). Поэтому оптика и другое ничего не нужно. Стандартная технология. Получается все на борту, быстро и не сложно. С оптикой все сложнее. Фотоника на кртисалле не развита, внешние фотоприёмники и передатчики(лазеры), внешние - а это меделнно по умолчаию, или очень энергоёмко.
Напряжение изоляции определяется межслойным пробивным напряжением, а оно может составлять очень много. Да, в общем вот такой у них всех принцп.
VelocidadAbsurda
27.12.2021 17:22По демонстрации скорости - полезнее было бы увидеть сравнение скоростей без/с изолятором. Если он что-то режет - оно скорее всего проявится и при 20МБ/с (т.к. внутри пакета в любом случае 480мбит/с).
coolebyak Автор
27.12.2021 17:35Да, ценное замечание. Добавил, та же машина, тот же порт, тот же файл.
juramehanik
27.12.2021 21:17+2Огроменный жирный плюс за КПДВ.
Для нас еще дикий плюс нового решения, что не надо вручную как в адуме выбирать скорость со стороны девайса, ибо это та самая перемычка на изоляторах на основе adum.
У нас есть решение промышленного устройства , где у закзчика было требование гальваноизолировать ВСЕ порты устройства, даже те, что не будут выходить за пределы короба, где оно будет установлено (usb hdmi) , и если ethernet и hdmi не проблема, то вот с usb мы заранее не знаем что будет подключаться в те порты, длиный провод от KVM , или например флешка, посему на "горячей" после ADUM стороне пришлось поставить микросхему usb хаба, которая upstream порт держала всегда в full-speed. В целом это не сильно проблема, но места там для всего этого фарша было уже маловато.
man55
27.12.2021 22:46найдется чем проверить чтото более сложное, чем mass storage?
adum4160 то еще глюкалово, когда за ним стоит устройство, которое делает enumeration с задержкой, при этом не умеет управлять пинами (читай - не микроконтроллер)
coolebyak Автор
28.12.2021 07:13Я в статье написал про вебкамеру, аудиокарту. Были еще пара HID-девайов, USB-uart преобразователь на 3Мегабода (CP2102N-GQFN28), телефон на Andriod (чтобы протестировать OTG). Про enumeration с задержкой ничего сказать не могу.
dMac
28.12.2021 12:55+1Наконец-то. Уж и не думал, что доживу до дешевого решения для USB 2.0. SDR насасывает помех по USB, а плата на ПЛИСах стоит дороже самого SDR
amarao
А почему для гальванической развязки не используют физическое разделение? Например, TX/RX парочками светодиодов (лазеров)? Лично мне микросхема над гальванической развязкой выглядит как "по вот этому мостику с ножками пойдёт электричество при пробое".
Javian
Оптопары вполне физически разделены.
Возможно можно сделать и так, если габариты неважны - https://habr.com/ru/post/170985/
dMac
Так не проконает, частоты при инициализации и при работе сильно разные. Пробовал.
coolebyak Автор
Почему же, физическую разнесенность используют, например в ВОЛС. Правда есть пара нюансов.
1) Тут речь идет о USB, а USB работает не так же как UART или RS232 (судя потому что вы пишете TX/RX). В USB исползуется дифференциальная пара, т.е. логические уровни и принцип работы дифпары никак не совместим с RX/TX.
2) Да, можно разделить физически, даже есть примеры тут на Хабре, просто будет 2 пульта и 2 прёмника. Но тут снова есть нюансы, один из них - скорость передачи данных. Тут пишут, что существующие самые популярные скорости 120 бит/с и 4 бит/с, и они такие неспроста, т.к. фронт сигнала (переход из 0 в 1) в оптической системе, как в пульте от кондиционера/телевизора нарастает медленно. Но почему же в ВОЛС скорости под Гигабайты в секунду? Потому что там применяют хитрости типа модуляции и спектрального уплотнения каналов.
Ну и если бы всё было так просто, то нас бы давно завалили устройства с алиэкспресс, так же как USB-хабы))
amarao
Так полно же. USB over IP. Не очень дёшево, но в разумных пределах.
coolebyak Автор
Понятное дело, что решения есть, но даже вы пишите о том, что может остановить в применении этого решения (цена).
Не все задачи разумно решать с помощью USB over IP, а в некоторых устройсвах чётко прописывают требование изолировать прибор от внешних устройств. Такое может встретится в требованиях к медицинским приборам. А какому-нибудь аудифилу, который хочет подкючить ЦАП через изолированный USB тоже поднимать USB over IP?
Короче говоря, всему свое место, не забивать же гвозди микроскопом..
amarao
Внешним чем? ip не подразумевает "интернета".
Я хочу сказать, что если вы можете пустить usb over ip, вы можете пустить usb over ethernet. Дальше вы ставите простейшие sfp'шки, кусок оптики в 10см длиной и имеете абсолютную гальваническую развязку, из стоковых компонентов.
Проблемы аудиофилов решаются с помощью бескислородной оптики.
juramehanik
usb изоляция нужна в первую очередь в промышленном оборудовании, а не аудиофилам (зачем в промышленности usb, это уже другой вопрос, но раз людям надо значить надо), и там нужно законченое малогабаритное решение на печатную плату в виде вот такой одной микросхемы.
Пока не было isousb211 и нужны были большие скорости подключения и городили всякие приколы типа usb over ip ну или ставили хаб с обоих сторон и 480 превращался в 12, если надо было подключать устройства которые не умели сами в 12, а скорость как такомая большая не нужна была.
juramehanik
В зависимости от требуемого напряжения изоляции решения будут разные.
можно использовать мостики с ножками, можно лазеры с приемниками, можно оптоволокно
https://www.broadcom.com/products/fiber-optic-modules-components/industrial/high-galvanic-isolation-link
вот к примеру на 6-12Кв
Следуйте рекомендациям из документации к микросхеме и гайдам по разработки устройств с гальваноизоляцией и не превышайте пробойное напряжение/ставьте дополнительные цепи защиты типа разрядников и все будет ок. Не дураки же эти мостики с ножками придумали.
Один из частых вариантов использования USB с изоляцией это сервисная консоль промышленного устройства, собственно ноутбук инженера наладчика-> usb разъем ->usb-uart->rx tx оптопары (светодиоды лазеры, что угодно)
но тогда высокие скорости usb не нужны, нужен сам факт его наличия, для этого адумов столько лет вполне хватало
iliasam
Сделать можно, но будет явно не просто: we.easyelectronics.ru/Gerret/kak-ya-usb-udlinyal.html
Скорее всего, кострукция получится похожей на то, что на последней фотографии в статье дана.
nixtonixto
Конкретно ЮСБ так не развязать, потому что у него двунаправленная линия данных. В этом и проблема. Если же разделять потоки данных программно, то получится та самая плата с ПЛИС из статьи.
Оптроны на порядок медленней ёмкостных изоляторов при той же цене, и гораздо больше по размерам. В рамках Human body model ёмкостные изоляторы вполне надёжны, если же нарушить Absolute maximum rating — микросхема имеет право повести себя, как захочет…
iliar
Так как раз используют. Если растворить корпус подобной микросхемы то внутри ты увидишь, что если там внутри несколько частей разделённых диэлектриком. И связь через между частями микросхемы осуществляется при помощи света, индуктивности или ёмкости (в зависимости от технологии). Так что вполне себе физическое разделение.
amarao
Ёмкость и индуктивность не выглядит как хорошая развязка. Переменный ток всё так же идёт.
Развязка через индуктивность, это, вообще, транформатор какой-то.