Detecção de Erros

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