Étape 2: Ce qui est I2C - 2
Un maître peut soit demander à Envoyer ou recevoir des données d’un esclave. Au cours d’un Envoyer, le maître écrit des données dans le bus et l’esclave lit les données du bus et le stocke dans sa mémoire. Au cours d’une réception, le maître lit le bus pour les données envoyées par l’esclave. Dans les deux situations, le maître donne le signal d’horloge à la SCK.
À la fin de chaque octet (ce qui est de 8 bits) transmis sur le bus I2C, le dispositif de réception doit fournir un accusé de réception (ACK). La seule fois où cela n’arrive pas est lorsque le maître reçoit les données de l’esclave, dans laquelle elle termine la transmission avec un accusé de réception n’est pas (NACK ou NAK) indiquant que l’esclave doit cesser d’envoyer des données. Un ACK est représenté par un faible état (tiré vers le bas ou 0), alors qu’un accusé de réception négatif est représenté par un État (pas tiré vers le bas ou 1). Puisque l’État par défaut du bus est élevée, un accusé de réception est une confirmation que l’autre appareil est présent et qu’il a traité avec succès la transmission.
En plus de l’accusé de réception et de NACK, I2C a deux conditions de cadrage supplémentaire connues comme une condition de démarrage et un arrêt condition. Une condition de démarrage est transmise par le maître pour indiquer le début d’une transmission. Au cours d’une transition de début, les SDA ligne premières transitions d’élevé à faible, puis, après une bonne quantité de temps, le SCL fait la même chose. Une condition d’arrêt, qui est délivrée par le capitaine à la fin d’une transmission, est l’inverse. Tout d’abord la ligne SCL va de faible à élevé, puis le SDA fait la même chose. Notez que les lignes SDA et SCL sont élevées lorsque le bus est inactif.
Le premier octet dans une transmission I2C est l’octet de l’adresse. Il est envoyé par le capitaine et sert à déterminer ce que l’esclave lui pour parler et s’il faut effectuer un envoi ou de réception (également connu comme écrire et lire, respectivement). Une adresse de l’esclave est 7 bits de longs, et il y a plusieurs adresses réservées. Une telle adresse réservée est 0 x 00, qui est souvent considérée comme une écriture globale (écriture à tous les esclaves). Généralement, vous configurez adresse du périphérique esclave en liant pins sélectionnez adresse hautes ou basses, bien que sur un microcontrôleur, vous définissez l’adresse par programme comme nous le ferons sur le ATTiny2313. Le bit le moins significatif de l’octet de l’adresse est le bit de lecture/écriture qui indique s’il faut effectuer une lecture ou d’écriture. Si l’un, l’opération est a lire, si zéro une écriture.