Universal Serial Bus (USB) es la interfaz de facto para que los periféricos de la computadora se comuniquen con las computadoras personales. La interfaz que vio la luz a mediados de la década de 1990 fue un esfuerzo conjunto de siete empresas: Compaq, DEC, IBM, Intel, Microsoft, Nortel y NEC. Estas empresas tenían la intención de reemplazar los entonces puertos paralelos y cargadores de energía externos con un estándar de comunicación universal que podría simplificar el intercambio de datos y también duplicar la tarea de suministro de energía.
Hoy en día, USB es la interfaz estándar y obligatoria en casi todas las placas base, computadoras de placa única y placas de microcontroladores integrados, y en casi todos los periféricos digitales, desde periféricos de computadora comunes como teclados, mouse y joysticks, hasta dispositivos digitales inteligentes, como cámaras. , pendrives, teléfonos inteligentes. y tabletas vienen equipadas con puerto(s) USB. Hasta ahora, se lanzó USB 3.1 (lanzado en julio de 2013) y el USB Implementers Forum ahora mantiene y desarrolla el estándar.
Cualquier interfaz USB conecta dos dispositivos donde un dispositivo está conectado como Host y el otro dispositivo como periférico. Por ejemplo, cuando se inserta una unidad flash USB (pen drive) en el puerto USB de una computadora personal, la unidad flash es el periférico y la computadora personal es el dispositivo host. Aquí, "Host" significa que la comunicación de datos es administrada por el dispositivo host con la ayuda del software controlador correspondiente. Se pueden conectar muchos periféricos a un único dispositivo host. Incluso un único puerto USB se puede ampliar a varios puertos USB mediante un concentrador de extensión.
Las primeras versiones de USB (versiones preliminares y USB 1.0) se desarrollaron para dispositivos más lentos. Pero en el año 2000, la demanda de comunicaciones de alta velocidad aumentó y se lanzó el USB 2.0 para satisfacer las expectativas. La versión actual de USB 3.0 admite cuatro modos de transferencia de datos diferentes:
Modos | Actuación | Solicitud |
---|---|---|
Baja velocidad | 1,5 Mbit/s | Teclado, ratón, periféricos para juegos. |
Velocidad maxima | 12Mbps | Escáner, impresora, audio digital. |
Alta velocidad | 480Mbps | Banda ancha, almacenamiento masivo, imágenes. |
Super velocidad | 5 Gbit/s | Transmisión en tiempo real, dispositivos SDtorage portátiles |
Los lanzamientos de nuevas versiones de USB obviamente presentan velocidades de transferencia de datos más rápidas para diferentes formatos de archivos:
Tamaño de datos | Tiempo usado | ||
---|---|---|---|
USB 1.0 | USB 2.0 | USB 3.0 | |
Imagen/MP3 (4 MB) | 5,3 segundos | 0,1 seg. | 0,01 seg. |
Unidad flash (1GB) | 22 minutos | 33 segundos | 3,3 segundos |
Película HD (16 GB) | 9,3 horas | 13,9 minutos | 70 segundos |
Ventajas del USB:
• Interfaz única para múltiples dispositivos: la naturaleza versátil del USB elimina la complejidad de los diferentes tipos de conectores y requisitos de hardware para cada periférico.
• Configuración automática: el sistema operativo del dispositivo host solo necesita instalar el controlador del dispositivo USB una vez. A partir de entonces, siempre que se conecte el dispositivo periférico, el controlador se cargará automáticamente para configurar el dispositivo conectado. Normalmente, el controlador de dispositivo específico para cualquier periférico USB se instala automáticamente la primera vez que el dispositivo se conecta al host.
• Fácil de ampliar: Generalmente las computadoras personales (placas base) tienen 3 o 4 puertos USB. Si se necesitan más puertos USB, se pueden utilizar concentradores USB para agregar puertos externos.
• Velocidad: USB ofrece múltiples modos de velocidad que lo hacen más eficiente y rápido en comparación con RS232 y los puertos paralelos. Ofrece rangos de velocidad desde 1,5 Mbit/s hasta 5 Gbit/s. Con la introducción de USB 3.1 en 2013, la velocidad se incrementó a 10 Gbit/s. También se le conoce como Súper Velocidad+.
• Confiabilidad: El protocolo USB puede detectar errores durante la transferencia de datos y notificar al transmisor que retransmita los datos. El controlador USB genérico y el software del controlador específico garantizan una comunicación de datos sin errores.
• Bajo costo: Debido a su naturaleza versátil y alta demanda, se ha vuelto económico fabricar dispositivos con soporte USB ya que la fabricación se puede escalar fácilmente. Por lo tanto, los componentes, el conector y el cable también están fácilmente disponibles a bajo coste.
• Bajo consumo de energía: los dispositivos USB generalmente funcionan a +5 V y consumen corriente en miliamperios. Durante el modo de suspensión, el periférico consume 500 microamperios o menos para USB 2.0 y 2,5 miliamperios o menos para USB 3.0 .
Además de tantas ventajas, existen algunas limitaciones que hacen que el USB sea ineficaz para algunas tareas.
Limitaciones:
• Velocidad: Con la introducción del USB 3.0, es posible alcanzar los 5 Gbits/seg. Pero sigue siendo inferior a Gigabit Ethernet. FireWire 800 (IEEE-1394b) también compite con USB.
• Comunicación punto a punto: Según el estándar USB, la comunicación se produce entre el host y el periférico. Dos hosts no pueden comunicarse directamente entre sí. Lo mismo ocurre con un periférico. Por otro lado, interfaces como FireWire admiten comunicación de periférico a periférico. Para superar esta limitación, USB introdujo el concepto de OTG (On The Go). El dispositivo OTG normalmente funciona como un periférico, pero también puede funcionar como un host con cierta capacidad limitada cuando sea necesario.
• Distancia: Según los estándares USB, el cable de conexión puede tener una longitud de hasta 5 metros, más allá de los cuales es necesario utilizar concentradores USB para ampliar la conectividad.
• Transmisión: Universal Serial Bus no proporciona capacidad de transmisión, sólo se pueden comunicar mensajes individuales entre el host y el periférico.
Arquitectura del sistema USB
El USB está controlado por un host; Puede haber varios periféricos, pero sólo un host por bus. El host puede considerarse maestro y el periférico como esclavo, siendo el primero responsable de gestionar la conexión, las transacciones y la programación del ancho de banda. El sistema USB utiliza una topología de inicio en capas. Consta de direccionamiento de 7 bits; Esto significa que puede admitir hasta 127 dispositivos al mismo tiempo.
El cable de conexión consta de 4 hilos blindados, de los cuales dos son de alimentación (+5V y tierra) y el resto son señales de datos diferenciales de par trenzado que utilizan el esquema NRZI (Non Return to Zero invert) para transmitir datos. Para sincronizar los relojes del host y del receptor, se utiliza el campo Sync.
Puntos finales
En USB, la información fluye entre el host y el dispositivo. Los puntos finales son fuentes o sumideros de información en un canal de comunicación. Estos son bloques de memoria en un chip controlador que contienen buffers para transmisión y recepción.
Los dos puntos finales pueden tener el mismo número de punto final pero direcciones diferentes. Cuando el dispositivo está conectado, solo se puede acceder al punto final predeterminado 0. Este punto final recibe la solicitud de control y el estado del host durante el proceso de enumeración. Los otros puntos finales se declaran según el requisito después de la configuración del dispositivo.
Fig. 1: Imagen que muestra terminales USB
tubos
Una tubería es una conexión de datos lógica entre el software del controlador del host y el punto final del dispositivo. A través de este canal se intercambia información. Se crea durante el proceso de enumeración. Cuando se desconecta el dispositivo, se eliminan los tubos innecesarios.
Hay dos tipos de tubos:
• Canales de mensajes: son canales bidireccionales que siguen un formato de paquete definido. Están controlados por el anfitrión y solo admiten la transferencia de control.
• Tuberías de flujo: Son tuberías unidireccionales que no siguen ningún formato de datos específico. Pueden ser controlados por un host o dispositivo (periférico) y admiten transferencias masivas, isócronas y de interrupción.
El canal de control estándar es un tipo especial de canal de mensajes que es bidireccional y admite el tipo de transferencia de control. Utiliza el terminal 0-IN y el terminal 0-OUT. Se puede acceder a este tubo cuando hay un dispositivo conectado.
Fig. 2: Imagen que muestra los tubos lógicos USB
Tipos de transferencia
Hay cuatro tipos de modos o tipos de transferencia que se pueden utilizar para la comunicación:
• Transferencia de control: este tipo de transferencia se utiliza para transferir información de control durante la identificación y configuración del dispositivo.
• Transferencia masiva: En este tipo de transferencia se mueve una gran cantidad de datos y el tiempo no es un factor crítico aquí. Puede usarse como relleno.
• Detener transferencia: Este tipo de transferencia está destinada a transmitir pequeños datos con atención inmediata.
Fig. 3: Imagen que muestra los tipos de transferencia USB
Transacción
Una sola transacción contiene la transmisión de hasta tres paquetes. Estos paquetes son:
• Paquete Token: Este paquete siempre lo envía el Anfitrión.
• Paquete de datos: este paquete puede ser enviado por Host o Dispositivo.
Apretón de manos
El protocolo de enlace es un mecanismo para verificar el éxito o el fracaso de una solicitud o para verificar la entrega de un paquete. Esto se hace para evitar la pérdida de paquetes y garantizar una transmisión exitosa. Términos relacionados con el apretón de manos:
• ACUSE DE RECIBO – confirmación de recepción de datos (éxito)
• NO : el reconocimiento negativo significa que no hay datos.
• STOP : solicitud no admitida o punto final detenido
• NYET – todavía no. Puede ocurrir un caso cuando el dispositivo está ocupado y no está listo para el siguiente paquete de datos.
• ERROR – error de transacción dividida
Fig. 4: Imagen que muestra transacciones USB y protocolo de enlace
Estados del dispositivo USB
Un dispositivo USB puede tener varios estados posibles, como se describe a continuación:
• Estado adjunto: este estado ocurre cuando el dispositivo está conectado al Host.
• Estado encendido: Después de conectar el dispositivo, el Host suministra energía al dispositivo si no tiene su propia fuente de alimentación. El dispositivo no debe consumir más de 100 mA en este estado.
• Estado predeterminado: este estado ocurre cuando el dispositivo se reinicia y no se le ha asignado una dirección única. En este estado, el dispositivo utiliza el canal de control predeterminado para la comunicación y la dirección predeterminada 0.
• Estado direccionado: el dispositivo USB ingresa a este estado después de obtener una dirección única que se utilizará para futuras comunicaciones.
• Configurado: Cuando el Host obtiene la información necesaria del dispositivo, carga el controlador apropiado para el dispositivo. El host configura el dispositivo seleccionando una configuración. El dispositivo ahora está listo para realizar las operaciones para las que fue diseñado.
• Estado suspendido: el dispositivo USB entra en estado suspendido cuando el bus permanece inactivo durante más de 3 ms. En este estado, el dispositivo no debe consumir más de 500uA de corriente.
Enumeración
La enumeración sirve para hacer que el dispositivo periférico sea reconocible en el host. Para que la enumeración sea exitosa, se deben seguir algunos pasos:
• Escribir código de firmware para el chip controlador: Este firmware se encargará de enviar la descripción del dispositivo, decodificar los paquetes y responder al host.
• Es necesario instalar un controlador de dispositivo en el host: para Windows, se requiere un INF que contenga la información sobre el dispositivo. A veces, el propio dispositivo USB contiene controladores para el host.
Después de una enumeración exitosa, el host conocerá el dispositivo y se requerirá una aplicación para utilizar la comunicación USB. La aplicación utiliza la API del sistema operativo (por ejemplo, la API de Windows). La aplicación puede transmitir o recibir datos mediante Buffers.
Clase de dispositivo
Cada dispositivo USB tiene una clase de dispositivo que define la funcionalidad y el propósito de ese dispositivo. El host carga el controlador apropiado según la clase de dispositivo. Las clases de dispositivos más comunes son:
• Dispositivo de interfaz humana (HID): esta clase generalmente la utilizan dispositivos que utilizan la transferencia de interrupción para la comunicación de datos. Algunos ejemplos son el teclado, el mouse o el joystick.
• Almacenamiento masivo: Los dispositivos que necesitan transferir una gran cantidad de datos mediante transferencia masiva implementan esta clase. Algunos ejemplos son una unidad flash USB, un lector de tarjetas de memoria o un disco duro externo.
• Audio: Esta clase se implementa mediante dispositivos de audio como micrófono, altavoz, tarjeta de sonido externa, etc. El dispositivo utiliza transferencia isócrona para la comunicación de datos.
• Hub USB: Lo utilizan los hubs USB para ampliar el número de puertos.
• Imagen: utilizada por un dispositivo como una cámara web o un escáner.
• Impresora: Utilizada por impresoras láser, impresoras de inyección de tinta o máquinas CNC
• Inalámbrico: Utilizado por el adaptador externo para comunicación inalámbrica. Ejemplo: Bluetooth, 802.11
Fig. 5: Tabla que enumera las clases de dispositivos USB comunes
El siguiente artículo cubre el protocolo USB que define los distintos tipos de campos de paquetes. Estén atentos a los detalles de las próximas series USB.