Stabilire la Comunicazione Seriale nello Sviluppo Embedded
Indice
- Tipi di Comunicazione Seriale Comuni
1.1 UART (Universal Asynchronous Receiver-Transmitter)
1.2 I2C (Inter-integrated Circuit)
1.3 SPI (Serial Peripheral Interface)
1.4 CAN (Controller Area Network) - Software per Test e Debugging Seriale
2.1 Virtual Serial Port Driver
2.2 Serial Port Monitor
2.3 Splitter Hardware per Porte Seriali
2.4 Cavo di Monitoraggio RS232 Serial Spy - Hardware o Software per lo sviluppo di sistemi embedded seriali?
Per la sua semplicità, la connessione seriale è spesso utilizzata internamente ed esternamente nella tecnologia embedded. Esistono diversi tipi di dispositivi di comunicazione seriale nei sistemi embedded, con scopi e caratteristiche diverse. Quando si sviluppano questi sistemi, è importante scegliere il tipo giusto. Per questo motivo esploreremo e confronteremo alcuni protocolli di comunicazione seriale comuni, e suggeriremo anche alcuni strumenti universali che saranno utili indipendentemente dalla tua scelta.
Tipi di Comunicazione Seriale Comuni
UART (Universal Asynchronous Receiver-Transmitter)
UART è uno dei protocolli di comunicazione più semplici e antichi nei sistemi embedded. La connessione può essere stabilita solo tra due dispositivi. Ognuno ha un pin di trasmissione e uno di ricezione, e entrambi i canali sono unidirezionali. I dati vengono convertiti in un segnale binario e inviati in pacchetti di lunghezza byte. I pacchetti contengono anche bit di avvio e di fine, e un bit per il rilevamento degli errori.
UART è asincrono - non utilizza linee aggiuntive per inviare impulsi di clock, usando invece bit di avvio e di fine per sincronizzarsi. Molti parametri, inclusa la velocità di baud (bit al secondo), devono essere gli stessi su entrambi i dispositivi. Le velocità di baud devono essere relativamente basse per evitare la desincronizzazione. In generale, scegliere UART nei sistemi embedded rispetto ai protocolli più recenti non sarebbe una questione di miglioramento tecnico, ma piuttosto di risparmio di costi e tempo quando si lavora su prototipi o si aggiunge capacità di debug.
In alcuni casi, utilizzando un convertitore UART-to-Ethernet, i dati UART possono essere trasmessi su una rete Ethernet, abilitando la comunicazione tra dispositivi non direttamente connessi.
Applicazioni:
- Debugging spesso non richiede la complessità e la velocità di altri protocolli, e UART fornisce un modo veloce e semplice per implementarlo.
- Connessione di dispositivi ai PC tramite porte seriali o convertitori seriali-USB.
Pro: Facile da usare, potenzialmente maggiore portata di connessione.
Contro: Bassa velocità di trasferimento dati, può connettere solo due dispositivi.
I2C (Inter-integrated Circuit)
I2C consente di collegare più - potenzialmente un gran numero - di dispositivi allo stesso bus. Un bus I2C consiste in due fili - una linea di dati e una linea di clock, e ciascun dispositivo si collega ad esso con un pin di dati e un pin di clock.
Quando un dispositivo sul bus sta trasmettendo, tutti gli altri dispositivi ricevono il messaggio, quindi alcuni bit devono essere utilizzati per specificare un indirizzo. Inoltre, blocca tutti gli altri dispositivi dall'invio di messaggi, imponendo un limite rigido sulla velocità con cui i dati possono essere scambiati.
I2C è un grande passo avanti in complessità rispetto a UART, a causa della necessità di gestire la concorrenza, mentre manca delle innovazioni che aumentano la velocità dei protocolli di comunicazione più recenti nei sistemi embedded.
Applicazioni:
- Sistemi a bassa velocità che scambiano piccole quantità di dati, come letture di sensori.
- Identificazione dei dispositivi nei PC, come Serial Presence Detect sui moduli RAM e DDC per i dispositivi di visualizzazione.
Pro: Il modo più semplice per collegare più dispositivi con pieno accesso reciproco.
Contro: Lento, molto più esigente rispetto a UART.
SPI (Serial Peripheral Interface)
Come suggerisce il nome, SPI è comunemente usato per collegare più periferiche a un controller. Attualmente, questo è un tipo molto comune di dispositivi di comunicazione seriale nei sistemi embedded. Il controller sceglie quale periferica sta ascoltando, quindi scambia dati con essa. A differenza di I2C, la selezione avviene tramite linee individuali - quindi ogni nuovo dispositivo collegato ha bisogno della propria linea CS, ma la linea di clock e i dati in/dati out sono condivisi tra tutti. Esistono anche configurazioni alternative "a catena", dove una sequenza di periferiche trasmette dati l'una all'altra e condivide la stessa linea CS.
SPI è più veloce di UART grazie alla presenza di una linea di clock, e più veloce di I2C poiché è effettivamente più semplice, senza bisogno di trasmettere l'indirizzo del ricevitore con ogni messaggio o tenere conto della possibilità di più controller.
Applicazioni:
- Sistemi a corto raggio e ad alta velocità, dove c'è bisogno di collegare schede SD, display LCD, moduli RTC, ecc.
Pro: Più veloce di I2C e UART.
Contro: Nessun supporto per più controller sullo stesso bus, pin individuali necessari per ogni periferica.
CAN (Controller Area Network)
Un bus CAN consiste in due fili, ma a differenza di I2C, nessuno di essi è una linea di clock. Entrambi trasportano gli stessi dati (solo un segnale binario da qualsiasi dispositivo sul bus), e sono avvolti l'uno intorno all'altro per minimizzare gli effetti delle interferenze elettriche. In generale, CAN è adattato a distanze maggiori - mentre i bus precedenti possono estendersi per diversi metri al massimo, un bus Controller Area Network può arrivare fino a circa 40 metri.
Similmente a I2C, i dispositivi connessi - anche noti come nodi CAN - trasmettono solo se nessun altro dispositivo sta trasmettendo, e i frame di dati (i pacchetti) includono un identificatore per specificare la destinazione.
Questo bus è destinato ad applicazioni industriali, come la comunicazione nei sistemi embedded automobilistici. Prevedibilmente, la larghezza di banda è molto più bassa rispetto ai tipi di connessione menzionati, spesso di un ordine di grandezza.
Applicazioni:
- Elettronica automobilistica, con CAN che è lo standard attuale
- Altre applicazioni industriali, come le linee di produzione
Pro: Lunga distanza, alta affidabilità, implementazione semplice
Contro: Larghezza di banda ridotta
Come scegliere il tipo giusto?
Il modo migliore per determinare il tipo giusto di connessione seriale per il tuo caso è semplicemente guardare come casi simili sono gestiti da altri tecnici. È probabile che abbiano già tenuto conto delle esigenze potenziali dei loro sistemi nella scelta del protocollo. Se non lo hanno fatto, avrai almeno un buon punto di partenza e otterrai una risposta migliore affrontando i difetti nella loro scelta.
Software per Test e Debugging Seriale
Gli sviluppatori di sistemi embedded devono essere in grado di monitorare il comportamento dei loro sistemi. Un aspetto importante di questo monitoraggio è il debugging della porta seriale. Un'interfaccia seriale potrebbe essere l'unico modo per comunicare con il sistema embedded. Electronic Team, Inc. offre un pacchetto software per porte seriali completo e ricco di funzionalità che renderà il lavoro con i tuoi sistemi embedded basati su seriale molto più facile ed efficiente.
Vediamo alcuni dei migliori strumenti di sviluppo software e hardware per gli ingegneri che lavorano con porte seriali e sistemi embedded.
Virtual Serial Port Driver e Virtual Serial Port Driver PRO
Questa utile applicazione può creare porte COM virtuali con velocità di baud e connessione delle linee di segnale configurabili. Con essa, puoi facilmente trasferire l'uscita seriale da un'applicazione a un'altra.
Virtual Serial Port Driver PRO (VSPD) introduce ancora più funzionalità:
- Creazione di "connessioni bundle" che raccolgono input da più porte di input e li inviano a più porte di destinazione
- Unione di più input in una singola porta OUT
- Suddivisione di una singola porta di input per renderla accessibile a più applicazioni
- Uno Switcher automatico che sceglie automaticamente una porta libera per le app che non riescono a trovarne una
È assolutamente indispensabile se stai scrivendo software di connessione seriale o testando come il tuo hardware interagisce con il software esistente.
Monitoraggio delle Porte Seriali
Serial Port Monitor (SPM) è una suite versatile di strumenti che non solo ti consente di memorizzare e visualizzare l'input dai tuoi dispositivi seriali in molti modi diversi, ma anche di inviare dati direttamente ad esso tramite il terminale integrato.
Può:
- Reinviare lo stesso input al dispositivo da un'intera sessione con la funzione Playback
- Visualizzare i dati in vari modi, inclusi tabelle e output del terminale
- Tenersi traccia di più porte COM contemporaneamente
- Salvare tutte le informazioni delle tue sessioni negli appunti o in un file di testo
Splitter Hardware per Porte Seriali
I dispositivi fisici che possono eseguire alcune delle funzioni degli strumenti software sopra discussi sono disponibili per gli sviluppatori di sistemi embedded. È possibile ottenere cavi che permettono di condividere il segnale da una singola porta seriale con due o più dispositivi o applicazioni.
Svantaggi: Offrono meno flessibilità rispetto all'alternativa software poiché sono limitati nel numero di connessioni che possono essere rese disponibili. Un altro vincolo è la lunghezza del cavo che può essere utilizzato e il compito generale della gestione dei cavi che può diventare ingombrante man mano che cresce la necessità di condividere i segnali.
Cavo di Monitoraggio RS232 Serial Spy
I cavi di monitoraggio seriale o sniffer possono essere ottenuti e funzionano sia in modalità half-duplex che full-duplex. Funzionano fornendo un altro connettore a un cavo RS232. Un dispositivo collegato a quel terzo connettore può monitorare la comunicazione che viaggia tra le due estremità del cavo RS232. A seconda del tipo di dispositivo o applicazione collegata, potresti essere in grado di registrare i dati per un uso successivo.
DCAClab è un simulatore di circuiti elettrici online per l'educazione STEM e tecnologica, aiuta i docenti di meccatronica a spiegare i circuiti ai loro studenti con facilità. Simula e risolve problemi nei circuiti danneggiati in un ricco ambiente di simulazione, fornito di componenti realistici, oscilloscopio e multimetro realistici con varie funzioni da utilizzare.
Hardware o Software per lo sviluppo di sistemi embedded seriali?
Quando scegli gli strumenti per lo sviluppo di sistemi embedded seriali devi considerare la facilità d'uso e la flessibilità. Indubbiamente, le applicazioni software progettate specificamente per lavorare con dispositivi seriali sono più potenti e ti offrono opzioni man mano che cambia il tuo ambiente di test.
I benefici aggiuntivi di una soluzione software includono l'eliminazione della necessità di acquistare cavi costosi e la possibilità di monitorare l'attività seriale da remoto. Se sei serio riguardo allo sviluppo di sistemi embedded, dovresti dare un'occhiata a questi strumenti software. Rende la tua vita di sviluppo molto più piacevole e ti dà un vantaggio sulla concorrenza.