Codifica / decodifica nel protocollo Manchester
Ogni pacchetto inviato tra il dispositivo e laperifierica e'
codificato in Manchester. Il pacchetto viene poi decodificato e
l'indirizzo e il messaggio i esso contenuto vengono processati.
Il codice di Manchester è un formato di codifica digitale nel quale il
simbolo '1 ' è rappresentato da un fronte di discesa ( da alto a
basso) e il simbolo '0 ' è rappresentato da un fronte di
salita ( da livello al livello alto) . All'interno della durata del
singolo bit, il tempo dello stato alto o basso e' esattamente la meta
della dura del bit ovvero il tempo Te.
In figura 11 e' rappresentato graficamente la codifica del
singolo bit "1"o "0" nella codifica Manchester bifase.

FIGURA 11 : Codifica
Manchester de bit "0" e del bit "1"
Codifica
Manchester tramite microcontrollore
La codifica Manchester
nel caso si utilizzi un microcontrollore ( come nel esempio mostrato) e' implementato cambiando lo stato del pin di
uscita e utilizzando un timer interno che generi un' interrupt ogni Te =416,67 us. Come sappiamo Te è il tempo di mezzo bit ed
è l'istante dove vogliamo modificare la
fase del segnale come mostrato in figura 11. Se vogliamo mandare un bit
'1 ', allora per la prima parte del bit il pin di uscita e' posto
ad livello alto e alla interruzione ( interrupt) il pin e'
posto al livello basso. Il viceversa avviene se si vuole mandare uno
"0". Come risultato di questa attività, sul pin di uscita del micro è
presente una sequenza di uni e zeri che rappresentano la codifica
Manchester della stringa di bit che si vuole mandare nel bus DALI
destinata ad una periferica. In figura 12 e' mostrato graficamente il
processo di codifica della stringa "11010010" nel protocollo Manchester
attuata dal microcontrollore.

FIGURA 12 : Codifica Manchester della stringa 11010010
Decodifica Manchester
La decodifica Manchester è più complicata. Quando la stringa
e' immessa nel bus Dali, inizia il processo di ricezione da parte dei
vari moduli collegati al bus. Il ricevitore, presente all'interno della
perifierica si assicura che
il pacchetto venga ricevuto nella sua interezza riconoscendo il bit di
start, quindi il messaggio di 8 o 16 bit e, infine, i due bit di stop. Se la decodifica deve essere
attuata tramite un microcontrollore (come nel esempio mostrato in
questo tutorial) allora si può implementare la seguente procedura: il
pin del micro che riceve la stringa genera, per ogni transizione (
basso - alto e alto basso),. Questo interrupt 'e usato per resettare e
risettarein modo da avere un time out pari a 3/4 del tempo del
bit ovvero
Read Timer out = 3/4* 2Te
= 1.5 Te. Allo scadere del timer si genenra un interuppt che e'
usato per leggere il valore del pin di ricezione e il valore letto e'
esattamente il valore del bit che si e' trasmetto in codice Manchester.
In figura 13 e' riportato graficamente il procedsso di decodifica
attuato dal micro come prima esposto:

FIGURA 13 :
decodifica di un segnale codificato in MANCHESTER
|