Analizar el bus de Interfaz Periférica en Serie (SPI)

Un bus en serie puede ser más eficiente que el bus paralelo tradicional. Pero hay desafíos a la hora de representar y dar sentido al flujo de datos en serie en el contexto de la sincronización del reloj. Estas dificultades se pueden resolver utilizando las capacidades multicanal de osciloscopios avanzados, como los instrumentos Tektronix Serie 3000.

 tek serie 3000
Los osciloscopios Tektronix Serie 3000 pueden mostrar la actividad del bus en serie, incluidos datos y señales de reloj en el mismo eje de tiempo.

La clave para comprender e interpretar los datos en serie y los flujos de reloj radica en comprender el funcionamiento interno de cada tipo individual de bus de datos. En concreto, considere el bus de Interfaz Periférica en Serie (SPI). Se parece al bus I2C, pero hay diferencias significativas. Ambos están organizados en torno a arquitecturas maestro / esclavo. Pero el cableado entre el amo y los esclavos es radicalmente diferente.

 Arquitectura SPI
Las conexiones de bus SPI consisten en MOSI, MISO y una línea de selección de esclavos separada del maestro a cada esclavo. Lógica: el bajo voltaje hace que el esclavo se active.

Normalmente, SPI opera con un solo dispositivo maestro y un número de esclavos, aunque tan pocos como un esclavo es posible. Las líneas son las siguientes:
• Una línea de reloj serie se ejecuta desde el maestro hasta cada esclavo. El reloj existe en el maestro y se transmite una señal de reloj de onda cuadrada al esclavo que está activo. La frecuencia de reloj es elegida por el usuario, pero no puede ser más rápida de lo permitido para el dispositivo esclavo más lento. Por lo tanto, se deben consultar hojas de datos de esclavos individuales al configurar el sistema.

* Master-in, slave-out (MISO). Esta línea transmite datos del esclavo activo al maestro. Debido a que MOSI y MISO son líneas separadas, los datos se pueden transmitir en ambas direcciones simultáneamente, en detrimento de ninguna de las dos.
* Selección de esclavos (SS). Una línea separada se ejecuta a cada esclavo. Normalmente, cuando el sistema se enciende, un alto voltaje lógico del maestro está presente en el pin SS de cada dispositivo esclavo. Para activar un esclavo, el maestro cambia el voltaje en esa línea SS a baja lógica. Este método de selección de esclavos es en lugar del concepto de direccionamiento implementado en el bus I2C.

El bus SPI a veces se denomina esquema de tres hilos, o esquema de cuatro hilos si se cuenta una línea SS para un solo esclavo. No hace falta decir que cada uno de estos cables es en realidad un circuito de dos cables, por lo que se requiere una línea de retorno de tierra, pero no se considera en la nomenclatura numérica. Un solo conductor conectado a tierra será suficiente para completar todos estos circuitos.

La placa Tektronix MDO Demo 1 proporciona numerosas salidas, incluidas señales de datos y reloj de bus I2C y SPI. Está diseñado para ir con los osciloscopios de la serie MDO4000 de Tektronix, pero también funciona bien con los instrumentos de la serie MDO3000.

La placa Tektronix MDO Demo 1 recibe alimentación a través de un cable USB tipo T inusual que tiene dos conectores USB tipo A en un extremo. Se insertan en las dos ranuras USB del osciloscopio. La razón es que los requisitos de alimentación de la placa de demostración 1 son tales que si se utilizara un cable USB estándar, sobrecargaría una sola salida USB en el osciloscopio.

Un led rojo y dos verdes indican la recepción de energía del osciloscopio y que la placa está lista para funcionar. Hay numerosos terminales de salida en la placa. Son adecuados para la conexión de la sonda con puntas de gancho de sonda y clips de cocodrilo de plomo de retorno a tierra.

 Pantalla de señal SPI
Señales de reloj SPI, MOSI y MISO mostradas en el alcance MDO3104 de Tektronix.

Para mostrar señales de bus SPI, las sondas TPP 1000 10: 1 se conectan a las entradas de canal analógico Uno, Dos y Tres. Todos los cables de retorno de tierra se conectan a uno de los terminales de tierra de la placa, y las tres puntas de sonda están enganchadas a los terminales de señal de reloj SPI, MISO y MOSI. Como siempre, los cables de retorno a tierra deben conectarse primero, antes de las puntas de la sonda.

Se podría utilizar un cuarto canal de osciloscopio para mostrar una señal de selección de esclavos. Pero debido a que esta señal es solo un voltaje lógico-alto o lógico-bajo, se puede verificar en ambos extremos del bus SPI utilizando un multímetro estándar de alta impedancia o una sonda lógica.

A continuación, el osciloscopio muestra los datos SPI y las señales de reloj. Usando los botones de escala de Canal Uno, Canal Dos y Canal Tres seguidos de Autoajuste, los pulsos se pueden ampliar para facilitar la lectura y la adquisición se puede detener para hacer que la pantalla sea más estable. Las perillas del inspector de ondas se pueden usar para desplazar y ampliar los rastros para una vista más cercana. Entonces es una cuestión simple comparar puntos en el reloj y flujos de datos para determinar el estado lógico (alto o bajo) en cualquier momento. El cursor vertical, movido girando la Perilla multipropósito a, es útil para ver cómo se alinean estos trazos con respecto al tiempo.

Hemos visto cómo se pueden visualizar los datos del bus serie SPI y las señales de reloj con un osciloscopio. Las sondas se pueden conectar a terminales similares en una pieza de equipo electrónico en funcionamiento (o que no funciona). (Asegúrese de volver a ejecutar la adquisición.)

A diferencia de I2C, no hay un solo estándar para SPI. En la década de 1980, fue desarrollado por Motorola para su uso por el microcontrolador de la serie 68000. SPI es un estándar de facto más que oficial, y como tal sigue siendo orgánico y sujeto a cambios.

Otros fabricantes han introducido SPI con variaciones. Por lo tanto, al implementar el diseño, es necesario consultar las hojas de datos. Por ejemplo, algunos dispositivos esclavos requieren un borde de caída en la señal SS para iniciar la comunicación. Cuando hay varios tipos de esclavos, se requieren diferentes señales de inicio del maestro. Al igual que I2C, SPI es un autobús serie de corto recorrido. Debido a su bajo requerimiento de energía, a menudo se usa en teléfonos celulares, asistentes digitales personales y equipos móviles similares para implementar la interacción entre CPU, pantalla, teclado y circuitos integrados.

Las variaciones incluyen omitir la línea MISO cuando la comunicación de esclavo a maestro es innecesaria. Además, la línea SS no es necesaria cuando solo hay un esclavo, y el pin de selección de esclavo está conectado a tierra para que siempre esté activo.

Si bien es cierto que SPI es una interfaz serial síncrona (SSI), difiere radicalmente del protocolo SSI, que se caracteriza por una señalización diferencial y un canal de comunicación simple único.

Registros de cambios SPI Hay transmisión full-duplex, tanto MOSI como MISO, durante cada señal de reloj. Se envía un bit en cada dirección en las dos líneas separadas. El procedimiento habitual emplea dos registros de turnos, uno en el maestro y otro en el esclavo. La transmisión dúplex continúa a través de un número suficiente de ciclos de reloj para completar la transmisión. De esta manera, el maestro y el esclavo adquieren los registros tal como se transmiten a través de las dos líneas. Si quedan más datos, los registros de turnos se recargan y la transmisión comienza de nuevo.

Este proceso continúa a través de tantos ciclos de reloj como sea necesario, con lo cual el maestro permite que la señal de selección vaya a logic high, anulando la selección del esclavo. Las transmisiones son a menudo de 8 bits, pero hay variaciones como 12 bits para muchos DAC y ADC, y 16 bits para controladores de pantalla táctil.

Debido a las diferencias de hardware y protocolo de facto, el bus SPI tiene un espectro de ventajas y desventajas con respecto a I2C y otros tipos de bus. Las ventajas incluyen la capacidad de dúplex completo simplemente agregando otra línea. Además, hay una buena integridad de la señal, transmisión de alta velocidad y más transmisión de datos potencial en comparación con I2C. Además, el contenido del mensaje es ilimitado y no está restringido a unidades de datos de 8 bits. En general, el requisito de potencia es menor que en I2C porque las resistencias pull-up son innecesarias. SPI también es confiable porque no necesita arbitraje, y no hay necesidad de direcciones de esclavos únicas. Debido a que no hay una velocidad de reloj máxima aparte de las restricciones del dispositivo esclavo, existe la posibilidad de una operación de alta velocidad.

Como en cualquier tecnología, hay desventajas con respecto a algunos otros protocolos. Debido a que no hay reconocimiento de esclavo, en caso de falla del esclavo o del cableado, el maestro, sin darse cuenta de que algo está mal, podría estar hablando en un vacío sin escuchador. Además, la falta de un único estándar formalizado puede hacer que la validación de conformidad sea poco práctica. Además, la existencia de numerosas variaciones de SI no reguladas puede hacer que la adquisición de hardware sea problemática.

En el futuro, es concebible que SPI pueda ver un mayor grado de codificación. Este desarrollo significará nuevas mejoras de SPI que podrían reducir la confusión que ahora existe. Dicho esto, tal como se implementa actualmente, SPI es bastante fácil de usar, particularmente en su requisito de poca potencia.

Deja una respuesta

Tu dirección de correo electrónico no será publicada.

More: