Genealogía
Enero de 1996, versión 1.0.
Velocidad 1,5 Mbps.
Intel, Compaq, NEC, y Microsoft
Septiembre de 1998, versión 1.1.
Velocidades de 1,5 (Low Speed) ó 12Mbps (Full Speed)
Mejora en la asignación de ancho de banda a los dispositivos, a través de la incorporación
de nuevos tipos de transferencias.
Septiembre del 2000 versión 2.0
Velocidades de 1,5 (Low Speed), 12(Full Speed), o 480 Mbps (High Speed)
Alcance:
Nuestro estudio se centrará en la versión 1.1, tratando de introducir conceptos de 2.0.
I.M. LUIS ANGEL MARTINEZ CABRERA
1/10/2014 2
Expansión de periféricos sencilla
Detección automática de un nuevo dispositivo
Conexión y desconexión sin reiniciar el equipo
Soporte plug & play.
Velocidades de transferencia de hasta 480 Mbits/seg. a bajo costo.
Soporte a aplicaciones multimedia real time.
Integración con dispositivos electrónicos (VCR, por ejemplo), aumentando de esta manera las
capacidades de la PC.
Interfaz de software standard independiente del dispositivo que se desee conectar.
I.M. LUIS ANGEL MARTINEZ CABRERA
1/10/2014 3
El Hub es un dispositivo USB especial,
que extiende la cantidad de ports para
conectar dispositivos, convirtiendo un
punto de conexión simple, en múltiples
puntos de conexión. Por punto de
conexión entendemos port.
Funciones
Son dispositivos conectados al bus capaces de recibir y transmitir información
desde / hacia el Host Controller. Se denomina función debido a que no
necesariamente la correspondencia función dispositivo es uno a uno.
Ejemplos de funciones en un Bus USB: Teclado, Mouse, lapiz óptico, una
impresora, un modem (analógico, o ISDN) etc.
I.M. LUIS ANGEL MARTINEZ CABRERA
1/10/2014 4
Dispositivos USB II
Es posible tener varias
funciones implementadas
dentro de un dispositivo
conectado por un único
cable a un port USB. Estos son
conocidos como dispositivos
compuestos, y se presentan al
Host Controller como un Hub
con mas de un dispositivo no
removible.
I.M. LUIS ANGEL MARTINEZ CABRERA
1/10/2014 5
Alimentación:Desde este punto de vista, los dispositivos USB trabajan en dos
modos:
self powered
Bus powered.
Velocidad:La especificación 1.1 soporta dos tipos de dispositivos:
Dispositivos USB low speed, (1.5 Mbits/seg.)
Dispositivos USB full speed, (12Mbits/seg).
Además, garantiza la coexistencia de ambos tipos de dispositivo en el bus de
manera que no existan desincronizaciones con los mismos.
I.M. LUIS ANGEL MARTINEZ CABRERA
1/10/2014 6
Function Layer, es quien provee la
interfaz entre el usuario y el dispositivo.
USB Device Layer es la visión que tiene
el software del sistema para realizar las
operaciones previstas con el dispositivo
USB.
USB BUS Interface Layer es la capa del
modelo que resuelve la comunicación
física, a través de señalización de
hardware y transmisión de paquetes de
información, entre el Host y el
Dispositivo Físico.
I.M. LUIS ANGEL MARTINEZ
CABRERA 7
Cada conexión es punto a punto y se lleva a cabo mediante un cable
separado. Dicho cable está compuesto de cuatro hilos.
Se pueden conectar hasta 127 nodos o dispositivos diferentes al bus.
La señal se aplica en forma diferencial
VBUS , por su parte transporta 5Vcc entre D+ y D-, de modo tal que se
con respecto de la línea establece una comunicación Half Duplex.
GND que tiene la referencia eléctrica Es decir, se transmite en un único sentido
de tierra del sistema. en cada momento.
I.M. LUIS ANGEL MARTINEZ CABRERA
1/10/2014 8
Características Eléctricas I
Entrada de un port de
Hub, y de un Dispositivo
USB Full-speed
Entrada de un port de
Hub, y de un Dispositivo
USB Low-speed
Significa que un port desconectado “ve” 15 K. En el momento de conectar un dispositivo uno de los
conductores del Bus queda a 1,5 K con respecto a una fuente de entre 3V y 3,6V. La resistencia de
Thevenin (que no incluye los 15 K), no debe ser menor de 900 .
Estas condiciones eléctricas establecen la forma en que se detectan las conexiones y desconexiones de
dispositivos al bus.
I.M. LUIS ANGEL MARTINEZ CABRERA
1/10/2014 10
Características Eléctricas II
Señalización al desconectar un
dispositivo
Señalización al conectar un
dispositivo Full Speed
I.M. LUIS ANGEL MARTINEZ CABRERA
1/10/2014 11
Características Eléctricas III
Señalización al conectar un
dispositivo Low Speed
Señalización al resetear un
dispositivo
I.M. LUIS ANGEL MARTINEZ CABRERA
1/10/2014 12
Características Eléctricas IV
Niveles de Señalización
Estado del Bus En el conector de En el conector destino
origen
Requerido Aceptable
‘1’ Diferencial D+ > VOH(min) y D- (D+) – (D-) > (D+) – (D-) >
< VOL (max) 200 mV 200 mV
D+ >VIH (min)
‘0’ Diferencial D- > VOH(min) y D+ (D-) – (D+) > (D-) – (D+) >
< VOL (max) 200 mV 200 mV
D- >VIH (min)
Single Ended 0 D+ y D- < VOL D+ y D- < VIL D+ y D- < VIH
(SE0) (max) (max) (min)
Estado Dato “J”
Low Speed ‘0’ Diferencial ‘0’ Diferencial
Full Speed ‘1’ Diferencial ‘1’ Diferencial
Estado Dato
“K”
Low Speed ‘1’Diferencial ‘1’Diferencial
Full Speed ‘0’Diferencial ‘0’Diferencial
Start of Packet Las líneas de datos conmutan del estado Idle al estado
‘K’
I.M. LUIS ANGEL MARTINEZ CABRERA
1/10/2014 13
Características Eléctricas V
Niveles de Señalización
Estado del Bus En el conector de En el conector destino
origen
Requerido Aceptable
SE0 por el tiempo SE0 por ³1 bit SE0 por ³ 1 bit
End of Packet de dos bits seguido seguido por un seguido por un
(EOP) por un estado Dato estado Dato “J” estado Dato “J”
“J” por el tiempo de de un bit
un bit
Idle N.A. D- > VIHZ (min) y D- > VIHZ (min) y
q Low Speed D+ <VIL (max) D+ <VIH (min)
q Full Speed D+ > VIHZ (min) D+ > VIHZ (min)
y D- <VIL (max) y D- <VIH (min)
Resume Estado Dato “K” Estado Dato “K”
Desconectado N.A. SE0 por ³2.5 mseg.
(a un port
upstream)
Conectado (a N.A. Idle ³2 mseg. Idle ³ 2.5 mseg.
un port
downstream)
Reset D+ y D- <VOL (max) D+ y D- < VIL D+ y D- < VIL
por ³ 10 mseg. (max) por ³ 10 (max) pr ³ 2.5 m
mseg. seg.
I.M. LUIS ANGEL MARTINEZ CABRERA
1/10/2014 14
Características Eléctricas VI
Señalización de Comienzo y Fin de Paquete
I.M. LUIS ANGEL MARTINEZ CABRERA
1/10/2014 15
Características Eléctricas VII
USB emplea codificación
de datos NRZI. Consiste
en representar los ‘1’
mediante el no cambio de nivel y los ‘0’ mediante cambios de nivel. Llevado a términos de
estados, en NRZI pasa del estado J al K cada vez que aparece un ‘0’ en el stream de bits a
transmitir.
Problema: Las strings largas de ’1s’ no generan cambios de nivel y pueden causar la pérdida de
sincronismo entre los dos dispositivos.
Para evitarlo se utiliza una técnica
denominada “bit Stuffing” (Relleno
de bits), que consiste en insertar un
‘0’ cada seis ‘1’ consecutivos.
I.M. LUIS ANGEL MARTINEZ CABRERA
1/10/2014 16
Se dispone de un flujo de comunicación dedicado entre cada aplicación y la
correspondiente Función en el dispositivo. Así, una Función de un dispositivo puede tener
diferentes flujos de comunicaciones con diferentes aplicaciones que la requieran .
En el dispositivo USB, el flujo de comunicación
termina en un Endpoint .Host Controller Driver:
Interfacea al USB Host Controller con el USB
System Software. Garantiza que el USB System
Software, pueda interactuar con toda la
variedad de implementaciones de Hardware
que se pueda encontrar.
USB Driver (USBD): Interfacea al USB System
Software con la aplicación cliente (Client SW)
permitiéndoles a éstas el manejo del
dispositivo USB
I.M. LUIS ANGEL MARTINEZ CABRERA
1/10/2014 17
Flujo de Información en USB II
Un dispositivo USB se presenta al sistema como una colección de Endpoints.
Estos Endpoints a su vez se agrupan formando Interfaces. Las Interfaces son
“vistas” de las diferentes Funciones del dispositivo.
La comunicación entre los extremos se realiza entre un buffer del lado Host y un
Endpoint del lado Dispositivo USB. El Canal es un pipe.
I.M. LUIS ANGEL MARTINEZ CABRERA
1/10/2014 18
Es la porción identificable de un dispositivo USB que representa el extremo en un
flujo de comunicación entre el Host y dicho dispositivo.
Tiene un Número definido durante el diseño del dispositivo que lo identifica
unívocamente.
Transfiere información en una sola dirección.
Cada dispositivo USB tiene una cantidad de Endpoints independientes entre sí, y una
dirección unívoca que lo identifica en el sistema, que obtiene desde el Host en el
momento de su conexión al bus.
Así es que, definidos la dirección del dispositivo USB, el Número de Endpoint, y la
Dirección del Flujo de Datos, se determina el Endpoint del dispositivo con el que se
quiere establecer comunicación.
I.M. LUIS ANGEL MARTINEZ CABRERA
1/10/2014 19
Características de un Endpoint que deben ser conocidas por el
Software Cliente a fin de interactuar con él de manera correcta:
Número de identificación
Dirección de transferencia de datos
Tipo de transferencia que soporta.
Frecuencia o tiempo de demora en el acceso al bus.
Ancho de Banda requerido.
Comportamiento en el manejo de errores.
Tamaño máximo del paquete de datos que puede transaccionar.
I.M. LUIS ANGEL MARTINEZ CABRERA
1/10/2014 20
Todos los dispositivos USB deben tener implementado un método de control
default que utilice un par de Endpoints (uno de entrada y otro de salida), para
que en el momento de su conexión al bus los pueda inicializar el USB System
Software en el Host.
Este método se conoce como Default control Pipe, y el par de Endpoints que
lo compone levan el Número cero.
El Default Control Pipe soporta las transferencias de Control.
El Endpoint cero está siempre accesible ni bien el dispositivo se conecta al
bus, o se conecta a la fuente de alimentación, o es reseteado.
I.M. LUIS ANGEL MARTINEZ CABRERA
1/10/2014 21
Son entidades abstractas que relacionan un Endpoint del dispositivo USB con el
software del host. Son el canal de comunicación virtual mediante el cual se
pueden transferir datos entre un buffer de memoria en el host y el Endpoint
del dispositivo USB.
Pueden tener uno de dos modos mutuamente excluyentes:
Stream: Transmiten datos sin una estructura USB definida y en modo First-In First-Out.
Siempre son unidireccionales.
Message: Transmiten datos con alguna estructura USB definida. Se envía un requerimiento
al dispositivo USB desde el host, el que es seguido por una transferencia de datos en la
dirección adecuada. Finalmente se pasa a una fase de Estado. Este tipo de pipes permite
comunicaciones bidireccionales. I.M. LUIS ANGEL MARTINEZ CABRERA
1/10/2014 22
Para cursar una transferencia un pipe requiere que se defina:
Demanda del bus USB y ancho de banda requerido.
Tipo de transferencia
Características del Endpoint asociado en el dispositivo: dirección de transferencia,
tamaño máximo del paquete de datos a transmitir,etc.
El Cliente de Software que corre en el host envía requerimientos al pipe a
través de I/O Request Paquets (IRPs). El formato de estos depende del
Sistema Operativo. El Cliente de Software se entera de la finalización de un
IRP, cuando recibe un aviso de finalización exitosa, o con error.
Si no existen IRPs pendientes el pipe está en estado idle. Esto significa que su
Endpoint asociado en el extremo del dispositivo USB no ve en el bus
transacciones dirigidas a él.
I.M. LUIS ANGEL MARTINEZ CABRERA
1/10/2014 23
Cada tipo de transferencia determina características importantes
del flujo de información involucrado. Entre otras contamos las
siguientes:
Formato de datos impuesto por el USB.
Dirección del flujo de comunicaciones.
Restricciones en el tamaño del paquete de datos a transmitir.
Restricciones en el acceso al bus.
Restricciones en el tiempo de recuperación de datos. Secuencias de datos
requeridas.
Manejo de errores.
I.M. LUIS ANGEL MARTINEZ CABRERA
1/10/2014 24
Tipos de Transferencias II
Transferencias de control:
Son comunicaciones por irrupción, no periódicas, iniciadas por el host, que
se utilizan en operaciones de comando o status.
Transferencias Isócronas:
Se trata de un tipo de comunicación periódica y continua entre el host y
un dispositivo USB, utilizadas típicamente en aplicaciones en donde el
tiempo de recuperación de datos es un factor relevante. No quiere decir
que sea crítico el tiempo de respuesta en cuanto a la velocidad de
recuperación de los datos sino más bien, en cuanto a la periodicidad de
acceso a éstos.
I.M. LUIS ANGEL MARTINEZ CABRERA
1/10/2014 25
Tipos de Transferencias III
q Transferencias de Interrupción:
Son comunicaciones de baja frecuencia, para tamaños de
paquete de datos muy pequeños, y tiempo de recuperación
de datos limitado.
q Transferencias de volumen (bulk):
Son comunicaciones de grandes paquetes de datos por
irrupción, no periódicas, utilizadas para transmitir datos que
pueden utilizar cualquier ancho de banda disponible y que
también pueden ser demorados hasta que el ancho de
banda requerido se encuentre disponible.
I.M. LUIS ANGEL MARTINEZ CABRERA
1/10/2014 26