Download Lab 02 - Com_Paralelo_2K9 - Universidad Nacional de San Luis
Document related concepts
no text concepts found
Transcript
Universidad Nacional de San Luis Facultad de Ciencias Físico Matemáticas y Naturales Ingeniería Electrónica con orientación en Sistemas Digitales Técnico Universitario en Microprocesadores Profesorado en Tecnología Electrónica LABORATORIO DE INTERFACES PRÁCTICO Nº 2 Comunicación Paralelo El Puerto Paralelo de la PC Índice: 1. 2. 3. 4. 5. 6. 7. Objetivos. Material de Referencia Listado de Materiales. Listado de Instrumental. Desarrollo de la Práctica. Diseño de un proyecto de aplicación. Anexo I - Bornera de conexiones para Puerto Paralelo. Ingeniería Electrónica con orientación en Sistemas Digitales Técnico Universitario en Microprocesadores Profesorado en Tecnología Electrónica Interfaces 2009 TRABAJO PRÁCTICO Nº 2 El Puerto Paralelo de la PC 1. Objetivos § § § Identificar las características físicas y eléctricas del Puerto Paralelo de la PC. Explorar las posibilidades del Puerto Paralelo para adquisición y control de datos. Realizar el diseño de una interface para E/S de datos. 2. Material de Referencia § § Apuntes de la Cátedra. La PC por dentro “El puerto paralelo en detalle” - Rev. PC Práctica Junio 1993 3. Listado de Materiales 1 Bornera para Puerto Paralelo 4. Listado de Instrumental 1 Multimetro digital 1 Fuente de alimentación variable 1 Entrenador Microcontroladores LAB - MC 5. Desarrollo de la Práctica La PC posee puertos que son de particular interés para nosotros, ya que nos permiten usar la misma para controlar circuitos electrónicos, automatizar procesos o sistemas, adquirir datos, y realizar otras tareas. En este laboratorio examinaremos y utilizaremos el Puerto Paralelo de la PC. Para ello realizaremos lo siguiente: § § § § § Identificar físicamente el Puerto Paralelo en la PC. Localizar la dirección base del Puerto Paralelo. Verificar las señales de DATOS, ESTADO y CONTROL. Realizar Lectura y escritura de datos por el Puerto Paralelo. Controlar dispositivos electrónicos a través del Puerto. Laboratorio N° 2 - Realizó Prof. Roberto Martín Murdocca - Pág. 2 Ingeniería Electrónica con orientación en Sistemas Digitales Técnico Universitario en Microprocesadores Profesorado en Tecnología Electrónica Interfaces 2009 5.1 Conceptos básicos Las posibilidades que nos ofrece el puerto paralelo de la PC para realizar operaciones de entrada-salida son innumerables. En sus comienzos el puerto paralelo estaba presente en la placa del "Adaptador de impresora de IBM", y también en la placa del "monitor monocromático". Al aparecer las computadoras denominadas “clones”, se creo una placa controladora en la cual se instalan controladores de discos, puertos serie, puerto de juegos y el puerto paralelo. Esta placa se denominó Multi I/O (múltiple entrada-salida). Hoy en día el puerto paralelo ha sufrido importantes cambios, uno de ellos es que se encuentra incluido en la placa madre (motherboard) de la computadora. Pero la conexión al exterior no sufrió cambios. El puerto paralelo utiliza, como en sus comienzos, un conector DB-25 hembra en la computadora y un conector de 36 pines en la impresora denominado conector Centronics. El puerto paralelo estándar (SPP) consta de 25 líneas de las cuales 17 son señales y 8 tierras. Las señales se dividen en 3 registros (o puertos); 4 Líneas para control, 8 Líneas para datos y 5 líneas para estado. Las líneas de control se usan controlar el intercambio de datos entre la PC y la impresora. Las líneas de estado se utilizan como indicadores del estado de la impresora (falta papel, impresora ocupada, error en la impresora, etc.). Las líneas de datos proveen los datos de impresión de la PC hacia la impresora y únicamente en esa dirección. Los nuevos puertos paralelos permiten que la comunicación entre PC e impresora se realice en forma “bidireccional”. 5.2 Identificación física del Puerto Paralelo en la PC. Casi todas las computadoras personales (PC) poseen un puerto paralelo accesible en un conector en el panel posterior. Este conector es de tipo D (“D” por su forma), denominado DB-25 hembra (no confundirlo con el DB-25 Macho usado por los puertos serie). Originalmente el puerto paralelo estaba orientado para funcionar como interfaz con la impresora, pero también se puede usar para tareas de monitoreo, control y transferencia de datos por otros periféricos. En la figura 1 se ve el aspecto del conector DB-25H y en la tabla 1 la distribución de las señales. Figura 1. Conector DB-25 H Laboratorio N° 2 y conector Centronics. - Realizó Prof. Roberto Martín Murdocca - Pág. 3 Ingeniería Electrónica con orientación en Sistemas Digitales Técnico Universitario en Microprocesadores Profesorado en Tecnología Electrónica Interfaces 2009 5.2.1 Observe detalladamente la parte posterior de la PC en la que realizará la práctica y busque la existencia de este conector. ¿Cuantos conectores de este tipo encontró? .......................................................................... .......................................................................... .......................................................................... Nº Pin DB-25 Señal SPP Dirección I/O Registro Inversión Hardware 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 /Strobe Dato 0 Dato 1 Dato 2 Dato 3 Dato 4 Dato 5 Dato 6 Dato 7 /ACK Busy Paper End Select /Auto-Linefeed /Error /Initialize /Select-Printer In/Out Out Out Out Out Out Out Out Out In In In In In/Out In In/Out In/Out Control Dato Dato Dato Dato Dato Dato Dato Dato Estado Estado Estado Estado Control Estado Control Control Si No No No No No No No No No Si No No Si No No Si 18-25 Ground GND Conector No Tabla 1. Distribución de señales del Puerto Paralelo. 5.3. Localización de la dirección base del Puerto Una PC soporta hasta tres puertos paralelos separados. Existen tres direcciones base para el puerto paralelo asociadas con tres posibles puertos paralelo: 378h, 278h y 3BCh, nos referimos a éstas como las direcciones base para el puerto LPT1, LPT2 y LPT3, respectivamente. El registro de datos se localiza siempre en la dirección base de un puerto paralelo, el registro de estado aparece en la dirección base+1, y el registro de control aparece en la dirección base+2. Cuando la PC se enciende el BIOS ejecuta una rutina para determinar el número de puertos presentes en el sistema asignando la etiqueta LPT1 al primer puerto hallado, si existen más puertos entonces asignará consecutivamente las etiquetas LPT2 y LPT3. Dirección inicial Función 0000:0408 Dirección base para LPT1 0000:040A Dirección base para LPT2 0000:040C Dirección base para LPT3 Tabla 2: Direcciones base en el BIOS Laboratorio N° 2 - Realizó Prof. Roberto Martín Murdocca - Pág. 4 Ingeniería Electrónica con orientación en Sistemas Digitales Técnico Universitario en Microprocesadores Profesorado en Tecnología Electrónica Interfaces 2009 5.3.1 Para trabajar con el puerto paralelo necesitamos en primer lugar conocer la dirección base asignada por el BIOS. Podemos averiguar ingresando al SETUP de la PC, presionando <DEL> en el momento del arranque. Otra forma más simple es ingresar a las propiedades de Mi PC, luego en Hardware y controlador de dispositivos. Nos paramos en Puertos, luego en Puertos de impresora y finalmente propiedades, Recursos. Ahí observando el valor inicial obtenemos la dirección base del mismo. 5.3.2 ¿Según lo anterior cual es la dirección del Puerto en su máquina? .......................................................................... .......................................................................... 5.3.4 ¿Cuántos puertos encontró en la PC utilizada? .......................................................................... 5.3.5 ¿Cuales son las direcciones de este/estos puertos? .......................................................................... .......................................................................... 5.4. Verificar las señales de DATOS, ESTADO y CONTROL. PRECAUCION: al conectar dispositivos externos al puerto paralelo corremos el riesgo de dañar la placa madre de la PC. Debemos trabajar con cuidado al realizar las conexiones. Bueno ya sabemos la dirección base del Puerto Paralelo, ahora vamos verificar las señales presentes en el mismo. Para ello utilizaremos la Bornera de conexiones para Puerto Paralelo. Ver Anexo I. 5.4.1 Conecte la bornera al Puerto Paralelo de la PC. 5.4.2 Conecte los monitores lógicos del entrenador LAB-MC al puerto de DATOS. Recuerde conectar además la señal de tierra. 5.4.3 Corra la aplicación LPT Test y saque un dato por el puerto de DATOS. 5.4.4 Verifique en los monitores lógicos el dato presente. Recuerde que en los monitores el dato se lee invertido. 5.4.5 Conecte los monitores lógicos del LAB-MC al puerto de CONTROL. 5.4.6 Saque un dato por el puerto de CONTROL. 5.4.7 Verifique en los monitores lógicos el dato presente. Recuerde que en los monitores el dato se lee invertido. Tenga en cuenta además que algunas señales del puerto de CONTROL están invertidas. Laboratorio N° 2 - Realizó Prof. Roberto Martín Murdocca - Pág. 5 Ingeniería Electrónica con orientación en Sistemas Digitales Técnico Universitario en Microprocesadores Profesorado en Tecnología Electrónica Interfaces 2009 5.4.8 Enumere que señales están invertidas en el puerto de CONTROL. .......................................................................... .......................................................................... 5.4.9 Conecte las llaves lógicas del LAB-MC al puerto de ESTADO, mas un pulsador lógico a la señal faltante. 5.4.10 Observe en LPT Test el estado de las señales de este puerto. 5.4.11 Verifique el dato devuelto por pantalla y enumere que señales están invertidas en el puerto de ESTADO. .......................................................................... .......................................................................... .......................................................................... 5.5. Lectura y escritura de datos por el Puerto Paralelo. Ahora realizaremos lecturas y escrituras de datos en el Puerto Paralelo en Visual Basic. Antes de empezar a trabajar con Visual Basic debemos agregar un modulo, desde el menú Project > Add Module. Luego pegamos lo siguiente en este modulo y lo guardamos. Public Declare Sub Out Lib "io.dll" Alias "PortOut" (ByVal Port As Integer, ByVal Data As Byte) Public Declare Sub PortWordOut Lib "io.dll" (ByVal Port As Integer, ByVal Data As Integer) Public Declare Sub PortDWordOut Lib "io.dll" (ByVal Port As Integer, ByVal Data As Long) Public Declare Function Inp Lib "io.dll" Alias "PortIn" (ByVal Port As Integer) As Byte Public Declare Function PortWordIn Lib "io.dll" (ByVal Port As Integer) As Integer Public Declare Function PortDWordIn Lib "io.dll" (ByVal Port As Integer) As Long Public Declare Sub SetPortBit Lib "io.dll" (ByVal Port As Integer, ByVal Bit As Byte) Public Declare Sub ClrPortBit Lib "io.dll" (ByVal Port As Integer, ByVal Bit As Byte) Public Declare Sub NotPortBit Lib "io.dll" (ByVal Port As Integer, ByVal Bit As Byte) Public Declare Function GetPortBit Lib "io.dll" (ByVal Port As Integer, ByVal Bit As Byte) As Boolean Public Declare Function RightPortShift Lib "io.dll" (ByVal Port As Integer, ByVal Val As Boolean) As Boolean Public Declare Function LeftPortShift Lib "io.dll" (ByVal Port As Integer, ByVal Val As Boolean) As Boolean Public Declare Function IsDriverInstalled Lib "io.dll" () As Boolean Public lpt1 As String Luego copiamos la librería IO.DLL en la carpeta de trabajo y podremos las funciones para acceder al puerto. 5.5.1 Escritura de datos por el Puerto Paralelo Con 8 bits en el puerto de datos podemos escribir 256 valores distintos, cada uno de estos valores representa un byte de información. Laboratorio N° 2 - Realizó Prof. Roberto Martín Murdocca - Pág. 6 Ingeniería Electrónica con orientación en Sistemas Digitales Técnico Universitario en Microprocesadores Profesorado en Tecnología Electrónica Interfaces 2009 La función que nos permitirá hacer esto es out (Port, Dato). Ésta función requiere dos parámetros, el primero de tipo integer que especifica la dirección del puerto, y el segundo de tipo byte que especifica el valor a escribir en el puerto. Un ejemplo de esta función sería: Out &H378,255); // Escribe el dato 255 en el puerto 378h Esta línea envía el dato 255 por el registro de datos del puerto paralelo que se halla en la dirección 278. En la siguiente figura se puede observar el registro de este puerto. BIT 7 6 5 4 3 2 1 0 Señal D7 D6 D5 D4 D3 D2 D1 D0 Además del registro de datos podemos utilizar el registro de control para sacar datos. Solo 4 líneas están disponibles aquí para realizar la escritura. Una forma de escribir sobre este registro sería: Out &H37A,12); // Escribe el dato 12 en el puerto 37Ah La estructura del registro es la siguiente: BIT 7 6 5 4 3 2 1 0 Señal X X X IRQ EN SLCT IN INIT AUTO FEDD /STB 5.5.2 Lectura de datos por el Puerto Esta es quizás una de las aplicaciones más interesantes, leer datos desde el exterior. La función utilizada es inp (Port). Ésta función requiere un parámetro, la dirección del puerto a leer, que debe ser tipo integer. Una llamada a esta función aparece abajo: DATO = Inp(&H37A) // Lee el dato del Puerto 37A En la siguiente figura se puede observar el registro de este puerto. BIT 7 6 5 4 3 2 1 0 Señal BUSY ACK PEND SLCT ERR 0 0 0 Este es un registro de solo Lectura, solo nos servirá para recibir datos de un dispositivo externo y nunca para enviarlos. Este registro es modificable desde el exterior y por hardware. Laboratorio N° 2 - Realizó Prof. Roberto Martín Murdocca - Pág. 7 Ingeniería Electrónica con orientación en Sistemas Digitales Técnico Universitario en Microprocesadores Profesorado en Tecnología Electrónica Interfaces 2009 5.6. Control de dispositivos electrónicos. 5.6.1 Características eléctricas del Puerto Paralelo El Puerto Paralelo utiliza niveles de tensión TTL. La máxima corriente que puede entregar el puerto en los modos SINK y SOURCE depende de la tecnología empleada. Inicialmente estaban implementados con tecnología TTL LS, y el estándar Centronics establecía una corriente de 24mA en modo SINK y 2,6mA en modo SOURCE. Pero actualmente utilizan ASIC´s, bajo esta tecnología pueden entregar 12 mA en modo SINK o SOURCE. Pero algunos fabricantes indican que la corriente es de 6 mA en modo SINK y 12 mA en modo SOURCE, otros 16 mA para SINK y 4 mA para SOURCE. Existen muchas variantes en cuanto a las características eléctricas, por lo que al trabajar con el puerto paralelo lo recomendable es utilizar una interface para no dañarlo. Otra cuestión importante es que al controlar cargas de potencia (como por ejemplo un motor de 220VAC) con el puerto paralelo, lo mejor es opto aislar la interface, ya que ante una falla en el circuito de potencia nos aseguramos de no dañar el puerto o incluso la placa madre de la PC. 5.6.2 Posibilidades de Interface Tenemos muchas posibilidades de interface al puerto paralelo. Si bien solo disponemos de 8 líneas de salida y 5 de entrada, podemos ampliar esto utilizando buffers y Latchs, aprovechando la característica de tri-state de algunos de estos dispositivos y usando el puerto de control podemos entonces elegir entre varios de estos dispositivos por vez. Laboratorio N° 2 - Realizó Prof. Roberto Martín Murdocca - Pág. 8 Ingeniería Electrónica con orientación en Sistemas Digitales Técnico Universitario en Microprocesadores Profesorado en Tecnología Electrónica Interfaces 2009 6. Diseño de un proyecto de aplicación Realizar una interface para ampliar la capacidad de salida del registro de datos del puerto paralelo. Se necesitan 16 salidas digitales. Se debe armar el circuito en el entrenador LAB-MC y el software en Visual Basic. El software debe permitir ingresar un dato de 16 bits y lo debe sacar por la interface. LATCH 8 Bits LATCH 8 Bits Para aprobar la práctica debe presentar ante el docente a cargo: 1. 2. 3. 4. Implementación funcionando del proyecto. Programa en Visual Basic del control de sistema. Circuito eléctrico de la interface. Hoja de respuestas de los ítems anteriores. Laboratorio N° 2 - Realizó Prof. Roberto Martín Murdocca - Pág. 9 Ingeniería Electrónica con orientación en Sistemas Digitales Técnico Universitario en Microprocesadores Profesorado en Tecnología Electrónica Interfaces 2009 7. Anexo I - Bornera de conexiones para Puerto Paralelo. Registro de Datos Registro de Estado Registro de Control Laboratorio N° 2 - Realizó Prof. Roberto Martín Murdocca - Pág. 10