Analizador logico

59
MARCO TEORICO PUERTO PARALELO 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 interfase de entrada/salida que funcione de modo subordinado a rutinas de software. Historia En 1981, la IBM (International Business Machines) introdujo la Computadora Personal (PC). El puerto paralelo (Standart Parallel Port SPP) estaba incluido en el primer PC y se agregó a éste como una alternativa al bajo rendimiento del puerto serial, para utilizarlo como controlador de las impresoras de matriz de punto de alto desempeño. Este puerto tenía la capacidad de transmitir 8 bits de datos a la vez (del PC a la impresora), mientras que el puerto serial lo hacía de uno en uno. En el momento que el puerto paralelo fue presentado, las impresoras de punto fueron el principal dispositivo externo que se conecto a éste. Al hacerse extensamente utilizado, el puerto paralelo llegó a ser la respuesta para conectar dispositivos más rápidos. Después de este inicio, tres grandes grupos de problemas aparecieron a los desarrolladores y usuarios de este puerto: Primero, aunque éste había aumentado su velocidad considerablemente, no había cambio en la arquitectura o desempeño. La máxima velocidad de transferencia alcanzable estaba por los 150 kbyte /seg. y era extremadamente dependiente del software. Segundo, no había un estándar para la interface eléctrica. Esto causaba muchos problemas cuando se quería garantizar la operación en múltiples plataformas. Por último, la forma de diseño que le dieron, limitaba la

Transcript of Analizador logico

Page 1: Analizador logico

MARCO TEORICO

PUERTO PARALELO

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 interfase de entrada/salida que funcione de modo subordinado a rutinas de software.

Historia

En 1981, la IBM (International Business Machines) introdujo la Computadora Personal (PC). El puerto paralelo (Standart Parallel Port SPP) estaba incluido en el primer PC y se agregó a éste como una alternativa al bajo rendimiento del puerto serial, para utilizarlo como controlador de las impresoras de matriz de punto de alto desempeño. Este puerto tenía la capacidad de transmitir 8 bits de datos a la vez (del PC a la impresora), mientras que el puerto serial lo hacía de uno en uno. En el momento que el puerto paralelo fue presentado, las impresoras de punto fueron el principal dispositivo externo que se conecto a éste. Al hacerse extensamente utilizado, el puerto paralelo llegó a ser la respuesta para conectar dispositivos más rápidos.

Después de este inicio, tres grandes grupos de problemas aparecieron a los desarrolladores y usuarios de este puerto: Primero, aunque éste había aumentado su velocidad considerablemente, no había cambio en la arquitectura o desempeño. La máxima velocidad de transferencia alcanzable estaba por los 150 kbyte /seg. y era extremadamente dependiente del software. Segundo, no había un estándar para la interface eléctrica. Esto causaba muchos problemas cuando se quería garantizar la operación en múltiples plataformas. Por último, la forma de diseño que le dieron, limitaba la distancia de los cables externos hasta un máximo de 1,8 metros. En 1991 hubo una reunión de fabricantes de modo que se pudiera desarrollar un nuevo estándar para el control inteligente de impresoras a través de una red. Estos fabricantes, donde estaban incluidos Lexmark, IBM, Texas Instruments y otros, formaron la Network Printing Alliance (NPA), como una respuesta a estas necesidades.

Evolución

Desde la introducción del PC al mercado, el puerto paralelo ha sufrido varias modificaciones para hacerlo más veloz. Ya que el puerto original era unidireccional, se creó el puerto bidireccional. El puerto bidireccional fue introducido con el PS/2 compatible. Este permite una comunicación de 8 bits en ambas direcciones. Algo interesante de notar es que el puerto original tenía la posibilidad de ser bidireccional realizando una conexión entre dos pines de un componente electrónico que venía incluido en éste.

Page 2: Analizador logico

(Dicho de otro modo, el puerto original es bidireccional en diseño básico, pero no en el diseño operacional). Finalmente se han creado el Enhanced Parallel Port (EPP) y el Extended Capability Port (ECP). Estos dos últimos son al puerto estándar como el Pentium al 286, además de ser bidireccionales.

Inicialmente el puerto paralelo se utilizó para la comunicación con impresoras. Actualmente se utiliza también para manejar otros periféricos como CD ROM, cintas de copia de respaldo, discos duros, tarjetas de red, protectores de copia, scanners, etc.

Tras la acentuada falta de estandarización del interfaz paralelo, surgió Centronics como un standard en este tipo de conexión, debido a la facilidad de uso y la comodidad a la hora de trabajar con él.

A raíz de este interfaz, posteriormente apareció una norma standard (IEEE 1284) para el interfaz paralelo en los ordenadores personales, en la cual se tratan varios tipos de protocolos los cuales se verán a lo largo de este trabajo.

La transmisión en paralelo entre un ordenador y un periférico, se basa en la transmisión de datos simultáneamente por varios canales, generalmente 8 bits. Por esto se necesitan 8 cables para la transmisión de cada bit, mas otros tantos cables para controles del dispositivo, el numero de estos dependerá del protocolo de transmisión utilizado.

Los principales tipos y nombres de canales que son utilizados como control son:

1. STROBE - a través de el, el ordenador comunica al periférico que esta preparado para transmitir.

2. BUSY - el periférico comunica a través de el, que NO esta preparado para recibir datos.

3. ACK - el periférico comunica a través de el, que esta preparado para recibir datos.4. SELECT Y SELECTIN - indican el tipo de error producido en el periférico.5. ERROR - indica que se ha producido un error en el periférico.6. PE - depende del tipo del periférico, en el caso de la impresora indica que no tiene

papel.

Algunos de estos canales pueden ser utilizados para alguna acción adicional o cambiar la anteriormente descrita, según el protocolo que se utili

Norma IEE 1284

La reciente norma: "IEEE Std. 1284-1994 Standard Signaling Method for a Bi-directional Parallel Peripheral Interface for Personal Computers", supone tal avance para el puerto paralelo como el Pentium frente al 286. Esta norma provee una alta velocidad de comunicación bi-direccional entre el ordenador y el periférico externo lo que hace la comunicación de 50 a 100 veces mas rápido que el puerto paralelo original.

Page 3: Analizador logico

A parte del incremento de velocidad la gran ventaja es que la compatibilidad con todos los periféricos existentes que puedan usar el puerto paralelo.

La norma 1284 define 5 modos de transmisión de datos. Cada tipo provee un método de transmisión de datos ya sea la dirección ordenador - periférico, la inversa (Periférico - Ordenador) o bi-direccional. Los modos son:

Ordenador - Periférico :Compatibility Mode : "Centronics" en modo standard. Periférico - Ordenador : Byte Mode : 8 bits al mismo tiempo usando líneas de

datos, algunas veces puede funcionar como un puerto bi-direccional. Bi-direccional EPP : Puerto Paralelo Ampliado, usado principalmente por periféricos como: CD-

ROM, cintas, discos duros, adaptadores de redes, etc. excluyendo las impresoras. ECP : Puerto con Capacidad Extendida, usado principalmente por scanners e

impresoras de nueva generación.

Todos lo puertos paralelo pueden usarse en modo bi-direccional usando el modo Compatibility. El modo Byte puede ser utilizado por al menos el 25% de las bases instaladas de puertos paralelos.

Todos los modos utilizan software solo para la transmisión de datos, el driver se encarga de escribir los datos, comprobar las líneas de unión (BUSY), hacer valer las señales de control apropiadas (STROBE) y luego pasar al siguiente byte. Este software limita la efectiva transmisión de datos a unos ratios de 50 a 100 Kbytes por segundo.

Además de los 2 anteriores modos, EPP y ECP están siendo implementados sobre los mas nuevos controladores de E/S por la mayoría de fabricantes. Estos modos usan hardware para ayudar a la transmisión de datos. Por ejemplo en el modo EPP, un byte de datos puede ser enviado al periférico por una simple instrucción de salida. El control E/S controla todo el intercambio y transmisión de datos al periférico.

En resumen, la norma 1284 nos indica lo siguiente:

5 tipos de operaciones para transmitir datos. Un método para el ordenador y el periférico para determinar el modo de transmisión

mantenido y negociar el modo requerido. Define el interfaz físico:

o Cables.o Conectores.

Defina el interfaz eléctrico.o Drivers.o Terminación.o Impendancia.

Page 4: Analizador logico

Modo compatible

Este modo define los pasos a seguir por la mayoría de PC's a la hora de transferir datos a una impresora. Es conocido con el nombre de "Centronics". Los datos se sitúan sobre la línea por la que van a ser enviados y se comprueba el estado de la impresora para comprobar que no esté ocupada (BUSY). Por último, el software genera un impulso a través de la línea STROBE para detener el envío de datos a la impresora.

Pasos en la fase de transmisión:

1. Escribe los datos en el registro de datos.

2. El programa lee el estado del registro para comprobar que la impresora no esta ocupada (BUSY).

3. Si no esta ocupada, entonces escribe al registro de control para hacer valer la línea STROBE.

4. Escribe al registro de control para dejar de hacer valer la línea STROBE.

En la siguiente figura se describe el método de transmisión seguido:

Como se puede observar, para sacar 1 byte de información se requiere 4 instrucción de E/S y tantas instrucciones adicionales más como se requieran. El efecto neto de esto es una limitación de las capacidades del ancho de banda del puerto del orden de 150 Kbytes por segundo.

Este ancho de banda es suficiente para comunicaciones punto a punto con muchas impresoras, pero es muy limitado para adaptadores pocket LAN, discos duros móviles y las nuevas generaciónes de impresoras láser. Desde luego este modo es solamente para el canal directo y debe ser combinado con un canal inverso para conseguir un completo canal bi-direccional.

Page 5: Analizador logico

Fue incluido para proveer compatibilidad a la amplia gama de periféricos e impresoras instalados.

Muchos controladores de E/S integrados han implementado un modo que, conservando su compatibilidad con éste, utiliza un buffer FIFO para transferir datos. Se le conoce como "Fast Centronics" o "Modo FIFO de puerto paralelo". Los ratios que pueden alcanzarse con él son de mas de 500 Kbytes por segundo, sin embargo no está descrito en la norma IEEE 1284.

Modo EPP

El protocolo EPP fue originalmente desarrollado por Intel, Xircom y Zenith Data Systems, como una manera de obtener un puerto paralelo de alta resolución totalmente compatible con el puerto paralelo standard. Esta capacidad fue implementada por Intel en el procesador 386SL.

El protocolo EPP ofreció muchas ventajas a los fabricantes de periféricos que utilizaban puertos paralelos y fue rápidamente adoptado por muchos de ellos. Una asociación de 80 fabricantes se unió para el desarrollo de este protocolo, esta asociación se llamo el Comité EPP. Este protocolo fue desarrollado antes de la aparición de la norma IEEE 1284, por lo tanto hay una pequeña diferencia entre el anterior EPP y el nuevo EPP después de la norma.

El protocolo EPP realiza cuatro ciclos de transferencia:

Ciclo de escritura de datos Ciclo de lectura de datos Ciclo de escritura de direcciones Ciclo de lectura de direcciones

Los ciclos de datos están pensados para transferir datos tanto al ordenador como al periférico. Los ciclos de direcciones son usados para transferir direcciones, canales, comandos e información de control. La siguiente tabla describe las señales EPP y sus señales asociadas SPP.

SEÑAL SPP NOMBRE In/Out DESCRIPCIÓN

STROBE WRITE OUTInactivo indica una operación de escritura. Activo un ciclo de lectura.

AUTOFEED DATASTB OUTInactivo Operación de lectura o escritura de datos que esta en proceso.

SELECTIN ADDRSTB OUTInactivo Operación de lectura o escritura de direcciones, que esta en proceso.

INIT RESET OUT Inactivo resetea periférico

Page 6: Analizador logico

ACK INTR INEl periférico genera una interrupción al ordenador

BUSY WAIT INInactivo indica OK para comenzar el cicloActivo indica OK para finalizar el ciclo

D[8:1 AD[8:1 BI-DIFluyen bi-direccionalmente direcciones y datos

PEdefinido por usuario

IN Diferentes usos según periférico

SELECTdefinido por usuario

IN Diferentes usos según periférico

ERRORdefinido por usuario

IN Diferentes usos según periférico

Fases de transmisión de ciclo de escritura de datos:

El programa ejecuta un ciclo de escritura E/S al puerto 4 (Puerto de datos EPP). La línea WRITE indica la salida de datos hacia el puerto paralelo. Se confirma el DataStrobe ya que el canal WAIT esta desactivado. El puerto de reconocimiento desde el periférico. El DataStrobe se desconecta y finaliza el ciclo EPP. El ciclo ISA E/S finaliza. El canal WAIT es desactivado para indicar que el próximo ciclo puede comenzar.

Una de las mas importantes características es que la transferencia de datos ocurre en un ciclo ISA E/S. El resultado es que mediante el uso del protocolo EPP para la transmisión de datos un sistema puede mejorar los ratios de transmisión desde 500 K hasta 2Mbytes por segundo, de esta manera los periféricos de puertos paralelos pueden operar tan eficientemente como un periférico conectado directamente a la placa.

Page 7: Analizador logico

En la anterior figura el canal DataStrobe puede ser conectado a causa de que el canal WAIT esta desactivado, el canal WAIT se desactiva en respuesta a un canal DataStrobe conectado, un canal DataStrobe se desactiva en respuesta a que un canal WAIT esta siendo desconectado. Un canal WAIT se conecta en respuesta a un canal DataStrobe esta siendo desconectado, de esta manera el periférico puede controlar el tiempo de inicialización requerido para su operación. Esto se hace de la siguiente manera: el tiempo de inicialización es el que transcurre desde la activación del canal DataStrobe a la desactivación del canal WAIT, los periféricos son los encargados de controlar este tiempo.

Al empezar la transmisión el canal DataStrobe o el AddStrobe se activaría según el estado de la señal WAIT. Esto significa que el periférico puede que no espera el comienzo de un ciclo al tener desactivado el canal WAIT.

La siguiente figura muestra un ejemplo de un ciclo de lectura de direcciones:

Modo ECP

El protocolo de puerto de capacidad extendida o ECP, fue propuesto por Hewlett Packard y Microsoft como un modo avanzado para la comunicación de periféricos del tipo de los scanners y las impresoras. Como el protocolo EPP, el ECP proporciona una alta resolución en la comunicación bi-direccional entre el adaptador del ordenador y el periférico.

El protocolo ECP proporciona los siguientes ciclos, en ambas direcciones :

1. Ciclos de Datos2. Ciclos de Comandos

Las características principales del ECP incluyen la RLE (Run Length Encoding) o compresión de datos en los ordenadores, FIFO para los canales directo e inverso y DMA.

La característica RLE mejora la compresión de datos en tiempo real y puede lograr una compresión de datos superior 64:1. Esto es particularmente útil para las impresoras y scanners que transfieren gran cantidad de imágenes y tienen largas cadenas de datos idénticos.

Page 8: Analizador logico

El canal de direcciones contiene una pequeña diferencia con el del EPP. El canal de dirección se intenta que se use para sistemas lógicos múltiples de dirección con un sistema físico único. Piense en esta idea como un nuevo sistema multi-función como por ejemplo un Fax/Impresora/Módem. Con este protocolo se puede estar enviado datos a la impresora y al Módem a la vez.

Pasos en la fase de transmisión directa :

El ordenador sitúa los datos sobre las líneas de datos, inicia un ciclo de datos activando el HostAck.

El ordenador desactiva HostClk para indicar un dato valido. El periférico reconoce el ordenador activando PeriphAck. El ordenador activa HostClk. Este es el punto que debería ser usado para cerrar los

datos al periférico. El periférico desactiva PeriphAck indicando que esta preparado para recibir el

siguiente byte. El ciclo se repite pero en un ciclo de comando ya que HostAck esta desactivado.

La siguiente tabla describe las señales de este protocolo :

SEÑAL SPP NOMBRE In/Out DESCRIPCIÓN

STROBE HostClk OUTUsado con PeriphAck para transmitir datos o direcciones en la dirección directa.

AUTOFEED HostAck OUTProporciona estado de datos y de comando en la dirección directa. Usado con PeriphClk transfiere datos en la dirección inversa.

SELECTIN 1284Active OUTCuando el ordenadores esta en el modo de transmisión 1284 se activa.

INIT ReverseRequest OUTSe desactiva para colocar el canal en dirección inversa.

ACK PeriphClk INUsado con HostAck para transmisión de datos en la dirección inversa.

BUSY PeriphAck IN

Usado con HostClk para transmisión de información de datos o direcciones en la dirección directa. Proporciona estado de comandos y datos en la dirección inversa.

PE AckReverse IN Desactivado para reconocer Reverse Request.

SELECT Xflag IN Flag de extensibilidad.

ERROR PeriphRequest INDesactivado por el periférico para indicar que es posible la transferencia inversa.

Data[8:1 Data[8:1 BI-DIUsado para proporcionar datos entre el periférico y el ordenador.

Page 9: Analizador logico

La primera figura muestra los dos ciclos de transmisión de datos directos, cuando HostAck esta activado indica que un ciclo de datos se esta llevando a cambio. Cuando HostAck esta desactivado se lleva a cabo un ciclo de comandos, los datos representan un calculo de RLE o un canal de direcciones. El bit 8 del byte de datos se usa para indicar una RLE, si el bit 8 es cero entonces los bits del 1 al 7 representan un calculo de la longitud de cadena de transmisión, si el bit es 1 entonces los bits 1 al 7 representan un canal de dirección.

La siguiente figura muestra en proceso inverso de transferencia, con las diferencias entre el protocolo ECP y EPP, con el software del EPP puede mezclar operaciones de lectura escritura sin ningún problema. Con el protocolo ECP los cambios en la dirección de datos deben ser negociados, el ordenador debe pedir una transmisión por el canal inverso desactivando el canal ReverseRequest, entonces esperar que el periférico reconozca la señal desactivando AckReverse. Solamente entonces una transmisión de datos por canal inverso puede llevarse a cabo.

Page 10: Analizador logico

Pasos en la fase de transmisión inversa :

El ordenador pide una transmisión por el canal inverso desactivando Reverse Request.

El periférico señala que esta de acuerdo para proceder desactivando AckReverse. El periférico sitúa los datos sobre las líneas de datos e indica un ciclo de datos

activando PeriphAck. El periférico desactiva PeriphClk para indicar un dato valido. El ordenador reconoce la señal activando HostAck. El periférico PeriphClk. Esta manera debería ser usada para guardar los datos en el

ordenador. El ordenador desactiva Host.Ack para indicar que esta preparado para el siguiente

byte.

El ciclo se repite pero esta vez es un ciclo de comando porque PeriphAck esta desactivado.

ASPECTOS GENERALES:

Puertos de Entrada / Salida (E/S)

Los puertos de E/S se constituyen en el medio por el cual el microprocesador de un computador se comunica con su entorno. Existen puertos para cada interacción de la unidad de procesamiento principal con sus dispositivos auxiliares. Así, existe un puerto de entrada del teclado, un puerto de salida para el vídeo, un puerto de entrada para el ratón, etc. La computadora Personal (PC) puede direccionar hasta 64K puertos de E/S. Cada puerto se designa por un número. A continuación se listan las direcciones en hexadecimal de los puertos más usuales de E/S.

Direcciones de puertos más usuales de E/S

Dirección Descripción

Desde Hasta

000 00F Controlador de DMA (acceso directo a memoria)

020 02F Controlador de interrupciones maestro

030 03F Controlador de interrupciones esclavo

040 043 Temporizador

Page 11: Analizador logico

060 060 Teclado

061 061 Altavoz

170 17F Primer disco duro

200 20F Puerto de juegos

278 27F Tercer puerto paralelo LPT3

2E8 2EF Puerto serie 4 COM4

2F8 2FF Puerto serie 2 COM2

370 377 Controlador de disco flexible

378 37F Segundo puerto paralelo LPT2

3B0 3BB Adaptador de vídeo monocromo

3BC 3BF Primer puerto paralelo LPT1

3E0 3EF Puerto serie 3 COM3

3F8 3FF Puerto serie 1 COM1

220 22F Usualmente las tarjetas de sonido

Tipos de puerto paralelo

En la actualidad se conoce cuatro tipos de puerto paralelo:

Puerto paralelo estándar (Standart Parallel Port SPP) Puerto Paralelo PS/2 (bidireccional)

Page 12: Analizador logico

Enhanced Parallel Port (EPP) Extended Capability Port (ECP)

En la siguiente tabla se muestra información sintetizada de cada uno de estos tipos de puertos.

SPP PS/2 EPP ECP

Fecha de Introducción

1981 1987 1994 1994

Fabricante IBM IBM Intel, Xircom y Zenith Data Systems

Hewlett Packard y Microsoft

Bidireccional No Si Si Si

DMA No No No Si

Velocidad 150 Kbyte/seg.

150 Kbytes/seg.

2 Mbytes/seg. 2 Mbytes/seg.

Descripción general

Inicialmente se colocó al puerto paralelo en la tarjeta del "Adaptador de impresora de IBM", o también con la tarjeta del "monitor monocromático y adaptador de impresora de IBM".

Con la llegada de clones al mercado, se crea un controlador de múltiples entradas y salidas (Multi I/O) donde se instalan controladores de discos, puertos serie, puerto de juegos y el puerto paralelo.

En la actualidad (1999) el puerto paralelo se incluye comúnmente incluido en la placa madre de la computadora (MotherBoard). No obstante, la conexión del puerto con el mundo externo no ha sufrido modificaciones. Este puerto utiliza un conector hembra DB25 en la computadora y un conector especial macho llamado Centronic que tiene 36 pines.

Es posible conectar el DB25 de 25 pines al Centronic de 36 pines ya que cerca de la mitad de los pines del Centronic van a tierra y no se conectan con el DB25.

Descripción del conector DB25 del PC y el conector DB25 del Centronic

Page 13: Analizador logico

El puerto paralelo está formado por 17 líneas de señales y 8 líneas de tierra. Las líneas de señales están formadas por tres grupos:

4 Líneas de control 5 Líneas de estado 8 Líneas de datos

En el diseño original las líneas de control son usadas para la interfase, control e intercambio de mensajes desde el PC a la impresora.

Las líneas de estado son usadas para intercambio de mensajes, indicadores de estado desde la impresora al PC (falta papel, impresora ocupada, error en la impresora).

Las líneas de datos suministran los datos de impresión del PC hacia la impresora y solamente en esa dirección. Las nuevas implementaciones del puerto permiten una comunicación bidireccional mediante estas líneas.

Cada una de estas líneas (control, estado, datos) puede ser referenciada de modo independiente mediante un registro.

Aquí tienes una imagen de los conectores

Este puerto dispone de tres registros de 8 bit cada uno (un byte).

Cada uno de estos registros se denominan puertos o PORT., y cada uno de sus bits, representa un pin determinado del puerto. Los pin's que van del 18 al 25 (ambos inclusive): Son para masa, y sirven para conectar las descargas de los circuitos.

En esta imagen puedes ver los tres registros, sus bits y los pines asignados a cada uno de ellos. La imagen corresponde a un conector DB-25 (Hembra).

Page 14: Analizador logico

Algo más... La tensión de trabajo del puerto es de 5 voltios, por lo que necesitamos una fuente estabilizada o regulada de tensión, esto es importante tenerlo en cuenta, ya que estaremos enviando señales al puerto. Por otro lado, si bien puedes utilizar la PC para enviar señales al exterior sin necesitad de una fuente externa, es recomendable utilizarla y así no exiges demasiado al puerto y te evitas problemas.

Los registros del puerto paralelo

Cada registro del puerto paralelo es accesado mediante una dirección. El puerto paralelo tiene tres registros:

Registro de datos Registro de estado Registro de control

En la tabla que se muestra a continuación se muestra la relación que existe entre las líneas físicas del conector del PC y los registros.

Tabla general del puerto paralelo

DB25 Señal Registro Tipo Activo Sentido

1 Control 0 C0- Salida Bajo Invertido

2 Dato 0 D0 Salida Alto directo

3 Dato 1 D1 Salida Alto directo

4 Dato 2 D2 Salida Alto directo

5 Dato 3 D3 Salida Alto directo

6 Dato 4 D4 Salida Alto directo

7 Dato 5 D5 Salida Alto directo

Page 15: Analizador logico

8 Dato 6 D6 Salida Alto directo

9 Dato 7 D7 Salida Alto directo

10 Estado 6 S6+ Entrada Alto directo

11 Estado 7 S7- Entrada Bajo Invertido

12 Estado 5 S5+ Entrada Alto directo

13 Estado 4 S4+ Entrada Alto directo

14 Control 1 C1- Salida Bajo Invertido

15 Estado 3 S3+ Entrada Alto directo

16 Control 2 C2+ Salida Alto directo

17 Control 3 C3- Salida Bajo Invertido

18-25 Tierra

Notas:

Un dato en alto es un 1, un dato en bajo es un 0

La entrada y salida son desde el punto de vista del PC

Esquema

El puerto paralelo esquemáticamente, se describe a continuación. Nótese la conexión al bus ISA en la parte izquierda y los registros en la parte derecha.

Page 16: Analizador logico

Descripción de los componentes

El puerto paralelo originalmente estaba formado por los siguientes componentes:

Page 17: Analizador logico

1 Latch para manejar el registro de datos 1 Buffer para controlar la retroalimentación del registro de datos 1 Buffer para manejar el registro de estado 1 Latch para manejar el registro de control 1 Buffer para controlar la retroalimentación del registro de control 1 Multiplexor para direccionar los puertos en el bus ISA 1 Driver bidireccional para conectar con el bus ISA

Funcionamiento

Explicación del funcionamiento mediante el BIOS y el MS-DOS

IBM especificó direcciones base para el puerto paralelo estándar (dentro del espacio de direccionamiento de Entrada/Salida del 80x86). El adaptador de impresora podría usar la dirección base 3BCh, o más tarde 378h o 278h.

El BIOS (Basic Input Output System) de IBM crea en el momento de arranque o POST (Power On Seft Test) una tabla en el espacio de la memoria principal (RAM) para 4 direcciones base de puerto paralelo de impresora, estos se almacenan como 4 bytes empezando con la dirección de memoria 408h. Durante el arranque, el BIOS comprueba si hay puertos paralelos en las direcciones base 3BCh, 378h, y 278h, en ese orden, y almacena la dirección base de cualesquiera que hayan sido encontrados en posiciones consecutivas de la tabla. Las posiciones que no son usadas pueden estar en 0, o como algunos BIOS lo hacen, le colocan la dirección del primer puerto encontrado.

Algunos programas pueden ignorar esta tabla, pero esta es usada por lo menos por el propio BIOS (mediante la INT 17 de E/S de impresora) y por el MS-DOS.

El BIOS detecta estos puertos escribiendo AAh al registro de datos (en la dirección de E/S Base + 0), y luego si en el registro de datos se lee AAh. Significa que hay un puerto.

Normalmente la asignación de direcciones es como sigue:

Dirección Nombre Ubicación

3BCh LPT1 Adaptador de impresión primario

378h LPT2Adaptador de impresión secundario

Las referencias a cada registro del puerto se realizan de la siguiente forma:

Base (datos)=base+0

Page 18: Analizador logico

Estado=base+1 Control=base+2

Por ejemplo, si encontramos que la dirección base es 378h, entonces las direcciones del registro de datos, estado y control serán:

Base (datos)=378h Estado=379h Control=37Ah

Cada una de ellas permite accesar a los siguientes bits (descritos en la tabla general):

Base (datos)=D0, D1, D2, D3, D4, D5, D6, D7 Estado=S3, S4, S5, S6, S7 Control=C0, C1, C2, C3

Envío y lectura de datos del puerto

Envío de datos al puerto

El puerto paralelo puede ser usado como una comunicación directa con el PC, de este modo es posible desarrollar aplicaciones en tiempo-real que necesiten un rápido tiempo de respuesta.

El acceso se realiza escribiendo un byte (8 bits) en registro determinado. Este byte debe referirse a cada uno de los bits del registro. Esto significa que se debe definir el byte a escribir en sistema binario.

Por ejemplo si queremos escribir en el registro de datos el bit D0 y el bit D2 entonces el byte es:

0 0 0 0 0 1 0 1 = 5 En decimal

D7 D6 D5 D4 D3 D2 D1 D0 Registro de datos

Luego, se debe escribir 5 en el registro de datos (dirección base):

Notas:

dir_base y dir_estado es de tipo word, y dato es de tipo byte.

En ensamblador

mov dx, dir_base Direccionar en dx la dirección base

Page 19: Analizador logico

mov al, 5 Colocar en ² al ² el número 5

out dx, al Enviar al puerto

Lectura de datos del puerto

La lectura de datos se realiza accesando un byte del registro determinado. Al hacer la lectura se debe convertir el byte a binario para determinar él o los bits que interesen. Note que sólo se debe leer el registro de estado, o sea, la dirección base+1.

En ensamblador

mov dx, dir_estado Direccionar dx con el registro de estado del puerto

in al, dx Leer del puerto. En el registro ² al ² está el dato leído

Por ejemplo, si el dato leído es igual a 96, significa que los bits S5 y S6 están activos(tienen un nivel alto, un 1).

0 1 1 0 0 0 0 0 = 96 En decimal

S7 S6 S5 S4 S3 S2 S1 S0 Registro de estado

Enmascaramiento

Tanto en el envío como recepción de datos binarios, se realizan operaciones a nivel de bits. Estas operaciones permiten aislar uno más bits. Este proceso se denomina enmascaramiento.

Por ejemplo, para saber si determinado bit que se ha leído del registro de estado está en un nivel alto (1 lógico) se puede hacer la operación "Y" lógica (AND) de la lectura con un valor que resulta de elevar 2 a la posición que ocupa ese bit en el byte, y luego realizar la comparación.

Si el bit que se desea conocer es el bit 5, entonces la operación es:

Masc:=2^5=32

Page 20: Analizador logico

(Byte_leido AND masc)

En el caso que el bit 5 esté en un nivel alto:

Byte_leido

0 1 1 0 0 0 0 0 96

S7 S6 S5 S4 S3 S2 S1 S0 Posición

AND

0 0 1 0 0 0 0 0 Máscara = 32

Resulta

0 0 1 0 0 0 0 0 32= máscara

En el caso que el bit 5 no esté en un nivel alto:

Byte_leido

0 1 0 1 0 0 0 0 80

S7 S6 S5 S4 S3 S2 S1 S0 Posición

AND

0 0 1 0 0 0 0 0 Máscara = 32

Resulta

0 0 0 0 0 0 0 0 0 <> máscara

Si el bit 5 es 1, entonces el resultado es 16, o igual a masc.

Haciendo la comparación:

Page 21: Analizador logico

Si (Byte_leido AND masc) = masc entonces

Inicio

/* las acciones a realizar cuando el 4to bit es 1 */

Fin

Si el bit 5 es 0, entonces el resultado siempre es 0, lo cual es diferente a masc.

En caso que se desee realizar el enmascaramiento de más de un bit, se realiza la suma los valores.

Ej. Máscara para el bit 5 y el 7

Masc= 2^5+2^7=160

OSCILOSCOPIO

El osciloscopio no es mas que un instrumento para la visualización de señales eléctricas en el dominio del tiempo. En otras palabras, se pueden ver formas de onda en él. La mayoría de los usos pueden no ser obvios, pero si posee uno, probablemente piense que es uno de los elementos mas usados.

CONTROLES

Aquí se presentamos un básico (y ficticio) osciloscopio:

Este es un osciloscopio de dos trazos (o haces). Igualmente la mayoría de la información explicada aquí puede ser aplicada a uno de un trazo. Los controles básicos son:

Page 22: Analizador logico

BRIGHT: Girando su cursos se ajusta la intensidad de la pantalla. FOCUS: Girándolo se ajusta el foco del trazo sobre la pantalla. GRAT: Ilumina una cuadrícula o grilla que facilita la visualización de la señal. TRACE: Selecciona la señal a trazar en la pantalla. TRIGGER: Selecciona la fuente de disparo. TRIGGER LEVEL: Selecciona el punto de la onda utilizado para disparar. TIMEBASE: Selecciona la velocidad con la que el trazo se desplaza en la pantalla. INPUT LEVEL: Ajusta el nivel de la entrada. POS (Position): Establece la posición del trazo en la pantalla.

El instrumento dispone de un conector de entrada para cada canal, situado en el frente del mismo. Seguramente su osciloscopio tenga muchos otros mandos que éste, en esta introducción trateremos de cubrirlos a todos ellos.

ENTRADAS

La impedancia de las entradas de un osciloscopio es muy alta para evitar cargar el circuito bajo prueba. La mayoría de los osciloscopios disponen de un interruptor AC/DC en la entrada de cada canal. Cuando lo coloca en DC el trazo del canal se mueve arriba o abajo en una distancia proporcional al voltaje DC en la entrada. Si lo coloca en AC, los componentes DC son quitados de la señal permitiendole ver unicamente la componente AC de la misma. Esta función es muy útil cuando se desea medir el nivel de ripple (rizado) de una fuente de alimentación. Haga el experimento de abajo para entender mejor lo explicado:

Aquí, el osciloscopio tiene conectadas sus dos entradas a la salida de una fuente común de 12VCC. El trazo B está a 5v/cm DC y solo se ve una línea. La línea horizontal puede ser movida hacia arriba sólo 2cm, pero siempre está quieta y sin desviaciones.

El trazo A está en AC (DC bloqueada), y la sensibilidad de entrada está en 1mV/cm. La componente DC de la señal puede dar una deflexión de 1200cm pero justamente esa componente está bloqueada. Así, el rizado de bajo nivel puede ser observado claramente. En la práctica, con el circuito mostrado, es muy probable que extremadamente poco o nada de rizado sea visible, pero cuando la fuente de alimentación es cargada el rizado comienza a verse claramente, dependiendo de la calidad de la fuente y de los valores de sus componentes. Esto es muy interesante para ver que la frecuencia del rizado ronda los 100Hz o 10mS relativo a los picos. Esto es causado por el rectificador de onda completa.

El selector TIMEBASE es muy posible que tenga una posición 'XY', incluso los equipos mas económicos. Esto puede ser usado para una variedad de nuevas funciones como:

Page 23: Analizador logico

Figuras de Lisajous: Mediciones de frecuencia muy precisas. Otros equipos: Tales como wobuladores y analizadores. Modulación en transmisores HF: Rápido y Conveniente.

La posición 'XY' del selector time base desconecta el generador interno que desplaza el punto o barrido a través de la pantalla. Es ahora la entrada de señal B la encargada de hacer eso, mientras que la entrada A se encarga del desplazamiento vertical.

Puntas de prueba

Pueden comprarse ya armadas o adquirir los materiales separadamente y ensamblarlas. Lo recomendable en estos casos es invertir un poco mas y comprar puntas armadas y de una calidad aceptable, ya que son las encargadas se conducir las señales desde el circuito bajo prueba hacia el osciloscopio. Una de las alternativas mas comunes en puntas comerciales son los divisores resistivos de tensión que permiten incrementar el rango de trabajo del instrumento. Desafortunadamente son hechas con cable coaxial, lo cual las vuelve poco accesibles (a decir verdad no hay puntas de osciloscopio baratas!). El cable coaxial posee capacitancia, por consiguiente esa capacitancia es colocada a través de cualquier señal dentro de su costoso instrumento y hace efecto en la señal mostrada. Considere un simple divisor de tensión resistivo utilizando cable coaxial (caso A); como el que se muestra abajo.

Aquí vemos que el resistor de 1M ohm es colocado en serie con un capacitor (el propio cable coaxial) que forma un filtro pasa-bajos de 6dB/octave. Una forma de onda cuadrada típicamente es como se muestra en el gráfico de abajo (trazo A), pero con la punta mencionada puede verse como el trazo C. Si en paralelo con el resistor de 1M ohm resistor se coloca un pequeño capacitor , como en el circuito B, esto lograría corregir la situación, pero el valor de ese capacitor es extremadamente crítico. Si es demasiado pequeño la forma de onda lograda se vería como el trazo C. si fuese demasiado grande se vería como el trazo B.

Si el capacitor de corrección es adecuadamente seleccionado la forma de onda se vería tal como la traza A. Algunos osciloscopios tienen una salida de señal de onda cuadrada cuya frecuencia es de 1KHz para calibración y pruebas. Usualmente es de 1v pico-a-pico. Si su

Page 24: Analizador logico

instrumento no dispone de esa salida puede hacerla utilizando un circuito integrado CD4060 como oscilador/divisor partiendo de un cristal de cuarzo de 8192KHz (8.192MHz).

ANALIZADORES LÓGICOS

Introducción

Las funciones específicas que poseen los analizadores lógicos confieren a éstos una serie de posibilidades que no poseen otros equipos electrónicos de medida. En este tema se describen los distintos tipos de analizadores utilizados en el dominio digital. Se realiza una comparación previa con los osciloscopios indicando sus similitudes y diferencias y su utilización más idónea en función de la aplicación de medida. Posteriormente se inicia la descripción exhaustiva de los analizadores lógicos destinados al análisis del funcionamiento de sistemas digitales complejos en los que se requiere la observación simultánea de multitud de canales y una gran potencia en sus sistemas de adquisición, disparo y presentación.

Tras mostrar el diagrama de bloques básico de un analizador lógico, se describen los diferentes modos de presentación con los cuales se pueden obtener cronogramas, tablas de estados o visualización de los mnemotécnicos correspondientes a las instrucciones de un determinado microprocesador. Seguidamente se estudian los diferentes modos de adquisición y disparo, y los métodos de muestreo con los que poder analizar señales digitales con un consumo óptimo de memoria sin perder resolución horizontal. También se tratan los aspectos concernientes a los sistemas de sondas y puntas de prueba que hacen posible el acceso a las señales de interés en sistemas digitales complejos.

Clasificación inicial

Realizando una primera clasificación de los equipos destinados al análisis lógico, se pueden distinguir tres tipos de equipos:

Sondas lógicas. Son equipos muy simples destinados a detectar estados lógicos de uno o varios nodos del circuito bajo ensayo de modo estático, es decir, sin tener registro de la evolución temporal de los estados detectados.

Page 25: Analizador logico

Analizadores lógicos. Es la denominación general que incluye a los equipos destinados a medir estados lógicos de un circuito en régimen dinámico, esto es, teniendo un registro de su evolución temporal.

Analizadores de protocolo. Representan una herramienta comúnmente utilizada en la actualidad para la comprobación de funcionamiento de los sistemas que trabajan en red. Estos equipos observan, analizan o simulan los procesos de comunicación que rigen los intercambios de datos entre diferentes dispositivos interconectados entre sí.

Antes de continuar con la descripción de los equipos electrónicos anteriormente citados parece conveniente realizar un rápido repaso de los principales conceptos ligados con la lógica digital.

Tipos de lógica digital. Niveles lógicos.

Las más comunes son: Lógica TTL. Está caracterizada por utilizar circuitos alimentados a +5 V. El nivel

alto (H) corresponde a tensiones superiores a 2V (40% de VCC) mientras que el nivel bajo (L) a tensiones inferiores a 0,8 V (16% de VCC). Los valores de tensión intermedios definen un estado indeterminado.

Lógica CMOS. Está caracterizada por utilizar circuitos de alimentación variable desde +0.5V hasta +18V aunque el valor típico es de +15V. El nivel alto (H) corresponde a tensiones superiores al 70% de la tensión de alimentación mientras que el nivel bajo (L) a tensiones inferiores a 30%. Los valores de tensión intermedios definen un estado indeterminado.

Sondas lógicas.

Su componente básico es el comparador lógico compuesto por un par de comparadores con el cual es posible realizar la definición de estados lógicos pertinente. La salida de los comparadores se conecta a elementos de visualización (leds) o sonoros (buzzers) para realizar la indicación del estado lógico detectado. Los circuitos comparadores se suelen diseñar con una pequeña histéresis con la cual se aumenta la inmunidad al ruido. También suelen disponer de un circuito detector de pulsos, tanto positivos como negativos. En la figura 9.1 se puede ver el aspecto externo y el esquemático completo de una sonda lógica.

Page 26: Analizador logico

Figura 9.1. Aspecto externo y esquemático completo de una sonda lógica

Para el caso particular de la sonda lógica de la figura anterior, el piloto rojo lucirá mientras se detecte un estado alto y el verde mientras se detecte uno bajo. Además, el zumbador emitirá tonos distintos para cada caso. Cuando se detecte un transición de bajo a alto o viceversa, lucirá el piloto amarillo durante un tiempo suficiente y se emitirá un zumbido especial. Si se mide un estado indefinido no luce ningún led ni se emite ninguna señal acústica. Otras sondas lógicas podrían indicar esta circunstancia mediante una indicación especial.

Analizadores lógicos.

Como hemos dicho anteriormente, los analizadores lógicos deben permitir realizar un estudio dinámico de la evolución temporal de varios nodos de un circuito digital.

Page 27: Analizador logico

Analizadores lógicos y osciloscopios digitales.

A la hora de realizar el estudio de funcionamiento de circuitos digitales se pueden elegir como herramienta de análisis osciloscopios digitales DSO (digital storage oscilloscopes) o bien analizadores lógicos LA (logic analyzer). El osciloscopio es un equipo muy familiar que suele ser muy útil en determinadas aplicaciones donde existen pocas señales de interés (2 o 4 como máximo) y donde es necesario obtener medidas con gran exactitud tanto de tensiones (amplitudes, pendientes de subida o bajada, oscilaciones, calidad de las formas de onda, transitorios (glitches), ruido, etc.) como de tiempos (retrasos o solapes, tiempos de propagación, periodos, estabilidad en frecuencia (jitter) etc.). Sin embargo, cuando se necesita realizar el análisis simultáneo de un gran número de señales digitales, o cuando se requiere de un sistema complejo de disparo ligado a un determinado patrón establecido a partir de múltiples señales digitales no siendo exigible una gran exactitud en las medidas de amplitud y tiempo, parece más recomendable el uso de los LA.

La diferencia básica desde el punto de vista de la arquitectura de estos dos equipos estriba en el número y complejidad de sus convertidores analógicos/digitales ADC (analog to digital converter). Mientras que un DSO dispone de como máximo 4 ADC tipo Flash de 8 o 10 bits (2N-1 comparadores internos) los AL pueden disponer de un hasta un centenar (o más) de ADC de 1 bit (con 1 ó 2 comparadores internos).

En la actualidad, los DSO más avanzados están provistos de sistemas de disparo y adquisición suficientemente potentes que permiten realizar medidas complejas en circuitos digitales mientras que los modernos AL disponen de uno o más canales de adquisición tipo DSO que permiten mejorar la exactitud de algunas medidas.

Arquitectura de un analizador lógico.

En la figura 9.3 se muestra el diagrama de bloques de un analizador lógico donde se incluyen los componentes básicos que permiten realizar la funciones básicas de un LA.

Page 28: Analizador logico

Éstas son:

Captura y muestreo. Las señales del DBE se capturan mediante sondas o puntas de prueba específicas. El gran número de estas puntas de prueba hace que usualmente se presenten agrupadas en canales denominados “pods” que permiten conectar 8, 16 ó más señales cada uno. Suele existir un pod específico (de menor efecto de carga y mejor ancho de banda) para las señales especiales externas (señales de reloj, interrupciones, etc.). Las señales analógicas recogidas por las puntas de prueba se convierten en datos tras pasar por los ADC (comparadores) y el registro de muestreo.

Disparo y adquisición. El analizador lógico requiere de una o varias señales de reloj para realizar el análisis del resto de las señales. Este reloj, que se puede obtener a partir de alguna señal exterior o de la salida de un generador interno, se utiliza para sincronizar el sistema de disparo y gestionar la memoria de adquisición del analizador donde se almacena la información requerida relativa al evento de disparo (pretrigger o postrigger).

Análisis y visualización. A partir de la información memorizada se realiza su análisis y presentación con los formatos o modos establecidos por el usuario. En muchos casos el analizador lógico dispone una arquitectura compatible PC de modo que se puede manipular la información adquirida mediante plataformas software de alto nivel.

Page 29: Analizador logico

Modos de muestreo en analizadores lógicos.

Existen dos modos de funcionamiento típicos en un analizador lógico dependiendo del modo de muestreo utilizado.

Muestreo asíncrono (timing anlyzer mode). Es un modo de trabajo similar al de un DSO. El analizador muestra gráficos de múltiples entradas verticales con un eje horizontal común que representa el tiempo (timing o cronograma). La información de los canales de entrada se muestrean a partir de una señal de reloj interno cuya frecuencia se puede seleccionar en función de la frecuencia propia de las señales de entrada y de la profundidad de la memoria de adquisición (como en un DSO). Este modo de funcionamiento se utiliza para analizar la evolución temporal de las señales de un sistema digital.

La exactitud de las medidas depende, por lo tanto, de la frecuencia de muestreo como se muestra en la figura 9.5. La máxima incertidumbre en tiempo coincide con el periodo del reloj de muestreo.

Muestreo síncrono (state anlyzer mode). Una de las señales de entrada se toma como reloj de muestreo, por lo tanto, los datos introducidos en la memoria de adquisición están determinados por las transiciones del reloj externo. Grupos predeterminados de estas entradas pueden representar variables estados del DBE.

El analizador lógico muestra la evolución de estos estados con formatos preestablecidos componiendo tablas de estados en diversos formatos (decimal, hexadecimal, mnemotécnicos (lenguaje ensamblador), etc. Este modo es utilizado para analizar el funcionamiento de microprocesadores o dispositivos digitales específicos.

Page 30: Analizador logico

Figura 9.6. Analizador lógico en modo “state analyzer”

Sistema de disparo.

Una vez muestreadas las señales de entrada se ha de decidir cuales son de interés para el análisis y determinar así su registro en la memoria de adquisición. Esto se realiza gracias al sistema de disparo. En este apartado se realizará un estudio de los métodos de disparo usualmente utilizados en modo asíncrono (timing analyzer).

Figura 9.7. Distintos métodos de disparo.

Page 31: Analizador logico

Disparo por pendiente (edge triggering). La adquisición del analizador se realiza mediante la detección de la transición positiva o negativa de una determinada señal de entrada. (figura 9.7. a)

Disparo por tiempo de transición (slew-rate triggering). Sólo se activa el disparo cuando se detectan flancos con tiempos de transición mayores (o menores) que una cierta cantidad de tiempo predefinida (figura 9.7. b).

Disparo por transitorio (glitch triggering). Se utiliza para detectar transitorios estrechos (glitches) que suelen ser efecto o causa de un mal funcionamiento del sistema. Para su detección se configura un tiempo T. Todo pulso de duración inferior se considerará glitch y activará el disparo del sistema (figura 9.7. c).

Disparo por anchura de pulso (pulse width triggering). Es similar al método anterior. Ahora, una vez definidos los tiempos T1 y T2, sólo los pulsos de anchura mayor que T1 y menor que T2 activarán el disparo (figura 9.7. d).

Disparo por exceso de duración (timeout triggering). Cuando aparecen pulsos de anchura mayor que un tiempo T predefinido el sistema se dispara (figura 9.7. e).

Disparo por defecto de amplitud (runt pulse triggering). Una vez definido un determinado nivel umbral de amplitud mínima se puede disparar el sistema tras la detección de pulsos defectuosos de escasa amplitud (figura 9.7. f).

Disparo lógico (logic triggering). Se determina el disparo mediante combinación lógica de dos o mas señales de entrada. Se suele configurar este método de disparo introduciendo una ecuación con operadores lógicos.

Disparo secuenciado (setup-and-hold triggering). Este método de disparo evalúa la posición y duración temporal relativa entre determinadas señales y la transición de otra señal de referencia. El disparo se efectúa (o no) cuando cumple el cronograma establecido por los tiempos “setup” y “hold” como se muestra en la figura 9.8.

Figura 9.8. Disparo secuenciado (setup-and-hold triggering)

Page 32: Analizador logico

Adquisición de datos.

Como se ha citado anteriormente, el proceso de almacenamiento en memoria (adquisición de datos) se realiza cuando se realiza un disparo del sistema (triggering) con el objeto de realizar el análisis de las señales seleccionadas en el intervalo de “interés”: antes (pretrigger) y/o después (posttrigger) del disparo. La duración de este intervalo está limitado, entre otros factores, por el tamaño (profundidad) de la memoria de adquisición que suele ser de tipo cola anillada, es decir, cuando la memoria está llena, los datos nuevos “empujan” a los más antiguos eliminándolos de la memoria. En un modo de funcionamiento asíncrono en cada pulso del reloj se memoriza un nuevo dato. Si se persigue una buena resolución horizontal la frecuencia de reloj debe ser alta y en poco tiempo de adquisición se puede sobrepasar la capacidad de la memoria.En el ejemplo de la figura 9.9 se observa un ejemplo con una señal tipo “ráfaga” en la que existe un porción importante de tiempo sin transiciones separando intervalos estrechos de señal con transiciones. Si la memoria es de 4096 posiciones sólo se podría adquirir la primera ráfaga de señal y la memoria estaría llena en su mayoría con datos nulos.

En la figura 9.10 se muestra el método de adquisición denominado “transitional sampling” con el cual se consigue optimizar el almacenamiento de la información capturada.

Consiste en guardar en memoria sólo las transiciones, mediante un detector de pendiente, y su duración, mediante un contador. En el ejemplo mostrado sería posible, mediante este método, almacenar decenas de ráfagas con tan solo 4096 posiciones de memoria.

Page 33: Analizador logico

Otro método interesante de adquisición es aquel que permite capturar glitches optimizando el consumo de memoria. En la figura 9.11 se muestra su principio de funcionamiento. El glitch se detecta cuando la señal cruza el umbral de definición de estado lógico más de una vez entre instantes de muestreo. Una vez detectado, el analizador almacena este evento y lo muestra mediante una trazo discontinua coincidente con el siguiente punto de muestreo. De este modo no es necesario incrementar la frecuencia de muestreo en exceso para la detección de glitches y por consiguiente se optimiza el uso de la memoria de adquisición.

Sondas y puntas de prueba.

En cada uno de los “pods” del analizador se conecta un cable plano o cilíndrico multiconductor en cuyo extremo se sitúan las sondas o puntas de prueba a conectar a los nodos de interés del DBE. En un sistema estándar para analizadores lógicos se realiza la conexión al DBE mediante micro-pinzas que se conectan normalmente a los pines de los circuitos integrados como se muestra en la figura 9.12.

Page 34: Analizador logico

La existencia de una carga resistiva de 100kΩ y de otra capacitiva de 6 a 8 pF representa un potencial efecto de carga sobre la señal digital bajo estudio. En la figura 9.14 se muestran por separado estos posibles efectos de carga que tendrán mayor importancia cuanto mayor sea la impedancia de salida de los circuitos digitales que generan las señales.

El método estándar de conexión presenta ciertas dificultades cuando el número de canales a conectar es grande. Además, en la actualidad se a popularizado el uso de componentes SMD cuyas dimensiones no permite en muchos casos el uso de sondas estándar.

En la figura 9.15 se muestra un nuevo tipo de puntas de pruebas, denominadas “fine-pitch probes” utilizadas para esta tecnología. El proceso de conexión se mejora, entre otros actores, al existir una doble conexión eléctrica en cada pin del circuito integrado con lo cual se aumenta la fiabilidad del sensado.

Page 35: Analizador logico

En la figura 9.16 se muestra una imagen de cómo se realiza la conexión de las modernas puntas de prueba sobre un circuito integrado SMD.

Cuando el número de puntas de prueba requeridas sobre un mismo circuito integrado es grande resulta más conveniente usar adaptadores específicos como el mostrado en la figura 9.17. El adaptador se monta sobre el circuito integrando permitiendo la conexión de puntas se prueba estándar. En este caso se muestra el adaptador apropiado para circuitos integrados tipo TQFP.

Page 36: Analizador logico

DESARROLLO

Osciloscopio y Generador de señales de 1KHz utilizando una PC

ResumenEn este trabajo se describe el diseño de un osciloscopio con 1 canal, 100 muestras en el canal y que puede operar con frecuencias de adquisición de hasta 1kHz. La interfaz de usuario está realizada sobre un computador que se comunica en forma paralelo con el osciloscopio. Para el control de la adquisición de las muestras, se utiliza una PC que se encarga de la detección de las señales, del manejo de la memoria FIFO (RAM) que se usan para el almacenamiento de las muestras, y de la interconexión con el circuito que realiza la comunicación con el computador. El ADC elegido fue el ADC0804 de la NATIONAL, y el sistema de desarrollo utilizado fue Turbo C.

Así mismo se describe el diseño de un generador de señales de un canal, puede operar con frecuencias de hasta 10kHz. La interfaz de usuario esta realizada sobre un computador que se comunica en forma paralelo con el circuito del generador. Para el control de envio una secuencia de valores digitales, con los que se podrán excitar las entradas de cualquier circuito electrónico se utiliza una PC. El DAC elegido fue DAC0808 de Motorota y el sistema fue desarrollado en lenguaje C.

Se detallan la arquitectura y los criterios de diseño utilizados así como los resultados obtenidos.

Page 37: Analizador logico

IntroducciónEl presente trabajo se enmarca dentro de un proyecto de ensamblador, con el objetivo de desarrollar un osciloscopio de bajo costo, para ser utilizado en diversas aplicaciones, por ejemplo en laboratorios de enseñanza. Dicho osciloscopio consta de una placa que adquiere los datos y que está conectada a un computador en forma paralela, el cual se encargará del procesamiento y despliegue de los datos adquiridos, así como de la interfaz con el usuario. Si bien en el resto del trabajo nos referiremos al computador como un PC, el mismo puede ser cualquier computador con interfaz serie o paralelo.

Las especificaciones iniciales del proyecto eran las siguientes: 1 canal, frecuencia de adquisición programable hasta 1KHz, más de 100. En este trabajo se describe el diseño de la placa de adquisición de señales, y en particular el controlador de adquisición que fue desarrollado en una PC. Las funciones específicas que poseen los osciloscopios confieren a éstos una serie de posibilidades que no poseen otros equipos electrónicos de medida.

ObjetivoEl objetivo del proyecto es diseñar un Osciloscopio y un Generador de Patrones, ambos de 1 canal. La conexión al PC se realizará a través del puerto paralelo, configurado en modo EPP, presentando el resultado en la pantalla del PC de forma gráfica.

Un Osciloscopio es un instrumento de laboratorio que se utiliza para monitorizar varias señales digitales sobre una referencia de tiempo común. Es útil para observar las señales en caso de un evento determinado, por ejemplo para comprobar el valor existente en los buses de datos y direcciones de un sistema basado en microprocesador, en el instante en el que se activa la señal de escritura en la memoria. El valor de las señales digitales muestreadas se visualiza de una manera gráfica. El osciloscopio es un equipo muy familiar que suele ser muy útil en determinadas aplicaciones donde existen pocas señales de interés (2 o 4 como máximo) y donde es necesario obtener medidas con gran exactitud tanto de tensiones (amplitudes, pendientes de subida o bajada, oscilaciones, calidad de las formas de onda, transitorios (glitches), ruido, etc.) como de tiempos (retrasos o solapes, tiempos de propagación, periodos, estabilidad en frecuencia (jitter) etc.).

Un Generador de Patrones es un instrumento que crea una secuencia de valores digitales, con los que se podrán excitar las entradas de cualquier circuito electrónico. Es muy útil junto con un analizador lógico, para depurar cualquier sistema digital, pues por un lado se generan las señales de entrada al circuito y por otro se leen las señales de respuesta.

Page 38: Analizador logico

Para desarrollar el proyecto se necesitará diseñar un circuito electrónico de captura y conversión, un driver que maneje ese circuito y una aplicación de usuario que presente los datos.

Circuito de captura y conversión: El Osciloscopio tiene 1 canal, es decir, puede capturar 1 señal digital a la vez. Se conecta al puerto paralelo del PC, el cual deberá estar configurado en modo EPP. Este modo presenta grandes ventajas frente al modo estándar, pero la mejor de ellas es la velocidad con la que se van a transmisor los datos. La razón básica es que tiene integrada por hardware la gestión del protocolo de entrada-salida. Cualquier lectura o escritura se realiza completamente en un solo ciclo del bus ISA, frente a los tres mínimos del modo estándar.

Driver: Un driver es un programa que accede directamente al hardware, ofreciendo la interfaz entre éste y el programa de usuario. La ventaja en el uso de drivers es que independiza el funcionamiento del programa de usuario del hardware que se utilice. Es decir, si el circuito cambia (por ejemplo se actualiza), basta con actualizar también el driver y todos los programas que lo utilizaran seguirán funcionando (siempre que el driver siga cumpliendo con la interfaz anterior, lógicamente). Suponer lo que sería diseñar un programa diferente para cada tarjeta gráfica que hay en el mercado. Lo que se hace es definir una interfaz común para todos y cada fabricante, al diseñar el driver de su tarjeta, se ocupará de cumplir con esos requerimientos, mientras el acceso a su tarjeta puede cambiar en cualquier momento para obtener el máximo rendimiento.

Aplicación de usuario: Es el programa que utiliza los recursos del hardware pero sin acceder a él directamente. Obtiene los datos que necesita y los utiliza para su procesado, presentación, etc. Como norma general, la aplicación de usuario NUNCA debe acceder directamente al hardware, lo debe hacer a través de las funciones del driver .

Descripción generalEl funcionamiento del osciloscopio es el clásico: el usuario analiza señales y la frecuencia de muestreo. Una vez que la condición se satisface se completa la adquisición y se transfieren los datos al computador para su análisis y visualización.

El diagrama del osciloscopio completo se muestra en la Figura. Si bien se hará una breve descripción de cada uno de los bloques nos concentraremos en la etapa de control y en la selección del tipo de memorias a utilizar.

Page 39: Analizador logico

Como puede apreciarse en dicho diagrama, el osciloscopio está formado por los siguientes bloques:· Acondicionamiento de señales (Puntas de prueba, ADC, Registros de muestreo)· Memoria para almacenar los datos adquiridos· Lógica de Control· Comunicaciones

La etapa de acondicionamiento de señales se resolvió utilizando amplificador operacional OP07 de precisión, ADC0804, DAC0808 no rápidos ya que el puerto paralelo es mas lento que estos circuitos, con el fin de detectar los niveles de la señal de entrada y generación de una salida. No fue parte de este proyecto el estudio de los cables a utilizar así como la adaptación de las señales de entrada.

Para la memoria de datos se plantearon dos posibles soluciones: usar memorias SRAM o memorias FIFO. La primera solución implica que el controlador de adquisición debería generar el direccionamiento de la memoria SRAM, lo cual se hace muy difícil trabajando a 1KHz. El hecho de que las memorias FIFO tengan los punteros de escritura y lectura generados internamente, y que sólo se deba manejar las señales de control de escritura y lectura, soluciona el problema antes mencionado, se eligió utilizar la memoria (RAM) de la PC como memoria FIFO ya que es más rápido, que un acceso externo.

El bloque de control se encarga de brindar el reloj de muestreo, detectar la condición de disparo, controlar la escritura y lectura de los datos en la memoria.

La comunicación entre la placa adquisidora de datos y el PC se realiza a través de un puerto en forma paralela. Este bloque se encarga de realizar la transferencia de los datos adquiridos a la del PC, y programar los diferentes parámetros de adquisición desde el PC.

La versión actual del software está desarrollada bajo MS-DOS, en lenguaje de programación Ensamblador con interfase con lenguaje C. El PC se encarga del procesamiento de los datos, su despliegue y toda la interfaz con el usuario.

Page 40: Analizador logico

OSCILOSCOPIOComo se menciono anteriormente un osciloscopio es un instrumento de laboratorio que se utiliza para monitorizar varias señales digitales sobre una referencia de tiempo común, para realizar el osciloscopio se utilizo un convertidor análogo digital (ADC0804), con la finalidad de convertir una señal análoga a digital, se utilizo este ADC ya que la velocidad de frecuencia de muestreo (100KHz) es mayor que la frecuencia con la que trabaja el puerto (1KHZ). Al contemplar otros ADC (ADC0808, ADC0809) se encontró con la desventaja del costo, debido que se deseaba realizar un osciloscopio con precio accesible, dichos ADC tienen un gran ventaja velocidad de muestreo aproximadamente 1MHz, asi como 8 canales de entrada, dichas características sobrarían para la realización de este proyecto, ya que solo se requería un canal de entrada.

El diagrama a bloques se muestra a continuación:

Señal: Es la entrada, con un nivel de voltaje continuo de 0 a 5 volts, ya que la configuración de los voltajes de referencia del convertidor análogo digital son de 0 a 5 volts.

ADC: Es un encapsulado cuya finalidad es convertir una señal análoga a una señal digital, el ADC utilizado cuenta con una resolución de 8 bits, se con figuro el ADC de modo de conversión continua, esto es que siempre esta operando y/o convirtiendo la señal.

Reloj: Es un circuito implementado para la oscilación del ADC, se diseño un reloj con un circuito RC (R=10K, C=150pF) para que oscile el ADC.

Puerto Paralelo: Puerto de entrada y salida de datos de la PC, manejado en este apartado para la adquisición de los datos, se utilizo el puerto de entrada (Base+1) y el puerto bidireccional (Base+2) para formar en conjunto un dato de 8 bits, puesto que en el ADC la resolución es de 8 bits.

PC: Computadora personal utilizada para la manipulación, análisis y visualización en pantalla de los datos obtenidos por medio del puerto paralelo. Se utilizo el lenguaje ensamblador para la adquisición de los 8 bits de entradas interfasiado con el lenguaje C para la fácil manipulación de los datos.

Page 41: Analizador logico

GENERADOR

Un Generador de Patrones es un instrumento que crea una secuencia de valores digitales, con los que se podrán excitar las entradas de cualquier circuito electrónico. Es muy útil junto con osciloscopio, para depurar cualquier sistema digital, pues por un lado se generan las señales de entrada al circuito y por otro se leen las señales de respuesta.

Para implementar el generador de funciones se utilizo el DAC08(convertidor de Digital a Analogo) ya que las entradas son en forma paralela y la frecuencia de conversión es apropiada y es de mayor velocidad que el puerto paralelo.Otra opción fue utilizar un DAC serial, pero debido a que el puerto es paralelo, se necesitaba un DAC de entradas paralelas a 8 bits, es por ello que utilizo el DAC08.

El siguiente esquema representa el diagrama a bloques del generador digital :

PC: Computadora personal, la cual se encarga por software de generar las funciones de las señales de salida, (Triangular, Cuadrada, Senoidal), dichas funciones son generadas en lenguaje de programación C.

Puerto Paralelo: Es el puerto que utilizamos para la salida de los datos, utilizamos la direccion base ya que es el puerto de salida (Base), cuenta con 8 bits de salida.

DAC08: Encapsulado utilizado para convertir la señal discreta a continua, se colocaran unos voltajes de referencia como se muestra en la figura siguiente, del puerto paralelo tenemos una salida de 8 bits la cual entra en el DAC para convertir la señal.

Page 42: Analizador logico

OPAMP: Se utilizo un amplificador operacional de precisión y de respuesta rápida dicho operacional es OP07, se utilizo este por el simple hecho de que a la salida se requiere un voltaje preciso, comparando se puede llegar a obtener los mismos resultados pero añadiendo una conexión extra como OFFSET.

Sonda: Es la conexión de salida, en este proyecto se omitió dejando solo representando las dos tomas de salida. Otro motivo fue que al realizar la sonda se necesitarian conectores, tanto en la placa como en la sonda realizada, eso implica la expansión de la placa, asi como un gasto mayor.

Futuras mejorasEn un futuro próximo, se prevé realizar algunas mejoras al diseño y dotar al sistema de algunas prestaciones adicionales, como ser:

· Cantidad de muestras. · Incorporar un modo de trigger, por ejemplo flanco de determinada señal,

combinación de eventos, etc. · Generación de señales de estímulo para el circuito bajo prueba en forma

coordinada con la adquisición.

ConclusionesEn este trabajo se presentó el diseño e implementación de una placa adquisidora de datos, para ser utilizada como parte de un osciloscopio que funciona conjuntamente con un computador que realiza la interfaz con el usuario.

La solución elegida para su diseño, brinda una gran flexibilidad en cuanto a prestaciones, velocidad y capacidad de muestras, lo que permite tener un osciloscopio de muy bajo costo que lo hace muy interesante en diversas aplicaciones, especialmente en laboratorios de enseñanza. La elección del uso del lenguaje me permitió el desarrollo en un tiempo muy corto y la posibilidad de implementar mejoras en el futuro.

Page 43: Analizador logico

REFERENCIAS[1] “Electronic Instrumentation Hanbook”, Clyde F. Coombs (Mc Graw Hill).[2] “Feeling Confortable with Logic Analyzers”, Nota de aplicación 1337. Agilent Technologies.[3] “The XYZs of Logic Analyzers”, Nota de aplicación de Tektronix. 2001.

http://www.google.com.mx/search?hl=es&q=PUERTO+PARALELO&meta=http://www.pchardware.org/puertos/paralelo.php