Informatique industrielle Bus I2C Pr. Mohamed Hamlich Sige.ensam@gmail.com ENSA

Informatique industrielle Bus I2C Pr. Mohamed Hamlich Sige.ensam@gmail.com ENSAM- Casablanca Pr. Mohamed Hamlich 82 I2C est le sigle d'Inter-Integrated Circuit. À la fin des années 1970, la division des semi-conducteurs de chez Philips (maintenant devenue NXP) avait vu la nécessité de simplifier et standardiser les échanges de données entre les différents circuits intégrés dans leurs produits. Leur solution fut le bus I2C, elle réduisait le nombre de lignes nécessaires à seulement deux lignes, SDA - Serial DAta, et SCL - Serial CLock. Dans ce cours, nous allons décrire l'architecture physique du bus I2C, le protocole de communication série et comment communiquer en I2C I2C : Introduction Pr. Mohamed Hamlich 83 À l'origine, la communication était limitée à la vitesse de transfert de 100 kbit/s, et cela suffisait dans la majorité des cas. Pour des débits plus rapides, de nouvelles spécifications sont nées. D'abord un Fast Mode à 400 kbit/s, puis un Fast Mode plus (FM+) à 1 Mbit/s. Depuis 1998, il y a une version High Speed à 3,4 Mbit/s. Le débit maximal possible via un bus I2C est spécifié dans l'Ultra Fast mode à 5 Mbit/s, mais avec un fonctionnement un peu particulier. I2C : Vitesse Pr. Mohamed Hamlich 84 I2C : caractéristiques •seulement deux lignes (bidirectionnelles) sont nécessaires, - SDA -, - SCK -; •transmission synchrone. Contrairement à la liaison RS232. Ici, le périphérique maître (master) génère le signal d'horloge qui synchronise et cadence les échanges ; •la relation entre les périphériques du bus est de type maître-esclave (master/slave). h é i hé i l b I2C èd d i Pr. Mohamed Hamlich 85 I2C : bit dominant Sur le bus I2C le niveau logique dominant est le 0, le niveau récessif est le 1. En absence de commande le niveau logique (repos) est donc 1. Le bus doit être équipé de deux résistances de pull-up (4K à 10K) Pr. Mohamed Hamlich 86 I2C : Contrôle du bus • Les échanges commencent toujours par une condition START sur SCL/SDA et finissent par une condition STOP • Les bits sont transférés sur le front descendant de SCL • Le bus I2C pouvant accueillir plusieurs esclaves ceux-ci sont identifiés par une adresse sur 7 bits, le 8 ième bits de l’octet indique s’il s’agit d’une opération d’écriture dans l’esclave (0) ou de lecture (1). Pr. Mohamed Hamlich 87 I2C : Transmission d’une adresse • Le premier octet envoyé correspond à l’adresse de l’esclave choisi suivi d’un bit de lecture ou écriture. • Par exemple pour un circuit dont l’adresse est 0b1010000. L’adresse I2C en écriture sera 0b10100000 (0xA0) et 0b10100001 (0xA1) en lecture. Pr. Mohamed Hamlich 88 I2C : Transmission d’un octet • Le bit de pois fort est transmis en premier • A chaque période de SCL, un bit de SDA est transmis Pr. Mohamed Hamlich 89 I2C : Ecriture d’une donnée • Le bit de R/W = 0; • Après chaque bit ACK valide, il peut y avoir deux cas : • Le maitre continue d’envoyer des octets à l’esclave • Le maitre décide de terminer le dialogue en envoyant une condition de stop. Pr. Mohamed Hamlich 90 I2C : Lecture d’une donnée • Le bit de R/W = 1; • C’est toujours le maitre qui génère SCL. • L’esclave prend le contrôle de SDA. • C’est le maitre qui génère ACK après chaque octet envoyé par l’esclave. Pr. Mohamed Hamlich 91 I2C : Lecture et écriture • Il est possible d’enchainer lecture et écriture sans passer par une condition de stop ; • Cela est possible grâce au bit « Repeat Start » • Exemple d’application: Pr. Mohamed Hamlich 92 I2C : Exemple d’application Pr. Mohamed Hamlich 93 uploads/Industriel/ bus-i2c.pdf

  • 11
  • 0
  • 0
Afficher les détails des licences
Licence et utilisation
Gratuit pour un usage personnel Attribution requise
Partager