Protocolo de comunicación serie: UART, RS-232, RS-485, RS-422

Recientemente, aprendí sobre microcontroladores y electrónica digital, así que decidí aprender sistemáticamente algunos protocolos de comunicación. El libro que nos ocupa solo presenta los protocolos relevantes de la interfaz de baja velocidad del puerto serie.

La comunicación en serie
se refiere a la transmisión de datos un bit a la vez mediante el uso de una línea de datos (que requiere una línea de tierra o una línea de control), y cada bit de datos ocupa un período de tiempo fijo.
Características : Antiinterferencia, ahorro de líneas de datos, pero velocidad lenta.

Durante la comunicación en serie: los datos se organizan bit a bit y el envío y la recepción se controlan de acuerdo con la señal de sincronización. El extremo emisor siempre determina el principio y el final de los bits de datos a través del envío, y el extremo receptor necesita muestrear y decodificar. el flujo de datos en intervalos de tiempo apropiados.
Dividido en: comunicación serie síncrona y comunicación serie asíncrona

El marco de información de la comunicación serie síncrona consta de caracteres de señal de sincronización (SYNC), caracteres de datos y caracteres de verificación (CRC). Al transmitir datos, es necesario mantener una sincronización estricta entre el reloj de envío y el reloj de recepción, pero debido a la inconsistencia de los caracteres de sincronización entre diferentes fabricantes, el alcance de su uso es pequeño.
La comunicación serie asíncrona tiene dos indicadores importantes: formato de trama de caracteres y velocidad en baudios. Los datos generalmente se transmiten en tramas de caracteres en unidades de caracteres o bytes, y las tramas de caracteres se envían y reciben trama por trama. Las fuentes de reloj de transmisión y recepción son independientes entre sí.
formato de marco de caracteresEs: un bit de inicio, ocho bits de datos, un bit de paridad y un bit de parada.
Los bits de datos y los bits de paridad existen en diferentes categorías en diferentes protocolos.


La comunicación serie se puede dividir en simplex, semidúplex y dúplex según el modo de trabajo.
Simplex: las funciones del remitente y del receptor son fijas;
semidúplex (RS-485): puede enviar y recibir datos. En cada puerto hay un interruptor electrónico para transmitir y recibir, que generalmente no puede ocurrir al mismo tiempo;
full-duplex (PS-232): comunicación mediante dos líneas de transmisión que pueden enviar y recibir simultáneamente.


Inicialización del puerto de comunicación:
aclarar los métodos de codificación y decodificación, establecer la velocidad en baudios y otras operaciones.
Velocidad de transmisión : el número de bits enviados por segundo. La velocidad en baudios del dispositivo emisor y del dispositivo receptor son diferentes, lo que provocará errores de decodificación. El tiempo para enviar cada bit es de aproximadamente 0,1 ms cuando la velocidad en baudios es de 9600 bps.
Bits de datos : el número de bits de datos reales en comunicación. La forma de elegir los bits de datos depende de cuántos bits de datos desee transmitir.
Bit de parada : se utiliza para indicar el final del envío de la trama de datos y la sincronización del reloj de corrección del dispositivo, el valor típico es 1 bit. Cuantos más bits de parada haya, mayor será la tolerancia para la sincronización del reloj entre diferentes dispositivos.
Bit de paridad : Hay tres modos de verificación: verificación impar, verificación par y sin verificación. La idea de paridad par e impar no es contar el número de 0\1 en los bits de datos, sinomezclarPatrones pares e impares. Hoy en día, la mayoría elige no realizar ninguna verificación.


RS – (Estándar recomendado)
El estándar RS-232 (DB-9)
Insertar descripción de la imagen aquí
generalmente tiene 9 pines y el rango de comunicación está dentro de los 15 m. Asegúrese de que el nivel esté dentro de ±(3-15) V. Los significados de cada línea de señal son :
CD (detección transportada): Detección de portadora. Indica si el módem ha detectado la señal portadora del dispositivo de comunicación.
RD (recibir datos):Recibir datos. Representa una línea de señal que recibe datos de un dispositivo externo.
TD (transmitir datos):enviar datos. Representa una línea de señal que envía datos a un dispositivo externo.
DTR (terminal de datos listo): El terminal de datos está listo. Indica que la computadora está lista para recibir o enviar datos.
GND (tierra): Cable de tierra. Un punto de tierra común para conectar circuitos.
DSR (Conjunto de datos listo): El conjunto de datos está listo. Indica que el módem está activo y listo para la comunicación.
RTS (Listo para enviar): Listo para enviar. Indica que la computadora está lista para enviar datos y solicita al dispositivo externo que esté listo para recibir.
CTS (Borrar para enviar): Borrar para enviar. Indica que el dispositivo externo está listo para recibir datos de la computadora
RI (indicador de anillo): Indicación de timbre. Una señal que indica cuando hay una llamada entrante en la línea telefónica.

Los principales defectos del RS-232 son:
①El nivel de señal de la interfaz es alto y es fácil dañar el chip del circuito de interfaz, que es diferente del circuito TTL; ②La
velocidad de transmisión es baja y la velocidad en baudios es <115 kbps;
la interferencia de modo requiere filtros adicionales;
④La distancia de transmisión es limitada.


Estándar RS-485
La velocidad de transmisión más alta es de 10 Mb/s, utilizando una combinación de controlador balanceado y receptor diferencial, buena interferencia anti-ruido, capacidad de comunicación entre múltiples máquinas, distancia de transmisión de hasta 1200 m (transmisión diferencial) La diferencia entre un solo extremo accionamiento y
accionamiento equilibrado Consulte Du Niang para obtener más detalles


El estándar RS-422
es casi el mismo que RS-485, la diferencia es:
RS-422 tiene cuatro líneas de señal, que pueden realizar el modo full-duplex; la proporción de maestro a esclavo puede llegar a 32, y la comunicación entre esclavos es puntual -a-múltiple Comunicación bidireccional; el extremo receptor debe estar conectado a una resistencia terminal de 120 Ω y el extremo emisor no necesita estar conectado.


La diferencia entre RS-232 y RS-485
La única diferencia es que RS-485 tiene una señal de control del transmisor DE (Drive Enable), mientras que RS-232 no requiere esta señal.

RS-485 no puede recibir y enviar al mismo tiempo y necesita alternar entre envío y recepción. La señal de transmisión TXD y la señal de recepción RXD de RS-232 utilizan cada una una línea, por lo que no habrá conflicto.
Al convertir RS-232 a RS-485, puede optar por transformar la señal de protocolo de enlace RTS en una señal de control DE y realizar la conversión de nivel al mismo tiempo. Cada vez que escribe un programa de comunicación en serie, primero debe configurar RTS para que sea válido y, después de recibir la señal, configurar RTS para que no sea válido, para evitar conflictos en los que varios hosts están en estado de envío al mismo tiempo en el mismo autobús.
Insertar descripción de la imagen aquí


Puerto serie UART
Receptor/Transmisor Asíncrono Universal, Equipo de recepción y recepción asíncrono universal, utilizado para admitir la comunicación entre múltiples máquinas, que se puede lograr configurando los parámetros del registro SCON.

La comunicación entre varias máquinas requiere la transmisión de un código de dirección (ID) más. Antes de que el maestro transmita datos, cada esclavo está en un estado de recepción en espera. El flujo de datos enviado por el maestro contiene el código de dirección, y el puerto serie de cada esclavo recibirá el código de dirección enviado por el maestro, y el programa juzgará si es el mismo que su propio código de dirección y si es el mismo. mismo, iniciará el programa.

En una línea de transmisión en serie, cada flujo de datos contiene 11 bits. El décimo bit se utiliza para diferenciar entre dirección y datos. Cuando el microcontrolador necesita realizar una transmisión entre múltiples máquinas, la transmisión contiene bits TB8 y la recepción contiene bits RB8. Cuando TB8 = 1, significa que se está transmitiendo un código de dirección que contiene ocho bits y puede conectar 256 esclavos. Cuando TB8 = 0, significa transmitir datos. El extremo receptor puede determinar si la dirección o los datos transmitidos se transmiten a través del formato.

En la máquina esclava, generalmente coninterrupción en serieSi el bit SM2 del registro SCON se establece en 1, la interfaz serie puede juzgar la dirección de múltiples esclavos. En este modo, el esclavo solo recibe el valor de la dirección (su RB8 = 1), se genera una solicitud de interrupción.

En la rutina de servicio de interrupción en serie, siempre que elSBUFVuelva a leer el valor de la dirección internamente y determine si se llama. Si es SÍ, saltará para ejecutar la operación establecida por el programa. Si es NO, no realizará ninguna operación, luego finalizará la rutina del servicio de interrupción y regresará al programa principal. El esclavo específico se configura primero en SM2. y luego comienza a enviar o recibir datos. Los otros esclavos no iniciaron la transmisión.

En este momento sigue siendo una comunicación uno a uno, mientras que cuando el host envía inicialmente la dirección es una comunicación uno a muchos.

El puerto serie del microcontrolador es de nivel TTL, que es de 5 V, y la distancia de transmisión más larga es de solo 5 m. Si se desea una transmisión de larga distancia, el nivel TTL también debe convertirse al nivel RS-485.


Aprenda el protocolo ModBus otro día.

Supongo que te gusta

Origin blog.csdn.net/Wangwenshuaicsdn/article/details/129938280
Recomendado
Clasificación