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.
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é.
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 | ||||
---|---|---|---|---|
Numéro d'article | TP240141 | TP500110 | TP500110 | TP320121 |
Protocoles supportés | I2C | I2C | I2C | I2C, MDIO, SPI single I/O |
Fonction | Adaptateur hôte maître/esclave | Adaptateur hôte maître/esclave | Adaptateur hôte maître/esclave | Moniteur de bus en temps réel |
Vitesse de l'horloge maître | 800 kHz | 1 MHz | 3.4 MHz | 24 MHz |
Vitesse de l'horloge esclave | 800 kHz | 1 MHz | 3.4 MHz | 24 MHz |
Sélection puce/esclave | 1 | N/A | N/A | Moniteur 1 slave select |
Capacité de l'esclave> | <=6 | Advanced | Ultra | N/A |
Niveau de tension (V) | 3.3-5V | 0.9-3.45 V, 5 V | 0.9-3.45 V, 5 V | 3.3-5V |
Puissance cible | 5 V, 30mA disponible | 2 Independent, 1 Programmable, (0.9-3.45 V), 1 Switchable (3.3-5V) 200mA disponible | 2 Independent, 1 Programmable, (0.9-3.45 V), 1 Switchable (3.3-5V) 200mA disponible | 5 V, 30mA disponible |
Connexion | USB pleine vitesse | USB haute vitesse, Ethernet | USB haute vitesse, Ethernet | USB haute vitesse |