Está en la página 1de 8

Interfaces y Periféricos, Guía 2 1

Facultad: Ingeniería
Escuela: Electrónica
Asignatura: Interfaces y Periféricos

Tema: Manejo del Puerto Paralelo

Contenidos

• Manejo del Puerto Paralelo Estándar con Visual Basic

Objetivos Específicos

1. Poder configurar el puerto paralelo para escribir y leer datos.


2. Transferir datos por medio del puerto paralelo utilizando Visual Basic.

Material y Equipo

No Cantidad Descripción
1 1 Computadora con sistema operativo Windows 98 o XP
con el programa Visual Basic 6.0
2 1 Cable para puerto paralelo
3 1 Fuente de +5 voltios
4 1 Par de puntas para la fuente de alimentación
5 1 Breadboard
6 8 Resistencias limitadoras
7 8 Leds
8 1 IC74244
9 4 Resistencias de 4.7 KΩ

Introduccion Teorica

La computadora se encuentra interconectada con dispositivos externos a través de ciertos


circuitos llamados puertos, los cuales permiten que la computadora tenga una ventana al
exterior. La arquitectura del procesador 8086 determina una cantidad de hasta 65,536
puertos, sin embargo solo se usan 1024.

En 1981, la IBM (International Business Machines) introdujo la Computadora Personal (PC).


El puerto paralelo (Standart Parallel Port SPP) estaba incluido en el primer PC y se agregó a
éste como una alternativa al bajo rendimiento del puerto serial, para utilizarlo como
2 Interfaces y Periféricos, Guía 2

controlador de las impresoras de matriz de punto de alto desempeño. Este puerto tenía la
capacidad de transmitir 8 bits de datos a la vez (del PC a la impresora), mientras que el
puerto serial lo hacía de uno en uno. En el momento que el puerto paralelo fue presentado,
las impresoras de punto fueron el principal dispositivo externo que se conecto a éste. Al
hacerse extensamente utilizado, el puerto paralelo llegó a ser la respuesta para conectar
dispositivos más rápidos.

Después de este inicio, tres grandes grupos de problemas aparecieron a los desarrolladores
y usuarios de este puerto: Primero, aunque éste había aumentado su velocidad
considerablemente, no había cambio en la arquitectura o
desempeño. La máxima velocidad de transferencia alcanzable estaba por los 150 kbyte /seg.
y era extremadamente dependiente del software. Segundo, no había un estándar para la
interfaz eléctrica. Esto causaba muchos problemas cuando se quería garantizar la operación
en múltiples plataformas. Por último, la forma de diseño que le dieron, limitaba la distancia de
los cables externos hasta un máximo de 1,8 metros. En 1991 hubo una reunión de
fabricantes de modo que se pudiera desarrollar un nuevo estándar para el control inteligente
de impresoras a través de una red. Estos fabricantes, donde estaban incluidos Lexmark, IBM,
Texas Instruments y otros, formaron la Network Printing Alliance (NPA), como una respuesta
a estas necesidades.

Desde la introducción del PC al mercado, el puerto paralelo ha sufrido varias modificaciones


para hacerlo más veloz. Ya que el puerto original era unidireccional, se creó el puerto
bidireccional. El puerto bidireccional fue introducido con el PS/2 compatible. Este permite una
comunicación de 8 bits en ambas direcciones. Algo interesante de notar es que el puerto
original tenía la posibilidad de ser bidireccional realizando una conexión entre dos pines de
un componente electrónico que venía incluido en éste. (Dicho de otro modo, el puerto original
es bidireccional en diseño básico, pero no en el diseño operacional). Finalmente se han
creado el Enhanced Parallel Port (EPP) y el Extended Capability Port (ECP). Estos dos
últimos son al puerto estándar como el Pentium al 286, además de ser bidireccionales.

Inicialmente el puerto paralelo se utilizó para la comunicación con impresoras. Actualmente


se utiliza también para manejar otros periféricos como CD ROM, cintas de copia de respaldo,
discos duros, tarjetas de red, protectores de copia, scanners, etc.
En la actualidad se conoce cuatro tipos de puerto paralelo:

1. Puerto paralelo estándar (Standart Parallel Port SPP)


2. Puerto Paralelo PS/2 (bidireccional)
3. Enhanced Parallel Port (EPP)
4. Extended Capability Port (ECP)

En la siguiente tabla se muestra información sintetizada de cada uno de estos tipos de


puertos:
Interfaces y Periféricos, Guía 2 3

SPP PS/2 EPP ECP


Fecha de 1981 1987 1994 1994
Introducción
Fabricante IBM IBM Intel, Xircom y Hewlett
Zenith Data Packard y
Systems Microsoft
Bidireccional No Si Si Si
DMA No No No Si
Velocidad 150 Kbyte/seg. 150 2 Mbytes/seg. 2 Mbytes/seg.
Kbytes/seg.

El puerto paralelo está formado por 17 líneas de señales y 8 líneas de tierra. Las líneas de
señales están formadas por tres grupos:

 4 Líneas de control
 5 Líneas de estado
 8 Líneas de datos

En el diseño original las líneas de control son usadas para la interfaz, control e intercambio
de mensajes desde el PC a la impresora.

Las líneas de estado son usadas para intercambio de mensajes, indicadores de estado
desde la impresora al PC (falta papel, impresora ocupada, error en la impresora).

Las líneas de datos suministran los datos de impresión del PC hacia la impresora y
solamente en esa dirección. Las nuevas implementaciones del puerto permiten una
comunicación bidireccional mediante estas líneas.

Los registros del puerto paralelo


Cada registro del puerto paralelo es accesado mediante una dirección. El puerto paralelo
tiene tres registros:

1. Registro de datos (8 pines de salida para los bits de datos (D0 – D7 Direcciones:
378h))
2. Registro de estado (5 pines de entrada (uno invertido) para acceder al estado del
puerto.(S3 – S7 Direcciones-:379h))
3. Registro de control (4 pines de salida (tres invertidos) para acceder al control del
puerto. (C0 – C3 Direcciones:37Ah))

Los 8 pines que restan son de tierra.


4 Interfaces y Periféricos, Guía 2

Figura 1.Conector DB-25 Hembra.

Procedimiento

Debido a que Visual Basic no maneja direcciones de entrada y salida o puertos por defecto,
es necesario la instalación de archivos especiales para que esto pueda lograrse, los archivos
son:

• Archivo inpout32.dll que es el que se encarga de comunicar al sistema con el


microprocesador.

• Un módulo de Visual Basic inpout32.bas que permite la utilización del archivo DLL

NOTA: Estos archivos serán proporcionados por su docente de laboratorio.

Agregue el módulo utilizando el menú de Proyecto y luego agregar módulo.

1. Cuando se tenga el módulo agregado hacer doble clic sobre este y aparecerá el
código, el cual se tendrá que modificar poniendo en la Declaración pública de la
función Inp la ruta donde se copió el archivo DLL mencionado, las líneas a modificar
son las siguientes.

o Public Declare Function Inp Lib " C:\inpout32 \inpout32.dll " _


o Public Declare Sub Out Lib " C:\inpout32 \inpout32.dll " _

2. Al haber realizado este proceso ya se puede utilizar las instrucciones definidas en el


módulo (“out dirección, dato”, “variable=inp(dirección)”). Las direcciones para acceder
al puerto paralelo son la H378 (bits de salida) y la &H379 (bits de entrada), por lo que
para mandar un dato al puerto paralelo se debe colocar la siguiente instrucción Out
&H378, dato, donde dato debe ser máximo de 8 bits (0 a 255 en decimal; 00 a FF en
hexadecimal).
Para leer un dato del puerto: variable = inp(&H379)
Interfaces y Periféricos, Guía 2 5

3. Cree un programa en Visual Basic con las siguientes características:


• El programa debe permitir leer datos de 4 bits.
• El programa deberá escribir datos de 8 bits desde una caja de texto.
• El programa deberá tener una opción en la que se pueda generar una secuencia de
datos pre-programados*.

Para ello realice la siguiente conexión con el puerto paralelo

Figura 2. Diagrama de conexión del puerto paralelo.


*
El sistema se presentara durante la práctica.
6 Interfaces y Periféricos, Guía 2

El formulario quedaría de la siguiente manera:

Figura 3. Formulario para manejo de puerto paralelo.

Control Nombre Caption


Formulario frmInOut Puerto Paralelo
Cuadro de texto Text1 -
Botón superior izquierdo BotonSalida Escribir a puerto 378h
Botón superior derecho BotonLeer Lectura de puerto 379h
Botón de inicio de secuencia BotonInicSec Iniciar Secuencia
Botón de fin de secuencia BotonDetSec Detener Secuencia
Temporizador Timer1 -

El Código correspondiente es el siguiente:

Option Explicit
Dim n As Integer

Private Sub Form_Load()


Timer1.Interval = 500
Timer1.Enabled = False
Text1.Text = ""
n=0
End Sub

Private Sub BotonSalida_Click()


Out &H378, Val(Text1.Text)
End Sub

Private Sub BotonLeer_Click()


Text1.Text = (Inp(&H379) Xor &H80) / 8
End Sub

Private Sub BotonInicSec_Click()


Interfaces y Periféricos, Guía 2 7

Timer1.Enabled = True
Out &H378, 0
End Sub

Private Sub BotonDetSec_Click()


Timer1.Enabled = False
Out &H378, 0
n=0
End Sub

Private Sub Timer1_Timer()


Out &H378, 2 ^ n
n=n+1
If n >= 8 Then n = 0
End Sub

Análisis de Resultados

1. ¿Diría usted que las salidas de los pines del puerto paralelo mantienen el dato hasta
que se escribe uno nuevo?
2. Ponga comentarios a las líneas del programa y explique en qué consiste la secuencia
presentada.
3. Del programa deduzca cómo se hace para que el bit S7 que es negado se invierta
4. Si se le pidiera que modifique el programa para que la secuencia fuera descendente
(del bit 7 al 0) y no ascendente (del bit 0 al 7) qué es lo que modificaría en el
programa?

Investigación Complementaria

• Investigue sobre los puertos bidireccionales PS/2.


• Investigue para que sirve cada pin del puerto paralelo.
• Investigue todas las direcciones que pueden acceder al puerto paralelo en una PC.
• En qué consiste y cómo se usa el modo EPP, ECP.
• Cuáles son las señales que intercambian el puerto paralelo de la PC y el impresor.

Bibliografía

1. INTEL Corporation. “386 SX Microprocessor: Programmers Reference Manual”


Biblioteca UDB Clasificación: Libro 001.6404 I61 1989
MCGRAW HILL. NEW YORK, ESTADOS UNIDOS 1989, 1ª Edición.

2. Ramírez, José Felipe. “Aprenda Visual Basic Practicando”.


Biblioteca UDB Clasificación: 005.363 R173 2001
PRENTICE HALL, México, México 2001,1ª Edición.
8 Interfaces y Periféricos, Guía 2

Hoja de cotejo: 2

Guía 2: Manejo Puerto Paralelo

Alumno: Maquina No:

Docente: GL: Fecha:

EVALUACION

% 1-4 5-7 8-10 Nota

CONOCIMIENTO 25% Conocimiento Conocimiento y Conocimiento


deficiente de los explicación completo y
fundamentos incompleta de los explicación clara
teóricos fundamentos de los fundamentos
teóricos teóricos

APLICACIÓN 70% No Terminó Terminó Terminó


DEL completamente el completamente el completamente el
programa y comentó programa pero los programa con sus
CONOCIMIENTO
mal el código (30%) comentarios no comentarios
estaban del todo correctos
No realizó el
correctos
circuito El circuito
correctamente (40%) El circuito funcionó
funcionó

ACTITUD 2.5% Es un observador Participa Participa


pasivo. ocasionalmente o propositiva e
lo hace integralmente en
constantemente toda la práctica.
pero sin
coordinarse con su
compañero.

2.5% Es ordenado; pero Hace un uso Hace un manejo


no hace un uso adecuado de los responsable y
adecuado de los recursos, respeta adecuado de los
recursos las pautas de recursos conforme
seguridad; pero es a pautas de
desordenado. seguridad e
higiene.

TOTAL 100%