Digitale da zero - parte seconda

(25 agosto 2002)
 
Composizione e codifica pacchetti DCC a norme NMRA

Premessa
In questo articolo verranno trattati in modo abbastanza completa i pacchetti DCC più utilizzati nella modalità di comando (funzionamento normale).

Legenda sul significato di alcuni BIT
A = Indirizzo del Decoder;
a = Sotto indirizzo(es. indirizzo uscita da usare nei decoder accessori tipo scambi)
D = Direzione (1 o 0);
d = Funzione (ON/OFF);
S = Velocità;
s = Bit utilizzato per velocità a 28step;
E = Errore
1/0 = Altri dati fissi

Composizione di un pacchetto DCC
Ogni pacchetto DCC e composto da:

Preambolo composto da almeno 11 Bit a 1

Bit a 0 (Bit Start) per indicare l'inizio di un pacchetto DCC

Indirizzo decoder composto da un byte (0AAAAAAA) per decoder con indirizzo da 0 a 127 (indirizzamento 7 bit) e da due byte (11AAAAAAA 0 AAAAAAAA) per decoder con indirizzo da 192 a 231 (indirizzamento a 14 bit)

Comando composta da uno o due byte per indicare al decoder la funzione da eseguire

Errore composta da un byte ricavato, tramite la funzione logica XOR*, applicata tra tutti i byte che compongono il pacchetto DCC

Bit a 1 (Bit Stop) per indicare la fine del pacchetto DCC

PS: Dopo ogni byte si deve inserire un Bit a 0, che viene usato per separare i vari byte del pacchetto DCC.

* La funzione XOR confronta 2 o più byte bit per bit, e restituisce come risultato il valore 1 con bit diversi e 0 con bit uguali.

Esempio di funzione XOR tra 2 e 3 byte.

1° Byte 00011101 00011101
2° Byte 10110100 10110100
3° Byte   10011100
Risultato Funzione XOR 10101001 00110101

Pacchetto DCC di reset valido per tutti i decoder, attiva Reset tutti i decoder
Pacchetto di Reset: [Preambolo] 0 00000000 0 00000000 0 00000000 1

Pacchetto "IDLE" valido per tutti i decoder, non imposta nessun comando
Pacchetto di Reset: [Preambolo] 0 11111111 0 00000000 0 11111111 1

Pacchetto per controllo velocità e direzione in un decoder impostato per 14/28 step
Pacchetto : [Preambolo] 0 [indirizzo] 0 01DsSSSS 0 EEEEEEEE 1

Tabella relativa a 14/28 step: per 14 è valida la colonna sinistra, mentre per 28 i step tra parentesi

Valori 14/28 step sSSSS Valori solo per 28 step sSSSS
Stop Emergenza 00001    
Stop 00000    
Step 1 (Step 1) 00010 (Step 2) 10010
Step 2 (Step 3) 00011 (Step 4) 10011
Step 3 (Step 5) 00100 (Step 6) 10100
Step 4 (Step 7) 00101 (Step 8) 10101
Step 5 (Step 9) 00110 (Step 10) 10110
Step 6 (Step 11) 00111 (Step 12) 10111
Step 7 (Step 13) 01000 (Step 14) 11000
Step 8 (Step 15) 01001 (Step 16) 11001
Step 9 (Step 17) 01010 (Step 18) 11010
Step 10 (Step 19) 01011 (Step 20) 11011
Step 11 (Step 21) 01100 (Step 22) 11100
Step 12 (Step 23) 01101 (Step 24) 11101
Step 13 (Step 25) 01110 (Step 26) 11110
Step 14 (Step 27) 01111 (Step 28) 11111

Pacchetto per controllo velocità e direzione in un decoder impostato per 128 step
Pacchetto: [Preambolo] 0 [indirizzo] 0 00111111 0 DSSSSSSS 0 EEEEEEEE 1

Tabella relativa a 128 step

Valori 128 step SSSSSSS Valori 128 step SSSSSSS
Step 1 0000010 Stop 0000000
Step 2 0000011 Stop di Emergenza 0000001
Step 3.......Step 125 0000100...1111110  
Step 126 1111111 D = Direzione (1/0)

Pacchetto per controllo Luci e Funzioni F1- F4
Pacchetto : [Preambolo] 0 [indirizzo] 0 100ddddd 0 EEEEEEEE 1

Partendo da sinistra verso destra il significato dei Bit ddddd è il seguente:

  • Il 1° controlla la funzione Luci
  • Il 2° controlla la funzione F5
  • Il 3° controlla la funzione F6
  • Il 4° controlla la funzione F7
  • Il 5° controlla la funzione F8

Pacchetto per controllo Funzioni F5- F8
Pacchetto : [Preambolo] 0 [indirizzo] 0 1011dddd 0 EEEEEEEE 1

Partendo da sinistra verso destra il significato dei Bit dddd è il seguente:

  • Il 1° controlla la funzione F5
  • Il 2° controlla la funzione F6
  • Il 3° controlla la funzione F7
  • Il 4° controlla la funzione F8

Pacchetto per controllo decoder con 2 funzioni variabili
Pacchetto : [Preambolo] 0 [indirizzo] 0 1010XXYY 0 EEEEEEEE 1

Tabella relativa ai Bit XX YY:

Comandi per funzione XX Comandi per funzione 2 YY
Incrementa funzione 01 Incrementa funzione 01
Decrementa funzione 10 Decrementa funzione 10
Resetta funzione 00 Resetta funzione 00

Pacchetto per controllo decoder accessorio(indirizzo 9 bit) 8 funzioni on/off(4 scambi)
Pacchetto : [Preambolo] 0 10AAAAAA 0 1AAAdaaa 0 EEEEEEEE 1

Tabella relativa al significato dei Bit:

Valore Bit

I Bit AAAAAA sono i 6 Bit bassi dell'indirizzo del decoder

I Bit AAA sono i 3 Bit alti dell'indirizzo del decoder invertiti di segno es:101 -> 010

I 3 Bit aaa servono per identificare la funzione da utilizzare, da 0 a 7

Il Bit d serve a indicare se la funzione indirizzata con aaa deve essere ON o OFF

Pacchetto per controllo decoder accessorio(indirizzo 9 bit) 2 funzioni variabili
Pacchetto : [Preambolo] 0 10AAAAAA 0 1AAAXXYY 0 EEEEEEEE 1

Partendo da sinistra verso destra il significato dei Bit dddd è il seguente:

Valore Bit I Bit AAAAAA sono i 6 Bit bassi dell'indirizzo del decoder
I Bit AAA sono i 3 Bit alti dell'indirizzo del decoder invertiti di segno es:101 ->010
Comandi per funzione XX Comandi per funzione 2 YY
Incrementa funzione 01 Incrementa funzione 01
Decrementa funzione 10 Decrementa funzione 10
Resetta funzione 00 Resetta funzione 00

In questa seconda parte è stata riportata la composizione e codifica dei comandi DCC più usati, nella modalità di comando, normale funzionamento. Nella prossima parte vedremo i pacchetti DCC in modalità "service mode", cioè programmazione/lettura nel decoder dei CV (Configuration Variable).

<- Torna alla Prima Parte | Leggi la Terza Parte ->

Articolo realizzzato da Alessandro Tardioli (tardioli.alex@libero.it)



Dai un voto a questa pagina:

Rating: 2.4/5 (94 votes cast)

(Unobtrusive) AJAX Star Rating Bar Homepage