Universal Serial Bus USB
240 likes | 344 Vues
Universal Serial Bus USB. Hardware Aluno: Frederico Ferlini Pontifícia Universidade Católica do Rio Grande do Sul Faculdade de EngenhariaInformática Seminário de Programação de Periféricos. Sumário. Introdução Barramento Físico Comunicação Serial Tipos de Pacotes Codificação CRC
Universal Serial Bus USB
E N D
Presentation Transcript
Universal Serial BusUSB 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
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
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)
Introdução Controlador Host hub embutido (hub raiz) ponte • Estrutura de árvore FSB da CPU, PCI ou PCMCIA funções e/ou hubs
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
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
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”
Comunicação Serial J mudança de estado bit =0 K bit =1 bit =1 • 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
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
Tipos de Pacotes • 3 tipos(token, data, handshake) • subdivididos em até 15 subtipos (tabela) 9
Tipos de Pacotes KJKJKJKK SYNC 8 bits PID 11 bits contador de SOFs 5 bits CRC5 2xSE0 fim KJKJKJKK SYNC 8 bits PID 7 bits ADDR 4 bits ENDP 5 bits CRC5 2xSE0 fim • 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)
Tipos de Pacotes KJKJKJKK SYNC 8 bits PID 2xSE0 fim KJKJKJKK SYNC 8 bits PID 0 a 1023 x 8 bits PAYLOAD 16 bits CRC16 2xSE0 fim • 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)
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%
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...
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...
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
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) • ...
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
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)
USBN 9603 • Diagrama de blocos
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) ...
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!