Paso 2: Qué es I2C - 2
Un maestro puede cualquier petición para Enviar o recibir datos de un esclavo. A Enviar, el maestro escribe los datos en el bus y el esclavo Lee los datos del autobús y lo almacena en su memoria. Durante un recibir, el maestro lee el bus de datos enviados por el esclavo. En ambas situaciones, el Máster proporciona la señal de reloj SCK.
Al final de cada byte (que es de 8 bits) transmitido en el bus I2C, el dispositivo receptor debe proporcionar un reconocimiento (ACK). El único momento en que esto no sucede es cuando el maestro recibe datos desde el esclavo, en que termina la transmisión con un no-reconocimiento (NACK o NAK) que indica que el esclavo debe dejar de enviar datos. Un ACK está representado por un estado bajo (0 o tiró-abajo) mientras que un NACK es representado por un estado alto (no tiró-abajo o 1). Puesto que el estado predeterminado del autobús es alto, un ACK es una confirmación de que el dispositivo está presente y ha procesado con éxito la transmisión.
Además de ACK y de NACK I2C tiene dos condiciones de estructura adicional, conocidas como una condición de inicio y una condición de parada. Una condición de inicio es transmitida por el maestro para indicar el inicio de una transmisión. Durante una transición de inicio, las SDA línea primera las transiciones de alto a bajo y luego, después de una notable cantidad de tiempo, el SCL hace lo mismo. Una condición de parada, que se emite por el maestro al final de una transmisión, es al revés. En primer lugar la línea SCL va de bajo a alto, entonces la SDA hace lo mismo. Tenga en cuenta que las líneas SDA y SCL son altas cuando el autobús está inactivo.
El primer byte en una transmisión I2C es el byte de dirección. Esto es enviado por el maestro y se utiliza para determinar qué esclavo para hablar y si se va a realizar un envío o recibir (también conocido como escribir y leer, respectivamente). Una dirección de esclavo es 7 bits de largo, y hay varias direcciones reservadas. Un tal dirección reservada es 0 x 00, que a menudo se considera una escritura global (escritura a todos los esclavos). Generalmente configure dirección del dispositivo esclavo atando alfileres Seleccione Dirección altas o bajas, aunque en un microcontrolador establezca la dirección mediante programación como hacemos en el ATTiny2313. El bit menos significativos del byte de dirección es el bit de lectura/escritura que indica si se debe realizar una lectura o escritura. Si uno, la operación es una lectura, si cero a escribir.