Está en la página 1de 6

OBJETIVOS: Hacer que el motor gire a la derecha o a la izquierda con solo enviar datos por el puerto paralelo.

MATERIALES: Protoboard. Cable del puerto paralelo. Motor. Integrados. Cable. Turbo C.

TEORIA: Existen dos mtodos bsicos para transmisin de datos en las computadoras modernas. En un esquema de transmisin de datos en serie un dispositivo enva datos a otro a razn de un bit a la vez a travs de un cable. Por otro lado, en un esquema de transmisin de datos en paralelo un dispositivo enva datos a otro a una tasa de n nmero de bits a travs de n nmero de cables a un tiempo. Sera fcil pensar que un sistema en paralelo es n veces ms rpido que un sistema en serie, sin embargo sto no se cumple, bsicamente el impedimiento principal es el tipo de cable que se utiliza para interconectar los equipos. Si bin un sistema de comunicacin en paralelo puede utilizar cualquier nmero de cables para transmitir datos, la mayora de los sistemas paralelos utilizan ocho lneas de datos para transmitir un byte a la vez, como en todo, existen excepciones, por ejemplo el estndar SCSI permite transferencia de datos en esquemas que van desde los ocho bits y hasta los treinta y dos bits en paralelo. En ste artculo nos concentraremos en transferencias de ocho bits ya que sta es la configuracin del puerto paralelo de una PC. Un tpico sistema de comunicacin en paralelo puede ser de una direccin (unidireccional) o de dos direcciones (bidireccional). El ms simple mecanismo utilizado en un puerto paralelo de una PC es de tipo unidireccional y es el que analizaremos en primer lugar. Distinguimos dos elementos: la parte transmisora y la parte receptora. La parte transmisora coloca la informacin en las lneas de datos e informa a la parte receptora que la informacin (los datos) estn disponibles; entonces la parte receptora lee la informacin en las lneas de datos e informa a la parte transmisora que ha tomado la informacin (los datos). Observe que mbas partes sincronizan su respectivo acceso a las lneas de datos, la parte receptora no leer las lneas de datos hasta que la parte transmisora se lo indique en tanto que la parte transmisora no colocar nueva informacin en las lneas de datos hasta que la parte receptora remueva la informacin y le indique a la parte transmisora que ya ha tomado los datos, a sta coordinacin de operaciones se le llama acuerdo entendimiento. Bin, en stos mbitos tecnolgicos es recomendable utilizar ciertas palabras en ingls que nos permiten irnicamente un mejor entendimiento de los conceptos tratados. Repito: a la coordinacin de operaciones entre la parte transmisora y la parte receptora se le llama handshaking, que en espaol es el acto con el cual dos partes manifiestan estar de acuerdo, es decir, se dan un apretn de manos. El handshaking Para implementar el handshaking se requieren dos lneas adicionales. La lnea de estroboscopio (en ingls strobe) es la que utiliza la parte transmisora para indicarle a la parte receptora la disponibilidad de informacin. La lnea de admisin (acknowledge) es la que utiliza la parte receptora para indicarle a la parte transmisora que ha tomado la informacin (los datos) y que est lista para recibir ms datos. El puerto paralelo provee de una tercera lnea de handshaking llamada en ingls busy (ocupado), sta la puede utilizar la parte receptora para indicarle a la parte transmisora que est ocupada y por lo tanto la

parte transmisora no debe intentar colocar nueva informacin en las lneas de datos. Una tpica sesin de transmisin de datos se parece a lo siguiente: Parte transmisora: La parte transmisora checa la lnea busy para ver si la parte receptora est ocupada. Si la lnea busy est activa, la parte transmisora espera en un bucle hasta que la lnea busy est inactiva. La parte transmisora coloca la informacin en las lneas de datos. La parte transmisora activa la lnea de strobe. La parte transmisora espera en un bucle hasta que la lnea acknowledge est activa. La parte transmisora inactiva la lnea de strobe. La parte transmisora espera en un bucle hasta que la lnea acknowledge est inactiva. La parte transmisora repite los pasos anteriores por cada byte a ser transmitido.

Parte receptora: La parte receptora inactiva la lnea busy (asumiendo que est lista para recibir informacin). La parte receptora espera en un bucle hasta que la lnea strobe est activa. La parte receptora lee la informacin de las lneas de datos (y si es necesario, procesa los datos). La parte receptora activa la lnea acknowledge. La parte receptora espera en un bucle hasta que est inactiva la lnea de strobe. La parte receptora inactiva la lnea acknowledge. La parte receptora repite los pasos anteriores por cada byte que debe recibir.

Se debe ser muy cuidadoso al seguir stos pasos, tanto la parte transmisora como la receptora coordinan sus acciones de tal manera que la parte transmisora no intentar colocar varios bytes en las lneas de datos, en tanto que la parte receptora no debe leer ms datos que los que le enve la parte transmisora, un byte a la vez. El hardware del puerto paralelo El puerto paralelo de una tpica PC utiliza un conector hembra de tipo D de 25 patitas (DB-25 S), ste es el caso ms comn, sin embargo es conveniente mencionar los tres tipos de conectores definidos por el estndar IEEE 1284, el primero, llamado 1284 tipo A es un conector hembra de 25 patitas de tipo D, es decir, el que mencionamos al principio. El orden de las patitas del conector es ste:

El segundo conector se llama 1284 tipo B que es un conector de 36 patitas de tipo centronics y lo encontramos en la mayora de las impresoras; el tercero se denomina 1284 tipo C, se trata de un conector similar al 1284 tipo B pero ms pequeo, adems se dice que tiene mejores propiedades elctricas y mecnicas, ste conector es el recomendado para nuevos diseos. La siguiente tabla describe la funcin de cada patita del conector 1284 tipo A:

Patita 1

E/S Salida

Polaridad activa 0

Descripcin Strobe Lneas de (bit 0/patita 2, bit 7/patita 9) Lnea (activa cuando el sistema remoto toma datos) datos

2~9

Salida

10

Entrada

acknowledge

11

Entrada

Lnea (si est activa, el sistema remoto no acepta datos) Lnea Falta de (si est activa, falta papel en la impresora) Lnea (si est activa, la impresora se ha seleccionado) Lnea (si est activa, la impresora lnea por cada retorno de carro)

busy

12

Entrada

papel

13

Entrada

Select

14

Salida

inserta

Autofeed una nueva

15

Entrada

Lnea (si est activa, hay un error en la impresora) Lnea (Si se mantiene activa micro-segundos, autoinicializa la impresora) Lnea Select (Cuando est inactiva, impresora a salir de lnea) Tierra elctrica

Error

16

Salida

por sta

al

menos

Init 50 seal

17

Salida

obliga

input la

18 ~ 25

Tabla 1: Configuracin del puerto paralelo estndar Observe que el puerto paralelo tiene 12 lneas de salida (8 lneas de datos, strobe, autofeed, init, y select input) y 5 de entrada (acknowledge, busy, falta de papel, select y error). El estndar IEEE 1284 define cinco modos de operacin: 1. 2. 3. 4. 5. Modo compatible Modo nibble Modo byte Modo EPP, puerto paralelo ampliado Modo ECP, puerto de capacidad extendida

El objetivo del estndar es disear nuevos dispositivos que sean totalmente compatibles con el puerto paralelo estndar (SPP) definido originalmente por la IBM (en ste artculo tratar solamente el modo compatible). Hay tres direcciones de E/S asociadas con un puerto paralelo de la PC, stas direcciones pertenecen al registro de datos, el registro de estado y el registro de control. El registro de datos es un puerto de lectura-escritura de ocho bits. Leer el registro de datos (en la modalidad unidireccional) retorna el ltimo valor escrito en el registro de datos. Los registros de control y estado proveen la interface a las otras lneas de E/S. La distribucin de las diferentes seales para cada uno de los tres registros de un puerto paralelo esta dada en las siguientes tablas: Direccin Base + 0 Nombre Puerto de datos Lectura/Escritura Escritura Bit # Bit 7 Bit 6 Bit 5 Bit 4 Bit 3 Bit 2 Bit 1 Bit 0 Propiedades Dato 7 Dato 6 Dato 5 Dato 4 Dato 3 Dato 2 Dato 1 Dato 0

Tabla 2: Registro de datos Direccin Base + 1 Nombre Puerto de estado Lectura/Escritura Slo Lectura Bit # Bit 7 Bit 6 Bit 5 Bit 4 Bit 3 Bit 2 Bit 1 Bit 0 Propiedades Busy Acknowledge Falta de papel Select In Error IRQ (Not) Reservado Reservado

Tabla 3: Registro de estado Direccin Base + 2 Nombre Puerto de control Lectura/Escritura Lectura/Escritura Bit # Bit 7 Bit 6 Propiedades No usado No usado Permite bidireccional puerto

Bit 5

Bit 4

Permite IRQ travs de lnea acknowledge Selecciona impresora Inicializa impresora Nueva automtica Strobe

a la

Bit 3

Bit 2

Bit 1

lnea

Bit 0

TURBO C++: Era un entorno de desarrollo integrado y compilador desarrollado por Borland para programar en lenguaje C. Su primera versin es de 1987, a la que siguieron las versiones 1.5 y 2.0, de 1989. Fue el compilador ms popular para desarrollar en C en entornos MS-DOS. Se le considera el primer IDE para C disponible para dicha plataforma. Fue sustituido por Turbo C++ en 1990. La siguiente verson fue llamada Borland C++, y en la versin 3.0 el nombre Turbo C++ fue retomado. Tras el Borland C++ lleg el C++Builder. 1987: Turbo C 1.0 1987: Turbo C 1.1 1988: Turbo C 1.5 1989: Turbo C 2.0 (now with integrated debugger, also for the Atari ST) 1990: Turbo C++ 1.0 1991: Turbo C++ 1.01 1991: Turbo C++ 2.0 1992: Turbo C++ 3.0

PROGRAMACION EN TURBO C++:

Primero declaramos las libreras. Segundo declaracin de los prototipos de las funciones globales. Luego pasamos a escribir nuestro programa, desde aqu declaramos porque puerto va salir data. La manipulacin se da por medio del siguiente cdigo (outport(0x378,pin de salida de datos)). Luego finalizamos

Para lograr que el motor gire a la derecha el sentido de la corriente debe ser de derecha a izquierda para logra ello activamos el pin 2 y el pin 3, lo cual declararamos con outport(0x378,3). Para lograr que el motor gire a la izquierda el sentido de la corriente debe ser de izquierda a derecha para logra ello activamos en pin 2 y el pin 4, lo cual declararamos con outport(0x378,5). Para que el motor se detenga desactivaramos los puertos para ello declaramos outport(0x378,0). Por ltimo la expresin 0x378 nos sirve para llamar al puerto.