Вы находитесь на странице: 1из 0

C ROGER OM Curso USB www.rogercom.

com

Aula 04 Mdulo-USB / Pgina 28

Protocolo USB

O protocolo uma das partes mais importantes do funcionamento do sistema
USB, atravs dele que um ou mais dispositivos conversam e trocam informaes
com o Host. No Host a pilha do protocolo est disponvel em forma de drivers de
arquivos .sys, dll, drv, exe, etc. J no dispositivo o protocolo pode ser encontrado
dentro de um microcontrolador especfico, como por exemplo um PIC que disponha
de uma certa quantidade de memria. Nesse caso, o protocolo escrito com base
na norma USB, em uma linguagem especfica com: C ou Assembly; depois
compilado e gravado na memria do microcontrolador atravs de um gravador de
PIC. Esta umas das maneiras mais complexas, trabalhosa e no muito produtiva.
H microcontroladores PIC como o 18F2450 e 18F4450 que internamente j dispe
do protocolo, tornando assim mais fcil o desenvolvimento de aplicaes. Uma outra
maneira atravs de um chipset que carrega dentro de si toda a funcionalidade do
protocolo USB, livrando o microcontrolador de todo o trabalho pesado.
Diferente da Porta Serial ou Paralela onde simplesmente atravs dos sinais
eltricos dos pinos e um programa bsico possvel se comunicar com um
dispositivo. No USB isso s possvel se o dispositivo carregar o protocolo USB
num chipset ou mesmo dentro de um microcontrolador. Assim, conclumos que o
combustvel do sistema USB seu protocolo, sem ele, no h troca de informao
entre os dispositivos.
Nessa aula irei trazer a nosso conhecimento alguns pontos importantes do
protocolo USB para nos ajudar a compreender algumas caractersticas de
funcionamento dos dispositivos que iremos criar. Tambm iremos usar alguns
softwares disponveis no mercado (free) para visualizar o protocolo.
O protocolo USB tem vrios recursos como: CRC (Cyclic Redundancy Check),
deteco e correo de erros, deteco de conexo e remoo de dispositivos,
controle de fluxo de dados assegurando transmisses isossncronas (trafego
contnuo de dados), disponibilidade assegurada de largura de banda, entre outros.
4 tipos de transferncias de dados USB
Controle: As transferncias de controle so utilizadas pelo Host para configurar
um dispositivo e requisitar informaes sobre o seu estado. Essas transferncias so
usadas principalmente pelo sistema USB para configurar dispositivos durante a
primeira conexo.
Interrupo: Esse tipo de transferncia utilizado por dispositivos que usam
pouca banda do sistema USB, mais comumente usada por dispositivos como:
mouses, teclados, joysticks ou outros que precisam enviar e receber dados de
maneira no freqente, mas com certos limites de latncia. Nesse caso o
dispositivo quem requisita dados do host.
C ROGER OM Curso USB www.rogercom.com

Aula 04 Mdulo-USB / Pgina 29
Isossncrona: Chamada tambm de transferncia de correntes em tempo real
(Stream real-time transfers). Tipo de transferncia composta somente de dados,
ideal para dispositivos que no necessitam checar se os dados chegaram
corretamente ao destino. No tem deteco de erro e nem utiliza CRC. Esse tipo de
transferncia mais utilizada por dispositivos de vdeos, udios e outros que
precisam de uma velocidade constante de transmisso, no importando a perda de
dados por erro ocasionais. As transferncias isossncronas tm prioridades em
termos de largura de banda.
Bulk: Transferncias de grandes volumes de dados como: aquisio de dados de
dispositivos tipo scanners, impressoras, discos de memrias flash, Modems ADSL.
Nesse tipo de transferncia h deteco e correo de erros, confirmao e
recuperao de pacotes de dados corrompidos.
A largura de banda para esse tipo de transferncia pode variar se houver outras
atividades concorrentes sendo executadas no barramento USB. Esse tipo de
transmisso garante a segurana no trfego de dados, mas no garante velocidade
constante em que os mesmos so transmitidos.
Toda as transmisses de dados no sistema USB so baseadas no envio de
pacotes. O Host quem inicia todas as transaes, o primeiro pacote gerado o
Token para descrever o que seguir no prximo pacote e, se a transao de dados
uma escrita ou leitura. O prximo pacote geralmente um pacote Data que leva a
carga til de dados, seguido por um pacote de Handshake, que informa se houve
sucesso na negociao da transao.
Cada transao USB consiste dos seguintes pacotes mostrados na figura abaixo:
Figura 1 - Pacotes de dados de transferncia

C ROGER OM Curso USB www.rogercom.com

Aula 04 Mdulo-USB / Pgina 30
Descrio dos campos dos pacotes
SYNC - Todos os pacotes tem que comear com um campo de. Este campo
tem um tamanho de 8 bits para velocidades baixas e, 32 bits para altas
velocidades. utilizado para sincronizar o relgio (clock) do transmissor com
o do receptor.
PID - Representa Pacote ID (identificao). Este campo tem um tamanho de 8
bits, usado para identificar o tipo de pacote que ser enviado.
Figura 2 - Descrio dos bits do campo PID

Os bits (PID0 a PID1) indicam o tipo de pacote que pode ser: Token, Data,
Handshake e Special. Os bits (PID2 e PID3) acrescentam mais informaes
sobre o tipo de pacote. Os bits (PID#0 a PID#3) so usados para checagem dos
dados (clculo para verificao e preveno de erros).















ROGERC OM Curso USB www.rogercom.com

Aula 04 Mdulo-USB / Pgina 31
Tabela 1 - Tipos de PID
Tipo de
PID
Nome do
PID
Descrio
OUT
Endereo + nmero do Endpoint.
Transao do Host para o
Dispositivo.
IN
Endereo + nmero do Endpoint.
Transao do Dispositivo para o
Host.
SOF incio e o nmero do Frame.
Token
SETUP
Endereo + nmero do Endpoint.
Transao de configurao para
controle do Pipe. Direo do Host
para o Dispositivo.
DATA0 Pacote de dados impar.
DATA1 Pacote da dados par.
DATA2
Pacote da dados para tansao em
alta-velocidade (high-speed)
Isossncrona.
Data
MDATA
Pacote da dados para tansao em
alta-velocidade (high-speed)
Isossncrona.
ACK
Reconhecimento. O pacote foi
recebido corretamente.
NAK
Informa que o dispositivo
temporariamente no pode enviar ou
receber dados.
STALL
O dispositivo encontra-se em um
estado que requer interveno do
Host.
Handshake
NYET O receptor no responde.
PRE Prembulo para indicar low speed.
ERR
Utilizado somente em modo High
speed. Erro em transao split.
SPLIT Para transao split em High speed.
Special
PING Verificao de Busy aps um NYET.
ADDR - Este campo define o endereo de destino do dispositivo ao qual o
pacote de dados ser enviado. Tem um tamanho de 7 bits, podendo
enderear no mximo at 127 dispositivos distintos, conectados no bus USB.

ENDP - Este campo conhecido como Endpoint e tem o tamanho de 4 bits,
permitindo 16 possveis Endpoints diferentes. O Endpoint de nmero 0 (zero)
usado pelo Host para se comunicar com todos os dispositivos conectados
ao bus USB, para configur-los ou obter informaes.


C ROGER OM Curso USB www.rogercom.com

Aula 04 Mdulo-USB / Pgina 32
DATA - So os dados propriamente dito para transferncia. Este campo pode
armazenar at 1024 bytes.

CRC - (Cyclic Redundancy Check). O objetivo deste campo armazenar o
resultado de um clculo em nvel de bits executado em alguns campos do
pacote, para garantir a segurana dos dados transmitidos. Ou seja, se os
dados se alterarem durante a transmisso, o receptor poder comparar o
valor deste campo, calculando o CRC do pacote recebido e correo do erro
se houver. O campo PID no agregado a esse clculo porque tem seu
prprio recurso de correo de erros. Para os pacotes Token esse campo tem
o tamanho de 5 bits (CRC5), e para pacotes de Dados, tem tamanho de 16
bits (CRC16).
EOP - Este campo indica o fim de qualquer pacote. Ele representado com
um simples zero (0) por aproximadamente 2 a 3 bits de tempo.

Pacote Token - Indica o incio de uma transao USB.
H 4 tipos de comandos Token:

Out - Informa ao dispositivo que o Host deseja enviar informaes;
In - Informa ao dispositivo que o Host deseja ler informaes;
Setup - Usado para iniciar transferncias de controle;
SOF - Indica o incio e o nmero do Frame.
Figura 2 - Representao grfica de um pacote SOF

Os Pacotes SOF (Incio de Frame) consiste em um nmero de 11 bits e
so enviados pelo Host entre 1ms a +/- 500ns num Bus Full speed, ou
entre 125us a +/- 0,0625us num Bus High speed. Esse pacote consiste
de um PID que indica um pacote do tipo SOF, e o campo Frame
Number que referencia o nmero do Frame (quadro).
Pacote de Dados - Contm a carga til de dados a ser transportado.
Existem 4 tipos de pacotes de dados capaz de transmitir at 1024 bytes. Esses
pacotes so conhecidos como:
DATA0
DATA1
DATA2
MDATA
DATA 0 e DATA 1 so utilizados nos modos low speed e full speed;
DATA 2 e MDATA so utilizados somente no modo de alta velocidade (High Speed).


ROGER OM Curso USB www.rogercom.com

Aula 04 Mdulo-USB / Pgina 33
C
Pacote Handshake - Usado para reconhecer transaes e prover meios de
correo de erros.
Como mostrado na Figura 1, o handshake composto somente por um campo de
informao vlida (PID).
Os comandos PID de handshake so: ACK, NACK, STALL ou NYET.

Вам также может понравиться