Contador de pulsos nucleares para uso espacial
Tropea, S. E.(i); Cibils, R. M.(ii) (i)INTI-Electrónica e Informática (ii)INVAP S.E.
Introducción En este trabajo presentamos el desarrollo de un contador de pulsos nucleares correspondiente al flujo de neutrones en un reactor nuclear. Dicho flujo está relacionado con la potencia generada por el reactor, y los parámetros calculados a partir del mismo son usados en el control y apagado de emergencia de dicho reactor. El resultado del conteo puede ser leído por un microcontrolador utilizando el estándar de interconexión WISHBONE[1].
Este desarrollo forma parte de un proyecto en el que intervienen la empresa argentina INVAP S.E.[2] y la Agencia Espacial Norteamericana (NASA[3]). El proyecto apunta al desarrollo de un sistema de seguridad y control de reactores calificado para operar en las agresivas condiciones del espacio. Esto permitiría el uso de un reactor nuclear como fuente de energía, y aun como propulsión, para misiones a los planetas más alejados del sistema solar.
Tanto el campo aeroespacial como el nuclear son muy delicados debido a los altos estándares de seguridad y a la necesidad de que los componentes funcionen en un ambiente hostil, sujeto a radiaciones, vibraciones, temperaturas extremas, etc. En este caso ambos campos se conjugan para dar lugar a un escenario singular.
El objetivo principal de este desarrollo fue el de implementar un contador de pulsos nucleares, bajo la especificación de INVAP S.E., que pudiera ser usado tanto en FPGAs (Field Programmable Gate Arrays = Arreglo de Compuertas Programable en Campo) estándares, para su verificación inicial, como así también en FPGAs usadas para aplicaciones aeroespaciales[4].
Como objetivo particular el cliente exigía que este periférico no ocupara más del 8% del área disponible en una FPGA Spartan II[5] 200 (XC2S200-6).
Metodología La medición de la potencia entregada por el reactor es llevada a cabo por un Wide Range Neutron Flux Measuring Channel (Canal de Medición del Flujo Neutrónico de Amplio Rango) desarrollado por INVAP S.E.. Este sistema es una versión completamente digital del medidor utilizado por INVAP S.E. en el reactor OPAL (Open Pool Advanced Light-water) instalado en Australia. Las características particulares de una aplicación aeroespacial motivaron este desarrollo completamente digital.
Para el procesamiento de la señal proveniente del detector de fisión INVAP S.E. desarrolló un sistema procesador de señales basado en FPGAs.
Las FPGAs son circuitos integrados reconfigurables y son los miembros más avanzados de la familia de circuitos lógicos programables. Una FPGA está compuesta por lógica combinacional, registros y mecanismos de interconexión para unir estos dos últimos. Todos estos recursos son reconfigurables de manera tal que se puede modificar el funcionamiento para que se ajuste a nuestras necesidades. Estos elementos se complementan con celdas de entrada y salida que permiten conectar nuestro circuito con el exterior.
Las FPGAs presentan una alternativa muy interesante cuando es necesario desarrollar un circuito integrado a medida. Los circuitos integrados realizados a medida poseen costos muy elevados y sólo se justifican cuando el volumen de producción supera las decenas de miles. Esto es válido aún para los ASIC (Application Specific Integrated Circuit = Circuito Integrado de Aplicación Específica) que utilizan técnicas de fabricación de las conocidas como semi-custom en las que sólo una parte del proceso es específico del cliente y el resto son estándares. Cuando los volúmenes de producción son pequeños las FPGAs aparecen como una excelente alternativa. Las mismas no poseen grandes gastos iniciales o del tipo NRE (Non-Recurring Engineering) como en el
INSTITUTO NACIONAL DE TECNOLOGÍA INDUSTRIAL
1
caso de los ASICs. Por otra parte si se detectara un error en el diseño, o fuera necesario introducir otro tipo de cambio o mejora, las FPGAs pueden reconfigurarse sin ser necesario reemplazar el circuito integrado. Como contrapartida el costo por unidad de las FPGAs es superior, su velocidad es inferior y el consumo de energía es mayor cuando se las compara con los ASICs.
Dentro de una FPGA se puede incluir la funcionalidad de varios circuitos integrados. Esta funcionalidad puede ser desarrollada por el mismo equipo de trabajo o adquirida a través de un tercero. Debido a que estas funcionalidades son como componentes electrónicos, pero sin su parte física, se los suele llamar componentes virtuales. En la industria se los conoce como bloques de propiedad intelectual o IP cores.
El desarrollo de un IP core para una FPGA es muy similar al de un ASIC. En el caso de la FPGA el proceso se encuentra simplificado gracias a que nuestro circuito utilizará recursos ya probados y algo sobredimensionados. Este diseño se realiza utilizando lo que se conoce como lenguajes de descripción de hardware. Los mismos tienen cierto parecido con los lenguajes de programación de computadoras pero poseen diferencias conceptuales muy importantes. No se trata de programar un dispositivo sino de describir el comportamiento del mismo. Luego la descripción se convierte en una configuración para la FPGA utilizando herramientas de síntesis.
En nuestro desarrollo utilizamos el lenguaje de descripción de hardware VHDL (Very high speed integrated circuit Hardware Description Language = Lenguaje de Descripción de Hardware para Circuitos Integrados de Muy Alta Velocidad). Se trata de un lenguaje muy utilizado por agencias gubernamentales y en el área aeroespacial. El mismo fue originalmente desarrollado por el Departamento de Defensa Norteamericano y hoy se encuentra estandarizado por la IEEE (normas 1076, 1164 y accesorias).
Las FPGAs forman parte del módulo de procesamiento de señales que se complementa con un procesador principal, recursos de entrada/salida y un sistema de comunicación con la computadora de abordo. Este conjunto se encuentra replicado tres veces por razones de seguridad (ver Fig. 1). Las decisiones son tomadas en base a un sistema de votación.
Fig. 1: Sistema con triple redundancia y votación.
El sistema desarrollado por INVAP S.E. utiliza el contador de pulsos, motivo de este trabajo, para la medición de flujos bajos junto con un cálculo estadístico para flujos altos. Esta última tarea utiliza un IP core para el cálculo de la varianza[6], también desarrollado por nuestro equipo. Los datos provenientes de ambos canales de medición son procesados utilizando un microcontrolador[7][8], que también fue desarrollado por nuestro equipo. En base a las mediciones realizadas por dicho procesador el sistema determina si es necesario activar la señal de parada de emergencia (trip). La comunicación con el procesador principal es llevada a cabo por un segundo microcontrolador del mismo tipo al antes mencionado. En la Fig. 2 se ilustra un diagrama en bloques simplificado de los IP cores antes mencionados. DSP es el microcontrolador utilizado para el procesamiento de la señal y COM PROC el procesador utilizado para la comunicación con el procesador principal.
Fig. 2: Diagrama en bloques del procesamiento de señales implementado en las FPGAs.
INSTITUTO NACIONAL DE TECNOLOGÍA INDUSTRIAL
2
Se desarrolló una máquina de estados que implementara el algoritmo propuesto por el cliente y luego se procedió a la implementación del contador especificado utilizando lenguaje VHDL estándar. Las verificaciones se llevaron a cabo utilizando un banco de pruebas también desarrollado en lenguaje VHDL.
Las herramientas de desarrollo utilizadas fueron las recomendadas por el proyecto FPGALibre[9][10][11] impulsado por nuestro laboratorio. Para este desarrollo se utilizaron estaciones de trabajo que corren Debian[12] GNU[13]/Linux.
Resultados Se obtuvo una descripción de un periférico capaz de realizar el conteo de los pulsos nucleares de acuerdo con la especificación del cliente, escrito en VHDL estándar, y por lo tanto útil para ser utilizado con cualquier FPGA.
El área ocupada por el periférico fue de 124 slices lo que corresponde al 5,27 % de la FPGA antes mencionada.
Tanto este IP core como los otros desarrollados por nuestro equipo de trabajo fueron integrados en el sistema desarrollado por INVAP S.E. y recientemente probados en un prototipo utilizando el reactor RA6 (CNEA) ubicado en el predio del Centro Atómico Bariloche en la provincia de Río Negro.
Conclusiones El periférico realizado logró cumplir con los objetivos establecidos.
La utilización de FPGAs permitió la integración de un número importante de componentes en un espacio pequeño. También permitió la incorporación de componentes realizados a medida y no necesariamente provenientes de un mismo proveedor.
El uso de FPGAs específicamente diseñadas para ser usadas en ambientes con radiación permitió dejar de lado las preocupaciones asociadas con esta problemática.
La utilización de VHDL estándar permitió que la descripción de hardware pudiera ser sintetizada para FPGAs de Actel aún cuando se desarrolló utilizando FPGAs de Xilinx.
La utilización de las herramientas propuestas por el proyecto FPGALibre mostró ser adecuada para este desarrollo.
Referencias
[1] Silicore and OpenCores.Org, "WISHBONE System-on-Chip (SoC) Interconnection Architecture for Portable IP Cores", http://prdownloads.sourceforge.net/fpgalibre/wbspec\_b32.pdf?download [2] INVAP S. E., http://www.invap.net/ [3] National Aeronautics and Space Administration, http://www.nasa.gov/ [4] Actel Corporation, http://www.actel.com/ [5] Xilinx Spartan II FPGA, http://www.xilinx.com/products/silicon\_solutions/fpgas/sparta n\_series/spartan2\_fpgas/index.htm [6] S. E. Tropea, "Periférico para el cálculo de la varianza de una señal, descripción de hardware", 6° Jornadas de Desarrollo e Innovación Tecnológica, Instituto Nacional de Tecnología Industrial, Argentina, 2007. [7] S. E. Tropea, J. P. D. Borgna, "Microcontrolador compatible con PIC16C84, bus Wishbone y video", FPGA Based Systems, ISBN 84-609-8998-4, 2006. [8] S. E. Tropea, "Microntrolador compatible con PIC 16C84, descripción de hardware", 6° Jornadas de Desarrollo e Innovación Tecnológica, Instituto Nacional de Tecnología Industrial, Argentina, 2007. [9] S. E. Tropea, D. J. Brengi, J. P. D. Borgna, "FPGALibre: Herramientas de Software Libre para diseño con FPGAs", FPGA Based Systems, ISBN 84-609-8998-4, pp 173-180, 2006. [10] S. E. Tropea, D. J. Brengi, J. P. D. Borgna, S. N. Gwirc, "FPGALibre: Herramientas de Software Libre para diseño con FPGAs", 6° Jornadas de Desarrollo e Innovación Tecnológica, Instituto Nacional de Tecnología Industrial, Argentina, 2007. [11] Proyecto FPGA Libre, http://fpgalibre.sourceforge.net/ [12] Debian project, http://www.debian.org/ [13] GNU project, http://www.gnu.org/
Para mayor información contactarse con:
Ing. Salvador E. Tropea - salvador@inti.gov.ar
INSTITUTO NACIONAL DE TECNOLOGÍA INDUSTRIAL
3
Ver+/-