La descarga está en progreso. Por favor, espere

La descarga está en progreso. Por favor, espere

USB USB Device Device Commando: Get descriptor (¿Quien sos?) SyncSync0000000100000001SOFSOF 0xA5 Frame#Frame#0x0DD0x0DDCRC5CRC50x150x15EOPEOP001001 SyncSync.

Presentaciones similares


Presentación del tema: "USB USB Device Device Commando: Get descriptor (¿Quien sos?) SyncSync0000000100000001SOFSOF 0xA5 Frame#Frame#0x0DD0x0DDCRC5CRC50x150x15EOPEOP001001 SyncSync."— Transcripción de la presentación:

1

2 USB USB Device Device Commando: Get descriptor (¿Quien sos?) SyncSync0000000100000001SOFSOF 0xA5 Frame#Frame#0x0DD0x0DDCRC5CRC50x150x15EOPEOP001001 SyncSync 0000000100000001 SETUPSETUP 0xB4 ADDRADDR 0x000x00 ENDPENDP 0x00x0 CRC5CRC5 0x080x08 EOPEOP 001001 SyncSync 0000000100000001 DATA0DATA0 0xC3 DATADATA 80 06 00 01 00 00 40 00 CRC16CRC16 0xBB290xBB29 EOPEOP 001001 SyncSync 0000000100000001 ACKACK 0x4B EOPEOP 001001 Setup stage

3 Sync 00000001 SOF 0xA5 Frame# 0x0DD CRC5 0x15 EOP 001 Sync 00000001 SETUP 0xB4 ADDR 0x00 ENDP 0x0 CRC5 0x08 EOP 001 Sync 00000001 DATA0 0xC3 DATA 80 06 00 01 00 00 40 00 CRC16 0xBB29 EOP 001 Sync 00000001 ACK 0x4B EOP 001 Start Of Frame...se genera cada 1 mseg SyncSync0000000100000001 Packet start indica “llegando paquete” al transceiver SOFSOF 0xA5 Start of Frame (uno por milisegundo) Frame#Frame#0x0DD0x0DD Nro. de Frame (0 - 2047) cíclico CRC5CRC50x150x15 5 bit Checksum sobre Frame# EOPEOP001001 End of Packet (D+ and D- bajas) Setup stage USB USB Device Device

4 Sync 00000001 SETUP 0xB4 ADDR 0x00 ENDP 0x0 CRC5 0x08 EOP 001 Sync 00000001 DATA0 0xC3 DATA 80 06 00 01 00 00 40 00 CRC16 0xBB29 EOP 001 Sync 00000001 ACK 0x4B EOP 001 Se decodifican los Paquetes Setup completos y se generan las interrupciones SyncSync 0000000100000001 SETUPSETUP 0xB4 Setup Packet (comienza transf. de control) ADDRADDR0x000x00 Address 0 (def. addr. Para cada nuevo disp. attachado) Sync 00000001 SOF 0xA5 Frame# 0x0DD CRC5 0x15 EOP 001 ENDPENDP0x00x0 Endpoint 0 (usado para configuración) CRC5CRC50x080x08EOPEOP001001 Setup stage USB USB Device Device

5 Sync 00000001 DATA0 0xC3 DATA 80 06 00 01 00 00 40 00 CRC16 0xBB29 EOP 001 Sync 00000001 ACK 0x4B EOP 001 El Paquete Data define que clase de transferencia setup se inicia. Sync 00000001 SETUP 0xB4 ADDR 0x00 ENDP 0x0 CRC5 0x08 EOP 001 SyncSync0000000100000001DATA0DATA0 0xC3 DATADATA DATADATA 80 06 00 01 00 00 40 00 01 = device descriptor 01 = device descriptor 80 = dirección de transfer, comando std. 80 = dirección de transfer, comando std. 06 = get descriptor 06 = get descriptor 00 = índice del descriptor 40 00 = cantidad de bytes requeridos por el host (formato little endian; Lowbyte, Highbyte) 40 00 = cantidad de bytes requeridos por el host (formato little endian; Lowbyte, Highbyte) Get device descriptor genera una interrupción Get device descriptor genera una interrupción 00 00 = language ID CRC16CRC160xBB290xBB29EOPEOP001001 Setup stage USB USB Device Device

6 USB USB Device Device Cada transferencia de control debe ser reconocida (ACKnowledged) SyncSync0000000100000001ACKACK 0x4B Acknowledge Packet EOPEOP001001 SyncSync0000000100000001SOFSOF0xA50xA5Frame#Frame#0x0DD0x0DDCRC5CRC50x150x15EOPEOP001001 SyncSync0000000100000001SETUPSETUP 0xB4 ADDRADDR0x000x00ENDPENDP0x00x0CRC5CRC50x080x08EOPEOP001001 SyncSync0000000100000001DATA0DATA0 0xC3 DATADATA 80 06 00 01 00 00 40 00 CRC16CRC160xBB290xBB29EOPEOP001001 Setup stage

7 USB USB Device Device Cada transferencia de control debe ser reconocida (ACKnowledged) (add-on) SyncSync0000000100000001ACKACK 0x4B Acknowledge Packet SyncSync0000000100000001SOFSOF 0xA5 Frame#Frame#0x0DD0x0DDCRC5CRC50x150x15EOPEOP001001 SyncSync 0000000100000001 SETUPSETUP 0xB4 ADDRADDR 0x000x00 ENDPENDP 0x00x0 CRC5CRC5 0x080x08 EOPEOP 001001 SyncSync 0000000100000001 DATA0DATA0 0xC30xC3 DATADATA 80 06 00 01 00 00 40 00 CRC16CRC16 0xBB290xBB29 EOPEOP 001001 EOPEOP001001 Setup stage

8 SyncSync 0000000100000001 ACKACK 0x4B EOPEOP 001001 Cada transferencia de Datos será iniciada por el host (PC) con un Paquete IN/OUT SyncSync 0000000100000001 ININ 0x960x96 ADDRADDR 0x000x00 ENDPENDP 0x00x0 CRC5CRC5 0x80x8 EOPEOP 001001 SyncSync0000000100000001SOFSOF 0xA5 Frame#Frame#0x0DE0x0DECRC5CRC50x170x17EOPEOP001001 Data stage USB USB Device Device SyncSync 0000000100000001 DATA1DATA1 0xD2 DATADATA 12 01 00 01 00 00 00 08 CRC16CRC16 0xC8E70xC8E7 EOPEOP 001001 Data In Packet (Host requiere datos del dispositivo)

9 Sync 00000001 DATA1 0xD2 DATA 12 01 00 01 00 00 00 08 CRC16 0xC8E7 EOP 001 Sync 00000001 ACK 0x4B EOP 001 USB USB Device Device Paquetes de Datos Sync 00000001 IN 0x96 ADDR 0x00 ENDP 0x0 CRC5 0x8 EOP 001 DATADATA 12 = longitud del device descriptor 12 = longitud del device descriptor 01 = Tipo de device descriptor 01 = Tipo de device descriptorSyncSync0000000100000001DATA1DATA1 0xD2 DATADATA 12 01 00 01 00 00 00 08 CRC16CRC160xC8E70xC8E7EOPEOP001001 00 = Device Protocol 00 = Device Protocol 00 = Device Class 00 = Device Sub Class 00 = Device Sub Class 08 = Tamaño Max. de paquete del endpoint 0 08 = Tamaño Max. de paquete del endpoint 0 1eros. 8 bytes del device descriptor 01 = byte alto de especificación USB 01 = byte alto de especificación USB 00 = byte bajo de especificación USB V 01.00 } Data stage

10 USB USB Device Device Fin de la Etapa de Datos SyncSync0000000100000001SOFSOF 0xA5 Frame#Frame#0x0E00x0E0CRC5CRC50x0E0x0EEOPEOP001001 SyncSync 0000000100000001 OUTOUT 0x87 ADDRADDR 0x000x00 ENDPENDP 0x00x0 CRC5CRC5 0x080x08 EOPEOP 001001 SyncSync 0000000100000001 DATA1DATA1 0xD2 DATADATACRC16CRC16 0x00000x0000 EOPEOP 001001 SyncSync 0000000100000001 ACKACK 0x4B EOPEOP 001001 Paquete de datos vacío indica fin de la etapa de datos Paquete Data Out (El Host aborta la etapa de datos) Data stage  Status stage

11 Reset desde el Host (10ms) Reset iniciado por el host RESETRESET128160128160 USB USB Device Device

12 SyncSync 0000000100000001 ACKACK 0x4B EOPEOP 001001 Commando: Set Address (Desde ahora te llamás Nº2) SyncSync0000000100000001SETUPSETUP 0xB4 ADDRADDR0x000x00ENDPENDP0x00x0CRC5CRC50x080x08EOPEOP001001 SyncSync 0000000100000001 DATA0DATA0 0xC3 DATADATA 00 05 02 00 00 00 00 00 CRC16CRC16 0xD7680xD768 EOPEOP 001001 DATADATA 02 = device address nr. 2 00 = dirección host- dispositivo, std. command, receptor el dispositivo 05 = set address 05 = set address 00 00 00 00 00 = default SyncSync0000000100000001SOFSOF 0xA5 Frame#Frame#0x1430x143CRC5CRC50x040x04EOPEOP001001 USB USB Device Device

13 USB USB Device Device Fin de la etapa de Datos SyncSync0000000100000001SOFSOF0xA50xA5Frame#Frame#0x1440x144CRC5CRC50x080x08EOPEOP001001 SyncSync 0000000100000001 ININ 0x960x96 ADDRADDR 0x000x00 ENDPENDP 0x00x0 CRC5CRC5 0x080x08 EOPEOP 001001 SyncSync 0000000100000001 ACKACK 0x4B EOPEOP 001001 SyncSync 0000000100000001 DATA1DATA1 0xD2 DATADATACRC16CRC16 0x00000x0000 EOPEOP 001001 Paquete de datos vacío desde el dispositivo. Data stage  Status stage

14 Get Descriptor del Dispositivo Nº 2 (¿Que sos?) SyncSync0000000100000001SOFSOF 0xA5 Frame#Frame#0x1510x151CRC5CRC50x1E0x1EEOPEOP001001 SyncSync 0000000100000001 SETUPSETUP 0xB4 ADDRADDR 0x020x02 ENDPENDP 0x00x0 CRC5CRC5 0x150x15 EOPEOP 001001 Setup stage USB USB Device Device SyncSync 0000000100000001 DATA0DATA0 0xC3 DATADATA 80 06 00 01 00 00 12 00 CRC16CRC16 0x072F0x072F EOPEOP 001001 SyncSync 0000000100000001 ACKACK 0x4B0x4B EOPEOP 001001 El dispositivo es accedido como Nº2 El dispositivo es accedido como Nº2

15 Sync 00000001 DATA0 0xC3 DATA 80 06 00 01 00 00 12 00 CRC16 0x072F EOP 001 Sync 00000001 ACK 0x4B EOP 001 Sync 00000001 SETUP 0xB4 ADDR 0x02 ENDP 0x0 CRC5 0x15 EOP 001 Sync 00000001 SOF 0xA5 Frame# 0x151 CRC5 0x1E EOP 001 Get Descriptor del Dispositivo Nº 2 (¿Que sos?), detalles DATADATA 01 = device descriptor 01 = device descriptor 80 = dirección de transferencia, std. command 80 = dirección de transferencia, std. command 06 = get descriptor 06 = get descriptor 00 = índice del descriptor 12 00 = bytes a 12 00 = bytes a transferir 00 00 = language ID SyncSync0000000100000001DATA0DATA00xC30xC3DATADATA 80 06 00 01 00 00 12 00 CRC16CRC160x072F0x072FEOPEOP001001 Setup stage USB USB Device Device

16 IN request (obtiene datos del dispositivo) SyncSync 0000000100000001 ININ 0x960x96 ADDRADDR 0x020x02 ENDPENDP 0x00x0 CRC5CRC5 0x150x15 EOPEOP 001001 SyncSync0000000100000001SOFSOF 0xA5 Frame#Frame#0x1520x152CRC5CRC50x1C0x1CEOPEOP001001 Data stage USB USB Device Device SyncSync 0000000100000001 ACKACK 0x4B EOPEOP 001001 SyncSync 0000000100000001 DATA1DATA1 0xD2 DATADATA 12 01 00 01 00 00 00 08 CRC16CRC16 0xC8E70xC8E7 EOPEOP 001001

17 Sync 00000001 ACK 0x4B EOP 001 Sync 00000001 IN 0x96 ADDR 0x02 ENDP 0x0 CRC5 0x15 EOP 001 Sync 00000001 DATA1 0xD2 DATA CRC16 0xC8E7 EOP 001 USB USB Device Device IN request, detalles (get data about device description) DATADATA 12 = longitud del device descriptor 12 = longitud del device descriptor 01 = Tipo device descriptor 01 = Tipo device descriptor 01 = byte alto dela especificación USB 01 = byte alto dela especificación USB 00 = byte bajo de la especificación USB 00 = Device Protocol 00 = Device Protocol 00 = Device Class 00 = Device Sub Class 00 = Device Sub Class 08 = Tamaño Max. De paquete del endpoint 0 08 = Tamaño Max. De paquete del endpoint 0 1eros. 8 bytes del device descriptor SyncSync0000000100000001DATA1DATA10xD20xD2DATADATA 12 01 00 01 00 00 00 08 CRC16CRC160xC8E70xC8E7EOPEOP001001 Data stage

18 2 º IN request (obtiene datos del dispositivo) SyncSync 0000000100000001 ININ 0x960x96 ADDRADDR 0x020x02 ENDPENDP 0x00x0 CRC5CRC5 0x150x15 EOPEOP 001001 SyncSync0000000100000001SOFSOF0xA50xA5Frame#Frame#0x1530x153CRC5CRC50x030x03EOPEOP001001 Data stage USB USB Device Device SyncSync 0000000100000001 ACKACK 0x4B EOPEOP 001001 SyncSync 0000000100000001 DATA0DATA0 0xC30xC3 DATADATA 8B 05 41 C5 01 00 00 00 CRC16CRC16 0x86DB0x86DB EOPEOP 001001

19 Sync 00000001 DATA0 0xC3 DATA CRC16 0x86DB EOP 001 USB USB Device Device 2º IN request, detalles Se transfieren los datos específicos a la PC Sync 00000001 ACK 0x4B EOP 001 Sync 00000001 IN 0x96 ADDR 0x02 ENDP 0x0 CRC5 0x15 EOP 001 DATADATA C5 = byte alto del product ID 41 = byte bajo del product ID 00 = índice para string descriptor del fabricante 00 = índice para string descriptor del fabricante 01 = byte bajo del devicenumber 00 = byte alto del devicenumber 00 = índice al string descriptor del producto siguientes 8 bytes del device descriptor SyncSync0000000100000001DATA0DATA0 0xC3 DATADATA 8B 05 41 C5 01 00 00 00 CRC16CRC160x86DB0x86DBEOPEOP001001 8B = byte bajo del vendor ID 05 = byte alto del vendor ID

20 Sync 00000001 SOF 0xA5 Frame# 0x154 CRC5 0x1D EOP 001 Sync 00000001 IN 0x96 ADDR 0x02 ENDP 0x0 CRC5 0x15 EOP 001 Sync 00000001 DATA1 0xD2 DATA 00 01 CRC16 0xFCF1 EOP 001 Sync 00000001 ACK 0x4B EOP 001 USB USB Device Device 3º IN request Se transfiere el resto SyncSync0000000100000001SOFSOF 0xA5 Frame#Frame#0x1540x154CRC5CRC50x1D0x1DEOPEOP001001 SyncSync 0000000100000001 ININ 0x960x96 ADDRADDR 0x020x02 ENDPENDP 0x00x0 CRC5CRC5 0x150x15 EOPEOP 001001 SyncSync 0000000100000001 DATA1DATA1 0xD20xD2 DATADATA 00 01 CRC16CRC16 0xFCF10xFCF1 EOPEOP 001001 DATADATA 00 = índice al string descriptor del número de serie 01 = número de configuraciones Data stage

21 USB USB Device Device Commando: OUT transfer (paquete de datos vacío) finaliza la etapa de datos SyncSync0000000100000001SOFSOF 0xA5 Frame#Frame#0x1550x155CRC5CRC50x020x02EOPEOP001001 SyncSync 0000000100000001 OUTOUT 0x87 ADDRADDR 0x020x02 ENDPENDP 0x00x0 CRC5CRC5 0x150x15 EOPEOP 001001 SyncSync 0000000100000001 DATA1DATA1 0xD2 DATADATACRC16CRC16 0x00000x0000 EOPEOP 001001 SyncSync 0000000100000001 ACKACK 0x4B EOPEOP 001001 Data stage  Status stage

22 Command: Get Configuration Descriptor (¿Como funciona el dispositivo?) SyncSync0000000100000001SOFSOF 0xA5 Frame#Frame#0x1570x157CRC5CRC50x1F0x1FEOPEOP001001 SyncSync 0000000100000001 SETUPSETUP 0xB4 ADDRADDR 0x020x02 ENDPENDP 0x00x0 CRC5CRC5 0x150x15 EOPEOP 001001 Setup stage USB USB Device Device SyncSync 0000000100000001 DATA0DATA0 0xC3 DATADATA 80 06 00 02 00 00 FF 00 CRC16CRC16 0x97250x9725 EOPEOP 001001 SyncSync 0000000100000001 ACKACK 0x4B0x4B EOPEOP 001001

23 Sync 00000001 DATA0 0xC3 DATA CRC16 0x9725 EOP 001 Sync 00000001 ACK 0x4B EOP 001 Sync 00000001 SETUP 0xB4 ADDR 0x02 ENDP 0x0 CRC5 0x15 EOP 001 Sync 00000001 SOF 0xA5 Frame# 0x157 CRC5 0x1F EOP 001 Commando: Get Configuration Descriptor (¿Como funciona el dispositivo?), detalles DATADATA 02 = configuration descriptor 02 = configuration descriptor 80 = dirección de transferencia, std. command 80 = dirección de transferencia, std. command 06 = get descriptor 06 = get descriptor 00 = índice del descriptor SyncSync0000000100000001DATA0DATA00xC30xC3DATADATA 80 06 00 02 00 00 FF 00 CRC16CRC160x97250x9725EOPEOP001001 00 00 = language ID 00 00 = language ID 00 = byte alto de los bytes a transferir FF = byte bajo de los bytes a transferir USB USB Device Device

24 In Request: Respuesta a ¿Como funciona el dispositivo? SyncSync 0000000100000001 ININ 0x960x96 ADDRADDR 0x020x02 ENDPENDP 0x00x0 CRC5CRC5 0x150x15 EOPEOP 001001 SyncSync0000000100000001SOFSOF 0xA5 Frame#Frame#0x1580x158CRC5CRC50x0F0x0FEOPEOP001001 Data stage USB USB Device Device SyncSync 0000000100000001 ACKACK 0x4B0x4B EOPEOP 001001 SyncSync 0000000100000001 DATA1DATA1 0xD20xD2 DATADATA 09 02 19 00 01 01 00 60 CRC16CRC16 0x50200x5020 EOPEOP 001001

25 Sync 00000001 DATA1 0xD2 DATA CRC16 0x5020 EOP 001 Sync 00000001 ACK 0x4B EOP 001 USB USB Device Device In Request: Respuesta a ¿Como funciona el dispositivo?, detalles Sync 00000001 IN 0x96 ADDR 0x02 ENDP 0x0 CRC5 0x15 EOP 001 DATADATA 19 00 = longitud de los configuration, interface y endpoint descriptors 09 = longitud del configuration descriptor 02 = Tipo del configuration descriptor 00 = índice al configuration string descriptor 00 = índice al configuration string descriptor 01 = nro. de interfaces usadas en esta configuración 01 = valor para esta configuración con SetConfiguration 60 = atributos de la configuration 1eros. 8 bytes del device descriptor SyncSync0000000100000001DATA1DATA1 0xD2 DATADATA 09 02 19 00 01 01 00 60 CRC16CRC160x50200x5020EOPEOP001001

26 2º In Request: Respuesta a ¿Como funciona el dispositivo? SyncSync 0000000100000001 ININ 0x960x96 ADDRADDR 0x020x02 ENDPENDP 0x00x0 CRC5CRC5 0x150x15 EOPEOP 001001 SyncSync0000000100000001SOFSOF0xA50xA5Frame#Frame#0x1590x159CRC5CRC50x100x10EOPEOP001001 Data stage USB USB Device Device SyncSync 0000000100000001 ACKACK 0x4B0x4B EOPEOP 001001 SyncSync 0000000100000001 DATA0DATA0 0xC3 DATADATA 32 09 04 00 00 01 00 00 CRC16CRC16 0x273E0x273E EOPEOP 001001

27 Sync 00000001 DATA0 0xC3 DATA CRC16 0x273E EOP 001 USB USB Device Device 2º In Request: Respuesta a ¿Como funciona el dispositivo?, detalles Sync 00000001 ACK 0x4B EOP 001 Sync 00000001 IN 0x96 ADDR 0x02 ENDP 0x0 CRC5 0x15 EOP 001 DATADATA 04 = Tipo de interface descriptor 32 = Consumo max.de energía (en unidades de 2mA) 09 = longitud del interface descriptor 01 = endpoints utilizados enesta interfaz 00 = número de interfaces 00 = seteos alternativos 00 = interface class Siguientes 8 bytes del device descriptor 00 = interface sub class SyncSync0000000100000001DATA0DATA00xC30xC3DATADATA 32 09 04 00 00 01 00 00 CRC16CRC160x273E0x273EEOPEOP001001

28 USB USB Device Device 3º In Request: Respuesta a ¿Como funciona el dispositivo?, detalles SyncSync0000000100000001SOFSOF 0xA5 Frame#Frame#0x15B0x15BCRC5CRC50x0D0x0DEOPEOP001001 SyncSync 0000000100000001 ININ 0x960x96 ADDRADDR 0x020x02 ENDPENDP 0x00x0 CRC5CRC5 0x150x15 EOPEOP 001001 SyncSync 0000000100000001 ACKACK 0x4B0x4B EOPEOP 001001 SyncSync 0000000100000001 DATA0DATA0 0xC3 DATADATA 0000 CRC16CRC16 0x00000x0000 EOPEOP 001001 00 = intervalo de polling para interrupt endpoints

29 USB USB Device Device Commando: transferencia OUT finaliza la etapa de datos SyncSync0000000100000001SOFSOF0xA50xA5Frame#Frame#0x15C0x15CCRC5CRC50x150x15EOPEOP001001 SyncSync 0000000100000001 OUTOUT 0x87 ADDRADDR 0x020x02 ENDPENDP 0x00x0 CRC5CRC5 0x150x15 EOPEOP 001001 SyncSync 0000000100000001 DATA1DATA1 0xD2 DATADATACRC16CRC16 0x00000x0000 EOPEOP 001001 SyncSync 0000000100000001 ACKACK 0x4B EOPEOP 001001 Data stage  Status stage


Descargar ppt "USB USB Device Device Commando: Get descriptor (¿Quien sos?) SyncSync0000000100000001SOFSOF 0xA5 Frame#Frame#0x0DD0x0DDCRC5CRC50x150x15EOPEOP001001 SyncSync."

Presentaciones similares


Anuncios Google