# Codifica Manchester

Nelle telecomunicazioni la codifica Manchester è una forma di comunicazione dati nella quale ogni punto viene segnalato da una transizione. La codifica Manchester è considerata una codifica auto-sincronizzante (non necessita di un segnale di sincronia esterno), il che significa che permette un'accurata sincronizzazione del flusso dati. Ogni bit viene trasmesso in un intervallo di tempo di bit predefinito. La codifica Manchester deve il suo nome al fatto che fu sviluppata come sistema per la memorizzazione sulle memorie a tamburo del Manchester Mark 1, sviluppato dall'Università di Manchester.

## Descrizione

La codifica Manchester fornisce un modo semplice per codificare sequenze binarie arbitrarie senza mai aver lunghi periodi di tempo privi di transizioni di clock, il che permette di prevenire la perdita della sincronizzazione del clock, oppure errori di bit causati da derive in bassa frequenza su collegamenti analogici poco equalizzati (vedi ones-density). Se trasmesso come segnale AC assicura che la componente DC del segnale codificato sia zero, prevenendo derive del livello di base del segnale ripetuto, e rendendolo facile da rigenerare. Comunque oggi esistono molte codifiche più sofisticate che ottengono lo stesso risultato con minore sovraccarico di banda, e meno ambiguità di sincronizzazione nei casi patologici (vedi sotto).
Uno degli utilizzi più noti della codifica Manchester è sui segnali elettrici nelle reti locali Ethernet. La codifica Manchester viene impiegata per la trasmissione dati su reti DALI (Digital Addressable Lighting Interface).

### Codifica Manchester come caso di Phase Shift Keying Binaria (BPSK)

La codifica Manchester si può considerare come un caso speciale della Phase Shift Keying Binaria (BPSK), in cui il dato da trasmettere controlla la fase di un'onda quadra portante alla frequenza della velocità di trasmissione dati. Perciò è estremamente facile generare tale segnale in modo digitale.
Per controllare la quantità di banda consumata, si può impiegare un filtro per ridurre la banda fino ad 1 Hz per bit/secondo, senza perdere informazione durante la trasmissione. Comunque, per praticità (e per controllare al meglio la banda passante, specialmente su spettri radio affollati), la maggior parte dei modulatori BPSK scelgono una frequenza di portante molto superiore alla frequenza di trasmissione dati, ottenendo larghezze di banda più strette e facili da filtrare. La proprietà dell'1 Hz/(bit/secondo) è comunque mantenuta.

### Convenzioni per la rappresentazione dei dati

Ci sono due convenzioni opposte per la rappresentazione dei dati.
La prima fu inizialmente pubblicata da G. E. Thomas nel 1949 ed è seguita da numerosi autori (ad es. Tanenbaum). Specifica che per un bit 0 i livelli di segnale saranno Basso-Alto (assumendo una codifica dei dati con l'ampiezza) - con un livello basso nella prima parte del periodo di bit, ed un livello alto nella seconda parte. Per un bit 1 i livelli di segnale saranno Alto-Basso.
Anche la seconda convenzione è seguita da molti autori (ad es. Stallings) come pure dallo standard IEEE 802.4. Stabilisce che uno 0 logico sia rappresentato da una sequenza di segnale Alto-Basso ed un 1 logico da una sequenza di segnale Basso-Alto.
Una conseguenza della transizione per ciascun bit è che la necessità di larghezza di banda per segnali codificati Manchester è doppia in confronto ad una comunicazione asincrona, e che lo spettro del segnale è considerevolmente più ampio. Nonostante la codifica Manchester sia una forma di comunicazione altamente affidabile, il requisito della larghezza di banda è visto come uno svantaggio, e le comunicazioni più moderne avvengono con protocolli con codici più moderni che ottengono gli stessi risultati con una codifica più rapida ed una richiesta di larghezza di banda minore.
Una peculiarità della codifica Manchester è la sincronizzazione del ricevitore col trasmettitore. A prima vista potrebbe sembrare che un errore di mezzo periodo di bit porterebbe ad una decodifica invertita dal lato del ricevitore, ma considerazioni ulteriori evidenziano che con alcune sequenze di dati specifiche questo causerebbe la violazione della codifica. L'hardware può rilevare queste violazioni di codifica e di conseguenza sincronizzarsi accuratamente sulla corretta interpretazione dei dati.
Una tecnica correlata è la codifica Manchester differenziale.
Riassumendo:
* i segnali dei dati e del clock sono combinati per formare un flusso di dati auto-sincronizzante
* ogni bit codificato contiene una transizione a metà del periodo di bit
* la direzione della transizione determina se il bit è uno "0" o un "1"
* la prima metà è il valore vero del bit e la seconda metà è il complemento del valore vero del bit, in contrasto con non ritorno a zero.
Altri dati da Federal Standard 1037C, MIL-STD-188