Title: BUS%20I2C
1BUS I2C
2Principe
- Le bus I2C ou Inter-IC-Communication a été conçu
pour réaliser la liaison entre les circuits
intégrés d'une même platine. II se charge de la
communication entre les périphériques qui est
assurée d'ordinaire par un bus parallèle. - En développant ce bus, Philips avait pour
objectif de relier de manière économique des
appareils électroniques destinés au grand public
(appareils TV et radio, systèmes audio et radio,
postes téléphoniques, systèmes électrique
automobile, appareils électroménager).
3Principe
- Pour ce type d'appareils, la vitesse de transfert
de données entre périphériques n'est pas très
importante (100 kbits / seconde max). De plus,
l'utilisation d'un bus parallèle pour assurer la
liaison entre chaque composant demanderait une
surface sur la platine relativement importante. - Comme le bus I2C ne comporte que deux fils, le
nombre de liaisons entre les composants est
réduit la surface utilisée et par conséquent
les coûts de fabrication sont ainsi moins
importants. Pour Philips, le bus I2C est devenu
un standard pour les liaisons lentes sur une même
platine.
4Principe
- Les informations sont échangées au moyen de deux
lignes bidirectionnelles - SDA (Serial DAta)
- et SCL (Serial CLock).
- Chaque circuit intégré possède une adresse unique
qui le distingue des autres. - Chaque composant peut émettre ou recevoir des
informations suivant sa fonction. - Le bus est piloté par un circuit appelé maître
qui prend l'initiative du transfert des
informations, décide du sens de ce transfert et
gère la ligne SCL. Les autres composants sont
alors désignés par le terme esclave.
5Principe
- Un bus peut prendre une configuration
multi-maître si plusieurs composants peuvent être
à tour de rôle maître ou esclave. A tout moment,
un seul maître actif doit être présent sur le
bus. - Une procédure darbitrage est prévue pour éviter
la perte ou la détérioration des informations
lorsque plusieurs maîtres essaient de prendre la
commande du bus simultanément. Mais sur la
plupart des circuits, seul un seul composant
réalise la fonction de maître étant donné la
complexité de cette fonction.
6Analyse du BUS I2C 4 niveauxLe BUS I2C
fonctionnecomme un petit réseaulocal
7Niveau 1 CABLE
4.TRAME
3.OCTET
2.BIT
1.CABLE
8CABLE
2 fils masse
9CABLE
Tous les composants sont câblés en parallèle
Tous les composants sont câblés en parallèle
10CABLE
Les niveaux logiques hauts sont réalisés par des
résistances de pull-up
11CABLE
Les niveaux logiques bas sont réalisés par des
transistors MOS en drain ouvert ( collecteur
ouvert)
12CABLE
Exemple de câblage Un microcontroleur PIC
associé à une EEPROM
13Exemple de Fonctionnement
Exemple Le PIC veut lire le contenu dune case
dans la Mémoire
Mémoire
14Exemple Le PIC veut lire le contenu dune case
dans la Mémoire
Le PIC doit - prendre le contrôle du BUS, -
envoyer ladresse de loctet quil veut lire, -
analyser les réactions de la Mémoire - récupérer
loctet envoyé par la Mémoire - libérer le BUS
15Exemple Le PIC veut lire le contenu dune case
dans la Mémoire
Le PIC doit - prendre le contrôle du BUS, -
envoyer ladresse de loctet quil veut lire, -
analyser les réactions de la Mémoire - récupérer
loctet envoyé par la Mémoire - libérer le BUS
Lensemble constituera 1 TRAME, comportant 4
OCTETS, soit 16 BITS auxquels sajoutent divers
signaux, l ensemble circulant sur les 2 FILS
16Niveau 2 BITS
17BIT
BIT 0
18BIT
BIT 0
BIT 1
19BIT
BIT 0
BIT 1
1 BIT 1 NIVEAU de SDA 1 impulsion de SCL
20BIT
REGLESDA ne peut changer de niveau que
lorsque SCL est à létat BAS
21BIT
Deux exceptions START et STOP
22BIT
La transmission d'un octet
Après avoir imposé la condition de départ, le
maître applique sur SDA le bit de poids fort
D7. Il valide ensuite la donnée en appliquant
pendant un instant un niveau '1' sur la ligne
SCL. Lorsque SCL revient à '0', il recommence
l'opération jusqu'à ce que l'octet complet soit
transmis. Il envoie alors un bit ACK à '1' tout
en scrutant l'état réel de SDA. L'esclave doit
alors imposer un niveau '0' pour signaler au
maître que la transmission s'est effectuée
correctement. Les sorties de chacun étant à
collecteurs ouverts, le maître voie le '0' et
peut alors passer à la suite.
- Exemple de transmission réussie.
- Dans cet exemple
- SCL Horloge imposée par le maître.
- SDAM Niveaux de SDA imposés par le maître.
- SDAE Niveaux de SDA imposés par l'esclave.
- SDAR Niveaux de SDA réels résultants.
23Résumé Fonctionnement standard
Conditions de validité des données sur le bus I2C.
24Résumé Fonctionnement standard
- Certaines combinaisons particulières de niveaux
et de fronts des deux lignes déterminent la
condition de départ ou d'arrêt de la transmission
des données. - Condition de départ un front descendant sur SDA
quand SCL est à létat haut. - Condition darrêt un front montant sur SDA
quand SCL est à létat haut.
Remarque les conditions de départ et darrêt
sont toujours générées par le maître du bus.
25NIVEAU 4 La TRAME
4.TRAME
3.OCTET
2.BIT
1.CABLE
26TRAME
Le composant qui a un moment donné prendle
contrôle de SCL par un START est appelé
MAITRELes aures fonctionnent alors en ESCLAVES
. jusquau prochain STOP
27TRAME
?
?
Chaque ESCLAVE est identifié par une ADRESSELe
MAITRE indique lESCLAVE à qui il sadresse
Seul lESCLAVE concerné réagit.
28TRAME
- Ne pas confondre MAITRE /ESCLAVEavec LECTURE /
ECRITURE ! -
- Le MAITRE peut LIRE ou ECRIRE
29TRAME
1 TRAME
START
STOP
30TRAME
s
TRAME Plusieurs OCTETS
La TRAME
Octet 1
Octet 2
Octet 3
Octet 4
31TRAME
s
TRAME Plusieurs OCTETS qui doivent se terminer
par un Accusé de réception ACKnowledge
La TRAME
Octet 1
Octet 2
Octet 3
Octet 4
Le second START qui précède le 3ème octet est un
cas particulier
32TRAME
Détail des informations successives
Ad10 -gt Ad0 représente ladresse physique du
récepteur ATTENTION Cas particulier des
mémoires !!!! L'espace adressable d'un
circuit de mémoire étant sensiblement plus grand
que la plupart des autres types de circuits,
l'adresse d'une information y est codée sur deux
octets ou plus. Ici Ad10 -gt Ad8 (A2 -gt A0)
représente toujours l'adresse du circuit, et les
suivants l'adresse interne de la mémoire.
33TRAME
Détail des informations successives
ATTENTION!!! La génération dun Acknoledge
à la place dun NOACK permet denchaîner une
autre lecture. Larrêt effectif seffectue avec
le bit de stop.
34TRAME
- Exemple de lecture d'une donnée
.
- Dans cet exemple
- SCL Horloge imposée par le maître.
- SDAM Niveaux de SDA imposés par le maître.
- SDAE Niveaux de SDA imposés par l'esclave.
- SDAR Niveaux de SDA réels résultants.
35TRAME
La même TRAME peut permettre la lecture de
plusieurs OCTETS successifs dans la Mémoire
36TRAME
37Généralisation
- Nous avons vu içi la gestion dune EEPROM grâce
au bus I2C - La simplicité matérielle du bus I2C et ses
performances ont donné naissance a un grand
nombre de périphériques I2C - Cest devenu un standard dans le domaine de la
liaison des composants sur une carte imprimée. - Attention gestion des conflits existe!!!