240 likes | 341 Views
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
E N D
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!