Este artículo es la Parte 3 de los conceptos básicos de la programación de MCU en serie, que es la comunicación con periféricos externos mediante comunicación en serie. Distingue entre conexiones en paralelo y en serie y ofrece un UART incorporado que permite una comunicación en serie simple.
Este artículo es la Parte 3 de los conceptos básicos de la programación de MCU en serie, que es la comunicación con periféricos externos mediante comunicación en serie. Distingue entre conexiones en paralelo y en serie y ofrece un UART incorporado que permite una comunicación en serie simple.
Conexiones en paralelo y en serie
Como se mencionó anteriormente, la MCU actúa como el “cerebro” del dispositivo integrado, mientras que las unidades periféricas externas actúan como “manos y pies”. Esto significa que la MCU tiene que comunicarse con cada una de estas unidades. Por ejemplo, considere cómo conectar sensores. Usando el puerto GPIO integrado de la MCU, que analizamos en la primera sesión de esta serie, podemos conectar ocho líneas de señal al sensor. Esto permite que el sensor envíe datos de 8 bits a la vez (usando hasta 8 pines de datos GPIO). Este tipo de transferencia se llama paralela porque los datos se transfieren un byte a la vez a lo largo de líneas paralelas. (Consulte la Figura 1, a la izquierda) Pero usar 8 líneas para conectar un sensor a otro sensor suele ser una pérdida de recursos. ¿Hay alguna manera de lograr lo mismo usando menos líneas?
Por supuesto que lo hay. Puede enviar un bit a la vez en una pieza de datos. Puede llamar a esta comunicación en serie porque los bits no se envían en serie. (Vea la Figura 1 a la derecha). Sin embargo, la MCU utiliza la comunicación paralela para el procesamiento y la comunicación internos. Esto significa que la MCU también debe manejar las conversiones necesarias. La conversión de “serie a paralelo” de los datos recibidos del sensor y la conversión de “paralelo a serie” de los datos enviados al sensor. En el RX63N, estas conversiones son manejadas por la SCI (interfaz de comunicación en serie).
En resumen, supongamos que desea enviar un solo carácter de texto. Esto requiere enviar un valor de carácter de 8 bits. Cuando se usa transferencia paralela, cada bit requiere una línea de datos. Serial-parallel envía los ocho bits de datos uno tras otro en una línea de muestra.
Obviamente, se requieren menos pines y cables para la comunicación en serie. En el mundo actual, la mayoría de las conexiones entre MCU y periféricos son en serie. El modo serial se usa no solo para la comunicación desde interruptores y sensores de encendido/apagado, sino también por GPIO para generar señales de accionamiento de motor generadas por software, señales de parpadeo de LED, etc.
Fácil comunicación en serie con UART incorporado
La comunicación en serie se puede implementar de diferentes maneras según las diferentes características eléctricas y los diferentes requisitos de protocolo. La implementación más simple (que requiere solo un cable) se llama “comunicación asíncrona”. Este modo se usa a menudo cuando se comunica con módulos LAN inalámbricos y monitores de unidades.
En la comunicación asíncrona, los datos se envían carácter por carácter. Para fines de control, se coloca un bit de inicio al comienzo de cada conjunto y un bit de parada al final. (Consulte la Figura 2) Esto elimina la necesidad de usar una línea de señal de reloj separada para controlar el tiempo de las transferencias según lo requieren otros modos seriales comunes como I2C y SPI (Interfaz paralela serial). También se puede incluir un bit de paridad en el conjunto de datos de inicio/parada para garantizar la corrección de la transferencia.
La comunicación asíncrona es manejada por un componente llamado “UART” (Universal Asynchronous Receiver/Transmitter). El SCI interno del RX63N incluye un UART para este propósito.
1. Un bit agregado a cada conjunto de datos (7 u 8 bits). Cuando se usa paridad par, los bits de paridad se configuran para que el número total de unos sea par (en la mayoría de las implementaciones). Si el valor de los datos tiene un número impar de 1, el bit de paridad se establece en 1. Si el valor de los datos tiene un número par de 1, el bit de paridad se establece en 0. Por lo tanto, el receptor sabrá que se ha producido un error si recibe un conjunto de datos con un número impar de 1. De manera similar, cuando se usa paridad impar, los bits de paridad se configuran de modo que el número de 1 siempre sea impar.
La comunicación asíncrona se puede implementar como full-duplex o half-duplex. Full-duplex utiliza dos líneas. Uno para comunicación de MCU a periférico y otro para viceversa. Esto significa que la comunicación es simultánea y bidireccional. Half-duplex usa una línea, por lo que la comunicación solo puede ir en una dirección a la vez.