Identification






Mot de passe oublié ?
Pas encore de compte ? Enregistrez-vous

Se maintenir à jour avec nos Newsletter maintenant!






le Bus I2C Convertir en PDF Version imprimable Suggérer par mail

II- 3.2.3    La transmission d’une adresse

    Le nombre de composants qu'il est possible de connecter sur un bus I²C étant largement supérieur à deux, le maître doit pouvoir choisir quel esclave est censé recevoir les données. Dans ce but, le premier octet que transmet le maître n'est pas une donnée mais une adresse voir (figure 2.8). Le format de l'octet d'adresse est un peu particulier puisque le bit D0 est réservé pour indiquer si le maître demande une lecture â l'esclave ou bien au contraire si le maître impose une écriture à l'esclave.
 
Transmission d'adresse I2C
figure.2.8 Transmission d'adresse
 
    Chaque circuit connecté au bus I²C possède une adresse, qui doit être unique. L'adresse associée à un composant est définie en partie par l'état de broches de sélections et d'autre part par sa fonction. Par exemple, le circuit PCF8574, qui est un port d'entrées/sorties bidirectionnel 8 bits, décompose son adresse de la façon suivante : [0] [1] [0] [0] [A2] [A1] [A0] [R/W]. Les bits A2, A1 et A0 reflètent l'état des broches 1, 2 et 3 du circuit. Cela permet de placer 8 circuits PCF8574 sur le bus I²C. Lors de la conception d'un système, il faut donc veiller à l'unicité des adresses attribuées aux différents composants.

    Une fois l'adresse envoyée sur le bus, l'esclave concerné doit répondre en plaçant le bit ACK à 0. Si le bit ACK vaut 1, le maître comprend qu'il y a une erreur de sélection et il génère la condition arrêt. En revanche, si le bit ACK vaut 0, le maître peut continuer les opérations.

II- 3.2.4    Ecriture d’une donnée
 
    Si le bit R/W précédemment envoyé était à 0, cela signifie que le maître doit transmettre un ou plusieurs octets de données. Après chaque bit ACK valide, le maître peut continuer d'envoyer des octets à l'esclave ou bien il peut décider de terminer le dialogue par une condition d'arrêt (voir figure 2.9).
 
Écriture des données.
figure.2.9 Écriture des données.
 
II- 3.2.5    Lecture d’une donnée

    Si le bit R/W est transmis en même temps que l'adresse est à 1, cela signifie que le maître veut lire des données issues de l'esclave. C'est toujours le maître qui va générer le signal d'horloge SCL. En revanche, après le bit ACK de l'adresse, c'est l'esclave qui va garder le contrôle de la ligne SDA. Pour cela, le maître va placer sa propre sortie SDA au niveau haut pour permettre à l'esclave de prendre le contrôle de la ligne SDA. L'esclave doit alors scruter la ligne SCL et attendre le niveau bas pour changer l'état de la ligne SDA, faute de quoi le maître détectera une condition arrêt et abandonnera le transfert.
 
    Après que l'esclave a transmis les 8 bits de données, c'est le maître, cette fois-ci, qui va générer un bit d'acquittement. Si le maître désire lire des octets supplémentaires, il placera le bit d'acquittement à 0. En revanche, si le maître décide que la lecture est terminée, il placera le bit ACK au niveau 1. L'esclave comprendra alors que le transfert est terminé. Cette fois-ci, bien que le bit ACK soit au niveau 1, cela ne correspond pas à une condition d'erreur mais à une fin de transfert (voir figure 2.10).
 
Lecture des données I2C
figure.2.10 Lecture des données.

 II- 3.3    Les nouvelles spécifications
 
    Face à l'explosion du nombre de circuits I²C disponibles en très forte augmentation, Philips a publié en 1993 les nouvelles spécifications de l'I²C :

  • compatibilité totale avec l'ancien I²C (qui date de 1982)
  • vitesse de 400 k bit/s
  • Adressage étendu sur 10 bits (jusqu'à 1024 circuits) répartis dans deux octets (voir figure 2.11).
  • Utilisation d'entrées à trigger de Schmitt afin de limiter la sensibilité au bruit.
  • Diminution du temps entre une condition de stop et une condition de départ à 1,3µs
  • Mise en haute impédance d'un circuit non alimenté afin d'éviter de bloquer le bus si un circuit n'est pas alimenté.



 
< Précédent   Suivant >

Scalinet.com
Hi-Algerie!