43
USB USB Processo de enumeração

Processo de enumeração - w3.ualg.ptw3.ualg.pt/~rmarcel/USB - Enumeracao e descritores.pdf · `Porta série: baixas velocidade de transferência, um só dispositivo por porta, `Modems,

  • Upload
    lythien

  • View
    214

  • Download
    0

Embed Size (px)

Citation preview

Page 1: Processo de enumeração - w3.ualg.ptw3.ualg.pt/~rmarcel/USB - Enumeracao e descritores.pdf · `Porta série: baixas velocidade de transferência, um só dispositivo por porta, `Modems,

USBUSB

Processo de enumeração

Page 2: Processo de enumeração - w3.ualg.ptw3.ualg.pt/~rmarcel/USB - Enumeracao e descritores.pdf · `Porta série: baixas velocidade de transferência, um só dispositivo por porta, `Modems,

USB Universal Serial BusUSB - Universal Serial BusUSB não é um interface de comunicação genérico entre dispositivosO USB foi concebido para ligar dispositivos (periféricos) a Computadores

Page 3: Processo de enumeração - w3.ualg.ptw3.ualg.pt/~rmarcel/USB - Enumeracao e descritores.pdf · `Porta série: baixas velocidade de transferência, um só dispositivo por porta, `Modems,

Computador PCComputador PC

Page 4: Processo de enumeração - w3.ualg.ptw3.ualg.pt/~rmarcel/USB - Enumeracao e descritores.pdf · `Porta série: baixas velocidade de transferência, um só dispositivo por porta, `Modems,

PC anos 90PC –anos 90

Page 5: Processo de enumeração - w3.ualg.ptw3.ualg.pt/~rmarcel/USB - Enumeracao e descritores.pdf · `Porta série: baixas velocidade de transferência, um só dispositivo por porta, `Modems,

PC 2000PC-2000

Page 6: Processo de enumeração - w3.ualg.ptw3.ualg.pt/~rmarcel/USB - Enumeracao e descritores.pdf · `Porta série: baixas velocidade de transferência, um só dispositivo por porta, `Modems,

PC 2006PC- 2006

Page 7: Processo de enumeração - w3.ualg.ptw3.ualg.pt/~rmarcel/USB - Enumeracao e descritores.pdf · `Porta série: baixas velocidade de transferência, um só dispositivo por porta, `Modems,

Problema: Ligar dispositivos ao PCProblema: Ligar dispositivos ao PCPossíveis soluções:Porta série: baixas velocidade de transferência, um só dispositivo por porta,

Modems, ..

Porta Paralela: velocidade relativa, um só dispositivo Discos externos, …

Placa inserida num slot de expansão: instalação nunca amigável. Problemas com: Endereços de Entrada/Saída, g çIRQs, Conflitos entre placas,…

Placas de som, Modems,…

Page 8: Processo de enumeração - w3.ualg.ptw3.ualg.pt/~rmarcel/USB - Enumeracao e descritores.pdf · `Porta série: baixas velocidade de transferência, um só dispositivo por porta, `Modems,

Características do barramento USBCaracterísticas do barramento USBLigação a quente (hot-plugged)Facilidade de utilização (Dispositivos instalam-se automaticamente)Conector universalAlto desempenho: 12 Mbpsp pAlimentados por caboGestão de consumoGestão de consumoDetecção correcção de errosDispositivos externos ao PCDispositivos externos ao PCPossível ligar até 127 dispositivos

Page 9: Processo de enumeração - w3.ualg.ptw3.ualg.pt/~rmarcel/USB - Enumeracao e descritores.pdf · `Porta série: baixas velocidade de transferência, um só dispositivo por porta, `Modems,

Revisões USBRevisões USBRevisão 1.0 e 1.1

Low-speed (1,5 Mbps)Full-spedd (12Mbps)

Revisão 2.0High speed (480Mps)

Concorrência: Fire wire IEEE-1394 (400Mbps) e IEEE-1394.b (3,2Gbps)Prevista uma nova revisão (3.0) do USB para 2008

Page 10: Processo de enumeração - w3.ualg.ptw3.ualg.pt/~rmarcel/USB - Enumeracao e descritores.pdf · `Porta série: baixas velocidade de transferência, um só dispositivo por porta, `Modems,

TerminologiaTerminologia

Page 11: Processo de enumeração - w3.ualg.ptw3.ualg.pt/~rmarcel/USB - Enumeracao e descritores.pdf · `Porta série: baixas velocidade de transferência, um só dispositivo por porta, `Modems,

CompatibilidadesCompatibilidades

Page 12: Processo de enumeração - w3.ualg.ptw3.ualg.pt/~rmarcel/USB - Enumeracao e descritores.pdf · `Porta série: baixas velocidade de transferência, um só dispositivo por porta, `Modems,

Dispositivo I/ODispositivo I/OEndpoints, podem haver vários num único dispositivos, são definidos como entrada (IN) ou saída (OUT). A referência é sempre o PC (HOST), OUT significa PC DeviceIN significa Device PC

Page 13: Processo de enumeração - w3.ualg.ptw3.ualg.pt/~rmarcel/USB - Enumeracao e descritores.pdf · `Porta série: baixas velocidade de transferência, um só dispositivo por porta, `Modems,

Comunicação USBComunicação USB

Page 14: Processo de enumeração - w3.ualg.ptw3.ualg.pt/~rmarcel/USB - Enumeracao e descritores.pdf · `Porta série: baixas velocidade de transferência, um só dispositivo por porta, `Modems,

EnumeraçãoEnumeraçãoAntes que seja possível a comunicação com o dispositivo, é necessária a identificação do dispositivo e a atribuição de um device-driver pelo HOSTEnumeração inclui:

Atribuir um endereço ao dispositivoLer as estruturas de dados do dispositivoAtribuir e carregar o device driverSão estabelecidos os pipes entre o HOST e o dispositivo (endpoints)

O di iti tá fi d ( t t f ê i d O dispositivo está configurado (pronto para transferência de dados)

Page 15: Processo de enumeração - w3.ualg.ptw3.ualg.pt/~rmarcel/USB - Enumeracao e descritores.pdf · `Porta série: baixas velocidade de transferência, um só dispositivo por porta, `Modems,

EnumeraçãoEnumeraçãoNa perspectiva do utilizador o processo de enumeração deve ser invisível e automático.Excepto nos casos em que é detectado um novo dispositivo, nesses caso:

É necessário disponibilizar um ficheiro INF e o correspondente d ddevice driver

Page 16: Processo de enumeração - w3.ualg.ptw3.ualg.pt/~rmarcel/USB - Enumeracao e descritores.pdf · `Porta série: baixas velocidade de transferência, um só dispositivo por porta, `Modems,

Instalação quasi automáticaInstalação quasi-automática

Page 17: Processo de enumeração - w3.ualg.ptw3.ualg.pt/~rmarcel/USB - Enumeracao e descritores.pdf · `Porta série: baixas velocidade de transferência, um só dispositivo por porta, `Modems,

Gestor de dispositivos do windowsGestor de dispositivos do windows

Page 18: Processo de enumeração - w3.ualg.ptw3.ualg.pt/~rmarcel/USB - Enumeracao e descritores.pdf · `Porta série: baixas velocidade de transferência, um só dispositivo por porta, `Modems,

Enumeração (passo a passo)Enumeração (passo a passo)1. Utilizador liga dispositivo USB2. Concentrador detecta o dispositivo3. Host é informado que um novo dispositivo se encontra q p

ligado4. Hub detecta que tipo de dispositivo é? (low/full –q p p (

speed)5. Hub efectua Reset ao dispositivop6. Host verifica se um dispositivo full-speed suporta high-

speedp7. É estabelecido um caminho entre o dispositivo e o Host

Page 19: Processo de enumeração - w3.ualg.ptw3.ualg.pt/~rmarcel/USB - Enumeracao e descritores.pdf · `Porta série: baixas velocidade de transferência, um só dispositivo por porta, `Modems,

Enumeração (passo a passo)Enumeração (passo a passo)8. Host envia um pedido de Get_Descriptor para o

endpoint09. O Host atribui um endereço ao dispositivo10. O Host solicita informação sobre o dispositivo, são

solicitados os diversos descritores11. Host atribui e carrega o device-driver do dispositivo12. Host selecciona uma configuração, caso haja mais que g ç , j q

uma possível.

Page 20: Processo de enumeração - w3.ualg.ptw3.ualg.pt/~rmarcel/USB - Enumeracao e descritores.pdf · `Porta série: baixas velocidade de transferência, um só dispositivo por porta, `Modems,

Device DriverDevice-Driver

Page 21: Processo de enumeração - w3.ualg.ptw3.ualg.pt/~rmarcel/USB - Enumeracao e descritores.pdf · `Porta série: baixas velocidade de transferência, um só dispositivo por porta, `Modems,

Hierarquia dos descritoresHierarquia dos descritores

Page 22: Processo de enumeração - w3.ualg.ptw3.ualg.pt/~rmarcel/USB - Enumeracao e descritores.pdf · `Porta série: baixas velocidade de transferência, um só dispositivo por porta, `Modems,

Classes de dispositivos (Device Class)Classes de dispositivos (Device Class)Os dispositivos são diferentes uns dos outros, no entanto partilham determinados atributos e serviços que são semelhantes.São criadas classes especificas para os dispositivosEstas classificações tem por objectivo servir de referência parar que desenvolve dispositivo e o device-driverOs sistemas operativos já incluem classes nativas no seu Kernel

Page 23: Processo de enumeração - w3.ualg.ptw3.ualg.pt/~rmarcel/USB - Enumeracao e descritores.pdf · `Porta série: baixas velocidade de transferência, um só dispositivo por porta, `Modems,

Device ClassDevice ClassBase Class Descriptor Usage Description

00h Device Use class information in the Interface Descriptors 01h Interface Audio02h Both Communications and CDC Control03h I t f HID (H I t f D i )03h Interface HID (Human Interface Device) 05h Interface Physical06h Interface Image07h Interface Printer08h I t f M St08h Interface Mass Storage 09h Device Hub 0Ah Interface CDC-Data0Bh Interface Smart Card 0Dh I t f C t t S it0Dh Interface Content Security 0Eh Interface Video 0Fh Interface Personal Healthcare DCh Both Diagnostic Device E0h I f Wi l C llE0h Interface Wireless Controller EFh Both MiscellaneousFEh Interface Application Specific FFh Both Vendor Specific

Page 24: Processo de enumeração - w3.ualg.ptw3.ualg.pt/~rmarcel/USB - Enumeracao e descritores.pdf · `Porta série: baixas velocidade de transferência, um só dispositivo por porta, `Modems,

Classes de dispositivosClasses de dispositivosÉ de todo o interesse de para quem desenvolve o lado do dispositivo e o lado do PC que o dispositivo utilize uma classe padrão, neste caso não é necessário construir um d i d i ifi S O C d i device-driver especifico para o S.O. Carrega o driver apropriado para o funcionamento do dispositivo

Page 25: Processo de enumeração - w3.ualg.ptw3.ualg.pt/~rmarcel/USB - Enumeracao e descritores.pdf · `Porta série: baixas velocidade de transferência, um só dispositivo por porta, `Modems,

Classes de dispositivos ExemplosClasses de dispositivos ExemplosHID, human Interface Device,

RRatoTecladoJoystickJoystick

Mass StorageDiscos de estado sólido, são detectados pelo S.O.

Page 26: Processo de enumeração - w3.ualg.ptw3.ualg.pt/~rmarcel/USB - Enumeracao e descritores.pdf · `Porta série: baixas velocidade de transferência, um só dispositivo por porta, `Modems,

Descritores Descritores È através dos

Page 27: Processo de enumeração - w3.ualg.ptw3.ualg.pt/~rmarcel/USB - Enumeracao e descritores.pdf · `Porta série: baixas velocidade de transferência, um só dispositivo por porta, `Modems,

Descritor do DispositivoDescritor do DispositivoUm dispositivo USB apenas pode ter um descritor de dispositivo que contem informação geral sobre o mesmo. No descritor de dispositivo é indicado o número de

fi õ ã d l di i i configurações que são suportadas pelo dispositivo. (tipicamente um dispositivo apenas aceita uma configuração)configuração)

Page 28: Processo de enumeração - w3.ualg.ptw3.ualg.pt/~rmarcel/USB - Enumeracao e descritores.pdf · `Porta série: baixas velocidade de transferência, um só dispositivo por porta, `Modems,

Descritor de dispositivoDescritor de dispositivoDevice Descriptor USB Receiver

Offset Field Size Value Description0 bLength 1 12h

1 bDescriptorType 1 01h Device2 bcdUSB 2 0200h USB Spec 2.0p4 bDeviceClass 1 00h Class information in the Interface Descriptors

5 bDeviceSubClass 1 00h

6 bDeviceProtocol 1 00h

7 bMaxPacketSize0 1 08h 8 bytes8 idVendor 2 046Dh Logitech, Inc.

10 idProduct 2 C518h0 d oduct C5 8

12 bcdDevice 2 4200h 42.0014 iManufacturer 1 01h "Logitech"15 iProduct 1 02h "USB Receiver"16 iSerialNumber 1 00h16 iSerialNumber 1 00h

17 bNumConfigurations 1 01h

Page 29: Processo de enumeração - w3.ualg.ptw3.ualg.pt/~rmarcel/USB - Enumeracao e descritores.pdf · `Porta série: baixas velocidade de transferência, um só dispositivo por porta, `Modems,

Descritor de ConfiguraçãoDescritor de ConfiguraçãoO dispositivo possui um configurador de configuração para cada configuração que possui. Normalmente apenas existe uma única configuração. Este descritor inclui i f ã l b fi ã d di i i informação geral sobre a configuração do dispositivo, define o número de interfaces. È durante o processo de enumeração que o Host define qual a configuração que enumeração que o Host define qual a configuração que vai funcionar. Apenas uma é possível de estar activa de cada vez Também aqui se define a quantidade potencia cada vez. Também aqui se define a quantidade potencia solicitada pelo dispositivo e se é auto alimentado ou alimentado pelo barramentoalimentado pelo barramento

Page 30: Processo de enumeração - w3.ualg.ptw3.ualg.pt/~rmarcel/USB - Enumeracao e descritores.pdf · `Porta série: baixas velocidade de transferência, um só dispositivo por porta, `Modems,

Descritor de ConfiguraçãoDescritor de Configuração

Offset Field Size Value Description0 bLength 1 09h

Configuration Descriptor 1 Bus Powered, 98 mA

1 bDescriptorType 1 02h Configuration2 wTotalLength 2 003Bh4 bNumInterfaces 1 02h5 bConfigurationValue 1 01h6 iConfiguration 1 04h "RR42.00 B0032"6 iConfiguration 1 04h RR42.00_B00327 bmAttributes 1 A0h Bus Powered, Remote Wakeup

4..0: Reserved ...00000

5: Remote Wakeup ..1..... Yes

6: Self Powered .0...... No, Bus Powered

7: Reserved (set to one)(bus-powered for 1 0)

1.......(bus-powered for 1.0)

8 bMaxPower 1 31h 98 mA

Page 31: Processo de enumeração - w3.ualg.ptw3.ualg.pt/~rmarcel/USB - Enumeracao e descritores.pdf · `Porta série: baixas velocidade de transferência, um só dispositivo por porta, `Modems,

Descritor de InterfaceDescritor de InterfaceUma determinada configuração de um dispositivo pode ter mais que um interface, como é o caso dos dispositivos compostos. Por exemplo uma impressora HP Photosmart8450 i 3 i f ú d i f é 8450 possui 3 interfaces, o número de interface é referido no descritor de configuração. A cada interface está associado um ou mais endpoints está associado um ou mais endpoints.

Page 32: Processo de enumeração - w3.ualg.ptw3.ualg.pt/~rmarcel/USB - Enumeracao e descritores.pdf · `Porta série: baixas velocidade de transferência, um só dispositivo por porta, `Modems,

Descritor de InterfaceDescritor de Interface

Interface Descriptor 2/0 Mass Storage 2 Endpoints

Offset Field Size Value Description0 bLength 1 09h1 bDescriptorType 1 04h Interface2 bInterfaceNumber 1 02h

Interface Descriptor 2/0 Mass Storage, 2 Endpoints

2 bInterfaceNumber 1 02h3 bAlternateSetting 1 00h4 bNumEndpoints 1 02h5 bInterfaceClass 1 08h Mass Storage6 bInterfaceSubClass 1 06h SCSI transparent command setp7 bInterfaceProtocol 1 50h Bulk-Only Transport8 iInterface 1 00h

Page 33: Processo de enumeração - w3.ualg.ptw3.ualg.pt/~rmarcel/USB - Enumeracao e descritores.pdf · `Porta série: baixas velocidade de transferência, um só dispositivo por porta, `Modems,

Descritores de EndpointDescritores de EndpointEstes definem o tipo de transferência de dados suportada pelo endpoint, (Isochronous, bulk, Interrupt, control) a direcção dos dados, o tamanho máximo do pacote de d d i l d d i d dados e o intervalo de amostragem no caso de tipo de transferência por interrupção.

Page 34: Processo de enumeração - w3.ualg.ptw3.ualg.pt/~rmarcel/USB - Enumeracao e descritores.pdf · `Porta série: baixas velocidade de transferência, um só dispositivo por porta, `Modems,

Descritores de EndpointDescritores de Endpoint

Offset Field Si e Val e Description Offset Field Si e Val e Description

Endpoint Descriptor 85 5 In, Bulk, 64 bytesEndpoint Descriptor 05 5 Out, Bulk, 64 bytes

Offset Field Size Value Description0 bLength 1 07h1 bDescriptorType 1 05h Endpoint2 bEndpointAddress 1 05h 5 Out3 bmAttributes 1 02h Bulk

Offset Field Size Value Description0 bLength 1 07h1 bDescriptorType 1 05h Endpoint2 bEndpointAddress 1 85h 5 In3 bmAttributes 1 02h Bulk

1..0: Transfer Type ......10 Bulk7..2: Reserved 000000..

4 wMaxPacketSize 2 0040h 64 bytes6 bInterval 1 00h

1..0: Transfer Type ......10 Bulk7..2: Reserved 000000..

4 wMaxPacketSize 2 0040h 64 bytes6 bInterval 1 00h

Page 35: Processo de enumeração - w3.ualg.ptw3.ualg.pt/~rmarcel/USB - Enumeracao e descritores.pdf · `Porta série: baixas velocidade de transferência, um só dispositivo por porta, `Modems,

Descritor de stringsDescritor de stringsSão opcionais, e quando existem (situação mais comum) são definidos para todo o dispositivo, para uma dada configuração. São tipicamente informativos , por exemplo

d di i i d l d di i i N nomes de dispositivos e modelos desses dispositivos. No caso do dispositivo não suportar descritores de stringtodos os índices de string nos descritores são colocados a todos os índices de string nos descritores são colocados a zero. A codificação utilizada é a UNICODE.

Page 36: Processo de enumeração - w3.ualg.ptw3.ualg.pt/~rmarcel/USB - Enumeracao e descritores.pdf · `Porta série: baixas velocidade de transferência, um só dispositivo por porta, `Modems,

Cabos USBCabos USB

Page 37: Processo de enumeração - w3.ualg.ptw3.ualg.pt/~rmarcel/USB - Enumeracao e descritores.pdf · `Porta série: baixas velocidade de transferência, um só dispositivo por porta, `Modems,

Cabo USB2 0 A B Cabo USB2.0 A-B

Page 38: Processo de enumeração - w3.ualg.ptw3.ualg.pt/~rmarcel/USB - Enumeracao e descritores.pdf · `Porta série: baixas velocidade de transferência, um só dispositivo por porta, `Modems,

Cabo USB2 0 A USB Mini 5 Pinos M/M Cabo USB2.0 A-USB Mini 5 Pinos M/M

Page 39: Processo de enumeração - w3.ualg.ptw3.ualg.pt/~rmarcel/USB - Enumeracao e descritores.pdf · `Porta série: baixas velocidade de transferência, um só dispositivo por porta, `Modems,

Cabo USB2 0 OTG (On The Go) Mini A B Cabo USB2.0 OTG (On-The-Go) Mini A - B

O sistema OnThe Go (OTG) permite a conexão de dispositivos externos de armazenamento de dados USB (Leitores MP3 Pen drive Disco Rigido USB (Leitores MP3, Pen drive, Disco Rigido, Cameras Fotográficas, etc) ligados entre si, sem ser necessário o uso de um computador.Para isso é necessário que os dispositivos USB Para isso é necessário que os dispositivos USB também suportem esta função.

Mini-A Mini-B

Page 40: Processo de enumeração - w3.ualg.ptw3.ualg.pt/~rmarcel/USB - Enumeracao e descritores.pdf · `Porta série: baixas velocidade de transferência, um só dispositivo por porta, `Modems,

Cabo USB2.0 OTG (On-The-Go) Mini A -Mini AMini A

O sistema OnThe Go (OTG) permite a conexão de dispositivos externos de armazenamento de dados USB (Leitores MP3, Pen drive, Disco Rigido, Cameras( , , g ,Fotográficas, etc) ligados entre si, sem ser necessário o uso de um computador.Para isso é necessário que os dispositivos USB também suportem esta função.

Page 41: Processo de enumeração - w3.ualg.ptw3.ualg.pt/~rmarcel/USB - Enumeracao e descritores.pdf · `Porta série: baixas velocidade de transferência, um só dispositivo por porta, `Modems,

Cabo USB2 0 Dual Power 2 x A Mini BCabo USB2.0 Dual Power 2 x A-Mini BEste tipo de cabo serve para ligar os dispositivos que necessitem de uma corrente suplementar (>500mA), à fornecida pelo sinal USB.N id d li di i i li d d Numa extremidade liga o dispositivo, ligando as outras duas pontas ao PC, ocupando para isso duas entradas USB do mesmomesmo.

Page 42: Processo de enumeração - w3.ualg.ptw3.ualg.pt/~rmarcel/USB - Enumeracao e descritores.pdf · `Porta série: baixas velocidade de transferência, um só dispositivo por porta, `Modems,

Cabo USB2.0 A-USB Mini 5 Pinos M/M 01 00m (31684)01.00m (31684)

A conexão USB permite a ligação de periféricos A conexão USB permite a ligação de periféricos, sem a necessidade de desligar o computador. Actualmente, é talvez o tipo de ligação mais usada, ligando desde impressoras, ratos e teclados, ligando desde impressoras, ratos e teclados, máquinas industriais, entre outros.

Page 43: Processo de enumeração - w3.ualg.ptw3.ualg.pt/~rmarcel/USB - Enumeracao e descritores.pdf · `Porta série: baixas velocidade de transferência, um só dispositivo por porta, `Modems,

Cabo USB2.0 B - USB Mini B M/M 03.00m (SB1433c)(SB1433c)