I2C Info-I2C Bus, interfaccia e protocollo

I2C è un protocollo seriale per interfaccia a due fili per collegare dispositivi a bassa velocità come microcontrollori, EEPROM, A / D e D / A convertitori, interfacce I / O e altre periferiche simili in sistemi embedded. È stato inventato da Philips e ora è utilizzato da quasi tutti i principali produttori di IC. Ogni dispositivo slave I2C ha bisogno di un indirizzo – devono ancora essere ottenuti da NXP (precedentemente Philips semiconductors).,

I2C bus è popolare perché è semplice da usare, ci può essere più di un master, solo superiore velocità del bus è definito e solo due fili con pull-up resistenze sono necessari per collegare quasi illimitato numero di dispositivi I2C. I2C può utilizzare microcontrollori ancora più lenti con pin I/O generici poiché devono solo generare condizioni di avvio e arresto corrette oltre alle funzioni per la lettura e la scrittura di un byte.

Ogni dispositivo slave ha un indirizzo univoco., Il trasferimento da e verso il dispositivo master è seriale ed è suddiviso in pacchetti a 8 bit. Tutti questi semplici requisiti rendono molto semplice implementare l’interfaccia I2C anche con microcontrollori economici che non hanno un controller hardware I2C speciale. Hai solo bisogno di 2 pin I/O gratuiti e poche semplici routine i2C per inviare e ricevere comandi.

Le specifiche I2C iniziali definivano una frequenza di clock massima di 100 kHz. Questo è stato successivamente aumentato a 400 kHz come modalità veloce. C’è anche una modalità ad alta velocità che può arrivare fino a 3,4 MHz e c’è anche una modalità ultraveloce a 5 MHz.,

Interfaccia I2C

I2C utilizza solo due fili: SCL (serial clock) e SDA (serial data). Entrambi devono essere tirati su con un resistore a + Vdd. Ci sono anche i comandi di livello I2C che possono essere utilizzati per connettersi a due bus I2C con tensioni diverse.

Indirizzi I2C

La comunicazione I2C di base utilizza trasferimenti di 8 bit o byte. Ogni dispositivo slave I2C ha un indirizzo a 7 bit che deve essere univoco sul bus. Alcuni dispositivi hanno un indirizzo I2C fisso mentre altri hanno poche righe di indirizzo che determinano i bit inferiori dell’indirizzo I2C., Ciò rende molto facile avere tutti i dispositivi I2C sul bus con indirizzo I2C univoco. Ci sono anche dispositivi che hanno un indirizzo a 10 bit come consentito dalle specifiche.

l’indirizzo a 7 bit rappresenta i bit da 7 a 1 mentre il bit 0 viene utilizzato per segnalare la lettura o la scrittura sul dispositivo. Se il bit 0 (nel byte dell’indirizzo) è impostato su 1, il dispositivo master leggerà dal dispositivo slave I2C.

Il dispositivo master non ha bisogno di alcun indirizzo poiché genera l’orologio (tramite SCL) e indirizza i singoli dispositivi slave I2C.,

Protocollo I2C

In stato normale entrambe le linee (SCL e SDA) sono alte. La comunicazione viene avviata dal dispositivo master. Genera le condizioni di avvio seguite dall’indirizzo del dispositivo slave (B1). Se il bit 0 del byte di indirizzo è stato impostato su 0, il dispositivo master scriverà sul dispositivo slave (B2). In caso contrario, il byte successivo verrà letto dal dispositivo slave. Una volta che tutti i byte vengono letti o scritti (Bn), il dispositivo master genera la condizione di arresto (P)., Questo segnala ad altri dispositivi sul bus che la comunicazione è terminata e un altro dispositivo può utilizzare il bus.

La maggior parte dei dispositivi I2C supporta condizioni di avvio ripetute. Ciò significa che prima che la comunicazione termina con una condizione di arresto, dispositivo master può ripetere condizione di avvio con indirizzo byte e cambiare la modalità da scrittura a lettura.

Conclusione

Il bus I2C è utilizzato da molti circuiti integrati ed è semplice da implementare. Qualsiasi microcontrollore può comunicare con i dispositivi I2C anche se non ha un’interfaccia I2C speciale., Le specifiche I2C sono flexlible-Il bus I2C può comunicare con dispositivi lenti e può anche utilizzare modalità ad alta velocità per trasferire grandi quantità di dati. A causa di molti vantaggi, I2C bus rimarrà come una delle interfacce seriali più popolari per collegare circuiti integrati sulla scheda.

Lascia un commento

Il tuo indirizzo email non sarà pubblicato. I campi obbligatori sono contrassegnati *