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 (100S) 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 20S, 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 20S 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 (20S *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.