Qual é o objetivo da codificação 8b / 10b?


8

Na camada física do USB 3.0, há um codificador 8b / 10b .

A Wikipedia diz que isso eliminou o deslocamento DC, enquanto o tutorial que estou lendo diz

é um esquema de codificação comum em projetos seriais de alta velocidade

Qual é o objetivo dessa codificação no contexto do USB? Além disso, quais outros aplicativos e benefícios essa codificação oferece em outros tipos de dispositivos?


Acontece que, posteriormente, no tutorial, isso é explicado. Ainda curioso que outras áreas esta codificação é usado em.
Vorac

2
Você pode elaborar uma explicação sobre o porquê?
Andyz Smith

Respostas:


9

A resposta simples para uma codificação como 8b / 10b é que ela garante que o fluxo de dados codificado tenha pelo menos uma certa quantidade de transições de dados. Sem essa codificação, um longo fluxo de 0 ou 1 tenderia a tentar enviar DC pelo canal.

A mesma filosofia se aplica à codificação Manchester, onde a largura de banda líquida a ser transmitida pelo canal é duas vezes a largura de banda de dados real. As vantagens apontadas para 8b / 10b é que a largura de banda de transmissão usada é muito menor que a 2X imposta por Manchester.

Quer-se evitar a DC através do canal por várias razões. Embora cada canal de transmissão tenha diferentes tipos de requisitos, a principal consideração é que a CC não passa muito bem pelos circuitos acoplados ao capacitor ou ao transformador. A outra grande consideração, mesmo para circuitos acoplados diretos, é que as transições são necessárias para poder sincronizar um circuito PLL na extremidade do receptor, de modo que o relógio possa ser recuperado para permitir o disparo dos bits de dados no momento correto.


e a razão pela qual é importante não parecer 'DC' ...?
Andyz Smith

Veja o comentário adicionado na resposta ....
Michael Karas

1
"DC não passa por capacitor ou circuitos de transformadores acoplados muito bem" - poderia muito bem deixar as últimas duas palavras fora :)
Mels

Eu ficaria um pouco preocupado se houvesse um transformador ou um capacitor antes do detector de sinal sensível em um design de transmissão digital de alta velocidade, mas sim, estou com você e o relógio e o estroboscópio é o que realmente estou pensando. Quero dizer, esta é a principal diferença entre transmissão síncrona e assícrona. e a razão pela qual assíncrono é escolhido repetidamente, mesmo que desperdice bits, devido à sua resistência ao ruído.
Andyz Smith

@AndyzSmith "Os aspectos elétricos de cada caminho são caracterizados como transmissor, canal e receptor; eles representam coletivamente um link diferencial unidirecional. Cada link diferencial é acoplado à CA com capacitores localizados no lado do transmissor do link diferencial". USB 3.0, seção 3.2.1
Vorac 10/10

2

Além das boas propriedades mencionadas por outros, as outras coisas boas que o 8b10b oferece incluem: 1. Discriminação fácil no receptor entre controle de link e símbolos de dados 2. Detecção fácil de ~ 75% dos erros.

Também é surpreendentemente fácil construir transmissores e receptores 8b10b em lógica programável; a patente original da IBM especifica todas as operações lógicas necessárias (e se você estiver com preguiça disso, Chuck Benz fez isso por você no Verilog).

A Wikipedia também tem uma página muito útil no 8b10b.


1

É explicado mais adiante no tutorial vinculado, na página 15.

Os motivos listados para aplicar esta codificação ao USB 3.0 são:

  • recuperação de clock - sem a codificação, fluxos longos de 1s ou 0s pareceriam DC
  • detecção de erro - quando o receptor decodifica o símbolo de 10 bits, existem muitos símbolos impossíveis; receber um deles sinaliza um erro.

Um colega tem outra hipótese. Parafraseando:

O cabo tem indutância e capacitância. Isso suaviza a frente de ataque dos pulsos. Assim, transmitir um único 1 deixaria o barramento em um determinado estado elétrico, enquanto transmitir vários 1s o deixaria em um estado elétrico diferente (mais próximo do estado estacionário). Consequentemente, o envio de um 0 após o uso estará em um potencial diferente nos dois cenários.


Em terceiro lugar, aqui está uma citação da norma, seção 3.2.1

O receptor precisa de transições suficientes para recuperar de forma confiável o relógio e os dados do fluxo de bits. Para garantir que transições adequadas ocorram no fluxo de bits independentemente do conteúdo de dados que está sendo transmitido, o transmissor codifica dados e caracteres de controle em símbolos usando um código 8b / 10b.

Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.