Usb client что это

Обновлено: 07.07.2024

Я начинаю серию справочных статей по отдельным компонентам и функциям различных электронных устройств — планшетов, ноутбуков, ридеров, плееров и так далее. Это такой своеобразный ликбез в сфере бытовой электроники. Я постараюсь сделать эти статьи понятными для максимально широкого круга людей.

Тема сегодняшней статьи — USB-host (USB-хост). Это весьма примечательная функция, которой оснащается достаточно большое количество устройств (в основном, правда, довольно дорогих), и рассказать о ней определенно стоит. Также я расскажу и о функции USB OTG — фактически, более современной разновидности USB-хоста.

Если говорить максимально просто и доступно, то наличие USB-хоста на каком-нибудь устройстве означает возможность подключения к нему различных внешних устройств — например, флэшек, внешних жестких дисков, кардридеров, плееров, фотоаппаратов и так далее. Весьма интересна возможность подключения и внешней «периферии» — клавиатур, мышек и так далее.

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

Что интересно, к устройству с USB-хостом можно подключать также USB-хабы — устройства, которые подобны сетевым тройникам. Например, на планшетах обычно имеется только один порт USB. Подключив к нему USB-хаб (а стоит он недорого), вы получите уже два или даже четыре порта, что весьма удобно — например, к одному можно подсоединить клавиатуру, а к другому подключать флэшки.

В каких случаях USB-хост удобен и нужен? Да во многих. Согласитесь, возможность скопировать файлы на плеер, планшет или ридер без подключения его к компьютеру не может не радовать. Вам надо просто подключить к устройству флэшку или какое-либо другое устройство, с которого вам нужно перенести файлы.

Весьма приятна возможность перенести снимки с фотоаппарата на планшет или плеер с жестким диском, и тем самым освободить память фотоаппарата, сделать еще больше снимков. Подключение клавиатуры к планшету — тоже очень приятная возможность. Удобны и принтеры с наличием USB-хоста: к ним можно напрямую подключать фотоаппараты, телефоны, флэшки и печатать снимки или документы прямо с них; компьютер для этого совершенно необязателен.

При этом стоит отметить, что само наличие функции USB-хоста еще не гарантирует его нормальную работу. В частности, процесс обмена файлами через USB может осуществляться достаточно сложным и неудобным образом — в качестве примера можно привести PocketBook 302 (это, кстати, единственный ридер, оснащенный USB-хостом). Какие-то устройства могут просто не подключиться ввиду отсутствия драйверов или неких недоработок программистов, писавших программное обеспечение для USB-хоста.

Именно поэтому я советую перед покупкой того или иного устройства проверить, насколько качественно реализована в нем опция USB-host. Попробуйте подключить флэшку, посмотреть, насколько легко и удобно можно скопировать файлы с нее и на нее. Если у вас есть usb-клавиатура, которую вы планируете использовать вместе с покупаемым устройством, не лишним будет проверить корректность ее работы. Если же вы соберетесь купить такую клавиатуру уже после покупки самого устройства, то возьмите с собой в магазин это устройство и проверьте, насколько корректно будут с ним работать представленные в магазины клавиатуры.

Стоит отметить, что сейчас имеются в продаже устройства и с поддержкой так называемого USB OTG. Я бы сказал даже, что USB OTG сейчас встречается в устройствах довольно часто, чаще, чем классический USB-хост. В чем основное отличие USB OTG? В том, что USB OTG не предполагает наличие отдельного классического полноразмерного порта USB. Для подключения периферийных устройств используется порт microUSB или miniUSB, который, вообще говоря, служит главным образом для связи устройства с компьютером. На устройстве с USB OTG этот порт фактически совмещает в себе функции USB-host (подключение периферии) и USB-device (подключение к компьютеру).

Чтобы к miniUSB/microUSB порту с поддержкой OTG подключить флэшку или, скажем, клавиатуру, необходимо приобрести специальный переходник, который стоит порядка 500 рублей (при желании его можно найти по более низкой цене или же вовсе сделать самому — в интернете есть инструкции). Затем нужно вставить этот переходник в порт miniUSB/microUSB, а к соответствующему выходу переходника подключить нужное вам периферийное устройство.

И тут опять же стоит отметить, что не на всех устройствах USB OTG реализовано хорошо. Где-то поддержка USB OTG может быть заявлена, но ввиду отсутствия необходимого программного обеспечения она не работает. Пример — ридеры Onyx Boox. Также стоит отметить, что внешние жесткие диски по протоколу USB OTG подключить вряд ли удастся: они потребляют слишком много энергии; планшет «прокормить» их просто не в состоянии.

Так мы плавно переходим к основному недостатку USB-хоста (как классического, так и USB OTG): его активное использование способствует быстрой разрядке устройства. Конечно, клавиатура много энергии пожирать не будет, а вот постоянно подключенная и использующаяся флэшка — будет.

Но USB OTG не лишен и недостатков, главным из которых является необходимость покупки переходника и постоянной его переноски с собой.

17 Replies to “Что такое USB-host и USB OTG”

Кстати: может сделать небольшой обзор- справочник по кабелям? Что такое AM-AF, AM-BM и прочие абревиатуры. Для чего они нужны, полезны и т.д
Можно сюда и HDMI добавить. Сейчас в продаже как минимум три разновидности(модификации) этих кабелей. Последняя, самая дорогая позволяет использовать этот кабель для всего- вплоть до передачи интернета. Т.е из него пытаются сделать универсальный стандарт.

Увы, я совершенно не разбираюсь кабелях, во всех этих AM-AF, AM-BM и тому подобных разновидностях.

Самое оригинальное применение AM-AF : если пользуетесь модемом от сотового оператора, то при плохом приеме удлинить соединение с помощью этого кабеля и подвесить модем к потолку или выкинуть в форточку. 😉

Спасибо за информацию и ссылку! Сейчас сам удивляюсь, с чего взял, что нельзя подключить юсб-хаб к устройству с OTG:)
Убрал соответствующее предложение.

А в программном отношении USB OTG это просто USB или нет?

Зачем вообще эта глупость на планшетах? Обычный порт вполне бы подошёл как на нетбуках. Как и для usb типа В, так и для типа А есть варианты и мини, и микро. Через тип А нельзя подключать устройство к компу, но зачем вообще это надо? Мы же не подключаем нетбуки к компу через USB и не паримся по этому поводу. USB otg больше нужен телефонам, но планшет всё же ближе к нетбуку, чем к телефону.

Добрый день. при подключении планшета через USB OTG к ПК насколько свободно можно оперировать фалами на планшете?

Салют,Колян! Ну вот я тоже пользовался флешками для передачи данных с телефона на планшет(и обратно).
Пока телефон перестал запускаться с флешкой.Теперь собрал один кабель,соединив по цветам два конца(папа-папа) с микроЮСБ,так как в продаже оного нет:-(.Не пойму,почему планшет на видит телефон,не появляется даже значок ЮСБ соединения.Может,что не правильно делаю?

Где можно приобрести нужные драйвера для отг?

Думаю, что в первую очередь стоит проверить сайт производителя гаджета, к которому нужны драйвера. Если там их нет, стоит связаться с их техподдержкой.

Технологии виртуализации прочно вошли в современный IT мир. Сегодня невозможно найти компанию, которая бы не использовала решения для виртуализации (виртуальные сервера, виртуальные рабочие места, VDI) в своей работе. И все было бы отлично и безоблачно, но гипервизоры, основа инфраструктуры внесли и определенные ограничения на созданные и используемые виртуальные машины.
Одно из ограничений — это отсутствие USB портов на виртуальных машинах. Если раньше мы могли подключить необходимое USB устройство (например, ключ защиты ПО или смарт-карту с ключами шифрования) к физическому серверу, то теперь — поскольку сервера стали виртуальными – эта задача так просто не решается. Как решить эту проблему быстро и эффективно – я расскажу в этом обзоре.

Первое, и казалось бы наиболее очевидное решение — использовать программные эмуляторы портов, но такой подход имеет требует иметь постоянно включенный компьютер, на котором и будет работать ПО для эмуляции. Вывод: неудобное, ресурсоемкое и дорогостоящее решение.

Следущий выбор — програмно-аппартные устройства для решения задачи проброса (эмуляции) USB портов на удаленной машине. Простые, эффективные и недорогие устройства. Выбор остановился на решениях компании Digi International — AnywhereUSB

AnywhereUSB представляет собой компактное устройство USB hub – с дополнительным подключением Ethernet кабеля.

Модели AnywhereUSB

Для использования доступны 3 модели устройств, рассчитанных на разное количество USB портов:
1. AnywhereUSB /2 – 2 порта USB

image

2. AnywhereUSB/ 5 – 5 портов USB

image

3. AnywhereUSB /14 – 14 портов USB

image

Настройка и управление

Для настройки и управления устройством предусмотрено несколько интерфейсов:
• Web интерфейс для настройки, мониторинга и администрирования;
• AnywhereUSB утилита конфигурирования;
• Telnet Command-Line Interface;
• Simple Network Management Protocol (SNMP).

Для настройки устройства рассмотрим Web интерфейс — как наиболее удобный и простой вариант.

Управление IP адресом

Существует несколько вариантов присвоения IP адреса AnywhereUSB:
• Статический IP;
• Динамическое присвоение IP — Using Dynamic Host Configuration Protocol (DHCP);
• Auto Private IP Addressing (APIPA), наиболее известен как Auto-IP;

image

Сетевые сервисы легко конфигурируются через web интерфейс

image

Для желающих тонко настроить все параметры сетевого интерфейса доступны соответствующие инструменты

image

Web интерфейс имеет множество дополнтельных инструментов, позволяющих посмотреть активных подключения, статус и uptime устройства, настроить функции безопасности и.т.д

Текущие подключения:

image

Состояние устройства:

image

С настройкой устройства все просто и понятно, теперь перейдем к машине, на которую осуществляется проброс USB портов.

Настройка клиенткой машины

Настройка проста и интуитивно понятна.

Все, что необходимо для настройки:
1. Установить драйвера для AnywhereUSB;
2. Указать IP адрес устройства.

Устройство подключено, в окне доступна информация о состоянии устройства.

image

В случае необходимости получения детальной информации, о подключеном устройстве, свободных/занятых портах – можно воспользоваться утилитой детального просмотра.

image

Стоит отметить, что решение очень просто в развертывании и надежно в эксплутации. Весь процесс развертывания и настройки занимает не более 30 минут.

Примерная схема подключения устройства AnywhereUSB

image

Детальную информацию об устройствах AnywhereUSB, скачать драйвера и документацию можно найти сайте компании Digi International — AnywhereUSB

Иногда возникает желание работать с устройством, подключенным по USB, не держа его на столе рядом с ноутбуком. У меня таким устройством является китайский гравёр с лазером на 500 мВт, штука довольно неприятная при близком контакте. Помимо непосредственной опасности для глаз, в процессе работы лазера выделяются токсичные продукты горения, поэтому устройство должно находится в хорошо проветриваемом помещении, и желательно изолированно от людей. А как же таким устройством управлять? Ответ на данный вопрос я случайно нашел, просматривая репозиторий OpenWRT в надежде найти достойное применение старенькому роутеру D-Link DIR-320 A2. Для подключения решил использовать описываемый на Хабре ранее USB over IP tunnel, однако все инструкции по его установке успели потерять актуальность, поэтому пишу свою.

OpenWRT — операционная система, не нуждающаяся в представлении, поэтому её установку расписывать не буду. Для своего роутера взял последний стабильный релиз OpenWrt 19.07.3, и подключил его к основной точке доступа по Wi-Fi в качестве клиента, выбрав режим lan, чтобы не мучать файрвол.

Серверная часть

Действуем согласно официальной инструкции. После подключения по ssh устанавливаем необходимые пакеты.


Далее подключаем к USB-порту роутера наше устройство (в моём случае устройства: USB-хаб, флешку, на которую смонтирована файловая система роутера (ввиду нехватки места на внутреннем накопителе), и, непосредственно, гравёр).

Пробуем вывести список подключенных устройств:

Путём гугления был найден виновник, им оказалась библиотека libudev-fbsd.
Вытаскиваем руками из репозитория последнюю рабочую версию libudev_3.2-1 из релиза OpenWRT 17.01.7 под свою архитектуру, в моём случае это libudev_3.2-1_mipsel_mips32.ipk. С помощью wget/scp загружаем её в память роутера и переустанавливаем


Китаец, подключенный в USB-хаб, получил bsuid 1-1.4. Запомнили.

Теперь запускаем демон:


и биндим китайца


Проверяем, что всё работает:


Чтобы далее биндить девайс автоматически, подредактируем /etc/rc.local, добавив перед exit 0 следующее:

Клиентская часть


Связано это с тем, что клиент не работает с сервером, собранным под ядро старше версии 3.14.
Сервер usbip под OpenWRT 19.07.3 собран на ядре 4.14.180.

Продолжая поиски, натыкаюсь на актуальную разработку виндового клиента на github. Ок, заявлена поддержка Windows 10 x64, но клиент исключительно тестовый, поэтому присутствует ряд ограничений.

Итак, сначала просят установить сертификат, притом дважды. Ок, помещаем его в Trusted Root Certification Authority и Trusted Publishers.

Далее необходимо перевести операционную систему в тестовый режим. Делается это командой


С первого раза у меня не получилось, помешал secure boot. Для его отключения необходимо перезагрузиться в UEFI, и выставить secure boot — disable. На некоторых моделях ноутбуков может потребоваться установка supervisor password.

После этого загружаемся в Windows и делаем bcdedit.exe /set TESTSIGNING ON
Винда говорит, что всё ок. Снова перезагружаемся, и видим в правом нижнем углу надпись Test Mode, версию и номер билда ОС.

Для чего же все эти манипуляции? Для установки неподписанного драйвера USB/IP VHCI. Сделать это предлагается, скачав файлы usbip.exe, usbip_vhci.sys, usbip_vhci.inf, usbip_vhci.cer, usbip_vhci.cat, и выполнив с правами администратора


либо второй способ, установка Legacy Hardware в ручном режиме. Я выбрал второй вариант, получил предупреждение об установке неподписанного драйвера и согласился с ним.

Далее проверяем, что у нас есть возможность подключиться к удаленному USB-устройству, выполняя команду:


получаем список устройств:


на ошибку usbip: error: failed to open usb id database не обращаем внимания, на работу не влияет.

Теперь биндим устройство:


Всё, винда обнаружила новое устройство, теперь с ним можно работать так, как будто оно физически подключено к ноутбуку.

С китайским гравёром пришлось немного помучаться, так как при попытке установить его драйвер CH341SER через прилагавшийся к гравёру инсталлятор (да, гравёр на Ардуино), USB/IP VHCI ронял винду в BSOD. Однако установка драйвера CH341SER до подключения устройства через usbip.exe решала проблему.

Итог: гравёр шумит и дымит на кухне при открытом окне и закрытой двери, я наблюдаю за процессом выжигания из другой комнаты через родную софтину, которая не чувствует подвоха.


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

Некоторые технологии являются своеобразными канонами: используются уже не один десяток лет и постоянно совершенствуются. А есть и такие, которые уже либо вымерли, либо же родились, но так и попали в массы ввиду своего несовершенства, низкой релевантности в отношении требований рынка и прочего.

В этой статье речь пойдет о технологии, не относящейся ни к одной, ни к другой группе. Без нее компьютерные сети смогли бы существовать без особых проблем, но при этом она способна значительно упростить работу и снизить затраты на эксплуатацию у крупных предприятий, небольших организаций и даже домашних пользователей. К примеру, с помощью нее можно пробросить аппаратный USB-ключ защиты ПО внутрь облачной платформы или облака на базе VMware и использовать его так, словно он установлен на локальной машине. Но обо всем по порядку.

История появления технологии USB over IP

Сложно сказать когда именно появилась данная технология в том виде, в каком ее используют сейчас. Вероятнее всего с развитием возможностей программных компонентов Linux, ростом потребностей рынка и изобретательности энтузиастов и появилась современная технология проброса USB-девайсов через сеть.

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

  • usbip был разработан проектом «USB/IP» еще в 2009 девятом году и благодаря успеху был добавлен в сборки Linux-ветки операционных систем и все-еще развивается. Поддержка же Windows клиента была остановлена в 2013 году на выпущенной подписанной двоичной цифровой подписи драйвера.
  • usbip-win же является аналогичным проектом, умеющим работать с Windows 10. Более того, он позволяет поднимать на Windows 10 не только клиентскую, но и серверную часть, а также совместим с Linux-версией.

Кому это интересно и где применяется

Преимущества сетевого проброса USB-устройств:

  • Безопасность. Возможность изолированного размещения USB девайсов от их конечного пользователя, шифрование и контроль доступа к устройствам, защита от человеческого фактора (кражи или утраты устройства).
  • Мониторинг. Использование протокола SMTP и сценариев SNTP для отслеживания состояния устройств.
  • Доступность и мультитенантность. USB устройства доступны для неограниченного числа пользователей (с возможностью создания групповых политик и уровней доступа) без необходимости физического переключения из любой точки мира.
  • Централизованное администрирование. Удобство в управлении каждым USB-устройством, подключенным в концентратор.
  • Работоспособность полностью зависит от стабильной работы сети.
  • Высокая стоимость аппаратных решений (управляемых USB-хабов с большим количеством портов).
  • Не все USB-устройства могут работать через сеть штатно по причине увеличенного времени отклика.

Используемые технологии и оборудование

Способ обмена информацией у локальных и удаленных устройств отличается лишь тем, что для удаленных девайсов будет использоваться виртуальный драйвер шины: набор инструкций и данных. осуществляющий преобразование логической информации или данных в физические сигналы.


Подключение локальных и удаленных устройств
Когда приложения отправляют запрос на конечное устройство, USB PDD (USB Personal Device Driver) преобразует запросы ввода-вывода в серию команд понятных для USB, а затем отправляет их через драйвер шины (связующее звено между драйвером устройства и конечным устройством) в виде блоков USB-запросов на конечное устройство.

Способы проброса аппаратных ключей

Персональный драйвер устройства (PDD), как ни странно, отвечает за управление отдельными USB-устройствами. PDD отправляет запросы в виде специальных блоков запросов URB (USB Request Block), которыми он обменивается данными с ядром USB (USB Core) — отдельной подсистемой внутри ОС, выполняющей роль поддержки USB-устройств и контроллеров.


Модель обмена данными между USB устройствами и конечным пользователем
Для реализации проброса протокола USB через IP — сеть была разработана сущность, называемая виртуальным интерфейсом хост-контроллера, он же Virtual Host Controller Interface (VHCI). VHCI относится к виртуальному контроллеру и способен экспортировать виртуальные USB-устройства, не поддерживаемые физическими устройствами. В Linux контроллеры VHCI используются для доступа к USB-устройствам с удаленных машин, подключенных по уже известному нам протоколу USBIP.

VHCI является эквивалентом драйвера хост-контроллера (HCD) и отвечает за обработку URB-запросов. И VHCI, и HCD отвечают за обработку URB-запросов, полученных от ядра и делят их на более простые запросы, именуемые как Transfer Descriptions (дескрипторы передачи TD) для их дальнейшей передачи на хост-контроллер интерфейса, он же USB-контроллер (Host Controller Interface HCI). Данный интерфейс работает на уровне физических регистровых передач и обеспечивает коммуникацию с периферийными устройствами, подключенными к USB.

Теперь о том, как USB попадает в сеть. Блок запросов URB преобразуется в блок запроса USB / IP драйвером VHCI и отправляется на удаленный компьютер. Драйвер заглушки также добавлен как новый тип USB PDD. Драйвер-заглушка отвечает за декодирование входящих USB / IP-пакетов с удаленных машин, извлечение URB и последующую отправку их на локальные USB-устройства.


Модуль ядра vhci-hcd — это только виртуальный хост-контроллер, к которому вы можете подключить виртуальные устройства.

Как это устроено в Selectel


Рассмотрим работу с USB-концентратором на примере устройства DistKontrolUSB-16. Для того, чтобы пробросить USB-устройство с порта концентратора, необходимо:

    Создать USB-устройство, указав его Vendor/ProductID (VID/PID) и серийный номер. Именно по нему концентратор будет проводить отбор подключенных устройств:




Заключение

Описанная технология способна обеспечить необходимую масштабируемость и гибкость в современной, постоянно изменяющейся среде. Проброс USB-устройств через сеть также обеспечивает надежность за счет ограничения физического доступа к устройствам.

Отсутствует необходимость перемещать оборудование, а безопасность сети повышается за счет возможности использования алгоритмов шифрования и настройки прав доступа. Доступна планировка сценариев для каждого отдельно взятого устройства.

Снижение рисков и затрат на обслуживание, удобство совместного использования ресурсов между рабочими станциями — все это делает технологию usbip конкурентоспособной в отношении безопасной авторизации и передачи данных (с TOTP/HOTP, OCRA) и применимой для решения широкого спектра задач IT.

Читайте также: