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.
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.
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 | - |
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:
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:
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 | SÌ |
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.