Guía rápida para gestionar el puerto paralelo del PC

Documentos relacionados
LABORATORIOS DE: DISPOSITIVOS DE ALMACENAMIENTO Y DE ENTRADA/SALIDA. MEMORIAS Y PERIFÉRICOS.

Manual de prácticas del Laboratorio de Dispositivos de Almacenamiento y de Entrada/Salida

Laboratorio de Dispositivos de Almacenamiento y de Entrada Salida. El puerto paralelo de una computadora. N de práctica: 9. Nombre completo del alumno

PRÁCTICA 11. CONTROL DEL PUERTO PARALELO DE UN ORDENADOR PERSONAL

Periféricos Avanzados Práctica 3. Programación del puerto paralelo.

4. Comunicaciones serie y paralelo

Capítulo III Puerto paralelo

CONTROL DE UN VENTILADOR POR PUERTO PARALELO

Interface paralelo programable 8255.

Informática PRÀCTICA 9 Curs Práctica Nº 9: Rango y precisión de representación de números en el ordenador.

Laboratorio de Arquitectura de Redes. Entrada y salida estándar

3 Interfaz PC DSP. 3.1 Introducción a las comunicaciones serie. 3 Interfaz PC DSP

Mini-DIN con S-Vídeo y vídeo compuesto.

LABORATORIO DE INTERFACES

Informática Ingeniería en Electrónica y Automática Industrial

ITT-327-T Microprocesadores

Programación Estructurada. Sesión 2:El lenguaje de programación C

DISEÑO DE UN BRAZO ROBOT CONTROLADO POR EL PUERTO PARALELO

Tema 7. Entrada / Salida

Control Básico del Puerto Paralelo

EL PUERTO PARALELO. Puertos de Entrada / Salida (E/S) Aspectos generales

Programación en SCRATCH - Tema 10 Control de puertos externos

Tema 3. Estructuras de control

MICROPROCESADORES I ELECTRONICA DIGITAL III INTERFASE PROGRAMABLE A PERIFERICOS PPI 8255

VOCABULARIO DEL HARDWARE. Docente Yeni Ávila

LABORATORIO DE CONTROL POR EL PUERTO PARALELO DEL COMPUTADOR

Arquitectura de Computadoras 2011

COMO PROGRAMAR EL PUERTO PARALELO

TEMA 2. LENGUAJE C. CONCEPTOS BÁSICOS Y PROGRAMACIÓN ELEMENTAL.

Acceso Directo a Memoria

Mini Robot controlado por una interfaz

Tema 9 Periféricos de Entrada

CONTROL DEL PUERTO PARALELO: CONTROL EN APLICACIONES DE ELECTRÓNICA - PARTE 1

PLACA BASE. Diferentes tipos de placas base de los fabricantes habituales.

Arquitectura de Computadores

El puerto paralelo de la PC

(5) Unidad 5. Entrada / Salida SISTEMAS BASADOS EN MICROPROCESADORES. Grado en Ingeniería Informática EPS - UAM

Elementos de un programa en C

6. Entrada y Salida Explicación de la interfaz entre el computador y el mundo exterior.

Programación Estructurada

CONEXIÓN DEL HARDWARE AL COMPUTADOR PERSONAL

Introducción a la Computación. Capítulo 7 Entrada/Salida

Unidad de aprendizaje: maneja componentes del equipo de cómputo. Numero: 1

int main() { //Obtenemos permiso acceso a la direccion de DATAPORT y las 2 siguientes if (ioperm(dataport, 3, 1)) {perror("ioperm"); return 1;}

Tipos de datos y Operadores Básicos

Plataformas de Tiempo Real

Tema 0. Introducción a los computadores

Tema 1. Informática Básica 1.1 Introducción 1.2 Informática Básica 1.3 El ordenador. Fundamentos estructurales y de funcionamiento

Puerto Paralelo Bidireccional.

AMPLIACIÓN DE SISTEMAS OPERATIVOS

UNIDAD 1: - ESTRUCTURA Y FUNCIONAMIENTO DE UN ORDENADOR

INSTITUTO TECNOLÓGICO SUPERIOR DE TEPEACA. Sistema de Control de Posición de un mini-auto usando LabView.

Integración de Equipos para Comunicaciones

Arquitectura del ordenador

ENTRADA/SALIDA. Relación Programa - Sistema Operativo - Hardware

PUNTEROS DOBLES EN C XIII CUIEET MASPALOMAS. Sidonio Pérez Matilla EUITI de Eibar UPV

Tipos de Datos en C. Palabras reservadas en C

MINI GUIA: CONEXIÓN SEPAM CON USB WINDOWS - XP

Descripción de un Programa

... La Memoria. La Memoria CAPÍTULO. Conceptos Básicos sobre Tecnologías de la Información

ACLAS PP9 Impresora fiscal térmica

Arquitectura de Computadores

Autómata Programable (PLC)

PIC 16F87X. Juan González. Escuela Politécnica Superior Universidad Autónoma de Madrid. Flir Networked Systems. Flir Networked Systems

Curso de Programación en C. Licenciatura, FCQeI. APUNTADORES.

Periféricos Interfaces y Buses

Práctica de Estructura de Computadores Sistemas de Entrada/Salida: Entrada/Salida Programada Curso 2010/2011

Unidad 2: Taller de Cómputo. Estructura y Componentes de la Computadora UNIDAD DOS: INTRODUCCIÓN

UNIDAD ACADÉMICA PROFESIONAL TIANGUISTENCO

Introducción a la Programación

Dra. Jessica Andrea Carballido

INTRODUCCION A LA IFORMATICA

UNIDAD 3. Interfaz de E/S Básica, Interrupciones y E/S Controlada por DMA

Docente: Sandra Romero Otálora SISTEMA DE COMPUTO INTRODUCCIÓN A LOS COMPUTADORES CONCEPTOS BÁSICOS

0-31 : caracteres de control : carac. Comunes : especiales (flechas, símbolos) y particulares (ñ)

Actividad Algoritmos, Estructura y Programación I. FOR, DO-WHILE

Programación en C. Algoritmo y Estructura de Datos. Ing. M. Laura López. Programación en C

Fundamentos de Informática 5. Operadores, expresiones (y su aplicación)

Velocidades Típicas de transferencia en Dispositivos I/O

Instrumentación de Tiempo Real

Computadores y Comunicaciones. Tema 5: Software y sistemas operativos

EVOLUCIÓN HISTÓRICA DE LOS µp

Introducción a Sistemas Operativos: Ficheros

Contenido TEMA 2 ENTRADA / SALIDA. Interfaz HW: buses del sistema. Interfaz HW de E/S

1-Componentes Físicos y Lógicos de un Ordenador.

2. PANTALLA ALFANUMÉRICA DE LCD (HITACHI HD44780U)

Lenguajes de programación

Práctica 6. El procesador

Bus de datos Bus de direcciones Pocos bits, los suficientes para direccionar registros internos (ej: A0 y A1)

Lección 2 Introducción al lenguaje C

Tipos de variables. Lenguaje C. Departamento de Electrónica. Tipos de datos, variables y constantes. Fundación San Valero

1-Introducción. KIT ARM- Ténicas Digitales II - Ing. Ruben M. Lozano /9

Variables. Una variable no es más que un nombre simbólico que identifica una dirección de memoria: vs.

La programación del puerto serial de E/S, la reconoce el DOS como COM1 y COM2. Esto se puede realizar de varias formas:

Arquitectura de computadoras

Instituto Tecnológico de Morelia

MANUAL MODULO DE PESO MODELO CP-6400

GUIA DE EJERCICIOS Nº 2 INSTRUMENTACIÓN AVANZADA

MICROCONTROLADORES. 1. El PIC 16F84A es un microcontrolador de: a) 16 bits b) 8 bits c) 4 bits d) 32 bits e) 64 bits

(7) Unidad 7. Buses básicos de la arquitectura 80x86 SISTEMAS BASADOS EN MICROPROCESADORES. Grado en Ingeniería Informática EPS - UAM

Transcripción:

Guía rápida para gestionar el puerto paralelo del PC Descarga desde: http://eii.unex.es/profesores/jisuarez/descargas/ip/guia_rapida_pp.pdf José Ignacio Suárez Marcelo Universidad de Extremadura Escuela de Ingenierías Industriales Avda. Elvas, s/n 06006 Badajoz

Índice 1. Introducción 3 2. Características mecánicas 3 3. Características eléctricas 4 4. Direccionamiento del puerto paralelo 5 5. Registros del puerto paralelo. 7 ANEXO I Programa de prueba del puerto paralelo 10 José Ignacio Suárez Marcelo 2

1. Introducción El puerto paralelo de un ordenador personal puede ser empleado para comunicaciones entre el ordenador personal (PC) y un periférico. Aunque tradicionalmente se ha empleado como puerto unidireccional de salida, por ejemplo para gobernar una impresora, lo cierto es que también puede ser empleado en modo bidireccional, con lo que no sólo se pueden enviar datos, sino también recibirlos desde un periférico externo. En esta guía se describe de forma breve la programación (a nivel de registros) y las características más importantes del puerto paralelo, con el fin de que sirva como referencia para el establecimiento de una comunicación bidireccional con un dispositivo periférico externo. 2. Características mecánicas El puerto paralelo de un PC se identifica mediante un conector sub-d hembra de 25 pines (DB25) como el de la figura 1. Las señales que en él intervienen reciben nombres relacionados con la comunicación con una impresora (protocolo Centronics), pero en realidad pueden ser programadas con total libertad por el usuario. En la tabla 1 se describen cada uno de los pines del conector DB25 y el sentido de las señales (salida significa desde el PC al periférico y entrada desde el periférico al PC). Figura 1 Vista frontal del conector sub-d hembra de 25 pines correspondiente al puerto paralelo de un PC José Ignacio Suárez Marcelo 3

Tabla 1 Descripción de los pines del puerto paralelo de un PC N PIN SÍMBOLO SENTIDO INVERTIDA POR HW DESCRIPCIÓN 1 STROBE E/S SÍ Validación de datos 2-9 DB[0..7] E/S Bus de datos de 8 bits 10 ACK E Acknowledge (Aceptó último carácter, si ACK = 0) 11 BUSY E SÍ Ocupada (impresora ocupada si BUSY = 0) 12 PE E Paper End (sin papel, si PE = 1) 13 SLCT E Impresora seleccionada (si SLCT = 1) 14 XT E/S SÍ Autofeed (siguiente línea automatica, si XT = 0) 15 ERROR E Error (error, si ERROR = 0) 16 INIT E/S Inicializar impresora (si INIT = 0) 17 SLCT IN E/S SÍ Seleccionar impresora (si SLCT IN = 0) 18 25 GND Masa de señal E/S En negrita, el sentido por defecto, cuando el puerto paralelo está en modo unidireccional Invertida por HW, significa que la señal es invertida por la electrónica de la tarjeta. 3. Características eléctricas Las señales que forman el puerto paralelo normalmente son compatibles con niveles TTL (de 0 a 5 V), pero suelen tener muy poca capacidad de corriente (entre 6 ma y 20 ma aproximadamente, variando de un fabricante a otro). Debido a ello, es habitual usar un buffer de salida si el dispositivo periférico tiene unos requerimientos de corriente mayores. José Ignacio Suárez Marcelo 4

4. Direccionamiento del puerto paralelo El puerto paralelo, como todos los interfaces del PC, dispone de un rango de direcciones de E/S asignado para el direccionamiento de sus registros internos. Y como es habitual también se identifica mediante una dirección base a partir de la cual se encuentran direccionados el resto de registros de la interfaz paralelo. La BIOS (Sistema Básico de Entrada/Salida), al encender el PC, determina el número de puertos que tiene instalados el ordenador y les asigna una etiqueta (LPT1, LPT2 o LPT3) así como una dirección base a cada uno de ellos. El rango de direcciones más habituales se muestran en la tabla 2. Tabla 2 Direcciones más habituales asignadas por la BIOS a los puertos paralelos del PC ETIQUETA DIR. BASE DIR. FINAL LPT1 0 378 0 37F LPT2 0 278 0 27F LPT3 0 3BC 0 3BF Las direcciones base de E/S mostradas en la tabla 2 no siempre se asignan en el orden indicado, sino que pueden variar de un ordenador a otro. Para saber realmente la dirección base del puerto paralelo que se va a utilizar se puede proceder de varias maneras. Una de ellas, muy simple, es entrar en la BIOS y mirar los puertos detectados y las direcciones asignadas. Si no se desea entrar en la BIOS, sólo hay que esperar (tras el análisis de la memoria y detección de periféricos: teclado, discos, etc.) a que aparezca esta información en la tabla previa al inicio del arranque del sistema operativo que esté instalado. De todas formas, aún habiendo leído las direcciones asignadas por la BIOS, puede ocurrir que el sistema operativo cambie dichas asignaciones según su conveniencia. Si se quiere realizar una detección por software, hay que saber que las direcciones base de José Ignacio Suárez Marcelo 5

E/S, compuestas por dos bytes, son almacenadas por la BIOS en las direcciones de memoria indicadas en la tabla 3. Tabla 3 Direcciones de memoria donde la BIOS almacena las direcciones de E/S asignadas a los puertos paralelo DIR. DE MEMORIA PUERTO 0 0000:0408 LPT1 0 0000:040A 0 0000:040C LPT2 LPT3 A continuación se muestra un programa en lenguaje C para detectar los puertos paralelo con sus direcciones asignadas. #include <stdio.h> #include <dos.h> void main(void) { unsigned int far *direccion; //puntero a dirección de memoria (ver tabla 3). unsigned int puerto; //dirección E/S del puerto paralelo (tabla 2). int a; direccion = (unsigned int far *)0x00000408; //apunta a la 1 a entrada de la tabla 3. for (a = 0; a < 3; a++){ puerto = *direccion; //lee 2 bytes de la dirección de memoria. if (puerto == 0) printf( No se encontró puerto en LPT%d \n, a+1); else printf ( La dirección de E/S asignada a LPT%d es %Xh\n, a+1, puerto); } *direccion++; //apunta a siguiente entrada de la tabla 3. } José Ignacio Suárez Marcelo 6

5. Registros del puerto paralelo. Los registros más importantes del puerto paralelo son tres y se encuentran a partir de la dirección base (ver tabla 4). Tabla 4 Registros asociados al puerto paralelo del PC REGISTRO DIRECCION NOMBRE DREG BASE + 0 Registro de Datos SREG BASE + 1 Registro de Estado CREG BASE + 2 Registro de Control REGISTRO DE DATOS (DREG): (dir. BASE + 0) Es un registro de 8 bits, normalmente de sólo escritura, aunque en modo bidireccional también es de lectura. Aquí es donde se escriben o leen las líneas del bus de datos DB[0..7]. REGISTRO DE DATOS (DREG) BASE + 0 B7 B6 B5 B4 B3 B2 B1 B0 DB7 DB6 DB5 DB4 DB3 DB2 DB1 DB0 José Ignacio Suárez Marcelo 7

REGISTRO DE ESTADO (SREG): (dir. BASE + 1) Es un registro de 8 bits de sólo escritura donde se puede leer el estado de las líneas de entrada del puerto paralelo. REGISTRO DE ESTADO (SREG) BASE + 1 B7 B6 B5 B4 B3 B2 B1 B0 BUSY# ACK# PE SLCT ERROR# IRQ# Bits 0 y 1: reservados Bit 2 (IRQ#): activa a nivel bajo, indica (si IRQ# = 0) que se ha producido una interrupción por recepción de la señal ACK. Bit 3 (ERROR#): activa a nivel bajo, indica (si ERROR# = 0) que ha habido un error en la impresora. Bit 4 (SLCT): activa a nivel alto, indica (si SLCT = 1) que la impresora ha sido seleccionada. Bit 5 (PE): activa a nivel alto, indica (si PE = 1) que la impresora se ha quedado sin papel. Bit 6 (ACK#): activa a nivel bajo, indica (si ACK# = 0) que la impresora ha recibido un carácter válido y que está preparada para el siguiente. Bit 7 (BUSY#): activa a nivel bajo, indica (si BUSY# = 0) que la impresora está ocupada. José Ignacio Suárez Marcelo 8

REGISTRO DE CONTROL (CREG): (dir. BASE + 2) Es un registro de 8 bits de lectura y escritura donde se puede establecer o leer el estado de las líneas de salida del puerto paralelo. REGISTRO DE CONTROL (CREG) BASE + 2 B7 B6 B5 B4 B3 B2 B1 B0 DD IRQ SLCT IN# INIT XT# STROBE# Bit 0 (STROBE#): (validación de datos) invertida por hardware. Si STROBE# = 0 la línea externa de STROBE (pin 1) se pone a nivel alto. Bit 1 (XT#): (autofeed) invertida por hardware. Si XT# = 0 la línea externa XT (pin 14) se pone a nivel alto. Bit 2 (INIT): (inicializa impresora). Si INIT = 1 la línea externa INIT (pin 16) se pone a nivel alto. Bit 3 (SLCT IN#): (selecciona impresora) invertida por hardware. Si SLCT IN# = 0 la línea externa SLCT IN (pin 17) se pone a nivel alto. Bit 4 (IRQ): (activación de interrupción). Si IRQ = 1 activa interrupción del puerto paralelo (normalmente IRQ7). Bit 5 (DD): (dirección de datos) bit de sólo escritura. Si DD = 0, bus de datos como salida. Si DD = 1, bus de datos como entrada. Bits 6 y 7: reservados. José Ignacio Suárez Marcelo 9

ANEXO I Programa de prueba del puerto paralelo //********************************************************** //* * //* Programa de Prueba del puerto paralelo * //* * //* Muestra el valor leido del PP al pulsar una tecla. * //* Para salir pulsar ESCAPE. * //* * //********************************************************** #include <dos.h> #include <conio.h> #define BASE 0x278 //Direccion Base del puerto paralelo #define RDATOS BASE+0 //Registro de Datos #define RESTADO BASE+1 //Registro de Estado #define RCONTROL BASE+2 //Registro de Control char tecla; unsigned short int dato; void main() { outportb(rcontrol,0x2e); //Puerto como entrada do{ if(kbhit()) { tecla = getch(); dato = inportb(rdatos); printf("%d",dato); } //Muestra el valor leido por el puerto } while (tecla!=27); } José Ignacio Suárez Marcelo 10