I²C
Initiales de Inter-Integrated Circuit, une norme de communication de circuits intégrés utilisant deux lignes.
I²C : protocole à deux fils pour communiquer avec les puces sur une carte
I²C (Inter-Integrated Circuit) est un bus série synchrone qui permet aux circuits intégrés de communiquer entre eux sur seulement deux fils : une ligne d'horloge (SCL) et une ligne de données (SDA). Les deux lignes sont à drain ouvert, tirées vers le haut par des résistances, et les appareils les tirent vers le bas pour transmettre. Cette contrainte à deux fils rend l'I²C peu coûteux à implémenter sur les cartes de circuits imprimés et permet à plusieurs appareils (esclaves) d'être adressés par un seul contrôleur maître.
Le protocole utilise un adressage sur 7 ou 10 bits, avec des données transmises en trames de 8 bits, un bit par cycle d'horloge. Le mode standard fonctionne à 100 kHz, le mode rapide à 400 kHz et le mode rapide Plus à 1 MHz ; des vitesses plus élevées existent mais nécessitent des tracés plus courts. L'esclave adressé accuse réception de chaque octet en tirant la ligne SDA vers le bas pendant le neuvième bit d'horloge. La communication est semi-duplex : un appareil transmet pendant que les autres écoutent.
L'I²C est omniprésent dans l'électronique industrielle et grand public. Les capteurs de température, les puces mémoire EEPROM, les horloges temps réel, les extenseurs d'E/S et les pilotes d'affichage utilisent tous couramment l'I²C. Un seul maître (souvent un microcontrôleur) peut communiquer avec des dizaines d'esclaves sur la même paire de fils, ce qui le rend idéal pour la détection et le contrôle distribués où la minimisation du câblage est précieuse.
Modes de défaillance courants et pièges de conception
Le choix de la résistance de rappel est critique : trop faible, les fronts sont lents ; trop forte, la consommation de courant augmente. Les valeurs typiques sont de 4,7 kΩ à 10 kΩ pour le mode standard, et plus faibles pour des vitesses plus rapides. Les longues distances (plus de 1 mètre) souffrent d'une accumulation de capacité qui ralentit le temps de montée et provoque des erreurs de bits. L'ajout de tampons, de rappels intermédiaires ou le passage au CAN (qui utilise la signalisation différentielle) résout ce problème sur les bus plus longs. Des collisions d'adresses se produisent lorsque deux appareils ont la même adresse programmée en usine ; certaines puces offrent des bits d'adresse sélectionnables par cavalier pour éviter cela.
L'I²C reste dominant dans le contrôle industriel car il est simple à déboguer, ne nécessite pas de connecteurs spéciaux, et la plupart des fournisseurs de microcontrôleurs proposent des contrôleurs I²C matériels. L'I²C purement logiciel (bit-banged) est courant dans les systèmes hérités et fonctionne, mais il est moins fiable. Pour les systèmes exigeant une vitesse ou une distance plus élevées, le SPI ou le CAN sont préférables, mais aucun des deux ne peut adresser plusieurs esclaves aussi économiquement du point de vue du câblage.
Sources
- Source de la définitionWiktionary