LE BUS I2C

Transcription

LE BUS I2C
LE BUS I2C
Il est constitué de deux fils. La transmission se fait en série de manière synchrone par rapport à une
horloge. La fréquence max est de 100Khz soit 100 K/bits par seconde. La transmission d’un octet est
suivi d’un 9eme bit d’accusé de réception : ACK.
SCL : Horloge série fournie par le maître.
SDA : Données dans les deux sens. Du maître vers l’esclave ou de l’esclave vers le maître.
Etat repos pour SDA et SCL = HIGH.
- Les data sur SDA ne changent que quand SCL est « LOW ». Si elles sont stables quand SCL est
« HIGH » elles sont prises en compte.
- START : data sur SDA change ( passage de 1 à 0 ) quand SCL est « HIGH ».
- STOP : data sur SDA change ( passage de 0 à 1 ) quand SCL est « HIGH ».
ACK : Le récepteur fait passer SDA de « High » à « Low » pendant la 9eme impulsion SCL.
TRANSMISSION :
Le maître envoi le bit « START » et ensuite les 8 bits d’adressage sur SDA :
- Les 4 premiers bits déterminent le type de circuit et sont fixés par le fabriquant.
- Les 3 bits suivants dépendent du câblage de 3 pattes du CI et constituent l’adresse.
- Le dernier bit est le R/W. Avec « 0 » on écrit dans le CI et un « 1 » permet la lecture.
L’esclave prend alors la ligne SDA qui est au repos donc à « 1 » et la fait passer à « 0 » pour un ACK.
SCL
SCL
SDA
Bit stable
Bit stable
SDA
Changement
de données
START
SCL
SDA
1à7
8
9
1à7
9
8 bits data
7 bits adresse
R/W
ACK
1à7
8
9
8 bits data
ACK
START
Le BUS I2C
2002
8
STOP
ACK
STOP
1
D. MENESPLIER ENAC/ELE Nov
EXEMPLE DE TRANSMISSION :
NO ACK
stable
non stable
ACK
SDA
Bit 7
Bit 6
Bit 5
Top 1
Top 2
Top 3
Top 4
Top 8
Top 9
10 µs
10 µs
10 µs
10 µs
Bit 4
Bit 0
SCL
Start
10 µs
10 µs
Stop
DEFINITIONS:
- Un circuit qui génère un message est un EMETTEUR, et le circuit qui le
reçoit est un RECEPTEUR.
- Le circuit qui contrôle l'échange est le MAITRE et celui qui est contrôlé est
l'ESCLAVE.
- Un ESCLAVE RECEPTEUR qui est adressé doit générer un ACK après réception
de chaque octet.
- De même un MAITRE doit générer un ACK après réception de chaque octet
venant de l'ESCLAVE.
- Un ACK est une mise à "0" de la ligne SDA pendant un pulse de la ligne SCL.
- Un MAITRE RECEPTEUR doit signaler la fin du transfert à l'ESCLAVE
EMETTEUR en ne générant pas de ACK, c'est à dire en générant un NOACK qui est une
mise à "1" de SDA pendant un pulse de SCL. Dans ce cas l'ESCLAVE doit laisser SDA
libre pour permettre au MAITRE de générer ensuite un STOP
Le BUS I2C
2002
2
D. MENESPLIER ENAC/ELE Nov
DIALOGUE :
ECRITURE du maître dans un esclave
MAITRE
ESCLAVE
START
OCTET de CONTROLE ( R/W=0)
ACK
OCTET de COMMANDE
ou
OCTET ADRESSE
ACK
OCTET DATA
ACK
STOP
Le BUS I2C
2002
3
D. MENESPLIER ENAC/ELE Nov
LECTURE de l'esclave par le maître
MAITRE
ESCLAVE
START
OCTET de CONTROLE ( R/W=0)
ACK
OCTET de COMMANDE
ou
OCTET ADRESSE
ACK
RESTART
OCTET de CONTROLE ( R/W=1)
ACK
OCTET DATA
ACK
OCTET DATA
NO ACK
STOP
Le BUS I2C
2002
4
D. MENESPLIER ENAC/ELE Nov

Documents pareils

Le bus i2c - Lycée Joseph Desfontaines

Le bus i2c - Lycée Joseph Desfontaines La communication sur le bus est orchestrée de manière suivante : Le Maître envoie sur le bus l'adresse du composant avec qui il souhaite communiqué, chacun des esclaves ayant une adresse fixe ; L'e...

Plus en détail

Bus I2C

Bus I2C Le bus I C (IIC : Inter-IC-Communication ) permet la connexions de circuit intégrés à proximité (1m). Les caractéristiques électriques et le protocole de communication ont été déposés par Philips, ...

Plus en détail