Введение
Спецификация для 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.
Attach Detection Protocol (ADP): Allows an OTG device, embedded host or USB device to determine attachment status in the absence of power on the USB bus, enabling both insertion based behavior and the capability to display attachment status. It does so by periodically measuring the capacitance on the USB port to determine whether there is another device attached, a dangling cable, or no cable. When a large enough change in capacitance is detected to indicate device attachment, an A device will provide power to the USB bus and look for device connection. At the same time, a B device will generate SRP (see below) and wait for the USB bus to become powered. Session Request Protocol (SRP): Allows both communicating devices to control when the link's power session is active; in standard USB, only the host is capable of doing so. That allows fine control over the power consumption, which is very important for battery operated devices such as cameras and mobile phones. The OTG or embedded host can leave the USB link unpowered until the peripheral (which can be an OTG or standard USB device) requires power. OTG and embedded hosts typically have little battery power to spare, so leaving the USB link unpowered helps in extending the battery runtime. Host Negotiation Protocol (HNP): Allows the two devices to exchange their host/peripheral roles, provided both are OTG dual role devices. By using HNP for reversing host/peripheral roles, the USB OTG device is capable of acquiring control of data transfer scheduling. Thus, any OTG device is capable of initiating data transfer over USB OTG bus. The latest version of the supplement also introduced HNP polling, in which the host device periodically polls the peripheral during an active session to determine whether it wishes to become a host. The main purpose of HNP is to accommodate users who have connected the A and B devices (see below) in the wrong direction for the task they want to perform. For example, a printer is connected as the A device (host), but cannot function as the host for a particular camera, since it does not understand the camera's representation of print jobs. When that camera knows how to talk to the printer, the printer will use HNP to switch to the device role, with the camera becoming the host so pictures stored on the camera can be printed out without reconnecting the cables. The new OTG protocols cannot pass through a standard USB hub since they are based on electrical signaling via a dedicated wire. The USB OTG and Embedded Host Supplement to the USB 3.0 specification introduces an additional communication protocol:
Role Swap Protocol (RSP): RSP achieves the same purpose as HNP (i. e., role swapping) by extending standard mechanisms provided by the USB 3.0 specification. Products following the USB OTG and Embedded Host Supplement to the USB 3.0 specification are also required to follow the USB 2.0 supplement in order to maintain backwards compatibility. SuperSpeed OTG devices (SS OTG) are required to support RSP. SuperSpeed Peripheral Capable OTG devices (SSPC OTG) are not required to support RSP since they can only operate at SuperSpeed as a peripheral; they have no SuperSpeed host and so can only role swap using HNP at USB 2.0 data rates.
Список целевых периферийных устройств (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 допускают использование любого из этих вариантов.