Cómo escribir un protocolo de comunicación de puerto serie
Qué es un Puerto Serie
Un puerto serie es un protocolo de comunicación de dispositivos muy común en las computadoras (no debe confundirse con el Bus Serie Universal o USB). La mayoría de las computadoras contienen dos puertos serie basados en RS232. Serial también es una interfaz de comunicación común para instrumentación; muchos dispositivos compatibles con GPIB también tienen puertos RS-232. También se pueden utilizar protocolos de comunicación en serie para obtener datos de dispositivos de adquisición remota.
El concepto de comunicación serie es muy sencillo: un puerto serie envía y recibe bytes poco a poco. Aunque son más lentos que la comunicación paralela basada en bytes, los puertos serie pueden enviar datos en una línea mientras reciben datos en otra línea. Es sencillo de operar y permite la comunicación a larga distancia. Por ejemplo, IEEE488 define el estado de paso paralelo como una longitud total del cable del dispositivo de no más de 20 metros y no más de 2 metros entre dos dispositivos cualesquiera, esto puede ser de hasta 1200 metros;
Normalmente, los puertos serie se utilizan para transmitir caracteres ASCII.
La comunicación se logra mediante 3 cables:
(1) tierra,
(2) transmisión,
(3) recepción. Debido a que la comunicación serie es asíncrona, un puerto puede enviar datos en una línea mientras recibe datos en otra línea. Los otros cables se utilizan para el protocolo de enlace, pero no son necesarios. Los parámetros más importantes de la comunicación serie son la velocidad de bits, los bits de datos, los bits de parada y la paridad. Para dos puertos de comunicación, estos parámetros deben coincidir:
a. Tasa de bits: este es un parámetro que mide la velocidad de comunicación. Representa el número de bits transmitidos por segundo. Por ejemplo, si el protocolo requiere una velocidad de 4800 baudios, entonces el reloj es de 4800 Hz, lo que significa que la comunicación en serie se muestrea a 4800 Hz en la línea de datos. Las velocidades de bits de las líneas telefónicas suelen ser 14400, 28800 y 36600. La velocidad de bits puede ser mucho mayor que estos valores, pero la velocidad en baudios y la distancia no son necesariamente las mismas. Normalmente se utilizan velocidades de bits más altas para la comunicación entre instrumentos (normalmente dispositivos GPIB) colocados muy cerca.
b, Bits de datos: Este es un parámetro que mide los bits de datos reales en la comunicación. Cuando una computadora envía un paquete de información, los datos reales no serán de 8 bits, los valores estándar son 5, 7 y 8 bits. La forma de configurar esto depende del mensaje que desee enviar. Por ejemplo, los códigos ASCII estándar van de 0 a 127 (7 bits). Los códigos ASCII extendidos van de 0 a 255 (8 bits). Si los datos utilizan texto simple (ASCII estándar), se utilizan 7 bits de datos por paquete. Cada paquete hace referencia a un byte, incluidos bits de inicio/parada, bits de datos y bits de paridad. Dado que los bits de datos reales dependen de la elección del protocolo de comunicación, el término "paquete" se refiere a cualquier situación de comunicación.
c, bit de parada: se utiliza para indicar el último bit de un único paquete de datos. Los valores típicos son 1, 1,5 y 2 bits. Debido a que los datos se sincronizan en la línea de transmisión y cada dispositivo tiene su propio reloj, es posible que dos dispositivos en comunicación estén ligeramente desincronizados entre sí. Por lo tanto, el bit de parada no sólo señala el final de la transferencia, sino que también brinda a la computadora la oportunidad de corregir la sincronización del reloj. Cuantos más bits haya disponibles para los bits de parada, mayor será la tolerancia para diferentes sincronizaciones de reloj, pero más lenta será la velocidad de transferencia de datos.
d. Bit de paridad: comprobación sencilla de errores en comunicación serie. Hay cuatro tipos de detección de errores: par, impar, alto y bajo. Por supuesto, también es posible no tener ningún bit de paridad. En el caso de paridad par e impar, el puerto serie establecerá un valor en el bit de paridad (un bit después del bit de datos) para garantizar que los datos que se transmiten tengan un número par o impar de bits lógicos altos. Por ejemplo, si los datos son 011, entonces para paridad par, el bit de paridad es 0 para garantizar un número par de bits lógicos de orden superior. Para paridad impar, el bit de paridad es 1, por lo que hay 3 bits lógicos altos. Los bits alto y bajo realmente no verifican los datos, sino que simplemente configuran la suma de verificación lógica alta o baja. De esta manera, el dispositivo receptor conoce el estado de un determinado bit y tiene la oportunidad de determinar si hay ruido que interfiere con la comunicación o si los datos se envían y reciben no sincronizados. El protocolo de comunicación en serie es un acuerdo entre dos partes en comunicación.
El acuerdo incluye regulaciones unificadas sobre formato de datos, sincronización, velocidad de transmisión, pasos de transmisión, corrección de errores de suma de verificación y definición de caracteres de control, etc. Ambas partes en la comunicación deben cumplirlo. Por lo tanto, también se le llama Protocolo de control de comunicación o Protocolo de control de transmisión y pertenece a la capa de enlace de datos en el modelo de referencia de siete capas OSI de ISO.