En esta serie de artículos, estaremos examinando algunos de los diferentes tipos de Protocolos de Comunicación Serial disponibles para transferir información entre microcontroladores, periféricos productores y procesadores de datos, y otros dispositivos inteligentes. Los artículos que siguen a esta introducción a las comunicaciones seriales cubrirán algunos de los protocolos más populares en uso común. Al final de esta serie, resumiremos las ventajas y desventajas de cada uno. Esperamos que este recurso resulte valioso la próxima vez que te encuentres necesitando implementar un bus de comunicación serial, ayudándote a elegir la mejor opción para tus circunstancias particulares.
En estos días la electrónica digital se ha convertido en la parte más significativa de la mayoría de los dispositivos electrónicos en el mercado. Muchos chips diferentes están en uso donde sus operaciones complejas dependen de la información enviada hacia y desde otros componentes digitales similares. Se han creado estándares de protocolo comunes para habilitar la comunicación entre estos. Imagina si cada CI o dispositivo se comunicara usando su protocolo único. Sería lo mismo que si cada humano hablara usando su propio idioma único. Sería un caos porque sería casi imposible que cualquiera de nosotros se entendiera.
Actualmente contamos con diferentes memorias IC, sensores digitales, dispositivos de protección, fuentes de alimentación programables, potenciómetros digitales, ICs de frecuencia de radio, etc. Todos necesitan comunicarse entre sí o con microcontroladores, microprocesadores, FPGA o ASIC. El propósito de estas comunicaciones entre dispositivos puede variar enormemente. Puede ser para programación para extraer información, proporcionando una señal para iniciar el desempeño de una acción.
También, algunos protocolos nos dan a nosotros, los humanos, la capacidad de interactuar con los ICs a través de microcontroladores. Puedes enviar una señal a un microcontrolador que está programado para enviar una señal a un IC a través de uno de estos protocolos. Alternativamente, puedes conectar una de las herramientas de depuración disponibles.
Uno de los problemas con las comunicaciones seriales es la dificultad de encontrar y depurar tu circuito si algo sale mal. Supongamos que los datos no están pasando de un dispositivo a otro. En ese caso, la falla puede existir en uno o más de los siguientes lugares: en la lógica del dispositivo transmisor, en su diseño de circuito, en cómo está codificada la comunicación serial, en el bus de comunicaciones, en la decodificación por el receptor, en el diseño de circuito del receptor o finalmente en la lógica del receptor. Colocar una sonda de osciloscopio en las comunicaciones seriales puede permitirte ver si hay alguna actividad, pero te dirá poco sobre su validez. Para ver completamente qué está sucediendo, necesitarás ya sea un osciloscopio con función de decodificación o un analizador lógico. Esto te permitirá conocer los pulsos de voltaje que viajan a través del pulso para encontrar fallas en los niveles de voltaje, identificar cualquier problema de ruido y buscar problemas con las tasas de subida y bajada de la señal.
Sin embargo, para depurar a fondo las comunicaciones seriales, necesitarás una herramienta que pueda decodificar los datos en el bus para ver si son correctos o si han sido corrompidos o afectados por colisiones. Se han creado un número considerable de herramientas de depuración específicamente para depurar comunicaciones entre dispositivos o ICs. Uno de los analizadores de lógica estándar de la industria es la serie Saleae Logic de analizadores de lógica, con el modelo Pro ofreciendo la velocidad suficiente para analizar todos los protocolos más populares.
Muchos analizadores de lógica de bajo costo son demasiado lentos para manejar protocolos de alta velocidad como SPI. El LA2016 Logic Analyser ofrece tasas de muestreo entre el Saleae Logic 8 y Logic 8 Pro a un costo muy bajo; yo tengo uno y lo he usado con mucho éxito para analizar protocolos.
Además, la consideración de los protocolos de comunicación es crucial tanto para el diseño de firmware como de hardware. Desde el lado del hardware, siempre debes revisar cuidadosamente la hoja de datos de tu microcontrolador elegido. Los MCUs solo pueden comunicarse con protocolos predefinidos usando pines dedicados. El diseñador necesitará decidir qué ICs se utilizarán y qué protocolos requerirán antes de seleccionar su MCU.
Por ejemplo, el dispositivo STMicroelectronics STM32F103C8T6 montado en la popular placa de desarrollo STM32 Blue Pill incluye 2 x I2C, 3 x USART, 2 x SPI y 1 x interfaces de comunicación CAN. Sin embargo, algunos de los pines para estos protocolos de comunicaciones son compartidos. Por ejemplo, si miramos el pin 14 del dispositivo, que está etiquetado como PA4. Este pin tiene funciones tanto de USART como de SPI. Esto significa que no puedes usar todas las interfaces SPI y USART listadas para tu diseño simultáneamente. Necesitas elegir cuáles necesitas y cuándo, y planificar en consecuencia o buscar otro microcontrolador que soporte más interfaces de comunicaciones. Por supuesto, el pin PA4 puede ser utilizado para ambos protocolos de comunicación cambiando su configuración en operación. Sin embargo, aún necesitas considerar cuidadosamente en qué momentos será utilizado para funcionar porque no pueden ser usados simultáneamente. Esto aumentará tanto la complejidad del diseño de hardware como del firmware.
Los pines de comunicación serial en microcontroladores pueden solaparse, así que lee los datasheets cuidadosamente. Necesitas descargar y usar el módulo de biblioteca de comunicación IC apropiado basado en qué protocolos usará el dispositivo para comunicaciones desde el lado del firmware.
Aunque existen muchos protocolos de comunicación, los más populares son SPI e I2C. Cada uno de los protocolos tiene sus aplicaciones, velocidades de comunicación, consideraciones de diseño, ventajas y desventajas. Revisaremos cada uno de ellos por turno en esta serie de artículos.
En el próximo artículo de esta serie estaremos viendo el popular dispositivo UART y discutiremos algunas de sus ventajas y detalles de implementación. Terminaremos la serie comparando los diferentes protocolos, destacando sus principales ventajas y desventajas.
¿Tienes más preguntas? Llama a un experto en Altium y descubre cómo podemos ayudarte con tu próximo diseño de PCB.