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:
[email protected])..
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:
[email protected]).
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.