Por qué y cómo usar la interfaz periférica serial para simplificar las conexiones entre distintos dispositivos

Por Art Pini

Colaboración de Editores de Digi-Key de América del Norte

Los sistemas integrados usan uno o más procesadores o microcontroladores para ejecutar operaciones especializadas dentro de un sistema más complejo. Estos controladores integrados necesitan comunicarse con otros componentes del sistema, sensores e incluso otros controladores. Si bien es un lugar común, las interfaces seriales y los protocolos complejos pueden ser excesivamente complejos de programar y a la hora de solucionar problemas, especialmente si la cantidad de dispositivos con la que se comunican es reducida.

Los diseñadores necesitan microcontroladores, periféricos y sensores con una interfaz digital dispositivo a dispositivo simple que pueda manejar datos de longitud arbitraria a alta velocidad y eliminar las complejas tareas de programación vinculadas al protocolo.

La solución simple es elegir controladores con una interfaz periférica serial (SPI), una solución para crear una interfaz entre el controlador y unos pocos IC periféricos o sensores locales. Se trata de una interfaz síncrona simple que usa direccionamiento de hardware y opera a una velocidad de reloj de hasta 50 megahertz (MHz). La SPI no usa un protocolo complicado que requiera direccionamiento y comprobación de estado. En cambio, se trata de una interfaz básica para la rápida transferencia de datos sin la sobrecarga de programación de un bus de interfaz más sofisticado.

En este artículo se tratarán los aspectos básicos de la interfaz SPI, incluidos los diversos modos de operación. A continuación, se presentarán microcontroladores y otros dispositivos que poseen una interfaz SPI y se mostrará cómo aplicarla.

¿Qué es la SPI?

La SPI fue desarrollada por Motorola (ahora parte de NXP Semiconductors) aproximadamente en 1985. Se trata de una interfaz serial síncrona prevista para la comunicación entre dispositivos a corta distancia. Desde entonces, se ha convertido en un estándar de-facto empleado por muchos fabricantes de semiconductores, especialmente en microprocesadores y microcontroladores.

El motivo de la popularidad de SPI radica en sus muchas ventajas. La primera es que es una interfaz direccionada de hardware simple que ofrece completa flexibilidad para la cantidad de bis transferidos. Usa un modelo de maestro-secundario con un maestro simple y puede manejar varios dispositivos secundarios usando comunicaciones dúplex que operan a velocidades de reloj de hasta 50 MHz. No usa un protocolo estándar y transfiere solo paquetes de datos, lo que la hace ideal para transferir flujos de datos largos.

SPI usa un máximo de cuatro líneas de señal (Figura 1). El dispositivo maestro, por lo general un procesador o controlador, suministra y controla el reloj (SCK) y líneas de selección de chip (CS). La operación multiplexor completa se maneja a través de las líneas de datos Master Out Slave In (MOSI) y Master In Slave Out (MISO). En un maestro individual simple, con configuración del dispositivo secundario individual, la línea de selección de chip puede eliminarse y se puede forzar la entrada de CS al dispositivo secundario al estado lógico habilitado. Si el dispositivo secundario solo puede enviar datos (comunicación semidúplex), luego la línea MOSI también puede eliminarse, y así reducir el conteo de señales adicionalmente. Los datos salen a través de la señal del reloj de tal forma que la transferencia de datos se asemeja a un registro de turnos con un bit cambiado para cada reloj.

Diagrama de una conexión dúplex de SPI básica

Figura 1: La conexión dúplex SPI básica usa dos líneas de datos (MOSI, MISO), una línea de reloj (SCK) y una línea de selección de chip (CS). MOSI en un dispositivo secundario es, a veces, rotulada como entrada de datos de dispositivo secundario (SDI). MISO puede denominarse como salida de datos secundarios (SDO). (Fuente de la imagen: Digi-Key Electronics)

Hay dos enfoques para manejar varios dispositivos secundarios (Figura 2).

Diagrama de dos configuraciones para tratar con interfaces de varios dispositivos secundarios

Figura 2: Dos configuraciones para tratar con interfaces de varios dispositivos secundarios. La conexión directa requiere una selección de chips para cada dispositivo secundario. La conexión encadenada usa una selección de chip individual y combina todos los datos en una sola línea. (Fuente de la imagen: Digi-Key Electronics)

La conexión directa usa una línea de selección de chips para cada dispositivo secundario. La mayoría de los microprocesadores posee tres o cuatro líneas de selección de chip. Esto limita la cantidad máxima de dispositivos secundarios al número de líneas de selección de chip. En la mayoría de los casos, esto no resulta ser un problema, pero si un diseño requiere más dispositivos en el bus, se pueden configurar algunos usando el enfoque encadenado. Con un encadenamiento, se usa una selección de chips comunes para varios dispositivos secundarios y los datos se transfieren hacia afuera en una línea de datos común. Una vez más, si se usa el modelo de los dispositivos secundarios SPI como un registro de turnos, los datos de los dispositivos secundarios se propagan en un flujo multiplexado serial.

Modos de cronómetro de la SPI

El maestro controla y genera el reloj. Los dos atributos de reloj son la polaridad del reloj (CPOL) y la fase de reloj (CPHA). Estos controlan el borde del reloj activo, donde se cronometra el dispositivo secundario en relación con los datos. CPOL = 0 establece el reloj en inactivo a una lógica 0. CPOL = 1 presenta el reloj inactivo en la lógica 1. CPHA = 0 establece los datos en el reloj en el borde principal, y CPHA = 1 establece los datos en el reloj en el borde de rastreo (Figura 3).

Diagrama de selección del modo de cronómetro de la SPI

Figura 3: La selección del modo de cronómetro de la SPI fija el borde de reloj activo en el que se toman muestras de los datos. (Fuente de la imagen: Digi-Key Electronics)

La configuración de las líneas CPOL y CPHA en el maestro determina la polaridad del reloj y el borde activo para la cronometrización de los datos. El Modo 1 es el que se usa con más frecuencia, pero el diseñador puede acceder fácilmente a los otros tres modos.

Los tres componentes de señales de una transferencia de la SPI pueden observarse con un osciloscopio (Figura 4). En este ejemplo, se transfieren paquetes de datos de 8 bits. Se usa el osciloscopio de Teledyne LeCroy HDO4104A con su opción de decodificación serial de la SPI para observar la transferencia.

Imagen de cambio de la SPI según se visualiza con un osciloscopio Teledyne LeCroy HDO4104A

Figura 4: Ejemplo de un cambio de la SPI según se visualiza con un osciloscopio Teledyne LeCroy HDO4104A con una opción de decodificación serial. Las formas de onda son de la siguiente manera: el trazo superior es la línea de datos, el trazo del medio es el reloj y el trazo inferior es la selección de chip. La superposición azul en el trazo de datos muestra el contenido decodificado en hexadecimal. (Fuente de la imagen: Digi-Key Electronics)

El reloj del Modo 1 comprende grupos de ocho pulsos con una serie inactiva en 0 (CPOL = 0), y los datos se cronometran en el borde de rastreo o decreciente (CPHA = 1). El osciloscopio usado en este ejemplo posee una opción de decodificación serial que decodifica el contenido de datos. El contenido de datos se lee en hexadecimal en la superposición de color azul en el rastreo de datos. La decodificación está asociada solamente a los datos que se presentan cuando se activa la línea de selección de chip (nivel 0). Hay 17 ráfagas del reloj en total, pero solo cinco de estas corresponden a estados activos de selección de chip.

La tabla a continuación de las cuadrículas de visualización de las formas de onda enumera el contenido de datos activo junto con el tiempo vinculado al disparador del osciloscopio para cada paquete y la velocidad del reloj medida, que es 100 kbits/s en este caso. La cantidad de ciclos del reloj en cada ráfaga establece la cantidad de bits de datos que salen del dispositivo secundario.

Opciones de E/S del microprocesador

El Microchip Technology ATtiny816-MNR es común de muchos microcontroladores en que admite distintas interfaces de E/S (Figura 5). Este controlador en particular usa la arquitectura AVR® RISC de alto rendimiento y bajo consumo de energía y puede ejecutarse a hasta 20 MHz. Está respaldado por hasta 4 u 8 Kbytes de Flash, 256 o 512 bytes de SRAM y 128 bytes de EEPROM, todo en un paquete de 20 clavijas.

Diagrama en bloques del microcontrolador Microchip Technology ATtiny816

Figura 5: Un diagrama en bloques del microcontrolador Microchip Technology ATtiny816 resalta los puertos de E/S. Este controlador incluye un puerto SPI así como también un puerto USART; este último puede configurarse como segundo SPI. (Fuente de la imagen: Microchip Technology)

Por el lado de la interfaz, el microcontrolador incluye un transmisor-recepto universal síncrono y asíncrono (universal synchronous and asynchronous receiver transmitter, USART), una interfaz de dos cables (two-wire interface, TWI) compatible con I2C, y SPI. El USART puede configurarse como un segundo puerto SPI.

El SPI permite la comunicación dúplex entre un dispositivo AVR y los dispositivos periféricos o entre varios microcontroladores. El periférico del SPI puede configurarse como maestro o secundario, que permite la comunicación entre microcontroladores.

Sensores basados en SPI

En complemento a la gran cantidad de microprocesadores y microcontroladores que incorporan SPI, se presenta una amplia variedad de sensores que ofrecen datos digitales a través de SPI. Por ejemplo, el sensor de temperatura digital TC77-3.3MCTTR de Microchip Technology es un sensor de temperatura digital de acceso serial previsto para aplicaciones de bajo costo y factor de forma pequeño. El TC77 cubre un rango de temperatura de -55 °C a +125 °C. Funciona con un suministro de 2,7 voltios a 5,5 voltios, emite 250 microamperios (µA) durante su funcionamiento y tiene un modo de apagado de baja energía disponible que emite 1 µA.

En una aplicación típica, el sensor de temperatura se conecta al procesador a través de una conexión SPI estándar. Sus datos de temperatura tiene el siguiente formato: una palabra digital de 13 bits, tal como se muestra en la Figura 6.

Diagrama del sensor de temperatura TC77 de Microchip Technology

Figura 6: El TC77 de Microchip Technology es un sensor de temperatura fácil de usar que es pequeño y de bajo costo. Puede conectarse rápidamente a un controlador o procesador, y transfiere lecturas de temperatura como palabras digitales de 13 bits. Tal como se muestra en el diagrama de temporización, la comunicación se inicia mediante la activación de la línea CS a una lógica 0. (Fuente de la imagen: Microchip Technology)

La figura muestra un diagrama de temporización de una operación de lectura del registro de temperatura de T77. La comunicación se inicia mediante la activación de la línea CS al llevarla a una lógica 0. El sensor transmite luego el primer bit de datos. El microcontrolador lee los datos en el borde creciente de SCK. El borde decreciente de SCK se usa luego para expulsar el resto de los datos del sensor. Esta es una transferencia del Modo 1 como el ejemplo anterior, pero con una palabra de datos más larga.

Extensión del alcance de SPI

Además de la inclusión de SPI en muchos microprocesadores y microcontroladores, varios fabricantes de IC han incrementado la funcionalidad del bus. Un buen ejemplo es la interfaz de comunicaciones aisladas isosSPI LTC6820 de Analog Devices. Esta IC ofrece aislamiento galvánico entre dos dispositivos SPI que se comunican a través de una conexión de par trenzado individual usando señalización individual (Figura 7). Este modo de señalización extiende el rango útil de la interfaz SPI de LTC6820 a hasta 100 metros (m), aunque a una velocidad del reloj reducida de la velocidad nominal de 1 Mbit/s por una distancia de 10 m.

Diagrama de aisladores LTC6820 de Analog Devices

Figura 7: Un par de aisladores LTC6820 proporcionan aislamiento galvánico entre dos dispositivos SPI. La IC admite transferencias de datos a hasta 1 Mbit/s a distancias a 10 m, y a velocidades de reloj reducidas por una distancia de hasta 100 m. (Fuente de la imagen: Analog Devices)

El aislamiento se proporciona mediante transformadores de pulsos, una técnica con frecuencia usada en aplicaciones de redes industriales y al leer sensores remotos.

Conclusión

La SPI satisface la necesidad de una interfaz de baja sobrecarga simple y de bajo costo en aplicaciones en las que la fuente puede describirse como un flujo de datos, en contraposición a leer y escribir datos a ubicaciones con dirección. Esto hace que sea ideal para manejar comunicaciones de dispositivo a dispositivo entre microcontroladores y sensores, digitalizadores, dispositivos de procesamiento de señales digitales, así como otros procesadores.

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 Digi-Key Electronics o de las políticas oficiales de Digi-Key Electronics.

Información sobre el autor

Art Pini

Arthur (Art) Pini es un autor que contribuye Digi-Key Electronics. 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 Digi-Key de América del Norte