Desarrollo de un coprocesador para el espacio

Abstract

Este Trabajo Fin de Grado relata el proceso de aprendizaje y experimentación del desarrollo de un coprocesador para el espacio y su posterior integración en una FPGA. En una misión espacial puede haber una gran cantidad de fallos. En este TFG nos hemos centrado en el fallo que puede provocar la radiación sobre un elemento electrónico del sistema, que podría corresponder a una función crítica del sistema, como, por ejemplo, el cálculo de la trayectoria del satélite, los datos que recibe el satélite, los datos que emite el satélite, etc. Esta radiación sobre un elemento electrónico puede hacer variar un bit de una memoria, de la entrada o salida de un procesador, lo que supone pasar del valor 0 al valor 1, o viceversa, variando por completo los cálculos realizados, pudiendo producirse un error fatal. Para resolver este tipo de fallos, generalmente se redundan los elementos críticos, y se implementa un sistema de votación que se encarga de determinar el resultado correcto al comparar la salida de los elementos redundantes. En este TFG se han implementado un coprocesador de cifrado redundante, formado por tres cores de cifrados equivalentes, y un mecanismo de votación. Dado que no es posible generar un fallo provocado por la radiación, para inducir este tipo de fallos, se ha añadido a uno de los cores de cifrado (el tercero) una opción para alterar un bit del campo de datos a cifrar, que puede afectar al proceso de cifrado o descifrado. Este cambio en los datos de entrada provocará un cambio significativo en la salida debido al efecto avalancha. El sistema de votación implementado garantiza siempre el resultado correcto, a pesar de que se haya producido el fallo. Para la correcta validación del coprocesador, se ha integrado el coprocesador como periférico de un sistema basado en el procesador ARM, dentro de una FPGA, de modo que a partir de un programa ejecutado en el procesador ARM se pueden mandar los datos a cifrar al coprocesador, elegir el modo de funcionamiento (cifrar o descifrar), provocar el fallo en el tercer core, y obtener el resultado, tanto del coprocesador tras la votación, como de los diferentes cores de cifrado que lo conforman. Los resultados obtenidos han permitido comprobar el correcto funcionamiento del coprocesador en un sistema hardware real basado en FPGA

    Similar works