Chapitre3_ Bus de communication série Bus I2C (SUITE)

Télécharger au format pdf ou txt
Télécharger au format pdf ou txt
Vous êtes sur la page 1sur 3

Chapitre3 : Bus de communication série Bus I2C (SUITE)

I. Présentation
• Origine
Le bus I2C (Inter Integrated Circuit) a été développé au début des années 1980 par Philips
pour relier différents circuits électroniques de ses produits grand public. De nombreux
constructeurs ont ensuite adopté ce type de liaison.
• Caractéristiques
Le bus I2C utilise trois fils :
– un fil pour les données (SDA) ;
– un fil pour l’horloge (SCL) ;
– un fil de masse (référence des potentiels).
Il s’agit d’une liaison série synchrone et bidirectionnelle transmettant des mots de huit bits. Le
débit est de 100 kb/s en mode standard, de 400 kb/s en mode rapide et de 1 Mb/s en mode très
rapide. Les applications du bus I2C concernent donc des domaines où une grande rapidité
n’est pas nécessaire.
Les entrées et les sorties sont en collecteur ouvert ou en drain ouvert pour éviter les conflits
électriques. Les lignes SDA et SCL doivent donc être munies de résistances de rappel qui
imposent un niveau haut au repos. Le nombre de circuits reliés est limité par la charge
capacitive maximale des lignes qui vaut 400 pF.
Le bus I2C assure la communication entre un maître (par exemple un microcontrôleur) et un
esclave (par exemple une mémoire, un convertisseur numérique-analogique, etc.) identifié par
une adresse (Fig.1). Plusieurs maîtres et plusieurs esclaves peuvent être branchés sur le bus,
mais le dialogue se fait entre un maître et un esclave.

Fig.1 : Maitre et esclave.


II Protocole
• État de repos
Quand aucune communication n’est en cours, le bus est au repos, les circuits branchés sont à
l’état haute impédance (SDA et SCL à 1) et les résistances de rappel imposent une tension
égale à la tension d’alimentation.
• Prise de contrôle du bus

M1 Commandes électriques Page 1


Chapitre3 : Bus de communication série Bus I2C (SUITE)

Pour pouvoir communiquer sur le bus, le circuit qui va devenir le maître doit en prendre le
contrôle. C’est alors lui qui impose le signal d’horloge. Le bus doit être au repos avant la prise
de contrôle : SDA et SCL à 1.
• Condition de début et condition de fin La transmission commence par une transition de l’état
1 à l’état 0 sur SDA alors que SCL est à l’état 1 (condition de début) et se termine par un
passage de l’état 0, à l’état 1 sur SDA alors que SCL est à l’état 1 (condition de fin) (Fig.2).

Fig.2 : Condition de début, condition de fin.

Transmission d’un octet


La transmission se fait par mots de huit bits envoyés successivement. L’émetteur commence
par envoyer le bit de poids le plus fort D7 sur SDA. Il valide la donnée en appliquant un
niveau 1 sur SCL. Quand SCL revient à l’état 0, l’émetteur envoie le bit suivant D6 sur SDA,
et ainsi de suite jusqu’à la transmission complète de l’octet.
• Acquittement
À la fin de la transmission d’un octet, l’émetteur libère la ligne SDA (c’est-à-dire que sa sortie
passe à l’état haute impédance). Le récepteur doit imposer un niveau 0 pour signaler que la
réception s’est déroulée correctement. C’est le bit d’acquittement (acknowledge).
• Transmission d’une adresse
Chaque esclave possède une adresse codée sur sept bits A6 à A0. La transmission de l’adresse
se fait sur un octet au format suivant :
– D7 à D1 : 7 bits d’adresse ;
– D0 : bit R/W, un état 0 indique une transmission (écriture, write) et un état 1 indique une
demande de donnée (lecture, read).
Dans le cas particulier d’une mémoire, il faut au moins deux octets : le premier est l’adresse
du circuit et les autres correspondent à l’adresse interne.
• Écriture d’une donnée
La trame comporte (Fig.3) :
– la condition de début,

M1 Commandes électriques Page 2


Chapitre3 : Bus de communication série Bus I2C (SUITE)

– l’envoi de l’adresse,
– le choix du mode écriture (R/W à 0),
– le transfert des données,
– la condition de fin.

Fig.3 : Ecriture d’une donnée.


Lecture d’une donnée
La trame comporte (Fig.4) :
– la condition de début,
– l’envoi de l’adresse,
– le choix du mode lecture (R/W à 1),
– le transfert des données,
– la condition de fin.

Fig.4 : Lecture d’une donnée.

M1 Commandes électriques Page 3

Vous aimerez peut-être aussi