diseño del sistema usb

diseño del sistema usb

La arquitectura de diseño de USB es asimétrica en su topología y consta de un host, una multitud de puertos USB descendentes y múltiples dispositivos periféricos conectados en una topología de estrella escalonada. Se pueden incluir concentradores USB adicionales en los niveles, lo que permite la ramificación en una estructura de árbol con hasta cinco niveles de niveles. Un host USB puede implementar múltiples controladores de host y cada controlador de host puede proporcionar uno o más puertos USB. Se pueden conectar hasta 127 dispositivos, incluidos los dispositivos concentradores, si los hay, a un único controlador host. Los dispositivos USB se conectan en serie a través de concentradores. Un concentrador, integrado en el controlador host, es el concentrador raíz.

Un dispositivo USB físico puede constar de varios subdispositivos lógicos a los que se hace referencia como funciones del dispositivo. Un solo dispositivo puede proporcionar varias funciones, por ejemplo, una cámara web (función de dispositivo de video) con un micrófono incorporado (función de dispositivo de audio). Este tipo de dispositivo se denomina dispositivo compuesto. Una alternativa a esto es el dispositivo compuesto, en el que el host asigna a cada dispositivo lógico una dirección distintiva y todos los dispositivos lógicos se conectan a un concentrador integrado que se conecta al cable USB físico.

Diagrama: dentro de un dispositivo hay varios puntos finales, cada uno de los cuales está conectado mediante tuberías lógicas a un controlador host. Los datos en cada tubería fluyen en una dirección, aunque hay una mezcla que va y viene del controlador principal.

La comunicación del dispositivo USB se basa en tuberías (canales lógicos). Una tubería es una conexión desde el controlador de host a una entidad lógica, que se encuentra en un dispositivo y se denomina punto final. Debido a que las tuberías corresponden 1 a 1 a los puntos finales, los términos a veces se usan indistintamente. Un dispositivo USB puede tener hasta 32 puntos finales (16 ENTRADAS, 16 SALIDAS), aunque es raro tener tantos. El dispositivo define y numera un punto final durante la inicialización (el período posterior a la conexión física llamado "enumeración") y, por lo tanto, es relativamente permanente, mientras que una tubería se puede abrir y cerrar.


Los puntos finales USB realmente residen en el dispositivo conectado: los canales hacia el host se denominan tuberías.

Hay dos tipos de canalizaciones: canalizaciones de flujo y de mensajes. Una canalización de mensajes es bidireccional y se utiliza para transferencias de control. Las canalizaciones de mensajes se utilizan normalmente para comandos cortos y simples al dispositivo y una respuesta de estado, utilizadas, por ejemplo, por la canalización de control de bus número 0. Una canalización de flujo es una canalización unidireccional conectada a un punto final unidireccional que transfiere datos mediante una transferencia isócrona, interrumpida o masiva:

• transferencias isócronas: a cierta velocidad de datos garantizada (a menudo, pero no necesariamente, lo más rápido posible) pero con posible pérdida de datos (por ejemplo, audio o vídeo en tiempo real).
• transferencias de interrupción: dispositivos que necesitan respuestas rápidas garantizadas (latencia limitada) (por ejemplo, dispositivos señaladores y teclados).
• transferencias masivas: grandes transferencias esporádicas que utilizan todo el ancho de banda disponible restante, pero sin garantías de ancho de banda o latencia (por ejemplo, transferencias de archivos).

Un punto final de una tubería es direccionable con una tupla (dirección_dispositivo, número_punto_final) como se especifica en un paquete TOKEN que el host envía cuando quiere iniciar una sesión de transferencia de datos. Si la dirección de la transferencia de datos es desde el host al punto final, el host envía un paquete OUT (una especialización de un paquete TOKEN) que tiene la dirección del dispositivo y el número de punto final deseados. Si la dirección de la transferencia de datos es desde el dispositivo al host, el host envía un paquete IN. Si el punto final de destino es un punto final unidireccional cuya dirección designada por el fabricante no coincide con el paquete TOKEN (por ejemplo, la dirección designada por el fabricante es IN mientras que el paquete TOKEN es un paquete OUT), el paquete TOKEN se ignora. En caso contrario, se acepta y se puede iniciar la transacción de datos. Por otro lado, un punto final bidireccional acepta paquetes de ENTRADA y SALIDA.

Los puntos finales se agrupan en interfaces y cada interfaz está asociada con una única función del dispositivo. Una excepción a esto es el punto final cero, que se utiliza para la configuración del dispositivo y no está asociado con ninguna interfaz. Una función de dispositivo único compuesta de interfaces controladas independientemente se denomina dispositivo compuesto. Un dispositivo compuesto solo tiene una dirección de dispositivo porque el host solo asigna una dirección de dispositivo a una función.


Dos tomas USB estándar A en la parte frontal de una computadora

Cuando un dispositivo USB se conecta por primera vez a un host USB, se inicia el proceso de enumeración del dispositivo USB. La enumeración comienza enviando una señal de reinicio al dispositivo USB. La velocidad de datos del dispositivo USB se determina durante la señalización de reinicio. Después del reinicio, el host lee la información del dispositivo USB y al dispositivo se le asigna una dirección única de 7 bits. Si el dispositivo es compatible con el host, se cargan los controladores de dispositivo necesarios para comunicarse con el dispositivo y el dispositivo se configura en un estado configurado. Si se reinicia el host USB, el proceso de enumeración se repite para todos los dispositivos conectados.

El controlador host dirige el flujo de tráfico a los dispositivos, por lo que ningún dispositivo USB puede transferir datos en el bus sin una solicitud explícita del controlador host. En USB 2.0, el controlador host sondea el bus en busca de tráfico, generalmente en forma circular. El rendimiento de cada puerto USB está determinado por la velocidad más lenta del puerto USB o del dispositivo USB conectado al puerto.

Los concentradores USB 2.0 de alta velocidad contienen dispositivos llamados traductores de transacciones que convierten entre buses USB 2.0 de alta velocidad y buses de velocidad completa y baja. Cuando un concentrador USB 2.0 de alta velocidad se conecta a un concentrador o host USB de alta velocidad, funciona en modo de alta velocidad. Luego, el concentrador USB usa un traductor de transacciones por concentrador para crear un bus de velocidad completa/baja enrutado a todos los dispositivos de velocidad completa y baja en el concentrador, o usa un traductor de transacciones por puerto para crear un bus aislado de velocidad completa/baja por puerto en el concentrador.

Debido a que hay dos controladores separados en cada host USB 3.0, los dispositivos USB 3.0 transmiten y reciben velocidades de datos USB 3.0 independientemente de los dispositivos USB 2.0 o anteriores conectados a ese host. Las tarifas de datos operativos para dispositivos anteriores se establecen de forma heredada.