|
Page 2 sur 2
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.  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).  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).  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é.
<< Début < Précédente 1 2 Suivante > Fin >> |