0% encontró este documento útil (0 votos)
691 vistas43 páginas

Analizador Logico

Este documento describe la historia y evolución del puerto paralelo, incluyendo sus usos iniciales para impresoras y usos actuales para otros periféricos. También explica los diferentes estándares y modos de transmisión de datos a través del puerto paralelo.
Derechos de autor
© Attribution Non-Commercial (BY-NC)
Nos tomamos en serio los derechos de los contenidos. Si sospechas que se trata de tu contenido, reclámalo aquí.
Formatos disponibles
Descarga como DOC, PDF, TXT o lee en línea desde Scribd
0% encontró este documento útil (0 votos)
691 vistas43 páginas

Analizador Logico

Este documento describe la historia y evolución del puerto paralelo, incluyendo sus usos iniciales para impresoras y usos actuales para otros periféricos. También explica los diferentes estándares y modos de transmisión de datos a través del puerto paralelo.
Derechos de autor
© Attribution Non-Commercial (BY-NC)
Nos tomamos en serio los derechos de los contenidos. Si sospechas que se trata de tu contenido, reclámalo aquí.
Formatos disponibles
Descarga como DOC, PDF, TXT o lee en línea desde Scribd

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.
(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.
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.
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.
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


Inactivo indica una operación de
STROBE WRITE OUT
escritura. Activo un ciclo de lectura.
Inactivo Operación de lectura o escritura
AUTOFEED DATASTB OUT
de datos que esta en proceso.
Inactivo Operación de lectura o escritura
SELECTIN ADDRSTB OUT
de direcciones, que esta en proceso.
INIT RESET OUT Inactivo resetea periférico
El periférico genera una interrupción al
ACK INTR IN
ordenador
Inactivo indica OK para comenzar el ciclo
BUSY WAIT IN
Activo indica OK para finalizar el ciclo
Fluyen bi-direccionalmente direcciones y
D[8:1 AD[8:1 BI-DI
datos
definido por
PE IN Diferentes usos según periférico
usuario
definido por
SELECT IN Diferentes usos según periférico
usuario
definido por
ERROR IN Diferentes usos según periférico
usuario

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.
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 Datos
2. 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.
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


Usado con PeriphAck para transmitir datos o
STROBE HostClk OUT
direcciones en la dirección directa.
Proporciona estado de datos y de comando en la
AUTOFEED HostAck OUT dirección directa. Usado con PeriphClk
transfiere datos en la dirección inversa.
Cuando el ordenadores esta en el modo de
SELECTIN 1284Active OUT
transmisión 1284 se activa.
Se desactiva para colocar el canal en dirección
INIT ReverseRequest OUT
inversa.
Usado con HostAck para transmisión de datos en
ACK PeriphClk IN
la dirección inversa.
Usado con HostClk para transmisión de
información de datos o direcciones en la
BUSY PeriphAck IN
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.
Desactivado por el periférico para indicar que es
ERROR PeriphRequest IN
posible la transferencia inversa.
Data[8:1 Data[8:1 BI-DI Usado para proporcionar datos entre el periférico
y el ordenador.

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.
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
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)
 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 1981 1987 1994 1994
Introducción
Fabricante IBM IBM Intel, Xircom y Zenith Hewlett Packard y
Data Systems Microsoft
Bidireccional No Si Si Si
DMA No No No Si
Velocidad 150 150 2 Mbytes/seg. 2 Mbytes/seg.
Kbyte/seg. Kbytes/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

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).

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
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.
Descripción de los componentes

El puerto paralelo originalmente estaba formado por los siguientes componentes:


 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 LPT2 Adaptador de impresión secundario

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

 Base (datos)=base+0
 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}

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

(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:

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:

 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:

 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
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.

 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.
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.
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.
É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.
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.
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.


 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)

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.
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.
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.

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.

DESARROLLO

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

Resumen
En 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.
Introducción
El 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.

Objetivo
El 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.
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 general
El 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.

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.

OSCILOSCOPIO
Como 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.

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.

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 mejoras
En 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.

Conclusiones
En 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.

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

También podría gustarte