Tema: Manejo del Puerto Paralelo

Anuncio
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
1
1
2
3
4
5
6
7
8
9
1
1
1
1
8
8
1
4
Descripción
Computadora con sistema operativo Windows 98 o XP
con el programa Visual Basic 6.0
Cable para puerto paralelo
Fuente de +5 voltios
Par de puntas para la fuente de alimentación
Breadboard
Resistencias limitadoras
Leds
IC74244
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.
2.
3.
4.
Puerto paralelo estándar (Standart Parallel Port SPP)
Puerto Paralelo PS/2 (bidireccional)
Enhanced Parallel Port (EPP)
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
SPP
PS/2
EPP
ECP
Fecha de
Introducción
1981
1987
1994
1994
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
Kbytes/seg.
2 Mbytes/seg.
2 Mbytes/seg.
3
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
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.
*
5
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
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()
Puerto Paralelo
-
-
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
CONOCIMIENTO
25%
Conocimiento
deficiente de los
fundamentos
teóricos
Conocimiento y
explicación
incompleta de los
fundamentos
teóricos
Conocimiento
completo y
explicación clara
de los fundamentos
teóricos
APLICACIÓN
DEL
CONOCIMIENTO
70%
No Terminó
completamente el
programa y comentó
mal el código (30%)
Terminó
completamente el
programa pero los
comentarios no
estaban del todo
correctos
Terminó
completamente el
programa con sus
comentarios
correctos
No realizó el
circuito
correctamente (40%)
ACTITUD
TOTAL
El circuito
funcionó
El circuito
funcionó
2.5%
Es un observador
pasivo.
Participa
ocasionalmente o
lo hace
constantemente
pero sin
coordinarse con su
compañero.
Participa
propositiva e
integralmente en
toda la práctica.
2.5%
Es ordenado; pero
no hace un uso
adecuado de los
recursos
Hace un uso
adecuado de los
recursos, respeta
las pautas de
seguridad; pero es
desordenado.
Hace un manejo
responsable y
adecuado de los
recursos conforme
a pautas de
seguridad e
higiene.
100%
Nota
Descargar