Universal Serial Bus USB Hardware Aluno: Frederico Ferlini Pontifícia Universidade Católica do Rio...

24
Universal Serial Bus USB Hardware Aluno: Frederico Ferlini Pontifícia Universidade Católica do Rio Grande do Sul Faculdade de Engenharia\Informática Seminário de Programação de Periféricos

Transcript of Universal Serial Bus USB Hardware Aluno: Frederico Ferlini Pontifícia Universidade Católica do Rio...

Page 1: Universal Serial Bus USB Hardware Aluno: Frederico Ferlini Pontifícia Universidade Católica do Rio Grande do Sul Faculdade de Engenharia\Informática Seminário.

Universal Serial BusUSB

Hardware

Aluno:

Frederico Ferlini

Pontifícia Universidade Católica do Rio Grande do SulFaculdade de Engenharia\InformáticaSeminário de Programação de Periféricos

Page 2: Universal Serial Bus USB Hardware Aluno: Frederico Ferlini Pontifícia Universidade Católica do Rio Grande do Sul Faculdade de Engenharia\Informática Seminário.

Sumário

• Introdução• Barramento Físico• Comunicação Serial• Tipos de Pacotes• Codificação CRC• Tipos de Transações• Processo de Enumeração• Descritores• USBN 9603• Referências

Page 3: Universal Serial Bus USB Hardware Aluno: Frederico Ferlini Pontifícia Universidade Católica do Rio Grande do Sul Faculdade de Engenharia\Informática Seminário.

Introdução• Comunicação serial:

– lenta– número de portas limitadas por máquina

• USB:– 480Mbps(FullSpeed) v2.0 – rápido– suporta conexões mais lentas (ex.:1,5Mbps)– permite até 127 periféricos conectados– fiação e pinagem menos complexa– plug and play– hubs + functions = usb (Próximo Slide)

Page 4: Universal Serial Bus USB Hardware Aluno: Frederico Ferlini Pontifícia Universidade Católica do Rio Grande do Sul Faculdade de Engenharia\Informática Seminário.

Introdução

• Estrutura de árvore

Controlador Host

pontehub

embutido(hub raiz)

FSB da CPU,PCI ou PCMCIA

funções e/ou hubs

Page 5: Universal Serial Bus USB Hardware Aluno: Frederico Ferlini Pontifícia Universidade Católica do Rio Grande do Sul Faculdade de Engenharia\Informática Seminário.

Barramento Físico• Especificações técnicas:

– cabo blindado(irradiações eletromagnéticas)– 4 fios(Vbus,D+,D-,GND)– até 5 metros– impedância diferencial de 90Ω– dois tipos e tamanhos padronizados

Pino Sinal Cor1 Vbus(+5V) Vermelho

2 D+ Branco

3 D- Verde

4 GND Preto

Page 6: Universal Serial Bus USB Hardware Aluno: Frederico Ferlini Pontifícia Universidade Católica do Rio Grande do Sul Faculdade de Engenharia\Informática Seminário.

Barramento Físico• Funcionamento:

– diferença de tensão entre D+ e D- (cancela o possível ruído)

– resistores R1(pull-down) e R2(pull-up)– a posição do resistor R2 indica a velocidade de

operação– R2 D+ (12Mbps) | R2 D- (1,5Mbps)– valores típicos : R1 = 15kΩ e R2 = 1,5kΩ

Esquema Físico de Conexão do Barramento

Page 7: Universal Serial Bus USB Hardware Aluno: Frederico Ferlini Pontifícia Universidade Católica do Rio Grande do Sul Faculdade de Engenharia\Informática Seminário.

Comunicação Serial• Estados Lógicos

– barramento ocioso (“idle”) = J• D+ = Vbus x R2/(R1+R2) ; R1 >> R2• D- = GND pelo “pull-down”

– dispositivo desconectado = SE0• D+ e D- = GND pelos resistores de “pull-down”

estado D+ D-

J alto baixo

K baixo alto

SE0 baixo baixo

Page 8: Universal Serial Bus USB Hardware Aluno: Frederico Ferlini Pontifícia Universidade Católica do Rio Grande do Sul Faculdade de Engenharia\Informática Seminário.

Comunicação Serial• Codificação NRZI(Non Return to Zero Inverted)

– transformação de J’s e K’s para 1’s e 0’s

– exemplos:• seqüência de sincronismo:

KJKJKJKK 10000001

• seqüência de PID: KJJJKKKJ 10110110

– bit redundante (“stuff”):• evitar a permanência do estado J• bit_extra = 0; desprezado na recepção• a cada 6 bits 1’s

J Kmudança de estado

bit =0bit =1 bit =1

Page 9: Universal Serial Bus USB Hardware Aluno: Frederico Ferlini Pontifícia Universidade Católica do Rio Grande do Sul Faculdade de Engenharia\Informática Seminário.

Comunicação Serial (Pacotes)• Campos (no mín. 3):

– SYNC : sincronismo• seqüência : KJKJKJKK

– PID : identificação do tipo do pacote• primeiros estados : KJJJJKKK• KJJJ 1011 = DATA1• os seguintes são opcionais: dados...• até 1024 bytes

– Fim do pacote• dois estados SE0 consecutivos• barramento ocioso

• se ficar 3 períodos de relógio (12MHz), ou seja, 2,5us em SE0 o periférico é considerado desconectado fisicamente

Page 10: Universal Serial Bus USB Hardware Aluno: Frederico Ferlini Pontifícia Universidade Católica do Rio Grande do Sul Faculdade de Engenharia\Informática Seminário.

Tipos de Pacotes• 3 tipos(token, data, handshake)

– subdivididos em até 15 subtipos (tabela)

PID Nome Tipo

0101 SOF

Token1101 SETUP

1001 IN

0001 OUT

0011 DATA0 Data

1011 DATA1

0010 ACK

Handshake1010 NAK

1110 STALL

... RESERVED ...

9

Page 11: Universal Serial Bus USB Hardware Aluno: Frederico Ferlini Pontifícia Universidade Católica do Rio Grande do Sul Faculdade de Engenharia\Informática Seminário.

Tipos de Pacotes• Token

– SOF – Start Of Frame• 1000 pacotes/segundo (um a cada 1ms)• 11bits – até 2048 frames.

– Setup, IN e OUT• IN – indica início de um ciclo de leitura• OUT e Setup – indica início de um ciclo de escrita

*Setup – não pode ser rejeitado; é sempre para ENDP0

ADDR – endereço do dispositivo (7bits - até 127)

END – endereço do endpoint (subdispositivo) (4bits – até 16)

KJKJKJKK

SYNC

8 bits

PID

11 bits

contador de SOFs

5 bits

CRC5

2xSE0

fim

KJKJKJKK

SYNC

8 bits

PID

7 bits

ADDR

5 bits

CRC5

2xSE0

fim

4 bits

ENDP

Page 12: Universal Serial Bus USB Hardware Aluno: Frederico Ferlini Pontifícia Universidade Católica do Rio Grande do Sul Faculdade de Engenharia\Informática Seminário.

Tipos de Pacotes• Data

– DATA1 e DATA0• Após um token IN (upstream) ; da função para o hub• Após um token OUT ou Setup (downstram); do hub para o função

• Handshake (sempre contrário ao fluxo dos dados)

– ACK, NAK e STALL• ACK – último pacote do tipo data/token foi recebido com sucesso• NAK – receptor ocupado/inapto• STALL – erros de comunicação (ex.: endpoint inválido)

KJKJKJKK

SYNC

8 bits

PID

2xSE0

fim

KJKJKJKK

SYNC

8 bits

PID

0 a 1023 x 8 bits

PAYLOAD

16 bits

CRC16

2xSE0

fim

Page 13: Universal Serial Bus USB Hardware Aluno: Frederico Ferlini Pontifícia Universidade Católica do Rio Grande do Sul Faculdade de Engenharia\Informática Seminário.

Codificação CRC• CRC – Cyclic Redundancy Check

– método de detecção de erro – altamente eficiente– implementado em HW (velocidade)– fluxo:

• transmissor calcula o CRC dos dados e o envia• receptor calcula CRC dos dados recebidos• receptor compara o CRC recebido e calculado• 99,9969% probabilidade de estar correto, se igual

– probabilidades de correção de erro:• erro em um único bit: 100%• dois bits errados: 100%• número par de bits errados: 100%• blocos de bits errados com tamanho inferior a 16bits: 100%• blocos de bits errados com tamanho inferior a 17bits: 99,9969%• outra condições de erros: 99,9984%

Page 14: Universal Serial Bus USB Hardware Aluno: Frederico Ferlini Pontifícia Universidade Católica do Rio Grande do Sul Faculdade de Engenharia\Informática Seminário.

Tipos de Transações• Transação:

é a completa comunicação entre o host e o dispositivo, dentro de um quadro de 1ms

• Tipos:

– Interrupt(interrupção):• transações rápidas e de pouca freqüência

• ex.: teclado, mouse...

– Bulk(volumosa):• transações de grande volume de dados

• sem restrição de tempo

• ex.: impressoras, scanners...

Page 15: Universal Serial Bus USB Hardware Aluno: Frederico Ferlini Pontifícia Universidade Católica do Rio Grande do Sul Faculdade de Engenharia\Informática Seminário.

Tipos de Transações• Tipos:

– Isochronous(Isócrona):• tolerância a erros (sem Handshake)

• transação mais rápida

• ex.: monitores, sistemas de áudio...

– Control(Controle):• mais complexa

• ex.: processo de enumeração...

Page 16: Universal Serial Bus USB Hardware Aluno: Frederico Ferlini Pontifícia Universidade Católica do Rio Grande do Sul Faculdade de Engenharia\Informática Seminário.

Processo de Enumeração• Designação:

– mecanismo de configuração que permite que host aprenda e se “adapte” as novas funções ou hubs conectados a ele

• Objetivo:– atribuir identificadores aos dispositivos

(endereços)– receber as características de operação do

periférico e de seu fabricante– saber os tipos de transações que serão

utilizados para este dispositivo

Page 17: Universal Serial Bus USB Hardware Aluno: Frederico Ferlini Pontifícia Universidade Católica do Rio Grande do Sul Faculdade de Engenharia\Informática Seminário.

Processo de Enumeração• Basicamente:

– após o periférico ser conectada ao barramento e o hub ter informado o host temos:

• hub detecta a velocidade (Low/High)

• hub reseta o dispositivo

• host pede descritor (8bytes)

• host seta endereço

• host pede descritor completo (com o novo endereço)

• host pede o descritor de configuração

• host carrega o driver adequado

• host configura dispositivo de acordo com o driver

• host pede descritor da classe (HID)

• ...

Page 18: Universal Serial Bus USB Hardware Aluno: Frederico Ferlini Pontifícia Universidade Católica do Rio Grande do Sul Faculdade de Engenharia\Informática Seminário.

Descritores (exemplo)Dispositivo Configuração

nº bytes Campo nº bytes

1 comprimento comprimento 1

1 tipo tipo 1

2 versão USB índice da interface 1

1 classe alternativo 1

1 subclasse endpoints 1

1 protocolo classe 1

1 tamanho EP0 subclasse 1

2 ID fabricante protocolo 1

2 ID produto nome da interface 1

2 versão

1 nome fabricante

1 nome do produto

1 número serial

1 número de config.

Page 19: Universal Serial Bus USB Hardware Aluno: Frederico Ferlini Pontifícia Universidade Católica do Rio Grande do Sul Faculdade de Engenharia\Informática Seminário.

Descritores• Outros possíveis descritores:

– de interface• quais e os tipos de interfaces que serão utilizados

– de HID (“Human Interface Descritpor”)• só relacionado a protótipos específicos

• não é preciso desenvolver um device-driver

• classe embutida ao SO com funções de básicas de I/O HID

– de endpoint• quais e como serão usados os endpoints

Page 20: Universal Serial Bus USB Hardware Aluno: Frederico Ferlini Pontifícia Universidade Católica do Rio Grande do Sul Faculdade de Engenharia\Informática Seminário.

USBN 9603• Características:

– foi lançado em 2000– é a ponte oferecida pela National– funcionamento controlado pela programação

dos diversos registradores, mapeados internamente em memória

– acesso de forma convencional (CS, WR, RD)– pode gerar interrupções ou requisições de

DMA– estados operacionais:

• operacional (configurado e pronto para uso)

• suspenso (sem atividade)

• acordado (detecção de atividade)

• apagado (USBN sem configuração)

Page 21: Universal Serial Bus USB Hardware Aluno: Frederico Ferlini Pontifícia Universidade Católica do Rio Grande do Sul Faculdade de Engenharia\Informática Seminário.

USBN 9603• Diagrama de blocos

Page 22: Universal Serial Bus USB Hardware Aluno: Frederico Ferlini Pontifícia Universidade Católica do Rio Grande do Sul Faculdade de Engenharia\Informática Seminário.

USBN 9603• Pinagem:

XIN e XOUT : conexão de um cristal de 24MHz

CLKOUT: oferece um relógio de 4 a 12MHz, pode ser usado junto a um uC8051

Vcc, GND, D+ e D- : padrão USB

CS, WR, RD: leitura e escrita dos registradores internos

INTR, DRQ: interrupção e requisição DMA

MODOx : modo do barramento (multiplex, ou não)

D[7..0]: barramento de dados e/ou de endereços (multiplexado)

...

Page 23: Universal Serial Bus USB Hardware Aluno: Frederico Ferlini Pontifícia Universidade Católica do Rio Grande do Sul Faculdade de Engenharia\Informática Seminário.

Referências• PC: Um Guia Prático de Hardware e

Interfaceamento• USBN 9603 – Data Sheet• www.usb.org• Apresentação Ricardo Zelenovsky• http://www.bpiropo.com.br/tt20060706.htm• http://www.infowester.com/usb20.php

FIM

Obrigado!

Page 24: Universal Serial Bus USB Hardware Aluno: Frederico Ferlini Pontifícia Universidade Católica do Rio Grande do Sul Faculdade de Engenharia\Informática Seminário.

Lixo