Multi dintre voi ati auzit de controlul digital. Dar ce este el defapt? Ce inseamna? Probabil multi dintre voi detineti deja o centrala digitala si ati testat deja DCC-ul. Insa nu se opreste totul aici. In cele ce urmeaza voi icnerca sa va arat ca nu dispare "distractia" in DCC, ca a lega diorama la PC nu inseamna sfarsitul controlului manaul si ca, si in digital, va puteti controla trenurile manual, la fel ca si in analog.
Insa sa incepem cu putina teorie...
Dupa cum toti stiti, in analog trenul ruleaza datorita unei tensiuni continue(DC) care circula prin linie, o sina fiind +, cealalta fiind -. Viteza locomotivei este stabilita de valoarea tensiunii, ea variind de la 0 pana la 12V. Directia de miscare e stabilita de catre polaritatea sinei, inversand polaritatea se schimda si directia.
In cazul controlului digital situatia se schimba. Tensiunea maxima este prezenta tot timpul in linie(16V) iar directia si viteza sunt determinate de catre comanda pe care o primeste locomotiva. Semnalul trimis prin linii este unul dreptunghiular, o oscilatie putand dura 116us pentru 1 respectiv 200us pentru 0.

De ce doar aceste 2 valori pot aparea(1 si 0)? Pentru ca semnalul digital, DCC, este defapt un sir de 1 si 0, un cod binar, pe care centrala il emite, iar decodorul il intelege si il respecta. Acesta este principiul de functionare al DCC.
Dar cum intelege decodorul ce transmite statia? Cum e transmisa informatia?
Centrala trimite informatia sub forma de "pachete". Un pachet e o colectie ordonata de biti si bytes(1byte=8biti), destinata unui anumit decodor, prin care ii sunt transmise comezile. Decodorul analizeaza semnalul emis de centrala, in cautarea de pachete destinate lui. Inainte de trimiterea unui pachet centrala emite o serie de 10 sau mai multi biti cu valoarea 1. Astfel decodorul stie ca urmeaza un pachet. La sfarsitul acelei secvente de 1 urmeaza un 0, cea ce indica ca urmatorul byte este byte-ul de adresa. Acest byte contine adresa decodorului caruia ii este destinat pachetul. Daca decodorul nu recunoaste adresa ca fiind a lui, acesta ignora intreg pachetul.
Citirea unui byte transmis se face astfel: Bit-ul de inceput este intotdeauna 0 si nu face parte din byte. bit-ul cel mai din stanga este primul bit transmis, apoi bit-ul 6,5 si tot asa pana la 0. Bit-ul 7 se numeste cel mai semnificativ bit(MSB - Most Significant Bit) pentru ca are cea mai mare valoare decimala - 128, iar bitul 0 este cel mai putin semnificativ bit(LSB - Least Significant Bit). Astfel, transformand in codul binar, bitii 0-7 au valorile 1, 2, 4, 8, 16, 32, 64 respectiv 128. Valoarea adresei decodorului se afla adunand toate valorile corespunzatoare unor biti cu valoarea 1, in cazul nostru 217.

Dupa byte-ul de adresa, urmeaza un bit cu valoarea 0, care indica inceperea unui nou byte de date. Un byte de data poate avea alte informatii referitoare la sensul de deplasare, viteza, functii atcive, etc.
In standardul DCC exista cel putin 2 byte de data, cu unele pachete avand 5. Orice byte de data e precedat de un bit de start 0, asigurand astfel ca fiecare al 9-lea bit e 0. Astfel se vede mai bine rolul celor 10 biti cu valoarea 1 trimisi la inceputul fiecarui pachet, pentru ca in interiorul unui pachet este imposibil s aintalnin 10 de 1 consecutivi, datorita acelui bit de start 0.
Indiferent de numarul bytilor de data, ultimul byte este intotdeauna byte-ul de eroare. el este folosit pentru a asigura transmiterea corecta a datelor. Decodorul calculeaza singur byte-ul de eroare, pe baza datelor primite. Daca este la fel cu cel emis de centrala, atunci pachetul este luat in considerare. Daca nu, pachetul este ignorat. Modul de calculare este foarte simplu, folosind functia SAU exclusiv(XOR) fiind prezentat in exemplul urmator: Byte-ul 1: 10101010; Byte-ul 2: 11000011, Byte-ul de eroare: 01101001;
Dupa byte-ul de eroare urmeaza bit-ul de final de pachet. Acesta este intotdeauna 1. Tineti minte bit-ul de start cu valoarea 0? Ei bine cand dupa un byte nu mai vine 0 ci 1 decodorul stie ca pachetul sa incheiat si asteapta o noua serie de 1, care sa marcheze inceputul unui nou pachet.
Cateva pachete de baza:
In cele ce urmeaza voi defini cateva pachete de baza. In locul literelor vor exista biti care vor putea avea atat valoarea 1 cat si valoarea 0.
Pachetul pentru viteza si sens pentru decodoarele din locomotive
1111111111 0 0AAAAAAA 0 01DUSSSS 0 EEEEEEEE 1
Byte-ul de adresa poate lua orice valoare intre 1 si 127, in functie de valoarea luata de AAAAAAA. 0 din fata lasa loc pentru adresele altor decodoare(pentru macaze, accesorii, etc)
Byte-ul de data incepe cu 01, pentru a lasa loc, iarasi, functiilor suplimentare(lumini, sunete, cuple, etc). Bit-ul D indica directia de deplasare(1-deplasare inainte, 0 - deplasare inapoi). Bit-ul U este nedefinit.
Cei 4 biti S sunt pentru viteza si permit setarea a 16 valori ale vitezei. 0000 inseamna Stop, in vreme ce 0001 insemana oprirea de urgenta. Restul valorilor de la 0010 pana la 1111 sunt cele 14 trepte de viteza din digital.
Valorile celor 4 biti de viteza si treapta de viteza aferenta:
0000 Stop
0001 Oprire de urgenta
0010 Viteza 1
0011 Viteza 2
0100 Viteza 3
0101 Viteza 4
0110 Viteza 5
0111 Viteza 6
1000 Viteza 7
1001 Viteza 8
1010 Viteza 9
1011 Viteza 10
1100 Viteza 11
1101 Viteza 12
1110 Viteza 13
1111 Viteza 14
Exemplu: 1111111111 0 00001011 0 01100110 0 01111101 1
Inseamna tradus Locomotiva cu adresa 11 merge inainte cu viteza 5.
Pachetul de resetare
1111111111 0 00000000 0 00000000 0 00000000 1
Acest pachet are valoarea 0 peste tot si este utilizat de centrala pentru a goli memoria decodoarelor aflate in sectorul alimentat de centrala respectiva. In practica este utilizata la pornirea centralei, pentru a goli decodoarele de orice instructiuni, inainte de inceperea transmiterii pachetelor.
Repetarea pachetelor
Chiar daca nu se executa niciun fel de modificari asupra unei adrese, centrala va trimite acelasi pachet, repetitiv, pentru a preveni eventualele erori. In mod normal lista de pachete ce se retrimit este in jur de 20. Pentru statiile Lenz ea este de 24.
Toate aceste masuri de siguranta fac ca sistemul DCC sa fie unul foarte sigur sansele ca o eroare sa apara fiind minime.
Bibliografie: http://www.geocities.com/OzDCC/artpub.htm
Insa sa incepem cu putina teorie...
Dupa cum toti stiti, in analog trenul ruleaza datorita unei tensiuni continue(DC) care circula prin linie, o sina fiind +, cealalta fiind -. Viteza locomotivei este stabilita de valoarea tensiunii, ea variind de la 0 pana la 12V. Directia de miscare e stabilita de catre polaritatea sinei, inversand polaritatea se schimda si directia.
In cazul controlului digital situatia se schimba. Tensiunea maxima este prezenta tot timpul in linie(16V) iar directia si viteza sunt determinate de catre comanda pe care o primeste locomotiva. Semnalul trimis prin linii este unul dreptunghiular, o oscilatie putand dura 116us pentru 1 respectiv 200us pentru 0.

De ce doar aceste 2 valori pot aparea(1 si 0)? Pentru ca semnalul digital, DCC, este defapt un sir de 1 si 0, un cod binar, pe care centrala il emite, iar decodorul il intelege si il respecta. Acesta este principiul de functionare al DCC.
Dar cum intelege decodorul ce transmite statia? Cum e transmisa informatia?
Centrala trimite informatia sub forma de "pachete". Un pachet e o colectie ordonata de biti si bytes(1byte=8biti), destinata unui anumit decodor, prin care ii sunt transmise comezile. Decodorul analizeaza semnalul emis de centrala, in cautarea de pachete destinate lui. Inainte de trimiterea unui pachet centrala emite o serie de 10 sau mai multi biti cu valoarea 1. Astfel decodorul stie ca urmeaza un pachet. La sfarsitul acelei secvente de 1 urmeaza un 0, cea ce indica ca urmatorul byte este byte-ul de adresa. Acest byte contine adresa decodorului caruia ii este destinat pachetul. Daca decodorul nu recunoaste adresa ca fiind a lui, acesta ignora intreg pachetul.
Citirea unui byte transmis se face astfel: Bit-ul de inceput este intotdeauna 0 si nu face parte din byte. bit-ul cel mai din stanga este primul bit transmis, apoi bit-ul 6,5 si tot asa pana la 0. Bit-ul 7 se numeste cel mai semnificativ bit(MSB - Most Significant Bit) pentru ca are cea mai mare valoare decimala - 128, iar bitul 0 este cel mai putin semnificativ bit(LSB - Least Significant Bit). Astfel, transformand in codul binar, bitii 0-7 au valorile 1, 2, 4, 8, 16, 32, 64 respectiv 128. Valoarea adresei decodorului se afla adunand toate valorile corespunzatoare unor biti cu valoarea 1, in cazul nostru 217.

Dupa byte-ul de adresa, urmeaza un bit cu valoarea 0, care indica inceperea unui nou byte de date. Un byte de data poate avea alte informatii referitoare la sensul de deplasare, viteza, functii atcive, etc.
In standardul DCC exista cel putin 2 byte de data, cu unele pachete avand 5. Orice byte de data e precedat de un bit de start 0, asigurand astfel ca fiecare al 9-lea bit e 0. Astfel se vede mai bine rolul celor 10 biti cu valoarea 1 trimisi la inceputul fiecarui pachet, pentru ca in interiorul unui pachet este imposibil s aintalnin 10 de 1 consecutivi, datorita acelui bit de start 0.
Indiferent de numarul bytilor de data, ultimul byte este intotdeauna byte-ul de eroare. el este folosit pentru a asigura transmiterea corecta a datelor. Decodorul calculeaza singur byte-ul de eroare, pe baza datelor primite. Daca este la fel cu cel emis de centrala, atunci pachetul este luat in considerare. Daca nu, pachetul este ignorat. Modul de calculare este foarte simplu, folosind functia SAU exclusiv(XOR) fiind prezentat in exemplul urmator: Byte-ul 1: 10101010; Byte-ul 2: 11000011, Byte-ul de eroare: 01101001;
Dupa byte-ul de eroare urmeaza bit-ul de final de pachet. Acesta este intotdeauna 1. Tineti minte bit-ul de start cu valoarea 0? Ei bine cand dupa un byte nu mai vine 0 ci 1 decodorul stie ca pachetul sa incheiat si asteapta o noua serie de 1, care sa marcheze inceputul unui nou pachet.
Cateva pachete de baza:
In cele ce urmeaza voi defini cateva pachete de baza. In locul literelor vor exista biti care vor putea avea atat valoarea 1 cat si valoarea 0.
Pachetul pentru viteza si sens pentru decodoarele din locomotive
1111111111 0 0AAAAAAA 0 01DUSSSS 0 EEEEEEEE 1
Byte-ul de adresa poate lua orice valoare intre 1 si 127, in functie de valoarea luata de AAAAAAA. 0 din fata lasa loc pentru adresele altor decodoare(pentru macaze, accesorii, etc)
Byte-ul de data incepe cu 01, pentru a lasa loc, iarasi, functiilor suplimentare(lumini, sunete, cuple, etc). Bit-ul D indica directia de deplasare(1-deplasare inainte, 0 - deplasare inapoi). Bit-ul U este nedefinit.
Cei 4 biti S sunt pentru viteza si permit setarea a 16 valori ale vitezei. 0000 inseamna Stop, in vreme ce 0001 insemana oprirea de urgenta. Restul valorilor de la 0010 pana la 1111 sunt cele 14 trepte de viteza din digital.
Valorile celor 4 biti de viteza si treapta de viteza aferenta:
0000 Stop
0001 Oprire de urgenta
0010 Viteza 1
0011 Viteza 2
0100 Viteza 3
0101 Viteza 4
0110 Viteza 5
0111 Viteza 6
1000 Viteza 7
1001 Viteza 8
1010 Viteza 9
1011 Viteza 10
1100 Viteza 11
1101 Viteza 12
1110 Viteza 13
1111 Viteza 14
Exemplu: 1111111111 0 00001011 0 01100110 0 01111101 1
Inseamna tradus Locomotiva cu adresa 11 merge inainte cu viteza 5.
Pachetul de resetare
1111111111 0 00000000 0 00000000 0 00000000 1
Acest pachet are valoarea 0 peste tot si este utilizat de centrala pentru a goli memoria decodoarelor aflate in sectorul alimentat de centrala respectiva. In practica este utilizata la pornirea centralei, pentru a goli decodoarele de orice instructiuni, inainte de inceperea transmiterii pachetelor.
Repetarea pachetelor
Chiar daca nu se executa niciun fel de modificari asupra unei adrese, centrala va trimite acelasi pachet, repetitiv, pentru a preveni eventualele erori. In mod normal lista de pachete ce se retrimit este in jur de 20. Pentru statiile Lenz ea este de 24.
Toate aceste masuri de siguranta fac ca sistemul DCC sa fie unul foarte sigur sansele ca o eroare sa apara fiind minime.
Bibliografie: http://www.geocities.com/OzDCC/artpub.htm