Aproveche las ventajas de I3C para una comunicación CI a CI más rápida, sencilla y flexible

Por Art Pini

Colaboración de Editores de DigiKey de América del Norte

Las interfaces en serie e integradas para comunicaciones entre circuitos integrados (CI) están dominadas por el circuito integrado (I²C) y la interfaz periférica serial (SPI), disponibles desde la década de 1980. Estas interfaces se utilizan ampliamente para conectar sensores y CI de baja velocidad a unidades microcontroladoras (MCU) para la comunicación intraplaca en distancias cortas. Sin embargo, a medida que los sistemas digitales se hacen más rápidos, estas interfaces, limitadas a velocidades de datos típicas de 1 megabit por segundo (Mbit/s) para I²C y 10 Mbits/s para SPI, se han convertido en un factor limitante. Otras limitaciones, como las líneas dedicadas de interrupción o habilitación de chip, requieren conexiones de señal adicionales, lo que aumenta el número de cableados y la complejidad de las conexiones de bus.

El bus I3C (circuito interintegrado mejorado) está pensado para mejorar las comunicaciones entre CI. Ofrece velocidades de datos más altas, mayor flexibilidad y una auténtica interfaz de dos hilos con interrupciones en banda (IBI) en lugar de externas.

En este artículo se analizan las características de la interfaz I3C y por qué puede ser una buena alternativa a las interfaces serie I²C y SPI. Se utilizarán unidades de microcontrolador, interruptores CI y sensores típicos para mostrar su aplicación.

Buses de comunicaciones integrados

Las interconexiones en serie e integradas, como I²C y SPI, se utilizan desde hace muchos años para las comunicaciones intraplaca. Se utilizan principalmente como buses de comunicaciones entre sensores y dispositivos de interfaz de usuario y sus procesadores de control. El número de sensores en los sistemas típicos ha aumentado hasta diez o veinte en un teléfono y muchos más en los vehículos. Al mismo tiempo, los requisitos de comunicación son cada vez más exigentes para los diseñadores, que demandan mayor velocidad, menor consumo y menos conductores. Los diseñadores deben satisfacer estas demandas al tiempo que mantienen el control del procesador mediante interrupciones y líneas de habilitación (Figura 1).

El diagrama de las comunicaciones integradas debe soportar velocidades más altas (haga clic para ampliar)Figura 1: Las comunicaciones integradas deben soportar mayores velocidades, menor consumo y un número mínimo de cables. (Fuente de la imagen: NXP Semiconductors)

La tecnología actual implementa la interfaz de sensores y dispositivos de control del usuario mediante interfaces I²C de dos hilos o SPI de cuatro hilos. Las líneas de interrupción, habilitación y otras líneas de control están separadas de las líneas de reloj y datos, por lo que hay más líneas por interfaz.

Los diseñadores necesitan un enfoque de interfaz más progresista que elimine estos conductores adicionales de las interconexiones y gestione estas operaciones en banda utilizando únicamente las líneas de reloj y datos. Además, el bus debería poder funcionar a mayor velocidad y con menores pérdidas de potencia.

Interfaz I3C

La Mobile Industry Processor Interface (MIPI) Alliance desarrolló I3C para dar respuesta a estos requisitos. La interfaz está disponible como MIPI I3C para los miembros de MIPI y como MIPI I3C Basic con funcionalidad reducida para los no miembros. Al igual que las interfaces I²C y SPI heredadas, la forma mejorada es en serie y se implementa utilizando dos cableados para minimizar el número de pines y de rutas de señal entre componentes. Tiene una velocidad de datos de hasta 12.5 Mbits/s con un reloj de 12.5 megahercios (MHz) utilizando el modo de velocidad de datos única (SDR). Funciona a niveles de potencia más bajos y utiliza una arquitectura de diseño sencilla pero flexible.

En particular, el estándar I3C mantiene una compatibilidad limitada con el sistema I²C, lo que permite que los dispositivos I²C existentes se conecten al bus I3C, al tiempo que permite que el bus cambie a velocidades de datos más altas para la comunicación entre dispositivos I3C compatibles. En la figura 2, se comparan las configuraciones del sistema.

Diagrama comparativo de las configuraciones básicas de las interfaces I3C, I²C y SPI (haga clic para ampliar)Figura 2: Si se comparan las configuraciones básicas de las interfaces I3C, I²C y SPI, se observa que I3C ofrece mayor velocidad y un cableado más sencillo. (Fuente de la imagen: NXP Semiconductors)

La interfaz SPI de cuatro hilos puede funcionar más rápido y admite la comunicación dúplex completa. I²C se comunica mediante semidúplex a través de un bus de dos hilos formado por una línea de reloj (SCL) y otra de datos (SDA). Ambos requieren líneas adicionales para soportar interrupciones y otras funciones de control como la selección de chip. I3C reduce el número de cableados utilizados en la interfaz a dos, eliminando las líneas separadas de interrupción, habilitación y selección de chip utilizadas en I²C y SPI. Esta reducción del número de cables es una ventaja significativa en un sistema que requiere de diez a veinte sensores individuales conectados al procesador, cada uno con varios cables secundarios. Las interrupciones y otras líneas de control se sustituyen por IBI. En este método, un sensor o dispositivo de destino impone su dirección en la cabecera de direcciones del bus I3C para notificar una interrupción al procesador.

La diferencia de velocidad de reloj entre I²C e I3C es significativa. I²C suele funcionar a 100 kilohercios (kHz), 400 kHz o 1 MHz, mientras que I3C puede funcionar a 12.5 MHz. Anteriormente, se utilizaba interfaz periférica serial (SPI) para velocidades de reloj superiores a 1 MHz. La selección del diseño se hizo entre la velocidad de reloj y el número de cables. I3C ha cambiado esta situación al ofrecer velocidades de reloj y de datos más altas utilizando una topología de dos hilos real.

Las salidas push-pull, que pueden conmutar más rápido que los controladores de drenaje abierto o colector, contribuyen significativamente a la mayor velocidad de reloj del I3C. Para mantener la compatibilidad con los dispositivos I²C, el I3C puede alternar entre controladores de drenaje abierto y de empuje y extracción en función del estado del bus. El diseño de colector o drenaje abierto se utiliza durante el direccionamiento inicial o arbitraje, donde tanto los dispositivos I²C como I3C pueden estar en la línea simultáneamente. I3C utiliza empuje y extracción cuando la comunicación es unidireccional, y no hay posibilidad de que un dispositivo I²C se comunique simultáneamente.

Además del SDR estándar, I3C admite varios modos opcionales de alta velocidad de datos (HDR). Estos modos HDR funcionan con la misma velocidad de reloj, pero transmiten con una mayor densidad de datos. El primero de los modos HDR es el HDR de doble velocidad de datos (HDR-DDR), en el que los datos se sincronizan en ambos flancos de la señal de reloj, lo que proporciona casi el doble de velocidad de datos. Para un reloj de 12.5 MHz, el modo DDR alcanza una velocidad de datos efectiva de 20 Mbits/s.

Los símbolos ternarios HDR tienen dos versiones: Símbolo ternario HDR, puro (HDR-TSP) solo para dispositivos I3C, y símbolo ternario HDR, legado (HDR-TSL) para buses que incluyen tanto dispositivos I²C como I3C. Los modos de símbolos ternarios consiguen tres bits de datos por reloj utilizando símbolos de tres bits (ternarios) codificados en las líneas SCL y SDA.

El modo de transporte masivo HDR (HDR-BT) ofrece la mayor cantidad de datos al admitir comunicaciones a través de líneas de datos SDA cuádruples, dobles o simples. El resultado es un rendimiento ocho, cuatro o dos veces superior a la velocidad de datos a la misma frecuencia de reloj.

Estos aumentos en la velocidad de transferencia de datos permiten que los dispositivos estén encendidos durante un periodo más corto, reduciendo el ciclo de trabajo o útil del bus. Esto reduce el consumo de energía en comparación con I²C (Figura 3). El cambio de controladores de colector abierto con resistencias pull-up externas a controladores push-pull reduce aún más el consumo de energía, ya que las resistencias pull-up requieren una potencia considerable para funcionar.

Imagen de I3C que ofrece mejoras en la velocidad de datos y el consumo de energía (haga clic para ampliar)Figura 3: I3C ofrece mejoras en velocidad de datos y consumo de energía en comparación con I²C. (Fuente de la imagen: NXP Semiconductors)

Direccionamiento

I²C utiliza direcciones estáticas de 7 o 10 bits de longitud para cada dispositivo de bus. Esto se ha cambiado en I3C por el direccionamiento dinámico de 7 bits, en el que el maestro de bus establece la dirección del dispositivo durante la asignación dinámica de direcciones (DAA) y la almacena en un registro de dispositivo. El direccionamiento estático, como en el caso de un periférico I²C, puede seguir utilizándose en I3C.

Gracias al direccionamiento dinámico, las direcciones de los dispositivos pueden modificarse posteriormente. Admite la unión en caliente, que permite añadir un nuevo dispositivo al bus mientras funciona. El nuevo dispositivo, conectado al bus I3C, señala su presencia al maestro I3C enviando una solicitud de hot join. El controlador maestro acusa recibo de la solicitud y asigna una dirección para añadir el dispositivo al bus.

IBI

I3C es un verdadero bus de dos hilos que utiliza IBI en lugar de líneas de interrupción dedicadas como I²C. Los IBI se producen cuando un dispositivo de destino indica su disponibilidad al maestro bajando la línea SDA. A continuación, el maestro inicia el reloj en la línea SCL y el dispositivo de destino transmite su dirección al bus I3C para notificar una interrupción al controlador.

Códigos de comando comunes

Los Códigos de Comandos Comunes (CCC) son comandos estandarizados que el controlador puede transmitir como difusión general a todos los dispositivos I3C simultáneamente o a un dispositivo de destino específico. Estos comandos son para elementos relacionados con la gestión del bus. El formato del protocolo CCC comienza con la dirección de difusión I3C, que es reconocida por todos los dispositivos I3C del bus. Ningún dispositivo I²C del bus acusará recibo de la solicitud, ya que se trata de una dirección I²C reservada.

Cada comando incluye un campo DI descriptor de 8 bits y puede ir seguido de una carga útil de comando. Un comando enviado a un dispositivo específico pasa la dirección del dispositivo en el primer byte de la carga útil. Hay más de cuarenta comandos CCC, incluyendo:

  • Introducir asignación dinámica de direcciones (ENTDAA)
  • Establecer nueva asignación dinámica de direcciones (SETNEWDA)
  • Activar eventos (ENEC)/Desactivar eventos (DISEC)
  • Restablecer asignación dinámica de direcciones (RSTDAA)
  • Entrar en modo de alta velocidad de datos (ENTHDRx)
  • Obtener registro de características del dispositivo (GETDCR)

Los proveedores disponen de una gama específica de DI CCC para implementar sus propios comandos.

Detección y recuperación de errores

A diferencia de I²C, I3C incluye disposiciones para la detección y recuperación de errores. Seis métodos de error y recuperación para los dispositivos de destino son obligatorios, y otro es opcional. También, hay disponibles métodos adicionales de error y recuperación específicos para los errores del lado maestro.

Componentes compatibles con I3C

Como se muestra en la Figura 2 (izquierda), una red I3C básica comprende al menos un controlador maestro y uno o más objetivos I3C o esclavos. El maestro principal puede ser una unidad de microcontrolador como la LPC5534JHI48-00MP de NXP Semiconductors (Figura 4). Se trata de una MCU Arm® Cortex®-M33 de 32 bits con SRAM de 128 kilobytes (Kbytes) y Flash de 256 Kbytes. Su interfaz Flexcomm admite ocho interfaces serie diferentes, incluida I3C.

Imagen de la MCU LPC5534JHI48/00MP de NXP Semiconductor que incluye una interfaz I3C (haga clic para ampliar)Figura 4: La unidad de microcontrolador LPC5534JHI48/00MP incluye una interfaz I3C y otras siete interfaces en serie. (Fuente de la imagen: NXP Semiconductors)

El bus I3C permite añadir maestros secundarios introducidos en el bus como esclavos. El I3C puede tener varios maestros, pero solo uno puede ser el controlador. Una vez inscrito, el maestro secundario puede solicitar el estado del maestro actual y, si éste accede, su control pasa al maestro secundario solicitante.

Un sensor I3C típico es el P3T2030CUKAZ de NXP. Este sensor de temperatura convierte temperaturas de -40 °C a +125 °C en un valor digital de 12 bits con una precisión de ±2 °C. Incluye una interfaz serie en modo I²C y otra en modo I3C SDR.

Un sensor más sofisticado es el giroscopio y acelerómetro de tres ejes de sistemas microelectromecánicos (MEMS) ICM-42605 de TDK InvenSense. Como giroscopio de velocidad, mide velocidades de giro de ±15.2 a ±2000 grados por segundo (°/s). Su rango como acelerómetro es de ±2 a ±15 g. Detecta el movimiento, la inclinación, el toque o los pasos (podómetro). Como sensor I3C, funciona a 12.5 MHz en modo SDR y a 25 MHz en modo DDR.

Los CI como el interruptor I3C P3S0200GMX de NXP pueden reconfigurar el bus I3C enrutando las señales del bus I3C entre un controlador I3C y varios conjuntos de dispositivos de destino, o entre un único destino y varios controladores I3C según determine una MCU externa (Figura 5).

Diagrama del interruptor I3C P3S0200GMX de NXP Semiconductors que puede utilizarse para reconfigurar un bus I3C (haga clic para ampliar).Figura 5: El interruptor I3C P3S0200GMX puede utilizarse para reconfigurar un bus I3C enrutando señales de bus I3C entre un controlador I3C y varios conjuntos de dispositivos de destino, o entre un único destino y varios controladores I3C. (Fuente de la imagen: NXP Semiconductors)

El interruptor entre dos objetivos puede ser necesario si ambos objetivos tienen la misma dirección y no pueden residir en el mismo bus. Alternativamente, un único objetivo podría tener que ser compartido entre dos procesos, requiriendo un interruptor entre los dos controladores I3C.

Conclusión:

I3C es una interfaz serie que amplía el bus I²C aumentando su velocidad de datos, reduciendo el número de cableados y añadiendo flexibilidad al control del bus. Se trata de una mejora que amplía la utilidad de las interfaces periféricas serial (SPI) e I²C heredadas.

DigiKey logo

Descargo de responsabilidad: Las opiniones, creencias y puntos de vista expresados por los autores o participantes del foro de este sitio web no reflejan necesariamente las opiniones, las creencias y los puntos de vista de DigiKey o de las políticas oficiales de DigiKey.

Información sobre el autor

Image of Art Pini

Art Pini

Arthur (Art) Pini es un autor que contribuye DigiKey. Tiene una Licenciatura en Ingeniería eléctrica de la City College of New York, y un Máster en ingeniería eléctrica de la City University of New York. Tiene más de 50 años de experiencia en electrónica y ha trabajado desempeñando funciones de ingeniería y marketing en Teledyne LeCroy, Summation, Wavetek y Nicolet Scientific. Le interesa la tecnología de medición y tiene experiencia con los osciloscopios, analizadores de espectro, generadores de formas de onda arbitrarias, digitalizadores y medidores de potencia.

Información sobre la editorial

Editores de DigiKey de América del Norte