Tecnófilos
  Inicio       Proyectos       Energias Renovables       Manuales             Videos      

Foro

      Contacto  
   

 

TARJETA ADQUISICIÓN DE DATOS DE 48 BIT USANDO BUS ISA.

 

Los viejos buses ISA proporcionan una manera sencilla y eficaz de implementar periféricos de mediana velocidad. Este bus permite una velocidad de 8 Mbytes/s. Las características más importantes son: 16 líneas de datos + 20 líneas de dirección. Interrupciones por flanco ( lleva dos controladores de interrupción típico de intel i8259) y configuración de sistemas RAM-CMOS con con baterías de backup ( ahora con memorias flash o eeprom ).

Los dispositivos que se conectan al bus pueden ser mapeados en memoria o dentro del espacio de entrada / salida del PC. El estándar que sigue este bus es el IEEE P996.

Tarjeta

Fig.1. Detalle de tarjeta reciclada.

Esquema

Fig. 2. Esquema de la tarjeta. Descargar

Se limpió por completo una vieja tarjeta de sonido y se montaron todos los circuitos integrados con el viejo pero eficaz sistema de alambrado. Tanto los integrados como el cable de conexión son 100 % reciclados. El costado aloja un conector macho db de 50 pines. La tarjeta trabaja en 8 bit pero puede ser ampliado el margen a 16 fácilmente, disponiendo cuatro pias 8255 para un total de 96 líneas de entrada salida totalmente programables.

Conector

Fig. 3. Conector db de 50 pines.

El agujero para alojar el conector se ha realizado traladrando la pletina y serrando el metal con una sierra de marquetería con un pelo plano. La placa está situada dentro del espacio de direccionamiento del PC. Tres líneas de direccionamiento se conectan a un decodificador 3 a 8 ( 74138 ). Este decodificador se activará cuando se presente la combinación adecuada. Las líneas A0 y A1 se conectan directamente a las líneas de dirección de los 8255 para seleccionar sus registros internos. Las líneas de este decodificador las conectaremos mediante unos jumpers o switches para seleccionar las direcciones base:

Jumper 8 y 7 cerrados: Pia 1 en 300h y Pia 2 en 304h.

Jumper 6 y 5 cerrados: Pia 1 en 308h y Pia 2 en 30Ch.

Jumper 4 y 3 cerrados: Pia 1 en 310h y Pia 2 en 314h.

Jumper 2 y 1 cerrados: Pia 1 en 318h y Pia 2 en 31Ch.

RESET: A la entradas de las 8255. Estas se resetearán cuando lo haga el PC. IOR: Operación de lectura. IOW: Operación de escritura. AEN: Para diferenciar cuando hay una dirección válida ( si AEN = 1, bus para DMA ). Líneas de direcciones A9-A0.

Cable

Fig. 4. Cable.

Las salidas son compatibles TTL y se puede conectar cualquier dispositivo que trabaje con estos niveles. Es conveniente que los cables de salida al exterior sean lo más cortos posibles para minimizar el ruido. En la figura 4 se han empleado cables de puerto paralelo apantallados en los que se ha conectado la pantalla a masa.

 

DESCRIPCION DETALLADA DEL BUS ISA.

En el bus isa tenemos dos tipos de tarjetas. ISA de 8 bit y extendido de 16 bit.

8 bit

Fig. 5. Bus de 8 bit.

16 bit

Fig. 6. Bus de 16 bit.

Descripción de las líneas del bus. ( I ) = Entrada, ( O ) = Salida, ( I/O ) = Entrada-salida.

OWS ( I ): Zero Wait State. Los dispositivos de memoria rápidos del bus ponen esta línea en estado para impedir que la CPU inserte estado de espera extra.

AEN ( O ): Address Enable. En estado alto el controlador de DMA ( direct access memory, acceso directo a memoria ) tiene control de las líneas de direcciones, datos y R/W de memoria y de I/O.

ALE ( O ): Address Latch Enable. Esta línea indica cuando la CPU tiene una dirección válida en el bus, cuando se utiliza con AEN. Activo en estado alto.

CLK ( O ): System Clock.

/DACK0-7 ( O ): DMA Acknowledge. Líneas de reconocimiento del DMA utilizadas para reconocer las peticiones de DRQ. DACK0 se didica a la función de refresco de la memoria DRAM ( dinámica ). Activo a nivel bajo.

DRQ1-7 ( I ): DMA Request. Líneas de petición de DMA de los dispositivos del bus que necesitan su servicio. Debe mantenerse alto hasta que la línea /DACK pasa a nivel bajo. Activo a nivel alto.

I/O CH CHK ( I ): I/O Channel Check. A nivel bajo indica que un dispositivo ha detectado un error de paridad.

I/O CH RDY: ( I ): I/O Channel Ready. Puesto a nivel bajo por un dispositivo del bus que necesita más tiempo.

I/O CS 16 ( I ): I/O 16-bit Chip Select. Señales de selección de chip de 16 bits de I/O.

/IOR ( O ): I/O Read Command. Indica a un dispositivo de E/S del bus que entregue sus datos. Activo a nivel bajo.

/IOW ( O ): I/O Write Command. Esta línea ordena a un dispositivo del bus que almacene los datos presentes en las líneas de datos.

IRQ2-14 ( I ): Interrupt Request. Líneas de petición de interrupciones utilizadas por los periféricos cuando necesitan atención. Activo a nivel bajo.

LA17-23 ( I/O): Unlatched Address. Líneas de dirección sin latch válidas cuando ALE es alto. Los dispositivos de I/O capturan estas señales cuando ALE cae.

/MASTER ( I ): Un procesador en el canal I/O puede utilizar esta señal con un DRQ para obtener el control de las líneas de direcciones, de datos y de control del bus.

/MEM CS 16 ( I ): Memory 16 bit Chip Select. La transferencia es de acceso a memoria de 16 bits y con un estado de espera.

/MEMR ( O ): Memory Read. Esta señal indica a los dispositivos de memoria del bus que pongan los datos en el bus de datos.

/MEMW ( O ): Memory Write. Indica al bus de memoria que almacene los datos presentes en el bus.

OSC ( O ): Oscilator. Señal de reloj de ciclo útil del 50 % con una frecuencia de 14,31818 MHz.

/REFRESH ( O ): Esta línea se utiliza en el AT para señalar un ciclo de refresco de memoria. /DACK0 se utiliza para esto en el XT. Activo a nivel bajo.

RESET DRV ( O ): Utilizado para resetear el sistema durante el encendido o en las bajadas de alimentación. Sincronizado con el flanco de bajada del reloj.

SA0-SA19 ( A0-A19 ) ( O ): Línea de dirección para el primer Megabyte de memoria. Activo a nivel alto.

SBHE ( O ): Bus High Enable. Indica transferencia de datos de 16 bit.

SD0-SD15 ( D0-D15) ( I/O ): I/O bits de datos. Activo a nivel alto.

/SMEMR ( /MEMR ) ( O ): Memory read. Ordena a la memoria para que vuelque al bus los datos. Activo a nivel bajo.

/SMEMW ( /MEMW ) ( O ): Memory Write. Indica a los dispositivos que almaenen el dato presente en el bus. Activo a nivel bajo.

T/C ( O ): Terminal Count. Señal que se pone a nivel alto cuando se alcanza la cuenta final para un ciclo de DMA.

 

Cronos.

Fig. 7. Cronogramas.

Acceso a puertos de E/S.

Cuando se activen las líneas /IOR e /IOW indicarán que se está dando por el bus una dirección dentro del espacio de direccionamiento de E/S. Aunque en principio tenemos un rango de 64 kb destinado para ubicar los dispositivos de entrada-salida, en la práctica los sistemas solo utilizan 10 líneas de direcciones para efectuar la decodificación. Por tanto podremos tener 1024 puertos, de los cuales muchos ya están pre-asignados a funciones particulares de E/S.

Normalmente se reserva los puertos E/S que van de la direccion 300h a 31Fh para establecer los prototipos. Esto implica 32 puertos de entrada y de salida. En la figura 8 tenemos algunos puertos y su función.

 

Puertos.

Fig. 8. Puertos en el PC.