PROTOCOLLO DALI - 5



  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.

 Microst.it - Codifica Manchester della stringa 11010010

 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:

 Microst.i MANCHESTER decodifica tramite micro

 

FIGURA 13 : decodifica di un segnale codificato in MANCHESTER