Puerto serial

La versión actual de la página aún no ha sido revisada por colaboradores experimentados y puede diferir significativamente de la versión revisada el 26 de marzo de 2014; las comprobaciones requieren 69 ediciones .

Puerto serie ( eng.  serial port , puerto COM [1] , ing.  puerto de comunicaciones ) es el nombre de argot para la interfaz del estándar RS-232 , que estaba equipada masivamente con computadoras personales . El puerto se llama "serial", porque la información se transmite a través de él un bit , secuencialmente bit a bit (a diferencia del puerto paralelo ). A pesar de que algunas interfaces de computadora (por ejemplo, Ethernet , Firewire y USB ) también usan una forma serial de intercambio de información, el nombre de "puerto serial" se asignó al puerto del estándar RS-232 .

Cita

El estándar más utilizado para el puerto serie de las computadoras personales es RS-232C. Anteriormente, el puerto serie se usaba para conectar un terminal, más tarde para un módem o un mouse . Ahora se utiliza para conectarse a fuentes de alimentación ininterrumpida , para comunicarse con hardware de desarrollo informático integrado , receptores de satélite, cajas registradoras, programadores, dispositivos de seguridad de instalaciones y muchos otros dispositivos.

Usando el puerto COM, puede conectar dos computadoras usando el llamado "cable de módem nulo" (ver más abajo). Dicho cable se ha utilizado desde MS-DOS para transferir archivos de una computadora a otra, en UNIX para acceso de terminal a otra máquina y en Windows (incluso moderno) para un depurador a nivel de kernel.

La ventaja de la tecnología es la extrema simplicidad del equipo. La desventaja es la baja velocidad, los conectores grandes, así como los requisitos a menudo altos para los tiempos de respuesta del sistema operativo y del controlador y una gran cantidad de interrupciones (una para la mitad de la cola de hardware, es decir, 8 bytes).

Conectores

En las placas base de los principales fabricantes (por ejemplo, Intel ) o sistemas listos para usar (por ejemplo, IBM , Hewlett-Packard , Fujitsu Siemens Computers ), se adopta el símbolo COM o RS-232 para el puerto serie.

Los más utilizados son los conectores en forma de D estandarizados en 1969 : 9 y 25 pines (DE-9 y DB-25, respectivamente). Anteriormente, también se usaban DA-31 y DIN-8 redondos de ocho pines. La velocidad máxima en baudios para un puerto típico es de 115200 baudios .

Relevancia

Muy extendida en las computadoras compatibles con IBM PC , la interfaz RS-232 no es adecuada para entretenimiento y tareas de oficina, pero se usa ampliamente en tareas aplicadas, por lo que los intentos de deshacerse del legado de interfaces antiguas en las placas base modernas están condenados. La especificación PC99  es uno de los ejemplos fallidos de cobrar en un reemplazo a gran escala de equipos "obsoletos". escriben sobre ella que es "ahora obsoleto y de interés puramente histórico", y la producción de equipos "obsoletos" está floreciendo. En los ordenadores de oficina y hogar, donde las distancias y las interferencias son pequeñas, y el tipo de cambio es muy demandado, el RS-232 prácticamente ha sido suplantado por la interfaz USB .

Existen estándares para la emulación de puerto serie a través de USB y Bluetooth (esta tecnología se diseñó en gran medida como "puerto serie inalámbrico").

Sin embargo, la emulación de software de este puerto todavía se usa ampliamente en la actualidad. Entonces, por ejemplo, casi todos los teléfonos móviles emulan un puerto COM clásico y un módem dentro de sí mismos para implementar el anclaje  : acceso de la computadora a Internet a través de equipos telefónicos GPRS / EDGE / 3G / 4G. En este caso, se utiliza USB , Bluetooth o Wi-Fi [2] para la conexión física a la computadora .

Además, la emulación de software de este puerto se proporciona a los "invitados" de las máquinas virtuales VMWare y Microsoft Hyper-V , cuyo objetivo principal es conectar el depurador de nivel de kernel de Windows al "invitado".

En forma de UART , que difiere en los niveles de voltaje y la ausencia de señales adicionales, está presente en casi todos los microcontroladores, excepto en las placas de desarrollo más pequeñas, SoC, y también está presente en las placas de la mayoría de los dispositivos, aunque el El conector no se muestra en la carcasa. Tal popularidad se debe a la simplicidad de esta interfaz, tanto desde el punto de vista físico, como a la facilidad de acceso al puerto por software en comparación con otras interfaces.

Equipamiento

El conector tiene contactos:

DTR (Terminal de datos listo - preparación para recibir datos) - salida en la computadora, entrada en el módem. Indica que la computadora está lista para trabajar con el módem. Restablecer esta línea provoca un restablecimiento casi completo del módem a su estado original, incluido colgar (algunos registros de control sobreviven después de dicho restablecimiento). En UNIX, esto ocurre cuando todas las aplicaciones tienen archivos cerrados en el controlador del puerto serie. El mouse usa este cable para recibir energía.

DSR (Data Set Ready - preparación para la transferencia de datos) - entrada en una computadora, salida en un módem. Indica que el módem está listo. Si esta línea está en cero, en algunos sistemas operativos se vuelve imposible abrir el puerto como un archivo.

RxD (Recibir datos - recepción de datos) - entrada en la computadora, salida en el módem. Un flujo de datos que ingresa a una computadora.

TxD (transmitir datos - transferencia de datos) - salida en la computadora, entrada en el módem. Un flujo de datos que sale de una computadora.

CTS (Clear to Send - preparación de transmisión) - entrada en la computadora, salida en el módem. Se requiere que la computadora suspenda la transferencia de datos hasta que este cable se establezca en uno. Se utiliza en el protocolo de control de flujo de hardware para evitar el desbordamiento en el módem.

RTS (Solicitud de envío - solicitud de transmisión): salida en la computadora, entrada en el módem. El módem debe suspender la transmisión de datos hasta que este cable se establezca en uno. Se utiliza en el protocolo de control de flujo de hardware para evitar el desbordamiento en el hardware y el controlador.

DCD (Detección de portadora - presencia de portadora) - entrada en la computadora, salida en el módem. Establecido por el módem a uno después de establecer una conexión con el módem en el otro lado, restablecido a cero cuando se interrumpe la conexión. El hardware de la computadora puede emitir una interrupción cuando ocurre tal evento.

RI (Indicador de timbre - señal de llamada) - entrada en la computadora, salida en el módem. El módem lo amartilla a uno después de detectar la señal de llamada de una llamada telefónica. El hardware de la computadora puede emitir una interrupción cuando ocurre tal evento.

SG (Tierra de señal - tierra de señal): un cable de señal común del puerto, no es una tierra común , por regla general, aislado de la carcasa de la computadora o del módem.

Un cable de módem nulo utiliza dos pares cruzados: TXD/RXD y RTS/CTS.

Inicialmente, en los IBM PC e IBM PC/XT, el hardware del puerto estaba construido sobre el chip UART 8250 de National Semiconductor, luego el chip fue reemplazado por el 16450, que era software compatible con los anteriores, pero permitía velocidades de hasta 115200 bits. por segundo, luego apareció el chip 16550, que contenía un búfer de datos FIFO bidireccional para reducir la carga en el controlador de interrupción. Actualmente se incluye en el chip SuperIO de la placa base junto con otros dispositivos.

Acceso programático al puerto COM

UNIX

Los puertos COM en el sistema operativo Unix ( Linux ) son archivos de dispositivo de caracteres. Estos archivos generalmente se encuentran en el directorio /dev y se denominan

Para acceder mediante programación a un puerto COM, debe abrir el archivo correspondiente para leer/escribir y realizar llamadas a las funciones especiales tcgetattr (para conocer la configuración actual) y tcsetattr (para establecer una nueva configuración). También puede ser necesario realizar llamadas ioctl con ciertos parámetros. Después de eso, al escribir en un archivo, los datos se enviarán a través del puerto y, al leer, el programa recibirá los datos ya recibidos del búfer del puerto COM.

Los dispositivos llamados "ttyxx" se utilizan como dispositivos de servidor, es decir, la aplicación que abrió este dispositivo generalmente espera una llamada entrante del módem. La aplicación predeterminada clásica es getty , que espera una llamada entrante, luego configura el puerto COM de acuerdo con los archivos de configuración, genera "login:" allí, acepta un nombre de usuario y ejecuta el comando "loginUserName" como un niño, con entrada estándar y salida redirigida al puerto COM. Este comando, a su vez, solicita y verifica la contraseña y, si tiene éxito, inicia (no como un elemento secundario, sino en lugar de llamar a execve en el mismo proceso) el shell de usuario predeterminado especificado en el archivo /etc/passwd.

Esta tecnología se originó históricamente en la década de 1970, cuando computadoras como PDP-11 (en la URSS la serie se llamaba SM EVM ) o VAX se usaban bajo UNIX OS , permitiendo la conexión de muchas terminales para el trabajo de muchos usuarios. Los terminales, y por lo tanto toda la interfaz de usuario, se conectaban a través de puertos serie, con la capacidad de conectar un módem en lugar de un terminal y luego llamar a la computadora por teléfono. Hasta ahora, los sistemas operativos similares a UNIX tienen una pila de terminales y, por lo general, 3 implementaciones de terminales: un puerto serie, una pantalla en modo texto + consola de teclado y un "bucle invertido" a uno de los archivos abiertos de la aplicación de control (así es como se implementan telnetd, sshd y xterm).

Los dispositivos cliente de puerto serie para realizar llamadas al exterior se denominan cuaxx en muchos UNIX (pero no en todos).

Dado que solo se puede acceder al puerto serie en UNIX a través de la pila de terminales, puede ser un terminal de control para procesos y grupos (envíe SIGHUP al desconectarse del módem y SIGINT en Ctrl-C), admita la edición de la última línea ingresada con las teclas de flecha en el nivel del kernel, etc. Deshabilitar esta función para convertir el dispositivo en una "tubería" para un flujo de bytes requiere llamadas ioctl.

Ventanas

Los puertos serie en Win32 se tratan como archivos. La función CreateFile se utiliza para abrir un puerto. Puede haber muchos puertos, por lo que se denominan COM1, COM2, etc. en el orden en que se encuentran los controladores de dispositivo. Los primeros 9 puertos también están disponibles como canalizaciones con nombre para la transferencia de datos (disponibles con los nombres "COM1", "COM2", ...), este método de acceso se considera obsoleto. Se recomienda direccionar todos los puertos como archivos (llamados "\\.\COM1", "\\.\COM2", ... "\\.\COMx").

La búsqueda de nombres de dispositivos PnP en el sistema se realiza llamando a SetupDiGetClassDevs. La clave HKEY_LOCAL_MACHINE\HARDWARE\DEVICEMAP\SERIALCOMM existe en el registro, que muestra los puertos COM disponibles actualmente.

Hay una sección en el registro para cada puerto. Estas secciones tienen los siguientes nombres:

HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Serial\Parameters\Serial10000,

donde el último valor "Serial10000" es un número único para cada nuevo puerto COM agregado al sistema, para el segundo - "Serial10001", etc.

OS/2

El controlador COM.SYS disponible solo admite 4 puertos COM, cada uno de los cuales debe tener su propia línea de interrupción. Para dar servicio a los puertos COM con una línea de interrupción común, debe usar el controlador SIO [3] .

Cable módem nulo

En algunos casos, es posible utilizar una versión simplificada del cable, en la que solo se utilizan los pines 2, 3 y 5.

Véase también

Notas

  1. Usado solo en la terminología de la familia del sistema operativo Windows , históricamente vino de MS-DOS y la PC clásica de IBM .
  2. [https://web.archive.org/web/20130621141521/http://skp.samsungcsportal.com/integrated/popup/FaqDetailPopup.jsp?seq=333410&cdsite=ua_ru Archivado el 21 de junio de 2013 en la función Wayback Machine AllShare ?]
  3. Instalación de una placa de puerto COM en una computadora (enlace inaccesible) . Consultado el 25 de agosto de 2010. Archivado desde el original el 15 de mayo de 2011. 

Enlaces