USB-хост, что это такое

Обновлено: 21.11.2024

Узнайте, что такое USB OTG и чем он полезен на устройствах Android. Есть много интересных применений, которые стоит попробовать!

USB-накопители удобны, но их нельзя использовать с телефоном. Ну, если только у вас нет телефона Android и вы не знаете, что такое USB OTG.

USB On-The-Go (OTG) – это стандартизированная спецификация, позволяющая устройству считывать данные с USB-устройства без использования ПК. Устройство фактически становится USB-хостом, что есть не у каждого гаджета. Вам потребуется кабель OTG или разъем OTG.

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

USB OTG не является особенностью Android. Но так как это его наиболее популярное использование, мы сосредоточимся на его использовании с Android.

Проверьте, поддерживает ли ваш Android USB OTG

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

Еще один простой способ — использовать приложение для проверки USB OTG. В магазине Google Play есть много таких бесплатных приложений, но некоторые загружены рекламой. USB OTG Checker — надежное приложение для этого. Загрузите и запустите его, и вы узнаете, поддерживает ли ваш телефон USB OTG.

Не каждое устройство Android поддерживает USB OTG; это то, что производитель должен включить. Если вы обнаружите, что ваш телефон не совместим при использовании USB OTG Checker, к сожалению, это вам не поможет.

Samsung и другие смартфоны изначально поддерживают OTG. Однако другие производители могут потребовать, чтобы вы включили его вручную в меню «Настройки» > «Дополнительные настройки» > «OTG».

Что нужно для использования USB OTG

Ваше устройство Android оснащено стандартным портом micro-USB или USB-C (см. наше руководство по кабелям USB). Однако для многих USB-устройств требуется полноразмерный USB-порт. Вы можете решить эту проблему с помощью конвертера/адаптера.

В частности, ищите переходник micro-USB или USB-C (в зависимости от того, что используется в вашем телефоне) на полноразмерный разъем USB. Amazon предлагает множество таких адаптеров, например популярный адаптер Anker USB-C/USB.

Также можно купить флэш-накопители как с micro-USB, так и со стандартными портами USB, например очень полезный Kingston Micro Duo. Он стоит ненамного дороже обычного USB-накопителя, так что это вполне разумная покупка.

Как только вы подготовите USB OTG для своего устройства Android, перед вами откроется целый мир возможностей. Вот некоторые из наиболее популярных применений.

1. Подключайте флешки и внешние жесткие диски

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

Флэш-накопители подключаются проще всего; внешние жесткие диски могут работать, а могут и не работать. Портативные жесткие диски, питающиеся от телефона, не всегда будут работать, но внешние диски с собственным источником питания должны работать нормально. Эти диски должны быть в формате FAT32, так как NTFS не работает должным образом с Android.

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

2. Играйте с контроллерами видеоигр

Android P и более поздние версии изначально поддерживают контроллер Xbox One. Но старый контроллер Xbox 360 также работает с устройствами Android через USB OTG. Начать игру с помощью контроллера так же просто, как подключить и играть. Конечно, вам нужно играть в игры, совместимые с контроллером.

Если вы рутировали свое устройство Android, вы также можете подключить контроллеры PlayStation. Благодаря этому вы можете подключить контроллер PS2 и превратить свое Android-устройство в центр ретро-игр!

3. Управление Android с помощью клавиатуры и мыши

Открытая природа Android позволяет легко подключать практически все. Если вы хотите использовать свой планшет в качестве ноутбука, клавиатура и мышь являются неотъемлемой частью опыта. Вы будете рады узнать, что Android хорошо работает с большинством беспроводных и проводных клавиатур и мышей.

Мы рекомендуем приобрести беспроводную клавиатуру и мышь с унифицированным приемником, поскольку у вас есть только одно доступное USB-подключение. Я не видел работающего USB-концентратора, работающего через USB OTG.

Вы должны купить стандартный беспроводной набор plug-and-play, совместимый со всеми платформами. Однако убедитесь, что вы не покупаете что-то, для чего требуется сопутствующее программное обеспечение, например некоторые устройства Logitech, для которых требуется программное обеспечение SetPoint.

Как указано в нашем подробном руководстве по подключению USB-клавиатуры к устройствам Android, ОС по умолчанию использует QWERTY. Для других раскладок вам понадобится специальное приложение для клавиатуры, например Colemak или DVORAK.

4. Печать напрямую с принтера

Как и клавиатуры, принтеры со стандартным USB-разъемом plug-and-play хорошо работают с устройствами Android.Они позволяют начать печать, не требуя беспроводного подключения или предварительно перенося что-либо на ПК.

Android уже некоторое время не поддерживает режим USB Mass Storage. Таким образом, если вы хотите печатать фотографии и документы, вам нужно будет использовать режимы PTP или MTP для USB-подключения.

Конечно, проще, если ваш принтер поддерживает Wi-Fi. Если нет, возможно, пришло время перейти на один из лучших принтеров для дома и небольшого офиса.

5. Управляйте своей цифровой зеркальной камерой

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

Вам понадобится приложение DSLR Controller и, в идеале, камера Canon. Он работает с некоторыми камерами Nikon и Sony, но официально они не поддерживаются. Это приложение стоит 8 долларов США, но оно весьма полезно для энтузиастов-владельцев цифровых зеркальных камер.

6. Прямой перенос фотографий с DSLR на телефон Android

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

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

7. Подключайте и играйте на музыкальных инструментах

USB OTG позволяет подключать MIDI-совместимые музыкальные инструменты, например клавишные, к устройству Android. Объедините их с приличным музыкальным приложением, и вы сможете создавать музыку на своем портативном устройстве, где бы вы ни находились.

Хотя MIDI-клавиатуры меньшего размера могут питаться от телефона Android, для некоторых может потребоваться внешний источник питания. Кроме того, проверьте тип подключения, поддерживаемый вашей клавиатурой, и не требуется ли дополнительный адаптер для работы с адаптером OTG.

8. Записывайте аудио прямо на свой телефон

Помимо музыкальных инструментов, вы можете записывать звук с USB-микрофона на телефон Android через OTG. Независимо от того, используете ли вы свой телефон в качестве рабочей станции или просто любителя, USB-микрофоны, такие как полезный CAD Audio 37, предлагают лучшие возможности записи, чем встроенные или внешние микрофоны, подключенные через аудиоразъем 3,5 мм.

В телефоне Android есть встроенный диктофон, но он довольно простой. Для выделенного микрофона такие приложения, как USB Audio Recorder Pro, предлагают дополнительные параметры настройки, включая стереофоническое воспроизведение, пользовательскую частоту дискретизации и выбор размера буфера и даже параметры формата записи.

9. Подключение и доступ к Интернету через кабель Ethernet

Менее известная функция OTG – это возможность подключить Ethernet-соединение к телефону Android для доступа в Интернет. Это может пригодиться, если вы хотите уменьшить пинг во время онлайн-игры или получить более высокую скорость интернета, чем ваш Wi-Fi.

Помимо адаптера OTG, вам также потребуется адаптер Ethernet-USB, например адаптер QGeeM USB-C-Ethernet, чтобы это работало.

Примечание. Подключение Ethernet через функцию OTG может быть доступно не на всех смартфонах. Прежде чем пытаться, убедитесь, что ваш телефон поддерживает эту функцию.

10. Обратная зарядка телефона Android Phone

Многие современные смартфоны поддерживают обратную беспроводную зарядку, при которой можно зарядить QI-совместимый смартфон, поместив его на стеклянную заднюю панель поддерживаемого смартфона. Однако, если ваш телефон не поддерживает эту функцию, вы можете вместо этого использовать адаптер OTG для обратной зарядки устройства.

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

Еще один большой USB-накопитель для Android

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

Помимо OTG, в Android есть еще одна функция USB, о которой вам следует знать. Если вы еще не знаете об этом, прочтите статью об отладке Android по USB и о том, чем она хороша.

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

USB-кабель.

Высокоскоростной хост-контроллер USB поддерживает соединение между такими устройствами, как клавиатура, мышь, модем или принтер, и гарантирует, что операционная система компьютера распознает устройство. Операционная система использует хост-контроллер USB, чтобы не устанавливать отдельные драйверы для каждого подключенного устройства. Каждое USB-устройство взаимодействует с операционной системой компьютера на стандартном языке программирования, таком как C++.

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

Существует несколько типов интерфейсов хост-контроллера USB, которые поддерживают различные типы портов USB. Открытый интерфейс хост-контроллера (OHCI) является стандартом для большинства и даже поддерживает USB 1.1. Универсальный интерфейс хост-контроллера (UHCI) от Intel® поддерживает USB 1 как на высокой, так и на низкой скорости. Другие типы интерфейсов хост-контроллера включают расширенный интерфейс хост-контроллера (EHCI), который считается сверхбыстрым в соответствии с общедоступными стандартами, и новейший стандарт хост-контроллера, называемый расширяемым интерфейсом хост-контроллера (xHCI). xHCI был разработан для повышения скорости, мощности и эффективности по сравнению с его предшественниками.

Распознавание стандартных устройств, таких как клавиатура и мышь, операционной системой обычно выполняется автоматически хост-контроллером. Протокол хост-контроллера объединяет процесс связи нескольких устройств для обеспечения эффективной и одновременной передачи данных. Хорошим примером является случай, когда пользователь компьютера вводит данные в программу обработки текстов, используя одновременно клавиатуру и мышь.

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

Многие хост-контроллеры обратно совместимы, поэтому устройство USB 3.0 можно использовать в порту USB 2.0.

  1. Выберите компоненты RTE, необходимые для вашего приложения. .
  2. Настройте USB-хост, который подключает ПО промежуточного слоя USB к периферийному USB-устройству микроконтроллера.
  3. Настройте системные ресурсы в соответствии с требованиями к ресурсам компонента USB-хост.
  4. Настройте параметры подключенных USB-устройств.
  5. Реализуйте код приложения, используя шаблоны кода, которые предоставляются для поддержки различных классов USB-устройств.

Выбор компонента RTE

Выбор компонента RTE выполняется в несколько шагов:

  1. От USB-компонента:
    • Выберите USB:CORE, обеспечивающий основные функции, необходимые для связи по USB.
    • Задайте для USB:Host значение «1». Это создает один USB-хост для связи с подключенными USB-устройствами.
    • Выберите необходимую поддержку классов USB (HID/MSC/CDC/Custom Class). Например, выберите USB:Host:HID, чтобы поддерживать только устройства класса HID.
  2. Из компонента драйверов:
    • Выберите подходящий драйвер USB-хоста, подходящий для вашего приложения.
  3. Из компонента устройства:
    • В зависимости от результатов проверки могут потребоваться дополнительные драйверы для конкретных устройств.
  4. Из компонента CMSIS:
    • Выберите CMSIS:CORE, чтобы предоставить процессору интерфейс ядра.
    • Выберите подходящую CMSIS:RTOS, необходимую для USB-компонента.

USB-драйвер и контроллер

Драйвер хоста USB и контроллер USB микроконтроллера должны быть правильно настроены. В частности, это означает:

  • Драйвер USB-хоста, выбранный в разделе «Драйверы», обычно настраивается с помощью файла конфигурации RTE_Device.h.Хотя этот файл предоставляет несколько параметров, обычно достаточно включить периферийное устройство USB Host, связанное с этим драйвером. Для некоторых микроконтроллеров могут потребоваться настройки, связанные с интерфейсом физического уровня (PHY), питанием USB VBUS и защитой от перегрузки по току.
  • Контроллеру USB микроконтроллера обычно требуются определенные настройки часов. Обратитесь к руководству пользователя микроконтроллера, чтобы понять требования. В качестве альтернативы вы можете скопировать настройку примера USB-хоста, который предоставляется для различных оценочных плат.

Конфигурация хоста USB

Файл USBH_Config_n.c содержит дополнительные настройки для конкретного хоста USB:

  • DriverNumber задается в соответствии с выбранным USB-контроллером. Для одиночных контроллеров USB-устройств это будет «0».
  • Некоторые микроконтроллеры могут использовать различные аппаратные интерфейсы ControllerInterfaces. Обратитесь к руководству пользователя выбранного микроконтроллера, чтобы выбрать правильную настройку.

Подробный список всех доступных настроек см. в разделе Конфигурация.

Конфигурация системных ресурсов

  • Дополнительный размер стека 512 байт. Это можно настроить в файле startup_device.s устройства ( Stack_Size ).
  • Компонент USB Host использует потоки CMSIS-RTOS. В зависимости от количества экземпляров вам необходимо настроить дополнительные параметры в файле RTX_Conf_CM.c.

Для получения дополнительной информации см. раздел Требования к ресурсам компонента USB Host.

Настройка подключаемых USB-устройств

В файлах USBH_Config_HID.h, USBH_Config_MSC.h, USBH_Config_CDC.h или USBH_Config_CustomClass.h вы можете указать количество одновременных USB-устройств, которые будет поддерживать USB-хост. Это влияет на объем памяти, который будет зарезервирован в вашем приложении для подключения USB-устройств. Примеры USB-хостов показывают, как настроить USB-хост для взаимодействия с различными периферийными устройствами HID, MSC или CDC.

Реализация пользовательского кода

Файлы шаблонов пользовательского кода содержат шаблоны функций для поддержки различных классов USB-устройств на USB-хосте. Доступные функции объясняются в разделе «Справочник» хост-компонента USB. Эти подпрограммы могут быть адаптированы к потребностям приложения микроконтроллера, если требуется функциональность, отличная от стандартной.

На следующем рисунке показаны отношения компонентов RTE с периферийным устройством хоста USB микроконтроллера (контроллером USB). Компоненты RTE предоставляют файлы конфигурации и шаблоны пользовательского кода. Файлы конфигурации настраивают компоненты RTE, аппаратные интерфейсы, ресурсы памяти и параметры USB-хоста. Шаблоны пользовательского кода обеспечивают основу для реализации поддержки различных классов USB-устройств.

  1. Выберите компоненты RTE, необходимые для вашего приложения. .
  2. Настройте USB-хост, который подключает ПО промежуточного слоя USB к периферийному USB-устройству микроконтроллера.
  3. Настройте системные ресурсы в соответствии с требованиями к ресурсам компонента USB-хост.
  4. Настройте параметры подключенных USB-устройств.
  5. Реализуйте код приложения, используя шаблоны кода, которые предоставляются для поддержки различных классов USB-устройств. ваше приложение с помощью встроенных механизмов USB-компонента.

Выбор компонента RTE

Выбор компонента RTE выполняется в несколько шагов:

  1. От USB-компонента:
    • Выберите USB:CORE, обеспечивающий основные функции, необходимые для связи по USB.
    • Задайте для USB:Host значение «1». Это создает один USB-хост для связи с подключенными USB-устройствами.
    • Выберите необходимую поддержку классов USB (HID/MSC/CDC/Custom Class). Например, выберите USB:Host:HID, чтобы поддерживать только устройства класса HID.
  2. Из компонента драйверов:
    • Выберите подходящий драйвер USB-хоста, подходящий для вашего приложения.
  3. Из компонента устройства:
    • В зависимости от результатов проверки могут потребоваться дополнительные драйверы для конкретных устройств.
  4. Из компонента CMSIS:
    • Выберите CMSIS:CORE, чтобы предоставить процессору интерфейс ядра.
    • Выберите подходящую CMSIS:RTOS или CMSIS:RTOS2, необходимую для приложения.

USB-драйвер и контроллер

Драйвер хоста USB и контроллер USB микроконтроллера должны быть правильно настроены. В частности, это означает:

  • Драйвер USB-хоста, выбранный в разделе «Драйверы», обычно настраивается с помощью файла конфигурации RTE_Device.h.Хотя этот файл предоставляет несколько параметров, обычно достаточно включить периферийное устройство USB Host, связанное с этим драйвером. Для некоторых микроконтроллеров могут потребоваться настройки, связанные с интерфейсом физического уровня (PHY), питанием USB VBUS и защитой от перегрузки по току.
  • Контроллеру USB микроконтроллера обычно требуются определенные настройки часов. Обратитесь к руководству пользователя микроконтроллера, чтобы понять требования. В качестве альтернативы вы можете скопировать настройку примера USB-хоста, который предоставляется для различных оценочных плат.

Конфигурация хоста USB

Файл USBH_Config_n.c содержит дополнительные настройки для конкретного хоста USB:

  • DriverNumber задается в соответствии с выбранным USB-контроллером. Для одиночных контроллеров USB-устройств это будет «0».
  • Некоторые микроконтроллеры могут использовать различные аппаратные интерфейсы ControllerInterfaces. Обратитесь к руководству пользователя выбранного микроконтроллера, чтобы выбрать правильную настройку.

Подробный список всех доступных настроек см. в разделе Конфигурация.

Конфигурация системных ресурсов

  • Дополнительный размер стека 512 байт. Это можно настроить в файле устройства ( Stack_Size ).
  • Компонент USB-устройства использует потоки CMSIS-RTOS. В случае использования RTX v5 никаких изменений в настройках RTX не требуется, так как все ресурсы распределяются статически. В случае использования RTX v4 необходимо изменить следующие настройки в файле:
    • Увеличьте количество одновременно запущенных пользовательских потоков на количество потоков, требуемое хостом USB.
    • Увеличьте количество потоков с заданным пользователем размером стека на количество потоков, требуемое хостом USB.
    • Увеличить общий размер стека [байт] для потоков с заданным пользователем размером стека на размер потоков, требуемый хостом USB
    • Включить пользовательские таймеры

    Для получения дополнительной информации см. раздел Требования к ресурсам компонента USB Host.

    Настройка подключаемых USB-устройств

    В файлах USBH_Config_HID.h, USBH_Config_MSC.h, USBH_Config_CDC.h или USBH_Config_CustomClass.h вы можете указать количество одновременных USB-устройств, которые будет поддерживать USB-хост. Это влияет на объем памяти, который будет зарезервирован в вашем приложении для подключения USB-устройств. В примерах показано, как настроить USB-хост для взаимодействия с различными периферийными устройствами HID, MSC или CDC.

    Реализация пользовательского кода

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

    Для компонента USB Host доступны следующие шаблоны:

    Имя шаблона Назначение
    USBH_MSC.c Необходимые функции для поддержки устройства МСК. Шаблон можно найти здесь.
    USBH_PL2303.c Необходимые функции для поддержки адаптера Prolific PL2303 USB-to-serial RS232. Шаблон можно найти здесь.
    USBH_User_CustomClass.c Необходимые функции для поддержки любого класса USB-устройств. Шаблон можно найти здесь.

    Отладка

    Компонент USB Host распространяется в виде библиотеки и не допускает прямой отладки своего кода. Однако его можно легко настроить для создания событий отладки и обеспечения динамической видимости работы компонента.

    Следующие варианты могут быть выбраны для программного компонента USB:CORE в окне Manage Run-Time Environment:

    • Отладка: этот вариант поддерживает аннотации событий и упрощает анализ внутренней работы хост-компонента USB во время отладки приложения. Ниже в разделе «Поддержка регистратора событий» объясняется, как настроить и использовать этот вариант.
    • Выпуск: этот вариант не включает дополнительный отладочный код. Используйте этот вариант при развертывании приложения.

    На рисунке ниже показан выбор варианта отладки.

    USB Host:Debug Events описывает события, реализованные в компоненте USB-устройства.

    Поддержка регистратора событий

    это мощный инструмент, обеспечивающий видимость динамического выполнения программы.

    Компонент хоста USB генерирует широкий набор событий отладки для регистратора событий и реализует необходимую инфраструктуру для взаимодействия с ним.

    1. : в диалоговом окне управления RTE выберите вариант Debug для программного компонента USB:CORE.
    2. : в диалоговом окне управления RTE включить программный компонент Compiler:Event Recorder.
    3. Убедитесь, что регистратор событий инициализирован, если используется CMSIS-RTOS2 RTX v5, или вызовом функции в коде приложения. : при необходимости измените конфигурацию регистратора событий по умолчанию.
    4. Создайте код приложения, загрузите его на целевое оборудование и запустите сеанс отладки.

    Теперь, когда USB-хост генерирует информацию о событии, ее можно просмотреть в папке .

    Конфигурация регистратора событий

    В этом разделе описываются параметры конфигурации регистратора событий. Для использования требуется вариант отладки программного компонента USB:CORE; обратитесь к разделу Поддержка регистратора событий для получения дополнительной информации.

    Конфигурация генерации событий USB

    Выбор варианта отладки USB:CORE добавит в ваш проект файл USB_Debug.c. Используйте этот файл, чтобы настроить конфигурацию генерации событий для ядра USB, драйверов и классов устройств отдельно. Этот файл доступен для компонентов USB-устройства и хоста.

    Для настройки генерации событий каждого модуля доступны следующие настройки:

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