codifica pacchetti NMRA

L'angolo degli smanettoni .Discussioni inerenti lo sviluppo di nuovi progetti DCC o l'hack di sistemi commerciali.

Moderatore: Seba55

Messaggio
Autore
alessandro7235
DCCReady
Messaggi: 16
Iscritto il: martedì 9 agosto 2005, 10:35
Scala: H0
Ho il plastico: Si
La mia centrale digitale.: Analogico
Località: Roma

codifica pacchetti NMRA

#1 Messaggio da alessandro7235 »

Salve a tutti,
Dall`articolo di Tardioli presente sul sito si dice che la codifica del bit a 1 da parte dei decoder NMRA e` dovuta a due semionde larghe 58 us e di conseguenza la codifica del bit 0 e`dovuta a due semionde larghe il doppio della precedente.
Da alcuni sorgenti che ho esaminato si specifica esattamente il contrario il bit a 0 e` quello meno largo mentre quello a 1 e` quello piu` largo.
Data l`importanza della specifica volevo sapere, da parte di chi ha implementato progetti grossi sul DCC o da qualcuno di buona volonta`, come si sono comportati rispetto a questo standard.
Grazie
Alesssandro7235

Buddace
Site Admin
Messaggi: 16428
Iscritto il: lunedì 2 febbraio 2004, 17:25
Scala: H0
Ho il plastico: Si
La mia centrale digitale.: TMWDCC TBX zDCC Lokmaus2 HornbySelect Arnold Intellibox Claudia_CommandStation
Località: Torino
Contatta:

#2 Messaggio da Buddace »

Bah in più occasioni ho analizzato il segnale DCC con oscillo e questor ispecchiava le specifiche descritte sul sito.
Fondatore e amministratore di DCCWorld

http://www.DCCWorld.com - il sito dedicato interamente ai sistemi di controllo digitale per il modellismo ferroviario.

alessandro7235
DCCReady
Messaggi: 16
Iscritto il: martedì 9 agosto 2005, 10:35
Scala: H0
Ho il plastico: Si
La mia centrale digitale.: Analogico
Località: Roma

#3 Messaggio da alessandro7235 »

Beh allora non ci dovrebbero essere dubbi.
0 largo
1 stretto
Se dai uno sguardo al sorgente nmra.c del progetto DDl linux noterai nella sezione iniziale dei commenti e precisamente alla riga 73 questa dicitura:
NMRA-0-Bit: 01 (52 usec low and 52 usec high)
NMRA-1-Bit: 0011 (at least 100 usec low and high)
il che significa
0 stretto
1 largo.
In effetti sul sorgente ci sono molte cose oscure, (innanzi tuuto non riesce a tradurre secondo le teorie dell`autore tutti i pacchetti DCC, e questa e` una cosa che non capisco proprio come abbia fatto) per cui penso che Tardioli abbia ragione. Altre conferme sono bene accette.
Grazie
Ale7235

Buddace
Site Admin
Messaggi: 16428
Iscritto il: lunedì 2 febbraio 2004, 17:25
Scala: H0
Ho il plastico: Si
La mia centrale digitale.: TMWDCC TBX zDCC Lokmaus2 HornbySelect Arnold Intellibox Claudia_CommandStation
Località: Torino
Contatta:

#4 Messaggio da Buddace »

Personalmente non ho guardato il sorgente..greenant potrebbe aiutarti,
In ogni caso non fare riferimento alla traduzione italiana di Tardioli ma guarda le specifiche direttametne su www.dcc.info
Fondatore e amministratore di DCCWorld

http://www.DCCWorld.com - il sito dedicato interamente ai sistemi di controllo digitale per il modellismo ferroviario.

alessandro7235
DCCReady
Messaggi: 16
Iscritto il: martedì 9 agosto 2005, 10:35
Scala: H0
Ho il plastico: Si
La mia centrale digitale.: Analogico
Località: Roma

#5 Messaggio da alessandro7235 »

Thank you Bud,
Ho visto le specifiche NMRA, credo che la traduzione del Tardioli sia esatta
1 stretto
0 largo.
Probabilmente il sorgente fa riferimento a specifiche vecchie, e` probabile che ci siano degli aggiornamenti in altre sezioni del codice. Se non ci sono credo che il sistema DDL linux non possa piu` funzionare con i nuovi standard.
ciao

Buddace
Site Admin
Messaggi: 16428
Iscritto il: lunedì 2 febbraio 2004, 17:25
Scala: H0
Ho il plastico: Si
La mia centrale digitale.: TMWDCC TBX zDCC Lokmaus2 HornbySelect Arnold Intellibox Claudia_CommandStation
Località: Torino
Contatta:

#6 Messaggio da Buddace »

Lo standard è cosi da parecchi anni e le DDL vanno.
Forse c'è da studiare meglio il software.
Fondatore e amministratore di DCCWorld

http://www.DCCWorld.com - il sito dedicato interamente ai sistemi di controllo digitale per il modellismo ferroviario.

alessandro7235
DCCReady
Messaggi: 16
Iscritto il: martedì 9 agosto 2005, 10:35
Scala: H0
Ho il plastico: Si
La mia centrale digitale.: Analogico
Località: Roma

#7 Messaggio da alessandro7235 »

Il sorgente nmra.c dice esattamente quello che ho detto alla riga 73.
Se le specifiche ci sono da tanto non capisco perche` l-autore del software abbia scritto in commento quelle cose (e` molto strano non credi).
Gli aggiornamenti ci sono sul sorgente in altre parti del codice.
ciao

cicocri
PlasticoDigitale
Messaggi: 805
Iscritto il: lunedì 2 febbraio 2004, 22:37
Scala: N
Ho il plastico: Si
La mia centrale digitale.: Analogico e Digitale
Località: Forli
Contatta:

#8 Messaggio da cicocri »

forse si è solo confuso... :?
PROTETTO DA
Immagine
Firma:
Non trovare difetti.... Trova rimedi e provvedi....Se puoi

Buddace
Site Admin
Messaggi: 16428
Iscritto il: lunedì 2 febbraio 2004, 17:25
Scala: H0
Ho il plastico: Si
La mia centrale digitale.: TMWDCC TBX zDCC Lokmaus2 HornbySelect Arnold Intellibox Claudia_CommandStation
Località: Torino
Contatta:

#9 Messaggio da Buddace »

Svelato l'arcano ?
Fondatore e amministratore di DCCWorld

http://www.DCCWorld.com - il sito dedicato interamente ai sistemi di controllo digitale per il modellismo ferroviario.

alessandro7235
DCCReady
Messaggi: 16
Iscritto il: martedì 9 agosto 2005, 10:35
Scala: H0
Ho il plastico: Si
La mia centrale digitale.: Analogico
Località: Roma

#10 Messaggio da alessandro7235 »

Ho chiesto informazioni tramite email all`autore del codice.
Sto in attesa di alcuni chiarimenti.
Appena avro` notizie vi faro` sapere.
ciao a tutti

alessandro7235
DCCReady
Messaggi: 16
Iscritto il: martedì 9 agosto 2005, 10:35
Scala: H0
Ho il plastico: Si
La mia centrale digitale.: Analogico
Località: Roma

#11 Messaggio da alessandro7235 »

Stufo di aspettare risposte mi sono messo a scrivere un algoritmo in PHP che compone e codifica i pacchetti DCC secondo le norme NMRA e successivamente li scrive sulla porta seriale di un PC.
Per il momento l`applicazione che ho creato contiene un pannello di controllo, attivabile tramite un browser web, in cui e` possibile comporre:

1) pacchetti per il controllo della velocita` e direzione in un decoder, ad indirizzamento 7 bit, impostato per 14/28/128 step.
2) pacchetti per il controllo luci e funzioni F1-F4
3) pacchetti per il controllo funzioni F5-F8
4) pacchetti per il controllo di un decoder accessorio, ad indirizzamento 9 bit, 8 funzioni.

L`applicazione contiene un server, attivabile sempre tramite browser web, che legge i pacchetti e li scrive sulla porta seriale del PC.

Chiaramente si tratta di una applicazione in bozza notevolmente migliorabile in cui si possono aggiungere anche algoritmi per la composizione e la codifica dei pacchetti per il service mode (lettura e scrittura CV).

Prima di effettuare miglioramenti avrei bisogno di testare l`applicazione su di un sistema digitale, siccome io ne sono sprovvisto vi chiederei se c-e` una persona di buona volonta`che in zona Roma mi potrebbe aiutare a tetstarlo (magari successivamente per questo attivero` un topic apposito).

Come potete capire e` importantissimo verificarne il funzionamento per vedere se e` il caso di andare avanti e correggere gli errori fatti.
Ciao a tutti.

Buddace
Site Admin
Messaggi: 16428
Iscritto il: lunedì 2 febbraio 2004, 17:25
Scala: H0
Ho il plastico: Si
La mia centrale digitale.: TMWDCC TBX zDCC Lokmaus2 HornbySelect Arnold Intellibox Claudia_CommandStation
Località: Torino
Contatta:

#12 Messaggio da Buddace »

Complimenti per il tuo lavoro. Ma ti so un suggerimento dettatomi dall'esperienza che do a te ma ho anche dato a chi ti ha preceduto. Prima di intraprendere la progettazione di un sistema digitale è meglio fare qualche piccola esperienza co con qualcosa di commerciale o con progetto diy già  realizzato da qualcuno.
Prima di effettuare miglioramenti avrei bisogno di testare l`applicazione su di un sistema digitale, siccome io ne sono sprovvisto vi chiederei se c-e` una persona di buona volonta`che in zona Roma mi potrebbe aiutare a tetstarlo (magari successivamente per questo attivero` un topic apposito).
La tua domanda sinceramente è poco chiara. Mi sembra di aver capito che esci dalla seriale già  con l'onda quadra DCC quinti non ti serve un sistema digitale (poi quale?) ma ti basta un semplice booster ed una locomotiva dotata di decoder. Ma in ogni caso puoi iniziare le prove utilizzando lo showdcc collegato direttamente alla seriale.
Fondatore e amministratore di DCCWorld

http://www.DCCWorld.com - il sito dedicato interamente ai sistemi di controllo digitale per il modellismo ferroviario.

alessandro7235
DCCReady
Messaggi: 16
Iscritto il: martedì 9 agosto 2005, 10:35
Scala: H0
Ho il plastico: Si
La mia centrale digitale.: Analogico
Località: Roma

#13 Messaggio da alessandro7235 »

Certo esco gia` con un`onda quadra, verificata tramite oscillo, che rispetta le codifiche NMRA per quello che e` possibile.
Quando dico per quello che e` possibile mi reiferisco al fatto che non tutti i pacchetti NMRA sono perfettamente traducibili perche` la seriale inserisce dei bit per conto suo (start e stop).

Ad esempio se devo trasmettere questa sequenza di bit 11111 non ho problemi perche` la seriale con l`ausilio dei bit di start e stop origina l`onda quadra che identifica l`esatta sequenza di bit leggibile dal decoder.

* _* _* _* _* _
_| |_| |_| |_| |_|


Ma se devo trasmettere questa sequenza 11110 con il quinto bit meno significativo pari a 0, devo trasmettere questa sequenza per incastrare i bit di start e stop della seriale

* _* _* _* _* __
_| |_| |_| |_| .... |__

questa sequenza di bit, in particolare gli ultimi cinque bit (di cui gli ultimi 4 cadono nel byte successivo), origina sequenze di onde quadre non previste nelle specifiche NMRA, per cui i decoder potrebbero non valutare il bit pari a 0 e rendere intraducibile il comando. Nelle specifiche si parla di streched 0 bit che fortunatamente mi permette di tradurre con sicurezza la maggioranza dei pacchetti ma questo non e` uno streched 0 bit dovrebbe essere uno 0 bit.

Se non fosse per questo problema sicuramente l`applicazione funzionerebbe per tutti i pacchetti altrimenti avrebbe dei problemi a codificare i byte in cui si associano 4 bit consecutivi ad 1 con il quinto bit pari a 0.

Per questo, quando nel precedente messaggio parlavo di sistema digitale mi riferivo all`opportunita` di provare l-applicazione, riguardo solo a questo possibile problema, su di un plastico o piu` semplicemente su di un ovale con una locomotiva provvista di decoder.
Non ho la possibilita soprattutto per mancanza di spazio di costruire o comprare un sistema digitale rudimentale, anche per questo chiedevo un possibile aiuto.
Solo in questo modo posso verificare cosa fa il decoder quando riceve un`onda quadra formattata in quella maniera, se legge il bit 0 allora l`applicazione e`perfetta e non necessita altri interventi strutturali, per cui si potrebbe pensare di ampliarla, altrimenti l-applicazione contiene dei bug ma funzionerebbe bene per la stragrande maggioranza dei pacchetti.
ciao a tutti e a presto.

Buddace
Site Admin
Messaggi: 16428
Iscritto il: lunedì 2 febbraio 2004, 17:25
Scala: H0
Ho il plastico: Si
La mia centrale digitale.: TMWDCC TBX zDCC Lokmaus2 HornbySelect Arnold Intellibox Claudia_CommandStation
Località: Torino
Contatta:

#14 Messaggio da Buddace »

Per questo, quando nel precedente messaggio parlavo di sistema digitale mi riferivo all`opportunita` di provare l-applicazione, riguardo solo a questo possibile problema, su di un plastico o piu` semplicemente su di un ovale con una locomotiva provvista di decoder.
Usa lo showdcc., praticamente è un decoder software che su PC ti fa vedere i pacchetti ricevuti.
Fondatore e amministratore di DCCWorld

http://www.DCCWorld.com - il sito dedicato interamente ai sistemi di controllo digitale per il modellismo ferroviario.

alessandro7235
DCCReady
Messaggi: 16
Iscritto il: martedì 9 agosto 2005, 10:35
Scala: H0
Ho il plastico: Si
La mia centrale digitale.: Analogico
Località: Roma

#15 Messaggio da alessandro7235 »

In pratica se ho capito bene:

1) dalla porta seriale faccio uscire un pacchetto contenente, in un byte, questa sequenza di bit NMRA 11110 mediante le relative onde quadre.

2) il booster riceve l`onda quadra e la manda amplificata su di un singolo binario

3) lo strumentino showDCC insieme con il relativo software legge l-onda sul binario e la trasforma nella sequenza di bit, alla stessa maniera di come avrebbe fatto un decoder di una locomotiva. Se visualizzo sul PC mediante il software showDCC la sequenza 11110 allora e` tutto corretto altrimenti no ed il decoder avrebbe reagito fregandosene completamente del comando che avrei voluto dare alla locomotiva oppure lo avrebbe valutato in un comando diverso

E` corretto tutto cio`?
Se e` corretto allora ho bisogno di:
1) un booster?
2) un binario?
3) dovrei costruirmi lo strumentino disegnato sull`help di showDCC

Vi saluto ragazzi e vi ringrazio per la pazienza di leggere i miei messaggi.

Rispondi