Intro Bus I2C
A) Présentation du bus I2C
Le bus I2C a été créé au début des années 80 par RTC Philips afin d’apporter une solution simple et peu coûteuse à la communication entre les circuits intégrés numériques à l’intérieur des appareils grand public
(téléviseurs, magnétoscopes,
, etc.). Le principal avantage du bus I2C est de limiter le nombre de liaisons entre circuits intégrés.
1- Structure ure et organisation du bus I2C
Le bus I2C est un bus de type série synchrone ne nécessitant que deux signaux.
•
SDA (serial data), le signal de donnée.
•
SCL (serial clock), le signal d’horloge.
Ce bus permet la communication entre un circuit maître et un circuit esclave. esclave Le montage peut comporter plusieurs maîtres et plusieurs esclaves. Le maître est le circuit qui émet le signal d’horloge de synchronisation, un seul maître peut envoyer ce signal. Les données peuvent circuler dans les deux sens sur le fil des données, de sorte que chaque circuit, qu’il soit maître ou esclave peut servir d’émetteur ou de récepteur (de données).
Les différents circuits sont placés en parallèle sur les lignes SDA et SCL comme sur le schéma suivant :
Vcc
Vcc
Vcc
Vcc
Vcc
Vcc
Vcc Vcc
c
Maître
1
Maître
2
Esclave
1
Esclave
2
Esclave
3
SDA
SCL
0V
0V
Au repos, c’est à dire lorsqu’aucun circuit n’émet, les signaux SDA et SCL sont au niveau logique haut. Pour éviter les conflits, un maître qui veut émettre doit attendre que le bus soit au repos.
2- Le protocole I2C
2.1) Prise de contrôle du bus par un maître et début de la communication
Le bus étant initialement libre, SDA et SCL sont à 1.
Un maître prend le contrôle du bus en effectuant un START :
SCL
il met SDA à 0, SCL restant à 1. Au cours de la communication, l’horloge SCL est envoyée par le maître et
SDA ne peut changer d’état que lorsque SCL est à 0.
SDA
Exemple de mesure : START (Oscilloscope TEKTRONIX MSO2014)
START
Intro_Bus_I2C
MNO19022011
Début de la communication START
1 : SCL
2 : SDA
Page 1