I²C (1/3) : Introduction
Par Maxime le 21 Avril 2011
Sommaire
- Cablage de la ligne
- Schéma d'une trame I²C
Câblage de la ligne
D'un point de vue électrique, une ligne IC ressemble à ceci :
Il apparaît qu'un troisième fil est nécéssaire au montage : la référence commune du potentiel électrique (GND). On remarque aussi la présence de deux résistances pull-ups qui fixent le niveau de la ligne au repos à +Vcc. Ainsi, pour communiquer, un périphérique n'aura qu'à court-curcuiter la ligne pour la ramener au niveau logique 0. Les résisatances pull-ups limitent l'intensité du court-circuit à Vcc/1500 soit environ 3mA pour Vcc = 5 Volts.
Schéma d'une trame
- La start-condition : Celle-ci est générée par le maitre. Elle a deux impacts différents sur les autres périphériques de la ligne selon leur nature : pour les autres maîtres, elle dissuade de prendre la ligne (pour empêcher la collision) et pour les esclave, elle met tout le monde aux aguets car elle sous-entend qu'une adresse va être communiquer et qu'un des eclaves va devoir répondre.
- L'adresse codée sur 7 bits : Permet à l'esclave concerné de savoir que la suite de la trame le concerne, et dit aux autres qu'ils n'ont pas à se préoccuper de la suite
- Le bit R/W : indique à l'esclave concerné si il s'agit d'une lecture ou d'une écriture. C'est ce bit qui peut autoriser l'esclave à répondre. Voyons les deux cas possibles : R/W = 0, alors il s'agit d'une écriture du maître vers l'esclave, ce dernier a juste à enregistrer les octets qui vont suivre. Si R/W = 1, alors il s'agit d'une lecture : l'esclave sera - dans ce cas seulement - autorisé à répondre, il devra éventuellement enregistrer le début de la trame envoyée par le maitre pour savoir quelle donnée il va devoir renvoyer. Ces deux cas seront traités dans les parties 3 et 4.
- Un acknowledge : il s'agit d'une condition qui est génrée sur la ligne par l'esclave. C'est la seule initiative (et devoir) qu'à un esclave. Cette condition est génrée par l'esclave tous les 8 bits et permet au maitre de savoir si les données envoyées ont bien étées reçues. Si l'esclave ne renvoi pas d'acknowledge on dit que c'est une condition de NO-acknowledge qui est génée, le maitre met alors fin à la communication.
- Le premier byte de données
- Un nouvel acknowledge : dans le cas de l'envoi d'une chaine de caractères, il y aura alternance octet/acknowledge...
- La stop condition : indique à l'esclave que le maître a relâche la ligne : soit parce qu'il a fini d'envoyer les données, soit parce qu'il n'a pas recu d'acknowledge.