Page perso de Loïc Dayot

Initiation au protocole I²C

Quand le maître et ses esclaves prennent le bus...

vendredi 6 avril 2001, par Loïc Dayot

Chère lectrice, cher lecteur,

On est entre nous, alors on va se tutoyer.
L’objet de ce document est de te faire comprendre comment des composants électroniques arrivent à communiquer entre eux grâce à la norme I²C (inter components communication) de Philips Composant.

A savoir : Tu n’es pas la seule ou le seul à (vouloir)
utiliser le bus I²C. D’autres y ont pensé avant toi. C’est ainsi que
si tu démontes ton répondeur, ton téléphone, ton
magnétoscope, ta télévision, ta récente voiture
ou ta chaîne HIFI, tu as toutes les chances d’y trouver des composants
I²C.

Pour commencer, nous allons voir ensemble, sans entrer dans les détails,
l’origine du bus I²C. Ensuite, nous pourrons découvrir les principes
du protocole. Enfin, nous pourrons nous attaquer gentiment à la compréhension
et la construction de messages I²C selon la norme.

1. Où est le problème ?

Les informations complexes transitent sur le bus de manière
sérielle, en combinant des informations élémentaires
(par groupe de 8 bits).

A chaque fois que la ligne SCL est à l’état haut, un bit est
disponible sur SDA.

2. L’accusé de réception : Tu m’entends ?

Lorsqu’un composant contrôle le bus I²C, il est maître. Il observe, après l’envoi de chaque octet, la présence d’un signal d’acquittement. Ce signal est produit par un esclave qui confirme par là qu’il a bien reçu l’octet en entier.

Un esclave ne prend jamais d’initiative. Il répond seulement à des demandes d’un maître.

3. Tu m’entends ?

Lorsqu’un composant contrôle le bus I²C, il est maître. Il observe, après l’envoi de chaque octet, la présence d’un signal d’acquittement. Ce signal est produit par un esclave qui confirme par là qu’il a bien reçu l’octet en entier.

Un esclave ne prend jamais d’initiative. Il répond seulement à des demandes d’un maître.

4. Un réseau, des adresses : Qui cause à qui ?

Chaque composant I²C a une adresse. Lorsqu’un maître envoie un message, il commence par transmettre l’adresse du composant auquel il veut s’adresser puis le sens de la transmission (écriture ou lecture).

5. Les conditions de départ et de fin

Dans le cas d’une lecture, un esclave cesse d’envoyer des données lorsque le maître n’a pas envoyé de signal d’acquittement.

Une trame débute par une condition de départ (start) et se termine par une condition de stop. Un maître peut enchaîner plusieurs trames en renvoyant une condition de départ (restart) à la suite d’une première trame.

6. Politesse et multi-maîtres

Il est possible de connecter sur une même ligne I²C plusieurs composants I²C maîtres en plus des composants I²C esclaves.

7. Avantages et inconvénients du bus I²C

Annexes


Voir en ligne : Article publié sur le site de Planète sciences en 2001

Un message, un commentaire ?

modération a priori

Ce forum est modéré a priori : votre contribution n’apparaîtra qu’après avoir été validée par un administrateur du site.

Qui êtes-vous ?
Votre message

Pour créer des paragraphes, laissez simplement des lignes vides.