Está en la página 1de 81

ROJAS SANTIAGO CESAR ROBERTO

LUNA HERRERA TERESA


PEREZ REYES JANETH
NAVA FLORES GERMAN
Ingeniera Informtica
ITESCO
Universal Serial Bus
Autor: Alejandro Furfaro 3
Genealoga y alcance
Genealoga
Enero de 1996, versin 1.0.
Velocidad 1,5 Mbps.
Intel, Compaq, NEC, y Microsoft
Septiembre de 1998, versin 1.1.
Velocidades de 1,5 (Low Speed) 12Mbps (Full Speed)
Mejora en la asignacin de ancho de banda a los dispositivos, a
travs de la incorporacin de nuevos tipos de transferencias.
Septiembre del 2000 versin 2.0
Velocidades de 1,5 (Low Speed), 12(Full Speed), o 480 Mbps (High
Speed)
Alcance:
Nuestro estudio se centrar en la versin 1.1, tratando de
introducir conceptos de 2.0.
Autor: Alejandro Furfaro 4
Principales metas propuestas
Expansin de perifricos sencilla
Deteccin automtica de un nuevo dispositivo
Conexin y desconexin sin reiniciar el equipo
Soporte plug & play.
Velocidades de transferencia de hasta 480 Mbits/seg.
a bajo costo.
Soporte a aplicaciones multimedia real time.
Integracin con dispositivos electrnicos (VCR, por
ejemplo), aumentando de esta manera las
capacidades de la PC.
Interfaz de software standard independiente del
dispositivo que se desee conectar.
Autor: Alejandro Furfaro 7
El Hub es un dispositivo USB especial, que
extiende la cantidad de ports para
conectar dispositivos, convirtiendo un
punto de conexin simple, en mltiples
puntos de conexin. Por punto de
conexin entendemos port.

Funciones
Son dispositivos conectados al bus capaces de recibir y transmitir
informacin desde / hacia el Host Controller. Se denomina funcin debido a
que no necesariamente la correspondencia funcin dispositivo es uno a uno.
Ejemplos de funciones en un Bus USB: Teclado, Mouse, lapiz ptico, una
impresora, un modem (analgico, o ISDN) etc.
Dispositivos USB I
Autor: Alejandro Furfaro 8
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.

Dispositivos USB II
Autor: Alejandro Furfaro 9
Consideraciones adicionales
Alimentacin:Desde este punto de vista, los
dispositivos USB trabajan en dos modos:
self powered
Bus powered.
Velocidad:La especificacin 1.1 soporta dos tipos de
dispositivos:
Dispositivos USB low speed, (1.5 Mbits/seg.)
Dispositivos USB full speed, (12Mbits/seg).
Adems, garantiza la coexistencia de ambos tipos de
dispositivo en el bus de manera que no existan
desincronizaciones con los mismos.
Autor: Alejandro Furfaro 10
Flujo de datos: Modelo de
Implementacin
Function Layer, es
quien provee la interfaz
entre el usuario y el
dispositivo.
USB Device Layer es la
visin 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
comunicacin fsica, a
travs de sealizacin de
hardware y transmisin
de paquetes de
informacin, entre el Host
y el Dispositivo Fsico.
Autor: Alejandro Furfaro 13
La seal se aplica en forma diferencial
entre D+ y D-, de modo tal que se
establece una comunicacin Half Duplex.
Es decir, se transmite en un nico sentido
en cada momento.
VBUS , por su parte transporta 5Vcc
con respecto de la lnea
GND que tiene la referencia elctrica
de tierra del sistema.
Conexiones
Cada conexin 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.
Autor: Alejandro Furfaro 15
Caractersticas Elctricas 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 elctricas establecen la forma en que se detectan las conexiones
y desconexiones de dispositivos al bus.
Autor: Alejandro Furfaro 16
Sealizacin al desconectar
un dispositivo

Sealizacin al conectar
un dispositivo Full Speed


Caractersticas Elctricas II
Autor: Alejandro Furfaro 17
Sealizacin al resetear un
dispositivo

Sealizacin al conectar un
dispositivo Low Speed


Caractersticas Elctricas III
Autor: Alejandro Furfaro 18
Caractersticas Elctricas IV

Aceptable Requerido
En el conector destino En el conector de
origen
Niveles de Sealizacin

Estado del Bus
Las lneas de datos conmutan del estado Idle al estado
K
Start of Packet


1 Diferencial
0 Diferencial


1 Diferencial
0 Diferencial
Estado Dato
K
Low Speed
Full Speed

0 Diferencial
1 Diferencial

0 Diferencial
1 Diferencial
Estado Dato J
Low Speed
Full Speed
D+ y D- < V
IH

(min)
D+ y D- < V
IL

(max)
D+ y D- < V
OL

(max)
Single Ended 0
(SE0)
(D-) (D+) >
200 mV
(D-) (D+) >
200 mV
D- >V
IH
(min)
D- > V
OH
(min) y D+
< V
OL
(max)
0 Diferencial
(D+) (D-) >
200 mV

(D+) (D-) >
200 mV
D+ >V
IH
(min)
D+ > V
OH
(min) y D-
< V
OL
(max)
1 Diferencial
Autor: Alejandro Furfaro 19
Caractersticas Elctricas V

Idle 2.5 mseg.
D- > V
IHZ
(min) y
D+ <V
IH
(min)
D+ > V
IHZ
(min)
y D- <V
IH
(min)
D+ y D- < V
IL

(max) pr 2.5 m
seg.
D+ y D- < V
IL

(max) por 10
mseg.
D+ y D- <V
OL
(max)
por 10 mseg.
Reset
Idle 2 mseg. N.A. Conectado (a
un port
downstream)
SE0 por 2.5 mseg. N.A. Desconectado
(a un port
upstream)
Estado Dato K Estado Dato K Resume
D- > V
IHZ
(min) y
D+ <V
IL
(max)
D+ > V
IHZ
(min)
y D- <V
IL
(max)
N.A. Idle
Low Speed
Full Speed
SE0 por 1 bit
seguido por un
estado Dato J
SE0 por 1 bit
seguido por un
estado Dato J
de un bit
SE0 por el tiempo
de dos bits seguido
por un estado Dato
J por el tiempo de
un bit

End of Packet
(EOP)
Aceptable Requerido
En el conector destino En el conector de
origen
Niveles de Sealizacin

Estado del Bus
Autor: Alejandro Furfaro 20
Sealizacin de Comienzo y Fin de Paquete
Caractersticas Elctricas VI
Autor: Alejandro Furfaro 21
mediante el no cambio de nivel y los 0 mediante cambios de nivel. Llevado a
trminos 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 prdida de sincronismo entre los dos dispositivos.

Para evitarlo se utiliza una
tcnica denominada bit
Stuffing (Relleno de bits),
que consiste en insertar un
0 cada seis 1 consecutivos.
USB emplea
codificacin de
datos NRZI.
Consiste en
representar los 1
Caractersticas Elctricas VII
Autor: Alejandro Furfaro 22
Se dispone de un flujo de comunicacin dedicado entre cada aplicacin y la
correspondiente Funcin en el dispositivo. As, una Funcin de un dispositivo
puede tener diferentes flujos de comunicaciones con diferentes aplicaciones
que la requieran .


En el dispositivo USB, el flujo de
comunicacin 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 aplicacin
cliente (Client SW) permitindoles a
stas el manejo del dispositivo USB
Flujo de Informacin en USB I
Autor: Alejandro Furfaro 23
Un dispositivo USB se presenta al sistema como una coleccin
de Endpoints. Estos Endpoints a su vez se agrupan formando
Interfaces. Las Interfaces son vistas de las diferentes
Funciones del dispositivo.
La comunicacin entre los extremos se realiza entre un buffer
del lado Host y un Endpoint del lado Dispositivo USB. El Canal
es un pipe.
Flujo de Informacin en USB II
Autor: Alejandro Furfaro 24
Endpoints I
Es la porcin identificable de un dispositivo USB que
representa el extremo en un flujo de comunicacin
entre el Host y dicho dispositivo.
Tiene un Nmero definido durante el diseo del
dispositivo que lo identifica unvocamente.
Transfiere informacin en una sola direccin.
Cada dispositivo USB tiene una cantidad de
Endpoints independientes entre s, y una direccin
unvoca que lo identifica en el sistema, que obtiene
desde el Host en el momento de su conexin al bus.
As es que, definidos la direccin del dispositivo USB,
el Nmero de Endpoint, y la Direccin del Flujo de
Datos, se determina el Endpoint del dispositivo con el
que se quiere establecer comunicacin.
Autor: Alejandro Furfaro 25
Endpoints II
Caractersticas de un Endpoint que deben ser
conocidas por el Software Cliente a fin de interactuar
con l de manera correcta:
Nmero de identificacin
Direccin 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.
Tamao mximo del paquete de datos que puede
transaccionar.
Autor: Alejandro Furfaro 26
El Endpoint 0
Todos los dispositivos USB deben tener implementado
un mtodo de control default que utilice un par de
Endpoints (uno de entrada y otro de salida), para que
en el momento de su conexin al bus los pueda
inicializar el USB System Software en el Host.
Este mtodo se conoce como Default control Pipe,
y el par de Endpoints que lo compone levan el
Nmero 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 alimentacin, o es reseteado.
Autor: Alejandro Furfaro 27
Pipes I
Son entidades abstractas que relacionan un Endpoint del
dispositivo USB con el software del host. Son el canal de
comunicacin 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 enva un requerimiento al dispositivo USB desde el host, el
que es seguido por una transferencia de datos en la direccin
adecuada. Finalmente se pasa a una fase de Estado. Este tipo de
pipes permite comunicaciones bidireccionales.

Autor: Alejandro Furfaro 28
Pipes II
Para cursar una transferencia un pipe requiere que se
defina:
Demanda del bus USB y ancho de banda requerido.
Tipo de transferencia
Caractersticas del Endpoint asociado en el dispositivo: direccin
de transferencia, tamao mximo del paquete de datos a
transmitir,etc.
El Cliente de Software que corre en el host enva
requerimientos al pipe a travs de I/O Request Paquets
(IRPs). El formato de estos depende del Sistema
Operativo. El Cliente de Software se entera de la
finalizacin de un IRP, cuando recibe un aviso de
finalizacin 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.
Autor: Alejandro Furfaro 30
Cada Transferencia
comprende una o mas
transacciones
Cada Transaccin contiene un
paquete Token, y puede contener
adicionalmente paquetes de
datos y Handshake
Cada paquete contiene un
PID y puede tener adems
informacin adicional y un
CRC
Transferencia 1 Transferencia 2 Transferencia 3
Transaccin 1 Transaccin 2 Transaccin 3
Token Datos Handshake
PID Info. Adicional CRC
Transacciones
Autor: Alejandro Furfaro 38
Tipos de Transferencias I
Cada tipo de transferencia determina caractersticas
importantes del flujo de informacin involucrado.
Entre otras contamos las siguientes:
Formato de datos impuesto por el USB.
Direccin del flujo de comunicaciones.
Restricciones en el tamao del paquete de datos a
transmitir.
Restricciones en el acceso al bus.
Restricciones en el tiempo de recuperacin de datos.
Secuencias de datos requeridas.
Manejo de errores.

Autor: Alejandro Furfaro 39
Tipos de Transferencias II
Transferencias de control:
Son comunicaciones por irrupcin, no peridicas, iniciadas
por el host, que se utilizan en operaciones de comando o
status.
Transferencias Iscronas:
Se trata de un tipo de comunicacin peridica y continua
entre el host y un dispositivo USB, utilizadas tpicamente en
aplicaciones en donde el tiempo de recuperacin de datos es
un factor relevante. No quiere decir que sea crtico el tiempo
de respuesta en cuanto a la velocidad de recuperacin de los
datos sino ms bien, en cuanto a la periodicidad de acceso a
stos.

Autor: Alejandro Furfaro 40
Transferencias de Interrupcin:
Son comunicaciones de baja frecuencia, para tamaos de
paquete de datos muy pequeos, y tiempo de recuperacin
de datos limitado.
Transferencias de volumen (bulk):
Son comunicaciones de grandes paquetes de datos por
irrupcin, no peridicas, utilizadas para transmitir datos que
pueden utilizar cualquier ancho de banda disponible y que
tambin pueden ser demorados hasta que el ancho de
banda requerido se encuentre disponible.
Tipos de Transferencias III
Autor: Alejandro Furfaro 42
Transferencias de Volumen (Bulk):
Formatos de Transacciones I
Autor: Alejandro Furfaro 43
Transferencias de Volumen (Bulk):
Formatos de Transacciones II
Autor: Alejandro Furfaro 44
Transferencias de Control:
ormatos de Transacciones III
Autor: Alejandro Furfaro 45
Transferencias de Control:
Formatos de Transacciones IV
Autor: Alejandro Furfaro 46
Transferencias de Interrupcin:
Formatos de Transacciones V
Autor: Alejandro Furfaro 47
Transferencias Iscronas:
Formatos de Transacciones VI
Autor: Alejandro Furfaro 48
Transacciones Consecutivas:
Formatos de Transacciones VII
Autor: Alejandro Furfaro 49
Uso del Ancho de Banda I
DataPayload
Max Bandwidth
(bytes/second)
Frame
Bandwidth
per Transfer
Max
Transfers
Bytes
Remaining
Bytes/Frame
Useful Data
1 32000 3% 32 23 32
2 62000 3% 31 43 62
4 120000 3% 30 30 120
8 224000 4% 28 16 224
16 384000 4% 24 36 384
32 608000 5% 19 37 608
64 832000 7% 13 83 832
Max. 1500000 1500
DataPayload
Max Bandwidth
(bytes/second)
Frame
Bandwidth
per Transfer
Max
Transfers
Bytes
Remaining
Bytes/Frame
Useful Data
1 3000 25% 3 46 3
2 6000 25% 3 43 6
4 12000 26% 3 37 12
8 24000 28% 3 25 24
Max. 187500 187
Limites en las Transferencias de Control Full-speed
(PRE+ 9 SYNC bytes, 9 PID bytes, 6 Endpoint + CRC
bytes, 6CRC bytes, 8 Setup data bytes, and a 7-byte
interpacketdelay (EOP, etc.))
Protocol Overhead
(46 bytes)
(9 SYNC bytes, 9 PID bytes, 6 Endpoint + CRC bytes,
6CRC bytes, 8 Setup data bytes, and a 7-byte
interpacketdelay (EOP, etc.))
Protocol Overhead
(45 bytes)
Limites en las Transferencias de Control Low-speed
Autor: Alejandro Furfaro 50
Uso del Ancho de Banda II
DataPayload
Max
Bandwidth
(bytes/second)
Frame
Bandwidth
per Transfer
Max
Transfers
Bytes
Remaining
Bytes/Frame
Useful Data
1 150000 1% 150 0 150
2 272000 1% 136 4 272
4 460000 1% 115 30 460
8 704000 1% 88 5 704
16 960000 2% 60 40 960
32 1152000 3% 36 24 1152
64 1280000 5% 20 40 1280
128 1280000 9% 10 130 1280
256 1280000 18% 5 175 1280
512 1024000 35% 2 458 1024
1023 1023000 69% 1 468 1023
Max. 1500000 1500
Limites en las Transferencias Iscronas
Protocol Overhead
(9 bytes)
(2 SYNC bytes, 2 PID bytes, 2 Endpoint + CRC bytes, 2
CRC bytes, and a 1-byte interpacketdelay
Autor: Alejandro Furfaro 51
Uso del Ancho de Banda III
DataPayload
Max
Bandwidth
(bytes/second)
Frame
Bandwidth
per Transfer
Max
Transfers
Bytes
Remaining
Bytes/Frame
Useful Data
1 107000 1% 107 2 107
2 200000 1% 100 0 200
4 352000 1% 88 4 352
8 568000 1% 71 9 568
16 816000 2% 51 21 816
32 1056000 3% 33 15 1056
64 1216000 5% 19 37 1216
Max. 1500000 1500
DataPayload
Max
Bandwidth
(bytes/second)
Frame
Bandwidth
per Transfer
Max
Transfers
Bytes
Remaining
Bytes/Frame
Useful Data
1 13000 7% 13 5 13
2 24000 8% 12 7 24
4 44000 9% 11 0 44
8 64000 11% 8 19 64
Max. 187500 187
Protocol Overhead
(13 bytes)
(3 SYNC bytes, 3 PID bytes, 2 Endpoint + CRC bytes, 2
CRC bytes, and a 3-byte interpacket delay)
Limites en las Transferencias de Interrupcin Full-speed
Limites en las Transferencias de Interrupcin Low-speed
Protocol Overhead
(13 bytes)
(3 SYNC bytes, 3 PID bytes, 2 Endpoint + CRC bytes, 2
CRC bytes, and a 3-byte interpacket delay)
Autor: Alejandro Furfaro 52
Uso del Ancho de Banda IV
DataPayload
Max
Bandwidth
(bytes/second)
Frame
Bandwidth
per Transfer
Max
Transfers
Bytes
Remaining
Bytes/Frame
Useful Data
1 107000 1% 107 2 107
2 200000 1% 100 0 200
4 352000 1% 88 4 352
8 568000 1% 71 9 568
16 816000 2% 51 21 816
32 1056000 3% 33 15 1056
64 1216000 5% 19 37 1216
Max. 1500000 1500
Protocol Overhead
(13 bytes)
(3 SYNC bytes, 3 PID bytes, 2 Endpoint + CRC bytes, 2
CRC bytes, and a 3-byte interpacket delay)
Limites en las Transferencias Bulk
Autor: Alejandro Furfaro 53
Enumeracin
Antes de comenzar a trabajar con un
dispositivo el Host debe averiguar sus
caractersticas (Tipos de transferencias,
cantidad de endpoints, etc.).

Una vez obtenida esta informacin le asigna al
dispositivo un nmero de port lgico en el
Bus.

Este proceso se denomina Enumeracin.
Autor: Alejandro Furfaro 55
Pasos en la Enumeracin I
El usuario conecta el dispositivo a un port de un Hub
(Hub root o cualquier hub externo).
El dispositivo toma su estado inicial:Attached.
Si el Hub est operativo y no est siendo reseteado,
alimenta al dispositivo automticamente, si ste es Bus
Powered.
El dispositivo pasa al estado Powered.
Si el dispositivo es Self Powered al attacharse directamente
entra al estado Powered.
El Hub detecta al dispositivo.
Monitorea el estado elctrico del port, y si detecta que la
impedancia de entrada cae de 15 K a 1,5 K, registra el
evento para informar al host.
El dispositivo sigue en estado Powered
El hub no transmite nada al bus.
Autor: Alejandro Furfaro 56
Pasos en la Enumeracin II
El Host controller encuesta a los hubs para saber si
tienen eventos que reportar.
Cada Hub utiliza un pipe configurado para transferencias de
interrupcin para reportar eventos al Host controller.
Por medio de este pipe el host controller encuesta a los
Hubs (uno a la vez) para saber si alguno tuvo un evento
desde la ltima consulta, y en tal caso en cual de sus ports
se produjo el evento.
El Host enva al Hub por el pipe de interrupcin una
transferencia de Control que todos los hubs deben
entender: Get_Port_Status.
El Hub reponde este comando de acuerdo a lo establecido
en la especificacin.
El Host Controller accede a la informacin completa acera
del evento.
Autor: Alejandro Furfaro 57
Pasos en la Enumeracin III
El Hub resetea al dispositivo.
Leda la informacin del port attachado, el Host enva al
Hub el comando Set_Port_Feature.
En dicho comando utiliza la opcin que le permite solicitar
al hub el reset del port.
El Hub enva las lneas D+ y D- del port a la condicin de
Reset durante 10 mseg (atencin: el reset durar los
prximos 10 frames).
El Hub detecta la velocidad del dispositvo.
Examina las tensiones en ambos terminales D+ y D- en el
estado Idle. Segn cual tiene mayor tensin, el dispositivo
es High Speed o Low Speed.
Segn su diseo el Hub puede efectuar esta comprobacin
antes del Reset o inmediatamente despus del mismo.
Autor: Alejandro Furfaro 58
Pasos en la Enumeracin IV
El Host establece un path de seal entre el
dispositivo y el bus.
Enva al Hub el comando Get_Port_Status para verificar
que el dispositivo finaliz el reset.
Esta operacin se repite frame tras frame hasta que el Hub
conteste que el dispositivo ha sido reseteado. (Recordar
que el reset dura 10 frames)
Cuando esto ocurre, el dispositivo est en estado Default:
Los registros del controlador estn en su estado default,
El controlador est listo para trabajar por el Endpoint 0,
Puede tomar no mas de 100 ma. del bus,
Contestar transacciones dirigidas a la direccin de port 0.
Autor: Alejandro Furfaro 59
Pasos en la Enumeracin V
El Host averigua el tamao mximo de paquete
soportado por el default control pipe.
Enva el requerimiento Get_Descriptor al Endpoint 0 de la
Direccin 0. Especificando en este comando que se refiere
al descriptor de dispositivo y que se requieren 8 bytes de
respuesta por parte del dispositivo.
El Host enumera solo un dispositivo a la vez, as que no
hay forma que otro dispositivo responda.
El tamao mximo del paquete est en el byte 8 del
Descriptor de Dispositivo. Por eso el Host solo lee sus ocho
primeros bytes.
Autor: Alejandro Furfaro 60
Pasos en la Enumeracin VI
El Host asigna una direccin.
Enva el requerimiento Set_Address, con la direccin que
le asigna al dispositivo.
El dispositivo lo lee, devuelve ACK, y almacena su
direccin.
Ahora est en el estado Addressed.
La direccin asignada es vlida hasta que el dispositivo se
desconecte, apague, o resetee.
Autor: Alejandro Furfaro 61
Pasos en la Enumeracin VII
El Host lee las caractersticas del dispositivo.
Enva el requerimiento Get_Descriptor
Endpoint 0 del dispositivo.
Direccin de port: la que termina de asignar
Descriptor de dispositivo.
El dispositivo devuelve su Device Descriptor.
Contiene la cantidad de configuraciones, interfaces, y endpoints que el
dispositivo tiene definidos.
Los detalles de estos elementos se encuentran en los respectivos
descriptores almacenados en el dispositivo.
Por cada configuracin informada, el host controller enva un
Get_Descriptor al dispositivo
Port y Endpoint, dem anterior
Descriptor de Configuracin.
El dispositivo responde el requerimiento.
Descriptor de la configuracin requerida
Descriptores de interfaz que dependen de esta configuracin
Descriptores de endpoint que dependen de cada interfaz
Descriptores de string si los hubiera
Autor: Alejandro Furfaro 62
Pasos en la Enumeracin VIII
El Host carga un Device Driver.
En base a la informacin de Vendor ID, Product ID, Release
number, e informacin de clase ledos del Device Descriptor
por el driver de Bus USB, el Sistema Operativo carga el
Device Driver mas apropiado para el dispositivo.
En el caso de entornos Windows, se usa adems la
informacin de los archivos de Sistema .INF.
El Device Driver del dispositivo selecciona una
configuracin.
Comando Set_Configuration.
El dispositivo est ahora en el estado Configured.
El dispositivo est listo para ser utilizado.
Autor: Alejandro Furfaro 63
Descriptor de Dispositivo
Offset Campo Tamao Valor Descripcin
0 bLength 1 Number Tamao del Descriptor en Bytes
1 bDescriptorType 1 Constant Tipo de Descriptor DEVICE
2 bcdUSB 2 BCD Nmero de versin de la Especificacin USB en Binario Codificado Decimal (ej., 1.10 es 110H).
Este campo identifica el release de la Especificacin USB con la cual son compatibles el
dispositivo y sus descriptores.
4 bDeviceClass 1 Class Class code (asignado por el USB). Si este campo vale 00H, cada interfaz dentro de
una configuracin especificar su propia informacin de clase y todas trabajarn
independientemente Si este campo tiene un valor entre 1 y FEH, significa que el
dispositivo soporta diferentes especificaciones de clase sobre diferentes interfaces
y stas pueden no operar independientemente. Este valor identifica la definicin de
clase usada por las interfaces
agregadas. (Por ejemplo, un CD-ROM con interfaces de audio y datos digitales
que requieren control de transporte para ejectar el CD o comenzar a hacerlos
girar).
Si este campo vale FFH, la clase del dispositivo es vendor-specific
5 bDeviceSubClass 1 Subclass Subclass code (asignado por el USB). Este cdigo se evala de acuerdo al valor
del campo bDeviceClass. Si el campo bDeviceClass es cero, este campo tambin
debe ser cero. Si el campo bDeviceClass no vale FFH, todos los valores se
reservan para ser asignados por el USB.
6 bDeviceProtocol 1 Protocol Protocol code (asignado por el USB). Estos cdigos se evalan de acuerdo con el valor de los
campos bDeviceClass ybDeviceSubClass. Si un dispositivo soporta protocolos de clase
especficos sobre la base de dispositivo y no de interfaz, este cdigo identifica el protocolo que
utiliza el dispositivo tal como se lo define en la especificacin de clase de ese dispositivo. Si
este campo vale cero, el dispositivo no utiliza protocolos especficos de clase. Sin embargo
puede utilizar protocolos especficos de clase sobre la base de interfaces. Si este campo vale
FFH, el dispositivo usa un protocolo vendor-specific basado en el dispositivo.
7 bMaxPacketSize0 1 Number Tamao mximo de paquete para endpoint 0 (valores vlidos solo 8, 16, 32, o 64)
8 idVendor 2 ID Vendor ID (asignados por el USB)
10 idProduct 2 ID Product ID (asignados por el fabricante)
12 bcdDevice 2 BCD Nmero de versin del Dispositivo en Binario Codificado Decimal
14 iManufacturer 1 Index Indice de descriptor de string que describe al fabricante
15 iProduct 1 Index Indice de descriptor de string que describe al producto
16 iSerialNumber 1 Index Indice al descriptor de string que describe el nmero de serie del dispositivo
17 bNumConfigurations 1 Number Nmero de configurationes posibles
Autor: Alejandro Furfaro 64
Descriptor de Dispositivo
/*SINGLE HID INTERFACE*/


const byte DEV_DESC[]={DEV_LENGTH,/*length of this desc. */
DEVICE, /*DEVICE descriptor */
0x00,0x01, /*spec rev level (BCD) */
0x00, /*device class */
0x00, /*device subclass */
0x00, /*device protocol */
0x08, /*max packet size */
0x00,0x04, /*National's vendor ID */
0x5B,0xC3, /*National's product ID */
0x41,0x01, /*National's revision ID */
MFG_STR_OFS,/*index of manuf. string */
PID_STR_OFS,/*index of prod. string */
0, /*index of ser. # string */
0x01 /*number of configs. */
};
Autor: Alejandro Furfaro 65
Descriptor de Configuracin
Offset Campo Tamao Valor Descripcin
0 bLength 1 Number Tamao del Descriptor en Bytes
1 bDescriptorType 1 Constant Tipo de Descriptor CONFIGURATION
2 wTotalLength 2 Number Longitud total de los datos retornados para esta configuracin. Incluye la longitud combinada de
todos los descriptores de configuracin, interfaz, endpoint, y especficos de clase o fabricante
retornados para esta configuracin.
4 bNumInterfaces 1 Number Nmeo de interfaces soportadas por esta configuracin
5 bConfigurationValue 1 Number Valor a utilizar como argumento en el requerimiento SetConfiguration() para
seleccionar esta configuracin
6 iConfiguration 1 Index Indice al descriptor de string que describe esta configuracin
7 bmAttributes 1 Bitmap Caractersticas de la configuracin :
D7: Reservado (debe estar en 1)
D6: Self-powered
D5: Remote Wakeup
D4...0: Reservados (deben estar en 0)
D7 est reservado y debe estar en 1 por razones histricas. Para indicar la cantidad de mA
requeridos, una configuracin de dispositivo que utiliza alimentacin del Bus y una fuente local,
reporta un valor distinto de cero en MaxPower y setea D6. La fuente de alimentacin actual en
tiempo de ejecucin se determina mediante el requerimiento GetStatus (DEVICE). Si una
configuracin de dispositivo soporta remote wakeup, D5 se pone en 1.
8 MaxPower 1 mA Mximo consumo de alimentacin desde el Bus para esta configuracin especfica, del dispositivo
USB cuando se encuentra completamente operacional. Se expresa en unidades de 2mA (p.ej., 50
= 100mA).
Nota: La configuracin de un dispositivo indica si esa configuracin es bus- powered o
selfpowered. El estado del dispositivo reporta si ste est actualmente self-powered. Si un
dispositivo se desconecta de su fuente de alimentacin externa, actualiza su estado de dispositivo
para indicar que ya no est self-powered. Un dispositivo no puede incrementar su toma de
alimentacin del bus, cuando pierde su alimentacin externa, mas all de la cantidad reportada
por esta configuracin.
Si un dispositivo puede continuar operando cuando se desconecta de su fuente de alimentacin
externa, continuar hacindolo, caso contrario cesa su operacin. El USB System Software puede
determinar la causa de la falla chequeando el estado y detectando la prdida de alimentacin del
dispositivo.
Autor: Alejandro Furfaro 66
Interface Descriptor
Offset Campo Tamao Valor Descripcin
0 bLength 1 Number Tamao del Descriptor en Bytes
1 bDescriptorType 1 Constant Tipo de Descriptor INTERFACE
2 bInterfaceNumber 1 Number Nmero de interfaz. Valor base cero que identifica el dice en un array de interfaces
concurrentes soportadas por esta configuracin
3 bAlternateSetting 1 Number Valor utilizado para seleccionar ajustes alternativos para la interfaz
identificadas en el campo previo.
4 bNumEndpoints 1 Number Nmero de endpoints utilizado por esta interfaz (excluyendo el endpoint
cero). Si este valor es cero, esta interfaz solo utiliza el Default Control
Pipe.
5 bInterfaceClass 1 Class Cdigo de clase (asignado por el USB).
El valor cero se reserva para futura estandarizacin.
Si este campo se pone en FFh, la clase de esta interfaz es "vendor-specific".
El resto de los valores est reservado para su asignacin por el USB.
6 bInterfaceSubClass 1 SubClass El Cdigo de Subclase (asignado por el USB). Estos cdigos son clasificados por el
valor de campo bInterfaceClass.
Si el campo bInterfaceClass es 0, este campo tambin debe estar en 0.
Si el campo bInterfaceClassno es FFh, todos los valores se reservan para su
asignacin por el USB.
7 bInterfaceProtocol 1 Protocol Cdigo de Protocolo (asignado por el USB). Estos cdigos se clasifican de acuerdo
con el valore de los campos bInterfaceClass y bInterfaceSubClass. Si una interfaz
soporta requerimientos "class-specific", este cdigo identifica los protocolos que
usa el dispositivo de acuerdo con lo definido en la especificacin de clase a la que
pertenece el dispositivo.
Si este campo se pone en 0, el dispositivo no utiliza un protocolo "class-specific" en
esta interfaz.
Si este campo se pone en FFh, el dispositivo utiliza un protocolo "vendor-specific"
para esta interfaz.
8 iInterface 1 Index Indice al descriptor de string que describe esta interfaz.
Autor: Alejandro Furfaro 67
Descriptor de Endpoint
Offset Campo Tamao Valor Descripcin
0 bLength 1 Number Tamao del Descriptor en Bytes
1 bDescriptorType 1 Constant Tipo de Descriptor ENDPOINT
2 bEndpointAddress 1 Endpoint Direccin del endpoint en el dispositivo USB. Se codifica como sigue:
Bit 3...0: Nmero de endpoint
Bit 6...4: Reservados, se ponen en 0
Bit 7: Direccin de las transferencias( se ignora para endpoints de control )
0 = OUT endpoint
1 = IN endpoint
3 bmAttributes 1 Bitmap Este campo describe los atributos del endpoint cuando lo configur utilizando el valor
bConfigurationValue.
Bit 10: Tipo de transferencia:
00 = Control
01 = Isochronous
10 = Bulk
11 = Interrupt
El resto de los bits estn reservados.
4 wMaxPacketSize 2 Number Es el mximo tamao de paquete que este endpoint es capaz de enviar o recibir
cuando se selecciona esta configuracin.
Para endpoints iscronos, este valor se utiliza para reservar tiempo de bus en el
schedule, requerido para los payloads de datos de cada frame. El pipe puede sobre
la marcha, utilizar menos ancho de banda que el reservado. Si es necesario, el
dispositivo reporta el ancho de banda actual en uso por medio de sus propios
mecanismos normales no definidos por USB.
Para endpoints de interrupcin, bulk, y control, se pueden enviar payloads de datos
mas pequeos, pero esto terminar la transferencia y podr o no requirirse
intervencin para recomenzarla.
6 bInterval 1 Number Intervalo para polling al endpoint en espera de transferencias de datos. Expresado en
milisegundos. Este campo se ignora para endpoints bulk y control. Para endpoints iscronos este
campo debe estar en 1. Para endpoints de interrupcin, este campo puede valer desde 1 a 255.
Autor: Alejandro Furfaro 68
const byte CFG_DESC[] = {CFG_LENGTH, /*length of this desc. */
CONFIGURATION, /*CONFIGURATION descriptor*/
0x22,0x00, /*total length returned */
0x01, /*number of interfaces */
0x01, /*number of this config */
CFG_STR_OFS, /*index of config. string */
ATTRIBUTES, /*attr.: bus powered */
50, /*max power (100 mA) */

INT_LENGTH, /*length of this desc. */
INTERFACE, /*INTERFACE descriptor */
0x00, /*interface number */
0x00, /*alternate setting */
0x01, /*# of (non 0) endpoints */
HIDCLASS, /*interface class */
NOSUBCLASS, /*interface subclass */
0x00, /*interface protocol */
INT_STR_OFS, /*index of intf. string */

HID_LENGTH, /*length of this desc. */
HID, /*HID descriptor */
0x00,0x01, /*HID spec rev level (BCD)*/
0x00, /*target country */
1, /*# HID class desc follow.*/
HIDREPORT, /*report descr. type */
RPT_DESC_SIZE,0x00, /*report descr. length */

END_LENGTH, /*length of this desc. */
ENDPOINT, /*ENDPOINT descriptor */
0x85, /*address (IN) */
0x03, /*attributes (INTERRUPT) */
0x40,0x00, /*max packet size (64) */
0xFF}; /*interval (ms) */
Descriptores de Configuracin,
Interfaz y Endpoint. Ejemplos
Autor: Alejandro Furfaro 69
Descriptor de String
Offset Campo Tamao Valor Descripcin
0 bLength 1 N+2 Tamao del Descriptor en Bytes
1 bDescriptorType 1 Constant Tipo de Descriptor STRING
2 wLANGID[0] 2 Constant Cdigo de LANGID Cero
.. . .
N wLANGID[x] 2 Cdigo de LANGID x
Autor: Alejandro Furfaro 70
Descriptores de String. Ejemplos
const byte STR_DATA[] = {4,3,9,4 /*LANGID array (English) */
/*[004] MFG_STR --> "National Semiconductor Corporation" -------------*/
, 70,3, 78,0, 97,0,116,0,105,0,111,0,110,0, 97,0,108,0, 32,0, 83,0
,101,0,109,0,105,0, 99,0,111,0,110,0,100,0,117,0, 99,0,116,0,111,0
,114,0, 32,0, 67,0,111,0,114,0,112,0,111,0,114,0, 97,0,116,0,105,0
,111,0,110,0
/*[074] PID_STR --> "USBN9603 HID Evaluation" ------------------------*/
, 48,3, 85,0, 83,0, 66,0, 78,0, 57,0, 54,0, 48,0, 51,0, 32,0, 72,0
, 73,0, 68,0, 32,0, 69,0,118,0, 97,0,108,0,117,0, 97,0,116,0,105,0
,111,0,110,0
/*[122] NBR_STR --> "Jim Lyle" ---------------------------------------*/
, 18,3, 74,0,105,0,109,0, 32,0, 76,0,121,0,108,0,101,0
/*[140] CFG_STR --> "Standard Configuration" -------------------------*/
, 46,3, 83,0,116,0, 97,0,110,0,100,0, 97,0,114,0,100,0, 32,0, 67,0
,111,0,110,0,102,0,105,0,103,0,117,0,114,0, 97,0,116,0,105,0,111,0
,110,0
/*[186] INT_STR --> "HID JOYSTICK Interface" -------------------------*/
, 46,3, 72,0, 73,0, 68,0, 32,0, 74,0, 79,0, 89,0, 83,0, 84,0, 73,0
, 67,0, 75,0, 32,0, 73,0,110,0,116,0,101,0,114,0,102,0, 97,0, 99,0
,101,0
}; /*end of STR_DATA */
#define MFG_STR_OFS 4
#define PID_STR_OFS 74
#define NBR_STR_OFS 122
#define CFG_STR_OFS 140
#define INT_STR_OFS 186
Autor: Alejandro Furfaro 71
Datos para un requerimiento SETUP
Especifica la cantidad de bytes qu se
transmitirn en en la segunda fase de datos. La
direccin de la transaccin la especifica el bit D7
de bmRequest
Especifica al requerimiento especfico
que se va a enviar
(ver siguiente slide)
Especifica las caractersticas del
requerimiento especfico que se va
a enviar
Autor: Alejandro Furfaro 72
Requerimientos Standard
bmRequestType bRequest wValue wIndex wLength Data
00000000B
00000001B
00000010B
CLEAR_FEATURE Feature
Selector
Zero
Interface
Endpoint
Zero None
10000000B GET_CONFIGURATION Zero Zero One Configuration
Value
10000000B GET_DESCRIPTOR Descriptor Type
and Descriptor
Index
Zero or
Language
ID
Descript
or
Length
Descriptor
10000001B GET_INTERFACE Zero Interface One Alternate Interface
10000000B
10000001B
10000010B
GET_STATUS Zero Zero
Interface
Endpoint
Two Device, Interface,
or Endpoint Status
00000000B SET_ADDRESS Device Address Zero Zero None
00000000B SET_CONFIGURATION Configuration
Value
Zero Zero None
00000000B SET_DESCRIPTOR Descriptor Type
and Descriptor
Index
Zero or
Language
ID
Descript
or
Length
Descriptor
00000000B
00000001B
00000010B
SET_FEATURE Feature
Selector
Zero
Interface
Endpoint
Zero None
00000001B SET_INTERFACE Alternate
Setting
Interface Zero None
10000010B SYNCH_FRAME Zero Endpoint Two Frame Number
Autor: Alejandro Furfaro 73
Cdigos para Requerimientos y
Tipos Standard
bRequest Valor
GET_STATUS 0
CLEAR_FEATURE 1
Reservado para uso Futuro 2
SET_FEATURE 3
Reservado para uso Futuro 4
SET_ADDRESS 5
GET_DESCRIPTOR 6
SET_DESCRIPTOR 7
GET_CONFIGURATION 8
SET_CONFIGURATION 9
GET_INTERFACE 10
SET_INTERFACE 11
SYNCH_FRAME 12
Tipo de Descriptor Receptor Valor
DEVICE_REMOTE_WAKEUP Device 1
ENDPOINT_HALT Endpoint 0
Tipo de Descriptor Valor
DEVICE 1
CONFIGURATION 2
STRING 3
INTERFACE 4
ENDPOINT 5
HDMI tiene tres canales de comunicacin fsicamente separados,
que son la DDC, TMDS, y la CCA opcional
El cable HDMI y conectores llevan cuatro pares diferenciales que
componen los datos TMDS y canales de despertador.
Audio, vdeo y datos auxiliares se transmite a travs de los tres
canales de datos TMDS.
Un reloj TMDS, por lo general funciona a la tasa de pxeles de
vdeo, se transmite en el canal de reloj TMDS
HDMI canals de comunicacion
HDMI lleva un canal VESA DDC. El DDC se utiliza para la configuracin
y el intercambio entre estado de un nico transmisor y un receptor nico.
El DDC es utilizado por el transmisor a leer del receptor mejorado Extended
Display Identification Data (E-EDID) con el fin de descubrir la
configuracin y las capacidades del receptor.
El protocolo CEC opcional proporciona funciones de control de alto nivel
entre todos los diferentes productos audiovisuales en el entorno de un
usuario
HDMI canals de comunicacion
Hay 3 tipos de conector HDMI, tipo A, B y C. Los tres conectores llevan todo
requiere seales HDMI, incluyendo un enlace TMDS.
El conector de tipo B es ligeramente ms grande y lleva un segundo enlace de
TMDS, que es necesario para apoyar pantallas de muy alta resolucin usando
doble enlace.
El conector de tipo C lleva las mismas seales que el Tipo A, pero es ms
compacto y destinados para aplicaciones mviles.
El conector HDMI proporciona un pasador que permite el transmisor para el
suministro de 5,0 voltios para el cable y el receptor.
Todos los transmisores HDMI harn valer la seal de alimentacin 5 V
cuando el transmisor est usando las seales DDC o TMDS
El acoplamiento de HDMI funciona en uno de tres modos:
Vdeo Perodo de datos - los pxeles activos de una lnea de video
activo se transmiten
Perodo de isla de datos - de audio y datos auxiliares se transmiten
utilizando una serie de paquetes.
Estos datos auxiliar incluye InfoFrames y otros datos que
describen el audio activa o secuencia de vdeo o describir el
transmisor.
Control de perodo-Se utiliza cuando no hay vdeo, audio, o datos
auxiliares se necesita transmitir. Se requiere entre dos perodos que
no se controlan los perodos.
El acoplamiento de HDMI
Los datos de vdeo pueden tener un tamao de pxel de 24, 30, 36 o 48 bits.
Profundidades de color superiores a 24 bits se definen como modos "Deep
Color".
El video en el valor predeterminado de profundidad de color de 24 bits es
llevado a una tasa de reloj TMDS igual a la tasa de reloj de pxeles.
Pxeles de vdeo de datos de vdeo de codificacin es tal que los 8 bits
convertidos a 10 bits por el transmisor de HDMI.
Los pxeles de video pueden ser codificados en cualquiera RGB, YCbCr o
YCBCR 04:04:04 04:02:02 formatos.
Modos de color profundos son opcionales, aunque si un transmisor o receptor
HDMI compatible con cualquier modo de profundidad de color *, deber
soportar el modo de 36 bits.
Los datos de vdeo
Un paquete infoframe lleva uno infoframe. El infoframe proporcionada
por HDMI se limita a 30 bytes ms un byte de suma de comprobacin.
Transmisor HDMI siempre transmitir una infoframe AVI, al menos, una
vez cada dos campos de vdeo si el transmisor es compatible.
El AVI infoframe se transmitir aunque tal transmisor est transmitiendo
RGB y de vdeo no pixel-repiti.
Para el formato AVI infoframe consulte: Seccin 8.2 de la especificacin
HDMI 1.3
Un paquete infoframe

Transmisor HDMI deber leer el EDID y primera extensin CEA para
determinar las capacidades soportadas por el receptor.
Transmisor HDMI comprobar la E-EDID para la presencia de un vendedor
HDMI especfica bloque de datos dentro de la primera extensin CEA para
determinar si se trata de un dispositivo HDMI / DVI.
Todo el receptor soporta 640 * 480P formato de vdeo por defecto
Transmisor HDMI
Un receptor HDMI aducir nivel de alta tensin en su Hot Plug Detect pin
cuando el E-EDID est disponible para su lectura.
Receptor HDMI indicar cualquier cambio en el contenido del E-EDID
conduciendo un pulso bajo nivel de voltaje en la conexin en caliente
Deteccin pin.
Un receptor HDMI

También podría gustarte