8. Propuesta y desarrollo del subsistema de control de orientación, basado
8.3 Diagrama de la tarjeta del Subsistema de Control de Orientación
El diagrama de la tarjeta del subsistema de control de orientación está integrado por tres bloques principales, donde se mantienen los dos primeros bloques, que son similares a los propuestos para la tarjeta SMIN. Estos bloques se describen enseguida.
8.3.1
Bloque de recepción, almacenamiento en memoria y
reconfiguración del FPGA
Este bloque integra un MCU (en nuestro caso un PIC de Microchip de bajo consumo) y una memoria Flash para el respaldo del bitstream de reconfiguración del FPGA. En esta ocasión se omitió el cristal como base de tiempo del MCU, ya que al realizar varias pruebas dentro de la tarjeta SMIN, concluimos que no afecta significativamente bajar la base de tiempo al utilizar el oscilador interno del MCU.
En este caso utilizamos el mismo firmware que fue validado para la tarjeta de SMIN. El
firmware se encuentra dividido en dos módulos, de los cuales a uno de ellos se le realizó una serie de cambios y adecuaciones para almacenar datos en una memoria Flash. Los módulos en los que se encuentra dividido el firmware se describen a continuación:
Módulo de recepción, transmisión y almacenamiento en memoria
Este módulo será el elemento responsable de recibir los comandos de control para seleccionar cada una de las tareas a ejecutar, al igual que recibir y transmitir en serie, el
bitstream de configuración que será cargado en el FPGA. Dentro de estos comandos de control se encuentran:
Almacena el bitstream en memoria
Al recibir este comando, el MCU recibe por el puerto serie el bitstream transmitido desde la estación terrena y a través del puerto SPI del MCU lo almacena en la memoria Flash.
Lee el bitstream de la memoria
Al recibir este comando el MCU comienza a extraer el bitstream almacenado en la memoria y lo transmite hacia la estación terrena a través del puerto serie.
Borra memoria
Al recibir este comando el MCU envía una trama de bits específica, con la cual se eliminan todos los datos almacenados en la memoria.
Módulo de reconfiguración del FPGA
Este módulo extrae el bitstream almacenado en la memoria y posteriormente ejecuta el proceso de reconfiguración del FPGA.
8.3.2
Bloque de acondicionamiento y potencia
Este bloque se encuentra dividido en 2 etapas, de igual forma que en la tarjeta SMIN. Las funciones que desempeña abarcan desde el suministro de energía eléctrica necesaria para el funcionamiento de los dispositivos que componen al sistema, hasta el acondicionamiento de los niveles de voltaje lógicos entre dispositivos. A continuación se presenta la descripción de cada una de las etapas que integran a este bloque.
Potencia
La etapa de potencia está compuesta por cuatro reguladores de voltaje. Dichos dispositivos suministran energía eléctrica a los niveles requeridos, a todos los dispositivos dentro de la
tarjeta. La finalidad de integrar estos reguladores permitirá operar a la tarjeta como un sistema independiente de SATEDU. Los niveles de voltaje que suministra este módulo son 5V, 3.3V, 2.5V y 1.2V; el regulador de 5V tiene la función de ajustar el voltaje suministrado por una fuente externa al operar fuera de SATEDU, para después distribuirlo a los demás reguladores.
Tanto el MCU como la memoria Flash utilizadas operarán a un nivel de voltaje de 3.3V, por lo que es necesario hacer uso de un regulador de 3.3V, el cual suministrará la potencia necesaria para el buen funcionamiento de estos dispositivos.
Los FPGAs de la familia Spartan 3E operan con tres niveles de voltaje principales VCCINT,
VCCAUX y VCCO donde:
Las terminales VCCINT están designadas para la alimentación de la lógica del núcleo
interno del FPGA, estas terminales utilizan un voltaje nominal de 1.2V. Además, son la fuente de alimentación de todas las funciones lógicas tales como CLBs, Bloques de RAM y multiplexores.
Las terminales VCCAUX están designadas para la alimentación auxiliar, estas terminales
utilizan un voltaje nominal de 2.5V. Suministran energía a los DCMs, controladores diferenciales, pines dedicados para configuración y para la interfaz JTAG.
Las terminales VCCO están designadas para la alimentación de los IOBs de cada banco,
estas terminales son energizadas con un voltaje de 3.3V, para ofrecer compatibilidad con los dispositivos externos con los cuales interactúa.
Acondicionamiento
La etapa de acondicionamiento se divide en dos secciones, las cuales resuelven los problemas de acoplamiento de señales entre estación terrena y el MCU, y entre el MCU y el FPGA. La primera sección estará formada por un transceptor, el cual es utilizado para acondicionar el nivel de voltaje de las señales de comunicación entre el MCU y la PC de la estación terrena. La segunda etapa estará formada por una serie de resistencias, las cuales se encargarán de acondicionar la impedancia de las señales de configuración que se conectan entre el MCU y el FPGA.
8.3.3
Bloque de adquisición, procesamiento y generación de
comandos (BAPGC)
El BAPGC se encuentra integrado en una arquitectura de cómputo embebida, la cual está dividida en tres módulos principales. En dicha arquitectura algunos de sus componentes se encuentran descritos como bloques en hardware (núcleos IP), mientras que la lógica de control, controladores de los núcleos, comunicación con dispositivos externos así como la
comunicación entre los mismos módulos y algunas operaciones aritméticas internas se encuentran desarrolladas en software.
Los núcleos IP fueron desarrollados utilizando la suite ISE en lenguaje VHDL y simulados previamente dentro de bancos de prueba, en tanto que las secciones de software fueron diseñadas utilizando el compilador en C integrado en el ambiente de desarrollo EDK, dentro de un procesador Microblaze de 32 bits y arquitectura RISC, donde se integra finalmente tanto el hardware como el software en un sistema embebido para la plataforma FPGA.
Los módulos en los cuales se encuentra dividido este bloque se describen a continuación:
Módulo de adquisición de datos
Este módulo se encarga de adquirir la información de cada uno de los sensores de navegación y/o de otros dispositivos externos. Todo el proceso de adquisición de datos se encuentra descrito en hardware, desarrollando en software la interfaz I2C para comunicación con la IMU y la comunicación con el módulo de procesamiento de datos.
Módulo de procesamiento de datos
Este módulo se encarga de realizar etapas de preprocesamiento y procesamiento de datos, ya sea para la obtención de la señal de compás magnético en esquemas de control de orientación en un eje, o bien, para la integración de bloques de algoritmos para la determinación de la orientación en esquemas de control en tres ejes. Gran parte del módulo se encuentra descrito en hardware, particularmente operaciones aritméticas matriciales de uso recurrente en varias partes de los algoritmos de control, lo cual implica un ahorro de recursos, utilizando el principio de reutilización de código en bloques. También hay parte del módulo que se resuelve en software, básicamente operaciones aritméticas que no requieran gran cantidad de recursos así como la lógica de control para la transferencia de datos con bloques adyacentes como sensores y generación de comandos.
Módulo de generación de comandos
Este módulo se encarga de generar las señales de control hacia los actuadores, con base en las señales resultantes del esquema de control generado en el módulo anterior. Se encuentra descrito en hardware con interfaces en software para su manejo y lógica de control por parte del microprocesador.