Presentación preliminar del proyecto

Anuncio
Presentación preliminar del proyecto
El proyecto elegido es un “osciloscopio digital”. El mismo constara de una
parte de hardware (conversor A/D y puerto paralelo), y un software diseñado
específicamente para trabajar los dispositivos mencionados anteriormente.
En el siguiente esquema se puede observar a grandes rasgos el diagrama
en bloques del osciloscopio:
CONVERSOR
Datos
A/D
PUERTO
PARALELO
Control
Punta de medicion
Datos
SOFTWARE
Control
Monitor PC
Conversor A/D
Los conversores tienen la posibilidad de trabajar en modo “free running”, es
decir convierte continuamente, pero el software no estará continuamente
observando el puerto sino a intervalos regulares (determinados seguramente por
alguna interrupción). Por esto me parece conveniente permitir una comunicación
entre el hard y el soft (handshaking), de manera que este ultimo de la orden de
convertir y el convertidor avise cuando finaliza su tarea para que el soft tome el
dato como valido y lo procese.
El convertidor a utilizar en principio, es el CI ADC0804, ya que cumple con
los requerimientos que necesito:
 Resulucion de 8 bits (por el tamaño del puerto paralelo)
 Comunicancion con el dispositivo sin logica adicional (CS, RD, WR, INTR)
 Posee un CLK interno
 Tiempo de conversion acorde a lo necesitado (100S)
Para poder reconstruir la señal digitalmente, es necesario que el muestreo
se realice al doble de la frecuencia de la señal que estamos midiendo. Para ello se
establece una maxima frecuencia de medicion acorde a los tiempos que pueda
manejar en la PC.
La siguiente tabla informa la disposición de pines:
Pin
1
2
3
IN/OUT
IN
IN
IN
Descripción
(CS) Habilitación
(RD) Se le indica que el dato ha sido leído
(WR) Se ingresa un cero para iniciar la conversión
4
5
6/7
8
9
10
11/18
19
20
IN
OUT
IN
IN
OUT
IN
(CLKIN) Se fija la constante de tiempo con un RC
(INTR) Avisa con un “0” cuando la finaliza la conversión
(V+, V-) Entrada analógica diferencial
(AGND) Tierra analógica
(VREF) Tensión de referencia
(DGND) Tierra digital
(DB7/DB0) Salidas digitales
(CLKR)
(VCC) Tensión de alimentación
|La comunicación entre el dispositivo y el software se hará a través de los
pines RD, WR y INTR.
Ejemplo de toma de datos:



El programa ingresa un “0” en WR (se inicia la conversión)
El programa espera sobre la salida INTR un “0” para tomar la recepción
como valida
El programa coloca un “0” en RD para colocar la salida del dispositivo en tristate y dejarlo en condiones para la proxima conversion
La entrada analógica, que se realizara mediante una punta de osciloscopio,
podrá estar dentro de un rango de +/-10V. Para ello la alimentación y las entradas
deben conectarse de la siguiente manera (según Typical Applications):
Para prevenir que una falla en el conversor arruine el puerto paralelo de la
PC, se protegerá intercalando optoacopladores entre el dispositivo y el puerto.
Software
Se utilizara el 8254 para que provoque una interrupcion cada 20S, en la cual se
leera el puerto para tomar la muestra de la señal. Para ello se modificara la cuenta
del Contador 0 a 0x14. Para que la computadora no deje de realizar las funciones
en el tiempo original (55mS), cada 3478 interrupciones se llamara a la “vieja”
funcion asociada al Timertick.
El muestra tomada del puerto estara asociada a un tiempo, que sera 20S
multiplicado por la cantidad de veces que se recibio una interrupcion. Para poder
graficar la funcion cada par de valores (Tension,Tiempo) seran considerados con
un par ordenado (x,y).
Para graficar los valores se utilizara una escala para la tension y otra para la
corriente, que podra ser modificada dentro de ciertos valores, por el usuario.
La pantalla, al igual que un osciloscopio real, tendra una cantidad de divisiones
fijas por eje, cuyo valor “real” estara dado por la escala correspodiente. Por lo
tanto, teniendo en cuenta que el tiempo esta dado por (20S *n°de
medicion)/Escala y que la cantidad de divisiones es fija, puedo saber en cuanto
tiempo se dibujara toda la pantalla. Esto cumple dos funciones: saber cuando
borrar la pantalla para volver a graficar, reiniciar el contador de interrupciones.
Descargar