Apartado 130207, Lima 13, Perú Teléfonos (+51-1)317-2313 ♦ Fax (+51-1)317-2312
INFORME TÉCNICO
PROGRAMA DE ADQUISICIÓN PARA LOS RECEPTORES DIGITALES ECHOTEK
GC214
Karim M. Kuyeng Ruiz
Operaciones
Junio, 2009
2
RESUMEN
Este manual consiste en la descripción del software de adquisición desarrollado en sistema Windows para los receptores digitales Echotek GC214. Los drivers que requieren las tarjetas son propios del fabricante y basándose en ellos se ha procedido a desarrollar el software de adquisición que es usado para el radar principal de Jicamarca.
3
ÍNDICE
1. INTRODUCCIÓN .............................................................................................................4
2. DESARROLLO..................................................................................................................4
2.1 Diagrama de Flujo del programa .........................................................................................4 2.1.1 Lectura de parámetros..........................................................................................................5 2.1.2 Simulación de adquisición de datos (“copperball”) ............................................................8 2.1.3 Inicialización y configuración de la tarjeta receptora digital Echotek.................................8 2.1.4 Inicialización de Procesamiento(s) ......................................................................................9 2.1.5 Sincronización con controlador de radar .............................................................................9 2.1.6 Adquisición de datos............................................................................................................9 2.1.7 Activación de procesamiento ............................................................................................. 11
3. RESULTADOS .................................................................................................................16
4. CONCLUSIONES............................................................................................................16
5. RECOMENDACIONES..................................................................................................16
4
PROGRAMA DE ADQUISICIÓN DESARROLLADO EN LENGUAJE C (WINDOWS) USANDO LAS TARJETAS ECHOTEK GC214 USADO PARA
EL RADAR PRINCIPAL DE JICAMARCA
1. INTRODUCCIÓN
El siguiente informe es la descripción del programa de adquisición desarrollado para las tarjetas Echotek GC214 (tarjetas receptoras digitales), que es, desde finales del año 2004, el programa usado en el sistema de adquisición del radar principal de Jicamarca.
El anterior sistema de adquisición del radar principal está basado en receptores analógicos, los cuales tenían desventajas tales como su pobre rango dinámico y su susceptibilidad a cambios de las señales en los canales debido al hardware para hacer la conversión de los datos a banda base y la creación de los canales en cuadratura, pero teniendo tarjetas receptoras digitales todo eso se realiza sin tener problemas.
2. DESARROLLO
El programa se ha desarrollado usando Visual Net 2003, usando el lenguaje C para la programación [código fuente en CD adjunto], además de usar las librerías y drivers del fabricante de la tarjeta receptora (Echotek GC214) para su manejo respectivo.
El programa tiene dos grandes partes, la parte de adquisición, que involucra el manejo de la tarjeta receptora y la parte de procesamiento, que dependiendo de lo que se requiera realiza los procesamientos necesarios antes de grabar los datos.
La parte de adquisición está dentro de un lazo infinito, la cual cada vez que termina de adquirir un bloque de datos, éste es entregado a la parte de procesamiento el cual se procesa y guarda los datos en el disco. El procesamiento se realiza paralelamente a la adquisición y se asume que termina antes de que la parte de adquisición tenga un nuevo bloque de datos adquirido.
2.1 Diagrama de Flujo del programa
El diagrama de flujo presentado a continuación (Figura 1) muestra de manera general la estructura y funcionamiento del programa desarrollado. Cada una de las partes que lo conforman se irán describiendo a lo largo del informe.
5
Simulación de adquisición de datos
PROGRAMA PRINCIPAL
Lectura de parametros
INICIO
Inicializacion y Configuracion de
la echotek
Adquirir
Cerrar variables
SI
Sincronizar toma de datos con RC
Adquirir?
Resincronizar RC
(trigger)NO
SI
NO
Activar Procesamiento
FIN
Simulación?
NO
Crear buffer de datos simulados
Activar Procesamiento
Finalizar simulación?
SI
SI
1
2
3
5
6
7
7
NO
Gate/Trig activo?
Inicialización Procesamiento(s)4
Figura 1 – Diagrama de flujo del programa de adquisición
2.1.1 Lectura de parámetros
La lectura de parámetros es una función que lee las variables necesarias del archivo *.racp para la adquisición y procesamiento de datos y además crea la cabecera que llevarán los datos a grabar.
La variables son creadas con el programa PulseDesign desarrollado en Jicamarca [ver
6
informe técnico de PulseDesign, en CD adjunto] en donde se ingresan las características propias del experimento (IPP, ancho de pulso de TX, código, ventana de datos a adquirir, archivo de configuración de la tarjeta receptora digital Echotek, canales a adquirir, etc) además de los posibles procesamientos a realizar (decodificación, integración, FFT, etc).
Luego de la lectura de parámetros se procede a crear la cabecera que llevarán los datos a grabar en la cual se incluye los parámetros del experimento [ver manual Jicamarca Data Structure en CD adjunto] y a inicializar las variables para empezar la adquisición de datos (buffer de entrada de datos, buffers de procesamiento, etc).
Figura 2 – PULSE DESIGN Parámetros del controlador de radar
Figura 3 – PULSE DESIGN Parámetros de procesamiento
7
Figura 4 – Archivo “*.racp”
Inicio
Abrir archivo (*.racp)
Es igual a Lista de
Parametros?
Leer linea de archivo
Almacenar parametro
Fin de archivo?
NO
SI
NO
Inicializar buffers de procesamiento
Inicializar buffers de procesamiento
Fin
Lectura de Parámetros
Figura 5 – Diagrama de flujo de función
8
2.1.2 Simulación de adquisición de datos (“copperball”)
Esta función se usa para probar la parte de procesamiento de datos ya que lo que hace es simular el buffer de datos adquiridos para luego realizar el procesamiento deseado.
Los datos simulados son generados considerando las características del experimento, es decir, si el pulso a transmitir tiene código, los datos simulados se generarán con el código correspondiente. También se le agrega ruido y se hace que el eco simulado esté dentro de la primera mitad de la ventana a adquirir.
Luego de haber simulado los datos, el buffer es ingresado a la etapa de procesamiento en donde se realizarán los procesamientos especificados en el PulseDesign.
La simulación continuará hasta que se termine el programa.
2.1.3 Inicialización y configuración de la tarjeta receptora digital Echotek
La inicialización y configuración de la tarjeta Echotek GC214 se realiza con las funciones pertenecientes al fabricante [ver manuales de la Echotek en CD adjunto] alteradas mínimamente para poder permitir la programación y adquisición de más de una tarjeta a la vez.
El archivo de configuración (*.ini) con el que la tarjeta es programada se crea con el programa DRxDesign desarrollado en Jicamarca que permite de forma rápida y amigable el cambio de filtros (CFIR, PFIR), decimación, ganancia, etc. que la tarjeta ofrece.
Inicio
Abre tarjeta(s) a usar
Abrió?
Programa caracteristicas de
recoleccion de datos de la tarjeta
Programa archivo de configuración
(*.ini)
Cerrar programa principal
SI
NO
Continuar con el programa principal
Inicialización y configuración de la tarjeta echotek
Figura 6 – Diagrama de flujo
9
2.1.4 Inicialización de Procesamiento(s)
Se inicializa(n) el(los) procesamiento(s) a realizar según las especificaciones dadas por el PulseDesign creando los hilos correspondientes para que cuando esté listo el buffer de datos adquiridos sean transferidos al hilo de procesamiento sin dejar de seguir adquiriendo.
2.1.5 Sincronización con controlador de radar
El programa de adquisición necesita sincronizarse con el controlador de radar [ver manual del controlador de radar en CD adjunto] ya que éste le proporciona el trigger/gate necesario para que la tarjeta Echotek comience a adquirir.
Es por eso que cuando se va a comenzar la adquisición lo que se hace es poner en espera los pulsos del controlador de radar, se activa la adquisición de la tarjeta de recepción (a la espera del trigger/gate que la haga comenzar a adquirir) y luego se restablecen los pulsos del controlador para que comience la adquisición y así lo que el usuario a configurado como primera trama de datos a adquirir sea también la primera trama de datos adquiridos por la tarjeta y grabados en el disco.
Inicio
Sincronización con controlador de radar
Parar pulsos del RC
Limpiar FIFOS de tarjetas
Habilitar toma de datos
Reiniciar pulsos de RC
Fin de función
Figura 7
2.1.6 Adquisición de datos
La adquisición de datos se inicia una vez recibido el trigger/gate del controlador de radar.
Se espera que la tarjeta informe que tiene datos disponibles en sus FIFOS, éstos se chequean por si se han llenado o desbordado, y si no es así se procede a volcarlos al buffer de datos.
Esto se repite varias veces hasta llegar a adquirir las muestras deseadas, ya que los datos se van adquiriendo por bloques de ¼ FIFO (o ½ FIFO, lo que se determine) hasta completar la cantidad de muestras deseadas.
Una vez que el buffer de datos esté completado se le envía a la parte de procesamiento.
Si es que ocurriese un desborde o llenado en alguna de las FIFOS se procede a eliminar los datos adquiridos del último buffer de datos, se limpian los FIFOS y se vuelve a sincronizar la toma
10
de datos con el controlador de radar para comenzar de nuevo con la adquisición.
Adquisición de datos
Inicio
Bloque de datos
completo?
Datos tarjeta < ½ FIFO
Interrupción informando
datos disponibles?
Copia datos adquiridos a buffer de datos (por cada
canal)
FIFO desbordado?
SI
SI
NO
Se reinicia toma de datos del bloque
(resincronismo con RC*)
Se activa Procesamiento de
datos
NO
NO
SI
* ver “sincronización con RC”
Grabar Datos? SI
Está en la hora programada?
NO
SI
Fin
Cierra tarjetas y limpia variables
NO
Figura 8
11
2.1.7 Activación de procesamiento
Una vez que el buffer de datos está completo, se activa el hilo de procesamiento en donde se realizan los procesamientos anteriormente definidos en el PulseDesign.
Luego de realizar todos los procesamientos los datos resultantes son guardados en el formato Jicamarca [ver manual Jicamarca Data Structure en CD adjunto].
2.1.7.1 Procesamiento
Los procesamientos posibles van desde escoger los perfiles a procesar, hacer filtros en alturas, integraciones coherentes, decodificar hasta generar espectros (FFTs), hacer integraciones incoherentes y auto/cross correlaciones.
Para el procesamiento se están usando las librerías IPP (Integrated Performance Primitives for Intel®Architecture) que permite aprovechar la arquitectura del procesador para obtener mayor velocidad en diferentes operaciones matemáticas. Un ejemplo es el cálculo de FFT que es usado para obtener los espectros de los datos y también es usado para la decodificación.
La forma en la que se ha decidido hacer la parte de procesamiento es de forma lineal, y una función para cada caso que se presente ya que así se obtiene mayor rapidez aunque se use mucha memoria según el número de procesamientos a hacer. Ver Figuras 9, 10, 11.
2.1.7.2 Grabado de datos El grabado de datos está incluido en la etapa de procesamiento y se realiza cada vez que se
termine de hacer el procesamiento deseado. El buffer final es guardado en forma binaria no sin antes insertar en cada dato la cabecera que se generó al leer los parámetros.
En cada grupo de datos, dentro de la cabecera, se incluye la hora en la que fue adquirido y el número de bloque al cual corresponde [ver manual Jicamarca Data Structure en CD adjunto]. Ver Figuras 12 y 13.
12
LEYENDA- IntCoh: Integraciones Coherentes- Pre Coh: IntCoh / PostCoh- Deco: decodificar - Post_Coh: # de Int Coh que faltan hacer luego de la decodificación.- Nat: Sistema National- Ech: Sistema Echotek- ProfRange: Arreglo de perfiles a escoger para el procesamiento- ProcWin: Arreglo del # de muestras a sumar (filtro en alturas)- HPCh:datos ordenados por Alturas, Perfiles, Canales- ChPH:datos ordenados por Canales, Perfiles, Aluras- short_float: datos de short a float
Inicio
Nat o Ech? Configuración de tamaño de datos
tamaño = float ?
Pre IntCoh >1? Deco? Nat o Ech?
ProfRange or ProcfWin?
SI SI
Ech IntCoh_HPCh short_float
IntCoh_HPCh short_float
Deco_ArrangeH
IntCohHPCh_ChPHPostCoh?
SI
NO
C
ProfRange or ProcfWin? IntCoh
HPCh_ChPHshort_float
HPCh_ChPH short_float
SI
NO
C
Nat o Ech?
Ech
Deco? Nat o Ech?
ProfRange or ProcfWin?
SI
Ech IntCoh_HPCh short_float
short_float
Deco_ArrangeHSI
NONO
NO
RawData? SI
IntCohHPCh
NO
IntCohHPCh_ChPHPostCoh?
C
RawData? SI
IntCohHPCh
NO
Nat o Ech?
ProfRange or ProcfWin?
SI
Ech
IntCoh HPCh_ChPH short_float
SI
C
RawData?
SI
Nat o Ech?
ProfRange or ProcfWin?
EchIntCoh
HPCh_ChPH short_floatSI
NO
Arrange HPCh_ChPH short_float
NO
A
Figura 9 – datos a ser guardados con tamaño float
13
tamaño = short Pre IntCoh >1? Deco?SI SIIntCoh
ChHP_HPCh char_short
Deco_ArrangeH
IntCohHPCh_ChPHPostCoh?
BB
Ech
Deco? SI
Ech
Deco_ArrangeHNO
NO
RawData? SI
IntCohHPCh_ChPHPostCoh?
B
RawData? SI
Nat o Ech?SI
Ech
B
RawData?
SI
NO
Solo Nat
IntCohHPCh_ChPH
Solo Nat
IntCoh ChHP char_short
Solo Nat
IntCoh ChHP_HPCh char_short
IntCohHPCh_ChPH
Chs continuos?
HPCh_ChPH
SI
Nat
NO
tamaño = char Nat o Ech? HPCh_ChPHshort_charEch
A
LEYENDA- IntCoh: Integraciones Coherentes- Pre Coh: IntCoh / PostCoh- Deco: decodificar - Post_Coh: # de Int Coh que faltan hacer luego de la decodificación.- Nat: Sistema National- Ech: Sistema Echotek- HPCh:datos ordenados por Alturas, Perfiles, Canales- ChPH:datos ordenados por Canales, Perfiles, Aluras- char_short: datos de char a short
Figura 10 – datos a ser guardados con formato short o char
14
B
Buffer ContinuoProfBefSpec != ProfPerBlock
Buffer Normal
Espectros? Tamaño = float?
Genera Espectros y
IntInc
IntInc = 0? SI
Tamaño = float?
Tamaño = short?
Tamaño = char?
Graba datos espectrales
Graba datos crudos
Fin Función Procesamiento de
datos
LEYENDA- ProfBefSpec: Perfiles antes del spectro- ProfPerBLock: Perfiles por bloque de datos- IntInc: Integraciones Incoherentes
Figura 11 – Generación de espectros (si es el caso) y grabado de datos
15
Grabado de datos crudos
Inicio
Adquiere actual nombre de dato crudo a grabar
Abre archivo a grabar
Graba Header
Graba datos crudos
Fin
Graba estado del experimento
Figura 12
Grabado de datos espectrales
Inicio
Adquiere actual nombre de dato
espectral a grabar
Abre archivo a grabar
Graba Header
Graba datos espectrales
Fin
Graba estado del experimento
Grabar DC? Graba DC de datos espectralesSI
NO
Graba 1 bloque del experimento para chequeo
rapido
Figura 13
16
3. RESULTADOS
Este programa de adquisición se ha venido usando desde finales del 2004, haciendo posible más tipos de experimentos en los que se obtienen tanto ecos fuertes como ecos débiles por el gran rango dinámico proporcionado por los receptores digitales.
El ejemplo más resaltante es el experimento MST-ISR, en donde se adquieren datos tanto de la parte alta de la atmósfera, como de la parte baja, siendo los primeros usados para calibrar las distintas variables del radar y luego poder aplicar esas variables a los datos de la parte baja.
Para MST – ISR se tienen dos procesamientos de datos; se adquiere un bloque de datos y luego se escoge que perfiles corresponderán a cada procesamiento a realizar, ya que se usan dos procesamientos en paralelo, uno para la parte de MST (decodificación, integración coherente) y otro para la parte de ISR (filtro en alturas).
Figura 14 - MST
Figura 15 – ISR
4. CONCLUSIONES
• El motivo principal del informe es tener un documento con la información necesaria para conocer a detalle el programa de adquisición, usado con las tarjetas de adquisición Echotek GC214, del radar principal de Jicamarca, en donde no solo se muestran las funciones principales del programa, sino también se adjuntan el código del programa, los manuales(o referencias) de los programas extras usados y diferentes manuales (archivos en el CD adjunto).
• Al inicio el programa solo adquiría datos crudos, pero se ha hecho un gran esfuerzo en crear la librería RdpTools (librería de procesamiento) que puede ser añadida en cualquier otro programa que se desarrolle, además de servir de base para cualquier otra versión que se le quiera hacer.
• Todavía el programa tiene algunas fallas que no se han podido resolver, como el iniciar la toma de datos de las diferentes tarjetas con diferentes fases, pero debido a que eso puede ser resuelto de otra manera se ha dejado así no sin tratar de descubrir la solución.
5. RECOMENDACIONES
• Mejorar la parte de procesamiento para que las integraciones no se realicen con lazos porque eso demora la performance del programa. (Esto se está realizando para el nuevo sistema JARS, y luego de finalizarlo será implementado en los programas de adquisición)
• Hacer que las fallas de memoria sean detectadas y grabadas en un registro para saber porqué y cuando sucedió.
17
BIBLIOGRAFÍA
Microsoft Corporation, Microsoft Visual C++, Run-Time Library Reference, 1995
Integrated Performance Primitives for Intel®Architecture Reference Manual (Ver. 3.0)
18
ANEXOS
Se adjunta un CD con la siguiente información:
Código fuente:
Programa de adquisición: Proyecto ACQ_HF_CPP_1_0.vcproj
Librería de procesamiento: Proyecto RdpTools.vcproj
Manuales complementarios
Manuales de la tarjeta Echotek ECDR- GC214-PCI (inglés)
Jicamarca_DATAStructure.pdf: Manual del formato de datos Jicamarca (inglés)
PulseDesign.pdf: Manual del programa de generación de Pulsos PULSE DESIGN
Manual del controlador de radar de 8 canales.