|
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)
|