Présentation et avantages du bus I2C
Développé par Philips dans les années 1980, I2C (également orthographié I2C) est devenu l’un des protocoles de communication série les plus couramment utilisés en électronique. I2C facilite la communication entre les composants électroniques ou les circuits intégrés, que ces composants soient sur le même PCB ou connectés par des câbles.
Mwnuk / CC BY 2.0 / Wikimedia Commons
Qu’est-ce que le protocole I2C ?
I2C est un protocole de communication série qui ne nécessite que deux lignes de signal. Il est conçu pour la communication entre les puces sur une carte de circuit imprimé (PCB). I2C a été initialement conçu pour une communication à 100 Kbps. Cependant, des modes de transfert de données plus rapides ont été développés au fil des ans pour atteindre des vitesses allant jusqu’à 3,4 Mbit.
Une caractéristique clé d’I2C est la possibilité d’avoir de nombreux composants en utilisant seulement deux fils sur un bus de communication, ce qui rend I2C idéal pour les applications simples. Le protocole I2C a été établi en tant que norme officielle, permettant une rétrocompatibilité entre les implémentations I2C.
Signal I2C
Le protocole I2C utilise deux lignes de signal bidirectionnelles pour communiquer avec les appareils sur le bus de communication. Les deux signaux utilisés sont :
- Ligne de données série (SDL)
- Horloge de données série (SDC)
La raison pour laquelle I2C ne peut communiquer qu’avec plusieurs périphériques à l’aide de deux signaux est la façon dont la communication le long du bus est gérée. Chaque communication I2C commence par une adresse 7 bits (ou 10 bits) de l’adresse du périphérique appelant.
Cela permet à plusieurs appareils sur le bus I2C d’agir en tant que maîtres en fonction des besoins du système. Pour éviter les collisions de communication, le protocole I2C inclut des fonctions d’arbitrage et de détection de collision, permettant une communication fluide le long du bus.
Avantages d’I2C
En tant que protocole de communication, I2C présente les avantages suivants :
- Taux de transfert de données flexibles.
- Distance de communication plus longue que SPI.
- Chaque appareil sur le bus est adressable indépendamment.
- Les appareils ont une relation primaire/secondaire simple.
- Il n’a besoin que de deux fils de signal.
- Il est capable de gérer plusieurs communications principales en assurant l’arbitrage et la détection des collisions de communication.
Limites d’I2C
Avec tous ces avantages, I2C présente également certaines limitations qui peuvent nécessiter une conception. Les limitations I2C les plus importantes incluent :
- Étant donné que seuls 7 bits (ou 10 bits) sont disponibles pour l’adressage des appareils, les appareils sur le même bus peuvent partager la même adresse. Certains appareils peuvent configurer les derniers bits de l’adresse, mais cela limite les appareils sur le même bus.
- Seules quelques vitesses de communication limitées sont disponibles et de nombreux appareils ne prennent pas en charge les transferts à plus grande vitesse. Une prise en charge partielle de chaque vitesse sur le bus est nécessaire pour empêcher les périphériques plus lents de capturer des transferts partiels susceptibles de provoquer des problèmes de fonctionnement.
- La nature partagée du bus I2C peut entraîner le blocage de l’ensemble du bus lorsqu’un seul périphérique du bus cesse de fonctionner. Le cycle d’alimentation du bus restaure le fonctionnement normal.
- Étant donné que les appareils définissent leurs propres vitesses de communication, un appareil plus lent peut retarder le fonctionnement d’un appareil plus rapide.
- En raison de la topologie à drain ouvert des lignes de communication, I2C consomme plus d’énergie que les autres bus de communication série.
- Les limitations du bus I2C limitent généralement le nombre d’appareils sur le bus à environ une douzaine.
Application I2C
I2C est un bon choix pour les applications qui nécessitent une mise en œuvre simple et à faible coût plutôt qu’une vitesse élevée. Par exemple, les utilisations courantes du protocole de communication I2C incluent :
- Lire certains circuits intégrés de mémoire.
- Accès aux DAC et ADC.
- Transmettez et contrôlez les actions dirigées par l’utilisateur.
- Lire les capteurs matériels.
- Communiquez avec plusieurs microcontrôleurs.
Merci de nous en informer!
Dites-nous pourquoi !
D’autres détails ne sont pas assez difficiles à comprendre