La présentation est en train de télécharger. S'il vous plaît, attendez

La présentation est en train de télécharger. S'il vous plaît, attendez

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.

Présentations similaires


Présentation au sujet: "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."— Transcription de la présentation:

1 1 ER2 : Presentation du bus I2C

2 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 3 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 Le bus I2C Philips

4 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 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 SCL=0

6 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 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/W+0 = écriture maitre parleur et esclave écouteur : une donnée est envoyée à un esclave R/W=1 = 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 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

9 9 Le bus I2C Philips: protocole I2C Mécanisme dacquittement dun Octet recu: Chaque octet de donnée transmis 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 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 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 11 Le bus I2C Philips: protocole I2C Format des trames de base: modèle de trame dans le cas dun esclave écouteur R/W=0 modèle de trame dans le cas dun esclave parleur R/W=1

12 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 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 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 15 Le bus I2C Philips: protocole I2C Format des trames : exemple de chronogramme réel. Léchange débute par une condition de START (M>E) Puis le maitre envoie loctet dadresse (M>E) Ainsi, on note que loctet dadresse (8 premier coups dhorloge de SCL) vaut 0x90 soit codée sur 7 bits et un R/W=0. Le maitre est donc parleur pour cet échange. Envoi de loctet dadressestart SDA SCL

16 16 Le bus I2C Philips: protocole I2C Format des trames : exemple de chronogramme réel. lacquittement E>M sest bien passé. Le deuxième octet (M>E) vaut 0x40 : C est un octet de donnée. Lacquittement E>M sest bien passé. Le troisième octet (M>E) de donnée vaut 0x00. Lacquittement E>M sest bien passé. Le quatrième octet (M>E) de donnée vaut 0x0B. Lacquittement E>M sest bien passé. Puis le maitre a mis fin à léchange par une condition de stop. start Acqdata1Acq Data 2Data 3Stop SDA SCL

17 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 : La page daccueil générale de la gamme I2C est disponible ici :

18 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 19 Le bus I2C Philips: composants I2C Utilisation du jeu dAPI de lOS Beck pour lI2C. lAPI I2C BUS INTERFACE:

20 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


Télécharger ppt "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."

Présentations similaires


Annonces Google