Введение

Спецификация для USB-устройств

USB On The Go (USB OTG или просто OTG) — это спецификация, впервые применённая в конце 2001 года, которая позволяет USB-устройствам, таким как планшеты или смартфоны, также функционировать в роли хоста, что даёт возможность подключать к ним другие USB-устройства, например USB-флеш-накопители, цифровые камеры, мыши или клавиатуры. Использование USB OTG позволяет устройствам переключаться между ролями хоста и устройства. Например, смартфон может считывать данные со съемных носителей, выступая в роли хост-устройства, но представляться как USB-устройство хранения данных при подключении к хост-компьютеру. USB OTG вводит понятие устройства, способного выполнять как хост-функцию, так и функцию периферийного устройства. Когда два USB-устройства соединены, и одно из них является USB OTG-устройством, между ними устанавливается канал связи. Устройство, управляющее каналом связи, называется хостом, а другое — периферийным устройством. USB OTG определяет две роли устройств: OTG A и OTG B, определяя, какое из них обеспечивает питание канала связи и какое изначально выступает в роли хоста. Устройство OTG A является источником питания, а устройство OTG B — потребителем питания. В конфигурации по умолчанию устройство A действует как USB-хост, а устройство B — как USB-периферийное устройство. Роли хоста и периферийного устройства могут быть изменены впоследствии с помощью протокола согласования хоста (HNP). Назначение начальной роли каждого устройства определяется схемой подключения идентификационного пина.

Обзор

Стандартный USB использует архитектуру «хост-устройство», где хост выступает в роли хост-устройства для всей шины, а USB-устройство – в роли периферийного устройства. При реализации стандартного USB устройства должны принимать одну из этих ролей: компьютеры обычно настраиваются как хосты, а (например) принтеры – как периферийные устройства. До появления USB OTG мобильные телефоны часто реализовывали только периферийную функциональность для упрощения передачи данных на компьютер и с него. Такие телефоны не могли напрямую подключаться к принтерам, так как также работали в режиме периферийного устройства. USB OTG напрямую решает эту проблему, являясь дополнением к спецификации Universal Serial Bus (USB) 2.0, первоначально согласованной в конце 2001 года и впоследствии пересмотренной. Последняя версия дополнения также определяет поведение встроенного хоста, обладающего специализированными возможностями и использующего тот же порт USB Standard A, что и ПК. Устройства SuperSpeed OTG, встроенные хосты и периферийные устройства поддерживаются посредством дополнения USB OTG и встроенного хоста к спецификации USB 3.0.

Протоколы

В дополнении к спецификации USB 2.0 были введены три новых протокола связи:
Протокол обнаружения подключения (ADP): позволяет устройству OTG, встроенному хосту или USB-устройству определять статус подключения в отсутствие питания на USB-шине, обеспечивая как поведение, основанное на подключении, так и возможность отображения статуса подключения. Это достигается путем периодического измерения емкости на USB-порту для определения наличия другого устройства, отключенного кабеля или отсутствия кабеля. При обнаружении достаточного изменения емкости, указывающего на подключение устройства, устройство A подаст питание на USB-шину и будет искать подключенное устройство. В то же время устройство B сгенерирует SRP (см. ниже) и будет ждать подачи питания на USB-шину.
Протокол запроса сеанса (SRP): позволяет обоим взаимодействующим устройствам контролировать, когда активен сеанс питания соединения; в стандартном USB это может делать только хост. Это обеспечивает точный контроль над энергопотреблением, что особенно важно для устройств, работающих от батареи, таких как камеры и мобильные телефоны. OTG или встроенный хост могут оставить USB-соединение обесточенным до тех пор, пока периферийное устройство (которое может быть OTG или стандартным USB-устройством) не потребует питания. OTG и встроенные хосты обычно имеют ограниченный запас батареи, поэтому отключение USB-соединения помогает продлить время автономной работы.
Протокол согласования ролей хоста (HNP): позволяет двум устройствам обмениваться ролями хоста и периферии, при условии, что оба являются OTG-устройствами с двойной ролью. Используя HNP для изменения ролей хоста и периферии, устройство USB OTG может получить контроль над планированием передачи данных. Таким образом, любое устройство OTG может инициировать передачу данных по USB OTG-шине. Последняя версия дополнения также представила опрос HNP, при котором хост-устройство периодически опрашивает периферийное устройство во время активного сеанса, чтобы определить, желает ли оно стать хостом. Основная цель HNP — удовлетворить пользователей, которые подключили устройства A и B (см. ниже) в неправильной ориентации для выполняемой задачи. Например, принтер подключен как устройство A (хост), но не может функционировать как хост для определенной камеры, поскольку он не понимает представление заданий на печать камерой. Когда камера знает, как взаимодействовать с принтером, принтер использует HNP для переключения в роль устройства, а камера становится хостом, чтобы изображения, хранящиеся на камере, можно было распечатать без повторного подключения кабелей.
Новые протоколы OTG не могут проходить через стандартный USB-концентратор, поскольку они основаны на электрической передаче сигналов по выделенной линии.
В дополнении к спецификации USB 3.0 к USB OTG и встроенному хосту вводится дополнительный протокол связи:
Протокол смены ролей (RSP): RSP достигает той же цели, что и HNP (т.е. смена ролей), расширяя стандартные механизмы, предусмотренные спецификацией USB 3.0. Продукты, соответствующие дополнению USB OTG и встроенному хосту к спецификации USB 3.0, также должны соответствовать дополнению USB 2.0 для обеспечения обратной совместимости. Устройства SuperSpeed OTG (SS OTG) должны поддерживать RSP. Устройства OTG с поддержкой периферийной передачи SuperSpeed (SSPC OTG) не обязаны поддерживать RSP, поскольку они могут работать только в режиме SuperSpeed как периферийное устройство; у них нет хоста SuperSpeed, поэтому они могут менять роли только с помощью HNP на скоростях передачи данных USB 2.0.

Список целевых периферийных устройств (TPL)

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

Мини-разъемы OTG

В оригинальном стандарте USB OTG был представлен разъем mini AB, который был заменен на micro AB в более поздних версиях (начиная с ревизии 1.4). Он может принимать как штекер mini A, так и штекер mini B, при этом адаптеры mini A позволяют подключение к стандартным USB-кабелям от периферийных устройств. Стандартный кабель OTG имеет штекер mini A на одном конце и штекер mini B на другом (не может иметь два штекера одного типа). Устройство, в которое вставлен штекер mini A, становится OTG A-устройством, а устройство, в которое вставлен штекер mini B, становится B-устройством (см. выше). Тип вставленного штекера определяется состоянием ID-контакта (ID-контакт штекера mini A заземлен, а ID-контакт штекера mini B – не заземлен). Также существуют разъемы mini A, используемые там, где требуется компактный хост-порт, но поддержка OTG при этом отсутствует.

Совместимость с другими технологиями

USB OTG-устройства обратно совместимы с USB 2.0 (USB 3.0 для устройств SuperSpeed OTG) и будут функционировать как стандартные USB-хосты или устройства при подключении к стандартным (не OTG) USB-устройствам. Основное исключение заключается в том, что OTG-хосты обязаны обеспечивать только достаточное питание для продуктов, перечисленных в TPL, что может быть недостаточно для подключения к периферийному устройству, не входящему в этот список. Использование внешнего USB-концентратора с собственным питанием может решить эту проблему, если он поддерживается, поскольку он будет обеспечивать питание в соответствии со спецификациями USB 2.0 или USB 3.0. Между версиями 1.3 и 2.0 дополнения к спецификации OTG возникли некоторые несовместимости в протоколах HNP и SRP, что может привести к проблемам совместимости при использовании этих версий протокола.

Совместимость зарядного устройства

Некоторые устройства могут использовать свои USB-порты для зарядки встроенных аккумуляторов, а другие могут определять выделенное зарядное устройство и потреблять ток более 500 мА (0,5 А), что позволяет им заряжаться быстрее. Устройства OTG допускают использование любого из этих вариантов.