Эта статья - новый способ "разогнать" изолированный USB-порт. Здесь приведен частный пример, а так же немного дополнительной информации про скорость USB.
Если сильно постараться, то можно ужать данную статью до мема.

Рис.1 Краткое содержание статьи
Рис.1 Краткое содержание статьи

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

Практическая часть

В 2009м году миру явили ADuM4160 - USB-изолятор. Казалось бы, чего еще желать, однако, из трёх возможных скоростей USB 2.0 (1500 Кбит/c, 12 Мбит/с, 480 Мбит/с) микросхема поддерживает только две самые медленные. Обычно этого вполне достаточно, чтобы реализовывать HID-устройства, виртуальные COM-порты. Это перекрывает практически все потребности при работе с микроконтроллерами, но сегодня мы преодолеем это ограничение. Недавно (в ноябре 2021!), Texas Instruments выпустили партию инженерных образцов микросхемы ISOUSB211.

Мне повезло заполучить пару микросхем и протестировать их работоспособность. В схемотехнике я не выдумывал ничего за границами даташита и развёл небольшую платку с прицелом на имеющийся у меня на руках корпус. Я развёл собственный изолированный DC-DC преобразователь, но для того чтобы быстрее перейти к тестам я использовал старенький SBT01L-05

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

В качестве первого теста я скопировал туда-обратно файлы на флешку, получив ~23 МБайт/с (184 МБит/с) для чтения и ~10 МБайт/с (80 МБит/с) для записи (см. Рис. 3)

Рис. 3а Скорость чтения и скорость записи (SanDisk Cruzer Blade USB Device) 
через изолятор
Рис. 3а Скорость чтения и скорость записи (SanDisk Cruzer Blade USB Device) через изолятор
Рис. 3б Скорость чтения и записи (SanDisk Cruzer Blade USB Device)
без изолятора
Рис. 3б Скорость чтения и записи (SanDisk Cruzer Blade USB Device) без изолятора

Я результатом доволен скорость High Speed взята! Ура! Спасибо за внимание! Фото поделки в сборе на рисунке 4.

Рис. 4 Вид готового устройства
Рис. 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 МБайт/с

Рис. 5 Таблица теоретических пределов скорости передачи
Рис. 5 Таблица теоретических пределов скорости передачи
Рис. 6 USB-фрейм для массовой передачи данных
Рис. 6 USB-фрейм для массовой передачи данных

На практике слабым местом, как правило, является сама флешка. В качестве примера приводят временную диаграмму записи в NAND Flash (Рис. 7). Время для каждого передаваемого пакета можно разбить на три участка: 1) время для выполнения USB-передачи, 2) первичные временные затраты операционной системы (или встроенного ПО) и 3) время программирования NAND Flash.

Рис. 7 Пример узкого места для скорости передачи данных по USB
Рис. 7 Пример узкого места для скорости передачи данных по USB

Получается, для моей видавшей виды флешки результаты вполне достойные. Главное, что они выше 1.5 МБайт/с.

Результаты и выводы

Испытание высоким напряжением еще предстоит, пока что могу сказать лишь, что электрический разряд от шерстяного свитера микросхема выдерживает. Прототип изолятора получен и успешно испытан на флешках, камерах, внешних аудиокартах. Что очень меня радует, чем делюсь и хвастаюсь здесь. Надеюсь, Texas Instruments наладят производство и в скором времени эти микросхемы снова появятся в продаже и будут дешевле ~13$. Надеюсь, было полезно. Теперь точно Спасибо за внимание!


P.S.

Пример, как задачу изолирования USB 2.0 High Speed решить супер дорого. 2*ULPI, 2*ПЛИС, быстродействующие оптопары и не забывайте - кто-то это программировал.

P.P.S.

Прикладываю схему. На ней отсутствует разработанный мною изолированный DC-DC, т.к. я его ещё не тестировал.

Схема принципиальная
Схема принципиальная

Комментарии (26)


  1. amarao
    27.12.2021 15:23
    +1

    А почему для гальванической развязки не используют физическое разделение? Например, TX/RX парочками светодиодов (лазеров)? Лично мне микросхема над гальванической развязкой выглядит как "по вот этому мостику с ножками пойдёт электричество при пробое".


    1. Javian
      27.12.2021 16:31
      +1

      Оптопары вполне физически разделены.

      Возможно можно сделать и так, если габариты неважны - https://habr.com/ru/post/170985/


      1. dMac
        28.12.2021 12:47

        Так не проконает, частоты при инициализации и при работе сильно разные. Пробовал.


    1. coolebyak Автор
      27.12.2021 16:31
      +1

      Почему же, физическую разнесенность используют, например в ВОЛС. Правда есть пара нюансов.
      1) Тут речь идет о USB, а USB работает не так же как UART или RS232 (судя потому что вы пишете TX/RX). В USB исползуется дифференциальная пара, т.е. логические уровни и принцип работы дифпары никак не совместим с RX/TX.
      2) Да, можно разделить физически, даже есть примеры тут на Хабре, просто будет 2 пульта и 2 прёмника. Но тут снова есть нюансы, один из них - скорость передачи данных. Тут пишут, что существующие самые популярные скорости 120 бит/с и 4 бит/с, и они такие неспроста, т.к. фронт сигнала (переход из 0 в 1) в оптической системе, как в пульте от кондиционера/телевизора нарастает медленно. Но почему же в ВОЛС скорости под Гигабайты в секунду? Потому что там применяют хитрости типа модуляции и спектрального уплотнения каналов.

      Ну и если бы всё было так просто, то нас бы давно завалили устройства с алиэкспресс, так же как USB-хабы))


      1. amarao
        27.12.2021 16:43

        Так полно же. USB over IP. Не очень дёшево, но в разумных пределах.


        1. coolebyak Автор
          27.12.2021 17:07
          +1

          Понятное дело, что решения есть, но даже вы пишите о том, что может остановить в применении этого решения (цена).
          Не все задачи разумно решать с помощью USB over IP, а в некоторых устройсвах чётко прописывают требование изолировать прибор от внешних устройств. Такое может встретится в требованиях к медицинским приборам. А какому-нибудь аудифилу, который хочет подкючить ЦАП через изолированный USB тоже поднимать USB over IP?
          Короче говоря, всему свое место, не забивать же гвозди микроскопом..


          1. amarao
            27.12.2021 17:14
            +4

            Внешним чем? ip не подразумевает "интернета".

            Я хочу сказать, что если вы можете пустить usb over ip, вы можете пустить usb over ethernet. Дальше вы ставите простейшие sfp'шки, кусок оптики в 10см длиной и имеете абсолютную гальваническую развязку, из стоковых компонентов.

            Проблемы аудиофилов решаются с помощью бескислородной оптики.


            1. juramehanik
              27.12.2021 20:51

              usb изоляция нужна в первую очередь в промышленном оборудовании, а не аудиофилам (зачем в промышленности usb, это уже другой вопрос, но раз людям надо значить надо), и там нужно законченое малогабаритное решение на печатную плату в виде вот такой одной микросхемы.
              Пока не было isousb211 и нужны были большие скорости подключения и городили всякие приколы типа usb over ip ну или ставили хаб с обоих сторон и 480 превращался в 12, если надо было подключать устройства которые не умели сами в 12, а скорость как такомая большая не нужна была.


    1. juramehanik
      27.12.2021 21:08
      +1

      В зависимости от требуемого напряжения изоляции решения будут разные.
      можно использовать мостики с ножками, можно лазеры с приемниками, можно оптоволокно
      https://www.broadcom.com/products/fiber-optic-modules-components/industrial/high-galvanic-isolation-link
      вот к примеру на 6-12Кв

      Следуйте рекомендациям из документации к микросхеме и гайдам по разработки устройств с гальваноизоляцией и не превышайте пробойное напряжение/ставьте дополнительные цепи защиты типа разрядников и все будет ок. Не дураки же эти мостики с ножками придумали.

      Один из частых вариантов использования USB с изоляцией это сервисная консоль промышленного устройства, собственно ноутбук инженера наладчика-> usb разъем ->usb-uart->rx tx оптопары (светодиоды лазеры, что угодно)
      но тогда высокие скорости usb не нужны, нужен сам факт его наличия, для этого адумов столько лет вполне хватало


    1. iliasam
      28.12.2021 07:20

      Сделать можно, но будет явно не просто: we.easyelectronics.ru/Gerret/kak-ya-usb-udlinyal.html
      Скорее всего, кострукция получится похожей на то, что на последней фотографии в статье дана.


    1. nixtonixto
      28.12.2021 10:34

      А почему для гальванической развязки не используют физическое разделение? Например, TX/RX парочками светодиодов (лазеров)?

      Конкретно ЮСБ так не развязать, потому что у него двунаправленная линия данных. В этом и проблема. Если же разделять потоки данных программно, то получится та самая плата с ПЛИС из статьи.

      Оптроны на порядок медленней ёмкостных изоляторов при той же цене, и гораздо больше по размерам. В рамках Human body model ёмкостные изоляторы вполне надёжны, если же нарушить Absolute maximum rating — микросхема имеет право повести себя, как захочет…


    1. iliar
      30.12.2021 11:50

      Так как раз используют. Если растворить корпус подобной микросхемы то внутри ты увидишь, что если там внутри несколько частей разделённых диэлектриком. И связь через между частями микросхемы осуществляется при помощи света, индуктивности или ёмкости (в зависимости от технологии). Так что вполне себе физическое разделение.


      1. amarao
        30.12.2021 12:34

        Ёмкость и индуктивность не выглядит как хорошая развязка. Переменный ток всё так же идёт.

        Развязка через индуктивность, это, вообще, транформатор какой-то.


  1. jaiprakash
    27.12.2021 15:28

    Какой принцип работы? У нас с тексасом в своё время случилось расхождение понимания термина "гальваническая изоляция". Они посчитали, что достаточно просто конденсаторов. Из-за этого шли высокочастотные помехи и всё портили. Выкинули их микросхемы и поставили силабовские и аналоговские, смотря что доступнее. Речь о простой изоляции на несколько каналов, без заточенности на протоколы.


    1. coolebyak Автор
      27.12.2021 16:52

      Я не уидел в материалах упоминания о принципах работы. Можно лишь предположить, что это прокачанная версия технологии iCoupler, может придумали своё, но блюдут коммерческую тайну. Насчёт USB-изолятора могу сказать лишь то, что только конденсаторами тут никак не обойтись.

      А ваш случай вызывает любопытство и негодование, можете описать вкратце? Что за микросхема? Что за задача (чуть подробнее, если можно)? Ну и самое главное, на что заменили? Хочется не наступить на те же грабли. Потому что к текущему моменту, если миросхема от TI не работала, то это были мои ошибки проектирования. Я с ходу припоминаю только один случай, когда пришлось возиться с TXB0104, но там не до конца всё чисто, т.к. работал он с покупным модулем со скудной документацией.


      1. jaiprakash
        28.12.2021 07:15
        +1

        Это были ISO7231. Ноутбук с питанием - USB - FT232 - изолятор - драйвер RS485. Развязанная часть питается от изолирующего DC-DC преобразователя. В линию сыпался мусор. Заменили на ADuM1302 и Si8431.


    1. LordCarCar
      27.12.2021 17:56

      А вообще существует термин "гальваническая изоляция"?


      1. coolebyak Автор
        27.12.2021 18:03
        +2

        Есть такой. Это просто прямой перевод с английского. Если говорить строго поГОСТовски, то на русском языке это Гальваническая развязка.


      1. dmitriyrudnev
        27.12.2021 19:16
        +1

        Мне тоже глаз зацепило. Оказалось, что такой термин есть. Вот пример: ГОСТ Р ИСО/МЭК 9549-93 Информационная технология. Гальваническая изоляция симметричных цепей стыка


    1. OLEGator_by
      27.12.2021 21:25
      +1

      Принцип довольно простой.
      первые были сделаны с помощю разделительных ескостей, но они имеют малое пробивное напряжение или очень не стабильны работе, а теперь все схемы делают на индуктивной развязке. На рынке их довольно много.
      Сама схема сделана как генератор на довольно большую частоту который передаёт на индуктивность(сделанную металами верхнего уровня)
      нижним уровнем металла делается приёмна катушка - связт между ними инуктивная(чаще всего неа резонансе.), детектор и далее. Да, это не обычный tx/rx, есть встроенный контроллек уоторый принемает сигнал, корректирует и конвертирует обратно в usb. И таких канала минимум 2. Они могут работать на разных частотах, поэтому междуканальная индуктивная связь. Может быь ещё 3й канал, для питания.
      Эту схему можно сделать в стандартном техпроцессе(SOI или КНИ). Поэтому оптика и другое ничего не нужно. Стандартная технология. Получается все на борту, быстро и не сложно. С оптикой все сложнее. Фотоника на кртисалле не развита, внешние фотоприёмники и передатчики(лазеры), внешние - а это меделнно по умолчаию, или очень энергоёмко.
      Напряжение изоляции определяется межслойным пробивным напряжением, а оно может составлять очень много. Да, в общем вот такой у них всех принцп.


  1. VelocidadAbsurda
    27.12.2021 17:22

    По демонстрации скорости - полезнее было бы увидеть сравнение скоростей без/с изолятором. Если он что-то режет - оно скорее всего проявится и при 20МБ/с (т.к. внутри пакета в любом случае 480мбит/с).


    1. coolebyak Автор
      27.12.2021 17:35

      Да, ценное замечание. Добавил, та же машина, тот же порт, тот же файл.


  1. juramehanik
    27.12.2021 21:17
    +2

    Огроменный жирный плюс за КПДВ.
    Для нас еще дикий плюс нового решения, что не надо вручную как в адуме выбирать скорость со стороны девайса, ибо это та самая перемычка на изоляторах на основе adum.
    У нас есть решение промышленного устройства , где у закзчика было требование гальваноизолировать ВСЕ порты устройства, даже те, что не будут выходить за пределы короба, где оно будет установлено (usb hdmi) , и если ethernet и hdmi не проблема, то вот с usb мы заранее не знаем что будет подключаться в те порты, длиный провод от KVM , или например флешка, посему на "горячей" после ADUM стороне пришлось поставить микросхему usb хаба, которая upstream порт держала всегда в full-speed. В целом это не сильно проблема, но места там для всего этого фарша было уже маловато.


  1. man55
    27.12.2021 22:46

    найдется чем проверить чтото более сложное, чем mass storage?

    adum4160 то еще глюкалово, когда за ним стоит устройство, которое делает enumeration с задержкой, при этом не умеет управлять пинами (читай - не микроконтроллер)


    1. coolebyak Автор
      28.12.2021 07:13

      Я в статье написал про вебкамеру, аудиокарту. Были еще пара HID-девайов, USB-uart преобразователь на 3Мегабода (CP2102N-GQFN28), телефон на Andriod (чтобы протестировать OTG). Про enumeration с задержкой ничего сказать не могу.


  1. dMac
    28.12.2021 12:55
    +1

    Наконец-то. Уж и не думал, что доживу до дешевого решения для USB 2.0. SDR насасывает помех по USB, а плата на ПЛИСах стоит дороже самого SDR