Cos'è i2c?

I2C, abbreviazione di Inter-Integrated Circuit, è un protocollo di comunicazione seriale utilizzato per la connessione di dispositivi a bassa velocità e basso consumo energetico all'interno di un sistema elettronico.

Il protocollo I2C è stato sviluppato da Philips (ora NXP Semiconductors) negli anni '80 ed è ampiamente utilizzato nell'industria elettronica per consentire la comunicazione tra diversi componenti, come microcontrollori, sensori, moduli di memoria, convertitori di dati, display LCD e molti altri dispositivi.

Le principali caratteristiche del protocollo I2C sono le seguenti:

  1. Master-Slave: nel protocollo I2C, un dispositivo Master controlla l'intera comunicazione, mentre gli altri dispositivi sono considerati dispositivi Slave, che possono essere interrogati o richiamati dal dispositivo Master.

  2. Bus bidirezionale: il protocollo I2C utilizza solamente due linee di comunicazione, chiamate linee di dati (SDA - Serial Data Line) e linee di orologio (SCL - Serial Clock Line). Entrambe le linee sono condivise da tutti i dispositivi collegati sul bus.

  3. Indirizzamento: ogni dispositivo connesso al bus I2C è dotato di un indirizzo univoco. Questo consente al dispositivo Master di selezionare un dispositivo Slave specifico per comunicare con esso.

  4. Velocità di trasferimento dei dati: il protocollo I2C supporta diverse velocità di trasferimento dei dati, come 100 kbps (kilobit per secondo), 400 kbps, 1 Mbps e persino velocità superiori a 3.4 Mbps, a seconda del dispositivo e della configurazione utilizzata.

  5. Arbitraggio: il protocollo I2C utilizza un meccanismo di arbitraggio per risolvere le situazioni di conflitto che possono verificarsi quando più dispositivi tentano di comunicare contemporaneamente sul bus.

  6. Non è necessario un segnale di clock esterno: la linea di orologio (SCL) viene generata dal dispositivo Master, eliminando la necessità di un segnale di clock esterno.

  7. Topologia a bus: il protocollo I2C supporta una topologia a bus, dove più dispositivi possono essere collegati in parallelo sulle stesse linee di dati e di orologio.

L'utilizzo del protocollo I2C offre vantaggi come una connessione semplice e a basso costo, un basso utilizzo di pin e un consumo energetico ridotto. Tuttavia, una limitazione principale del protocollo I2C è la limitata velocità di trasferimento dei dati, che può essere un ostacolo quando si richiedono comunicazioni ad alta velocità.