Qual è lo scopo della codifica 8b / 10b?


8

Nel livello fisico di USB 3.0 è presente un codificatore 8b / 10b .

Wikipedia afferma che questo ha eliminato l'offset DC, mentre dice il tutorial che sto leggendo

è uno schema di codifica comune nei progetti seriali ad alta velocità

Qual è lo scopo di questa codifica nel contesto di USB? Inoltre, quali altre applicazioni e vantaggi offre questa codifica in altri tipi di dispositivi?


Risulta più avanti nel tutorial questo è spiegato. Ancora curioso di
sapere in

2
Puoi approfondire la loro spiegazione del perché?
Andyz Smith,

Risposte:


9

La semplice risposta per una codifica come 8b / 10b è che garantisce che il flusso di dati codificato abbia almeno una certa quantità di transizioni di dati. Senza tale codifica, un lungo flusso di 0 o 1 tende ad apparire come se cercasse di inviare DC attraverso il canale.

La stessa filosofia si applica alla codifica Manchester in cui la larghezza di banda netta da trasmettere attraverso il canale è due volte la larghezza di banda effettiva dei dati. I vantaggi propagandati per 8b / 10b sono che la larghezza di banda di trasmissione utilizzata è molto inferiore alla 2X imposta da Manchester.

Uno vuole evitare DC attraverso il canale per una serie di motivi. Sebbene ogni canale di trasmissione abbia diversi tipi di requisiti, la considerazione principale è che la corrente continua non attraversa molto bene i circuiti accoppiati a condensatore o trasformatore. L'altra grande considerazione, anche per i circuiti accoppiati diretti, è che sono necessarie transizioni per poter sincronizzare un circuito PLL sull'estremità del ricevitore in modo che il clock possa essere recuperato per consentire lo stroboscopia dei bit di dati al momento giusto.


e il motivo per cui è importante non averlo "sembrare DC" ...?
Andyz Smith,

Vedi commento aggiunto in risposta ....
Michael Karas,

1
"La corrente continua non attraversa molto bene i circuiti accoppiati a condensatore o trasformatore" - potrebbe anche lasciare le ultime due parole spente :)
Mels

sarei un po 'preoccupato se ci fosse un trasformatore o un condensatore prima del rilevatore di segnale sensibile in un progetto di trasmissione digitale ad alta velocità, ma sì, sono con te e l'orologio e lo stroboscopio sono ciò a cui sto davvero pensando. Voglio dire, questa è la principale differenza tra la trasmissione sincrona e asincrona. e il motivo per cui l'asincrono viene scelto più volte, anche se spreca bit, a causa della sua resistenza al rumore.
Andyz Smith,

@AndyzSmith "Gli aspetti elettrici di ciascun percorso sono caratterizzati da un trasmettitore, un canale e un ricevitore; questi rappresentano collettivamente un collegamento differenziale unidirezionale. Ogni collegamento differenziale è accoppiato in CA con condensatori situati sul lato del trasmettitore del collegamento differenziale." USB 3.0, sezione 3.2.1
Vorac,

2

Oltre alle belle proprietà citate da altri, le altre cose buone che 8b10b ti offre includono: 1. Facile discriminazione sul ricevitore tra controllo dei collegamenti e simboli dei dati 2. Rilevazione facile del ~ 75% degli errori.

È anche sorprendentemente facile costruire trasmettitori e ricevitori 8b10b in logica programmabile; il brevetto originale IBM specifica tutte le operazioni logiche richieste (e se sei troppo pigro per questo, Chuck Benz ha fatto per te in Verilog).

Wikipedia ha anche una pagina molto utile su 8b10b.


1

Viene spiegato più avanti nel tutorial collegato, a pagina 15.

I motivi elencati per applicare questa codifica a USB 3.0 sono:

  • recupero dell'orologio - senza la codifica, i flussi lunghi di 1 o 0 sembrerebbero DC
  • rilevamento errori - quando il ricevitore decodifica il simbolo a 10 bit, ci sono molti simboli impossibili; la ricezione di uno di essi segnala un errore.

Un collega ha un'altra ipotesi. parafrasando:

Il cavo ha induttanza e capacità. Questo leviga la parte anteriore dell'attacco degli impulsi. Pertanto, la trasmissione di un singolo 1 lascerebbe il bus in un determinato stato elettrico, mentre la trasmissione di diversi 1 lo lascerebbe in un diverso stato elettrico (più vicino allo stato stazionario). Di conseguenza, l'invio di 0 postfazioni avrà un potenziale diverso nei due scenari.


In terzo luogo, ecco una citazione dallo standard, sezione 3.2.1

Il ricevitore necessita di transizioni sufficienti per recuperare in modo affidabile clock e dati dal flusso di bit. Per assicurare che si verifichino transizioni adeguate nel flusso di bit indipendentemente dal contenuto dei dati trasmessi, il trasmettitore codifica i dati e controlla i caratteri in simboli usando un codice 8b / 10b.

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.