Explique RS232, RS485, RS422, puerto serie y protocolo de enlace en detalle.
En la comunicación en serie, ambas partes comunicantes deben utilizar una interfaz estándar para que diferentes dispositivos puedan conectarse fácilmente para la comunicación. La interfaz RS-232-C (también conocida como EIA RS-232-C) es actualmente la interfaz de comunicación serie más utilizada.
RS-232-C es un estándar de interfaz física serie desarrollado por EIA (Electronic Industries Association). RS es la abreviatura de "Estándar recomendado" en inglés, 232 es el número de identificación y C representa el número de modificaciones, que representa la última modificación de RS232 (1969). Antes de eso existían RS232B y RS23A.
Es un estándar de comunicación en serie desarrollado conjuntamente por la Asociación de Industrias Electrónicas (EIA) en 1970 con Bell System, fabricantes de módems y fabricantes de terminales de computadora. Su nombre completo es "Estándar técnico para la interfaz de intercambio de datos binarios en serie entre equipos terminales de datos (DTE) y equipos de comunicaciones de datos (DCE)".
EIA-RS-232C especifica las características eléctricas, niveles lógicos y funciones de varias líneas de señal. ?
En TxD y RxD: ¿lógico 1 (bandera) = -3v ~ -15v, lógico 0 (espacio) = +3 ~ +15v? En las líneas de control de RTS, CTS, DSR, DTR, DCD:?
¿Señal efectiva (encendido, estado ON, voltaje positivo)=+3v ~+15v?
¿Señal no válida (estado apagado, voltaje negativo)=-3v ~-15v?
Dependiendo de la fuente de alimentación del dispositivo, pueden existir niveles de +-5, +-10, +-12 y +-15.
Debido a que RS-232C no define las características físicas del conector, aparecen DB-25, DB-15 y DB-9, y sus definiciones de pines son todas diferentes. Recientemente, los conectores RJ-45 de 8 pines se han vuelto cada vez más populares, aunque sus asignaciones de pines varían mucho.
El estándar EIA/TIA 561 especifica un método de asignación de pines, pero el estándar de cableado de dispositivo serie Yost inventado por Dave Yost y ampliamente utilizado en computadoras Unix y muchos otros dispositivos no utiliza ninguno de los estándares de cableado anteriores. La siguiente tabla enumera las señales y asignaciones de pines en el ampliamente utilizado RS-232:
La anotación de las señales es desde la perspectiva del dispositivo DTE. Las señales TD, DTR y RTS son generadas por DTE, mientras que las señales RD, DSR, CTS, DCD y RI son generadas por DCE.
El puerto RS-232 del PC es un conector de 9 pines. Algunos dispositivos están conectados a la interfaz RS-232 de la PC. Debido a que no utilizan la señal de control de transmisión de la otra parte, solo se necesitan tres líneas de interfaz, a saber, "enviar datos TXD", "recibir datos RXD" y "señal de tierra". Tierra".
Debido a que todas las señales RS-232 comparten una tierra común, se puede crear una interfaz bidireccional con solo tres cables. Los circuitos desequilibrados hacen que RS-232 sea muy susceptible a los cambios de voltaje del punto base entre los dos dispositivos.
RS-232 también tiene capacidades de control relativamente pobres para los ciclos ascendentes y descendentes de la señal, y es propenso a problemas de diafonía. Se recomienda utilizar RS-232 para comunicaciones de corta distancia (dentro de 15 m). Debido a la asimetría del circuito, los cables de interfaz RS-232 no suelen ser pares trenzados.
La velocidad de transmisión de datos especificada por el estándar RS-232-C es 50, 75, 100, 150, 300, 600, 1200, 2400, 4800, 9600, 19200 baudios por segundo, lo que permite controladores.
Por ejemplo, cuando se utiliza un cable de comunicación de 150 pF/m, la distancia máxima de comunicación es de 15 m; si se reduce la capacitancia por metro de cable, se puede aumentar la distancia de comunicación. Otra razón para la corta distancia de transmisión es que RS-232 es una transmisión de señal de un solo extremo, que tiene problemas de ruido de fondo y no puede suprimir la interferencia de modo, por lo que generalmente se usa para comunicaciones dentro de 20 m.
Según el estándar RS-232C, cuando la distorsión del símbolo es inferior al 4%, la longitud del cable de transmisión debe ser de 50 pies. De hecho, esta distorsión de signos del 4% es muy conservadora.
En aplicaciones prácticas, aproximadamente el 99% de los usuarios operan dentro del rango de distorsión de símbolos del 10-20%, por lo que la distancia máxima en el uso práctico será mucho más allá de los 50 pies. La Corporación DEC de EE. UU. estipula que la distorsión del símbolo permitida es de 60 pies.
Entre ellos, el cable nº1 es un cable blindado, modelo DECP. N° 9107723. Hay tres pares de pares trenzados en el interior, cada par está compuesto de 22# AWG y está cubierto con una red protectora. El cable número 2 es un cable sin blindaje. El número de modelo es DECP. No. 9105856-04, es un cable de cuatro núcleos 22#AWG.
En el estándar RS-232, los caracteres se transmiten como una serie de bits uno tras otro. El formato de codificación más largo es el formato de inicio-parada asíncrono, que utiliza un bit de inicio, seguido de 7 u 8 bits de datos, que pueden ser un bit de paridad, y luego dos bits de parada. Por lo tanto, se necesitan 10 bits para enviar un carácter, lo que produce el buen efecto de dividir la velocidad de transmisión total y la velocidad de envío de señales por 10.
La comunicación en serie requiere muchas configuraciones en la configuración del software. Las configuraciones más comunes son la velocidad de baudios, la paridad y los bits de parada. La velocidad en baudios se refiere a la velocidad en baudios enviada de un dispositivo a otro, es decir, la cantidad de bits por segundo (bit/s). Las velocidades de baudios típicas son 300, 1200, 2400, 9600, 19200, etc. bit/s/s Generalmente, los dispositivos en ambos extremos de la comunicación deben configurarse a la misma velocidad de baudios, pero algunos dispositivos también se pueden configurar automáticamente. detectar la velocidad en baudios.
La verificación de paridad se utiliza para verificar la exactitud de los datos. Generalmente no se utiliza la verificación de paridad. Si se usa, tanto la paridad como la paridad están bien. Las comprobaciones de paridad funcionan modificando cada byte transferido (o limitando el número de bytes transferidos).
Si no se marca la paridad, los datos no cambiarán. En paridad par, dado que el bit de paridad se establece en 1 o 0 (generalmente el bit más alto o más bajo), los datos se cambian para que todos los dígitos transmitidos (incluidos cada dígito del carácter y los bits de paridad) sean un número par; p>
En paridad impar, el número de "1" en todos los números transmitidos (incluido cada dígito del carácter y el dígito de control) es un número impar. El receptor puede utilizar la paridad para comprobar si hay errores en la transmisión: si el número de "1" en un byte es incorrecto, entonces debe haber un error en la transmisión de ese byte. Si la paridad es correcta, entonces no se produjeron errores o se produjo un número par de errores.
El bit de parada se envía después de cada transmisión de bytes y se utiliza para ayudar en la resincronización del hardware del receptor.
D/P/S es un símbolo convencional en la configuración del software de comunicación serie. 8/N/1 (muy común) significa 8 bits de datos, sin paridad y 1 bit de parada. Los bits de datos se pueden configurar en 7, 8 o 9, los bits de paridad se pueden configurar en ninguno (n), impar (o) o par (e), y los bits de paridad pueden usar bits de los datos.
Entonces 8/E/1 representa un total de 8 bits de datos, uno de los cuales se utiliza como bit de paridad. Los bits de parada pueden ser 1, 1,5 o 2 bits (1,5 se utiliza en máquinas de teletipo con una velocidad en baudios de 60 ppm).
Cuando se requieren señales de intercambio o comprobaciones de integridad de datos, se requieren configuraciones adicionales. Las combinaciones comunes son RTS/CTS, DTR/DSR XON/XOFF (en realidad, insertan caracteres especiales en el flujo de datos sin usar pines de conector).
El receptor envía señales XON/XOFF al transmisor para controlar cuándo el transmisor envía datos. Estas señales están en la dirección opuesta a la transmisión de los datos que se envían. La señal XON le dice al remitente que el receptor está listo para aceptar más datos, y la señal XOFF le dice al remitente que deje de enviar datos hasta que sepa que el receptor está listo nuevamente. XON/XOFF generalmente no se usa y se recomienda usar el flujo de control RTS/CTS en su lugar.
XON/XOFF es un método dentro de banda que funciona entre terminales, pero ambos terminales deben admitirlo. Un inicio repentino puede causar confusión.
XON/XOFF puede funcionar en una interfaz de tres cables. RTS/CTS fue diseñado originalmente para comunicación cooperativa semidúplex entre teletipos y módems, con un solo módem enviando datos a la vez. El terminal debe enviar una señal de solicitud y luego esperar hasta que el módem responda con una señal clara. Aunque RTS/CTS implementa el protocolo de enlace a través del hardware, también tiene sus propias ventajas. ?
Después de años de mejoras en los equipos RS-232 y la tecnología de comunicación, la distancia de comunicación de RS-232 ha aumentado considerablemente.
Dado que el estándar de interfaz RS-232 apareció antes, inevitablemente tiene algunas deficiencias, que incluyen principalmente los siguientes cuatro puntos:
(1) El nivel de señal de la interfaz es relativamente alto, lo que puede dañar fácilmente el chip de el circuito de interfaz. Incompatible con los niveles TTL, es necesario utilizar un circuito de cambio de nivel para conectarse al circuito TTL.
(2) La velocidad de transmisión es baja. En transmisión asíncrona, la velocidad en baudios es de 20 Kbps. Ahora gracias al nuevo chip UART 16C550, la velocidad en baudios alcanza los 115,2 kbps.
(3) La interfaz utiliza una línea de señal y una línea de retorno de señal para formar una * * forma de transmisión terrestre. Esta * * * transmisión terrestre es propensa a * * interferencias de modo, por lo que su resistencia a la interferencia de ruido es débil.
(4) La distancia de transmisión es limitada. El valor estándar de la distancia máxima de transmisión es de 50 metros, pero sólo se puede utilizar alrededor de 15 metros. ?
En respuesta a las limitaciones del estándar del puerto serie RS-232, se han propuesto los estándares de interfaz RS-422 y RS-485. RS-485/422 utiliza transmisión balanceada y recepción diferencial para lograr la comunicación: el extremo transmisor convierte la señal de nivel TTL del puerto serie en señales diferenciales A y B para salida. Después de la transmisión por cable, el extremo receptor restaura la señal diferencial a un TTL. señal de nivel.
Dado que la línea de transmisión generalmente utiliza par trenzado y transmisión diferencial, tiene una fuerte resistencia a la interferencia del modo * * *, y el transceptor de bus tiene una alta sensibilidad y puede detectar voltajes tan bajos como 200 mV. Por tanto, las señales transmitidas se pueden recuperar a miles de metros de distancia. ?
¿Puede el controlador generar un voltaje de modo de 7 V **?
¿Resistencia de entrada del receptor rin≥12kω?
¿Capacitancia de entrada ≤50pF?
Cuando el número de nodos es 32 y la resistencia del terminal está configurada como 120ω, ¿puede el controlador emitir al menos 1,5 V (la resistencia del terminal está relacionada con los parámetros del par trenzado utilizado)?
Transmisor: El "1" lógico está representado por la diferencia de voltaje entre las dos líneas + (2 a 6) V; el "0" lógico está representado por la diferencia de voltaje entre las dos líneas - (2 a 6); ) V para representar.
La sensibilidad de entrada del receptor es de 200 mV (es decir, (V+)-(V-) ≥ 0,2 V, lo que significa que la señal es "0"; (V+)-(V-) ≤ -0,2 V , ¿lo que significa que la señal es "1")?
La velocidad máxima de transmisión de datos de RS-485 es de 10 Mbps y la distancia máxima de comunicación es de aproximadamente 1219 M. La velocidad de transmisión es inversamente proporcional a la distancia de transmisión y la distancia máxima de comunicación solo se puede alcanzar con una velocidad de transmisión de 10 KB/s.
Pero debido a que RS-485 a menudo se comunica con el puerto RS-232 de la PC, en realidad alcanza los 115,2 Kbps. Dado que la velocidad es demasiado alta, reducirá la distancia de transmisión de RS-485. , por lo que suele rondar los 9600 bps o menos. ?
La interfaz RS-485 es una combinación de un controlador balanceado y un receptor diferencial, que tiene capacidades antiinterferencias mejoradas, es decir, buena inmunidad a las interferencias de ruido. RS-485 funciona en modo semidúplex y admite comunicación de datos multipunto.
La topología de la red de bus RS-485 generalmente adopta una estructura de bus compatible con terminales. Es decir, se utiliza un bus para conectar todos los nodos en serie y no se admiten redes en anillo o en estrella. Si necesita utilizar una estructura en estrella, debe utilizar un repetidor 485 o un concentrador 485. Normalmente, el bus RS-485/422 admite hasta 32 nodos. Si se utiliza un chip 485 dedicado, se pueden alcanzar 128 o 256 nodos y se puede admitir un máximo de 400 nodos.
El estándar internacional RS-485 no especifica el estándar del conector de interfaz RS485, por lo que está bien utilizar DB-9, DB-25 y otros terminales o conectores.
1. Antiinterferencia: la interfaz RS485 es una combinación de un controlador balanceado y un receptor diferencial, que tiene buenas capacidades antiinterferencias de ruido. La interfaz RS232 utiliza una línea de señal y una línea de retorno de señal para formar una forma de transmisión terrestre **, que es propensa a interferencias de modo **.
2. Distancia de transmisión: El valor estándar de la distancia máxima de transmisión de la interfaz RS485 es de 1200 m (a 9600 bps), y en realidad puede alcanzar los 3000 m. La distancia de transmisión RS232 es limitada, el valor estándar de la distancia máxima de transmisión es de 50 m y solo se puede utilizar dentro de 15 m.
3. Capacidad de comunicación: la interfaz RS-485 permite conectar hasta 128 transceptores en el bus, y los usuarios pueden establecer fácilmente una red de dispositivos utilizando una única interfaz RS-485.
RS-232 sólo permite la comunicación uno a uno.
4. Velocidad de transmisión: la velocidad de transmisión de RS-232 es baja y la velocidad en baudios es de 20 Kbps durante la transmisión asíncrona. La velocidad máxima de transmisión de datos de RS-485 es de 10 Mbps.
5. Línea de señal: una red semidúplex compuesta por una interfaz RS485 generalmente solo requiere dos líneas de señal. Normalmente, un puerto RS-232 utiliza sólo tres cables: RXD, TXD y GND.
6. Valor de nivel: El "1" lógico de RS-485 está representado por la diferencia de voltaje entre los dos cables de +(2~6) V; el "0" lógico está representado por el voltaje; diferencia entre los dos cables La diferencia de voltaje entre ellos se expresa como -(2 ~ 6) V. El voltaje de cualquier línea de señal en RS-232-C tiene una relación lógica negativa. Es decir: "1" lógico, -5 ~ -15 V; "0" lógico +5 ~ +15 V.
El rendimiento eléctrico del RS-422 es similar al del RS-485. Las principales diferencias son:
(1) RS-485 tiene dos líneas de señal: A y B, utilizadas para enviar y recibir. Debido a que RS-485 utiliza dos cables para recepción y transmisión, no puede recibir y transmitir al mismo tiempo (semidúplex).
(2) RS-422 tiene cuatro líneas de señal: dos de envío (Y, Z) y dos de recepción (A, B). Debido a que la recepción y transmisión RS-422 están separadas, es posible recibir y transmitir al mismo tiempo (full duplex).
(3) RS-422 que admite comunicación entre múltiples máquinas puede simplemente cortocircuitar Y-A como RS-485 A y cortocircuitar Z-B de RS-422 como RS-485 B para convertir a RS- 485. ?
Mucha gente suele creer erróneamente que la interfaz serie RS-422 es la versión full-duplex de la interfaz serie RS-485. De hecho, existen muchas diferencias en sus características eléctricas. * * * Las diferencias en el rango de voltaje del modo y la resistencia de entrada del receptor hacen que los dos estándares sean adecuados para diferentes aplicaciones.
El controlador de la interfaz serie RS-485 se puede utilizar en la aplicación de la interfaz serie RS-422, porque la interfaz serie RS-485 cumple con todos los parámetros de rendimiento de la interfaz serie RS-422, y viceversa. Para el controlador con interfaz serial RS-485, el rango de salida de voltaje del modo ** está entre -7 V y +12 V; para el controlador con interfaz serial RS-422, este índice de rendimiento es de solo 7 V; La resistencia de entrada mínima del receptor de interfaz serie RS-422 es de 4 KΩ; la resistencia de entrada mínima del receptor de interfaz serie RS-485 es de 12 kΩ.
1 y RS-422 disponen de cuatro líneas de señal: dos para envío (Y, Z) y dos para recepción (A, B). RS-422 puede recibir y transmitir al mismo tiempo (full duplex) porque la recepción y la transmisión están separadas.
2.RS-485 tiene sólo dos líneas de datos: A y B, utilizadas para enviar y recibir. Debido a que RS-485 utiliza dos cables para recepción y transmisión, no puede recibir y transmitir al mismo tiempo (semidúplex).
UART es un receptor/transmisor asíncrono universal, comúnmente conocido como UART. Es un transmisor asíncrono y un módulo clave para la comunicación asíncrona entre dispositivos. La UART es responsable de la conversión serie/paralelo y paralelo/serie entre el bus de datos y el puerto serie, y define el formato de trama. Siempre que ambas partes en comunicación utilicen el mismo formato de cuadro y velocidad en baudios, el proceso de comunicación se puede completar utilizando solo dos líneas de señal (Rx y Tx) sin disfrutar de la señal del reloj, por lo que también se denomina comunicación en serie asíncrona.
Serial es un protocolo de comunicación muy común para dispositivos en ordenadores (no confundir con Universal Serial Bus o USB). La mayoría de las computadoras contienen dos puertos serie basados en RS232. El puerto serie también es un protocolo de comunicación comúnmente utilizado para instrumentos. Muchos dispositivos compatibles con GPIB también tienen puertos RS-232. Al mismo tiempo, el protocolo de comunicación en serie también se puede utilizar para obtener datos de dispositivos de adquisición remota.
El concepto de comunicación serie es muy sencillo. Los puertos serie envían y reciben bytes bit a bit. Aunque es más lento que la comunicación paralela byte a byte, un puerto serie puede utilizar una línea para enviar datos y otra línea para recibir datos. Simple y puede lograr comunicación a larga distancia. Por ejemplo, al definir el estado del tráfico paralelo, IEEE488 estipula que la longitud total de las líneas de equipo no debe exceder los 20 metros y la longitud entre dos dispositivos no debe exceder los 2 metros para los puertos serie, la longitud puede ser de hasta 1200 m;
Normalmente, los puertos serie se utilizan para transmitir caracteres ASCII. La comunicación se logra mediante tres cables: (1) tierra, (2) transmisión y (3) recepción.
Debido a que la comunicación serie es asíncrona, un puerto puede enviar datos en una línea y recibir datos en otra línea. Las otras líneas son para dar la mano, pero no son obligatorias. Los parámetros más importantes de la comunicación serie son la velocidad en baudios, los bits de datos, los bits de parada y la paridad. Para ambos puertos de paso, estos parámetros deben coincidir:
Este es un parámetro que mide la velocidad de comunicación. Representa el número de bits transmitidos por segundo. Por ejemplo, 300 baudios significa enviar 300 bits por segundo. Cuando hablamos de ciclos de reloj, nos referimos a la velocidad en baudios. Por ejemplo, si el protocolo requiere una velocidad de 4800 baudios, el reloj será de 4800 Hz. Esto significa que la frecuencia de muestreo para la comunicación serie en la línea de datos es de 4800 Hz. Las velocidades en baudios comunes para las líneas telefónicas son 14400, 28800 y 36600. Las velocidades en baudios pueden ser mucho más altas que estos valores, pero la velocidad en baudios es inversamente proporcional a la distancia. A menudo se utilizan velocidades de transmisión altas para la comunicación entre instrumentos colocados cerca; un ejemplo típico es la comunicación entre dispositivos GPIB.
Este es un parámetro que mide los bits de datos reales en la comunicación. Cuando la computadora envía un paquete, los datos reales no serán de 8 bits. Los valores estándar son 5, 7 u 8 bits. La forma de configurar esto depende del mensaje que desee enviar. Por ejemplo, el código ASCII estándar es 0 ~ 127 (7 bits). El código ASCII extendido es 0 ~ 255 (8 bits). Si los datos utilizan texto simple (código ASCII estándar), cada paquete utiliza 7 bits de datos. 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.
Se utiliza para representar el último bit de un único paquete de datos. Los valores típicos son 1, 1,5 y 2 dígitos. Debido a que los datos se registran en la línea de transmisión y cada dispositivo tiene su propio reloj, es posible que dos dispositivos no estén un poco sincronizados al comunicarse. 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 quepan en los bits de parada, mayor será la tolerancia para diferentes sincronizaciones de reloj, pero más lenta será la velocidad de transferencia de datos.
Un método sencillo de detección de errores en comunicaciones serie. Hay cuatro métodos de detección de errores: par, impar, alto y bajo. Por supuesto, no hay ninguna paridad. En el caso de paridad, el puerto serie establecerá un bit de paridad (un bit después del bit de datos) para garantizar que los datos que se transmiten tengan un bit alto lógico par o impar con un valor. Por ejemplo, si los datos son 011, entonces para paridad par, el bit de paridad es 0 y el número de bits que garantizan la lógica alta es un número par. Si es una paridad impar, el bit de paridad es 1, por lo que hay tres bits lógicos altos. Los bits alto y bajo realmente no verifican los datos, simplemente establecen una verificación lógica alta o lógica baja. Esto permite que el dispositivo receptor conozca el estado de los bits y tenga la oportunidad de determinar si el ruido está interfiriendo con las comunicaciones o si los datos se envían y reciben no sincronizados.
El modo de acceso RS-232 permite una conexión sencilla de tres cables: Tx, Rx y tierra. Pero para la transmisión de datos, ambas partes deben utilizar la misma velocidad en baudios para la sincronización de datos. Si bien este método es suficiente para la mayoría de las aplicaciones, su uso es limitado cuando el receptor está sobrecargado. En este momento, se necesita la función de protocolo de enlace del puerto serie. En esta sección, analizaremos las tres formas más comunes de protocolo de enlace RS-232: protocolo de enlace de software, protocolo de enlace de hardware y Xmodem.
El primer protocolo de enlace que analizamos es el protocolo de enlace de software. Generalmente se usa cuando los datos reales son caracteres de control, de manera similar a como GPIB usa cadenas de comando. Aún quedan tres líneas necesarias: Tx, Rx y tierra. Debido a que los caracteres de control no son diferentes de los caracteres comunes en la línea de transmisión, la función SetXModem permite al usuario habilitar o deshabilitar los dos caracteres de control XON y OXFF. Estos caracteres son emitidos por el receptor durante la comunicación para hacer que el remitente haga una pausa.
Por ejemplo, supongamos que el remitente envía datos a una alta velocidad en baudios. Durante la transmisión, el receptor descubre que el búfer de entrada está lleno porque la CPU está ocupada con otro trabajo. Para detener temporalmente la transmisión, el extremo receptor envía XOFF, con un valor típico de 19 decimales o 13 hexadecimales, hasta que el búfer de entrada esté vacío.
Una vez que el receptor está listo para recibir, envía XON. El valor típico es 17 en decimal, que es 11 en hexadecimal, y continúa la comunicación. LabWindows envía XOFF cuando el búfer de entrada está medio lleno. Además, si se interrumpe la transferencia XOFF, LabWindows enviará XOFF cuando el buffer alcance el 75% y el 90%.
Obviamente, el remitente debe seguir este código para garantizar que la transmisión continúe.
El segundo es utilizar un apretón de manos cableado. Al igual que las líneas Tx y Rx, RTS/CTS y DTR/DSR funcionan juntas, una como salida y la otra como entrada. El primer conjunto de líneas es RTS (solicitud de envío) y CTS (borrado de envío). Cuando el receptor está listo para recibir datos, establece la línea RTS en alto para indicar que está listo. Si el remitente también está listo, establece CTS en alto para indicar que está a punto de enviar datos. El otro conjunto de cables es DTR (terminal de datos listo) y DSR (conjunto de datos listo).
Ahora se utilizan principalmente para comunicaciones por módem. Deje que el puerto serie y el módem comuniquen su estado. Por ejemplo, cuando un módem está listo para recibir datos desde una PC, establece la línea DTR en alto, lo que indica que se ha establecido la conexión a la línea telefónica. La línea DSR se lee y se establece en alto y la PC comienza a enviar datos. Una regla simple es que DTR/DSR se usa para indicar el estado de preparación de la comunicación del sistema, mientras que RTS/CTS se usa para transmitir un solo paquete de datos.
En LabWindows, la función SetCTSMode habilita o deshabilita el protocolo de enlace por hardware. Si el modo CTS está habilitado, LabWindows usa la siguiente regla: Cuando la PC envía datos, la biblioteca RS-232 debe detectar la altura de la línea CTS antes de enviar los datos.
Cuando la PC recibe datos:
Si el puerto está abierto y la cola de entrada está libre para recibir datos, la función de biblioteca establece RTS y DTR en alto.
Si la cola de entrada está llena al 90%, la función de biblioteca establece RTS bajo pero mantiene DTR alto.
Si la cola del puerto está casi vacía, la función de biblioteca establece RTS alto pero mantiene DRT alto.
Si el puerto está cerrado, la función de biblioteca establece RTS y DTR en nivel bajo.
El último protocolo de enlace analizado se llama Protocolo de transferencia de archivos XModem. Este protocolo es muy común en las comunicaciones modernas. Si bien el protocolo XModem se usa normalmente para comunicaciones por módem, también se puede usar directamente con otros dispositivos que siguen el protocolo. En LabWindows, la aplicación XModem real está oculta para el usuario. Siempre que la PC y otros dispositivos utilicen el protocolo XModem, la transferencia de archivos utiliza la función XModem de LabWindows. Estas funciones son XModemConfig, XModemSend y XModemReceive.
XModem utiliza un protocolo con los siguientes parámetros: start_of_data, end_of_data, neg_ack, wait_delay, start_delay, max_tries y paquete_size. Estos parámetros deben ser confirmados por ambas partes que se comunican. El XModem estándar tiene una definición estándar: sin embargo, se pueden modificar a través de la función XModemConfig para satisfacer necesidades específicas.
El uso de estos parámetros viene determinado por el carácter neg_ack enviado por el receptor. Esto notifica al remitente que está listo para recibir datos. Comienza a intentar enviar y el parámetro de tiempo de espera es start_delay; cuando el número de intentos de tiempo de espera excede max_ties, o cuando se recibe start_of_data enviado por el receptor, el remitente deja de intentarlo. Si se recibe start_of_data del remitente, el receptor leerá los paquetes posteriores.
El paquete contiene el número de paquetes, el complemento del número de paquetes como comprobaciones de errores, el tamaño real del paquete en bytes de tamaño de paquete y la suma de los valores de verificación para comprobaciones de errores adicionales. Después de leer los datos, el receptor llamará a wait_delay y luego enviará una respuesta al remitente. Si el remitente no recibe una respuesta, reenviará el paquete hasta que reciba una respuesta o se exceda max_tries. Si no se recibe respuesta, el remitente notifica al usuario que la transferencia de datos falló.
Debido a que los datos deben enviarse en paquetes en bytes de tamaño de paquete, cuando se envía el último paquete, si no hay suficientes datos para llenar un paquete, los bytes ASCII nulos (0) se completarán más adelante. Esto da como resultado recibir más datos que los datos originales.
Nunca utilice XON/XOFF en el contexto de XModem porque es probable que la cantidad de paquetes enviados por el remitente de XModem aumente hasta el valor del carácter de control XON/OFF, lo que provocará una falla en la comunicación.