Présentation du bus I2C

Introduction

Mis au point dans les années 1980, le bus I²C ou Inter-IC-Communication à été conçu pour réaliser la liaison entre les circuits intégrés d’une même platine. Il peut être également utilisé pour la liaison entre platines, même si cette dernière utilisation reste plus rare. Présente dans la plupart des équipements électroniques "grand publique", c’est la Société Philips qui a déposé les brevets du Bus. Les circuits électroniques internes tels que les microprocesseurs dialoguaient par l’intermédiaire de bus de type parallèle, fort coûteux en nombre de pistes et de points de soudure. Le bus I²C a été développé dans l’optique de la réduction de ce procédé coûteux. La version originale de ce bus de type sériel permettait la transmission des données à un débit de 10 ko/s, ce qui était bien suffisant pour la plupart des applications. Le bus I²C est donc devenu le standard pour les liaisons lentes sur une même platine. La Société Philips a continué de proposer un grand nombre de composants avec interfaces I²C, auxquels sont venus s’ajouter des circuits d’autres fabricants.

Caractéristiques de la Version 1.0

Standardisé en 1992 dans sa version première, ce bus a été implémenté des caractéristiques suivantes :
Programmation logiciel des adresses esclaves. Le mode "Lent" a été révisé en mode normal, les composants se réglant à la plus lente discussion sur le bus. Le mode "Fast" a été ajouté pour permettre une communication à 400 kbits/s, celui-ci étant compatible avec les composants communicants à 100Kbits/s. L’adresse des composants est passée de 8 bits à 10 bits, ajoutant ainsi 1024 adresses possibles. L’ajout de filtres antiparasites dans les composants.

Caractéristiques de la Version 2.0

En 1998, ce bus est devenu un nouveau standard dans plus de 1000 composants différents et a été licencié par plus de 50 entreprises différentes. Aujourd’hui, beaucoup d’applications requièrent un bus rapide et de faible alimentation, les ajouts ont donc été les suivants : Le mode "High-speed" permettant la communication à 3,4 Mbits/s a été ajouté. Les tensions de seuils ont été ajustées à 2 volts permettant ainsi une réduction de l’immunité aux bruits

Caractéristiques de la Version 2.1

Datant de Janvier 2000, il s’agit de la dernière version actuelle constituant des modifications mineures touchant les conditions de départ du mode "High-speed".

Ses caractéristiques

Le bus I²C est un bus de type sériel permettant la communication de composants électroniques.
Il existe d’autres bus de ce type :

Le succès de ce bus repose sur le nombre de composants disponibles, pour ne situer que les plus répandus, voici une liste bien succincte (Liste complète des composants de Philips en Annexe 1)

Pour ce faire, ce bus utilise seulement trois fils :

Schema du bus

Montage des composants sur le bus

Les dispositifs qui viennent se connecter au bus se raccordent en parallèle sur les lignes SDA et SCL.
La discussion sur un bus se fait entre un maître et un esclave. C’est le maître qui demande et l’esclave qui répond.
Un esclave peut être maître si sa structure interne le permet.
Electroniquement, la mise en place de plusieurs composants sur un même bus est possible grâce à la structure des sorties qui sont de type "Collecteur ouvert".
Des résistances de rappel (Rp) permettent de garantir l’état haut du bus lorsque les éléments sont en mode haute impédance, sorte de similitude à un élément non existant. Son calcul s’effectue en fonction de la charge capacitive (Voir page 7 du DataSheet du 82B715 ou en section 3.3.4), et reste relativement simple.
Les résistances Rs sont présentes pour protéger le circuit contre les pics de tension produit par induction, son calcul restant relativement compliqué et peu utilisé (Voir page 40 des spécifications de la version 2.1)
Cependant, le nombre de composant étant limité sur le bus, celui-ci ne peut fonctionner que si la charge capacitive est inférieure à 400 pF , cela correspond à une distance de 10m.(pF = picoFarad)
A titre indicatif, un composant varie entre 10 et 20 pF de charge capacitive.
Si cette charge venait à être atteinte, il existe un composant (bridge 82B715) permettant de réaliser un pont entre une partie déjà saturée et une autre plus libre.