Principio del protocolo de comunicación I2C

El protocolo de comunicación I2C se usa ampliamente en muchos proyectos, como adquisición de datos, cámaras y varias microcomputadoras de un solo chip. El hardware I2C es simple de implementar y tiene una gran escalabilidad. Se usa ampliamente en la comunicación entre módulos de circuitos integrados.

La comunicación tradicional de los dispositivos se realiza a través del puerto serie, pero cuando tres dispositivos o incluso cuatro dispositivos más se comunican entre sí, este método de conexión del puerto serie será muy complicado.

Aunque la implementación de hardware de I2C es simple, no significa que no sea importante, y requiere una comprensión profunda y completa del principio IIC.

Para más artículos técnicos, siga -  el protocolo de comunicación más utilizado - I2C

Tabla de contenido

1. Descripción general de I2C

2. Operaciones de lectura y escritura I2C

3. Proceso de escritura de datos I2C


1. Descripción general de I2C

I2C (también conocido como IIC, Inter-Integrated Circuit), el bus de circuito integrado, es un bus serie de dos hilos desarrollado por PHILIPS para conectar microcontroladores y sus periféricos. Se utiliza principalmente para la comunicación maestro-esclavo entre el maestro y el esclavo en el caso de un volumen de datos pequeño y una distancia de transmisión corta.

El bus I2C se compone de SDA (línea de datos) y SCL (línea de reloj) para formar una línea de comunicación, que se puede utilizar para enviar y recibir datos.Es un protocolo de comunicación semidúplex.

I2C admite líneas de señal compartidas por múltiples dispositivos, admite múltiples maestros de comunicación y múltiples esclavos de comunicación.

Cada dispositivo en el bus se puede usar como dispositivo maestro o dispositivo esclavo, y cada dispositivo corresponderá a una dirección única. Los dispositivos maestro y esclavo usan esta dirección para identificar y determinar con qué dispositivo comunicarse.


2. Operaciones de lectura y escritura I2C

Después de comprender los principios básicos de I2C, echemos un vistazo a cómo realizar operaciones de lectura y escritura entre dispositivos.

En primer lugar, es necesario comprender el principio de transmisión de datos entre la línea de reloj SCL y la línea de datos SDA.

SCL está activo en el nivel alto, cuando la línea de datos SDA está en el flanco descendente, es 0 lógico, y cuando SCL y SDA están en nivel alto, es 1 lógico.

Cuando el reloj SCL continúa enviando una onda cuadrada, la línea de datos SDA cambia los niveles alto y bajo según las necesidades para formar un 0/1 lógico, que se puede combinar para obtener una cadena de valores binarios.

Como se muestra en la figura, el valor obtenido mediante la combinación de SCL y SDA es: 1010 000.

¡Esto verá el diagrama de tiempo más básico!


3. Proceso de escritura de datos I2C

En el modo de comunicación de "un maestro y múltiples esclavos" en I2C, ¿cómo se comunica el dispositivo maestro con el dispositivo esclavo? ¿Cómo garantizar la forma de acceder al dispositivo esclavo? Esto se hace a través de la línea de reloj SCL y la línea de datos SDA para desarrollar conjuntamente un protocolo.

A continuación, paso a paso desde la señal de inicio hasta cómo distinguir el dispositivo esclavo, cómo leer y escribir con el dispositivo esclavo, hasta la señal final final,

¡Hablemos de todo el proceso uno por uno, todos siéntense en el banco pequeño y escuchen con atención!

La comunicación I2C se divide en dos partes: lectura de datos y escritura de datos. Primero, se explicará el proceso de escritura de datos. El proceso de lectura de datos es similar y se presentará por separado a continuación.

El proceso de escritura de datos:

La línea de reloj y la línea de datos actúan conjuntamente sobre la escritura de datos de cada cuadro, al mismo tiempo que se envía o se lee la información .

Este es un marco de datos de escritura estándar, que incluye bit de inicio, dirección de dispositivo, bit de respuesta, dirección de registro de escritura, datos de escritura y bit de parada.

El primer paso es la señal de partida . En estado inactivo, tanto la línea de datos como la línea de reloj están en un nivel alto, y cuando la línea de datos está en el borde descendente, es la señal de inicio para escribir datos.

El segundo paso es la dirección del dispositivo . Diferentes dispositivos esclavos usan diferentes códigos de dirección, y cada dispositivo tiene un código de dirección único de 7 bits , dirección A0-A6.

El tercer paso es leer y escribir bits y reconocer señales . Al escribir datos, la posición de lectura y escritura es 0 y los datos de lectura se establecen en 1. Como se muestra en la figura anterior, la posición de lectura y escritura es 0 para escribir datos. La señal de respuesta se envía desde el dispositivo al host, 0 significa recibida, 1 significa no recibida o lectura completa .

El cuarto paso es registrar la dirección . La dirección de registro del dispositivo es de 8 bits, y la dirección de registro de 8 bits enviada puede acceder a 256 bytes. Si la dirección de registro a la que se accede es 0000 0001, simplemente complete 0X01 en la dirección de registro.

Después de pasar la dirección del registro, también se requiere una señal de respuesta y se completa con 0.

El quinto paso son los datos a escribir . Los datos de escritura también son de 8 bits, y los datos de 8 bits se completan en la posición de la dirección de registro previamente completada. Si los datos 1000 1111 se escriben en la dirección de registro 0X01, el principio es el que se muestra en la siguiente figura.

Una vez que se escriben los datos, se notifica al host que la escritura se realizó correctamente y se envía una señal de respuesta 0.

El sexto paso, el bit de parada . Al contrario del bit de inicio, cuando la línea de reloj SCL está alta, la línea de datos SDA va de baja a alta para completar una trama de transmisión de datos.

Lo anterior es para completar un marco de datos de escritura estándar.

Por ejemplo, para un dispositivo esclavo con una dirección de 000 0001, escriba 1111 1111 datos en el registro 0X0F, ¿cómo completa IIC el marco de datos de escritura? Como se muestra abajo.


4. Proceso de lectura de datos I2C

El proceso de lectura de datos es similar, excepto que hay una operación de dirección de dispositivo más.

Como se muestra arriba, lea 000 0001 de los datos 0101 0000 de 0X0F del dispositivo.

Entre ellos, en el proceso de lectura del marco de datos, hay dos puntos a tener en cuenta:

1. El bit de lectura y escritura de la dirección del dispositivo es 0 por primera vez, y la dirección del dispositivo se obtendrá nuevamente después de obtener la dirección de registro, y la posición de lectura y escritura es 1 por segunda vez , y luego se recibirán los datos de lectura.

2. La señal de respuesta final es 1 , que se envía desde el maestro al esclavo, indicando que la lectura está completa.


Este artículo solo presenta el principio de I2C y no explica la implementación del código.Después de todo, es más fácil comprender profundamente el proceso de comunicación I2C al comprender todo el mecanismo de implementación a través del principio.

¡Espero que puedas aprender el principio de la comunicación I2C a través de este artículo!

Supongo que te gusta

Origin blog.csdn.net/qrx941017/article/details/131297037
Recomendado
Clasificación