Los puertos paralelo y serie

Anuncio
Los puertos paralelo y serie
El puerto paralelo
Introducción
El puerto paralelo adapta la velocidad del ordenador a la del periférico (es más lento), y
establece un control de flujo hardware para que el ordenador no inunde de información al
periférico.
Mediante el puerto paralelo se puede establecer un mayor control por parte del ordenador
sobre el periférico. En cambio, en el puerto serie la velocidad esta preestablecida y no existe
tanto control como con el puerto serie.
Conexión física del puerto
El interfaz puerto paralelo se basa en un conector hembra de 25 pins. La tabla 1 muestra las
líneas del puerto paralelo y su significado lógico en una conexión PC-impresora:
Pin del ordenador
Nombre Línea
Significado
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18-25
STROBE
D0
D1
D2
D3
D4
D5
D6
D7
ACK
BUSY
PE
SLCT
AUTO FEED
ERROR
INIT
SLCT IN
GND
Indica Transmisión
Línea de datos Bit 0
Línea de datos Bit 1
Línea de datos Bit 2
Línea de datos Bit 3
Línea de datos Bit 4
Línea de datos Bit 5
Línea de datos Bit 6
Línea de datos Bit 7
Ultimo carácter aceptado
Impresora ocupada
Impresora sin papel
Impresora en ON LINE
CR Automático después de LF
Error en la transmisión de datos
Realizar reset de la impresora
Activar ON LINE en la imp.
Masa
Como se puede observar en la tabla existen una serie de líneas de datos las cuales son
unidireccionales, es decir, solo son de salida del ordenador hacia la impresora, y una serie de
líneas de control que nos permiten un intercambio de información entre el ordenador y el
periférico, pero las líneas de control impresora-ordenador son sólo cinco. Aquí se nos presenta
un problema, el intercambio de información entre ordenadores a través del puerto paralelo, el
cual resolveremos en el siguiente artículo.
Programación del puerto
El puerto paralelo se puede programar mediante un acceso a la BIOS del PC o mediante la
programación directa del puerto. Cualquiera de las dos opciones es totalmente correcta pero
nosotros nos hemos decantado por la de más fácil implementación, la programación directa.
En la programación directa del puerto, lo único que realizamos es un acceso a las direcciones
de dicho puerto. Estas direcciones son las siguientes :
Dirección
Puerto
3BCh - 3BFh
Puerto paralelo en la tarjeta MDA *
378h - 37Fh
Primer puerto paralelo
278h - 27Fh
Segundo puerto paralelo
(*) La tarjeta MDA es una tarjeta de vídeo monocroma en la cual la lógica de vídeo poseía
también un puerto paralelo. Este tipo de tarjetas prácticamente, ya no se utiliza.
El acceso a las direcciones del puerto se puede realizar, por ejemplo, mediante la instrucción
outportb u outport del lenguaje C. Una vez realizado el acceso a un registro del puerto
podremos leerlo y/o escribirlo dependiendo lo que nos permita realizar cada puerto como se
puede observar en el siguiente apartado.
Los registros del puerto
El puerto paralelo presenta 3 registros accesibles por el programador :
Primer registro del puerto paralelo.
Este primer registro es el registro de datos, solo de escritura, en el cual introducimos el byte
que queremos que aparezca en las líneas de datos D0-D7 (pins 2-9).
Segundo registro del puerto paralelo.
Este registro corresponde al que nosotros podemos llamar registro de control de entrada,
debido a que en este registro se activan los bits de ERROR, SCLT, PE, ACK y BUSY, si alguno
de los pins a los cuales estan ligados esta en nivel alto (o nivel bajo dependiendo si es o no
negado), esto se puede observar en la figura 2. Este registro es solo de lectura, es decir, no se
puede variar este registro por software.
Tercer registro del puerto paralelo.
Este registro al igual que el anterior corresponde a un registro de control, pero este registro es
de salida, es decir, al variar uno de estos bits, también se varía el nivel del pin del conector, un
ejemplo estaría en la señal de -STROBE, si en el registro ponemos este bit a 0, en el pin 1 del
conector el nivel será de 1 (5 V) ( pasa lo mismo en el caso del registro de datos). Este registro
se puede leer y variar por Software.
El puerto serie
Introducción
El puerto serie de un ordenador es un adaptador asíncrono utilizado para poder intercomunicar
varios ordenadores entre sí.
Un puerto serie recibe y envía información fuera del ordenador mediante un determinado
software de comunicación o un driver del puerto serie.
El software envía la información al puerto carácter a carácter, conviertiéndolo en una señal que
puede ser enviada por un cable serie o un módem.
Cuando se ha recibido un carácter, el puerto serie envía una señal por medio de una
interrupción indicando que el carácter está listo. Cuando el ordenador ve la señal, los servicios
del puerto serie leen el carácter.
Conectores
En nuestros PC's, se emplea como conector del interface serie un terminal macho al que
llamaremos DTE (Data Terminal Equipment) que, a través de un cable conectamos a un
periférico que posee un conector hembra al que llamaremos DCE (Data Comumunications
Equipment). En nuestro terminal DTE, tenemos las siguientes conexiones (para un conector
DB-25):
PIN
Nombre
Dirección
Función
1
P.G.
--
Tierra de seguridad
2
TD
-->DCE
Salida datos DTE
3
RD
-->DTE
Entrada de datos DTE
4
RTS
-->DCE
Petición de emisión DTE
5
CTS
-->DTE
Listo para trasmitir DCE
6
DSR
-->DTE
CE listo para com. con DTE
7
GND
--
Masa común del circuito
8
DCD
-->DTE
Detección de portadora
20
DTR
-->DCE
Señal de terminal disponible
23
DSRD
<-->
Indicador de velocidad de Tx.
Direcciones
El puerto serie utiliza direcciones y una línea de señales, un IRQ para llamar la atención del
procesador. Además el software de control debe conocer la dirección.
La mayoría de los puertos series utilizan direcciones standard predefinidas. Éstas están
descritas normalmente en base hexadecimal. Cuando se instala un nuevo puerto, normalmente
se mueve un jumper o switch para seleccionar un puerto (COM1, COM2, COM3, etc., con lo
que se asigna una dirección y una interrupción usada por la tarjeta del puerto.
Las direcciones e IRQ usadas por los puertos serie fueron definidas al diseñar el ordenador
originalmente ; sin embargo, las del COM3 y COM4 no se han definido oficialmente, aunque
están aceptadas por convenios.
Las señales son:
Dirección
Interrupción
(IRQ)
COM1
3F8
4
COM2
2F8
3
COM3
3E8
4
COM4
2E8
3
Se pueden añadir gran cantidad de puertos serie a un PC, ya que existe gran flexibilidad a la
hora de definir direcciones no standard, siempre que se encuentren entre el rango 100 y 3FF
hexadecimal y siempre que no entren en conflicto con otros dispositivos.
Los ordenadores IBM PS/2 usan la Microchannel Architecture, que define las direcciones e
IRQs para los puertos desde COM1 a COM8:
Dirección
Interrupción
(IRQ)
COM1
3F8
4
COM2
2F8
3
COM3
3E8
4
COM4
2E8
3
COM5
COM6
4220
4228
3
3
COM7
5220
3
COM8
5228
3
Tipos de puertos serie
Hay muchos tipos de puertos serie, que están definidos normalmente por el tipo de UART
(Universal Asynchronous Receiver / Transmitter, Receptor/Transmisor Asíncrono Universal)
usado por el puerto serie. El UART es un chip del puerto serie que convierte los datos de
formato paralelo utilizados por el PC en datos de formato serie para su envío.
A continuación se enumeran los diferentes tipos de UARTs existentes :
UART's sin buffer:
Los UARTs sin buffer fueron diseñados cuando los módem más rápidos transmitían a 1200
bps. No tienen buffer de carácter extra en el UART, por lo que dependen del procesador para
borrar cada carácter enviado por el módem antes de que el siguiente carácter sea enviado.
Los UARTs sin buffer comprenden las series 8250, el 16450 y el original 16550.
UART's con buffer:
Los UARTs con buffer han sido diseñados como apoyo a los módem rápidos de la actualidad.
El UART original con buffer es el 16550A, que puede acumular 16 caracteres en un buffer
antes de que el procesador lea el dato. Esto hace que el software del PC tenga una mayor
facilidad para comunicarse con el módem, creándose menos errores y una mayor velocidad de
transmisión.
Otros tipos
Pequeños puertos serie
Existen algunas tarjetas diseñadas específicamente para dotar de un puerto serie de alta
velocidad para comunicaciones. Estas tarjetas tienen un microprocesador en su interior que
asiste al PC en las comunicaciones. Además, disponen de un modo de transferencia de datos
de alta velocidad que es mucho más eficiente que el interface de puerto serie normal. Estas
tarjetas necesitan unos drivers especiales para su uso, pero también disponen de un interface
standard de puerto serie por motivos de compatibilidades.
Hayes ESP-I y ESP-II
Hayes ha introducido tres diferentes tipos de "Enhanced Serial Ports", o tarjeta ESP. La original
tarjeta ESP (ESP-I) es una tarjeta "full-length 8-bit" con dos 16550A puertos serie y un
procesador que tiene en cuenta las transmisiones entre el puerto original y el procesador. Esta
tarjeta no es soportada por Windows ni OS/2, por lo que se hace necesario el uso del puerto
standard.
La tarjeta ESP-II está disponible con un o dos puertos serie. Este producto reemplazó al
modelo original y dispone de drivers para diferentes entornos al mismo tiempo,, e incluso
reciente Hayes ha introducido un driver para Windows 95.
Practical Peripherals High Speed Serial Port HSSP
Un Practical Peripheral High Speed Serial Port (HSSP) es una versión mejorada de la tarjeta
Hayes ESP-II, y es idéntica en su construcción a la ESP-II. Tiene los drivers que la ESP-II.
El T/Port
El T/Port de Telcor Systems, Inc. es una tarjeta especial que incluye un microprocesador y es
utilizada para la comunicación con un host durante un tiempo elevado. El T/Port mejora el
funcionamiento del ordenador, especialmente cuando opera bajo Windows u OS/2. Presenta
una emulación del interface 16450.
Otros tipo de puertos serie
Algunos módem internos utilizan chips con la apariencia de un 16450 UART, pero realmente
son procesadores simulando ese UART.
Otros módem, también disponen de un segundo buffer que aumenta la capacidad del principal
y ofrece una considerable protección ante caracteres perdidos (overrun errors).
Descargar