Documente Academic
Documente Profesional
Documente Cultură
Genealoga y alcance
Genealoga
Alcance:
Arquitectura I
El
El Universal
Universal Serial
Serial Bus
Bus est
est organizado
organizado
como
como una
una estructura
estructura jerrquica,
jerrquica,
controlada
controlada por
por un
un dispositivo
dispositivo
denominado
denominado host
host controller
controller que
que reside
reside
en
en la
la PC.
PC.
HOST Tier 1
HOST
Hub root
Tier 2
Hub1
Func
Tier 3
Hub2
USB 1.1
Func
Func
Hub3 Hub4
Func
Hub5
Func
Func
Func
Tier 4
Tier 5
Tier 6
Tier 7
Hub6
Hub7
USB 2.0
Se
Se dispone
dispone adems
adems de
de
un
un dispositivo
dispositivo
denominado
denominado Hub,
Hub, en
en
el
el centro
centro de
de cada
cada
estrella,
estrella, logrndose
logrndose de
de
esta
esta forma
forma un
un
anidamiento
anidamiento multinivel
multinivel
que
que permite
permite la
la
expansin
expansin del
del bus,
bus,
conectndole
conectndole diversos
diversos
dispositivos.
dispositivos.
Func
Arquitectura II
HOST
Hub root
Hub1
HOST Tier 1
Tier 2
Func
Tier 3
Hub2
Func
Func
Func
Hub3 Hub4
Func
Tier 4
Tier 5
Func
Hub5
Func
El
El Hub
Hub root
root es
es el
el elemento
elemento del
del
sistema
sistema que
que compone
compone el
el vrtice
vrtice
de
de la
la pirmide
pirmide jerrquica.
jerrquica. Por
Por lo
lo
tanto
tanto solo
solo hay
hay un
un Hub
Hub Root
Root en
en
el
el sistema.
sistema.
Tambin
Tambin se
se lo
lo conoce
conoce como
como Host
Host
Controller,
Controller, yy se
se compone
compone de
de
hardware
hardware firmware
firmware yy software,
software,
todo
todo instalado
instalado en
en la
la PC.
PC.
Tier 6
Tier 7
Hub6
Hub7
Func
Existen
Existen dos
dos standards
standards para
para implementar
implementar Host
Host Controllers:
Controllers: Open
Open Host
Host
Controller
Controller Interface
Interface (OHCI)
(OHCI) desarrollado
desarrollado por
por Compaq,
Compaq, yy Universal
Universal Host
Host
Controller
Controller Interface
Interface (UHCI)
(UHCI) de
de Intel.
Intel.
Dispositivos USB I
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 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.
Autor: Alejandro Furf
Consideraciones adicionales
self powered
Bus powered.
Function Layer,
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.
9
10
11
Conexiones
VBUS
VBUS ,, por
por su
su parte
parte transporta
transporta
5Vcc
5Vcc con
con respecto
respecto de
de la
la lnea
lnea
GND
GND que
que tiene
tiene la
la referencia
referencia
elctrica
elctrica de
de tierra
tierra del
del sistema.
sistema.
La
La seal
seal se
se aplica
aplica en
en forma
forma
diferencial
diferencial entre
entre D+
D+ yy D-,
D-, de
de modo
modo
tal
tal que
que se
se establece
establece una
una
comunicacin
comunicacin Half
Half Duplex.
Duplex. Es
Es decir,
decir,
se
se transmite
transmite en
en un
un nico
nico sentido
sentido en
en
cada
cada momento.
momento.
12
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
14
Caractersticas Elctricas II
Sealizacin al desconectar
un dispositivo
Sealizacin al conectar
un dispositivo Full Speed
15
Sealizacin al resetear
un dispositivo
16
Caractersticas Elctricas IV
Niveles de Sealizacin
Estado del Bus
En el conector de
origen
En el conector destino
Requerido
Aceptable
1 Diferencial
0 Diferencial
D+ y D- < VIL
(max)
Estado Dato J
Low Speed
0 Diferencial
Full Speed
1 Diferencial
0 Diferencial
1 Diferencial
Estado Dato
K
Low Speed
Full Speed
1 Diferencial
0 Diferencial
Start of Packet
1 Diferencial
0 Diferencial
D+ y D- < VIH
(min)
17
Caractersticas Elctricas V
Niveles de Sealizacin
Estado del Bus
En el conector de
origen
En el conector destino
Requerido
Aceptable
Idle
Low Speed
Full Speed
N.A.
Resume
Estado Dato K
Estado Dato K
Desconectado
(a un port
upstream)
N.A.
Conectado (a
un port
downstream)
N.A.
Idle 2 mseg.
Reset
End of Packet
(EOP)
D+ y D- < VIL
(max) pr 2.5
seg.
18
Caractersticas Elctricas VI
19
20
21
22
Endpoints I
23
Endpoints II
Nmero de identificacin
24
El Endpoint 0
25
Pipes I
26
Pipes II
Frame de 1mseg.
Sin utilizar
Dispositivo 2 Endpoint 2
Dispositivo 2 Endpoint 2
Dispositivo 3 Endpoint 2
START OF FRAME
Dispositivo 1 Endpoint 3
Dispositivo 4 Endpoint 1
Sin utilizar
Dispositivo 6 Endpoint 2
Dispositivo 2 Endpoint 1
START OF FRAME
Dispositivo 1 Endpoint 3
Dispositivo 1 Endpoint 3
Frame de 1mseg.
28
Transacciones
Transferencia 1
Transferencia 2
Transaccin 1
Transaccin 2
Token
PID
Datos
Info. Adicional
Transferencia 3
Transaccin 3
Handshake
CRC
Cada Transferencia
comprende una o mas
transacciones
29
Paquetes I
30
Paquetes II
Info. Adicional
CRC
31
Paquetes III
PID Type
Token
Data
Handshake
DATA1
ACK
1011B
0010B
NAK
1010B
STALL
1110B
PRE
1100B
Special
32
Paquetes IV
Formato
IN / OUT / SETUP:
START OF FRAME:
33
Paquetes V
Formato
DATA0 / DATA1:
Formato
34
Paquetes VI
Cuando las transacciones llevan como PID los cdigos IN, OUT, o SETUP,
es necesario especificar la direccin del port seleccionado as como su
nmero de Endpoint.
Tenemos 128 direcciones de port (Addr 0-6), y 16 Endpoints (Endp 03), para transacciones IN y otros 16 para transacciones OUT.
PID
Info. Adicional
CRC
Paquetes VII
PID
Info. Adicional
CRC
36
Tipos de Transferencias I
Manejo de errores.
37
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.
38
Transferencias de Interrupcin:
Son comunicaciones de baja frecuencia, para tamaos de
paquete de datos muy pequeos, y tiempo de recuperacin
de datos limitado.
39
Tipos de Transferencias IV
Tipo de Transferencia
Control
Bulk
Interrupcin
Iscrona
Uso tpico
Configuracin
Impresora,
scanner
Mouse, Teclado
Audio
Obligatoria
Si
No
No
No
No
Si
No
Correccin de errores
Si
Si
Si
No
Tipo de pipe
Message
Stream
Stream
Stream
No
No
Si
Si
No
No
Si
Si
8, 16, 32, 64
bytes
8, 16, 32, 64
bytes
1 a 64 bytes
8 bytes
10%
No aplica
Ninguno
8 bytes
No aplica
90 % (ambas combinadas)
40
Formatos de Transacciones I
Transferencias de Volumen (Bulk):
41
Formatos de Transacciones II
Transferencias de Volumen (Bulk):
42
43
Formatos de Transacciones IV
Transferencias de Control:
44
Formatos de Transacciones V
Transferencias de Interrupcin:
45
Formatos de Transacciones VI
Transferencias Iscronas:
46
47
Max Bandwidth
(bytes/second)
32000
62000
120000
224000
384000
608000
832000
1500000
Max Bandwidth
(bytes/second)
3000
6000
12000
24000
187500
48
Max
Bandwidth
(bytes/second)
150000
272000
460000
704000
960000
1152000
1280000
1280000
1280000
1024000
1023000
1500000
49
Max
Bandwidth
(bytes/second)
107000
200000
352000
568000
816000
1056000
1216000
1500000
50
51
Enumeracin
Antes
Una
Este
52
En la secuencia de
Enumeracin, el
dispositivo puede
tomar seis estados
posibles:
Attached
Suspended
Powered
Default
Addressed
Configured
Hub Reseteado
O Desconfigurado
Hub
Configurado
Actividad
en el Bus
Powered
Corte de
Alimentacin
Bus
Inactivo
Reset
Actividad
en el Bus
Default
Direccin
Asignada
Reset
Addressed
Dispositivo
Des
Configuraado
Bus
Inactivo
Suspended
Actividad
en el Bus
Bus
Inactivo
Suspended
Dispositivo
Configuraado
Configured
Actividad
en el Bus
Bus
Inactivo
Suspended
Suspended
53
Pasos en la Enumeracin I
54
Pasos en la Enumeracin II
55
56
Pasos en la Enumeracin IV
57
Pasos en la Enumeracin V
58
Pasos en la Enumeracin VI
59
El
el requerimiento Get_Descriptor
Por
El
60
Comando Set_Configuration.
El dispositivo est ahora en el estado Configured.
Configured
El dispositivo est listo para ser utilizado.
61
Descriptor de Dispositivo
Offset Campo
Tamao Valor
0 bLength
1 bDescriptorType
2 bcdUSB
4 bDeviceClass
5 bDeviceSubClass
6 bDeviceProtocol
7
8
10
12
14
15
16
17
bMaxPacketSize0
idVendor
idProduct
bcdDevice
iManufacturer
iProduct
iSerialNumber
bNumConfigurations
Descripcin
62
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.
};
*/
*/
*/
*/
*/
*/
*/
*/
*/
*/
*/
*/
*/
*/
63
Descriptor de Configuracin
Offset Campo
0 bLength
1 bDescriptorType
2 wTotalLength
4 bNumInterfaces
5 bConfigurationValue
6 iConfiguration
7 bmAttributes
8 MaxPower
Tamao Valor
Descripcin
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.
64
Interface Descriptor
Offset Campo
Tamao Valor
Descripcin
0 bLength
1 Number
1 bDescriptorType
2 bInterfaceNumber
3 bAlternateSetting
1 Number
4 bNumEndpoints
1 Number
5 bInterfaceClass
1 Class
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
8 iInterface
1 Index
65
Descriptor de Endpoint
Offset
Campo
Tamao
Valor
Descripcin
0 bLength
1 bDescriptorType
2 bEndpointAddress
1 Number
1 Constant
1 Endpoint
3 bmAttributes
1 Bitmap
Este campo desc ribe los atributos del endpoint cuando lo c onfigur utilizando el valor
bConfigurationValue.
Bit 10: Tipo de transferencia:
00 = Control
01 = Isoc hronous
10 = Bulk
11 = Interrupt
El resto de los bits estn reservados.
4 wMaxPacketSize
2 Number
6 bInterval
1 Number
66
Descriptores de Configuracin,
Interfaz y Endpoint. Ejemplos
const byte CFG_DESC[] = {CFG_LENGTH,
CONFIGURATION,
0x22,0x00,
0x01,
0x01,
CFG_STR_OFS,
ATTRIBUTES,
50,
INT_LENGTH,
INTERFACE,
0x00,
0x00,
0x01,
HIDCLASS,
NOSUBCLASS,
0x00,
INT_STR_OFS,
*/
*/
*/
*/
*/
*/
*/
*/
*/
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,
ENDPOINT,
0x85,
0x03,
0x40,0x00,
0xFF};
*/
*/
*/
*/
*/
*/
67
Descriptor de String
Offset Campo
0
1
2
..
N
bLength
bDescriptorType
wLANGID[0]
wLANGID[x]
Tamao Valor
1
1
2
N+2
Constant
Constant
.
Descripcin
Tamao del Descriptor en Bytes
Tipo de Descriptor STRING
Cdigo de LANGID Cero
.
Cdigo de LANGID x
68
69
Campo
Tamao Valor
0 bmRequestType
1 Bitmap
6 wLength
2 Count
Descripcin
Characteristics of request:
D7: Data transfer direction
Formato de wIndex cuando se especifica un Endpoint
0 = Host-to-device
Formato de wIndex cuando se especifica un Endpoint
D7
D6
D5
D4
D3
D2
D1
D0
1 = Device-to-host
D7
D6
D5
D4
D3
D2
D1
D0
Especifica las caractersticas del
Direccin Reservada (Reset a cero)
Nmero de Endpoint
Direccin Reservada (Reset a cero)
Nmero de Endpoint
D6...5:
Type
D15
D14
D13
D12
D11
D10
D9
D8
requerimiento especfico que se va
D15
D14
D13
D12
D11
D10
D9
D8
0 = Standard
Reservada (Reset a cero)
a enviar
Reservada (Reset a cero)
1 = Class
Formato de wIndex cuando se especifica una Interfaz
2 = Vendor
Formato de wIndex cuando se especifica una Interfaz
Especifica al requerimiento especfico
D7
D6
D5
D4
D3
D2
D1
D0
D7
D6
D5
D4
D3
D2
D1
D0
3
=
Reserved
N de Interfaz
que se va a enviar
N de Interfaz
D4...0: Recipient
D15
D14
D13
D12
D11
D10
D9
D8
(ver siguiente slide)
D15
D14
D13
D12
D11
D10
D9
D8
Reservada (Reset a cero)
0
=
Device
Reservada (Reset a cero)
1 = Interface
2 = Endpoint
3 = Other
4...31 = Reserved
1 bRequest
1 Value
Specific request (Ver hoja "Standard Device Requests")
2 wValue
2 Value
Word-sized field that varies according to request
4 wIndex
2 Index or Offset Word-sized field that varies according to request;
typically used to pass an index or offset
70
Requerimientos Standard
wIndex wLength Data
Zero
Zero
None
Interface
Endpoint
Zero
One
Configuration
Value
Descriptor Type Zero or Descript
Descriptor
and Descriptor Language
or
Index
ID
Length
Zero
Interface
One
Alternate Interface
bmRequestType bRequest
wValue
00000000B
CLEAR_FEATURE
Feature
00000001B
Selector
00000010B
10000000B
GET_CONFIGURATION
Zero
10000000B
GET_DESCRIPTOR
10000001B
GET_INTERFACE
10000000B
10000001B
10000010B
00000000B
00000000B
GET_STATUS
00000000B
SET_DESCRIPTOR
00000000B
00000001B
00000010B
00000001B
SET_FEATURE
10000010B
SYNCH_FRAME
SET_ADDRESS
SET_CONFIGURATION
SET_INTERFACE
Zero
Zero
Two
Device, Interface,
Interface
or Endpoint Status
Endpoint
Device Address
Zero
Zero
None
Configuration
Zero
Zero
None
Value
Descriptor Type Zero or Descript
Descriptor
and Descriptor Language
or
Index
ID
Length
Feature
Zero
Zero
None
Selector
Interface
Endpoint
Alternate
Interface
Zero
None
Setting
Zero
Endpoint
Two
Frame Number
71
Tipo de Descriptor
DEVICE
CONFIGURATION
STRING
INTERFACE
ENDPOINT
Tipo de Descriptor
Receptor Valor
DEVICE_REMOTE_WAKEUP Device
ENDPOINT_HALT
Endpoint
Valor
1
2
3
4
5
1
0
72
USB
Sync
Sync
00000001
00000001
SOF
SOF
0x
0xA5
A5
Sync
Sync
00000001
00000001
SETUP
SETUP
0x
0xB4
B4
Sync
Sync
00000001
00000001
DATA0
DATA0
0x
0xC3
C3
Sync
Sync
00000001
00000001
ACK
ACK
0x
0x4B
4B
Frame#
Frame#
0x0DD
0x0DD
ADDR
ADDR
0x00
0x00
CRC5
CRC5
0x15
0x15
ENDP
ENDP
0x0
0x0
EOP
EOP
001
001
CRC5
CRC5
0x08
0x08
DATA
DATA
80
80 06
06 00
00 01
01 00
00 00
00 40
40 00
00
Device
EOP
EOP
001
001
CRC16
CRC16
0xBB29
0xBB29
EOP
EOP
001
001
EOP
EOP
001
001
73
Start Of Frame
...se genera cada 1 mseg.
Setup stage
USB
Sync
Sync
00000001
00000001
SOF
SOF
0xA5
0x
0xA5
A5
Frame#
Frame#
0x0DD
0x0DD
CRC5
CRC5
0x15
0x15
EOP
EOP
001
001
Sync
SETUP
ADDR
ENDP
CRC5
EOP
00000001
0xB4
0x00
0x0
0x08
001
Sync
DATA0
00000001
0xC3
DATA
Device
End
End of
of Packet
Packet (D+
(D+ and
and DD- bajas)
bajas)
CRC16
EOP
80 06 00 01 00 00 40 00 55 bit
001
Checksum
sobre
bit0xBB29
Checksum
sobre Frame#
Frame#
Sync
ACK
EOP
00000001
0x4B
001
Nmero
Nmero de
de Frame
Frame (0
(0 -- 2047)
2047) cclico
cclico
Start
Start of
of Frame
Frame ((uno
uno por
por milisegundo)
milisegundo)
Packet
Packet start
start indica
indica llegando
llegando paquete
paquete al
al transceiver
transceiver
74
Paquetes Setup
Se decodifican los Paquetes Setup completos y se
generan las interrupciones
Setup stage
USB
Sync
SOF
Frame#
CRC5
EOP
00000001
0xA5
0x0DD
0x15
001
Sync
Sync
00000001
00000001
SETUP
SETUP
0xB4
0x
0xB4
B4
Sync
DATA0
00000001
0xC3
ADDR
ADDR
0x00
0x00
ENDP
ENDP
0x0
0x0
DATA
Sync
ACK
EOP
00000001
0x4B
001
CRC5
CRC5
0x08
0x08
EOP
EOP
001
001
CRC16
Device
EOP
80 06 00 01 00 00 40 00
0xBB29
001
Endpoint
Endpoint 00 ((usado
usado para
para configuracin
configuracin))
Addr
Addr 00 (define
(define direc
direc.. para
para cada
cada nuevo
nuevo disp.
disp. attachado
attachado))
Setup
Setup Packet
Packet ((comienza
comienza transf.
transf. de
de control)
control)
75
Paquete Data
El Paquete Data define que clase de transferencia
setup se inicia
Setup stage
Sync
SETUP
ADDR
ENDP
CRC5
EOP
00000001
0xB4
0x00
0x0
0x08
001
Sync
Sync
00000001
00000001
DATA0
DATA0
0x
0xC3
0xC3
C3
DATA
DATA
80
80 06
06 00
00 01
01 00
00 00
00 40
40 00
00
Sync
ACK
EOP
00000001
0x4B
001
CRC16
CRC16
0xBB29
0xBB29
USB
EOP
EOP
001
001
DATA
DATA
Device
Get device descriptor
genera una interrupcin
76
ACKnowledged
Sync
Sync
00000001
00000001
SOF
SOF
0xA5
0xA5
Sync
Sync
00000001
00000001
SETUP
SETUP
0x
0xB4
B4
Sync
Sync
00000001
00000001
DATA0
DATA0
0x
0xC3
C3
Sync
Sync
00000001
00000001
ACK
ACK
0x
0x4B
4B
Frame#
Frame#
0x0DD
0x0DD
ADDR
ADDR
0x00
0x00
CRC5
CRC5
0x15
0x15
ENDP
ENDP
0x0
0x0
EOP
EOP
001
001
CRC5
CRC5
0x08
0x08
DATA
DATA
80
80 06
06 00
00 01
01 00
00 00
00 40
40 00
00
EOP
EOP
001
001
Acknowledge
Acknowledge Packet
Packet
EOP
EOP
001
001
CRC16
CRC16
0xBB29
0xBB29
EOP
EOP
001
001
USB
Device
77
Paquete IN/OUT
Cada transferencia de Datos ser iniciada por el host
(PC) con un Paquete IN/OUT
Data stage
USB
Sync
Sync
00000001
00000001
SOF
SOF
0x
0xA5
A5
Sync
Sync
00000001
00000001
IN
IN
0x96
0x96
Sync
Sync
00000001
00000001
DATA1
DATA1
0x
0xD2
D2
Sync
Sync
00000001
00000001
ACK
ACK
0x
0x4B
4B
Frame#
Frame#
0x0DE
0x0DE
ADDR
ADDR
0x00
0x00
CRC5
CRC5
0x17
0x17
ENDP
ENDP
0x0
0x0
EOP
EOP
001
001
CRC5
CRC5
0x8
0x8
DATA
DATA
12
12 01
01 00
00 01
01 00
00 00
00 00
00 08
08
EOP
EOP
001
001
CRC16
CRC16
0xC8E7
0xC8E7
Device
EOP
EOP
001
001
EOP
EOP
001
001
Data
Data In
In Packet
Packet (Host
(Host requiere
requiere datos
datos del
del dispositivo
dispositivo))
79
Paquetes de Datos
Data stage
Sync
IN
ADDR
ENDP
CRC5
EOP
00000001
0x96
0x00
0x0
0x8
001
Sync
Sync
00000001
00000001
DATA1
DATA1
0xD2
0x
0xD2
D2
DATA
DATA
12
12 01
01 00
00 01
01 00
00 00
00 00
00 08
08
Sync
ACK
EOP
00000001
0x4B
001
USB
CRC16
CRC16
0xC8E7
0xC8E7
EOP
EOP
001
001
Device
DATA
DATA
V 01.00
00 = Device Class
00 = Device Protocol
00 = Device Sub Class
08 = Tamao Max. de paquete del
endpoint 0
80
USB
Sync
Sync
00000001
00000001
SOF
SOF
0x
0xA5
A5
Sync
Sync
00000001
00000001
OUT
OUT
0x
0x87
87
Sync
Sync
00000001
00000001
DATA1
DATA1
0x
0xD2
D2
Sync
Sync
00000001
00000001
ACK
ACK
0x
0x4B
4B
Frame#
Frame#
0x0E0
0x0E0
ADDR
ADDR
0x00
0x00
CRC5
CRC5
0x0E
0x0E
ENDP
ENDP
0x0
0x0
DATA
DATA
EOP
EOP
001
001
CRC5
CRC5
0x08
0x08
EOP
EOP
001
001
CRC16
CRC16
0x0000
0x0000
Device
EOP
EOP
001
001
EOP
EOP
001
001
Paquete de datos vaco
indica fin de la etapa de
datos
81
USB
RESET
RESET
128160
128160
Device
Reset
Reset iniciado
iniciado por
por el
el host
host
82
SOF
SOF
0x
0xA5
A5
Sync
Sync
00000001
00000001
SETUP
SETUP
0x
0xB4
B4
Sync
Sync
00000001
00000001
DATA0
DATA0
0x
0xC3
C3
Sync
Sync
00000001
00000001
ACK
ACK
0x
0x4B
4B
Frame#
Frame#
0x143
0x143
ADDR
ADDR
0x00
0x00
CRC5
CRC5
0x04
0x04
ENDP
ENDP
0x0
0x0
USB
EOP
EOP
001
001
CRC5
CRC5
0x08
0x08
DATA
DATA
00
00 05
05 02
02 00
00 00
00 00
00 00
00 00
00
EOP
EOP
001
001
CRC16
CRC16
0xD768
0xD768
EOP
EOP
001
001
Device
EOP
EOP
001
001
DATA
DATA
83
USB
Sync
Sync
00000001
00000001
SOF
SOF
0xA5
0xA5
Sync
Sync
00000001
00000001
IN
IN
0x96
0x96
Sync
Sync
00000001
00000001
DATA1
DATA1
0x
0xD2
D2
Sync
Sync
00000001
00000001
ACK
ACK
0x
0x4B
4B
Frame#
Frame#
0x144
0x144
ADDR
ADDR
0x00
0x00
CRC5
CRC5
0x08
0x08
ENDP
ENDP
0x0
0x0
DATA
DATA
EOP
EOP
001
001
CRC5
CRC5
0x08
0x08
EOP
EOP
001
001
CRC16
CRC16
0x0000
0x0000
Device
EOP
EOP
001
001
EOP
EOP
001
001
Paquete de datos vaco
desde el dispositivo.
84
USB
Sync
Sync
00000001
00000001
SOF
SOF
0x
0xA5
A5
Sync
Sync
00000001
00000001
SETUP
SETUP
0x
0xB4
B4
Sync
Sync
00000001
00000001
DATA0
DATA0
0x
0xC3
C3
Sync
Sync
00000001
00000001
ACK
ACK
0x4B
0x4B
Frame#
Frame#
0x151
0x151
ADDR
ADDR
0x02
0x02
CRC5
CRC5
0x1E
0x1E
ENDP
ENDP
0x0
0x0
EOP
EOP
001
001
CRC5
CRC5
0x15
0x15
DATA
DATA
80
80 06
06 00
00 01
01 00
00 00
00 12
12 00
00
EOP
EOP
001
001
Device
EOP
EOP
001
001
CRC16
CRC16
0x072F
0x072F
EOP
EOP
001
001
El dispositivo es accedido
como N2
85
SOF
Frame#
CRC5
EOP
00000001
0xA5
0x151
0x1E
001
Setup stage
Sync
SETUP
ADDR
ENDP
CRC5
EOP
00000001
0xB4
0x02
0x0
0x15
001
Sync
Sync
00000001
00000001
DATA0
DATA0
0xC3
0xC3
DATA
DATA
80
80 06
06 00
00 01
01 00
00 00
00 12
12 00
00
Sync
ACK
EOP
00000001
0x4B
001
CRC16
CRC16
0x072F
0x072F
DATA
DATA
USB
EOP
EOP
001
001
Device
86
IN request
Obtiene datos del dispositivo
Data stage
USB
Sync
Sync
00000001
00000001
SOF
SOF
0x
0xA5
A5
Sync
Sync
00000001
00000001
IN
IN
0x96
0x96
Sync
Sync
00000001
00000001
DATA1
DATA1
0x
0xD2
D2
Sync
Sync
00000001
00000001
ACK
ACK
0x
0x4B
4B
Frame#
Frame#
0x152
0x152
ADDR
ADDR
0x02
0x02
CRC5
CRC5
0x1C
0x1C
ENDP
ENDP
0x0
0x0
EOP
EOP
001
001
CRC5
CRC5
0x15
0x15
DATA
DATA
12
12 01
01 00
00 01
01 00
00 00
00 00
00 08
08
EOP
EOP
001
001
CRC16
CRC16
0xC8E7
0xC8E7
Device
EOP
EOP
001
001
EOP
EOP
001
001
87
IN request II
Detalles (obtiene datos de descripcin del dispositivo)
Data stage
Sync
IN
ADDR
ENDP
CRC5
EOP
00000001
0x96
0x02
0x0
0x15
001
Sync
Sync
00000001
00000001
DATA1
DATA1
0xD2
0xD2
DATA
DATA
12
12 01
01 00
00 01
01 00
00 00
00 00
00 08
08
Sync
ACK
EOP
00000001
0x4B
001
CRC16
CRC16
0xC8E7
0xC8E7
USB
EOP
EOP
001
001
Device
DATA
DATA
12 = longitud del device descriptor
01 = Tipo device descriptor
00 = byte bajo de la especificacin USB
01 = byte alto dela especificacin USB
00 = Device Class
00 = Device Sub Class
00 = Device Protocol
08 = Tamao Max. De paquete del endpoint
0
88
2 IN request
Obtiene datos del dispositivo
Data stage
USB
Sync
Sync
00000001
00000001
SOF
SOF
0xA5
0xA5
Sync
Sync
00000001
00000001
IN
IN
0x96
0x96
Sync
Sync
00000001
00000001
DATA0
DATA0
0xC3
0xC3
Sync
Sync
00000001
00000001
ACK
ACK
0x
0x4B
4B
Frame#
Frame#
0x153
0x153
ADDR
ADDR
0x02
0x02
CRC5
CRC5
0x03
0x03
ENDP
ENDP
0x0
0x0
EOP
EOP
001
001
CRC5
CRC5
0x15
0x15
DATA
DATA
8B
8B 05
05 41
41 C5
C5 01
01 00
00 00
00 00
00
EOP
EOP
001
001
CRC16
CRC16
0x86DB
0x86DB
Device
EOP
EOP
001
001
EOP
EOP
001
001
89
2 IN request II
IN
ADDR
ENDP
CRC5
EOP
00000001
0x96
0x02
0x0
0x15
001
Sync
Sync
00000001
00000001
DATA0
DATA0
0xC3
0x
0xC3
C3
DATA
DATA
8B
8B 05
05 41
41 C5
C5 01
01 00
00 00
00 00
00
Sync
ACK
EOP
00000001
0x4B
001
CRC16
CRC16
0x86DB
0x86DB
USB
EOP
EOP
001
001
Device
DATA
DATA
90
3 IN request
Se transfiere el resto
Data stage
USB
Sync
Sync
00000001
00000001
SOF
SOF
0xA5
0x
0xA5
A5
Sync
Sync
00000001
00000001
IN
IN
0x96
0x96
Sync
Sync
00000001
00000001
DATA1
DATA1
0xD2
0xD2
Frame#
Frame#
0x154
0x154
ADDR
ADDR
0x02
0x02
CRC5
CRC5
0x1D
0x1D
ENDP
ENDP
0x0
0x0
DATA
DATA
00
00 01
01
Sync
ACK
EOP
00000001
0x4B
001
EOP
EOP
001
001
CRC5
CRC5
0x15
0x15
EOP
EOP
001
001
CRC16
CRC16
0xFCF1
0xFCF1
Device
EOP
EOP
001
001
DATA
DATA
91
USB
Sync
Sync
00000001
00000001
SOF
SOF
0x
0xA5
A5
Sync
Sync
00000001
00000001
OUT
OUT
0x
0x87
87
Sync
Sync
00000001
00000001
DATA1
DATA1
0x
0xD2
D2
Sync
Sync
00000001
00000001
ACK
ACK
0x
0x4B
4B
Frame#
Frame#
0x155
0x155
ADDR
ADDR
0x02
0x02
CRC5
CRC5
0x02
0x02
ENDP
ENDP
0x0
0x0
DATA
DATA
EOP
EOP
001
001
CRC5
CRC5
0x15
0x15
EOP
EOP
001
001
CRC16
CRC16
0x0000
0x0000
Device
EOP
EOP
001
001
EOP
EOP
001
001
92
Setup stage
USB
Sync
Sync
00000001
00000001
SOF
SOF
0x
0xA5
A5
Sync
Sync
00000001
00000001
SETUP
SETUP
0x
0xB4
B4
Sync
Sync
00000001
00000001
DATA0
DATA0
0x
0xC3
C3
Sync
Sync
00000001
00000001
ACK
ACK
0x4B
0x4B
Frame#
Frame#
0x157
0x157
ADDR
ADDR
0x02
0x02
CRC5
CRC5
0x1F
0x1F
ENDP
ENDP
0x0
0x0
EOP
EOP
001
001
CRC5
CRC5
0x15
0x15
DATA
DATA
80
80 06
06 00
00 02
02 00
00 00
00 FF
FF 00
00
EOP
EOP
001
001
CRC16
CRC16
0x9725
0x9725
Device
EOP
EOP
001
001
EOP
EOP
001
001
93
SOF
Frame#
CRC5
EOP
00000001
0xA5
0x157
0x1F
001
Sync
SETUP
ADDR
ENDP
CRC5
EOP
00000001
0xB4
0x02
0x0
0x15
001
Sync
Sync
00000001
00000001
DATA0
DATA0
0xC3
0xC3
DATA
DATA
80
80 06
06 00
00 02
02 00
00 00
00 FF
FF 00
00
Sync
ACK
EOP
00000001
0x4B
001
CRC16
CRC16
0x9725
0x9725
USB
EOP
EOP
001
001
DATA
DATA
Device
94
In Request: Respuesta
Respuesta a Como funciona el dispositivo?
Data stage
USB
Sync
Sync
00000001
00000001
SOF
SOF
0x
0xA5
A5
Sync
Sync
00000001
00000001
IN
IN
0x96
0x96
Sync
Sync
00000001
00000001
DATA1
DATA1
0xD2
0xD2
Sync
Sync
00000001
00000001
ACK
ACK
0x4B
0x4B
Frame#
Frame#
0x158
0x158
ADDR
ADDR
0x02
0x02
CRC5
CRC5
0x0F
0x0F
ENDP
ENDP
0x0
0x0
EOP
EOP
001
001
CRC5
CRC5
0x15
0x15
DATA
DATA
09
09 02
02 19
19 00
00 01
01 01
01 00
00 60
60
EOP
EOP
001
001
CRC16
CRC16
0x5020
0x5020
Device
EOP
EOP
001
001
EOP
EOP
001
001
95
In Request: Respuesta II
Respuesta a Como funciona el dispositivo?, detalles
Sync
IN
ADDR
ENDP
CRC5
EOP
00000001
0x96
0x02
0x0
0x15
001
Sync
Sync
00000001
00000001
DATA1
DATA1
0xD2
0x
0xD2
D2
Sync
ACK
DATA
DATA
09
09 02
02 19
19 00
00 01
01 01
01 00
00 60
60
CRC16
CRC16
0x5020
0x5020
USB
EOP
EOP
001
001
EOP
DATA
00000001
0x4B
001
DATA
09 = longitud del configuration descriptor
02 = Tipo del configuration descriptor
Device
1eros. 8 bytes del device
descriptor
96
2 In Request:
Respuesta a Como funciona el dispositivo?
Data stage
USB
Sync
Sync
00000001
00000001
SOF
SOF
0xA5
0xA5
Sync
Sync
00000001
00000001
IN
IN
0x96
0x96
Sync
Sync
00000001
00000001
DATA0
DATA0
0x
0xC3
C3
Sync
Sync
00000001
00000001
ACK
ACK
0x4B
0x4B
Frame#
Frame#
0x159
0x159
ADDR
ADDR
0x02
0x02
CRC5
CRC5
0x10
0x10
ENDP
ENDP
0x0
0x0
EOP
EOP
001
001
CRC5
CRC5
0x15
0x15
DATA
DATA
32
32 09
09 04
04 00
00 00
00 01
01 00
00 00
00
EOP
EOP
001
001
CRC16
CRC16
0x273E
0x273E
Device
EOP
EOP
001
001
EOP
EOP
001
001
97
2 In Request II
Respuesta a Como funciona el dispositivo?, detalles
Sync
IN
ADDR
ENDP
CRC5
EOP
00000001
0x96
0x02
0x0
0x15
001
Sync
Sync
00000001
00000001
DATA0
DATA0
0xC3
0xC3
Sync
ACK
DATA
DATA
32
32 09
09 04
04 00
00 00
00 01
01 00
00 00
00
CRC16
CRC16
0x273E
0x273E
USB
EOP
EOP
001
001
EOP
Device
DATA
00000001
0x4B
001
DATA
32 = Consumo max.de energa (en unidades de 2mA)
98
3 In Request
Respuesta a Como funciona el dispositivo?, detalles
USB
Sync
Sync
00000001
00000001
SOF
SOF
0x
0xA5
A5
Sync
Sync
00000001
00000001
IN
IN
0x96
0x96
Sync
Sync
00000001
00000001
DATA0
DATA0
0x
0xC3
C3
Sync
Sync
00000001
00000001
ACK
ACK
0x4B
0x4B
Frame#
Frame#
0x15B
0x15B
ADDR
ADDR
0x02
0x02
CRC5
CRC5
0x0D
0x0D
ENDP
ENDP
0x0
0x0
DATA
DATA
00
00
EOP
EOP
001
001
EOP
EOP
001
001
CRC5
CRC5
0x15
0x15
EOP
EOP
001
001
CRC16
CRC16
0x0000
0x0000
Device
EOP
EOP
001
001
00 = intervalo de
polling para interrupt
endpoints
99
USB
Sync
Sync
00000001
00000001
SOF
SOF
0xA5
0xA5
Sync
Sync
00000001
00000001
OUT
OUT
0x
0x87
87
Sync
Sync
00000001
00000001
DATA1
DATA1
0x
0xD2
D2
Sync
Sync
00000001
00000001
ACK
ACK
0x
0x4B
4B
Frame#
Frame#
0x15C
0x15C
ADDR
ADDR
0x02
0x02
CRC5
CRC5
0x15
0x15
ENDP
ENDP
0x0
0x0
DATA
DATA
EOP
EOP
001
001
CRC5
CRC5
0x15
0x15
EOP
EOP
001
001
CRC16
CRC16
0x0000
0x0000
Device
EOP
EOP
001
001
EOP
EOP
001
001
100