Protocollo di comunicazione Arduino

Protocollo di comunicazione Arduino
I protocolli di comunicazione sono l'insieme di regole che consentono ai dispositivi di comunicare e scambiare dati. Questi protocolli sono molto significativi nella comunicazione Arduino poiché Arduino invia e riceve costantemente dati. L'uso di questi protocolli aiuta Arduino a coprire il rilevamento degli errori e possibili metodi di recupero degli errori. Questi protocolli riuniscono dispositivi analogici e digitali e consentono di progettare più progetti.

Protocolli di comunicazione Arduino

Utilizzando i protocolli di comunicazione, possiamo inviare e ricevere i dati di qualsiasi sensore in Arduino.

Alcuni sensori semplici come l'infrarosso (IR) possono comunicare direttamente con Arduino ma alcuni dei sensori complessi come il modulo Wi-Fi, il modulo di scheda SD e il giroscopio non possono comunicare direttamente con Arduino senza protocolli di comunicazione. Quindi, ecco perché questi protocolli sono parte integrante della comunicazione Arduino.

Arduino hanno periferiche multiple attaccate ad esso; Tra questi ci sono tre periferiche di comunicazione usate nelle schede Arduino.

  • Uart
  • Sp
  • I2c

Protocolli di comunicazione Arduino

La comunicazione tra diversi dispositivi elettronici come Arduino è standardizzata tra questi tre protocolli; Consente ai progettisti di comunicare facilmente tra diversi dispositivi senza problemi di compatibilità. Lavorare a questi tre protocolli sono gli stessi che servono allo stesso scopo della comunicazione, ma differiscono nell'implementazione all'interno di un circuito. Di seguito sono discusse ulteriori descrizioni di questi protocolli.

Uart

UART è noto come il Trasmettitore del ricevitore asincrono universale. UART è un protocollo di comunicazione seriale che significa che i bit di dati vengono trasferiti in forma sequenziale uno dopo l'altro. Per l'impostazione della comunicazione UART abbiamo bisogno di due righe. Uno è il pin TX (D1) della scheda Arduino e il secondo è il pin Rx (D0) della scheda Arduino. Il pin TX è per la trasmissione di dati a dispositivi e il pin RX viene utilizzato per la ricezione di dati. Le diverse schede Arduino hanno più perni UART.

Arduino Digital Pin Pin uart
D1 TX
D0 Rx

Per stabilire la comunicazione seriale usando la porta UART è necessario collegare due dispositivi nella configurazione mostrata in basso:

Su Arduino Uno, una porta seriale è dedicata alla comunicazione che viene comunemente definita porta USB. Come suggerisce il nome bus seriale universale, quindi è una porta seriale. L'uso della porta USB Arduino può stabilire la comunicazione con i computer. La porta USB è collegata ai pin di bordo TX e RX di Arduino. Usando questi pin, possiamo collegare qualsiasi hardware esterno diverso dal computer tramite USB. Arduino IDE fornisce software libreria (Softwareserial.H) che consente agli utenti di utilizzare i pin GPIO come pin seriali TX e RX.

  • UART è semplice da operare con Arduino
  • UART non ha bisogno di alcun segnale di clock
  • Il tasso di baud deve essere fissato entro il limite del 10% dei dispositivi comunicanti per prevenire la perdita di dati
  • Non sono possibili dispositivi multipli con Arduino nella configurazione di slave master con UART
  • UART è mezzo duplex, il che significa che i dispositivi non possono trasmettere e ricevere i dati contemporaneamente
  • Solo due dispositivi alla volta possono comunicare con il protocollo UART

Interfaccia periferica seriale (SPI)

Sp è un acronimo dell'interfaccia periferica seriale appositamente progettata per i microcontrollori per comunicare con loro. SPI opera in modalità full-duplex, il che significa che SPI può inviare e ricevere i dati contemporaneamente. Rispetto a UART e I2C è la periferica di comunicazione più veloce nelle schede Arduino. È comunemente usato laddove è richiesta un'elevata frequenza dati come nelle applicazioni di scheda LCD e micro SD.

I pin digitali SPI su Arduino sono predefiniti. Per Arduino Uno SPI La configurazione è la seguente:

Linea SPI GPIO Pin di intestazione ICSP
SCK 13 3
MISO 12 1
MOSI 11 4
Ss 10 -
  • MOSS sta per Padroneggiare lo schiavo, MOSI è la linea di trasmissione dei dati da master a slave.
  • SCK è un Linea dell'orologio che definisce la velocità di trasmissione e le caratteristiche di fine inizio.
  • SS sta per Slave Seleziona; Linea SS Consenti al master di selezionare un particolare dispositivo slave quando si opera in più configurazione di slave.
  • Miso rappresenta Master in Slave Out; Miso è schiavo di padroneggiare la linea di trasmissione per i dati.

Uno dei punti salienti principali del protocollo SPI è la configurazione Master-Slave. L'uso del dispositivo SPI One può essere definito come master per controllare diversi dispositivi slave. Il master è in pieno controllo dei dispositivi slave attraverso il protocollo SPI.

SPI è un protocollo sincrono, il che significa che la comunicazione è collegata al segnale di clock comune tra master e slave. SPI può controllare più dispositivi come slave su una singola linea di trasmissione e ricezione. Tutti gli schiavi sono collegati al padrone usando comune MISO Ricevi la linea insieme a MOSI Una linea di trasmissione comune. SCK è anche la linea di clock comune tra i dispositivi master e slave. Solo la differenza nei dispositivi slave è che ogni dispositivo slave è controllato tramite separato Ss Seleziona riga. Ciò significa che ogni schiavo ha bisogno di un perno GPIO extra dalla scheda Arduino che fungerà da linea selezionata per quel particolare dispositivo di slave.

Alcuni dei punti salienti principali del protocollo SPI sono elencati di seguito:

  • SPI è un protocollo più veloce di I2C e UART
  • Nessun bit di avvio e arresto richiesto come in UART, il che significa che è possibile la trasmissione di dati continua
  • Lo slave può essere facilmente affrontato a causa della semplice configurazione di slave master
  • Per ogni schiavo è occupato un perno extra su Arduino Board. Praticamente 1 master può controllare 4 dispositivi slave
  • Il riconoscimento dei dati manca come utilizzato in UART
  • Non è possibile più configurazione principale

Protocollo di comunicazione I2C

Il circuito integrato (I2C) è un altro protocollo di comunicazione utilizzato dalle schede Arduino. I2C è il protocollo più difficile e complicato da implementare con Arduino e altri dispositivi. Nonostante la sua complicazione, offre molteplici funzionalità che mancano in altri protocolli come più master e più configurazioni di schiavi. I2C consente di collegare fino a 128 dispositivi alla scheda Arduino principale. Questo è possibile solo perché i2c condivide il filo singolo tra tutti i dispositivi slave. I2C in Arduino utilizza un sistema di indirizzi, il che significa prima di inviare dati al dispositivo slave Arduino deve prima selezionare il dispositivo slave inviando un indirizzo unico. I2C utilizza solo due fili che riducono il numero complessivo di pin Arduino, ma il lato negativo è I2C è più lento del protocollo SPI.

Arduino Pin analogico Pin i2c
A4 SDA
A5 SCL

A livello hardware I2C è limitato a soli due fili, uno per una linea di dati nota come SDA (dati seriali) e secondo per la linea dell'orologio SCL (orologio seriale). Allo stato inattivo sia SDA che SCL sono tirati in alto. Quando i dati devono essere trasmessi, queste linee vengono ridotte utilizzando i circuiti MOSFET. Usando I2C nei progetti è obbligatorio utilizzare resistori pull -up normalmente un valore di 4.7kohm. Questi resistori pull -up assicurano che entrambe le linee SDA e SCL rimangono alte nel loro inizio inattivo.

Alcuni dei punti salienti principali dei protocolli I2C sono:

  • Il numero di pin richiesti sono molto bassi
  • Possono essere collegati più dispositivi di schiavi master
  • Utilizza solo 2 fili
  • La velocità è più lenta rispetto a SPI a causa di resistori di tiro
  • I resistori hanno bisogno di più spazio nel circuito
  • Complessità dell'aumento del progetto con aumento del numero di dispositivi

Confronto tra UART vs I2C vs SPI

Protocollo Uart Sp I2c
Velocità Il più lento Più veloce Più veloce di Uart
Numero di dispositivi Fino a 2 4 dispositivi Fino a 128 dispositivi
Fili richiesti 2 (TX, RX) 4 (SCK, MOSI, MISO, SS) 2 (SDA, SCL)
Modalità duplex Modalità duplex completa Modalità duplex completa Mezzo duplex
Numero di maestri-schiavi possibili Slave single-singolo singolo Slave master-multiple singoli Slave multipli multipli
Complessità Semplice Può facilmente controllare più dispositivi Complesso con aumento dei dispositivi
Bit di riconoscimento NO NO

Conclusione

In questo articolo, abbiamo trattato un confronto completo di tutti e tre i protocolli UART, SPI e I2C utilizzati in Arduino. Conoscere tutti i protocolli è importante in quanto offre infinite opportunità di integrare più dispositivi. Comprendere tutte le periferiche di comunicazione risparmierà tempo e aiuterà a ottimizzare i progetti in base al protocollo corretto.