2029 by S7VPvwHp

VIEWS: 10 PAGES: 28

									  ISTITUTO TECNICO INDUSTRIALE “E.MATTEI“ - URBINO




                                                               Ragazzoni Mattia

                                                               5^ A/EN

                                                               2008 - 2009




                     Tesina d’esame

            Un telecomando per plastici ferroviari


Nel mondo del ferromodellismo capita spesso di dover gestire plastici piuttosto
grandi e di doversi spostare quindi in diversi punti del tracciato per poter essere in
grado di manovrare correttamente i modelli allontanandosi perciò dal banco di
manovra. Questo radiocomando offre al ferromodellista la possibilità di gestire tutti
i modelli consentendogli di allontanarsi dalla centralina avendo, però, il controllo
dell’intero plastico sul suo palmare.




                                          1
Sommario
 Tesina d’esame ............................................................................................................................................. 1
 1)     Premesse ............................................................................................................................................... 4
 Specifiche progettuali .................................................................................................................................... 4
 2)     Schemi a blocchi. ................................................................................................................................... 5
 Schema generale ........................................................................................................................................... 5
 Radiocomando ............................................................................................................................................... 5
 Centralina ...................................................................................................................................................... 5
 Alimentatore modelli ..................................................................................................................................... 6
 Schemi a blocchi di alcuni componenti fondamentali ................................................................................... 6
 3)     Pin-out dei componenti utilizzati.......................................................................................................... 8
 4)     Schemi elettrici ...................................................................................................................................... 9
 Scheda ADC .................................................................................................................................................... 9
 Scheda DAC .................................................................................................................................................... 9
 Scheda relè .................................................................................................................................................. 10
 Alimentatore modelli ................................................................................................................................... 10
 5)     Montaggio dei componenti, master................................................................................................... 10
 Scheda ADC .................................................................................................................................................. 10
 Scheda DAC .................................................................................................................................................. 11
 Scheda relè .................................................................................................................................................. 11
 Alimentatore modelli ................................................................................................................................... 11
 Scheda di espansione modulo RF................................................................................................................. 12
 6)     Diagrammi temporali ......................................................................................................................... 12
 7)     Stesura del progetto, cenni teorici ..................................................................................................... 13
 Acquisizione dati .......................................................................................................................................... 14
 Conversione D/A .......................................................................................................................................... 15
 Microcontrollore .......................................................................................................................................... 16
 Moduli radio ................................................................................................................................................ 17
 Finali di potenza........................................................................................................................................... 17
 Alimentazioni ............................................................................................................................................... 18
 8)     Sviluppo del progetto, dimensionamento, calcoli ............................................................................. 18
 Filtri, schede A/D –D/A ................................................................................................................................ 18
 Scheda ADC. ................................................................................................................................................. 19
                                                                               2
Filtro per DAC............................................................................................................................................... 20
9)     Finali di potenza .................................................................................................................................. 21
10)        Microcontrollori, software, protocollo radio ................................................................................. 22
Struttura del pacchetto............................................................................................................................... 23
Trasmissioni eseguite .................................................................................................................................. 23
Temporizzazioni ........................................................................................................................................... 25
11)        Montaggio....................................................................................................................................... 26
12)        Collaudo finale ................................................................................................................................ 27
13)        Sviluppi futuri .................................................................................................................................. 27
14)        Manuale d’uso ................................................................................................................................ 27
15)        Bibliografia ...................................................................................................................................... 28




                                                                             3
                                                 1) Premesse
Nel ferromodellismo esistono due metodi distinti per la gestione dei plastici: il DCC e il sistema tradizionale.
Il DCC (digital command control) è un sistema di gestione digitale che utilizza un opportuno protocollo per
comunicare con i diversi modelli disposti su un tracciato utilizzando i binari stessi; su ogni modello è
montato un decoder che pilota il motore in CC e gli ausiliari presenti sul modello. Il sistema tradizionale (o
analalogico) è molto più semplice: i motori sono collegati direttamente alle rotaie e girano in funzione della
tensione ricevuta. Solitamente iniziano a funzionare con una tensione di 3V (la tensione è variabile e
dipende dalla consistenza del convoglio e dalla marca del modello) fino a raggiungere il massimo numero di
giri (e conseguentemente la massima velocità) a 14V. L’assorbimento dei modelli è solitamente contenuto
entro 1A; l’inversione di marcia viene eseguita invertendo la polarità della tensione applicata sui binari.
In questa sede trattiamo solo i modelli pilotati con il sistema tradizionale. E’ bene aggiungere che, a causa
delle perdite portate dai binari stessi e i collegamenti per portare l’alimentazione dalla centralina ai binari
(tutti quanti dotati di una resistenza interna) la velocità dei modelli è condizionata dalle condizioni del
tracciato: in salita, ad esempio, il motore va sotto sforzo, aumenta l’assorbimento; la caduta di tensione sui
binari e i collegamenti aumenta e il treno rallenta. In discesa, invece, essendo il motore a frenare il
convoglio si trova a d assorbire minore potenza e il treno accelera (in queste condizioni un modello
potrebbe partire anche con una tensione di 1V). Questo significa che non occorre avere una precisione
assoluta nella trasmissione del valore della tensione e che si possono compiere delle approssimazioni. Nella
trasmissione/ricezione della velocità del convoglio. Altro problema risulta essere il passaggio dei convogli
sui deviatoi (o scambi). In questi casi, infatti, i modelli più vecchi producono dei picchi di assorbimento che
possono raggiungere anche i 3-4A e non devono far saltare la protezione dell’alimentatore.
Altra caratteristica che accomuna i modelli odierni risulta quella di possedere i motori con un volano che
imprimono al modello una certa inerzia. Modelli di alcune ditte necessitano anche 30 cm per fermarsi (se si
toglie alimentazione quando il modello è alla massima velocità).
Per il momento tratteremo quindi solo il controllo dei modelli con sistema tradizionale alimentazione tra 0
e 14V circa e della possibilità di espandere il sistema per il controllo degli ausiliari.

Specifiche progettuali

Formuliamo dunque le specifiche del progetto:
    comunicazione stabile e sicura con segnalamento in caso di radiocomando fuori portata;
    possibilità di controllare la centralina sia sul posto che a una distanza di 50 m;
    controllo dei modelli intensione; tensione compresa tra 0 -14V, assorbimento 1A, con picchi fino
       4A, inversione di marcia, simulazione dell’inerzia del convoglio;
    blocco dell’alimentatore in caso di corto-circuito e possibilità di ripristino anche a distanza
    possibilità di future espansioni;




                                                       4
                                               2) Schemi a blocchi.
 Schema generale


    Radiocomando                 Canale trasmissivo               Centralina                      Alimentatore
         (TX)                                                       (RX)                             modelli




 Radiocomando

   Regolatore velocità                FIltro          S/H, Multiplexer,            Intefaccia            Modulo
    (potenziometro)                                          ADC                       SPI                radio
                                                        (integrati nel             (integrata
                                                          MCP3202)                  nello z8)


                                                      Interruttore per                Z8              segnalazioni
                                                         imporre la                                    luminose
                                                        direzione di                                     (LED)
                                                        marcia/ stop
                                                         emergenza

                                                                                Pulsante per
                                                                               cercare la linea




 Centralina

   Modulo                Intefaccia               DAC                     Filtro                   Alimentatore
    radio                    SPI                (MCP4922)                 attivo                      modelli
                         (integrata
                          nello z8)



Comando Relè                Z8                 segnalazioni
(inversione di                                  luminose
   marcia)                                        (LED)




                                                          5
Alimentatore modelli

Rete 220          trasformatore            Ponte                  Filtro
                   abbassatore          raddrizzatore           capacitivo
                    (220 -15V)




  Centralina            Buffer             Filtro RC          Amplificatore   Transistor di
    (RX)               (LM358)        pesante (simula             non           potenza
                                       l’inerzia) con         invertente      (BDW93C)
                                         impostabile


                                                              Retroazione
                                                               negativa




                                             Binari           Scheda Relè       Fusibile




Schemi a blocchi di alcuni componenti fondamentali


ADC (MCP3202)                                 DAC (MCP4922)




                                                6
Cip montato sul modulo radio (CYWUSB6935)




Schema a blocchi interno dello Z8




                                            7
                                  3) Pin-out dei componenti utilizzati
MCP3202                                 MCP4922                          BDW93C




Per il BDW39C: 1 = base, 2 = collettore, 3 = emettitore;

LM358                                                           LM324




BC547                                            connessioni modulo




RF



                                                           A lato le connessioni tipiche dello Z8 a
                                                           40 pin. Per il nostro progetto
                                                           ricordiamo che abbiamo utilizzato
                                                           schede di sviluppo con morsettiere in
                                                           cui venivano riportate le uscite.




                                                       8
                                              4) Schemi elettrici

NB: nella trattazione degli schemi elettrici verranno riportati solo i principali ossia la scheda ADC, la scheda
DAC, la scheda relè, l’alimentatore.

Scheda ADC




Scheda DAC




                                                        9
Scheda relè




Alimentatore modelli




                       5) Montaggio dei componenti, master
Scheda ADC




                                      10
NB: le resistenze R1 ed R5 sono state sostituite da un poticello mentre i trimmer R2 ed R6 non sono stati
montati. Questo perché occorre monitorizzare una tensione continua tra 0 e 3,3 mentre i componenti citati
fungono da attenuatori (nel caso in cui la tensione da misurare superi i 3,3V.


Scheda DAC




Sia nella scheda ADC che nel DAC c’è un ponticello da saldare (se non si vuol fare la doppia faccia)

Scheda relè

/*manca…. È ancora da fare*/

Alimentatore modelli




Componenti montati esterni:
   - BDW93C (base collegata a B+, collettore a + 18V ed emettitore a Vt)
   - Potenziometro da 10k (un terminale a 7,2V, l’altro a massa e il centrale a Vin) nel caso di utilizzo
      senza centralina dell’alimentatore
   - Potenziometro da 47k (che funge da reostato) tra PA1 e PA2


                                                      11
Scheda di espansione modulo RF




Il piedino numero 1 corrisponde a quello con il pad rettangolare come sulla board

NB: tutti i master sono in scala 1:1 visti da sopra



                                          6) Diagrammi temporali

Spendiamo due parole sui diagrammi temporali riguardanti l’SPI per il controllo del DAC, ADC e modulo RF;
Riportiamo dunque i diagrammi temporali:

DAC




ADC




                                                      12
Modulo RF: lettura di un dato




Modulo RF: scrittura di un dato




Modulo RF: scrittura di N dati (finché che si fornisce il clock)




                                  7) Stesura del progetto, cenni teorici
Come richiesto dalle specifiche occorre realizzare due moduli: un radiocomando e una centralina posta sul
tracciato stesso in grado di comandare le apparecchiature sul plastico. In questo caso le soluzioni sono
molteplici. Ad esempio si potrebbe adottare un telecomando via cavo in modo da ottenere una
comunicazione estremamente stabile anche se ancora troppo legata alla posizione dell’operatore. Altro
metodo potrebbe essere quello di una comunicazione a infrarossi ma questa non è estremamente efficace
in quanto l’operatore dovrebbe sempre rivolgere il telecomando verso la centralina su cui è posizionato il
ricevitore. Ultima possibilità è quella di utilizzare appositi moduli radio per eseguire la comunicazione radio
in grado di trasmettere e ricevere. Abbiamo utilizzato i moduli radio integrati della Cypress che integrano
anche antenne e amplificatori di potenza in un circuito stampato 2,5x2,5cm circa e numerose altre funzioni
che illustreremo in seguito. Questi moduli richiedono però di essere interfacciati mediante SPI a
microprocessore. Scegliamo quindi di adottare i microcontrollori della Zilog serie Z8F6423 che si prestano
ad essere programmati in C e offrono un buon rapporto qualità prezzo. La velocità che però occorre

                                                        13
regolare risulta essere una grandezza analogica e occorre quindi acquisirla, trasmetterla mediante il ponte
radio digitale formato dai moduli radio Cypress e riconvertirla in segnale analogico per poi essere
amplificata e raggiungere i livelli ottimali per muovere i modellini.
Si delineano così le parti fondamentali del progetto: una parte di acquisizione della velocità impostata
mediante un potenzimetro, un primo microcontrollore che elabori il segnale e, mediante opportuno
protocollo, trasmetta alla centralina i dati prelevati, un secondo microcontrollore che riceva i dati e li
elabori nuovamente, una parte di conversione dei dati digitali in un segnale analogico, un alimentatore
controllato dal uC in grado di pilotare i modelli e un circuito per la rilevazione dei picchi di assorbimento.

Acquisizione dati

La velocità è una grandezza analogica e può assumere quindi infiniti stati. Per poter rilevare questa
grandezza occorre un circuito denominato scheda di acquisizione dati. Come si può vedere dalla figura
riportata, essa possiede diversi blocchi fondamentali che ora analizzeremo. Premettiamo, però, che
esistono diversi tipi di schede multi-canale ognuna delle quali ha le sue peculiarità. Per il nostro scopo basta
conoscere la seguente scheda.
Il primo blocco che incontriamo è quello del trasduttore. Il trasduttore è un circuito in grado convertire una
grandezza fisica in una elettrica analogica (tensione, corrente, frequenza) o digitale, a scopo di misura.
Chiaramente, trattandosi del radiocomando, la velocità verrà impostata mediante una tensione regolata da
un potenziometro.
Dopo il trasduttore viene inserito un filtro. Questo è un circuito che riduce la banda del segnale. Poiché
l’acquisizione rende il segnale discreto nel tempo occorre, per un corretto campionamento, avere ben nota
la frequenza massima del segnale e prendere (per il teorema di Shannon; verrà illustrato successivamente)
prendere la frequenza di campionamento almeno due volte quella massima del segnale. In questo caso
serve solo per tutelarci dal rumore. Richiamiamo un paio di concetti sui filtri. Nel costro caso, infatti si è
scelto di realizzare un filtro del secondo ordine con approssimazione di Butterworth. Ciò significa che il
filtro ha la massima piattezza del guadagno in centro banda e, in corrispondenza della frequenza di taglio il
guadagno scende fino a -3dB rispetto al centro banda per poi iniziare a scendere con una pendenza di
40dB/dec.
Dopo il filtro viene inserito il circuito di condizionamento. Questo è un circuito analogico in grado di
adattare il segnale del trasduttore alla caratteristiche richieste dall’ADC (tensione copresa tra 0 e 3,3 V) o al
range di misura. In questo caso non serve in quanto il range di tensione è compreso tra 0 e 3,3V dato che
utilizziamo un potenziometro
Poi è presente un multiplexer analogico. Questo viene usato per utilizzare un solo ADC per più sensori ma
chiaramente, introduce un errore (in quanto non ideale) e un certo ritardo. Il multiplexer analogico può
anche essere integrato all’interno dell’ ADC, ciò dipende dal convertitore A/D utilizzato. Nel nostro caso
questo componente è integrato all’interno dell’ADC (utilizziamo MCP3202). Prima dell’ADC vi è solitamente
un circuito di Sample/Hold (campiona/mantieni). Questo blocco è estremamente importante e funge da
modulatore PAM. Serve cioè a rendere il segnale discreto nel tempo. A questo punto è bene aprire una
parentesi su questa tecnica di modulazione e sull’importanza del teorema di Shannon e del filtro. Il
modulatore PAM non è altro che un modulatore a prodotto tra un’onda rettangolare (con d.t. molto
piccolo) e il segnale modulante. Questo tipo di modulazione agisce come una modulazione AM
(modulazione d’ampiezza) con portante soppressa (DSB-SC). Se si scompone il segnale modulante col
teorema di Fourier otteniamo che il segnale modulante è esprimibile mediante la somma di infinite
sinusoidi. Come ogni DSB-SC la banda del segnale modulante si dispone simmetricamente attorno alla
portante con l’aggiunta però della banda-base del segnale come in figura.

Shannon ha notando che la banda laterale si dispone a fc – fMAX (intendendo con fc la frequenza della
portante e fMAX la massima frequenza del segnale) per evitare la sovrapposizione del segnale in banda-base
con quello di quest’ultimo occorrerà far in modo che fc – fMAX > fMAX e quindi fc > 2fMAX al limite uguale a 2
fMAX. Solitamente si prende maggiore in quando in demodulazione si utilizza un filtro reale (quindi con una
certa pendenza) per selezionare solo la banda base del segnale eliminando tutte le altre componenti

                                                       14
superflue (quindi è utile avere la banda base staccata dalle bande risultanti dalla modulazione). Altra
condizione che pone Shannon per un corretto campionamento è che il tempo di campionamento deve
essere infinitesimo.
Anche questo blocco è integrato all’interno dell’ADC da noi usato.
Infine è presente l’ADC (Analog to Digital Converter). Questo è un dispositivo in grado di convertire una
grandezza analogica (generalmente tensione) in una digitale (un numero binario, composto da quanti bit
quanti ne ha l’ADC, l’MCP3202 ne ha 12 e si interfaccia al uC mediante SPI) e quindi rende il segnale di
ingresso discreto in ampiezza. Esso opera in un ristretto range di tensione selezionabile tramite due
appositi PIN. L’ADC confronta la tensione in ingresso con quella di riferimento e sulla base di questo
confronto da in uscita 0 se la tensione di ingresso è minore o uguale al riferimento inferiore,      se la
tensione è maggiore o uguale al riferimento superiore.
Per calcolare le altre temperature è utile definire il quanto come:


Il quanto rappresenta la minima tensione in ingresso rilevabile in uscita. Rappresenta cioè l’errore dell’ADC
che dipende chiaramente dal numero di bit n che esso dispone. Nel nostro caso, avendo                = 3,3V e
12 bit il quanto risulta di 805V.

Una volta noto il quanto è possibile calcolarsi i valori intermedi (teorici) utilizzando la seguente formula:


Questa formula è utile per verificare il funzionamento dell’ADC confrontando il valore della tensione di
ingresso (misurata da un multimetro) con l’uscita presentata dall’ADC.
Esistono diversi tipi di ADC realizzati con diverse tecnologie costruttive che li rendono più o meno
performanti (tutti hanno però l’ingresso in tensione). Nel nostro caso è stato richiesto abbiamo scelto
l’MCP3202 (in quanto è risultato più stabile dell’ADC integrato nel uC della Zilog). Questi tipi di integrati
confrontano il segnale di ingresso con una rampa generata da un DAC (digital to analog converter). Quando
i due valori coincidono viene fermato il conteggio e viene presentato il dato. A causa della loro natura il
tempo di conversione non è fisso e può variare. Nel caso però di questo integrato esso risulta
estremamente rapido e risulta pari a un periodo di clock della SPI. Lo start of conversion (che indica all’ADC
quando iniziare la conversione) arriva mediante 4 bit mandati dalla SPI di cui illustreremo il funzionamento
successivamente.
Poi c’è il blocco del uC. Questo è deputato al controllo della scheda di acquisizione (gestire lo start of
conversion, seleziona il canale, gestire il sample/hold quando necessario) e all’elaborazione dati per poi
mandarli alla centralina ricevente.

Conversione D/A

Una volta elaborati quindi i dati e giunti alla centralina ricevente occorrerà riconvertirli in una grandezza
analogica. La scheda che esegue questo tipo di conversione è molto simile a quella di acquisizione e risulta
l’inverso.
Il primo blocco che incontriamo è quello del uP. Questo blocco pilota opportunamente il DAC che è il vero
cuore della conversione D/A
Il blocco successivo è il DAC (Digital to Analog Converter) che converte i bit che riceve in un segnale
analogico dato dalla seguente relazione (nel caso dell’MCP4922):


In cui Vref è la tensione di riferimento, 4096 sono i livelli (essendo un dac a 12 bit 212 = 4096) e n è il
numero da convertire. Sempre interno al DAC è presente un buffer simile al sample/hold dell’ADC che tiene
in memoria la tensione e la presenta in uscita su comando.
Infine viene inserito un filtro attivo. Questo è un circuito che seleziona la banda del segnale. Come abbiamo
illustrato precedentemente durante la trattazione dell’ADC, la banda del segnale misurato è ristretta

                                                     15
mentre quella in sucita dal DAC comprende tutto quello che esce dal modulatore PAM e tra un livello e un
altro si formerebbe un gradino che provocherebbe disturbi. Per questo motivo inseriamo un filtro attivo
dopo il DAC in grado di selezionare la banda del segnale e di amplificare il segnale fino ad un valore
ottimale.
Si tiene a precisare che nel progetto era prevista, almeno inizialmente, l’utilizzo dell’MCP4921 identico al
4922 ma differente per essere a singolo canale. La scelta è stata rivolta a quest’ultimo vista l’impossibilità di
reperire il 4921.

Microcontrollore

La parte centrale di tutto il progetto è certamente il uC della Zilog. Mediante il programma caricato al suo
interno, infatti, esso gestisce la gran parte delle operazioni (esse saranno spiegate durante la trattazione del
codice. E’ bene richiamare in questa fase i concetti base della programmazione e in particolar modo il
concetto di interruzioni.
Lo Z8 è un integrato ad alta scala di integrazione che appartiene alla famiglia dei microcontrollori. Un
microcontrollore è assimilabile ad una macchina a stati in grado di eseguire una sequenza di istruzioni
(programma) memorizzate in un dispositivo di memoria interno (solitamente una FLASH) allocate in
apposite celle. Queste celle di memoria che vengono chiamate una alla volta dal uC mediante l’address bus
e presentate come degli stati logici in ingresso sul data bus (i bus sono interni al uC). Il uC legge quindi
l’istruzione, la elabora, la esegue e punta chiama una nuova locazione di memoria. La locazione chiamata
dipende, però, dagli ingressi ricevuti e dall’istruzione eseguita: solitamente vengono eseguite in maniera
sequenziale (una dopo l’altra) ma esistono delle istruzioni che permettono di spostarsi nel programma
saltando da una locazione all’altra. La normale esecuzione delle istruzioni potrebbe essere interrotta da un
apposito segnale che prende il nome di interruzione. Nello z8 ne esiste un vettore di interruzione, ossia un
apposita regione della memoria dove è salvato l’indirizzo di inizio della routine di interruzione. Quando un
segnale di interruzione giunge al uC esso salva la locazione di memoria a cui si è arrivati e salva alla cella
indicata nel vettore. Terminata l’interruzione il codice riprende dalla locazione che era stata salvata in
memoria. Occorre precisare che un uC spesso non ha la necessità di diversi dispositivi esterni per poter
svolgere il suo lavoro. Solitamente i moderni uC sono dotati di RAM, EEPROM, FLASH (in cui salvare il
programma), contatori, moduli di interfaccia (ES: interfaccia RS-232, SPI, I2C), oscillatori interni, ecc.
Un uC si può qualificare (come potenza) in funzione delle seguenti caratteristiche: il numero di linee del
data-bus (per lo z8 sono 8), il numero dei registri interni, il numero dei bus interni e il loro delle linee che
posseggono, la frequenza di clock (per lo z8 poco meno di 20 MHz) e la consistenza del suo set di istruzioni.
Questo ultimo aspetto risulta un po’ superato ultimamente: come anticipato in precedenza lo z8 viene
programmato mediante il linguaggio C che mediante un apposito compilatore viene trasformato in codice
eseguibile dalla macchina a stati del uC.
A questo punto andiamo a descrivere alcuni dei dispositivi che lo z8 ha integrati: timer, le porte di I/O e
l’SPI. E’ bene precisare che lo z8 possiede anche un ADC a 10 bit che non è stato utilizzato in quanto risulta
più stabile quello della microchip esterno.
I timer sono dei dispositivi interni al uC programmabili secondo le esigenze dell’utente. Sono dei contatori
che contano i cicli di clock e raggiunto un certo valore viene generata un’interruzione ce fa eseguire al uC
una parte specifica di codice. Mediante questa tecnica è stato realizzato ad esempio un timer tarato per
scattare ogni 1ms (1 kHz)in grado di temporizzare le operazioni del uC e fornire la frequenza di
campionamento per l’ADC (impostata però mediante il programma a 100Hz).
Altra parte importante sono le porte di I/O. La maggior parte dei piedini dello Z8, infatti è impostabile come
ingresso o come uscita a secondo delle preferenze dell’utente. Lo Z8, consente inoltre di impostare le porte
in “funzione alternativa” ossia far gestire automaticamente la porta dalle macchine a stati interne al uC (ad
esempio scorrendo il codice si nota come la PORTC sia impostata per consentire il corretto funzionamento
della SPI). Le porte sono comunque reimpostabili durante lo svolgimento del programma.
Come precedentemente indicato i sia i moduli radio che il DAC che l’ADC utilizzano l’SPI. Questa è una
macchina a stati che utilizza quattro fili: tre gestiti dal uC e uno dal dispositivo controllato. I segnali sono
rispettivamente:

                                                       16
-SCK è il clock con cui vengono sincronizzate le operazioni; solitamente viene inserito il dato sul buffer
quando sul foronte di discesa e campionato su quello di salita. La frequenza del clock è impostabile
mediante apposito registro che gestisce un prescaler che divide il clock del uC.
-MOSI (Master Out, Slave In) è la linea di comando con cui il uC comunica con i dispositivi
-MISO (Master In, Slave Out) è la linea con cui il dispositivo comunica con il uC. Solitamente è in alta
impedenza.
-CS (Cip Select) è la linea che viene usata per abilitare un dispositivo. Chiaramente ne occorre una per ogni
dispositivo da comandare.

Moduli radio
I moduli radio da noi utilizzati sono quelli prodotti dalla Cypress. Questi moduli si sono rivelati semplici da
usare e abbastanza affidabili per le loro caratteristiche. Anzitutto essi presentano già integrato sulla loro
board antenna e amplificatori di potenza. Mediante l’interfaccia SPI si comandano i registri di
configurazione che consentono di impostare il canale (ne ha 80 a disposizione), la potenza del
trasmettitore, cosa abilitare tra trasmettitore e ricevitore, una valutazione sul rumore presente sul canale
usato, una serie di registri per impostare una chiave, registri dove impostare i dati da trasmettere, e
registri per la ricezione, registri di stato. La presenza di tutti questi registri, fa si però, che una volta
impostato il tutto basta scrivere i dati sulla SPI e il modulo radio inizia la trasmissione.
Tra i registri sopra citati trattiamo:
-il registro per la chiave. Questo in realtà è formato da 8 registri da 8 bit che contengono un numero a 64
bit. Questo numero viene trasmesso assieme al dato. In ricezione la macchina a stati interna controlla se la
chiave corrisponde. Se risultano identiche calcola il dato come valido altrimenti lo considera come rumore
di fondo. Questo fa si che si possono tenere due comunicazioni radio distinte sullo stesso canale utilizzando
chiavi diverse senza che queste due interferiscano tra di loro.
-registri di stato. Ne sono presenti due e indicano al micro quando sono arrivati nuovi dati o quando è
possibile trasmetterne di nuovi. Sono consultabili sia in polling che impostabili per generare un segnale di
interruzione sull’apposito piedino; in ogni caso vengono cancellati dopo una loro lettura.
-registri di validità dei dati. Questi risultano molto utili e indicano se parte del dato è arrivata non corretta
(a causa del rumore).
E’ bene sapere, come nota di cronaca, che il modulo radio lavora sui 2,4GHz, 1 MHz di banda a canale,
adottando una modulazione digitale su portante analogica di tipo PSK e consente una velocità massima di
trasmissione pari a 1Mbit/sec. Occorre considerare, però, che il dato viene trasferito assieme ad una chiave
a 64 bit (di conseguenza per trasmettere un byte da 8 bit si trasmettono 8 chiavi a 64) e ciò comporta una
riduzione della velocità a ben 12,5kbit/sec. È da precisare, però, che il modulo radio ha diverse
impostazioni: ad esempio si può scegliere di trasmettere solo metà della chiave: in questo modo occorrerà
trasmettere 8 sequenze da 32 bit con una velocità di 31,5kbit/sec. Altra possibilità è quella di trasmettere
metà della semichiave (16 bit) con un primo byte e la seconda metà (i rimanenti 16 bit per arrivare a 32)
con il secondo byte. In questo caso si raggiunge la velocità massima di trasmissione di ben 62,5kbit/s
impostando opportunamente i registri al suo interno.
Il trasmettitore integrato (ipostabile mediante opportuno registro) può erogare una potenza di massimo
0dBm mentre il ricevitore presenta una sensibilità in ingresso di -95dBm.

Finali di potenza

Il finale di potenza è un semplice circuito ad operazionali. Viene realizzato una configurazione non
invertente con in uscita all’operazionale un transistor per aumentare la corrente disposizione passando dai
20mA dell’LM358 fino a raggiungere i 2,5A richiesti (il transistor è un Darlinton di potenza che arriva fino a
massimo 15A). Poiché la caratteristica del transistor risulta instabile e fortemente dipendente dalla
temperatura l’anello di retroazione viene inserito dopo il collettore del trasistor (come in figura) per
rendere stabile l’uscita realizzando così un alimentatore stabilizzato. In retroazione è stato inserito anche
un condensatore che fa da filtro per le altre frequenze evitando così la presenza di rumore. Prima di questo
                                                       17
stadio è stato però aggiunto uno stadio con una rete RC molto pesante che funge da temporizzatore.
Questa temporizzazione, escludibile mediante potenziometro e fototriac, serve a simulare l’inerzia del
convoglio come richiesto da specifiche.
Altra cosa presente nel finale è l’alimentatore che fornisce potenza al circuito e infine al plastico. Esso è del
tipo più semplice possibile composto dal trasformatore abbassatore, un ponte di diodi per raddrizzare la
tensione altenrata e un filtro passa basso che mantiene stabile la tensione.
L’inversione di marcia viene realizzata mediante l’utilizzo di due relè: uno serve per attivare la marcia avanti
e uno per la marcia indietro. In caso di frenata di emergenza vengono entrambi diseccitati così che non
arrivi più potenza ai binari. Poiché lo Z8 non ha potenza a sufficienza per gestire i relè è stata realizzata una
semplice interfaccia a transistor.

Alimentazioni

Tutti i circuiti precedentemente descritti necessitano di alimentazioni diverse. Lo Z8, infatti, lavora con una
tensione massima di 3,3V mentre occorrono almeno ±5V (se poi si arriva a 12 non ci sono problemi) per gli
operazionali e almeno +18V per l’alimentatore finale e 12V per i relè.
Le soluzioni adottate sono state le seguenti: per questa prova “demo”, avendo usato la scheda integrata
per della Zilog lo stabilizzatore a 3,3V è montato su di essa. Per il radiocomando, la scheda ADC è stata
alimentata a 9 V (direttamente dalla batteria) e non è stata fornita alcuna tensione negativa (anche se ne
risulta predisposta) in quanto l’operazionale riesce ad arrivare comunque a 0V; Per la centralina è stato
utilizzato un alimentatore stabilizzato a 12V che fornisce alimentazione alla scheda DAC e ai relè.

                        8) Sviluppo del progetto, dimensionamento, calcoli
A questo punto, dopo aver illustrato lo scopo dei blocchi e il loro funzionamento teorico andiamo a
dimensionarli adottando le più opportune scelte progettuali.

Filtri, schede A/D –D/A

Le schede A/D e D/A sono state realizzati con componenti della microchip. In particolare è stato utilizzato
l’ADC siglato MCP3202 che possiede due canali e il DAC MCP4922 che possiede due DAC bufferizzati.
Entrambi sono dispositivi a 12bit interfacciabili mediante SPI. L’unica cosa a questo punto da dover
dimesionare è il blocco dei filtri e dell’adattamento in quanto i due chip non hanno bisogno di componenti
esterni per funzionare.
Come citato precedentemente una parte fondamentale delle schede di conversione A/D e D/A risultano i
filtri. In questo caso scegliamo di utilizzare filtri VCVS del secondo ordine ad operazionali. Il loro
dimensionamento è piuttosto semplice e richiede soltanto l’applicazione di poche formule fondamentali.
Altro motivo che ci spinge alla loro realizzazione è senza dubbio l’utilizzo di un singolo operazionale per
realizzare un filtro del secondo ordine avendo così il segnale attenuato 100 volte per ogni decade
(40dB/dec).
 Senza dimostrarle, è noto che, per i filtri VCVS di figura, la funzione di trasferimento risulta:




A questo punto, è utile per il dimensionamento ricavare i parametri fondamentali dei filtri ossia       .
Confrontiamo l’espressione della funzione di trasferimento con quella canonica di un filtro del secondo
ordine da cui è facile ricavarsi l’espressione dei parametri in funzione dei componenti del circuito:



Confrontando il tutto otteniamo:

                                                       18
In fase progettuale per un filtro del genere è bene tenere in considerazione questa formula che mette in
relazione il prodotto      con tutti i parametri fondamentali e con C1:




Come si può ben notare occorre scegliere opportunamente i valori dei due condensatori C 1 e C2 per far si
che il numero dentro radice risulti positivo e la radice possibile da eseguire.
Se si impone il  > 0 si ottiene che:


Per entrambi i filtri che stiamo per andare a realizzare imponiamo C2 = 100nF e C1 = 1uF. Imponiamo inoltre
il Q = 0,7 (realizzando così un filtro di Butterworth) e n = 157 rad/s ossia una frequenza di taglio di 25Hz
(frequenza più che sufficiente se si considera che non è altro che un potenziometro che deve essere girato
a mano). Il guadagno dipende invece dal filtro che andremo a realizzare.
Ultimo problema da risolvere è quello del range di tensione che gli operazionali riescono a lavorare.
Abbiamo scelto di utilizzare gli LM324 (per la scheda ADC) che contengono al loro interno 4 operazionali e
gli LM358 (per la scheda DAC) che ne contengono due. Unico problema di questi ultimi è però quello di non
essere rail-to-rail ossia di avere le tensioni di saturazione 1-2 volt inferiori (per la tensione di saturazione
positiva) o superiori (per la tensione di saturazione negativa) a quelle di alimentazione ciò significa che non
è possibile alimentarlo a 3,3V e ottenere in uscita tutto il range di tensioni (anche se arriva quasi a 0 si
fermerebbe a 2,5V massimo). Occorrerà quindi fornirgli un’altra alimentazione superiore alle tensioni
massime e minine. Per questo motivo su entrambi i circuiti sono presenti quattro pin di alimentazione che
rappresentano uno la massa, uno 3,3V (per alimentare l’ADC o il DAC) uno Vcc e l’ultimo –Vcc da applicare
all’operazionale. Vcc deve essere maggiore di 5V per un corretto funzionamento.

Scheda ADC.

In questo caso è utile avere il guadagno unitario in quanto la tensione massima misurabile per l’ADC è pari
alla Vcc. Avendo una Vcc = 3,3V occorre adattare la dinamica del segnale a quella di ingresso. Nel caso del
telecomando la tensione è prelevata direttamente da un potenzimetro quindi se si prende la Vmax = Vcc
non si hanno problemi e basterà bufferizzare l’ingresso. Nel caso però della rivelazione della tensione
erogata dall’alimentatore essa raggiunge anche 14V (stessa cosa per il convertitore corrente - tensione che
massimo fornice in uscita 12,5V che rappresentano una corrente di 2,5A). In questo caso la tensione va
ridotta mediante opportuno partitore e poi bufferizzata. Il filtro occorre quindi di guadagno unitario per far
si che in centro banda Vimax corrisponda a Vcc.
Dimensioniamo quindi il filtro partendo dalla relazione per calcolare       e ricaviamo R2:




Calcoliamo il valore della parentesi:




*R2 = 82k
Dalla formula per ricavare n ricaviamo perciò R1:




                                                      19
*R1 = 4,7k

Collaudo.
Come precedentemente indicato 25Hz è una frequenza piuttosto elevata e superflua nel mondo del
modellismo ma serve come garanzia per evitare false letture dovute ai rumori di fondo. Il collaudo è stato
eseguito fornendo un segnale sinusoidale di frequenza 2Hz, ampiezza 1V e valore medio 1,5V che è stato
perfettamente riportato in uscita al filtro. È stata fatta un’altra prova per individuare la frequenza di taglio
che risulta essere a 24Hz. Provando poi a leggere la tensione con l’ADC si è riscontrato un errore di 1-2
millivolt al massimo e la minima tensione misurata risulta 0x003 ossia 2,4mV mentre la massima 0xFFA
ossia 3,29V.

Filtro per DAC.

Nel caso del DAC occorre imprimere al filtro un guadagno. Infatti per questo circuito ricordiamo che l’uscita
risulta essere data dalla seguente equazione:


Con n il numero da convertire. Imponendo Vref = Vcc = 3,3V occorre che il filtro guadagni 2,18 per avere in
uscita una tensione di 7,2 (corrispondente alla massima tensione di ingresso per il pilotaggio
dell’alimentatore). Quindi si dimensionano i componenti usando lo stesso metodo per il precedente filtro.
Dimensioniamo quindi il filtro partendo dalla relazione per calcolare   e ricaviamo R2:




Calcoliamo il valore della parentesi:




*R2 = 120k
Dalla formula per ricavare n ricaviamo perciò R1:


*R1 = 3,3 k
Infine calcoliamo le resistenze per il guadagno. Per evitare di incappare nei valori non esatti e avere un
guadagno non esatto sostituiamo RB con una resistenza variabile da 10k considerando il valore con il
cursore a metà corsa (5k ) così da poter aumentare o diminuire il guadagno in caso di necessità




Scegliamo di prendere Ra da 68k (per prelevare meno corrente dall’operazionale). In fase di taratura
occorrerà quindi ruotare il potenziometro finché che non si raggiunge il guadagno desiderato (teoricamente
il cursore deve esser posizionato per ottenere una resistenza da 5,7k).

Collaudo.
Il collaudo è stato eseguito come per il filtro dell’ADC. È stato fornito, quindi, un segnale sinusoidale di
frequenza 2Hz ampiezza 1V e valore medio 1,5V che è stato perfettamente amplificato. È stata fatta
un’altra prova per individuare la frequenza di taglio che risulta essere a 26Hz.


                                                      20
Collaudando il tutto, però, ci si è accorti che la Vrif del DAC risulta di 2,61V (forse a causa della basetta
riuscita male) e ciò sfalsa i valori trasmessi. E’ stato eseguito un ponticello con cavo per rimediare al
problema.
Precisiamo, inoltre, che sono stati realizzati i filtri per entrambi i due canali del DAC anche effettivamente
era necessario uno solo. Questo perché rende la scheda riutilizzabile (previa riprogettazione del filtro)
anche per altri progetti.


                                            9) Finali di potenza
Come illustrato dallo schema a blocchi la scheda dei finali di potenza sembra la più complessa mentre, in
realtà il suo dimensionamento è risultato assai semplice. Si tiene a precisare che per realizzarla è stato
preso spunto dalla rivista di nuova elettronica aggiungendo piccole modifiche. La tensione di alimentazione
è data da un trasformatore da 15V, 50W in grado di erogare al massimo 3,3A. Il filtro capacitivo è stato
dimensionato utilizzando la seguente formula:



Si tiene a precisare che, quando si raddrizza l’alternata e la si stabilizza mediante filtro capacitivo la
tensione di uscita diventa                quindi si ottengono poco meno di 20 V (ricordiamo che il ponte
raddrizzatore ha una perdita di 1,4V e che la tensione oscilla entro un certo ripple). Inizialmente era stato
previsto uno stabilizzatore per l’operazionale ma è stato in seguito eliminato in quanto non si riuscivano più
a raggiungere i 14V in uscita (ricordiamo che la base del transistor deve trovarsi ad 1,4V il più della tensione
del collettore e chel’operazionale necessita almeno di un volt in più per non saturare). Di conseguenza
avviamo un       di circa 2,5V, una    di 19,75V circa e una di circa 7 (si è considerato un assorbimento
di 1A a 14V). La capacità risulta:



Scegliamo di utilizzare due condensatori elettrolici da
Viene realizzato una configurazione non invertente con in uscita all’operazionale un transistor per
aumentare la corrente disposizione passando dai 20mA dell’LM358 fino a raggiungere i 1A richiesti (il
transistor è un Darlinton di potenza che arriva fino a massimo 15A).
Chiaramente questo circuito può sostenere tranquillamente dei picchi fino a 4A senza poter erogare però la
massima tensione (14V)
E’ stato aggiunto nell’alimentatore anche uno stabilizzatore di tensione a 7,2V (formato da un diodo zener,
una resistenza da 1k di protezione e due condensatori di filtro per abbattere il tipico rumore della tensione
stabilizzata con lo zener) che consente all’alimentatore di funzionare correttamente anche senza centralina.
Infatti, mediante potenziometro da 10k è possibile regolare la velocità anche sul posto oppure consente
l’utilizzo della scheda dell’alimentatore separatamente rispetto alla centralina. Qui si comprende l’utilità del
buffer posto prima della rete RC. Quest’ultima è stata dimensionata con un  (quando è inserito
completamente il potenziometro) di ben 10 secondi facendo si che il treno impieghi quasi un minuto per
passare dalla velocità minima al massimo. Questa temporizzazione rende abbastanza l’inerzia del treno
soprattutto su piccoli plastici. Come precauzione, però è stato inserito il transistor T1 per comandare
rapidamente la frenata del treno in quanto porta a quasi 0 la tensione in ingresso al finale. Questa parte,
momentaneamente non utilizzata, è in realtà molto utile per bloccare il convoglio mediante pulsante o
interruttore.
L’ultimo stadio col transistor e l’operazionale in configurazione non invertente è stato dimensionato per
avere un guadagno leggermente superiore a 2 e portare la tensione da 7,2V a 15V.
Ricordiamo infatti che il guadagno dell’amplificatore non invertente risulta (facendo specifico riferimento al
circuito da noi realizzato:



                                                      21
Il transistor che invece pilota i due relè è un BC547 con hFE teorico di circa 800. Realizziamo i calcoli per farlo
lavorare in saturazione sapendo che il relè ha una resistenza interna (resistenza della bobina) di circa
250e una corrente a regime fi circa 48 mA
Calcoliamo perciò la corrente teorica che deve scorrere sulla base:




Poiché il guadagno non è stabile e la tensione in uscita dallo z8 potrebbe variare (si è arrivati a misurare a
volte una tensione di 3,20V si sceglie di imporre una resistenza di base di 1,2K.

Collaudo

Il collaudo è stato eseguito con una resistenza di potenza in modo da far esprimere all’alimentatore tutta la
sua potenza (con i modelli a mia disposizione il massimo assorbimento è 200mA). L’unico problema
riscontrato è il surriscaldamento del transistor di potenza che è stato montato su un dissipatore troppo
piccolo.




                       10)         Microcontrollori, software, protocollo radio
La parte più importante del progetto viene eseguita dal codice del microprocessore. All’interno del
programma è presente una prima parte relativa alle inizializzazioni in cui vengono inizializzate le porte, i
timer, le interruzioni e il modulo radio. Successivamente inizia il ciclo infinito diviso in due: una di
acquisizione dei dati (controllo se è arrivato qualche nuovo dato sul modulo radio e viene letto l’ADC) e di
calcolo (verifica dati ricevuti dal radiocomando, calcolo dei valori letti e dei dati da trasmettere) e una di
trasmissione in cui entra in funzione il protocollo.
E’ bene spendere due parole sul protocollo utilizzato in quanto è la parte principale del programma.
Questo sistema consente a più radiocomandi di comunicare ad una apposita centralina la quale, in base ai
comandi ricevuti eseguirà diverse funzioni. Per semplicità verrà trattato un singolo radiocomando ma,
come richiesto nelle specifiche questo protocollo presenta la possibilità di espansioni consentendo la
connessione di un massimo di 16 radiocomandi ognuno dei quali potrà eseguire tutte le funzioni.


Per questo ricetrasmettitore esso può eseguire:
        Imporre la direzione del mezzo e richiedere le letture di corrente e tensione in uscita
            all’alimentatore
        Frenata d’emergenza e ripristino
        Un comando per impostare la tensione di uscita dell’alimentatore
        Un comando per prendere il controllo della linea (considerando il fatto che si possono avere più
            ricetrasmettitori collegati assieme è necessario che un radiocomando assuma il controllo per
            poi rilasciarlo una volta compiuta l’operazione);
        Un comando per il controllo della linea per controllare che tutti i radiocomandi risultino a
            portata
        Un byte di conferma (dopo ogni comunicazione) e un byte di richiesta di nuova trasmissione

Tutti i comandi devono essere accompagnati da un byte di CRC. Il comando deve essere composto dalla
somma dei due byte trasmessi (se sono due) e deve essere realizzata l’EXOR con 0xFF. In ricezione se i due
CRC corrispondono deve essere inviato un byte di conferma, altrimenti un byte di errore.
Il protocollo deve essere in grado di garantire la connessione tra i radiocomandi e la centralina e di
segnalare ogni qual volta un radiocomando si disconnette dandogli la possibilità di riconnettersi.
                                                        22
Altra cosa importante richiesta è la stabilità della comunicazione. Il radiocomando, quando si aggancia inizia
un conteggio (che dura 4 secondi) entro il quale deve ricevere una risposta dalla centralina. Se la centralina
non chiama il radiocomando esso va in fuori portata e poco dopo anche la centralina elimina il
radiocomando dalla lista dei radiocomandi attivi

Struttura del pacchetto

Sono previsti due pacchetti base. I primi 4 bit corrispondono al comando (contrassegnati con C). Esistono
16 comandi possibili da impartire. I restanti bit corrispondono al dato da trasmettere (contrassegnati da D)
ma nulla vieta di utilizzarli come parte finale del comando. Esistono comandi che richiedono per la loro
attuazione 12 bit (controlli in tensione, impostazione della velocità, segnali) e altri solo 4. Di conseguenza è
possibile distinguere tra un byte “corto” e uno “lungo” Tutti quanti sono accompagnati da un carattere di
controllo errore. Ad ogni modo il comando deve essere lungo massimo 2 byte più il CRC.
Seguono i due possibili prototipi dei caratteri trasmessi e i prototipi dei comandi (tabella):

comando “corto”                                  Comando “lungo”
CCCC DDDD EEEE EEEE                              CCCC DDDD DDDD DDDD            EEEE EEEE

Tabella comandi:
Codice                        Funzione
0001 ddXX                     Direzione
0100 DDDD DDDD DDDD           Imposta la tensione di uscita dall’alimentatore selezionato
0101 BBBB ( RRRR 0101)        Controllo linea
0110 0110                     Richiesta nuova trasmissione (RNT)
1000 AAAA                     Lasciare il controllo dell’alimentatore
1001 1001                     Trasmissione ricevuta correttamente (TRC)
1010 RRRR                     Richiesta linea
1111 1111 1111 1111           Segnale di configurazione (o di linea)
Legenda:
        - “RRRR” indirizzo del radiocomando (essendo a 4bit massimo 16 radiocomandi)
        - “BBBB” se è 0000 indica la linea libera (per tutti i radiocomandi), se è 1111 indica la linea
           occupata, 0101 concede la linea a un dispositivo , 1010 chiamata al radiocomando, 0011 = linea
           persa (radiocomando fuori portata chiede di agganciarsi), 1100 = l’indirizzo del radiocomando è
           già in uso e la centralina ne fornisce uno nuovo al radiocomando (contenuto nel secondo byte)
        - “D” bit di un generico dato
        - “dd” 00 = treno fermo, 01= avanti, 10 = indietro, 11 Non consentito
        - “X” stato indifferente

Per una più semplice stesura del software è stato considerato solo il pacchetto lungo. Quelli corti sono stati
ottenuti ponendo semplicemente a 0 i bit del secondo byte.

Trasmissioni eseguite

D’ora in avanti intenderemo con Tx il radiocomando e Rx la centralina. E’ stata tralasciata (negli esempi) la
trasmissione del byte di errore che deve seguire ogni trasmissione e viene ipotizzata comunicazione ideale
(i dati vengono sempre ricevuti corretti).
Mediante questo protocollo deve essere effettuata una delle seguenti trasmissioni:
         - Ricerca radiocomandi (per vedere se tutti i radiocomandi sono a portata). Questa viene
             eseguita ciclicamente a intervalli di 1,5s e rivolta solo ai radiocomandi operativi. Essa può
             essere eliminata se prima dello scadere del tempo limite la centralina deve trasmettere dei
             dati. Se il radiocomando non risponde (la risposta può anche essere una richiesta di nuova
             trasmissione eseguita prima dell’inizio di questa trasmissione) viene eliminato dall’elenco.
                                                      23
        -   Richiesta di aggancio per radiocomandi che erano andati fuori portata o appena avviati (questa
            comunicazione parte premendo il tasto TEST sulla scheda dello Z8). Una volta ricevuto dalla
            centralina essa raggiunge il radiocomando alla lista di quelli connessi.
        -   Trasmettere la tensione letta solo se quest’ultimo valore non coincide con l’ultimo trasmesso
        -   Trasmettere la direzione

 * E’ bene precisare che al momento dell’accensione la centralina non considera alcun radiocomando.
Saranno questi ultimi che con opportuna chiamata segnaleranno la loro presenza.

Ricerca radiocomandi

La ricerca radiocomandi è una prassi che la stazione esegue ad intervalli di circa 1,5s. Se il radiocomando
non riceve questa sequenza di comandi dopo 4 secondi finisce in “fuori portata” e la comunicazione radio
viene disabilitata (occorre rifare la richiesta di aggancio). Se la centralina non riceve la risposta dal
radiocomando lo elimina dalla lista dei radiocomandi in funzione.

       Codice trasmesso              Descrizione
Rx     0101 1010 RRRR 0101           La centralina chiama il radiocomando RRRR
Tx     1001 1001                     Trasmissione ricevuta correttamente
Tx     1111 1111                     Segnale di linea
Rx     1001 1001                     Trasmissione ricevuta correttamente

Qualora il radiocomando, durante una ricerca radiocomandi non risponda la centralina lo mette come
“radiocomando fuori portata” e toglie l’alimentazione ai modelli (imposta la tensione di uscita a 0 e
diseccita i relè di inversione di marcia). Questa è una precauzione necessaria per evitare che i preziosi
modellini si possano schiantare rovinandosi.
Occorre precisare, inoltre che questa comunicazione vale per il TX come una conferma di linea libera.

Richiesta di aggancio

Questo è l’unico caso in cui il radiocomando per prendere la linea non utilizza un comando di richiesta linea
ma bensì un codice di controllo linea . Questo è stato fatto per semplificare il codice che andrà ad eseguire
il protocollo.

       Codice trasmesso              Descrizione
Tx     0101 0011 RRRR 0101           Il ricevitore chiama la centralina
Rx     1001 1001                     Trasmissione ricevuta correttamente
Rx     1111 1111                     Segnale di linea
Tx     1001 1001                     Trasmissione ricevuta correttamente

Richiesta di aggancio: due radiocomandi entrano in conflitto

Poiché questo progetto consente, almeno in teoria la connessione di 16 radiocomandi
contemporaneamente potrebbe capitare che due radiocomandi abbiano lo stesso nome; in questo caso la
centralina ne assegna uno nuovo.

       Codice trasmesso              Descrizione
Tx     0101 0011 RRRR 0101           Il ricevitore chiama la centralina con un comando di linea
Rx     1001 1001                     Trasmissione ricevuta correttamente
Rx     0101 1100 RRRR’ 0101          La centralina comunica il nuovo indirizzo RRRR’ al radiocomando RRRR
Tx     1001 1001                     Trasmissione ricevuta correttamente


                                                      24
Trasmissione dei dati: Imposta tensione e direzione del treno

Tutte le trasmissioni dati hanno la stessa struttura. Si inizia con una richiesta di comunicazione da parte del
trasmettitore. La centralina concede così la linea e può avvenire lo scambio dei dati. Una volta terminato il
radiocomando provvederà a inviare un codice di “linea libera” alla centralina. Sarà quest’ultima che
informerà i vari radiocomandi dell’avvenuta linea libera (questa funzione non è momentaneamente
implementata in quanto non si dispone di due radiocomandi). Questa sequenza di comandi può essere
eseguita sia dal radiocomando che dalla centralina (come illustrato in seguito anche se con piccole varianti).
In questa sequenza è fondamentale che la seconda parte risponda con un codice di canale aperto altrimenti
il radiocomando rimane in attesa. Al massimo può trasmettere un RNT.

        Codice trasmesso              Descrizione
Tx      1010 RRRR                     Il radiocomando RRRR richiede la linea
Rx      1001 1001                     Trasmissione ricevuta correttamente
Rx      0101 0101 RRRR 0101           Canale aperto per il radiocomando RRRR
Tx      1001 1001                     Trasmissione ricevuta correttamente
Tx      0001 ddXX                     Imposta direzione, se visualizzare corrente o tensione erogata
Rx      1001 1001                     Trasmissione ricevuta correttamente
Tx      0100 DDDD DDDD DDDD           Imposta la tensione (12 bit di risoluzione)
Rx      1001 1001                     Trasmissione ricevuta correttamente
Tx      0101 0000 RRRR 0101           Il radiocomando lascia la linea libera
Rx      1001 1001                     Trasmissione ricevuta correttamente


Temporizzazioni

Trattandosi di una comunicazione radio su unico canale di tanti radiocomandi e un’unica centralina occorre
disciplinare il tutto. Per fare ciò ci sono 2 comandi appositi che sono la “richiesta linea” e il “controllo
linea”. Ogni volta che viene trasmesso una “richiesta linea” i radiocomandi controllano a chi è rivolto
questo controllo: se sono stati chiamati allora rispondono alla centralina altrimenti scartano tutte le
istruzioni che ricevono.
Fino a questo punto abbiamo considerato il canale da noi usato ideale. Potrebbe capitare, però che un
radiocomando non riceva il segnale di “richiesta linea” e si metta a trasmettere mentre è in corso un’altra
trasmissione. In questo caso, appena la centralina riceve il comando della “richiesta linea” del nuovo
trasmettitore, deve trasmettere immediatamente il codice di “linea occupata” specificando                       il
radiocomando a cui viene lasciata la linea. Nel caso in cui la macchina a stati vada in “crisi” in quanto è stata
alterata la procedura il componente che ha riscontrato questa condizione può inviare (sempre che abbia il
canale libero) il codice di emergenza con istruzione di invalidare i dati appena ricevuti (0000 0011) e
riavviare la comunicazione da capo. Questo comando non è obbligatorio ma è consigliato. E’ bene precisare
che se il radiocomando riceve un comando diverso dal controllo linea o alla richiesta linea deve andare in
attesa.. Scaduto questo tempo senza aver ricevuto una risposta il radiocomando deve andare in “fuori
portata”. Seguono esempi per maggiori chiarimenti. Entrambi riprendono la comunicazione
precedentemente illustrata “Imposta tensione e direzione del treno”. Evidenziate in rosso le parti
aggiuntive.


Trasmissione dei dati: trasmissione non ricevuta correttamente

        Codice trasmesso               Descrizione
Tx      1010 RRRR                      Il radiocomando RRRR richiede la linea
Rx      1001 1001                      Trasmissione ricevuta correttamente
Rx      0101 0101 RRRR 0101            Canale aperto per il radiocomando RRRR

                                                       25
Tx     1001 1001                      Trasmissione ricevuta correttamente
Tx     0001 ddVI                      Imposta direzione, se visualizzare corrente o tensione erogata
Rx     1001 1001                      Trasmissione ricevuta correttamente
Tx     0100 DDDD DDDD DDDD            Imposta la tensione (12 bit di risoluzione)
Rx     0110 0110                      Richiesta nuova trasmissione
Tx     0100 DDDD DDDD DDDD            Viene ritrasmesso il dato precedente
Rx     1001 1001                      Trasmissione ricevuta correttamente
Tx     0101 0000 RRRR 0101            Il radiocomando lascia la linea libera
Rx     1001 1001                      Trasmissione ricevuta correttamente

Altro grave problema riscontrato durante i test è stata la non affidabilità dell’interruzione dei moduli radio.
Per questo motivo si è dovuti andare a testare i registri di configurazione a polling. Come precedentemente
accennato nella trattazione teorica il modulo radio impiega (teoricamente) 64ns per trasmettere un
comando di 8 bit. Per essere sicuri si è realizzata una temporizzazione che va a leggere il modulo radio ogni
millisecondo (è per essere estremamente sicuri di ricevere il byte correttamente). In trasmissione, invece,
viene trasmesso un byte ogni 5ms facendo si che una trasmissione completa (tra avviamento del
trasmettitore, trasmissione di tre byte e ripristino della ricezione) duri attorni ai 22 ms con una riduzione
della velocità di trasmissione a poco più di 1kbit/s. Chiaramente, anche se questa temporizzazione sembra
eccessiva è stata resa necessaria per un rapido sviluppo del progetto.
Altro problema chiave a questo punto risulta quello della trasmissione della tensione. Infatti leggendo 12
bit ogni 10 ms occorrerebbe una velocità di trasmissione di 1,2kbit/s troppo elevata per la nostra
trasmissione. C’è da dire, però che non occorre trasmettere sempre la tensione in questione: nel
modellismo non occorre, infatti sottoporre il treno a continue acelereazioni/decelerazioni e spesso e
volentieri il treno viaggia a velocità costante. E’ stato scelto perciò di trasmettere la tensione rilevata sul
potenziometro solo se strettamente necessario (ossia quando varia) ricordandoci, però che essa varierà con
lentezza e che nella parte finale dell’alimentatore è presente un filtro molto pesante che simula l’inerzia del
convoglio come richiesto da specifiche.
Altri commenti relativi al codice utilizzato sono riportati nei relativi file come commenti.


                                            11)         Montaggio
Il progetto qui presentato non è nella sua forma definitiva ma solo un progetto dimostrativo per vagliare le
potenzialità di questo sistema. Per questo motivo non sono state realizzate delle schede integrate
contenenti il microcontrollore e si sono utilizzate le schede di viluppo Zilog poco eleganti e ingombranti.
Conseguentemente per montare e collaudare il tutto abbiamo semplicemente collegato ai rispettivi pin del
PORTA e PORTC i cavi come indicato sotto nella tabella (attenzione la tabella varia chiaramente se si tratta
del TX o dell’RX).

Per l’RX                                                           PA2              led verde
PORTA C                                                            PA5              Marcia indietro
                                                                   PA6              Marcia avanti
        PC0             interruzione da pulsane                    PA7              Reset modulo radio
        PC1             abilitazione ADC
        PC3             SCK                                Per il TX
        PC4             MOSI                               PORTA C
        PC5             MISO
                                                                   PC3              SCK
PORTA A                                                            PC4              MOSI
                                                                   PC5              MISO
        PA0             led rosso                                  PC6              abilitazione DAC
        PA1             led giallo                                 PC7              LDAC
                                                      26
                                                                      PA2               led verde
PORTA A                                                               PA3               Marcia indietro
                                                                      PA4               Marcia avanti
         PA0             led rosso                                    PA7               Reset modulo radio
         PA1             led giallo
NB: i led sono integrati nella scheda di sviluppo dello z8

Altra parte importante (e non esplicitata negli schemi) è per i finali di potenza. Infatti è stato omesso il
transistor di potenza in quanto esso va montato su aletta di raffreddamento esterna. Esso va collegato nel
seguente modo: collettore a +18V, base al pad B+ ed emettitore al pad Vt. Sempre dal collettore deve
partire un cavo che va al pad “+” della scheda relè mentre il “-“ sempre della stessa scheda va collegato a
massa (dell’alimentatore).
Sempre nello schema occorre aggiungere (sempre esterno) il potenziometro relativo all’accelerazione tra i
pad PA1 e PA2; se non si vuole utilizzare questa funzionalità si può omettere cortocircuitando i due piedini.
A questo punto il condensatore C9, il foto accoppiatore e le sue due resistenze non servono più.

                                           12)         Collaudo finale
Oltre ai vari collaudi delle singole schede (illustrati volta per volta) è stata fatta una fase di collaudo
generale mandando in run il programma di entrambi i microcontrollori e valutando la risposta effettiva dei
modelli su pista. E’ stato provato che il radiocomando rimane a portata (all’interno di una abitazione) anche
in stanze non adiacenti e che si riescono a coprire una trentina di metri in totale libertà e sicurezza.
E’ stato eseguita, inoltre, una prova di 2 ore per verificare to quante volte il TX o l’RX richiedano una
ritrasmissione del pacchetto (nel caso di ricezione non corretta) e sorprendentemente tutti i dati trasmessi
sono stati ricevuti correttamente.

                                           13)          Sviluppi futuri
Come si può notare alcune parti del progetto sono state sviluppate in maniera grossolana. Questo è
avvenuto in quanto, come già detto, il progetto è solo una demo per valutare le potenzialità del sistema.
Mediante un protocollo più elaborato, si intende però aggiungere delle funzionalità utili al modellista.
Le elenchiamo qua sotto:
     Possibilità di controllare dispositivi statici. Per dispositivi statici si intendono le infrastrutture tipiche
        di un impianto modellistico: passaggi a livelli dinamici, segnali luminosi, posizioni dei deviatoi,
        piattaforme girevoli.
     Possibilità di controllare più alimentatori. In questo modo quando due radiocomandi si agganciano
        possono controllare due alimentatori distinti; è anche utile un comando per prendere e rilasciare il
        controllo degli stessi
     Possibilità di avere dei dati di ritorno. Essenzialmente questi dati risultano soprattutto come la
        posizione dei vari dispositivi statici lungo il tracciato (ad esempio l’aspetto del segnale successivo
        simulando così la ripetizione segnali presente sulle odierne locomotive)
     Visualizzazione su radiocomando dell’effettiva tensione di uscita dei dispositivi e dell’assorbimento
     Possibilità di gestire i modelli mediante il metodo DCC
     Utilizzo delle piene capacità dei moduli radio arrivando ad una comunicazione a 62,5kbit/s. Questo
        si renderà necessario vista la mole di dati da ricevere e trasmettere a più radiocomandi.

                                           14)          Manuale d’uso
Per un corretto funzionamento occorre:
     Accendere la centralina e l’alimentatore (si deve accendere la luce rossa e quella gialla inizia a
        lampeggiare
     Accendere il radiocomando (si accende la luce rossa)
                                                  27
     Premere il tasto TEST del radiocomando. Esso inizierà a trasmettere alla centralina. Se l’operazione
      va in porto il del rosso inizierà a lampeggiare (non a una frequenza fissa ma casuale) e quello vede
      si accenderà. Se invece si accendono led rosso e giallo contemporaneamente significa che non si è
      abbastanza vicini per effettuare una comunicazione; se si accende solo il led giallo (non dovrebbe
      succedere ma a volte è successo) significa che il modulo radio è andato in tilt. Occorre spegnere e
      riaccendere il trasmettitore
     Una volta che è stata presa la rete sia radiocomando che centralina hanno il led verde acceso e il
      rosso lampeggia.
     A questo punto è possibile posizionare l’interruttore della marcia e ruotare il potenziometro della
      marcia. In entrambi i casi il led rosso lampeggerà per segnalare l’avvenuta trasmissione (più che un
      lampeggio è un flash dato che dura un centinaio di millisecondi)
     Se si spegne il led verde e si riaccende quello rosso significa che il radiocomando è fuori portata; La
      centralina attiva il led rosso solo se tutti i radiocomandi che controlla sono fuori portata
     Per comandare l’arresto di emergenza (senza considerare gli effetti dell’inerzia) basta posizionare
      l’invertitore di marcia al centro (marcia neutra) e la centralina disattiverà i relè del controllo della
      direzione bloccando il treno.


                                          15)          Bibliografia

Per la stesura della tesi sono stati consultati i seguenti testi:
         - Telecomunicazioni (volume B), Zanichelli editore;
         - L’elettronica Applicazioni, L’elettronica Analogica, Tramontana editore,
         - Tecnologia e disegno per la progettazione elettronica (volumi 1, 2, 3), Tramontana editore;
         - Linguaggio C++, Pentrini editore;
         - Imparare l’elettronica partendo da Zero, Nuova Elettronica editore;
         - Riviste nuova elettronica
         - Datasheet dei vari componenti utilizzati

Si ringraziano per la collaborazione Massimo Zandri, Francesco Renzini e Silvana Arduini.




                                                     28

								
To top