Per completare un prototipo funzionante di un sistema integrato possono essere necessarie alcune settimane o mesi. A volte passavo giorni interi a lavorare su una singola parte del progetto. Tuttavia, se il tuo capo ti chiede ogni giorno come procede il lavoro, può finire per distrarti e ostacolare la tua produttività. Quando ho avviato la mia azienda di progettazione, ho imparato a non ripetere questi errori nel mio team.
Come gli esseri umani, anche i sistemi integrati hanno forme e dimensioni diverse e, soprattutto, funzionalità e capacità diverse. Oltre a rispondere a un controller più in alto nella catena di comando, un sistema integrato deve svolgere in modo efficiente gli altri suoi compiti. Questo include il monitoraggio degli input, il calcolo e la conversione dei valori. Deve inoltre fornire aggiornamenti o comandi di elaborazione affidabili. Quando un sistema integrato viene costantemente interrotto dalle richieste di un altro controller, è meno efficiente. In alcuni casi ciò può causare un blocco senza preavviso.
Il modo più semplice per far comunicare i sistemi integrati tra loro è attraverso un modello di comunicazione master-slave (master slave communication). In questo caso un singolo sistema integrato viene designato come master ed è responsabile dell'avvio della comunicazione con i sistemi integrati a esso collegati. La comunicazione master-slave fa sì che i messaggi vengano trasmessi attraverso l'interfaccia di comunicazione secondo uno schema prevedibile. I controller slave non sono autorizzati a trasmettere pacchetti di dati a meno che non siano richiesti dal controller master.
Uno dei miei ultimi progetti che hanno utilizzato una configurazione master/slave è un sistema di monitoraggio per macchinari per la produzione di gomma. Su ciascuna macchina è stato posizionato un controller di monitoraggio dei sensori per sorvegliare i loro cicli operativi utilizzando vari sensori. Un controller master è stato collegato a tutti i controller del sensore e ha utilizzato la memoria non volatile per memorizzare i dati raccolti.
Per quanto semplice possa sembrare, ignorare le seguenti considerazioni di progettazione può causare problemi dopo l'implementazione.
Spesso, i controller master e slave sono alimentati da microcontroller con potenza di elaborazione variabile. Un controller master è spesso alimentato da un microcontroller più potente di un controller slave. I controller slave di solito eseguono compiti specifici, come il monitoraggio degli input dei sensori o l'azionamento di un motore, pertanto ha senso dotarli di un microcontroller di fascia media o bassa.
I programmatori che scrivono codice per il controller master non dovrebbero interrompere troppo spesso il controller slave con richieste di aggiornamento dello stato. Poiché questo ha una capacità di elaborazione limitata, l'interruzione può sovraccaricarlo. Se un controller slave non è progettato per gestire un volume elevato di richieste, può subire un overflow della memoria o dello stack e bloccarsi.
I controller Master e Slave possono operare a velocità molto diverse.
In teoria, puoi collegare il tuo controller master a tanti controller slave quanti ne consentono i loro standard di interfaccia di comunicazione. Ad esempio, RS458 può avere fino a 32 dispositivi collegati a una singola connessione. Tuttavia, nella pratica, ti consigliamo di prendere in considerazione quali effetti la connessione di un numero elevato di controller slave su un singolo canale avrà sulla velocità di recupero delle informazioni. Ad esempio, un controller slave impiega 10 millisecondi per rispondere a una richiesta. Se sono presenti 31 controller slave, occorreranno 310 millisecondi per ricevere gli aggiornamenti dallo stesso controller nel ciclo successivo. Se il controller master richiede gli aggiornamenti a una velocità maggiore, dovrai limitare il numero di controller slave collegati a un singolo canale.
I sistemi integrati configurati in modo master-slave sono spesso collegati con un unico cavo che passa da un controller all'altro. Questo metodo di cablaggio multipunto è semplice ed economico, ma mette a rischio l'intero sistema in caso di rottura del cavo. Ad esempio, un cavo che si rompe tra il quinto e il sesto controller slave riduce la comunicazione del master con i primi cinque controller slave.
Nelle applicazioni critiche, gli sviluppatori e i progettisti di sistema dovrebbero prendere in considerazione l'aggiunta di una connessione ridondante dal controller master all'ultimo controller slave del loop come alternativa. Se il controller master rileva una potenziale rottura del cavo, può attivare la connessione alternativa per ripristinare le comunicazioni.
La ridondanza nelle applicazioni critiche ripaga.
Indipendentemente dal fatto che tu stia progettando un controller master o slave, è importante scegliere il microcontroller giusto e i componenti che lo accompagnano. I software PCB come Altium Designer® e Altium Vault® consentono di accedere alle librerie dei componenti per semplificare i processi.
In caso di dubbi sull'implementazione delle comunicazioni master-slave, contatta un esperto di Altium.