Diseño e implementación de un enfoque software de tolerancia a fallos para aplicaciones - Fernández García, Juan Sebastián (2024)
En la actualidad, el desarrollo de tecnología espacial está creciendo exponencialmente debido a la posibilidad de implementar nanosatélites con dispositivos comerciales, ampliando su rango de servicios. Sin embargo, uno de los principales retos es la mitigación de los efectos de la radiación los circuitos electrónicos, conocidos como Efectos de Evento Único. De entre ellos, el cambio del estado de un bit en un registro de memoria (SEU) que esté siendo utilizado por una aplicación es crítico, ya que puede producir errores graves en el comportamiento del satélite. En este sentido el presente proyecto de titulación colabora con el proyecto de investigación “Desarrollo de un sistema de gestión de misión tolerante a fallos para un nanosatélite destinado a aplicaciones meteorológicas” mediante la implementación de un enfoque tolerante a fallos sobre la computadora de a bordo del satélite (OBC). La OBC seleccionada por el proyecto dispone de un sistema embebido on-chip de la familia SmartFussion2 que cuenta con lógica programable y un sistema microcontrolado basado en un Cortex M3. Esta arquitectura configurable facilita la implementación de componentes y algoritmos que desarrollen un sistema tolerante a fallos. En este sentido, el presente trabajo propone la implementación y validación de dos técnicas de tolerancia a fallos software: a) Punto de Guardado y Reinicio, y, b) Pares de Procesos. Ambas técnicas fueron implementadas sobre una aplicación meteorológica demostrativa ejecutada sobre el sistema operativo en tiempo real FreeRTOS. Durante el proceso de implementación se utilizó la metodología de codiseño hardware-software. Una vez implementadas las técnicas, se validó su funcionamiento a través de la inyección de fallas aleatorias cambiando el bit de un registro durante un tiempo de ejecución de la aplicación. Los resultados obtenidos fueron muy satisfactorios, logrando obtener un sistema tolerante incluso a fallas múltiples inyectadas de manera simultánea en registros asociados.