ER2 : Presentation du bus I2C - PowerPoint PPT Presentation

About This Presentation
Title:

ER2 : Presentation du bus I2C

Description:

Title: TD Prise en main Author: laurent Last modified by: laurent Created Date: 6/26/2004 9:18:11 AM Document presentation format: Affichage l' cran – PowerPoint PPT presentation

Number of Views:87
Avg rating:3.0/5.0
Slides: 21
Provided by: Laurent194
Category:

less

Transcript and Presenter's Notes

Title: ER2 : Presentation du bus I2C


1
ER2 Presentation du bus I2C
2
Le 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)

3
Le 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

4
Le 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é .

5
Le 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
6
Le 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.
7
Le 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.

8
Le 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.

9
Le 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) .

10
Le 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.

11
Le 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
12
Le 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.

13
Le 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

14
Le 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.

15
Le 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.

16
Le 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.

17
Le 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/

18
Le 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
19
Le bus I2C Philips composants I2C
Utilisation du jeu dAPI de lOS Beck pour
lI2C. lAPI I2C BUS INTERFACE
20
Le 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
Write a Comment
User Comments (0)
About PowerShow.com