Notas del estudio FPGA
Protocolo IIC
1. IIC协议概念
2. IIC协议原理
2.1. 起始位,结束位
2.2. 器件地址
2.3. 存储器地址
2.4. 应答位
2.5. 读写时序
1. Concepto de protocolo
IIC IIC : bus de circuito integrado entre, bus de circuito integrado, es un bus de comunicación en serie, principalmente estructura maestro-esclavo. Generalmente se utiliza en ocasiones brillantes de datos pequeños, la distancia de transmisión es corta.
Caracteristicas :
- Conexión simple : en la capa física, el protocolo IIC tiene solo 2 líneas de bus: SCL (línea de reloj en serie), SDA (línea de datos en serie)
- Comunicación bidireccional : dos líneas pueden completar la entrada y salida de datos.
- Multimaestro y multiesclavo : se pueden conectar varios maestros y varios esclavos a un bus IIC. Al mismo tiempo, solo un host puede iniciar una transferencia al bus.
- Velocidad de transmisión rápida : 100 kbit / s en modo estándar, 400 kbit / s en modo rápido y 3,4 Mbit / s en modo de alta velocidad. Transmisión de datos bidireccional entre dispositivos maestro y esclavo en bytes.
- Identificación única : cada dispositivo en el bus tiene una identificación única. Solo cuando la transmisión en el bus coincide con la ID del dispositivo, el dispositivo responde a la transmisión en el bus. No habrá conflictos.
2. Principios del Protocolo de la CII
-
2.1 Bit de inicio, bit de finalización Bit de
inicio : cuando la señal SCL es alta, SDA aparece con un flanco descendente
bit bit de parada de transmisión de datos de inicio : nivel alto de SCL, flanco de subida de SDA
estado inactivo del bus de transmisión de datos de parada : nivel alto de SCL; nivel alto de SDA ;
Nivel alto de SCL : los datos SDA son estables; Nivel bajo de SCL: cambios en los datos de SDA -
2.2. Dirección del dispositivo
Secuencia de transmisión: de mayor a
menor Ej. Bits de selección de chip: 3'b100
Lectura: 1010_100_1
Escritura: 1010_100_0 -
2.3. Dirección de memoria
Longitud: 1 o 2 bytes (relacionado con la cantidad de unidades de almacenamiento del dispositivo)
Ubicación: Después de que el host recibe el ACK, el host envía la dirección de almacenamiento -
2.4 Bit de reconocimiento
Cuando el remitente (imagen: maestro) termina de enviar datos de 8 bits, espera a que el receptor (imagen: esclavo) envíe una señal de respuesta para indicar si se han recibido los datos. 0: respuesta, 1: no respuesta. (La señal de respuesta es el ciclo de reloj inmediatamente después de que se envían los datos de 8 bits (Figura: # 9)) -
2.5. Tiempo de lectura y escritura
-
Operación de lectura : la secuencia de tiempo completa de la computadora host lee uno (múltiples) bytes de datos de la dirección de almacenamiento especificada del esclavo especificado en el bus :
① El host establece SDA como una salida;
② El host inicia una señal de inicio;
③ El host transmite el byte de dirección del dispositivo, donde el bit más bajo es 0, lo que indica una operación de escritura;
④ El host establece SDA como una entrada de puerta de tres estados y lee la señal de respuesta del esclavo;
⑤ Lee la señal de respuesta con éxito, el host configura la salida SDA y transmite una dirección de 1 byte Datos;
⑥ El host establece SDA como una entrada de puerta de tres estados y lee la señal de respuesta del esclavo;
⑦ Cuando la señal de respuesta se lee correctamente, el host configura la salida SDA . Para un dispositivo de segmento de dirección de dos bytes, transfiera el número de dirección de byte bajo
⑧ datos; para dispositivos de segmento de dirección de 1 byte, sin este paso;
⑨ El host inicia una señal de inicio;
⑩ El host transmite el byte de dirección del dispositivo, el bit más bajo es 1, que indica una operación de lectura;
⑪ Establecer SDA como una entrada de puerta de tres estados, leer la respuesta de la señal esclava;
⑫ La señal de respuesta se lee correctamente, el host establece SDA como una entrada de puerta de tres estados y lee una byte de datos en el bus SDA.
⑬ No
genera señal de respuesta (nivel alto) (no es necesario configurarlo en nivel alto de salida), porque el bus se elevará automáticamente);
⑮ El host genera un bit STOP para terminar la transmisión. -
Operación de escritura : la secuencia completa del maestro escribiendo uno ((múltiples)) datos designados a la dirección de salida designada del esclavo designado en el bus.
Proceso de operación del maestro :
① El maestro establece SDA como salida;
② El maestro inicia la señal de inicio ;
③ El maestro transmite la dirección del dispositivo Byte, el bit más bajo del cual es 0, lo que indica una operación de escritura;
④ El host establece SDA como una entrada de puerta de tres estados y lee la señal de respuesta del esclavo;
⑤ Cuando la señal de respuesta es leer correctamente, el host establece SDA como salida y transmite 1 byte de datos de dirección;
⑥ la entrada de puerta de tres estados del host SDA, lee la señal de respuesta del esclavo;
⑦ lee correctamente la señal de respuesta, las direcciones de byte bajo para dos dispositivos, transmite los datos de la dirección byte, 1 byte para el dispositivo de campo de dirección, el host organizado SDA es la salida, que transmite los datos que se escribirán;
⑧ Establezca SDA como la entrada de puerta de tres estados, lea la señal de respuesta del esclavo, para el segmento de dirección de dos bytes dispositivo, vaya al paso 9; para el dispositivo de segmento de dirección de 1 byte, salte directamente
Vaya al paso 11; ⑨ Lea la señal de respuesta correctamente, el host establece SDA como salida y transfiera los datos que se escribirán (para la dirección de dos bytes dispositivos de segmento);
⑩ Establecer SDA como una entrada de puerta de tres estados, leer la señal de respuesta del esclavo (dispositivo de segmento de dirección de dos bytes);
⑪ Cuando la señal de respuesta se lee correctamente, el host genera el bit STOP para terminar la transmisión.
Materiales de referencia: "Guía práctica de verificación y diseño de sistemas FPGA"
[Nota]: notas de estudio personal, si hay errores, no dude en aclararme, esto es cortés ~~~