En-tête de protocole I2C

Bus I²C (circuit intégré)

Au début des années 80, Philips a développé le bus de données série I2C pour pouvoir contrôler facilement différentes puces dans un appareil de télévision . I2C est conçu comme un bus maître-esclave. Un transfert de données est toujours initié par un maître, l'esclave auquel on s'adresse via une adresse y répond. En raison de la simplicité du concept et du succès de sa mise en œuvre, I2C est devenu un standard. Plus de 1000 circuits intégrés différents de plus de 50 fabricants utilisent aujourd'hui la technologie I2C.

Beispiel_fuer_implentation_I2C_Bus

Fonctionnement du bus I2C

Le protocole de communication I²C utilise seulement deux lignes bidirectionnelles à collecteur ouvert ou à drain ouvert, Serial Data Line (SDA) et Serial Clock Line (SCL), qui sont élevées avec des résistances. Les tensions typiques traditionnellement utilisées étaient +5 V ou +3,3 V ; mais ces derniers temps, +2,5 V, +1,8 V et +1,2 V sont devenus plus fréquents.

Exemple d'implémentation I2C

Quel que soit le nombre d'unités esclaves connectées au bus I2C, seuls deux signaux sont connectés à tous. Par conséquent, il y a un overhead supplémentaire puisqu'un mécanisme d'adressage est nécessaire pour que l'appareil maître puisse communiquer avec un appareil esclave spécifique.

Comme toute la communication ne se fait que par deux fils, tous les appareils doivent avoir une adresse unique pour les identifier sur le bus. Les appareils esclaves ont une adresse prédéfinie, mais les bits inférieurs de l'adresse peuvent être attribués pour permettre la présence d'un multiple des mêmes appareils sur le bus.

L'avènement de l'Internet des objets ("IOT"), associé au faible nombre de broches de la communication série I2C, a entraîné une renaissance de l'utilisation de l'I2C. les applications habituelles sont la gestion des données en série, y compris le transfert de données en série vers / depuis les capteurs, la programmation des EEPROM et la récupération des données des capteurs d'appel / de réception.

Théorie du fonctionnement

I2C a un protocole maître / esclave. Le maître initie la communication. L'ordre des événements est :

L'appareil maître émet une condition de départ. Cette condition indique à tous les appareils esclaves de chercher des instructions sur la ligne de données série.
L'appareil maître envoie l'adresse de l'appareil esclave cible et un drapeau de lecture / écriture.
L'appareil esclave avec l'adresse appropriée répond avec un signal de confirmation.
La communication entre le maître et l'esclave sur le bus de données se poursuit. Le maître et l'esclave peuvent tous deux recevoir ou envoyer des données, selon qu'il s'agit d'une communication de lecture ou d'écriture. L'émetteur envoie des données de 8 bits au récepteur qui répond par une confirmation de 1 bit.
Lorsque la communication est terminée, le maître émet une condition d'arrêt qui indique que tout est terminé.

i2c-protocol

Protocole de communication I2C

Comme il n'y a que deux fils, ce protocole comprend l'overhead supplémentaire d'un mécanisme d'adressage et d'un mécanisme de confirmation

Caractéristiques

I2C possède de nombreuses fonctions importantes qui méritent d'être mentionnées. Il supporte plusieurs vitesses de données : Mode standard (100 kbps), mode rapide (400 kbps), mode rapide plus, mode haute vitesse (3,4 Mbit / s) et mode ultra rapide (5,0 Mbit / s) de communication I2C.

Les autres fonctions sont les suivantes :

  • Détection de collisions intégrée
  • adressage 10 bits
  • Soutien multi-master
  • Transmission de données (appel général).
     

Avantages et inconvénients

Comme seuls deux fils sont nécessaires, I2C convient bien aux cartes avec de nombreux appareils connectés au bus. Cela aide à réduire les coûts et la complexité du circuit lorsque des appareils supplémentaires sont ajoutés au système.

En raison de la présence de seulement deux fils, la gestion de l'adressage et de la confirmation est en outre complexe. Cela peut être inefficace dans des configurations simples, et une interface de connexion directe comme SPI peut être préférable.

aperçu des outils de développement I2C

Comparaison des modèles I2C

Aardvark-I2C-Host-adapter-small
Adaptateur Aardvark I2C/SPI

Promira I2C/SPI/eSPI Plattform
Promira I2C niveau 1

Promira I2C/SPI/eSPI Plattform
Promira I2C niveau 2

beagle i2c/spi protocol analyzer small
Analyseur de protocole I2C/SPI Beagle

Numéro d'articleTP240141TP500110TP500110TP320121
Protocoles supportésI2CI2CI2CI2C, MDIO,
SPI single I/O
FonctionAdaptateur hôte maître/esclaveAdaptateur hôte maître/esclaveAdaptateur hôte maître/esclaveMoniteur de bus en temps réel
Vitesse de l'horloge maître800 kHz1 MHz3.4 MHz24 MHz
Vitesse de l'horloge esclave800 kHz1 MHz3.4 MHz24 MHz
Sélection puce/esclave1N/AN/AMoniteur 1 slave select
Capacité de l'esclave><=6AdvancedUltraN/A
Niveau de tension (V)3.3-5V0.9-3.45 V, 5 V0.9-3.45 V, 5 V3.3-5V
Puissance cible5 V, 30mA disponible2 Independent, 1 Programmable, (0.9-3.45 V), 1 Switchable (3.3-5V) 200mA disponible2 Independent, 1 Programmable, (0.9-3.45 V), 1 Switchable (3.3-5V) 200mA disponible5 V, 30mA disponible
ConnexionUSB pleine vitesseUSB haute vitesse, EthernetUSB haute vitesse, EthernetUSB haute vitesse