Entender el funcionamiento básico del osciloscopio

R&S®Essentials | Principios básicos de los osciloscopios digitales

Depuración de protocolos en serie con un osciloscopio

Autor: James Lewis l Bloguero y experto en instrumentación

Prepárese para sumergirse en el fascinante mundo de UART, I2C, (Q)SPI y bus CAN. Le invitamos a familiarizarse con estos protocolos serie y a descubrir cómo llevar a cabo la depuración con un osciloscopio. Para ello, le ofrecemos aquí una guía básica que abarca desde consejos prácticos hasta información detallada de la aplicación real, que le ayudarán a convertirse en un experto en la depuración de estos protocolos.

Los dispositivos «edge computing» pueden llevar un microcontrolador (MCU) conectado con sensores, actuadores, botones y pantallas. La mayoría de estos dispositivos discretos se comunican con el MCU a través de un protocolo digital, como UART, I2C o CAN. Una de las ventajas al depurar estos protocolos en serie con un osciloscopio es que su menor cantidad de señales es más fácil de explorar que en los extensos buses en paralelo antiguos. Con las sondas, los osciloscopios ofrecen un amplio conjunto de herramientas de análisis que, en otro caso, harían necesario un analizador de protocolos separado. A continuación ofrecemos algunos consejos sobre cómo utilizar un osciloscopio para decodificar protocolos en serie, así como información básica sobre los protocolos en serie más comunes.

Osciloscopio versus analizador lógico

Osciloscopio R&S®RTM3000

Osciloscopio R&S®RTM3000

Características principales:

  • Ancho de banda: de 100 MHz hasta 1 GHz
  • Frecuencia de muestreo: hasta 5 Gmuestras/s
  • Profundidad de memoria: hasta 80 Mmuestras
  • Resolución del convertidor A/D: 10 bits

A la hora de decodificar protocolos se puede optar por un osciloscopio, un analizador lógico o un analizador específico para protocolos. ¿Qué herramienta es la más recomendable? A continuación se expone una breve comparación de las tres.

Los canales de los analizadores lógicos son esencialmente comparadores digitales. Por lo tanto, solamente pueden indicar si una señal es alta o baja. Los analizadores lógicos típicos tienen como mínimo ocho canales, y algunos modelos ofrecen 32 o más. Los analizadores de protocolos son similares a los analizadores lógicos, pero disponen de hardware y software específicos para protocolos para decodificar el enlace en serie.

Por el contrario, los osciloscopios tienen una resolución de muchos bits pero están generalmente limitados a dos o cuatro canales. La mayor cantidad de bits permite comprobar las características analógicas de las señales.

Afortunadamente, con los osciloscopios modernos casi nunca es necesario plantearse la elección entre estas tres opciones. Muchos osciloscopios, y entre ellos todos los modelos de Rohde & Schwarz, ofrecen canales lógicos, tanto analógicos como digitales. Estos osciloscopios se denominan «osciloscopios de señal mixta».

Algunos osciloscopios disponen incluso de herramientas de decodificación de protocolos para buses serie: por ejemplo, el R&S®RTB2000, el R&S®MXO 4 o el R&S®RTO 6 tienen funciones integradas de decodificación y disparo de protocolos para protocolos serie de uso frecuente.

El osciloscopio emite una señal especial al detectar un error de protocolo. Un canal analógico (o más) que muestrea el bus puede indicar si hay un problema analógico coincidente con o alrededor del error de protocolo. Esto es muy poco frecuente con un analizador lógico.

Puesto que existen muchísimos protocolos en serie y la compatibilidad depende del modelo del osciloscopio, a continuación ofrecemos un compendio de observaciones y trucos para depurar circuitos con los buses más comunes.

UART

El protocolo de receptor/transmisor asíncrono universal (UART) se denomina a veces también «serie». Las señales de transmisión y recepción son hilos sin reloj discreto. Se trata de una comunicación punto a punto, es decir, por norma solo se conectan dos dispositivos.

En algunos casos, UART es sumamente fácil de depurar, ya que basta con comprobar una sola señal: TX o RX. Sin embargo, en la práctica, generalmente es necesario contemplar ambas direcciones para entender la comunicación.

Configuración de UART

Configuración de UART

Método flexible de formación de trama en UART

Método flexible de formación de trama en UART

UART tiene un método de formación de trama flexible. Hay un número variable de bits de inicio y de parada y un bit de paridad opcional. La carga útil de datos es generalmente de 8 bits. Puesto que UART es asíncrono, el equipo maestro (host) y el dispositivo deben concertar estos parámetros, así como la velocidad en baudios. Estas mismas condiciones se aplican al osciloscopio en la depuración.

Depuración en un osciloscopio

Consejo: normalmente, en los decodificadores se puede cambiar la velocidad en baudios después de la adquisición. Configure este ajuste si el resultado de la decodificación es inutilizable. De lo contrario, no podrá decodificar (ni realizar el disparo) correctamente.

SPI y QSPI

Todos los dispositivos comparten la señal de reloj
Todos los dispositivos comparten la señal de reloj

El protocolo SPI se conoce como «interfaz periférica serie». Funciona como un registro de desplazamiento. Todos los dispositivos comparten la señal de reloj; la salida principal, señales de entrada secundarias (MOSI); y la entrada principal, señales de salida secundarias (MISO). Esto equivale a «TX» y «RX» en UART. No obstante, aquí son explícitas sobre la dirección en que se desplazan los datos. Por ejemplo, con MOSI, los datos van del maestro al dispositivo, y con MISO, los datos van del dispositivo al maestro. De este modo, es menos probable que se sondee la señal incorrecta.

El protocolo SPI admite varios dispositivos en el mismo bus. Cada dispositivo tiene una señal CS (chip select) para poder diferenciar los dispositivos. No obstante, en los diseños con solo un dispositivo SPI puede omitirse (o dejar siempre activada) la señal CS. De manera similar, si los datos solo van en una dirección, basta con conectar la señal MOSI o MISO que corresponda.

La misma idea rige para la depuración con un osciloscopio. Si solo hay un dispositivo en el bus, no es necesario sondear la CS. Y si los datos solo van en una dirección, en la mayoría de los decodificadores basta con un solo sondeo. Sin embargo, la señal de reloj se requiere siempre.

¿Qué es QSPI?

Un estándar de interfaz muy extendido para chips de memorias flash es el protocolo cuádruple SPI (quad SPI o QSPI). Como el SPI, tiene un pin de reloj, uno de activación y uno de datos.

Inter-Integrated Circuit (I2C)

Los dispositivos comparten las líneas de reloj y de datos
Los dispositivos comparten las líneas de reloj y de datos

El protocolo I2C (Inter-Integrated Circuit) fue desarrollado inicialmente por Philips, que posteriormente pasó a formar parte de NXP. A veces, los dispositivos que admiten I2C utilizan el nombre «two-wire», o de dos hilos, por motivos de protección de marca comercial o de licencia.

Todos los dispositivos en el bus comparten las líneas de reloj y de datos, y cada dispositivo debe tener una dirección inequívoca. En general, los sensores o dispositivos que utilizan I2C reciben una dirección de base con pocos bits para ajustar los bits menos significativos de su dirección. Este método resulta útil cuando hay muchas unidades del mismo sensor en el bus con un número mínimo de pines.

En I2C, para la depuración con el osciloscopio se necesitan dos canales. El reloj solamente está en marcha cuando el maestro se comunica con un dispositivo. Por lo tanto, el osciloscopio debe capturar las señales de reloj y de datos.

I2C: de 7 bits o de 8 bits (o de 10 bits)

Las direcciones en I2C pueden resultar confusas, ya que hay dos modos de dirección diferentes: de 7 bits y de 10 bits. El modo de 7 bits es más común, pero tiene una característica algo desconcertante: a veces se considera una dirección de 8 bits.

Comparación de los modos de dirección de 7 bits y 8 bits
Comparación de los modos de dirección de 7 bits y 8 bits

Esta confusión procede del bit de lectura/escritura que sigue a la dirección. Para las transacciones de LECTURA, el valor es «1». Y para las transacciones de ESCRITURA, el valor es «0». Por lo tanto, si el disparo falla en la dirección esperada al realizar la depuración de I2C, intente desplazar la dirección un bit hacia la izquierda e incluir el valor de lectura/escritura.

Bus CAN

El bus CAN tiene una señalización diferencial
El bus CAN tiene una señalización diferencial

CAN (Controller area network) se desarrolló para el uso en automóviles y se sigue utilizando ampliamente en el sector de los transportes. Su señalización diferencial mejora la inmunidad al ruido eléctrico, por lo que resulta ideal para aplicaciones industriales.

A pesar de su naturaleza diferencial, en la mayoría de los casos no requiere una sonda de osciloscopio diferencial. En vez de ello, una sonda de terminación única en la señal «CANH» o «CANL» es suficiente para que el decodificador del osciloscopio pueda decodificar el bus.

Existen dos versiones de CAN 2.0: básica (dirección de 11 bits) y ampliada (dirección de 29 bits). Sus tramas de datos son ligeramente diferentes en los campos de arbitraje y control, pero en cambio sus paquetes son iguales.

Decodificación de CAN con el R&S®RTM3000
Decodificación de CAN con el R&S®RTM3000

El bus CAN utiliza solo dos hilos de señal, de los cuales ninguno es un reloj. Por lo tanto, si una decodificación está distorsionada, intente ajustar el punto de muestreo para cambiar la posición donde el decodificador muestrea los datos.

Decodificación versus disparo

La decodificación es un método posterior al proceso que analiza la forma de onda capturada y decodifica el protocolo a un formato inteligible. Típicamente, los datos decodificados están disponibles como capa superpuesta en la visualización de la forma de onda o como tabla. (Algunos osciloscopios, como el R&S RTE, el RTO6 y el RTP, ofrecen también herramientas adicionales de análisis como utilización del bus). Los osciloscopios con memoria profunda pueden capturar largos periodos y después realizar una búsqueda de eventos de interés (o identificar cuántas veces aparecen dichos eventos). Este método es básicamente un enfoque de «software».

El disparo, en cambio, se realiza dentro del sistema de disparo del osciloscopio. Un disparo de protocolo monitoriza el bus serie continuamente para determinar cuándo aparece un evento. Por ejemplo, dos disparos típicos son una dirección I2C o una condición de error (acuse de recibo negativo o error de paridad). Las opciones de disparo están generalmente limitadas a un número reducido de transacciones específicas del protocolo y pueden estar también limitadas a la cantidad de bits de la dirección, los datos o la carga útil. Este método es básicamente un enfoque de «hardware».

A veces los osciloscopios combinan ambos métodos: el sistema de disparo puede realizar el «disparo automático» mientras que el decodificador de protocolos localiza el evento de interés y lo coloca en el centro de la pantalla. Si su osciloscopio «se pierde» determinados eventos, compruebe el manual para determinar qué condiciones de disparo están basadas en «hardware» y cuáles en «software».

Resumen

  • La mayoría de los dispositivos de edge computing se comunican con el MCU a través de un protocolo digital, como UART, SPI, I2C o CAN.
  • Los osciloscopios ofrecen una amplia gama de herramientas para decodificar en protocolos en serie.
  • Algunos osciloscopios disponen también de herramientas de decodificación de protocolos para buses serie.
  • UART no tiene un reloj discreto y funciona punto a punto, es decir, solo se conectan dos dispositivos.
  • SPI funciona como un registro de desplazamiento, y todos los dispositivos comparten el reloj, las señales MOSI y las señales MISO.
  • Para la depuración de I2C se requieren dos canales. El reloj solamente está en marcha cuando el maestro se comunica con un dispositivo, de forma que el osciloscopio tiene que capturar las señales de reloj y de datos.
  • A pesar de su naturaleza diferencial, CAN no requiere normalmente una sonda de osciloscopio diferencial. En vez de ello, una sonda de terminación única en la señal «CANH» o «CANL» es suficiente para que el decodificador del osciloscopio pueda decodificar el bus.
  • Todos los osciloscopios Rohde & Schwarz disponen de complementos opcionales para protocolos en serie. Los disparos disponibles varían según el modelo de osciloscopio y sus capacidades de ancho de banda. No obstante, la mayoría admite los protocolos en serie básicos aquí descritos.
  • Para la depuración en general con protocolos en serie típicos se recomienda el RTB2000 o el RTM3000. Para protocolos más rápidos de 480 Mbit/s se recomiendan los osciloscopios MXO4 (1,5 GHz), RTO y RTP.

¿Le interesa indagar más en los principios básicos de las medidas?

Suscríbase a nuestro boletín

Le puede interesar también