stringtranslate.com

Puerto serial

Un conector macho D-subminiatura utilizado para un puerto serie en una computadora compatible con IBM PC junto con el símbolo del puerto serie

En las computadoras , un puerto serie es una interfaz de comunicación serie a través de la cual la información entra o sale secuencialmente, un bit a la vez. [1] Esto contrasta con un puerto paralelo , que comunica múltiples bits simultáneamente en paralelo . A lo largo de la mayor parte de la historia de las computadoras personales , los datos se han transferido a través de puertos serie a dispositivos como módems , terminales , diversos periféricos y directamente entre computadoras.

Si bien las interfaces como Ethernet , FireWire y USB también envían datos como un flujo en serie , el término puerto en serie generalmente denota hardware compatible con RS-232 o un estándar relacionado, como RS-485 o RS-422 .

Las computadoras personales (PC) de consumo modernas han reemplazado en gran medida los puertos serie con estándares de mayor velocidad, principalmente USB. Sin embargo, los puertos serie todavía se utilizan con frecuencia en aplicaciones que exigen interfaces simples y de baja velocidad, como sistemas de automatización industrial, instrumentos científicos, sistemas de punto de venta y algunos productos industriales y de consumo.

Las computadoras servidor pueden usar un puerto serie como consola de control para diagnósticos, mientras que el hardware de red (como enrutadores y conmutadores ) comúnmente usa puertos de consola serie para configuración, diagnóstico y acceso para mantenimiento de emergencia. Para interactuar con estos y otros dispositivos, los convertidores de USB a serie pueden agregar rápida y fácilmente un puerto serie a una PC moderna.

Hardware

Los dispositivos modernos utilizan un circuito integrado llamado UART para implementar un puerto serie. Este IC convierte caracteres hacia y desde un formato serial asíncrono , implementando la temporización y el encuadre de los datos especificados por el protocolo serial en el hardware. La PC IBM implementa sus puertos serie, cuando están presentes, con uno o más UART.

Los sistemas de muy bajo costo, como algunas de las primeras computadoras domésticas , usaban en cambio la CPU para enviar los datos a través de un pin de salida , utilizando la técnica de bit banging . Estas primeras computadoras domésticas a menudo tenían puertos serie propietarios con configuraciones de pines y niveles de voltaje incompatibles con RS-232.

Antes de que la integración a gran escala (LSI) hiciera comunes los UART, los puertos serie se usaban comúnmente en mainframes y minicomputadoras , que tendrían múltiples circuitos integrados de pequeña escala para implementar registros de desplazamiento, puertas lógicas, contadores y toda la demás lógica necesaria. A medida que las PC evolucionaron, los puertos serie se incluyeron en el chip Super I/O y luego en el chipset .

DTE y DCE

Las señales individuales en un puerto serie son unidireccionales y al conectar dos dispositivos, las salidas de un dispositivo deben estar conectadas a las entradas del otro. Los dispositivos se dividen en dos categorías: equipos terminales de datos (DTE) y equipos terminales de circuitos de datos (DCE). Una línea que es una salida en un dispositivo DTE es una entrada en un dispositivo DCE y viceversa, por lo que un dispositivo DCE se puede conectar a un dispositivo DTE con un cable recto, en el que cada pin en un extremo va al mismo número. pasador en el otro extremo.

Convencionalmente, las computadoras y terminales son DTE, mientras que los periféricos como los módems son DCE. Si es necesario conectar dos dispositivos DTE (o DCE) entre sí, se debe utilizar un cable con líneas TX y RX invertidas, conocido como cable cruzado , roll-over o módem nulo .

Género

Generalmente, los conectores de puerto serie tienen un género , lo que solo permite que los conectores se acoplen con un conector del sexo opuesto. En los conectores subminiatura D , los conectores macho tienen clavijas salientes y los conectores hembra tienen sus correspondientes enchufes redondos. [2] Cualquiera de los tipos de conector se puede montar en un equipo o en un panel; o terminar un cable.

Es probable que los conectores montados en DTE sean macho y los montados en DCE sean hembra (siendo los conectores de cable lo opuesto). Sin embargo, esto está lejos de ser universal; por ejemplo, la mayoría de las impresoras serie tienen un conector DB25 hembra, pero son DTE. [3] En esta circunstancia, se pueden utilizar los conectores del cable con el género apropiado o un cambiador de género para corregir la falta de coincidencia.

Conectores

El único conector especificado en el estándar RS-232 original era el D-subminiatura de 25 pines, sin embargo, se han utilizado muchos otros conectores para ahorrar dinero o ahorrar espacio físico, entre otras razones. En particular, dado que muchos dispositivos no utilizan las 20 señales definidas por el estándar, a menudo se utilizan conectores con menos pines. Si bien a continuación se muestran ejemplos específicos, se han utilizado muchos otros conectores para conexiones RS-232.

El conector DE-9 de 9 pines ha sido utilizado por la mayoría de las PC compatibles con IBM desde la opción de adaptador serie/paralelo para PC-AT , donde el conector de 9 pines permitía que un puerto serie y paralelo encajaran en la misma tarjeta. [4] Este conector ha sido estandarizado para RS-232 como TIA-574 .

Algunos dispositivos electrónicos miniaturizados, en particular las calculadoras gráficas [5] y los equipos portátiles de radioaficionados y de dos vías , [6] tienen puertos serie que utilizan un conector telefónico , generalmente los conectores más pequeños de 2,5 o 3,5 mm y la interfaz más básica de 3 cables. transmitir, recibir y tierra.

Un cable rollover de Cisco que utiliza el estándar 8P8C Yost

Los conectores 8P8C también se utilizan en muchos dispositivos. El estándar EIA/TIA-561 define una distribución de pines usando este conector, mientras que el cable rollover (o estándar Yost) se usa comúnmente en computadoras Unix y dispositivos de red, como equipos de Cisco Systems . [7]

Par de conectores Mini DIN-8 hembra utilizados para puertos serie RS-422 en una computadora Macintosh LC

Muchos modelos de Macintosh prefieren el estándar RS-422 relacionado, y en su mayoría utilizan conectores mini-DIN circulares . El Macintosh incluía un conjunto estándar de dos puertos para la conexión a una impresora y un módem, pero algunos portátiles PowerBook sólo tenían un puerto combinado para ahorrar espacio. [8]

Se pueden encontrar conectores 10P10C en algunos dispositivos. [9]

Otro conector común es un cabezal de 10 × 2 pines común en placas base y tarjetas complementarias que generalmente se convierte mediante un cable plano al conector DE-9 de 9 pines más estándar (y frecuentemente se monta en una placa de ranura libre u otra parte del La vivienda). [10]

Distribución de pines

La siguiente tabla enumera las señales RS-232 y las asignaciones de pines comúnmente utilizadas: [11]

Signal Ground es un retorno común para las otras conexiones; Aparece en dos pines en el estándar Yost pero es la misma señal. El conector DB-25 incluye una segunda Tierra de Protección en el pin 1, que está destinada a ser conectada por cada dispositivo a su propia tierra de marco o similar. Conectar la tierra de protección a la tierra de la señal es una práctica común pero no recomendada.

Tenga en cuenta que EIA/TIA 561 combina DSR y RI, [13] [14] y el estándar Yost combina DSR y DCD.

Abstracción de hardware

Los sistemas operativos suelen crear nombres simbólicos para los puertos serie de una computadora, en lugar de requerir que los programas se refieran a ellos por dirección de hardware.

Los sistemas operativos tipo Unix generalmente etiquetan los dispositivos del puerto serie /dev/tty* . TTY es una abreviatura común sin marcas registradas para teletipo , un dispositivo comúnmente conectado a los puertos serie de las primeras computadoras, y * representa una cadena que identifica el puerto específico; la sintaxis de esa cadena depende del sistema operativo y del dispositivo. En Linux , los puertos serie de hardware UART 8250/16550 se denominan /dev/ttyS* , los adaptadores USB aparecen como /dev/ttyUSB* y varios tipos de puertos serie virtuales no necesariamente tienen nombres que comienzan con tty .

Los entornos DOS y Windows se refieren a los puertos serie como puertos COM : COM1, COM2,..etc. [15]

Aplicaciones comunes para puertos serie

Esta lista incluye algunos de los dispositivos más comunes que se conectan al puerto serie de una PC. Algunos de ellos, como los módems y los ratones en serie, están cayendo en desuso, mientras que otros están fácilmente disponibles. Los puertos serie son muy comunes en la mayoría de los tipos de microcontroladores , donde se pueden utilizar para comunicarse con una PC u otros dispositivos serie.

Dado que las señales de control de un puerto serie pueden ser controladas por cualquier señal digital , algunas aplicaciones utilizaron las líneas de control de un puerto serie para monitorear dispositivos externos, sin intercambiar datos serie. Una aplicación comercial común de este principio fue para algunos modelos de fuente de alimentación ininterrumpida que utilizaban las líneas de control para señalar pérdida de energía, batería baja y otra información de estado. Al menos algunos programas de entrenamiento de código Morse utilizaban una clave de código conectada al puerto serie para simular el uso real del código; Los bits de estado del puerto serie se podían muestrear muy rápidamente y en momentos predecibles, lo que hacía posible que el software descifrara el código Morse.

Los ratones de ordenador en serie pueden obtener su potencia operativa de los datos recibidos o de las señales de control. [16] [17]

Ajustes

Los estándares en serie proporcionan muchas velocidades operativas diferentes, así como ajustes al protocolo para tener en cuenta diferentes condiciones operativas. Las opciones más conocidas son la velocidad, la cantidad de bits de datos por carácter, la paridad y la cantidad de bits de parada por carácter.

En los puertos serie modernos que utilizan un circuito integrado UART, todas estas configuraciones pueden controlarse mediante software. El hardware de la década de 1980 y anteriores puede requerir la configuración de interruptores o puentes en una placa de circuito.

La configuración de los puertos serie diseñados para conectarse a una PC se ha convertido en un estándar de facto, generalmente denominado 9600/8-N-1 .

Velocidad

Los puertos serie utilizan señalización de dos niveles (binaria), por lo que la velocidad de datos en bits por segundo es igual a la velocidad de símbolos en baudios . La velocidad total incluye bits para el entramado (bits de parada, paridad, etc.) y, por lo tanto, la velocidad de datos efectiva es menor que la velocidad de transmisión de bits. Por ejemplo, con una estructura de caracteres 8-N-1 , sólo el 80% de los bits están disponibles para datos; por cada ocho bits de datos, se envían dos bits de trama más.

Una serie estándar de tarifas se basa en múltiplos de las tarifas de los teleimpresores electromecánicos ; Algunos puertos serie permiten seleccionar muchas velocidades arbitrarias, pero las velocidades en ambos lados de la conexión deben coincidir para que los datos se reciban correctamente. Las velocidades de bits comúnmente admitidas incluyen 75, 110, 300, 1200, 2400, 4800, 9600, 19200, 38400, 57600 y 115200 bit/s. [19] Muchas de estas velocidades de baudios de módem estándar son múltiplos de 0,9 kbps (por ejemplo, 19200, 38400, 76800) o 1,2 kbps (por ejemplo, 57600, 115200). [23] Los osciladores de cristal con una frecuencia de 1,843200 MHz se venden específicamente para este propósito. Esta es 16 veces la velocidad de bits más rápida y el circuito del puerto serie puede dividirla fácilmente a frecuencias más bajas según sea necesario.

La capacidad de establecer una velocidad de bits no implica que se obtendrá una conexión que funcione. No todas las velocidades de bits son posibles con todos los puertos serie. Algunos protocolos de propósito especial, como MIDI para el control de instrumentos musicales, utilizan velocidades de datos en serie distintas a los estándares de teleimpresora. Algunas implementaciones de puerto serie pueden elegir automáticamente una velocidad de bits observando lo que envía un dispositivo conectado y sincronizándose con él.

Bits de datos

El número de bits de datos en cada carácter puede ser 5 (para el código Baudot ), 6 (rara vez se usa), 7 (para ASCII verdadero ), 8 (para la mayoría de los tipos de datos, ya que este tamaño coincide con el tamaño de un byte ), o 9 (rara vez usado). 8 bits de datos se utilizan casi universalmente en aplicaciones más nuevas. Por lo general, 5 o 7 bits sólo tienen sentido en equipos más antiguos, como por ejemplo teleimpresores.

La mayoría de los diseños de comunicaciones en serie envían primero los bits de datos dentro de cada byte , el bit menos significativo . También es posible, aunque rara vez se utiliza, que el bit más significativo esté primero; esto fue utilizado, por ejemplo, por el terminal de impresión IBM 2741 . El orden de los bits generalmente no se puede configurar dentro de la interfaz del puerto serie, pero lo define el sistema host. Para comunicarse con sistemas que requieren un orden de bits diferente al predeterminado local, el software local puede reordenar los bits dentro de cada byte justo antes de enviar y justo después de recibir.

Paridad

La paridad es un método para detectar errores en la transmisión. Cuando se utiliza la paridad con un puerto serie, se envía un bit de datos adicional con cada carácter de datos, organizado de modo que el número de 1 bits en cada carácter, incluido el bit de paridad, sea siempre par o impar. Si se recibe un byte con un número incorrecto de unos, entonces debe haber estado dañado. La paridad correcta no indica necesariamente ausencia de corrupción, ya que una transmisión corrupta con un número par de errores pasará la verificación de paridad. Un solo bit de paridad no permite la implementación de corrección de errores en cada carácter, y los protocolos de comunicación que funcionan a través de enlaces de datos en serie generalmente tendrán mecanismos de nivel superior para garantizar la validez de los datos y solicitar la retransmisión de datos que se hayan recibido incorrectamente.

El bit de paridad en cada carácter se puede establecer en uno de los siguientes:

Aparte de las aplicaciones poco comunes que utilizan el último bit (generalmente el noveno) para alguna forma de direccionamiento o señalización especial, la paridad de marca o espacio es poco común, ya que no agrega información de detección de errores.

La paridad impar es más útil que la paridad par, ya que garantiza que se produzca al menos una transición de estado en cada carácter, lo que la hace más confiable a la hora de detectar errores como los que podrían ser causados ​​por discrepancias en la velocidad del puerto serie. Sin embargo, la configuración de paridad más común es none y la detección de errores se realiza mediante un protocolo de comunicación.

Para permitir la detección de mensajes dañados por el ruido de la línea , se dispusieron teleimpresores electromecánicos para imprimir un carácter especial cuando los datos recibidos contenían un error de paridad.

Bits de parada

Los bits de parada enviados al final de cada carácter permiten que el hardware de señal de recepción detecte el final de un carácter y se resincronice con el flujo de caracteres. Los dispositivos electrónicos suelen utilizar un bit de parada. Si se utilizan teleimpresores electromecánicos lentos , es posible que se requieran una y media o dos puntas de tope.

Notación convencional

La notación convencional de datos/paridad/parada (D/P/S) especifica la estructura de una conexión en serie. El uso más común en microcomputadoras es 8/N/1 (8N1). Esto especifica 8 bits de datos, sin paridad, 1 bit de parada. En esta notación, el bit de paridad no está incluido en los bits de datos. 7/E/1 (7E1) significa que se agrega un bit de paridad par a los 7 bits de datos para un total de 8 bits entre los bits de inicio y parada.

Control de flujo

El control de flujo se utiliza en circunstancias en las que un transmisor podría enviar datos más rápido de lo que el receptor puede procesarlos. Para hacer frente a esto, las líneas serie suelen incorporar un método de protocolo de enlace . Existen métodos de protocolo de enlace de hardware y software .

El protocolo de enlace por hardware se realiza con señales adicionales, a menudo los circuitos de señal RS-232 RTS/CTS o DTR/DSR. RTS y CTS se utilizan para controlar el flujo de datos, señalando, por ejemplo, cuando un búfer está casi lleno. Según el estándar RS-232 y sus sucesores, DTR y DSR se utilizan para señalar que el equipo está presente y encendido, por lo que generalmente se afirman en todo momento. Sin embargo, existen implementaciones no estándar, por ejemplo, impresoras que utilizan DTR como control de flujo.

El protocolo de enlace de software se realiza, por ejemplo, con los caracteres de control ASCII XON/XOFF para controlar el flujo de datos. Los caracteres XON y XOFF son enviados por el receptor al remitente para controlar cuándo el remitente enviará datos, es decir, estos caracteres van en la dirección opuesta a los datos que se envían. El sistema se inicia en el estado de envío permitido . Cuando los buffers del receptor se acercan a su capacidad, el receptor envía el carácter XOFF para indicarle al remitente que deje de enviar datos. Más tarde, una vez que el receptor ha vaciado sus buffers, envía un carácter XON para indicarle al remitente que reanude la transmisión. Es un ejemplo de señalización dentro de banda , donde la información de control se envía por el mismo canal que sus datos.

La ventaja del protocolo de enlace por hardware es que puede ser extremadamente rápido, funciona independientemente del significado impuesto, como ASCII, a los datos transferidos y no tiene estado . Su desventaja es que requiere más hardware y cableado, y ambos extremos de la conexión deben admitir el protocolo de intercambio de hardware utilizado.

La ventaja del protocolo de enlace de software es que se puede realizar con circuitos y cableado de protocolo de enlace de hardware ausentes o incompatibles. La desventaja, común a toda la señalización de control dentro de banda, es que introduce complejidades para garantizar que los mensajes de control lleguen incluso cuando los mensajes de datos están bloqueados, y los datos nunca pueden confundirse con señales de control. Lo primero normalmente lo soluciona el sistema operativo o el controlador del dispositivo; este último normalmente garantiza que los códigos de control se escapen (como en el protocolo Kermit ) o ​​se omitan por diseño (como en el control de terminal ANSI ).

Si no se emplea ningún protocolo de enlace, es posible que un receptor saturado simplemente no pueda recibir datos del transmisor. Los enfoques para evitar esto incluyen reducir la velocidad de la conexión para que el receptor siempre pueda mantener el ritmo, aumentar el tamaño de los buffers para que pueda mantenerse al día promediados durante un tiempo más largo, utilizar retrasos después de operaciones que consumen mucho tiempo (por ejemplo, en termcap ) o emplear un mecanismo para reenviar datos que no se han recibido correctamente (por ejemplo, TCP ).

Ver también

Referencias

  1. ^ Beal, Vangie (septiembre de 1996). "Definición y significado del puerto serie". Webopedia . Consultado el 8 de marzo de 2021 .
  2. ^ "Guía de conexión de cable serie". CISCO. 2006-08-01 . Consultado el 31 de enero de 2016 .
  3. ^ "RS232 - Conectores DTE y DCE". Lantronix. 2006-03-29. Archivado desde el original el 14 de diciembre de 2015 . Consultado el 31 de enero de 2016 .
  4. ^ "Adaptador serie/paralelo IBM PC AT" (PDF) . Archivado desde el original (PDF) el 24 de febrero de 2020.
  5. ^ "Guía de enlace TI-73...92+/V200 TI". merthsoft.com . Consultado el 14 de agosto de 2020 .
  6. ^ "Sección Técnica". Miklor.com . Consultado el 14 de agosto de 2020 .
  7. ^ "Guía de cableado para consola y puertos AUX". Cisco . Consultado el 14 de agosto de 2020 .
  8. ^ "Puertos Mac clásicos". WhiteFiles.org . Consultado el 14 de agosto de 2020 .
  9. ^ ab "Guía de referencia rápida en serie" (PDF) . NI.com . Instrumentos Nacionales. Julio 2013 . Consultado el 18 de junio de 2021 .
  10. ^ Especificación técnica del producto Intel Server Board S5000PAL/S5000XAL (PDF) . pag. 38.
  11. ^ Ögren, Joakim. "Serie (PC 9)". Archivado desde el original el 11 de agosto de 2010 . Consultado el 7 de julio de 2010 .
  12. ^ ab "Estándar de cableado de dispositivo serie Yost". Archivado desde el original el 17 de junio de 2020 . Consultado el 10 de mayo de 2020 .
  13. ^ "Libro de hardware RS-232D".
  14. ^ "Distribución de pines RS-232D EIA/TIA-561 RJ45".
  15. ^ Stephen Byron Cooper. "¿Qué es un puerto Com1?" . Consultado el 30 de septiembre de 2021 .
  16. ^ Chan, Alvin (1990). "Implementación del mouse para PC AN-681 con COP800" (PDF) . Semiconductor Nacional . Consultado el 29 de julio de 2023 .
  17. ^ "AN519 Implementación de un controlador de mouse en serie simple" (PDF) . Microchip Technology Inc. 1997 . Consultado el 29 de julio de 2023 .
  18. ^ "Estructura SERIAL_COMMPROP". Microsoft . 2018-04-22. Archivado desde el original el 28 de septiembre de 2019 . Consultado el 28 de septiembre de 2019 .
  19. ^ ab "Estructura DCB". Centro de desarrollo de Windows . Microsoft . 2018-12-04. Archivado desde el original el 28 de septiembre de 2019 . Consultado el 28 de septiembre de 2019 .
  20. ^ "Manual de descripción general de BACnet MS/TP" (PDF) . Neptrónico. Archivado (PDF) desde el original el 10 de enero de 2020 . Consultado el 26 de septiembre de 2019 .
  21. ^ "Multimódem ZBA" (PDF) . Multi-Tech Systems, Inc. Enero de 2019. Archivado desde el original (PDF) el 3 de marzo de 2019 . Consultado el 26 de septiembre de 2019 .
  22. ^ "Courier 56K Business Modem: Guía del usuario: Control de velocidades de datos". Robótica estadounidense . 2007. Archivado desde el original el 4 de agosto de 2017 . Consultado el 26 de septiembre de 2019 .
  23. ^ "SX1272/73 - Hoja de datos del transceptor de largo alcance y baja potencia de 860 MHz a 1020 MHz" (PDF) . Semtech . Enero de 2019.

Otras lecturas

enlaces externos