Download Osciloscopio Digital de Bajo Costo: Diseño e Implementación
Document related concepts
no text concepts found
Transcript
XII SIMPOSIO DE TRATAMIENTO DE SEÑALES, IMÁGENES Y VISIÓN ARTIFICIAL. STSIVA 2007 Osciloscopio Digital de Bajo Costo: Diseño e Implementación Juan Alberto Vidal, Claudia Giraldo, Felipe Sabogal, Member, IEEE, Fredy Hernán R. Campiño Abstract— En este artículo se presenta el diseño e implementación de un osciloscopio digital de bajo costo. Este permite: visualización de señales de voltaje, cálculo del espectro de señales de voltaje, filtrado de señales. La arquitectura de este sistema es modular y eficiente. Está basada en bloques funcionales implementados tanto en hardware como en software, los cuales fueron desarrollados en una FPGA y microcontrolador, respectivamente. Palabras clave — Osciloscopio Digital, FFT, FPGA, VHDL. U I. INTRODUCCIÓN N osciloscopio es un instrumento de medición electrónico[1], empleado para la representación gráfica de señales eléctricas que pueden variar en el tiempo. Este instrumento presenta los valores de las señales eléctricas en forma de coordenadas en una pantalla, en la que normalmente el eje X (horizontal) representa tiempos y el eje Y (vertical) representa tensiones. La imagen así obtenida se denomina oscilograma. El osciloscopio es muy usado en la electrónica para el análisis de señales. Típicamente, un osciloscopio se emplea para: realizar mediciones de voltaje de una señal, medir directamente el período de una señal, determinar indirectamente la frecuencia de una señal, medir la diferencia de fase entre dos señales, determinar que parte de la señal es DC y cual AC. Los osciloscopios digitales utilizan previamente una etapa de acoplamiento de la señal que permite ajustar la amplitud de la señal que posteriormente es digitalizada por medio de un conversor analógico-digital (A/D). La velocidad de muestreo varía según el control de tiempo. Dependiendo del osciloscopio, se puede llevar a cabo alguna función adicional de procesamiento digital de señales (DSP), tales como: filtrado o cálculo del espectro. Finalmente se realiza la visualización de la señal. En la Fig. 1 se ilustra un diagrama de bloques de todo el proceso, desde el acondicionamiento vertical de la señal hasta la visualización. Note que el bloque Manuscrito recibido el 13 de Julio de 2007. Este trabajo ha sido financiado por la Universidad del Quindío, Armenia-Quindío-Colombia. J. A. Vidal, C. M. Giraldo, F. Sabogal, son estudiantes de ingeniería electrónica de la Universidad del Quindío, y se desempeñan como investigadores del Semillero en investigación del GDSPROC. (e-mail: gdsproc@uniquindio.edu.co).. F. H. Riascos, Es docentes del programa de Ingeniería Electrónica de la Universidad del Quindío y pertenecen al grupo GDSPROC, Centro de Estudios e Investigaciones Facultad de Ingeniería de la Universidad del Quindío. Cra. 15 Calle 12N, Armenia, Quindío, Colombia (e-mail: fhriascos@uniquindio.edu.co). marcado como DSP, es opcional y solo se incluye si el osciloscopio tiene funciones adicionales. Acople Vertical A/D DSP Video Control V/H Fig. 1 Diagrama de bloques de un osciloscopio digital Para la realización de este proyecto se siguió el esquema de fig. 1. En lo que sigue, se realiza una descripción general del osciloscopio diseñado y posteriormente se explican con más detalle cada uno de los módulos. Finalmente se muestran algunas de las conclusiones y se plantean los trabajos futuros. II. ARQUITECTURA DEL OSCILOSCOPIODIGITAL. La arquitectura del osciloscopio digital se muestra en la Fig. 2. El sistema está compuesto por varios bloques funcionales interconectados por buses. Los bloques que requieren alta complejidad computacional, se han implementado en hardware usando una FPGA (en general las funciones DSP). Algunos bloques se implementaron en un microcontrolador ya que la naturaleza del problema sugiere una solución software, estos bloques se muestran en la gráfica con fondo sombreado. La etapa de adquisición se muestra en la gráfica acotada por un cuadro de línea punteada, este módulo se encarga de digitalizar la señal de entrada, para lo cual se han utilizado conversores análogo digital, con resolución de 12 bits y 20MSPS. El usuario selecciona con el teclado, la configuración requerida. Esta es interpretada por las interfaces de usuario que se encuentran controladas por el microcontrolador, quien comunicándose a través del controlador de hardware, realiza la respectiva configuración del sistema. De esta forma, es posible visualizar la señal adquirida sin necesidad de someterla al proceso de filtrado o cómputo de la FFT. En otras palabras, el módulo filtrado, y FFT son configurables, y se pueden activar y desactivar según el controlador de hardware. Este diseño permite incluir futuras ampliaciones donde a través de las características de reconfiguración de los dispositivos FPGAs se pueda incluir otras herramientas y OSCILOSCOPIO DIGITAL DE BAJO COSTO: DISEÑO E IMPLEMENTACION transformadas tales como la transformada wavelet discreta (DWT). ADC1 Acople Vertical ADC2 Adquisición de la señal Control Vertical RAM B. Hardware Control Vertical Para este prototipo no se ha implementado el control vertical. Actualmente se encuentra en fase de desarrollo. IV. MÓDULOS SOTFWARE RAM Control Horizontal Entrada Salida USB |FFT| Interfaces Usuario FIR Como se menciono anteriormente, algunas de las funciones se implementaron en un microcontrolador. Específicamente se utilizó el AT90USB1287 que tiene 128K de memoria de programa 8K de memoria de datos y gran variedad de periféricos, siendo el de mayor relevancia para esta aplicación el puerto USB 2.0, que se utilizará como puerto de pruebas y de interfece a un PC [5]. Se eligió este microcontrolador por que ya se tiene experiencia con la familia AVR, por disponer de un excelente compilador de lenguaje C, así como, de excelentes herramientas de depuración. En resumen, el microcontrolador es el encargado de: Gestionar la inteface de usuario a través de un teclado y desplegando mensajes en la parte inferior de la pantalla LCD. También se encarga de gestionar la entrada salida de datos a través de su puerto USB. Control Hardware Control Video Fig. 2 Diagrama de bloques de la arquitectura del osciloscopio digital de bajo costo. Cabe indicar que el módulo LCD para la visualización no cuenta con un controlador de video integrado. En consecuencia, se implementó un controlador de video, dentro de la FGPA. Esta característica permite mejorar la velocidad de comunicación entre las etapas de cómputo y la pantalla LCD, también le da mayor capacidad de integración al sistema y reduce los costos. A. Interface gráfica de usuario Para el desarrollo de esta interface se utilizó el lenguaje C, y una emulación de la función putpixel disponibles en las antiguas librerías de modo gráfico en entornos MS-DOS. En otras palabras, el microcontrolador ve el controlador de video como un periférico, al cual puede escribir un dato a través de la función putpixel. La pantalla gráfica monocromática tiene 320 x 240 pixeles, sin embargo, desde el microcontrolador solo se puede afectar la zona inferior de la pantalla, es decir, a partir de la línea 200 como se muestra en fig. 3. III. ADQUISICIÓN DE LA SEÑAL Para la adquisición de la señal se implementó una tarjeta basada en el conversor análogo digital (ADC) de referencia AD9235C cuyo fabricante es Analog Devices. Este ofrece un desempeño adecuado en cuanto a alta velocidad, alta resolución y bajo costo. La velocidad máxima es 20MSPS y 12 bits de resolución. El diseño del módulo de adquisición está basado en la tarjeta de evaluación propuesta en [4]. A. Control Horizontal Cuando el usuario decide cambiar la base de tiempo a través de su interface de usuario, esta se la comunica al controlador de hardware, el cual envía las señales respectivas al control horizontal, que incrementa o decrementa la velocidad de muestreo del ADC, esto se lleva a cabo cambiando la frecuencia de reloj para los ADCs, según sea el caso. Fig. 3 Organización de la interface de usuario y la región grafica en el LCD. La interface gráfica de usuario está compuesta de un menú en la parte inferior del LCD y un teclado el cual acompaña cada opción ( +,-, V, tiempo, FFT, Filtrado). El programa en el microcontrolador asocia el menú a su correspondiente tecla y por consiguiente informa al control de hardware lo que el usuario solicita, en seguida dicho control genera las señales necesarias para llevar acabo la acción pertinente. B. Generación de caracteres alfanuméricos La implementación del controlador del LCD se realiza en una FPGA y solo ofrece la posibilidad de poner un píxel en una coordenada (x,y) de la pantalla. Entonces si se requiere la XII SIMPOSIO DE TRATAMIENTO DE SEÑALES, IMÁGENES Y VISIÓN ARTIFICIAL. STSIVA 2007 visualización de un carácter, hay que implementarlo por software, para lo cual, se estandarizó la estrategia que se explica a continuación. Cada carácter consta de 6 x 8 pixeles, como se muestra en la fig. 4. En el microcontrolador, un carácter se representa por medio de un arreglo de 5 variables de 8 bits, es decir, los 8 bits de cada variable representan una columna del carácter. Para representar los caracteres que se utilizarán, se usa una matriz de 96 filas y 6 columnas donde cada fila representa un carácter. Control hardware Control Grafica CHs uC Putpixel (x,y) RAM 1x 64k Control LCD RAM 1x13k D0-D3 display frame load cp Fig 5 Diagrama de bloques del controlador de video. A[5]={0,126,9,9,9,126} 0=> 126 => 9 => 9 => 9 => 126 => 0000 0000 0111 1110 0000 1001 0000 1001 0000 1001 0111 1110 . VI. MÓDULOS FUNCIONALES DSPS El osciloscopio digital cuenta con dos funciones a adicionales. Estas funciones se han incorporado luego de realizar algunas encuestas e investigaciones de pertinencia. Se incorporó un módulo FFT que proporciona una seudomagnitud de la señal, además se incorporó un módulo de filtrado digital. Fig. 4 algoritmo utilizado para representar caracteres. V. CONTROLADOR DE VIDEO Para la visualización se utiliza una pantalla gráfica monocromática de cristal líquido de 320 x 240 pixeles. La referencia de este dispositivo es HDM3224-1 y el fabricante es Hantronix. Esta pantalla no contiene un controlador LCD por lo que el fabricante sugiere varios dispositivos controladores de LCD tales como el SED1335 entre otros. Sin embargo, por cuestiones de diseño y de reducir costos, se implementó un controlador de video en VHDL el cual debe ser sintetizado en el dispositivo FPGA. El controlador de video toma los datos a visualizar directamente de los buses del sistema (ver fig. 2) y según una señal de control proporcionada por el controlador de hardware visualiza la señal del canal uno, canal dos o ambos. Por otra parte, funciona como un periférico para el microcontrolador, permitiéndole editar la memoria de video comprendida entre las filas 200 y 240 de la pantalla. Por ser una pantalla gráfica, el controlador de LCD debe refrescar el estado de cada píxel en forma periódica. Para esto se utilizan la señal de Frame, Load, CP y las de datos D0-D3. Esta actualización se hace según la señal de reloj CP, con cada flanco se refrescan 4 píxeles contiguos. Luego de completar el barrido de una fila, después de 80 flancos de CP, se pasa a la siguiente fila, para esto se envía una flanco con la señal Load, indicando la carga de un nuevo renglón. Este proceso se repite hasta que se actualizan la totalidad de las filas. Los diagramas de tiempo para este LCD están en la hoja de especificaciones [4]. En la fig. 5 se muestra el diagrama de bloques del controlador de video. A. Trasformada Rápida de Fourier FFT Para visualizar el espectro de frecuencias de una señal recurrimos a un método denominado Transformada Rápida de Fourier (FFT: Fast Fourier Transform). Esta transformada hace uso de la notación de mariposas cual ha sido probada y puede encontrarse una descripción más amplia en [6]. La trasformada se lleva a cabo a partir de un bloque de 2048 muestras para obtener una resolución de nf=2048/fs , como la pantalla es demasiado pequeña, se realiza un mapeo del rango de frecuencia de 0 a fs a una escala de 0 a 200 pixeles. En este proceso no se puede visualizar la FFT con todo su resolución por lo que se ha empleado un sistema de zoom B. Filtrado de la señal de entrada Para el filtrado digital se escogió un filtro digital IIR (Respuesta infinita al impulso), dado que para una implementación en FPGA requiere pocos recursos de hardware para codificarlo en forma paralela. Para modelar el filtro digital se partió de la función de transferencia análoga en términos de s, y aplicando la transformada z bilineal se obtiene el modelo digital del filtro, que puede implementarse en la FPGA mediante la ecuación en diferencias o directamente del diagrama de bloques. La ecuación del filtro universal es [7]: N H (s) = ∏ i =1 d0 + d2s + d3s 2 1 + ai + bi s 2 donde: Si Si Si Si Si d1=d2=0 se obtiene pasa-bajo d0=d1=0 se obtiene pasa-alto d0=d2=0 se obtiene pasa-banda d1=d2=0 se obtiene atrapa-banda d0=C0, d2=C2, d1=-C1, se obtiene pasa-bajo Al aplicar la transformación z bilineal se obtiene: (1) OSCILOSCOPIO DIGITAL DE BAJO COSTO: DISEÑO E IMPLEMENTACION G( z) = C 0 + C1 z + C 2 z 2 d 0 + d1 z + d 2 z 2 donde: C0 = a 0 − a1 L + a 2 L2 b0 + b1 L + b2 L2 d0 = b0 − b1 L + b2 L2 b0 + b1 L + b2 L2 C1 = 2( a 0 L − a 2 L2 ) , b0 + b1 L + b2 L2 d1 = 2(b0 L − b2 L2 ) b0 + b1 L + b2 L2 C2 = a 0 − a1 L + a 2 L2 , b0 + b1 L + b2 L2 d2 = 1 π L = cot Ωs Además: Ωs = fs f0 (3) (4) En forma general, para un filtro IIR, la función de transferencia es [7]: L −1 F ( z) = ∑ a[l ]z VII. ANÁLISIS DE LA IMPLEMENTACIÓN (2) −l (5) l =0 L −1 La implementación final del sistema ha sido desarrollado a partir de una FPGA de Altera de la familia Cyclone II o Stratis II y un microcontrolador AT90USB128, así como el ADC AD9235C de Analog Devices. El diseño ha sido probado sobre el entorno de desarrollo DE2 que cuenta con una FPGA de 35K LEs (Elementos logicos) y 105 M4K con resultados satisfactorios. En este dispositivo el consumo de recurso llega a alcanzar tan solo un 40%, sin embargo se han hecho simulaciones para diferentes dispositivos y se ha llegado a la conclusión de que el requisito mínimo para la elección de la FPGAs es que sea de 15k LEs La estrategia de diseño FPGA, microcontrolador es adecuada, si se tiene en cuenta que utilizar un microprocesador embebido en la FPGAs (NIOS II) conduce a la utilización de un dispositivo FPGAs de gama alta con mas de 35 mil LEs, y gastos en licencias. En cambio con la arquitectura propuesta, el hardware se puede implementar en un FPGA de mínimo 15k LEs. 1 + ∑ b[l ]z −l VIII. CONCLUSIONES Y TRABAJOS FUTUROS l =1 que en el dominio del tiempo, equivale a la siguiente ecuación en diferencias [7]: L −1 L −1 l =0 l =1 y[n] = ∑ a[l ]x[n − l ] + ∑ b[l ] y[n − k ] (6) Existen diferentes estructuras de implementación de un filtro IIR. En este proyecto se utilizó la forma directa III [7], ya que ofrece ventajas como por ejemplo, la poca sensibilidad a los efectos de cuantización de los coeficientes y a la estabilidad del algoritmo, ya que es prácticamente imposible que se presenten efectos de desborde en los cálculos Para la implementación, el código en VHDL se obtiene directamente del diagrama de bloques de la figura 6, en el cual se han indicado los nombres de las señales auxiliares. Se ha presentado el desarrollo de un osciloscopio multifuncional de bajo costo, que hace uso de tecnología FPGA y microcontrolador. Se plantea a futuro la posibilidad de dotar al osciloscopio con un banco de filtros amplio, incluido filtros FIR (respuesta finita al impulso) y filtros con respuesta al impulso programable, de esta forma se puede convertir en una herramienta de apoyo en las prácticas de laboratorio en las asignaturas de procesamiento digital de señales. También cabe destacar la posibilidad de agregar nuevas funciones DSP tales como DWT. Así como aumentar la capacidad de integración en el diseño incluyendo un procesador embebido en la FPGA, aunque esto último eleva los costos. BIBLIOGRAFIA [1] [2] [3] [4] [5] [6] Fig. 8 Diagrama de bloques filtro IIR Forma directa III [7] J Thurín. Medidas eléctricas y electrónicas. Paraninfo. 1998 J. Joseph Carr. Elements of Electronic Instrumentation and Measurement. 2nd Edition. Prentice-Hall. 2002 Analog Devices AD9235 Datasheet. Disponible en la web de Analog Devices. Hantronix Product specification HDM3224-1 Disponible en la web del fabricante Hatronix. Atmel Manual de usuario doc7593 Datasheet. Disponible en la web del fabricante. A López Parrado, Implementación de la FFT Sobre FPGA para sistemas de comunicación OFDM. STS2007 J. G. PROAKIS y D. G. MANOLAKIS. Tratamiento Digital de Señales. Pretince-Hall. 1992 Las ecuaciones obtenidas a partir del diagrama anterior son: y = x * b0 + y 0 y 0 ant = x * b1 + a1 * y + y1 y1ant = x * b2 + a 2 * y + y1 Con este esquema se implemento el código en VHDL del filtro. (7) F. H. Riascos C. recibió el título de Ingeniero Electrónico de la Universidad del Quindío en el año 2004. Actualmente es estudiante de la Maestría en Ingeniería con énfasis en Electrónica de la Universidad del Valle. Es profesor de tiempo completo del programa de Ingeniería Electrónica e investigador del Grupo en Procesamiento Digital de Señales y Procesadores GDSPROC de la Universidad del Quindío desde 2004, donde imparte cursos de programación, circuitos eléctricos y diseño digital avanzado. Sus áreas de XII SIMPOSIO DE TRATAMIENTO DE SEÑALES, IMÁGENES Y VISIÓN ARTIFICIAL. STSIVA 2007 interés son las arquitecturas digitales y el desarrollo de aplicaciones sobre procesadores digitales de señales y FPGAs, sistemas basados en microcontrolador y el procesamiento digital de señales. F. Sabogal T. Normalista superior con énfasis en pedagogía y sociales de la Escuela Normal Superior del Quindío, Armenia (Quindío - Colombia), en el año 2003. Actualmente Realizó estudios de Ingeniería Electrónica, llevando a cabo sexto semestre de la carrera en la Universidad del Quindío. Docente del Centro de Educación Especial Jean Piaget durante el año 2006, en áreas de formación a niños Especiales y con déficit de aprendizaje. De igual manera, se desempeña como investigador del grupo GDSPROC de la Universidad del Quindío desde el 2006, miembro activo de la IEEE desde el 2007. C. Giraldo. Estuante de Ingeniería Electrónica de la Universidad del Quindío, Actualmente se desempeña como investigador del grupo de GDSPROC. Sus áreas de interés son la arquitectura de sistemas digitales y la inteligencia artificial. J. A. Vidal G. Egresado del instituto técnico industrial de Armenia Quindío modalidad electrónica, estudiante de sexto semestre de ingeniería electrónica en la Universidad del Quindío, además de desempeñarse actualmente como investigador del grupo GDSPROC, tiene como áreas de interés el procesamiento digital de señales, además de la automatización y control de procesos.