L’illuminotecnica e il sistema DALI

Sul blog di Elettronica Open Source puoi leggere non solo tutti gli articoli Premium riservati agli abbonati Platinum 2.0 e inseriti nella rivista Firmware 2.0 (insieme ad articoli tecnici, progetti, approfondimenti sulle tecnologie emergenti, news, tutorial a puntate, e molto altro) ma anche gli articoli della Rubrica Firmware Reload. In questa Rubrica del blog abbiamo raccolto gli articoli tecnici della vecchia rivista cartacea Firmware, che contengono argomenti e temi evergreen per Professionisti, Makers, Hobbisti e Appassionati di elettronica. DALI, acronimo di “Digital Addressable Lighting Interface”, è uno standard internazionale conforme alla norma IEC 62386 che permette di offrire un valido punto di riferimento per la costruzione dei dispositivi domotici.

Introduzione

DALI è una recente tecnologia che permette la gestione di apparecchi d’illuminazione, dimmer e dispositivi vari basati su un segnale digitale e in grado di indirizzare, in modo univoco, fino a 64 moduli su uno stesso bus. Non solo: DALI assicura che per ogni circuito la lunghezza massima del cavo sia di 200 metri e che, inoltre, altro aspetto positivo, non sia neppure determinante rispettare la polarità del segnale. Grazie, poi, alla tecnica Multichanneling è possibile creare e gestire gruppi di lampade senza dover dividere l’impianto elettricamente attraverso un flusso bidirezionale delle informazioni. In questo modo è possibile conoscere lo stato attuale del dispositivo e sapere lo stato di ogni singolo componente, potendo intervenire su ciascun elemento al fine di svolgere interventi di manutenzione programmata. In ambito DALI, la bidirezionalità dei componenti è garantita dalla presenza di un indirizzo univoco, ovvero lo short address. Ogni modulo può appartenere a uno o più dei 16 gruppi disponibili e può memorizzare diversi parametri, come ad esempio i parametri di preset. I gruppi, poi, si possono sovrapporre, senza per questo creare conflitti perché la loro appartenenza è memorizzata all’interno del reattore. Per inviare un comando contemporaneo a più moduli si utilizza l’indirizzo del gruppo, chiamato group address. I comandi inviati su un bus DALI possono essere quindi indirizzati a un singolo modulo, a un gruppo oppure a tutti i moduli connessi (broad cast). Ogni dispositivo (indirizzo) può essere associato a 16 diverse scene e in ciascun reattore è memorizzato il livello di regolazione di luminosità associato alla scena. Un sistema di questo tipo è riprogrammabile ricorrendo a un software dedicato, permettendo di creare diverse configurazioni senza modificare l’impianto esistente.

È possibile, ad esempio, variare la luminosità delle singole lampade in un locale secondo specifiche esigenze o integrare il protocollo DALI con differenti soluzioni basate su altre tematiche quali Lonworks o Crestron o, ancora, Konnex. In ambito DALI, per indirizzare gruppi di lampade o un singolo elemento, è necessario intervenire inizialmente sulla configurazione interna prima di utilizzarli; infatti, utilizzando solo i settaggi di fabbrica, è possibile indirizzare gli elementi con il comando di broadcast perdendo, di contro, in flessibilità. Infatti, il vantaggio di una tecnologia del genere è di intervenire su ogni singolo elemento al fine di impostare diverse configurazioni o layout senza mettere mano all’impianto del sistema, definendo così un nuovo ricablaggio. Un altro aspetto di sicuro da non sottovalutare è la possibilità di sfruttare la bidirezionalità al fine di garantire la manutenzione da remoto e intervenire in caso di necessità. Un bus di questo tipo utilizza due fili, o un coppia di conduttori, senza polarità con un basso data rate. Ogni progettista ha poi un’ampia discrezionalità sulla scelta della topologia da utilizzare; infatti, può decidere di definire un collegamento a stella o a T, ma anche di tipo seriale o parallelo. In accordo allo standard, il livello logico “1” è su 9,5÷22,5 V, mentre il livello “0” è tra -6,5 e 6,5 V, Figura 6. DALI è un sistema di tipo master-slave, il che significa che lo slave (ballast) risponde solo quando è interrogato. Il master trasmette i dati alzando o abbassando la tensione attraverso l’interfaccia bifilare differenziale. Lo slave risponde trasmettendo i dati richiesti utilizzando una codifica Manchester. In un’applicazione tipica, un DALI-bus è composto da un controller (ovvero Master) e diversi dispositivi slave, o ballast, così come pone in evidenza la Figura 1.

Figura 1: Applicazione tipica su DALI-Bus

Figura 1: Applicazione tipica su DALI-Bus

All’interno di un sistema di questo tipo è possibile indirizzare fino a 64 differenti slave, o ballast, presi singolarmente o a gruppi. La comunicazione si basa su due diversi frame: un forward frame (composto di due byte e spediti da un master a uno slave) e un backward frame (1 byte spedito da uno slave al suo master) che contiene informazioni sul suo stato. In particolare, leggendo una recente pubblicazione Philips, un segnale DALI può essere visto composto da due parti: un “where to” e un “info”, ovvero un dove andare e che cosa fare. Infatti, con “where to” si specifica a chi deve essere consegnato il messaggio o l’azione da compiere: in caso di “broadcast” il messaggio deve essere inviato a tutti quelli connessi al master, con “group” l’azione deve essere indirizzata solo ad un gruppo specifico (da uno a sedici) e, infine, con “address” l’azione specifica è inviata solo ad un determinato componente del sistema, ovvero da 1 a 64. Insieme a “where to” l’altro elemento importante che compone la trama è il cosiddetto “info” byte, un campo dove si deve specificare che cosa il dispositivo indirizzato debba fare: On, accensione delle luci, Off, spegnimento o anche “direct level 50%”, “step up”, “step down” o “recall scene”. A questo proposito, un DALI controller può inviare una combinazione di “where to” e “info” byte al fine di decidere sequenze particolari in determinate situazioni. Ogni Slave può appartenere a diversi gruppi e assumere differenti comportamenti, pur avendo un solo indirizzo univoco; infatti, un dispositivo master è in grado di pilotare i singoli elementi del nostro sistema modificando la sua gestione. A questo riguardo dalla Figura 2 e 3 notiamo che l’elemento indirizzato come 15 appartiene a due gruppi (2, 16) con diverse configurazioni di tipo illuminotecnico quali il valore della sua intensità luminosa, il suo valore massimo e minimo e, infine, il ruolo in ciascuna scena.

Figura 2: Indirizzi e Gruppi su Bus DALI

Figura 2: Indirizzi e Gruppi su Bus DALI

 

Figura 3: L’indirizzo 15 può appartenere a due gruppi (2 e 16)

Figura 3: L’indirizzo 15 può appartenere a due gruppi (2 e 16)

Il concetto di scena è un’interessante applicazione; infatti, le luci, ad esempio, di una sala riunione possono essere configurate in tre scene differenti: lettura, proiezioni slide e discussione. La Figura 4 pone in evidenza il comando, da parte di un master, per spegnere la lampada connessa all’indirizzo 8.

Figura 4: Comando (Master) di spegnimento all’indirizzo 8

Figura 4: Comando (Master) di spegnimento all’indirizzo 8

IL PROTOCOLLO DALI

Possiamo senza dubbio affermare che DALI utilizza un bus galvanicamente isolato, sfruttando un segnale di tipo digitale per trasmettere il flusso dati in modo differenziale su due conduttori. Il livello del segnale varia tra “0” (da -6,5 a 6,5 V) e “1” (da 9,5 a 22,5 V), mentre i dati sono trasmessi alla velocità di 1200 baud, con codifica di tipo Manchester (pari a 2400 bit/sec). La trasmissione si basa su dei pacchetti da 19 bit divisi in due filoni: pacchetti cosiddetti “di andata” (o forward frame) inviati da un master a uno slave e “di ritorno” (backward frame), ovvero la risposta di uno slave (control gear) alla richiesta di un master. Il frame, costituito da un treno di 19 bit secondo la codifica Manchester, è composto dal primo bit di start e i successivi sedici compongono un DALI address e il suo command data associato. Il frame è chiuso da due bit di stop non codificati in Manchester con il bit MSb inviato per primo. A questo riguardo la Figura 7 pone in evidenza questo frame rate. Ricordiamo che la codifica Manchester suddivide il periodo di un bit in due intervalli uguali; il valore logico “1” è codificato mediante una forma d’onda che presenta una transizione dal basso all’alto a metà del periodo di clock, mentre il valore logico “0” è codificato mediante una forma d’onda che presenta una transizione dall’alto al basso a metà del periodo di clock. In base alle specifiche, ogni bit prende due periodi e siccome il bit rate è di 1200 bps allora 1 periodo di bit è pari a circa 834 microsecondi. Il protocollo richiede alcuni timing da rispettare per scambiare correttamente ogni pacchetto (Figura 5).

Figura 5: Timing per lo scambio di pacchetti

Figura 5: Timing per lo scambio di pacchetti

 

Figura 6: Livelli logici ammissibili su bus DALI

Figura 6: Livelli logici ammissibili su bus DALI

 

Figura 7: Esempi di strutture di forward – backward frame DALI

Figura 7: Esempi di strutture di forward - backward frame DALI

Il tempo che deve intercorrere tra due successivi forward frame deve essere almeno di 9,17ms, ciò vuol dire che per quattro forward dovranno trascorrere 100ms. Non solo, il tempo speso tra un forward e un backward (una transizione da forward a backward) dovrà essere tra 2,92 e 9,17ms. Dopo aver spedito un pacchetto di tipo forward, il master dovrà attendere per 9,17ms. In caso di mancata ricezione di un backward frame, il master si trova in una condizione di “no answer”: il tempo tra una transizione da backward a forward dovrà essere, anche in questo caso, pari ad almeno 9,17ms. Ogni dispositivo slave deve essere in grado di rispondere a uno short address, un group address e ad una richiesta di broadcast. La specifica definisce lo schema d’indirizzamento utilizzato; infatti, per uno short o group address lo schema utilizzato è YAAAAAAS, short address (64) a 0AAAAAAS, un group address (16) a 100AAAAS, mentre un broadcast con 1111111S. Esistono anche alcuni special command con 101CCCC1 e 110CCCC1. Lo schema pone in evidenza il ruolo del bit definito come selettore (S); infatti, questo è utilizzato per dare un altro significato alle richieste del master. In effetti, con il selettore pari a “0” si assume una richiesta del master di “ direct arc power level”, mentre con “1” la richiesta è un comando. Non solo, la lettera Y deve essere utilizzata come short o group address (0 e 1).

Secondo il protocollo DALI esistono quattro differenti comandi, o Forward frame:

  • Direct/Indirect arc power, controllo utilizzato per impostare i livelli di funzionamento del server, o ballast.
  • Comando di configurazione. È utilizzato per configurare il server, ad esempio può essere utilizzato per aggiungere un server a un gruppo. Questo comando deve essere ripetuto in un ciclo di 100ms altrimenti sarà ignorato.
  • Comando di tipo Query. È un particolare comando inviato dal master per conoscere particolari informazioni residenti in ciascun slave ed è basato su una sequenza request/replay, ossia il master richiede delle informazioni e lo slave dovrà rispondere con il backward frame. Esistono diverse tipologie di richieste da parte del master, ad esempio può richiedere allo slave il numero di versione o ciascun power level. Non solo, ad esempio, la query “QUERY ACTUAL LEVEL” composta di un forward frame YAAA AAA1 1010 0000 (comando 160) richiede una risposta dal server, backward frame, senza ripetizione entro 100 ms. Questo comando è eseguito con un forward frame e a seguito della richiesta il backward frame deve essere ricevuto entro 9,17ms.
  • Comando speciale. Un comando speciale è inviato dal master ed è utilizzato per inizializzare ogni slave e/o impostare particolari configurazioni. Si nota che la maggior parte dei comandi di questo tipo inviati dal master devono essere elaborati entro 15 minuti dopo la richiesta di “INITIALIZE” e, anche in questo caso, alcune richieste richiedono una risposta dal server. Ogni componente classificato come slave deve contenere alcuni parametri di configurazione che permettono, ad esempio, di definire diversi livelli di luminosità. Infatti, a titolo esemplificativo, un dispositivo slave deve contenere le info descritte nella Tabella 1.
Tabella 1 Descrizione dei parametri residenti

Tabella 1: Descrizione dei parametri residenti

DALI MASTER

La Figura 8 mostra uno schema che aiuta a comprendere come può essere realizzato un master in ambito DALI. La parte di comunicazione con un host intelligente può essere fatta attraverso un bus USB, ad esempio un PC e il master DALI. Per spedire un messaggio verso un qualsiasi dispositivo può essere utilizzato un I/O della GPIO, nel nostro caso il pin P0.28, mentre per ricevere un backward frame da un componente slave può essere assegnato un nuovo pin, in input, quale P0.29 con una particolare considerazione sul ruolo della tempistica. Infatti, per campionare correttamente il segnale può essere utile ricorrere al Capture Timer, P0.30. La spedizione di un forward frame è abbastanza semplice. In effetti, l’implementazione può prevedere l’uso di un timer che genera un interrupt a ogni periodo utile per comporre e inviare il messaggio. L’invio di un singolo bit attraverso una codifica bi-fase richiede due interrupt. Infatti, l’invio di un bit a “1” è inviato attraverso un pulling-down, mentre la spedizione di un livello “0” comporta una considerazione di tipo opposto. Per tener conto dei bit inviati si dovrebbe utilizzare un contatore. Il contatore dovrebbe funzionare con una frequenza doppia rispetto alla frequenza dei bit. Al contrario, per la decodifica di un messaggio DALI si utilizza, anche in questo caso, un timer capture. Un altro schema, più particolareggiato, è proposto nel documento oggetto del riferimento [3]. Dalla figura si pone in evidenza il ruolo dell’interfaccia USB utilizzata per colloquiare con un PC e lo strato fisico della parte DALI. In realtà, gli schemi proposti rappresentano solo degli esempi perché in ogni caso si potrebbero arricchire le singole soluzioni con interfacce diverse tra operatore/macchina, come la presenza di un display o di una tastiera alfanumerica al fine di impostare i comandi ai diversi slave presenti.

Figura 8: Schema di Master DALI

Figura 8: Schema di Master DALI

CONCLUSIONE

Quasi tutti i costruttori propongono ormai differenti soluzioni sempre più interessanti, come Microchip o Freescale. Infatti, ad esempio, il documento AN11175 descrive i passi da seguire per predisporre un dispositivo DALI slave con LPC134x su Cortex M3. Il protocollo DALI non è di per sé complesso; una volta compresi i meccanismi di trasferimento dei frame e i rapporti con i dispositivi server, non risulta complicato realizzare un master. In effetti, per definire un master DALI, oltre a conoscere il protocollo di comunicazione, sono necessarie almeno le conoscenze essenziali della componentistica hardware.

Scarica subito una copia gratis

Scrivi un commento

Seguici anche sul tuo Social Network preferito!

Send this to a friend