4.4. Hardware Serie

RS-232 es actualmente el est�ndar m�s com�n para comunicaciones serie en el mundo de los PC. Emplea una serie de circuitos para transmitir bits de uno en uno, as� como para sincronizaci�n. Otras l�neas adicionales pueden ser empleadas para se�alar la presencia de un portador (empleadas por m�dems) y para negociaci�n (handshaking). GNU/Linux acepta una amplia variedad de tarjetas serie que usan el est�ndar RS-232.

La negociaci�n por hardware es opcional, pero muy �til. Permite a cualquiera de las dos estaciones avisar si est� preparada para recibir m�s datos, o si la otra estaci�n deber�a esperar mientras se procesan los datos recibidos. Las l�neas usadas para esto se llaman “Clear to Send” (CTS) y “Ready to Send” (RTS), respectivamente, lo que explica el nombre coloquial para negociaci�n por hardware: “RTS/CTS.” El otro tipo de negociaci�n con el que quiz� est� usted familiarizado es la negociaci�n “XON/XOFF” XON/XOFF utiliza dos caracteres concretos, convencionalmente Ctrl-S y Ctrl-Q, para indicar al extremo remoto que deber�a parar o comenzar la transmisi�n de datos, respectivamente. A la par que este m�todo es simple de implementar y v�lido para uso con terminales sin procesamiento, tambi�n es cierto que crea una gran confusi�n cuando los datos son binarios, ya que probablemente se quisieran transmitir esos caracteres como parte del flujo de datos que enviamos, en lugar de que fueran interpretados como caracteres de control del flujo. Por otra parte, la rapidez con que toman efecto es menor que con negociaci�n por hardware. La negociaci�n hardware es limpia, r�pida y se recomienda sobre XON/XOFF si existe la posibilidad de elegir.

En el IBM PC original, el interfaz RS-232 era manejado por un chip UART llamado 8250. Los PCs de la �poca del 486 emplearon una versi�n m�s moderna del UART, llamada 16450. Era ligeramente superior al 8250. Casi todas las m�quinas basadas en procesadores Pentium contienen otra versi�n a�n m�s moderna del UART, llamada 16550. Ciertas marcas (particularmente m�dems internos equipados con el chipset Rockwell) utilizan chips completamente distintos que emulan el comportamiento del 16550 y pueden ser tratados de forma similar. GNU/Linux acepta todos ellos con su manejador est�ndar de puerto serie.[1]

El 16550 fue una mejora significativa sobre el 8250 y el 16450, ya que proporciona un b�fer FIFO de 16 bytes. En realidad, el 16550 es una familia de dispositivos UART, que comprende el 16550, el 16550A y el 16550AFN (posteriormente llamado PC16550DN). Las diferencias radican en si el FIFO funciona realmente o no; el 16550AFN es el �nico en el que es seguro que funciona. Tambi�n existi� un NS16550, pero su FIFO nunca funcion�.

Los UARTs 8250 y 16450 ten�an un buffer simple de 1 byte. Esto significa que un 16450 genera una interrupci�n por cada car�cter transmitido o recibido. Cada interrupci�n se procesa en un corto per�odo de tiempo, y esta peque�a demora limita a los 16450 a una velocidad de bits m�xima y fiable de 9.600 bps en una m�quina de arquitectura ISA t�pica.

En su configuraci�n por defecto, el n�cleo comprueba los cuatro puertos serie est�ndar, desde COM1: a COM4:. El n�cleo tambi�n puede detectar qu� tipo de UART se emplea en cada uno de los puertos serie est�ndar, y har� uso del b�fer FIFO mejorado del 16550, si est� disponible.

Notas

[1]

�N�tese que no estamos hablando sobre WinModem™ aqu�! Los WinModems tienen una circuiter�a muy simple y dependen por completo de la CPU principal de su ordenador, en lugar de hardware espec�fico que haga todo el trabajo duro. Si ha decidido comprar un m�dem, le recomendamos encarecidamente que no compre un m�dem de ese tipo; consiga un m�dem de verdad. Quiz� encuentre soporte para WinModems en GNU/Linux, pero eso s�lo los convierte en una soluci�n marginalmente m�s atractiva.