Как стать автором
Обновить

Гальваническая изоляция USB 2.0 High Speed

Время на прочтение3 мин
Количество просмотров17K

Эта статья - новый способ "разогнать" изолированный 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, т.к. я его ещё не тестировал.

Схема принципиальная
Схема принципиальная
Теги:
Хабы:
Всего голосов 31: ↑30 и ↓1+29
Комментарии35

Публикации

Истории

Ближайшие события

Конференция «Я.Железо»
Дата18 мая
Время14:00 – 23:59
Место
МоскваОнлайн
Антиконференция X5 Future Night
Дата30 мая
Время11:00 – 23:00
Место
Онлайн
Конференция «IT IS CONF 2024»
Дата20 июня
Время09:00 – 19:00
Место
Екатеринбург