Che si tratti di periferiche per computer, elettrodomestici intelligenti, dispositivi Internet of Things (IoT) o dispositivi elettronici strumenti di misura, utilizzano tutti protocolli di comunicazione seriale per collegare diversi componenti elettronici insieme.

Questi componenti di solito sono costituiti da un microcontrollore e moduli slave come un sensore di impronte digitali, un ESP8266 (modulo Wi-Fi), servi e display seriali.

Questi dispositivi utilizzano diversi tipi di protocolli di comunicazione. Di seguito imparerai a conoscere alcuni dei protocolli di comunicazione seriale più popolari, come funzionano, i loro vantaggi e perché rimangono in uso.

Che cos'è la comunicazione seriale?

I protocolli di comunicazione seriale esistono sin dall'invenzione del codice Morse nel 1838. Oggi i moderni protocolli di comunicazione seriale utilizzano gli stessi principi. I segnali vengono generati e trasmessi su un singolo filo cortocircuitando ripetutamente due conduttori. Questo corto agisce come un interruttore; si accende (alto) e si spegne (basso), fornendo segnali binari. Il modo in cui questo segnale viene trasmesso e ricevuto dipenderà dal tipo di protocollo di comunicazione seriale utilizzato.

instagram viewer

Credito immagine: shankar.s/Wikimedia Commons

Con l'invenzione del transistor e le innovazioni che ne sono seguite, sia gli ingegneri che i tecnici hanno reso le unità di elaborazione e la memoria più piccole, più veloci e più efficienti dal punto di vista energetico. Questi cambiamenti richiedevano che i protocolli di comunicazione bus fossero tecnologicamente avanzati quanto i componenti collegati. Da qui l'invenzione di protocolli seriali come UART, I2C e SPI. Sebbene questi protocolli seriali abbiano diversi decenni, sono ancora preferiti per i microcontrollori e la programmazione bare metal.

UART (ricevitore-trasmettitore asincrono universale)

Il protocollo UART è uno dei protocolli di comunicazione seriale più antichi e affidabili che utilizziamo ancora oggi. Questo protocollo utilizza due fili noti come Tx (trasmissione) e Rx (ricezione) per comunicare con entrambi i componenti.

Per trasmettere i dati, sia il trasmettitore che il ricevitore devono concordare con cinque configurazioni comuni, queste sono:

  • Velocità di trasmissione: La velocità di trasmissione della velocità di trasmissione dei dati.
  • Lunghezza dati: Il numero concordato di bit che il ricevitore salverà nei suoi registri.
  • Bit di inizio: Un segnale basso che fa sapere al ricevitore quando i dati stanno per essere trasferiti.
  • Bit di arresto: Un segnale alto che fa sapere al ricevitore quando è stato inviato l'ultimo bit (bit più significativo).
  • Bit di parità: Un segnale alto o basso utilizzato per verificare se i dati inviati erano corretti o danneggiati.

Poiché UART è un protocollo asincrono, non dispone di un proprio clock che regola la velocità di trasmissione dei dati. In alternativa, utilizza la velocità di trasmissione per la temporizzazione quando viene trasmesso un bit. La normale velocità di trasmissione utilizzata per UART è 9600 baud, il che significa una velocità di trasmissione di 9600 bit al secondo.

Se facciamo i conti e dividiamo un bit per 9600 baud, possiamo calcolare la velocità di trasmissione di un bit di dati al ricevitore.

1/9600 =104 microsecondi

Ciò significa che i nostri dispositivi UART inizieranno a contare 104 microsecondi per sapere quando trasmetterà il bit successivo.

Quando i dispositivi UART sono stati collegati, il segnale predefinito è sempre elevato. Quando rileva un segnale a bassa frequenza, il ricevitore inizierà a contare 104 microsecondi più altri 52 microsecondi prima di iniziare a salvare i bit nei suoi registri (memoria).

Poiché era già stato concordato che otto bit dovevano essere la lunghezza dei dati, una volta salvati otto bit di dati, inizierà a controllare la parità per verificare se i dati sono pari o dispari. Dopo il controllo di parità, il bit di stop emetterà un segnale alto per notificare ai dispositivi che tutti gli otto bit di dati sono stati trasmessi con successo al ricevitore.

Essendo il protocollo seriale più minimalista che utilizza solo due fili, UART è comunemente usato oggi in smart card, schede SIM e automobili.

Imparentato: Che cos'è una carta SIM? Cose che devi sapere

SPI (interfaccia periferica seriale)

SPI è un altro protocollo seriale popolare utilizzato per velocità di trasmissione dati più elevate di circa 20 Mbps. Utilizza un totale di quattro fili, ovvero SCK (Serial Clock Line), MISO (Master Out Slave In), MOSI (Master In Slave Out) e SS/CS (Chip Select). A differenza di UART, SPI utilizza un formato master-to-slave per controllare più dispositivi slave con un solo master.

MISO e MOSI agiscono come Tx e Rx di UART utilizzati per trasmettere e ricevere dati. Chip Select viene utilizzato per selezionare con quale slave il master vuole comunicare.

Poiché SPI è un protocollo sincrono, utilizza un clock integrato dal master per garantire che entrambi i dispositivi master e slave funzionino sulla stessa frequenza. Ciò significa che i due dispositivi non devono più negoziare un baud rate.

Il protocollo inizia con il master che seleziona il dispositivo slave abbassando il suo segnale allo specifico SS/CK connesso al dispositivo slave. Quando lo slave riceve un segnale basso, inizia ad ascoltare sia SCK che MOSI. Il master invia quindi un bit di avvio prima di inviare i bit che contengono dati.

Sia MOSI che MISO sono full-duplex, il che significa che possono trasmettere e ricevere dati contemporaneamente.

Con la sua capacità di connettersi a più slave, comunicazione full-duplex e consumo energetico inferiore rispetto ad altri protocolli sincroni come I2C, SPI sono utilizzati in dispositivi di memoria, schede di memoria digitali, convertitori da ADC a DAC e cristalli display di memoria.

I2C (Circuito Inter-Integrato)

I2C è un altro protocollo seriale sincrono come SPI, ma con diversi vantaggi. Questi includono la possibilità di avere più master e slave, indirizzamento semplice (non c'è bisogno di Chip Select), operando con vari voltaggi, e utilizzando solo due fili collegati a due pull-up resistori.

L'I2C viene spesso utilizzato in molti dispositivi IoT, apparecchiature industriali ed elettronica di consumo.

I due pin in un protocollo I2C sono l'SDA (Serial Data Line) che trasmette e riceve i dati e il pin SCL (Serial Clock Line), che funziona come un orologio.

  1. Il protocollo inizia con il master che invia un bit di inizio (basso) dal suo pin SDA, seguito da un indirizzo a sette bit che seleziona lo slave e un bit per selezionare lettura o scrittura.
  2. Dopo aver ricevuto il bit di avvio e l'indirizzo, lo slave invia quindi un bit di riconoscimento al master e inizia ad ascoltare SCL e SDA per le trasmissioni in entrata.
  3. Una volta che il master lo riceve, sa che la connessione è stata effettuata con lo slave corretto. Il master selezionerà ora a quale registro specifico (memoria) dello slave vuole accedere. Lo fa inviando altri otto bit che specificano quale registro deve essere utilizzato.
  4. Dopo aver ricevuto l'indirizzo, lo slave ora prepara il registro di selezione prima di inviare un'altra conferma al master.
  5. Dopo aver selezionato quale specifico slave e quale dei suoi registri utilizzare, il master invia infine il bit di dati allo slave.
  6. Dopo l'invio dei dati, viene inviato un bit di riconoscimento finale al master prima che il master termini con un bit di stop (alto).

Imparentato: I migliori progetti Arduino IoT

Perché le comunicazioni seriali sono qui per restare?

Con l'avvento dei protocolli paralleli e di molti protocolli wireless, le comunicazioni seriali non hanno mai perso popolarità. In genere, utilizzando solo da due a quattro fili per la trasmissione e la ricezione dei dati, i protocolli seriali sono una modalità di comunicazione essenziale per l'elettronica che dispone solo di poche porte di riserva.

Un altro motivo è la sua semplicità che si traduce in affidabilità. Con solo pochi fili che inviano dati una volta alla volta, il seriale ha dimostrato la sua affidabilità per inviare i pacchetti completi di dati senza alcuna perdita o danneggiamento durante la trasmissione. Anche alle alte frequenze e alle comunicazioni a lungo raggio, i protocolli seriali battono ancora molti moderni protocolli di comunicazione parallela disponibili oggi.

Sebbene molti potrebbero pensare che le comunicazioni seriali come UART, SPI e I2C abbiano lo svantaggio di essere vecchi e superati, resta il fatto che hanno dimostrato la loro affidabilità in diversi decenni. Essendo i protocolli così vecchi senza alcuna reale sostituzione, suggerisce solo che sono, di fatto, indispensabili e continueranno ad essere utilizzati nell'elettronica per il prossimo futuro.

Raspberry Pi, Pico, Arduino e altri computer e microcontrollori a scheda singola

Confuso tra SBC come Raspberry Pi e microcontrollori come Arduino e Raspberry Pi Pico? Ecco cosa devi sapere.

Leggi Avanti

CondividereTweetE-mail
Argomenti correlati
  • La tecnologia spiegata
  • Utilizzo dei dati
Circa l'autore
Staff MUO

Iscriviti alla nostra Newsletter

Iscriviti alla nostra newsletter per suggerimenti tecnici, recensioni, ebook gratuiti e offerte esclusive!

Clicca qui per iscriverti