UNIVERSIDAD TECNICA DE ORURO
FACULTAD NACIONAL DE INGENIERIA
CARRERA: INGENIERIA ELECTRICA ELECTRONICA
LABORATORIO DE DISEÑO DE SISTEMAS DE CONTROL (ELT 3832)
_____________________________________________________________________________
LABORATORIO Nº 2
DISEÑO DE SISTEMAS DE CONTROL POR COMPUTADORA
1.- Objetivo.- Realizar el diseño de sistemas de control mediante puerto paralelo. Utilizando
los registros de datos, control y estado.
2.- Fundamento Teórico.-
El puerto paralelo es una interfaz entre una computadora y un periférico cuya principal
característica es que los bits de datos viajan juntos, enviando un paquete de byte a la vez. Es
decir, se implementa un cable o una vía física para cada bit de datos formando un bus. Mediante
el puerto paralelo podemos controlar también periféricos como focos, motores entre otros
dispositivos, adecuados para automatización.
El puerto paralelo es una interfaz entre una computadora y un periférico cuya principal
característica es que los bits de datos viajan juntos, enviando un paquete de byte a la vez. Es
decir, se implementa un cable o una vía física para cada bit de datos formando un bus. Mediante
el puerto paralelo podemos controlar también periféricos como focos, motores entre otros
dispositivos, adecuados para automatización.
El cable paralelo es el conector físico entre el puerto paralelo y el dispositivo periférico. En un
puerto paralelo habrá una serie de bits de control en vías aparte que irán en ambos sentidos por
caminos distintos. En contraposición al puerto paralelo está el puerto serie, que envía los datos bit
a bit por el mismo hilo.
El cable paralelo es el conector físico entre el puerto paralelo y el dispositivo periférico. En un
puerto paralelo habrá una serie de bits de control en vías aparte que irán en ambos sentidos por
caminos distintos.
En contraposición al puerto paralelo está el puerto serie, que envía los datos bit a bit por el mismo
hilo.
El puerto paralelo se utiliza generalmente para manejar impresoras. Sin embargo, dado que este
puerto tiene un conjunto de entradas y salidas digitales, se puede emplear para hacer prácticas
experimentales de lectura de datos y control de dispositivos. Esta obra pretende dar a conocer los
aspectos más relevantes del puerto paralelo, de modo que se pueda utilizar como una interface de
entrada/salida que funcione de modo subordinado a rutinas de software.
El laboratorio se dirige a diseñar un sistema de control para la adquisición de datos y control
de dispositivos como una alternativa al uso de Controladores Lógicos Programables (PLC) y
Tarjetas de Adquisición de Datos, de modo que se puedan hacer experiencias con sistemas en
Tiempo Real.
Desde el punto de vista del hardware, el puerto consta de un conector hembra DB25 con doce
salidas latch (poseen memoria/buffer intermedio) y cinco entradas, con ocho líneas de tierra.
UNIVERSIDAD TECNICA DE ORURO
FACULTAD NACIONAL DE INGENIERIA
CARRERA: INGENIERIA ELECTRICA ELECTRONICA
LABORATORIO DE DISEÑO DE SISTEMAS DE CONTROL (ELT 3832)
_____________________________________________________________________________
Desde el punto de vista del software, el puerto paralelo consta de tres registros (datos, estado y
control) de 8 bits cada uno, que ocupan tres direcciones de E/S (I/O) consecutivas de la
arquitectura x86.
La función normal del puerto consiste en transferir datos a una impresora mediante 8 líneas de
salida de datos, usando las señales restantes como control de flujo. Sin embrago, puede ser
usado como un puerto E/S de propósito general por cualquier dispositivo o aplicación que se
ajuste a sus posibilidades de entrada/salida.
Descripción del conector físico
La conexión del puerto paralelo al mundo exterior se realiza mediante un conector hembra DB25.
Observando el conector de frente y con la parte que tiene mayor número de pines hacia arriba, se
numera de derecha a izquierda y de arriba a abajo, del 1 al 13 (arriba) y del 14 al 25 (abajo).
UNIVERSIDAD TECNICA DE ORURO
FACULTAD NACIONAL DE INGENIERIA
CARRERA: INGENIERIA ELECTRICA ELECTRONICA
LABORATORIO DE DISEÑO DE SISTEMAS DE CONTROL (ELT 3832)
_____________________________________________________________________________
En este conector:
8 líneas (pines) son para salida de datos (bits de DATOS). Sus valores son únicamente
modificables a través de software, y van del pin 2 (dato 0, D0) al pin 9 (dato 7, D7).
5 líneas son de entrada de datos (bits de ESTADO), únicamente modificables a través del
hardware externo. Estos pines son: 11, 10, 12, 13 y 15, del más al menos significativo.
UNIVERSIDAD TECNICA DE ORURO
FACULTAD NACIONAL DE INGENIERIA
CARRERA: INGENIERIA ELECTRICA ELECTRONICA
LABORATORIO DE DISEÑO DE SISTEMAS DE CONTROL (ELT 3832)
_____________________________________________________________________________
4 líneas son de control (bits de CONTROL), numerados del más significativo al menos: 17,
16, 14 y 1. Habitualmente son salidas, aunque se pueden utilizar también como entradas y,
por tanto, se pueden modificar tanto por software como por hardware.
las líneas de la 18 a la 25 son la tierra.
En la siguiente tabla se detallan la nomenclatura y descripción de cada línea. La columna
"Centronics pin" se refiere a las líneas del conector tipo Centronics usado en las impresoras. La
columna E/S se refiere al dato visto desde el lado del PC.
DB25 Centronics Tipo
Señal Descripción
pin pin (E/S)
Si está bajo más de 0.5 µs, habilita a la impresora
1 1 S Strobe
para que reciba los datos enviados.
2 2 S D0 Bit 0 de datos, bit menos significativo (LSB)
3 3 S D1 Bit 1 de datos
4 4 S D2 Bit 2 de datos
5 5 S D3 Bit 3 de datos
6 6 S D4 Bit 4 de datos
7 7 S D5 Bit 5 de datos
8 8 S D6 Bit 6 de datos
9 9 S D7 Bit 7 de datos, bit más significativo (MSB)
Un pulso bajo de ~11µs indica que se han recibido
10 10 E Ack datos en la impresora y que la misma está
preparada para recibir más datos.
11 11 E Busy En alto indica que la impresora está ocupada.
12 12 E PaperEnd En alto indica que no hay papel.
13 13 E SelectIn En alto para impresora seleccionada.
14 14 S AutoFeed Si está bajo, el papel se mueve una línea tras la
UNIVERSIDAD TECNICA DE ORURO
FACULTAD NACIONAL DE INGENIERIA
CARRERA: INGENIERIA ELECTRICA ELECTRONICA
LABORATORIO DE DISEÑO DE SISTEMAS DE CONTROL (ELT 3832)
_____________________________________________________________________________
impresión.
En bajo indica error (no hay papel, está fuera de
15 32 E Error
línea, error no det.).
Si se envía un pulso en bajo > 50 µs la impresora
16 31 S Init
se reinicia.
En bajo selecciona impresora (en gral. no se usa,
17 36 S Select
ya que SelectIn se fija a alto).
18-25 19-30,33 GND Masa retorno del par trenzado.
18-25 16 Masa lógica
18-25 17 Masa chasis
El nombre de cada señal corresponde a la misión que cumple cada línea con relación a la
impresora, el periférico para el que fue diseñado el puerto paralelo. Las señales activas a nivel
bajo aparecen con la barra de negación (por ejemplo, Strobe). Cuando se indica alto o bajo se
refiere a la tensión en el pin del conector. Alto equivale a ~5V en TTL y bajo a ~0V en TTL.
Acceso al puerto
El puerto paralelo se identifica por su dirección de E/S (entrada/salida, I/O) base y se reconoce en
sistemas MS-DOS por el número LPT (lp en Unix/Linux). Cuando arranca la máquina, la BIOS
(Basic Input Output System) chequea direcciones específicas de E/S en busca de puertos
paralelos y construye una tabla de las direcciones halladas en la posición de memoria 40h:8h (o
0h:0408h) (véase direccionamiento segmentado).
Esta tabla contiene hasta tres palabras de 16 bits, cada palabra con el byte bajo primero seguido
por el byte alto. Cada palabra es la dirección de E/S base del puerto paralelo (que
denominaremos LPT_BASE en lo sucesivo). La primera corresponde a LPT1, la segunda a LPT2
y la tercera a LPT3. Hay que agregar que, en MS-DOS tenemos el dispositivo PRN que es un
alias a uno de los dispositivos LPT (generalmente es LPT1, pero se puede cambiar con la orden
MODE).
Las direcciones base estándar para los puertos paralelos son:
03BCh
0378h
UNIVERSIDAD TECNICA DE ORURO
FACULTAD NACIONAL DE INGENIERIA
CARRERA: INGENIERIA ELECTRICA ELECTRONICA
LABORATORIO DE DISEÑO DE SISTEMAS DE CONTROL (ELT 3832)
_____________________________________________________________________________
0278h
La siguiente tabla muestra, como ejemplo, la memoria en un PC con dos puertos paralelo
instalados en las direcciones hexadecimales 378 y 278.
Identificador Byte Byte
Dirección Hexadecimal Decimal
DOS bajo alto
LPT1 0000:0408/9 78 03 378 888
LPT2 0000:040A/B 78 02 278 632
LPT3 (no
0000:040C/D 00 00 0 0
instalado)
Registros
El puerto paralelo estándar (SPP) consta, como se mencionó antes, de tres registros de 8 bits
localizados en direcciones adyacentes del espacio de E/S del PC. Los registros se definen
relativos a la dirección de E/S base (LPT_BASE) y son:
LPT_BASE + 0: registro de DATOS
LPT_BASE + 1: registro de ESTADO
LPT_BASE + 2: registro de CONTROL
REGISTROS
DATOS ESTADO CONTROL Nombre habitual
Puerto 378h 379h 37Ah LPT1
DIRECCIÓN
Puerto 278h 279h 27Ah LPT2
E/S
Puerto 3BCh 3BDh 3BEh MDA con p. paralelo
Se hará referencia a cada bit de los registros como una inicial que identifica el registro seguido de
un número que identifica el número de bit, siendo 0 el LSB (bit menos significativo) y 7 el MSB (bit
UNIVERSIDAD TECNICA DE ORURO
FACULTAD NACIONAL DE INGENIERIA
CARRERA: INGENIERIA ELECTRICA ELECTRONICA
LABORATORIO DE DISEÑO DE SISTEMAS DE CONTROL (ELT 3832)
_____________________________________________________________________________
más significativo). Por ejemplo, D0 es el bit 0 del reg. de datos, S7 es el bit 7 del reg. de estado y
C2 es el bit 2 del reg. de control.
Se indican con una barra de negación los bits que utilizan lógica negativa. En lógica positiva un
1 lógico equivale a alto (~5 V TTL) y un 0 lógico a bajo (~0 V TTL). En lógica negativa 1
equivale a bajo (~0 V) y 0 equivale a alto (~5 V).
Es preciso no confundir la lógica que sigue el puerto con la lógica que mantiene la
impresora. Por ejemplo, la impresora pone a alto Busy (pin 11) para indicar que está ocupada. Pero
en realidad, al leer el registro de estado, Busy la interpretamos como 0 (puesto que el pin 11 se
corresponde con S7). Es decir, es como si fuera activa en bajo (Busy).
Registro de datos (D)
El registro de estado se halla en LPT_BASE. Se puede leer y escribir. Escribir un dato en el
registro causa que dicho dato aparezca en los pines 2 a 9 del conector del puerto. Al leer el
registro, se lee el último dato escrito (NO lee el estado de los pines; para ello hay que usar un
puerto bidireccional).
UNIVERSIDAD TECNICA DE ORURO
FACULTAD NACIONAL DE INGENIERIA
CARRERA: INGENIERIA ELECTRICA ELECTRONICA
LABORATORIO DE DISEÑO DE SISTEMAS DE CONTROL (ELT 3832)
_____________________________________________________________________________
El estándar es que las salidas sean LS TTL (low schottky TTL), aunque las hay que son de tipo
OC (colector abierto). La corriente que pueden entregar (modo source) es de 2,6 mA máximo y
pueden absorber (modo sink) un máximo de 24 mA. n el puerto original de IBM hay
condensadores de 2,2 nF a masa. Las tensiones para el nivel bajo son entre 0 y 0,8V y el nivel alto
entre 2,4V y 5V.
Registro de estado (S)
El registro de estado está en LPT_BASE+1. Es de sólo lectura (las escrituras serán ignoradas). La
lectura da el estado de los cinco pines de entrada al momento de la lectura.
En la tabla siguiente los nombres de los pines se dejaron en inglés porque es como generalmente
se identifican.
La línea Busy tiene, generalmente, una resistencia de pull-up interna. El estándar es que sean
entradas tipo LS TTL.
Registro de control (C)
UNIVERSIDAD TECNICA DE ORURO
FACULTAD NACIONAL DE INGENIERIA
CARRERA: INGENIERIA ELECTRICA ELECTRONICA
LABORATORIO DE DISEÑO DE SISTEMAS DE CONTROL (ELT 3832)
_____________________________________________________________________________
El registro de control se encuentra en LPT_BASE+2. Es de lectura/escritura.
Los cuatro bits inferiores son salidas. La lectura devuelve lo último que se escribió a dichos bits.
Son TTL a colector abierto con resistencias de pull-up de 4.7 kW, por lo que un dispositivo externo
puede forzar el estado de los pines sin dañar el driver. Esto permite utilizar estas cuatro líneas
como entradas. Para ello, se ponen en alto las cuatro salidas (escribiendo 0100b, es decir, 4h, en
LPT_BASE+2) lo que hace que las salidas "floten". Ahora, un dispositivo externo puede forzar a
bajo alguna de las salidas con lo que, leyendo el puerto, sabemos si esto sucedió o no.
Es posible realizar esta técnica en salidas totem-pole (como D0-D7) pero no se recomienda su
uso porque habría que tener un conocimiento preciso de la corriente, ya que se puede
sobrecargar los transistores de salida y dañar el driver (especialmente en puertos integrados LSI).
Bit de puerto bidireccional (compatible PS/2)
El bit C5, está disponible sólo si se trata de un puerto bidireccional; en los puertos comunes no se
utiliza, al igual que los bits C6 y C7. Si C5=1, el buffer de los datos de salida se pone en alta
impedancia, "desconectando" dicho buffer de los pines 2 a 9 del conector del puerto (D0 a D7). Si
se escribe al registro de datos, se escribe al buffer pero no a la salida. Esto permite que al leer el
puerto, se lea el estado de las entradas y no lo que hay en buffer. Cuando C5=0 el puerto retorna
al modo salida, su estado por defecto.
En las computadoras IBM PS/2, para habilitar el puerto paralelo bidireccional, además de lo antes
descrito, se debe poner a 1 el bit 7 del registro del puerto 102h (opciones de configuración).
En computadoras que no tengan puerto paralelo bidireccional compatible PS/2 hay que modificar
uno o más bits de algún puerto específico correspondiente al chipset de la placa. A veces se
habilita por el Setup o por jumper en la placa del puerto.
Bit de interrupción
En trabajos normales de impresión ni el BIOS ni el DOS hacen uso de la interrupción. El hecho de
poseer una línea de interrupción que está conectada directamente al PIC (Programmable Interrupt
UNIVERSIDAD TECNICA DE ORURO
FACULTAD NACIONAL DE INGENIERIA
CARRERA: INGENIERIA ELECTRICA ELECTRONICA
LABORATORIO DE DISEÑO DE SISTEMAS DE CONTROL (ELT 3832)
_____________________________________________________________________________
Controller), lo hace muy útil para experimentación en data-loggers por ejemplo. El bit de
interrupción está conectado al control de un buffer de tres estados. Cuando C4=1, se activa el
buffer y su entrada, S6, se conecta a la línea IRQ (en general es IRQ7 o IRQ5). La lectura del bit,
nos devuelve el estado del mismo (es decir si el buffer está en alta impedancia o no).
Se producirá una interrupción, cuando haya un flanco descendente en el pin correspondiente a
S6. A continuación, se describen los pasos para poder utilizar interrupciones.
3.- Práctica en Laboratorio.
a) Diseñar un sistema de control por puerto paralelo para controlar un motor DC de 12
voltios
b) Diseñar un sistema de control por puerto paralelo para controlar un motor paso a paso.
c) Diseñar un sistema de control por puerto paralelo para controlar un motor de Corriente
alterna de 3Hp. Incluir en el calculo todo el accionamiento y protección necesarios para el
arranque del motor.
d) Diseñar un sistema de control por puerto paralelo para controlar luces secuenciales de 8
canales
e) Diseñar un sistema de control por puerto paralelo para controlar un arranque estrella
triangulo.
Nota.- Todos los diseños deberán incluir el calculo y simulación en Proteus además deben
ser implementados en Laboratorio con su defensa correspondiente, en grupos de 2 personas.