PROGRAMA DE ADQUISICIÓN PARA LOS RECEPTORES...

18
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

Transcript of PROGRAMA DE ADQUISICIÓN PARA LOS RECEPTORES...

Page 1: PROGRAMA DE ADQUISICIÓN PARA LOS RECEPTORES …jro.igp.gob.pe/publications/tecnical_reports/2009/OP_2009.02.pdfFigura 1 – Diagrama de flujo del programa de adquisición ... incoherentes

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

Page 2: PROGRAMA DE ADQUISICIÓN PARA LOS RECEPTORES …jro.igp.gob.pe/publications/tecnical_reports/2009/OP_2009.02.pdfFigura 1 – Diagrama de flujo del programa de adquisición ... incoherentes

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.

Page 3: PROGRAMA DE ADQUISICIÓN PARA LOS RECEPTORES …jro.igp.gob.pe/publications/tecnical_reports/2009/OP_2009.02.pdfFigura 1 – Diagrama de flujo del programa de adquisición ... incoherentes

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

Page 4: PROGRAMA DE ADQUISICIÓN PARA LOS RECEPTORES …jro.igp.gob.pe/publications/tecnical_reports/2009/OP_2009.02.pdfFigura 1 – Diagrama de flujo del programa de adquisición ... incoherentes

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.

Page 5: PROGRAMA DE ADQUISICIÓN PARA LOS RECEPTORES …jro.igp.gob.pe/publications/tecnical_reports/2009/OP_2009.02.pdfFigura 1 – Diagrama de flujo del programa de adquisición ... incoherentes

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

Page 6: PROGRAMA DE ADQUISICIÓN PARA LOS RECEPTORES …jro.igp.gob.pe/publications/tecnical_reports/2009/OP_2009.02.pdfFigura 1 – Diagrama de flujo del programa de adquisición ... incoherentes

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

Page 7: PROGRAMA DE ADQUISICIÓN PARA LOS RECEPTORES …jro.igp.gob.pe/publications/tecnical_reports/2009/OP_2009.02.pdfFigura 1 – Diagrama de flujo del programa de adquisición ... incoherentes

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

Page 8: PROGRAMA DE ADQUISICIÓN PARA LOS RECEPTORES …jro.igp.gob.pe/publications/tecnical_reports/2009/OP_2009.02.pdfFigura 1 – Diagrama de flujo del programa de adquisición ... incoherentes

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

Page 9: PROGRAMA DE ADQUISICIÓN PARA LOS RECEPTORES …jro.igp.gob.pe/publications/tecnical_reports/2009/OP_2009.02.pdfFigura 1 – Diagrama de flujo del programa de adquisición ... incoherentes

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

Page 10: PROGRAMA DE ADQUISICIÓN PARA LOS RECEPTORES …jro.igp.gob.pe/publications/tecnical_reports/2009/OP_2009.02.pdfFigura 1 – Diagrama de flujo del programa de adquisición ... incoherentes

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

Page 11: PROGRAMA DE ADQUISICIÓN PARA LOS RECEPTORES …jro.igp.gob.pe/publications/tecnical_reports/2009/OP_2009.02.pdfFigura 1 – Diagrama de flujo del programa de adquisición ... incoherentes

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.

Page 12: PROGRAMA DE ADQUISICIÓN PARA LOS RECEPTORES …jro.igp.gob.pe/publications/tecnical_reports/2009/OP_2009.02.pdfFigura 1 – Diagrama de flujo del programa de adquisición ... incoherentes

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

Page 13: PROGRAMA DE ADQUISICIÓN PARA LOS RECEPTORES …jro.igp.gob.pe/publications/tecnical_reports/2009/OP_2009.02.pdfFigura 1 – Diagrama de flujo del programa de adquisición ... incoherentes

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

Page 14: PROGRAMA DE ADQUISICIÓN PARA LOS RECEPTORES …jro.igp.gob.pe/publications/tecnical_reports/2009/OP_2009.02.pdfFigura 1 – Diagrama de flujo del programa de adquisición ... incoherentes

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

Page 15: PROGRAMA DE ADQUISICIÓN PARA LOS RECEPTORES …jro.igp.gob.pe/publications/tecnical_reports/2009/OP_2009.02.pdfFigura 1 – Diagrama de flujo del programa de adquisición ... incoherentes

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

Page 16: PROGRAMA DE ADQUISICIÓN PARA LOS RECEPTORES …jro.igp.gob.pe/publications/tecnical_reports/2009/OP_2009.02.pdfFigura 1 – Diagrama de flujo del programa de adquisición ... incoherentes

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ó.

Page 17: PROGRAMA DE ADQUISICIÓN PARA LOS RECEPTORES …jro.igp.gob.pe/publications/tecnical_reports/2009/OP_2009.02.pdfFigura 1 – Diagrama de flujo del programa de adquisición ... incoherentes

17

BIBLIOGRAFÍA

Microsoft Corporation, Microsoft Visual C++, Run-Time Library Reference, 1995

Integrated Performance Primitives for Intel®Architecture Reference Manual (Ver. 3.0)

Page 18: PROGRAMA DE ADQUISICIÓN PARA LOS RECEPTORES …jro.igp.gob.pe/publications/tecnical_reports/2009/OP_2009.02.pdfFigura 1 – Diagrama de flujo del programa de adquisición ... incoherentes

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.