LE BUS I2C
Transcription
LE BUS I2C
LE BUS I2C Il est constitué de deux fils. La transmission se fait en série de manière synchrone par rapport à une horloge. La fréquence max est de 100Khz soit 100 K/bits par seconde. La transmission d’un octet est suivi d’un 9eme bit d’accusé de réception : ACK. SCL : Horloge série fournie par le maître. SDA : Données dans les deux sens. Du maître vers l’esclave ou de l’esclave vers le maître. Etat repos pour SDA et SCL = HIGH. - Les data sur SDA ne changent que quand SCL est « LOW ». Si elles sont stables quand SCL est « HIGH » elles sont prises en compte. - START : data sur SDA change ( passage de 1 à 0 ) quand SCL est « HIGH ». - STOP : data sur SDA change ( passage de 0 à 1 ) quand SCL est « HIGH ». ACK : Le récepteur fait passer SDA de « High » à « Low » pendant la 9eme impulsion SCL. TRANSMISSION : Le maître envoi le bit « START » et ensuite les 8 bits d’adressage sur SDA : - Les 4 premiers bits déterminent le type de circuit et sont fixés par le fabriquant. - Les 3 bits suivants dépendent du câblage de 3 pattes du CI et constituent l’adresse. - Le dernier bit est le R/W. Avec « 0 » on écrit dans le CI et un « 1 » permet la lecture. L’esclave prend alors la ligne SDA qui est au repos donc à « 1 » et la fait passer à « 0 » pour un ACK. SCL SCL SDA Bit stable Bit stable SDA Changement de données START SCL SDA 1à7 8 9 1à7 9 8 bits data 7 bits adresse R/W ACK 1à7 8 9 8 bits data ACK START Le BUS I2C 2002 8 STOP ACK STOP 1 D. MENESPLIER ENAC/ELE Nov EXEMPLE DE TRANSMISSION : NO ACK stable non stable ACK SDA Bit 7 Bit 6 Bit 5 Top 1 Top 2 Top 3 Top 4 Top 8 Top 9 10 µs 10 µs 10 µs 10 µs Bit 4 Bit 0 SCL Start 10 µs 10 µs Stop DEFINITIONS: - Un circuit qui génère un message est un EMETTEUR, et le circuit qui le reçoit est un RECEPTEUR. - Le circuit qui contrôle l'échange est le MAITRE et celui qui est contrôlé est l'ESCLAVE. - Un ESCLAVE RECEPTEUR qui est adressé doit générer un ACK après réception de chaque octet. - De même un MAITRE doit générer un ACK après réception de chaque octet venant de l'ESCLAVE. - Un ACK est une mise à "0" de la ligne SDA pendant un pulse de la ligne SCL. - Un MAITRE RECEPTEUR doit signaler la fin du transfert à l'ESCLAVE EMETTEUR en ne générant pas de ACK, c'est à dire en générant un NOACK qui est une mise à "1" de SDA pendant un pulse de SCL. Dans ce cas l'ESCLAVE doit laisser SDA libre pour permettre au MAITRE de générer ensuite un STOP Le BUS I2C 2002 2 D. MENESPLIER ENAC/ELE Nov DIALOGUE : ECRITURE du maître dans un esclave MAITRE ESCLAVE START OCTET de CONTROLE ( R/W=0) ACK OCTET de COMMANDE ou OCTET ADRESSE ACK OCTET DATA ACK STOP Le BUS I2C 2002 3 D. MENESPLIER ENAC/ELE Nov LECTURE de l'esclave par le maître MAITRE ESCLAVE START OCTET de CONTROLE ( R/W=0) ACK OCTET de COMMANDE ou OCTET ADRESSE ACK RESTART OCTET de CONTROLE ( R/W=1) ACK OCTET DATA ACK OCTET DATA NO ACK STOP Le BUS I2C 2002 4 D. MENESPLIER ENAC/ELE Nov
Documents pareils
Le bus i2c - Lycée Joseph Desfontaines
La communication sur le bus est orchestrée de manière suivante :
Le Maître envoie sur le bus l'adresse du composant avec qui il souhaite communiqué, chacun
des esclaves ayant une adresse fixe ;
L'e...
Bus I2C
Le bus I C (IIC : Inter-IC-Communication ) permet la connexions de circuit intégrés à proximité
(1m). Les caractéristiques électriques et le protocole de communication ont été déposés par Philips,
...