Despre DCC

tyco

Well-Known Member
Trenulist
24 Iulie 2016
779
1
Arad
sageata-verde.uv.ro
WEBSITE
http://sageata-verde.uv.ro/
YAHOO
thetycoon_tyco
LOCATION
Arad
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
 
  • Like
Reacții: elm

tyco

Well-Known Member
Trenulist
24 Iulie 2016
779
1
Arad
sageata-verde.uv.ro
WEBSITE
http://sageata-verde.uv.ro/
YAHOO
thetycoon_tyco
LOCATION
Arad
Acum ca stim cum functioneaza DCC-ul sa ne orientam atentia asupra controlului digital al dioramei. Contrar cum ar crede multi, nu este destul sa legi centrala la PC folosind o componenta speciala si automat trenurilor vor rula singure. Legarea centralei la PC rezolva doar o parte din problema. Vei putea controla viteza si deplasarea trenurilor, insa nu vei sti udne se afla fiecare tren. Astfel exista riscul accidentelor. Pentru a sti unde e fiecare tren trebuie un sistem separat, pentru supravegherea trenurilor, numit sistem de feedback. Cele mai populare 2 sisteme sunt S88 si RS. Oricare ar fi sistemul ales, ideea de baza e aceiasi: In secunda in care un tren intra pe un bloc de linie un detector trimite un semnal unui modul de feedback. Acesta proceseaza informatia si o trimite fie centralei digitale, daca aceasta suporta sistemul de feedback, fie prin intermediul unui hardware dedicat, direct la PC. Un modul de feedback are un numar limitat de intrari, pentru detectoare. De aceea mai multe module se pot interconecta, pentru a atinge numarul necesar de detectoare. Detectoarele pot fi de mai multe feluri. Cel mai simplu detector este un releu reed sub linie. Alte detectoare pot fi cu bariera cu infrarosu, detectoare de consum pe bloc, etc.
Informatiile combinate date de catre centrala si modulul de feedback sunt indeajuns pentru a sti fiecare tren unde se afla in fiecare moment.
Pentru macaze se semafoare exista diverse tipuri de decodoare, fie specializate, fie kit-uri fie doar schite pe care le poti face acasa. Nu voi pune accentul pe ele, insa voi sublinia un lucru. Exista un montaj, denumit generic TCO. Despre ce e vorba pe scurt? Acest montaj permite actionarea deodoarelor de macaz sau semafoare din buton. Mai exact fiecarei adrese de decodor de accesorii ii corespunde un buton. Aceste butoane se aranjeaza pe o consola. Astfel, impreuna cu 2-3 mouse-uri, poti controla diorama la fel ca in analog. Mai mult, fata de digital, poti seta pe PC cateva trenuri ce sa se invarta pe diorama, in timp ce tu te joci frumos cu 1-2 locomotive. Desi la o diorama mica acest lucru nu poate fi foarte spectaculos, la o diorama putin mai mare, acest lucru poate fi foarte interesant.
In concluzie am vrut doar sa demonstrez, ca trecand la digital, nu dispare placerea controlarii dioramei, ci este chiar mai mare.
Astept altii sa intervina cu completari, poze, date, si orice altceva ar putea creea din acest topic un mic indrumator pentru incepatorii care nu sunt speriati de digital, datorita lipsei de informatii.
Ca si studiu recomand si site-ul http://www.tinet.org/~fmco/home_en.htm unde gasiti scheme pentru decodoare de accesorii, module de feedback, centrale digitale, TCO dar si muulte alte lucruri interesante.
Toate cele bune!
 

gamitzu

Well-Known Member
Trenulist
8 Februarie 2010
1.098
81
galati
LOCATION
galati
:D Salutare. As avea o intrebare si speram ca ma putetii lamuri in sensul asta. Am un decodor cu sunet MRC, un model mai vechi, cam de 2 ani, penultimul scos de ei pt o locomotiva diesel Kato. Este drop-in, se pune in locul cablajului original de pe loco in 10 min. In afara de asta mai am 5 din aceeasi clasa, dar modelul nou pe 16 biti, tot cam la fel dpdv constructiv dar mai multe sunete si lumini. Numai primul face fitze, restul sant ok. daca il pun pe o linie scurta, merge fara probleme, am control pe el , pot sa-l programez cum vreau. In momentul cand il pun pe linia de pe diorama mea, ai vazut-o in topic, o ia razna. Porneste motorul, are sunet, da nu il vede statia sub nici o forma. Toarce motorul, luminile sant aprinse si atat. Nu il pot reseta pe modul, nu pot sa-i fac nimic. O mut iar pe linia aia de 20cm de proba, merge fara nici o problema. Are cineva vreo idee, e ceva naspa cu el ?
Am facut asta de 100 de ori si nimic. Nu am condensatori ascunsi pe firele de alimentare sau alte dracovenii. Nu inteleg. Daca nu ii dau de cap o sa fiu nevoit sa iau altul si atat, nu am ce sa-i fac. Initial ma gandeam la rezistivitatea liniei, da pun loco chiar pe zona unde sant firele cositorite si nimic. Daca o pun pe capatul ala de linie, pe o masa, merge normal fara sa-i dau reset total la cv125. Multumesc in avans,o zi buna, spor la trenulit.
 

Daniel

Active Member
Trenulist
25 Iunie 2009
181
2
Cluj-Napoca
LOCATION
Cluj-Napoca
Daca tot am atins subiectul, merita lamurit micul detaliu despre cum putem controla o locomotiva DC pe un circuit DCC.

Dupa cum puteti urmari mai sus, bitul 1 si 0 difera prin lungimea semnalului. Tehnica folosita pentru controlul locomotivelor DC (fara decodor) se numeste "0 bit streching".



In starea initiala bitul 0 e simetric (pe romaneste, segmentele + si - ale bitului sunt egale); drept urmare motorul nu poate efectua nici o miscare. In momentul in care se doreste deplasarea locomotivei, una din jumatati creste in lungime (bitul 0 se lungeste). Aplicarea unei tensiuni pozitive sau negative pe o perioada mai lunga decat complementara ei (negativa sau pozititva) va determina locomotiva sa se miste.

Important de retinut este faptul ca tensiunea de alimentare este constanta. Viteza este controlata doar prin lungimea bitului 0, care va genera "impulsuri" mai scurte (viteza mai mica) sau mai lungi (viteza mai mare).

"Lungirea" bitului 0 are loc pe orice pachet trimis. Cu alte cuvinte, daca aveti o locomotiva cu decodor si una fara pe circuit, le puteti controla independent. Cea DCC primeste comenzile normale, iar cea DC primeste impulsurile pe bitii 0 a pachetelor destinate celei DCC (sau orice alt pachet,).

Lectrua suplimentara: http://www.nmra.org/standards/DCC/standards_rps/DCCStds.html
 
  • Like
Reacții: elm

LiviuM

Well-Known Member
Trenulist
11 Martie 2011
397
0
O mica corectie pentru primul post - unitatile de masura pentru durata bitilor (0 sau 1) e us (microsecunde) nu ms (milisecunde). Daca un moderator mai poate modifica postul ala (n-am idee daca tyco mai poate) si sa stearga postul asta al meu...
LE In pozele din post e corect.