eko nº2:(eko02-07.txt):13/05/2001 << Back To eko nº 2
< ---------------------------- [ EKO Magazine ] ---------------------------- > < - [ Boludeando con los Puertos ] ----------------------------------------- > < - [ por Phreaking Arpac Eniac de Delphi ] --------------------- (EKO 02) - > Proyecto: Boludeando con los Puertos. Tarjeta Experimental. Con el fin de practicar un poco con los puertos de comunicaciones, encontre por ahi esta tarjeta experimental para conectar al puerto de Impresora, de tres entradas y ocho salidas digitales. Una PC tiene 3 conjuntos de lineas o buses que trasnportan informacion binaria. A travez de estos es posible introducir y extraer datos digitales con el proposito de realizar procesos de control. Bus Interno: Esta compuesto por los buses de Direcciones, Datos y Control del Micro y algunas otras se~ales generadas por otros circuitos de la PC. Las ventajas de la coneccion de una tarjeta de adquisicion de datos directamente a este bus son: alta velocidad de muestreo, bajo costo y tama~o reducido. La potencia para alimentar los circuitos de Datos se obtienen directamente de los terminales del bus. Para PC los buses mas comunes son ISA, EISA, PCI, Microcanal y AGP. Buses Externos: Hay dos buses externos llamados puertos; el serial y el paralelo a travez de ellos se conectan los perifericos. El puerto serial, tambien llamado RS-232 o de comunicaciones, maneja los datos que entran y salen en forma serial. Hay algunas ventajas cuando se usa este puerto en adquisicion de datos y control: requiere pocas lineas, es posible configurar sistemas de cualquier tama~o, los circuitos de datos se ubican a cualquier distancia de la PC y son compatibles con la mayoria de los perifericos. El puerto de impresora o puerto paralelo, tambien llamado Centronics, esta compuesto por un conjunto de entradas y salidas digitales que permiten la operacion de la impresora en un PC. Este puerto es ideal para aquellos que quieran iniciarse en el manejo y control ya que es el que mejor se adapta a los circuitos, placas, configuracion etc. Hoy en dia esta tambien muy en boga y se impone Standar el Puerto USB mucho mas rapido que los anteriores y de facil manejo. Tambien esta el modelo PS/2, similar a un conector de teclado. Estos puertos (serie y paralelo) se encuentran en la parte posterior del equipo y es facil distinguirlos ya que el paralelo utiliza un conector DB-25 hembra, mientras que el serial utiliza un conector DB-25 macho. Ya que vamos a utlizar el puerto paralelo para conectar la tarjeta experimental vamos a explicarlo con mas detalle. La funcion de cada terminal del conector DB-25 se muestra en la siguiente figura: ------------------------------------------------------- \ 13 12 11 10 09 08 07 06 05 04 03 02 01 / \ / \ 25 24 23 22 21 20 19 18 17 16 15 14 / \-----------------------------------------------/ 01 = Strobe (STB) 14 = Autofeed (AUTO FD) 02 = Data 0 (D0) 15 = Error (FAULT) 03 = Data 1 (D1) 16 = Initialize (IP) 04 = Data 2 (D2) 17 = Select IN 05 = Data 3 (D3) 18 = Tierra 06 = Data 4 (D4) 19 = Tierra 07 = Data 5 (D5) 20 = Tierra 08 = Data 6 (D6) 21 = Tierra 09 = Data 7 (D7) 22 = Tierra 10 = Acknowledge (ACK) 23 = Tierra 11 = BUSY 24 = Tierra 12 = Paper Empty (PE) 25 = Tierra 13 = Select Las se~ales del bus se pueden clasificar en cuatro grupos: salidas de datos, tierras, entradas de protocolo y salidas de protocolo. Lineas de Datos: Transportan informacion desde la PC hacia el periferico. Lo hacen en grupos de ocho bits (un byte) al tiempo y utilizan los terminales del 2 al 9 del conector DB-25. El bit D0 es el de menor peso o LSB y el bit D7 es de mayo r peso o MSB. Los bits estan representados por niveles de voltaje TTL: una se~al entre 2.5 y 5 voltios es un nivel alto y entre 0.8 y 2.4 voltios un nivel bajo. Lineas de Tierra: Realizan dos funciones: una de ellas es unir las tierras entre la PC y el periferico de tal forma que haya una referencia de potencial comun y la otra, es realizar el blindaje de las se~ales contra ruidos externos al cable, evitando interferencias entre las mismas se~ales que transportan el cable ribbon que se usa por lo general en esta conexion. Por ejemplo, el cable de tierra conectado al terminal 19 del conector DB-25 realiza el blindaje entre los terminales 6 y 7. Lo anterior evita el acople capacitivo que pueda ocurrir entre las lineas de datos D4 y D5 a lo largo del cable ribbon qye une la PC y el periferico. Entradas y Salidas de Protocolos: Una computadora es mucho mas rapida que cualquier periferico y, por lo tanto, le puede transmitir mas datos de los que puede recibir. Por esta razon, los circuitos de los perifericos, como la impresora usan se~ales especiales para decirle a la PC que detenga momentaneamente el envio de datos hasta que se encuentre listo para recibirlos. De esta manera la PC tiene la oportunidad de realizar otras tareas hasta que el periferico le indique, por intermedio de una se~al de protocolo, que se encuentra listo para recibir datos. Las lineas de protocolo strobe, busy y acknowledge son las mas utlizadas para realizar la cordinacion entre una PC y un periferico lento. Cuando la PC tiene datos para enviar por el puerto paralelo, lo hace acompa~ado por una se~al de strobe, el periferico responde con una se~al de busy hasta que termina de aceptar o procesar los datos; asi evita que la PC le envie datos nuevos, y cuando se encuentra listo le responde con una se~al de acknowledge. Direcciones del Puerto Paralelo: Segun la documentacion de algunas PC y del nunca olvidado DOS es posible tener hasta tres puertos paralelos LPT1, LPT2 y LPT3. Como se sabe, los dise~adores de PC asignan una direccion, entre las posibles, a cada puerto de entrada y salida. Solo existe una direccion unica y asignada para cada puerto. Cada puerto paralelo esta conformado por 12 lineas de salida informacion y 5 lineas de entrada. Se requieren 3 bytes (tres length de 8 bits) para manejar esta informacion. Por lo tanto, a cada puerto paralelo se le deben asignar 3 direcciones. En la siguiente tabla se hace un resumen de las direcciones asignadas a los posibles puertos paralelos en una PC. Ademas, se indica el numero de cada terminal del conector DB-25F y la entrada o salida que le corresponda a cada bit de los 3 bytes de cada puerto. Observe en la tabla, que las se~ales de los puertos se clasifican solamente como entradas y salidas. TABLA. DIRECCIONES, BITS y PINES DEL PUERTO PARALELO --------------------------------------------------------------- |Direccion del Puerto Hex. | Bits | DB-25F | Entrada | |--------------------------| En Byte | PINS | o | | LPT1 | LPT2 | LPT3 | (N) | | Salida | |--------------------------|-----------|----------|-----------| | | | | 0 | 2 | Salida | | | | | 1 | 3 | Salida | | 3BC | 378 | 278 | 2 | 4 | Salida | | | | | 3 | 5 | Salida | | | | | 4 | 6 | Salida | | | | | 5 | 7 | Salida | | | | | 6 | 8 | Salida | | | | | 7 | 9 | Salida | |--------|--------|--------|-----------|----------|-----------| | | | | 0 | NA | ------ | | | | | 1 | NA | ------ | | 3BD | 379 | 279 | 2 | NA | ------ | | | | | 3 | 15 | Entrada | | | | | 4 | 13 | Entrada | | | | | 5 | 12 | Entrada | | | | | 6 | 10 | Entrada | | | | | 7* | 11 | Entrada | |--------|--------|--------|---------- |----------|-----------| | | | | 0* | 1 | Salida | | | | | 1* | 14 | Salida | | 3BE | 37A | 27A | 2 | 16 | Salida | | | | 3* | 17 | Salida | | ------------------------| 4 | NA | ------ | | | * el dato en estos || 5 | NA | ------ | | | Bits esta invertido || 6 | NA | ------ | | ------------------------| 7 | NA | ------ | --------------------------------------------------------------- Tarjeta Experimental: En el archivo diagrama.jpg esta el esquema de armado. Las ocho lineas de salida de los datos (D0 a D7), terminales del 2 a 9 del conector DB-25, se conectan por medio de compuertas inversoras de los circuitos integrados IC1 e IC2 a 8 diodos emisores de luz. Estos diodos nos representaran las salidas digitales sobre las cuales se quiere realizar control. En una aplicacion industrial se pueden reemplazar por reles o triacs para manejar cargas de mayor potencia. Las resistencias de 330 ohmios limitan la corriente de los diodos y las de 4,7 Kohm evitan falsos disparos de las se~ales del circuito. A los terminales de entrada 12, 13 y 15 del conector DB-25 se conectan interruptores pulsadores S1, S2 y S3. Esots representan las entradas digitales. En una aplicacion real pueden ser detectores de proximidad, interruptores de Timing o sensores. Montaje de la Tarjeta: El proyecto se monta en un circuito impreso de una sola cara, o en su defecto en una tarjeta universal con los materiales que se describen a continuacion. Materiales: Resistencias 1,4 W, 5% R1,R2,R3 = 2.2 Kohms R4...R11 = 4,7 Kohms R12..R19 = 330 Ohms Semiconductores D1 a D8 Diodos LED rojos 5 mm IC1, IC2 = 74LS34 Varios S1, S2 y S3 pulsadores miniatura. 1 conector para impreso de 12 pines(Macho y hembra) 1 Conector DB-25 Macho con Carcaza 2 bases para CI de 14 pines 1 metro de cable ribbon de 12 lineas Alimentacion del Circuito: Tanto los circuitos inversores como los diodos LED, necesitan un voltaje de 5 VDC y hay dos formas de proporcionarlo: utilizando una fuente externa de 5v conectada a los terminales de alimentacion o sacarlos directamente de la fuente de la PC. Cable de Conexion: Para llevar las se~ales del puerto paralelo a la tarjeta, se debe construir un cable conformado por dos conectores y un cable ribbon de 12 hilos. Las puntas de uno de los extremos de este se deben soldar a un conector DB-25M macho y las del otro extremo del cable se deben soldar a un conector hembra de 12 terminales (12P). La longitud del cable no debe exceder de los dos metros, por el efecto capacitivo entre conductores aumenta con la longitud. Cuando se trata de iluminar LEDs el problema de capacidad no es critico, pero si en la aplicacion se presenta el envio de datos a registros o Flip-Flops externos, puede haber perdida de informacion debido a este efecto. Programacion de la Tarjeta: Si la Tarjeta se conecta al puerto de salida LPT1 queda ubicada en las direcciones 3BC, 3BD y 3BE como lo indica la tabla anterior. Ahora solamente falta el programa que haga posible el funcionamiento de la tarjeta. Por una cuestion de comodidad lo vamos a hacer en BASIC y en PASCAL. En lenguaje BASIC, para enviar datos a un puerto se utiliza la siguiente linea: OUT direccion, dato Donde direccion, es la localizacion del puerto y dato es el valor binario expresado en Hex., que se desea enviar al puerto de salida. Por ejemplo, para encender todos los LEDs de la tarjeta tenemos que usar: OUT &H3BC,&HFF Para adquirir informacion presente en el puerto se utiliza: Variable = INP(direccion) Donde direccion es la direccion del puerto y variable es el nombre de la variable en la cual se desea almacenar el valor leido. El programa que incluyo, implementa un secuenciador variable con los 8 LEDs. La velocidad y la secuencia se controlan por medio de kis tres pulsadores. Pulsando S3 se cambia a una secuencia de luces superior. Si se presiona S2 se aumenta el retardo entre los pasos de la secuencia. S1 actua en combinacion con los otros pulsadores para producir el efecto contrario. Por ejemplo, pulsando S1 y S3 se cambia a una secuencia inferior y activando S2 y S1 se disminuye el retardo entre los pasos de la secuencia. ------------------------------------------------------------------- | Nota del Editor: en el directorio addons/eko02-07 se encuentra el | | archivo Puerto.bas y Diagrama.jpg correspondientes a este texto. | ------------------------------------------------------------------- *EOF*