|
|
|
São empregados, no USB, três mecanismos de detecção de erros. São eles: bit stuffing, checagem de bits de PID e CRC’s.
- Bit stuffing: Os dados USB são codificados segundo o padrão NRZI (Non-Return-to-Zero Inverted), no qual um 0 é representado por uma transição e o 1 é representado pela ausência de transição. Para manter o sincronismo dos relógios do host e do dispositivo na transmissão, é aplicada a técnica de bit stuffing: um zero é inserido a cada seis uns para garantir uma freqüência mínima de transições. A violação de bit stuffing consiste na recepção de uma seqüência de sete 1's, em desacordo com a técnica de codificação.
- Checagem de bits de PID: O campo PID do pacote USB consiste em quatro bits que representam o tipo de pacote e quatro bits de checagem. Os bits de checagem são complementares aos bits de tipo de pacote, e o erro de checagem de bits PID é detectado caso o PID recebido não cumpra essa regra.
- CRC’s: Erros de CRC são detectados sempre que o checksum computado para os campos não-PID dos pacotes de “token” e dados não combinarem com o campo CRC recebido nos mesmos pacotes.
A tabela 5-1 mostra como alguns tipos de erros em diferentes campos do pacote são tratados.
Campo |
Erro |
Ação |
PID |
Checagem PID, Bit Stuffing |
Ignorar pacote |
Endereço |
Bit Stuffing, CRC |
Ignorar token |
Número do Quadro |
Bit Stuffing, CRC |
Ignorar campo de número do quadro |
Dados |
Bit Stuffing, CRC |
Descartar dados |
Tabela 5-1 : A tabela mostra como o USB lida com diferentes tipos de erros ocorridos na transmissão dos pacotes. Tabela adaptada de [6].
Top
|
|