Title: ER2 : Presentation du bus I2C
1ER2 Presentation du bus I2C
2Le bus I2C Philips
- Le bus I2C ou Inter-IC-Communication est ce que
lon appelle un bus de communication série
synchrone . Cest un bus dit silicium de
proximité - Il 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 sur 2 fils entre
les périphériques qui est assurée, d'ordinaire,
par un bus parallèle. - En développant ce bus, Philips en a équipé la
plupart de ses 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)
3Le bus I2C Philips
- Les informations sont échangées au moyen de deux
lignes dont une bidirectionnelle SDA (Serial
Data) et unidirect SCL (Serial Clock). - Chaque circuit intégré possède une adresse
matérielle unique qui le distingue des autres. - Chaque composant peut émettre ou recevoir des
informations suivant sa fonction. La vitesse
maximum standard est de 100kb/s. - Le bus I2C est un bus de communication série dit
"2 fils" (2 wire BUS) mais en fait il est
nécessaire de rajouter la masse pour référencer
les deux signaux d'information (SDA) et dhorloge
(SCL). - Cest un bus dit Maitre/esclave dans la mesure où
tout échange sur le bus ne peut se faire quà
linitiative du maitre. Les esclaves ne font quy
répondre par un mécanisme dappel/réponse. Le
maitre est propriétaire de SCL
4Le bus I2C Philips aspect electrique
- Pour le bus I2C, le niveau électrique dominant
est l'état bas (le niveau complémentaire est dit
récessif). - Les deux lignes SDA et SCL sont donc maintenues
au niveau haut tant que le bus est libre. - Les étages de sortie des circuits connectés au
bus doivent avoir un drain ouvert ou un
collecteur ouvert pour remplir la fonction ET
câblé .
5Le bus I2C Philips protocole I2C
- Protocole de communication I2C est basé sur un
changement détat de SDA - Le bus I2C appartient à la catégorie des bus
série. Par opposition aux bus parallèles où les
données sont transmises par bloc, les données
sont ici envoyées bit par bit par groupe d'octets
sur la ligne SDA. - La ligne SCL fonctionne comme une horloge
sérielle d'un registre à décalage. Lorsque que la
ligne SCL est à l'état haut, les données de la
ligne SDA doivent être stables. - Lorsque la ligne SCL est à l'état bas, le circuit
qui émet les données, peut modifier l'état de la
ligne SDA.
la modification de SDA par le contrôleur ou
lesclave nest possible que si SCL0
6Le bus I2C Philips protocole I2C
Début et fin dun échange Condition de Start et
de Stop Certaines combinaisons particulières de
niveaux et de fronts des deux lignes déterminent
la condition de départ (START ) ou d'arrêt
(STOP) de la transmission de la trame constituant
le message. ? Condition de départ un front
descendant sur SDA alors que SCL est à létat
haut. ?Condition darrêt un front montant sur
SDA alors que SCL est à létat haut. Le front
montant de la ligne SCL sert généralement pour
latcher la donnée présente sur la ligne SDA coté
récepteur. Remarque les conditions de départ et
darrêt sont toujours générées par le maître du
bus.
7Le bus I2C Philips protocole I2C
- Octet dadresse et sens de léchange
- La condition de start est suivie par l'adresse du
composant appelé par le maître. - Chaque composant possède une adresse unique codée
sur sept bits - Le huitième bit (R/W) émis indique la direction
du transfert Cette adresse se compose dune
partie fixe (Firmware) et dune partie
configurable par lutilisateur (adresse user). - R/W0 écriture ? maitre parleur et esclave
écouteur une donnée est envoyée à un esclave - R/W1 lecture ? maitre écouteur et esclave
parleur lesclave revoie une donnée au maitre. - Seuls les esclaves qui auront reconnu leur
adresse sur le bus participeront à la suite de
léchange. La transmission se fait MSB first.
8Le bus I2C Philips protocole I2C
- Octet dadresse et sens de léchange
- En général chaque boîtier possède 3 broches A2,
A1 et A0 de sélection de l'adresse basse. - Ces broches de sélection permettent de placer
jusqu'à 8 boîtiers de fonction identique sur le
bus. Dans l'exemple ci-dessous, l'EEPROM I2C
64kbits 24C64 possède l'adresse fixe 1010XXX. - L'adresse complète est choisie en fonction des
niveaux logiques placés sur les broches A2,A1,A0.
En plaçant la broche A0 à 5V et les broches A1 et
A2 à 0V, le boîtier répondra à l'adresse I2C
1010001.
9Le bus I2C Philips protocole I2C
- Mécanisme dacquittement dun Octet recu
- Chaque octet de donnée transmis (contenant _at_I2C
et R/W) est suivi par l'émission d'un bit
dacquittement (ou ACK). - le récepteur de l'échange doit procéder à
l'acquittement pour indiquer à l'émetteur (qu'il
soit maître ou esclave) que l'information a bien
été reçue. - Cest toujours le circuit (maître ou esclave) qui
reçoit les données qui doit générer laccuse
réception de l'octet envoyé. Dans le cas du
premier octect d_at_ I2C transmis cest forcément
lesclave. - Lorsque le 8ème coup d'horloge est passé (SCL
repasse alors à 0) lémetteur de la donnée
relâche la ligne SDA (release à 1), le récepteur
doit alors faire passer SDA à 0(cest lACK) .
10Le bus I2C Philips protocole I2C
- Mécanisme dacquittement dun Octet recu
- Lémetteur de la donnée initial doit attendre que
SDA soit à 0 avant que le maître ne puisse faire
remonter SCL à 1 pour générer un 9eme coup
dhorloge. - Apres ce 9eme coup dhorloge le récepteur de la
donnée peut alors libérer la ligne SDA qui
remonte à 1 - Ce mécanisme permet notamment de vérifier si un
esclave est présent ou pas sur le bus I2C. - En cas de non acquittement par ce dernier après
lenvoie de son adresse le maitre sait que
lesclave est absent du bus.
11Le bus I2C Philips protocole I2C
Format des trames de base
modèle de trame dans le cas dun esclave écouteur
R/W0
modèle de trame dans le cas dun esclave parleur
R/W1
12Le bus I2C Philips protocole I2C
Format des trames évoluées changement de
direction en cours de trame
- Pour certains périphériques évolués (mémoires
EEPROM) il peut être nécessaire dabord de dire à
lesclave quelle case mémoire on veut lire
(envoie de ladresse de la case à lire).
Lesclave est alors écouteur. - Puis dans une deuxième partie de léchange le
maitre vient lire la valeur de la case mémoire
pointée. Le maitre est alors écouteur. - Le changement de mode sopère en milieu de trame
par une condition de Restart.
13Le bus I2C Philips protocole I2C
Format des trames évoluées durée de léchange
- Le nombre doctet transmis au cours dune trame
nest pas limitatif. - Tant que les deux membres de léchange procèdent
à lacquittement, léchange continu. - Seul un non acquittement volontaire de la part
du maitre ou une condition de STOP peut mettre
fin à léchange. - Voici un chronogramme déchange type entre un
maitre parleur et un esclave écouteur. Au cours
de cette trame 2 octets de donnée sont envoyés à
lesclave avant que le maitre ne mette fin à la
communication
14Le bus I2C Philips protocole I2C
Format des trames exemple de chronogramme réel.
- Pour analyser cette trame , il faut compter les
coups dhorloge générés par le maitre. - SCL est en voie 2 et SDA en voie 1.
- Ils correspondent à lenvoie dune adresse et de
trois octets de données vers lesclave.
15Le bus I2C Philips protocole I2C
Format des trames exemple de chronogramme réel.
Envoi de loctet dadresse
start
SDA
SCL
- ?Léchange débute par une condition de START
(MgtE) - ?Puis le maitre envoie loctet dadresse (MgtE)
- Ainsi, on note que loctet dadresse (8 premier
coups dhorloge de SCL) vaut 0x90 soit une
_at_I2C0x48 codée sur 7 bits et un R/W0. Le maitre
est donc parleur pour cet échange.
16Le bus I2C Philips protocole I2C
Format des trames exemple de chronogramme réel.
Acq
data1
Acq
Acq
Data 2
Data 3
Stop
start
SDA
SCL
- lacquittement EgtM sest bien passé.
- Le deuxième octet (MgtE) vaut 0x40 C est un
octet de donnée. Lacquittement EgtM sest bien
passé. - Le troisième octet (MgtE) de donnée vaut 0x00.
Lacquittement EgtM sest bien passé. - Le quatrième octet (MgtE) de donnée vaut 0x0B.
Lacquittement EgtM sest bien passé . - Puis le maitre a mis fin à léchange par une
condition de stop.
17Le bus I2C Philips composants I2C
- Bibliothèque hardware de fonctions I2C
- Lintérêt principal de ce protocole de
communication est quil est suffisamment simple,
du coté esclave, pour pouvoir être fondu dans
des circuits intégrés. - On parle ainsi de bus silicium car du coté
esclave car il nest pas nécessaire décrire une
seule ligne de code pour implanter une fonction
I2C esclave. - Le silicium de la puce du circuit intégré possède
ce protocole. - Il existe un vaste choix de circuits esclaves
- GPIO, contrôleur décran LCD, mémoire EEPROM,
capteur de température, horloge calendrier, CAN
/CNA - Une liste complète des produits Philips est
disponible ici - http//www.standardics.nxp.com/literature/other/i2
c/pdf/selection.guide.pdf - La page daccueil générale de la gamme I2C est
disponible ici http//www.standardics.nxp.com/i2
c/
18Le bus I2C Philips composants I2C
Utilisation du jeu dAPI de lOS Beck pour
lI2C. Le processeur SC13 dispose dun jeu de
fonctions complet pour piloter des esclaves I2C.
Ces fonctions, de haut niveau, sont dirigées sur
2 broches dE/S externes du SC13 que lon peut
configurer pour piloter les signaux SCL et
SDA Lensemble de ces fonctions est regroupé
dans lAPI I2C BUS INTERFACE
19Le bus I2C Philips composants I2C
Utilisation du jeu dAPI de lOS Beck pour
lI2C. lAPI I2C BUS INTERFACE
20Le bus I2C Philips composants I2C
Utilisation du jeu dAPI de lOS Beck pour
lI2C. Exemple de réalisation de lenvoie de 3
octets de données vers un esclave écouteur