Artigo 22- A Porta USB com mais detalhes

Propaganda
Vitor Amadeu Souza
[email protected]
Introdução
Veremos agora os passos para enviar uma string de caracteres pela USB.
Porém antes veremos um tutorial referente a porta USB.
Tutorial USB
Sistema de descrição do USB
Um sistema USB é descrito em três diferentes áreas:
Interconexão USB;
USB Device;
USB Host;
A interconexão USB é a maneira no qual os dispositivos USB estão conectados com o
host. Os seguintes aspectos estão incluídos:
Topologia do Barramento: Modo de conexão entre o device e o host;
Relação entre camadas: Capacidade de cada tarefa ser executada na
pilha USB;
Modo de fluxo de dados: A maneira no qual os dados se movem no
sistema sobre o protocolo USB;
Topologia do Barramento
A interconexão física utiliza a topologia estrela. Cada HUB (Concentrador) é
o centro de cada estrela. Cada fio é ligado ponto-a-ponto entre o host e o HUB. Na
figura abaixo podemos apreciar melhor este conceito:
USB Host
Somente há um Host (Hospedeiro) no barramento USB. Esta interface é
chamada de Host Controller. O Host Controller pode ser implementado por
hardware, firmware ou software.
USB Devices
Existem dois tipos de devices USB, vejamos:
Hubs, que disponibilizam pontos adicionais de acesso ao USB;
Funções, que disponibilizam capacidades adicionais ao sistema,
como joystick digitais ou alto-falantes.
Os dispositivos USB atendem aos seguintes termos:
Compreendem o protocolo USB;
Respondem as operações standars (padrão) do protocolo, como
configuração e reset;
Interface Física
Codificação de dados
A USB implementa a codificação de dados do tipo NRZI para transmissão
de dados. Na codificação do NRZI, o “1” é representado por não haver troca do
nível enquanto o “0” representa uma troca. Uma string de zeros causa no NRZI
uma troca de bit a cada tempo. Uma string de uns causa um período de
inatividade no barramento.
Bit de Stuffing
Para garantir sincronismo na rede, após a transmissão de 6 uns, o NRZI
impõe um “0” para garantir a transição na linha e assegurar o sincronismo na
comunicação.
Velocidades de comunicação
As velocidades de comunicação disponíveis para o USB são as seguintes:
High Speed – 480 Mbps podendo variar +-0,05%
Full-Speed – 12 Mbps podendo variar +-0,25%
Low-Speed – 1,5 Mbps podendo variar 1,5 %
Atenuação do Cabo
Os cabos USB devem atender as seguintes exigências sobre o cabo
para poderem operar normalmente:
Distribuição de energia
Classes de dispositivos
A potência exigida por cada dispositivo pode ser simplificada com a
introdução do conceito de unidade de carga. A unidade de carga é definida
por uma corrente de 100 mA. O número de unidade de carga de um
dispositivo pode consumir é um valor absoluto independente do tempo. Um
dispositivo pode ser low-power consumindo uma unidade de carga e highpower consumindo 5 unidades de carga. Por default, todos os dispositivos
são low-power. A transição para high-power é feita através de controle de
software. É responsabilidade do software assegurar a potência adequada
para o funcionamento do dispositivo.
O USB suporta uma faixa de fontes de energia que pode ser
observado abaixo:
Bus-powered hubs: Estas unidades somente podem consumir
uma unidade de carga na configuração e 5 após a mesma.
Self-powered hubs: A energia para o funcionamento não são
provenientes do Vbus do barramento.
Low-power bus-powered functions: Toda a energia para o
funcionamento do dispositivo vem do Vbus. Este dispositivo pode
consumir no máximo uma unidade de carga.
High-power bus-powered functions: Toda a energia para o
funcionamento do dispositivo vem do Vbus. Este dispositivo pode
consumir no máximo uma cinco unidades de carga.
Self-powered functions: Pode consumir uma unidade de carga
do Vbus. O restante é fornecido através de uma fonte externa.
Conectores disponíveis
Camada de Protocolo
Transferência dos Bits
Todos os bits são transmitidos primeiramente pelo bit LSB.
Campo de sincronismo
Todos os pacotes são inicializados pelo campo de SYNC. A função deste
campo é que o circuito de entrada do receptor ajuste o seu clock com o do
transmissor. No modo full / low-speed são gerados 8 bits enquanto que no highspeed 32.
Formato dos Pacotes
Todos os pacotes iniciam com o campo de Start e finalizam com o campo
de End. O Start-of-Packet (SOP) é uma parte do campo de SYNC e o End-ofPacket (EOP) sinaliza o fim do pacote.
Campo de Identificador de Pacote
O campo de identificação do pacote (PID) segue imediatamente após o
campo de SYNC. Um PID consiste de quatro pacotes seguidos de quatro bits de
checagem de campo, observe:
Os seguintes PIDs estão disponíveis:
Campo de Endereço
A função deste campo é especificar o dispositivo em uma rede. Assim que o
device é energizado, ele recebe o endereço 0 e aguarda o Host Controller
endereçar o mesmo. O endereço 0 não pode ser usado em função disto.
Campo de Endpoint
Este campo é usado para permitir mais flexibilidade no
endereçamento nos momentos em que há as transações de IN, OUT e
SETUP. Full-speed e High-Speed suportam até 16 endpoints enquanto o
low-speed suportam no máximo 3.
Frame de Número de Campo
É uma sequência de 11 bits que é incrementado pelo host a cada
frame trafegado pela rede. Quando o valor máximo é atingido (0x7FFF) este
valor retorna a 0.
Campo de Dados
O campo de dados pode variar na faixa de 0 a 1024 bytes e tem um número
integral de bytes. Abaixo está apresentado o formato da transmissão dos bytes:
Campo de CRC (Cyclic Redundanct Checks)
É usado para garantir a integridade na comunicação de dados. Desta
forma, podem se garantir que o pacote transferido pelo Host será recebido pelo
device.
USB Device Framework
Alimentação
É o momento no qual o dispositivo é alimentado. O mesmo pode ser
alimentado através de fonte própria (self-powered) ou através do próprio
barramento (bus-powered).
Default
Após o dispositivo ser energizado, o mesmo não pode responder a
qualquer transação do barramento até que o mesmo seja resetado pelo
barramento. Após a condição de reset, o dispositivo é endereçado para o seu
endereço default (0).
Quando o processo de reset está completo, o dispositivo USB opera
de acordo com a sua velocidade (low/full/high). A velocidade é selecionada
através da terminação de resistores do dispositivo, conforme apresentado abaixo:
Para o modo High-Speed, o mesmo inicia operando em Full-Speed e
através de protocolo de software, altera para o modo High-Speed.
Endereçamento
Todos os dispositivos USB tem um endereço único após a condição
de reset. Cada device recebe o seu endereço pelo host controller. O dispositivo
mantém este endereço até que o mesmo entre em condição de suspensão.
Configuração
Este é o estado em que o dispositivo é configurado em algum modo
de comunicação.
Suspensão
Para conservar energia, o dispositivo USB pode automaticamente
entrar neste estado quando o dispositivo detectar que não há tráfico na linha por
um determinado período de tempo.
Enumeração
Quando um dispositivo USB é colocado ou removido da linha, o host
usa o processo de enumeração para identificar e gerênciar o estado do
dispositivo.
Modos de Comunicação
Control Transfers
Controle de dados é usado pelo sistema de software USB para
configurar os dispositivos quando os mesmos são conectados ao host. Outros
drivers de software podem usar este modo para implementações específicas.
Bulk Transfers
Consiste no envio de dados em massa, comumente utilizado para
impressoras e scanners. Esta transferência é seqüencial.
Interrupt Transfers
Tem uma latência limitada de comunicação entre o dispositivo e o
host por um determinado tempo sincrono.
Isochronous Transfers
É uma transferência continua em tempo real. É muito usado para
aplicações que envolvam voz por exemplo.
Download