# USB On-The-Go

USB On-The-Go conocido también por el acrónimo USB OTG y como USB host es una extensión de la norma USB 2.0, utilizada por primera vez a fines de 2001, que permite a los dispositivos USB tener mayor flexibilidad en la gestión de la interconexión.
Permite que ciertos dispositivos como tabletas o teléfonos inteligentes, actúen como host, lo que permite conectar otros dispositivos USB, como unidades flash USB, cámaras digitales, mouse o teclados. El uso de USB OTG permite que esos dispositivos cambien entre los roles de host y dispositivo. Un teléfono móvil puede leer desde medios extraíbles como dispositivo host, pero presentarse como un dispositivo de almacenamiento masivo USB cuando se conecta a una computadora host.
USB OTG introduce el concepto de un dispositivo que realiza funciones tanto de host como de periférico: cada vez que se conectan dos dispositivos USB y uno de ellos es un dispositivo USB OTG, establecen un enlace de comunicación. El dispositivo que controla el enlace se llama Host, mientras que el otro se llama Periférico.
USB OTG define dos funciones para los dispositivos: dispositivo OTG A y dispositivo OTG B, especificando qué lado suministra energía al enlace y cuál es inicialmente el host. El dispositivo OTG A es un proveedor de energía y un dispositivo OTG B es un consumidor de energía. En la configuración de enlace predeterminada, el dispositivo A actúa como un host USB y el dispositivo B actúa como un periférico USB. Los modos de host y periférico se pueden intercambiar más tarde mediante el protocolo de negociación de host (HNP).
La especificación USB 3.1 junto con el conector USB denominado "Tipo C", contempla esta funcionalidad sin necesidad de adaptadores o conectores especiales.

## Principio

El estándar USB (USB 1.1/2.0) utiliza una arquitectura maestro/esclavo: un concentrador USB (en inglés, hub USB) actúa como USB maestro, mientras un dispositivo USB actúa como esclavo. Solo los concentradores USB pueden gestionar la configuración y la transferencia de datos durante la conexión.
La norma USB-OTG cambia esta situación. Los dispositivos compatibles con USB-OTG son capaces de abrir una sesión, controlar la conexión e intercambiar las funciones maestro/dispositivo.
Para ello, la norma USB-OTG introduce dos nuevos protocolos:
* el protocolo SRP (Session Request Protocol: protocolo de solicitud de sesión) y
* el protocolo HNP (Host Negotiation Protocol: protocolo de negociación de host).
Los dispositivos USB OTG son compatibles con USB 1.1/2.0 y se comportan como un dispositivo USB estándar cuando se conectan con dispositivos USB tradicionales (no OTG).

## Conexión

Los periféricos compatibles OTG disponen de un conector de tipo mini AB (o micro AB), es decir, capaz de aceptar un conector A (maestro) o B (esclavo).
En el caso de una conexión OTG-OTG, se realiza una conexión mediante un cable miniA - miniB (o microA - microB). Es la posición del conector del cable sobre la toma mini AB/micro AB en cada extremo, lo que permitirá definir cuál de los dos dispositivos OTG será el anfitrión. En segundo lugar, puede haber un cambio de roles tras una etapa de negociación entre los dos sistemas OTG (Protocolo HNP).
No es necesario que ambos dispositivos sean compatibles con OTG para comunicarse entre ellos, es suficiente que uno de ellos lo sea, disfrutando por tanto de la capacidad de conectarse punto a punto. Entonces esta unidad sería lógicamente el elemento maestro.

## Aplicaciones

Queda abierto un amplio campo de aplicaciones por razón de la capacidad de enviar datos sin tener que utilizar un controlador USB maestro (que hasta esta norma, era típicamente una computadora de escritorio), para enumerar algunas: una cámara de fotos puede enviar las imágenes directamente a una impresora, o acceder a un disco duro, las cámaras de vídeo pueden conectarse a los grabadores de DVD, las tabletas y los teléfonos inteligentes pueden utilizar teclados, memorias y módems USB, etcétera.

## Especificaciones

USB OTG es parte de un suplemento de la especificación Universal Serial Bus (USB) 2.0 acordada originalmente a fines de 2001 y revisada posteriormente. La última versión del suplemento también define el comportamiento de un host integrado que tiene capacidades específicas y el mismo puerto USB estándar A que usan las PC.
Los dispositivos SuperSpeed OTG, los hosts integrados y los periféricos son compatibles a través del USB OTG y el suplemento de host integrado de la especificación USB 3.0.

## Protocolos

El USB OTG y el Suplemento de host incorporado a la especificación USB 2.0 introdujeron tres nuevos protocolos de comunicación:
Protocolo de detección de conexión (ADP): permite que un dispositivo OTG, un host integrado o un dispositivo USB determinen el estado de la conexión en ausencia de alimentación en el bus USB, lo que permite tanto el comportamiento basado en la inserción como la capacidad de mostrar el estado de la conexión. Lo hace midiendo periódicamente la capacitancia en el puerto USB para determinar si hay otro dispositivo conectado, un cable colgando o sin cable. Cuando se detecta un cambio lo suficientemente grande en la capacitancia para indicar la conexión del dispositivo, un dispositivo A proporcionará energía al bus USB y buscará la conexión del dispositivo. Al mismo tiempo, un dispositivo B generará SRP (ver más abajo) y esperará a que se encienda el bus USB.
* Protocolo de solicitud de sesión (SRP): permite que ambos dispositivos que se comunican controlen cuándo está activa la sesión de energía del enlace; en USB estándar, solo el anfitrión es capaz de hacerlo. Eso permite un control preciso sobre el consumo de energía, que es muy importante para los dispositivos que funcionan con baterías, como por ejemplo cámaras y teléfonos móviles. El host integrado o OTG puede dejar el enlace USB sin alimentación hasta que el periférico (que puede ser un dispositivo OTG o USB estándar) requiera alimentación. Los hosts integrados y OTG suelen tener poca energía de batería de sobra, por lo que dejar el enlace USB sin alimentación ayuda a extender el tiempo de ejecución de la batería.
* Protocolo de negociación de host (HNP): permite que los dos dispositivos intercambien sus funciones de host/periférico, siempre que ambos sean dispositivos OTG de doble función. Al usar HNP para invertir los roles de host/periférico, el dispositivo USB OTG es capaz de adquirir el control de la planifiación de la transferencia de datos. Por lo tanto, cualquier dispositivo OTG es capaz de iniciar la transferencia de datos a través del bus USB OTG. La última versión del suplemento también introdujo el sondeo HNP, en el que el dispositivo host sondea periódicamente el periférico durante una sesión activa para determinar si desea convertirse en host.
* El propósito principal de HNP es acomodar a los usuarios que han conectado los dispositivos A y B (ver más abajo) en la dirección incorrecta para la tarea que desean realizar. Por ejemplo, una impresora está conectada como dispositivo A (host), pero no puede funcionar como host para una cámara en particular, ya que no comprende la representación de la cámara de los trabajos de impresión. Cuando esa cámara sepa cómo comunicarse con la impresora, la impresora usará HNP para cambiar a la función de esclavo, y la cámara se convertirá en el anfitrión para que las imágenes almacenadas en la cámara se puedan imprimir sin volver a conectar los cables. Los nuevos protocolos OTG no pueden pasar a través de un concentrador USB estándar, ya que se basan en la señalización eléctrica a través de un cable dedicado.
El USB OTG y el Suplemento de host incorporado a la especificación USB 3.0 introduce un protocolo de comunicación adicional:
* Protocolo de intercambio de roles (RSP): RSP logra el mismo propósito que HNP (es decir, intercambio de roles) al extender los mecanismos estándar proporcionados por la especificación USB 3.0. Los productos que siguen el USB OTG y el Suplemento de host incorporado a la especificación USB 3.0 también deben seguir el suplemento USB 2.0 para mantener la compatibilidad con versiones anteriores. Se requieren dispositivos SuperSpeed OTG (SS-OTG) para admitir RSP. Los dispositivos OTG con capacidad para periféricos SuperSpeed (SSPC-OTG) no son necesarios para admitir RSP, ya que solo pueden funcionar a SuperSpeed como un periférico; no tienen un host SuperSpeed y, por lo tanto, solo pueden intercambiar roles usando HNP a velocidades de datos USB 2.0.