Main Software

 

LIbero Project Manager version 9.1, 
The funcitonality of the system as been diveded in several modules, Within each module there are blocks 
that are responsible for controlling the corresponding function
Mode control. As its name stands control the mode in which the experiment will work, the two possible modes are
TEST and FLIGHT. When the experiment is in TEST mode this module interprate the commands sent through the UART and 
when in FLIGHT mode start a preprogramed time events. 
Data output Modules. The control of ADCs and MUXs is need as all the sensors on board provide analoge outputs. Once
the outputs have been sorted out it is possible record the data in the MEMORY or readout directly in a simple terminal. 
Once the memory has been written it can be read, write, erase and rewind.
Localization modules. even if there is 3 units in the localization system, only two of them are controled by the main FPGA. 
These are the GPS and the STX2 transmitter. For both of them there are specific modules that contains the needed process to
start their funcitonality. Such as format the position received by the GPS, i.e. GGA messages for beacon or hexadecimal for STX2,
or when start the transmission of messages to the satelite. 
Motor. This module consist in two main blocks. One is in charge to read out the data obtained by the four gyros onboard and set the spin rate
and the other one is the motor driver, i.e. controls the windings of the motor according to the predefined settings for the motor, such
as step lenght and direction.
External communication. The SQuid experiment communicates with the external world with two channels, one the so called umbilical connector 
which is the interface between the RMU and the FFU and allows the UART communication to/from the RXSM, with a data baudrate of 38400 
and the second channel is a 25-pin connector located in the upper part of the south face of the eBox, this connector contains the two UART lines and its data baudrate is
faster, 115200. 
Switching FPGA. As mention previously the SQUID system is the group of three FPGAs. So the FPGA has the module to interprete
the function to switch between them and still be able to be fully communicate by the two available channales. Is worth to note
that the dafault FPGA when the communication is through the umbilical connector is the Main FPGA and when the communication is 
through the 25-pin connector the default FPGA is the Uniprobe. Therefore the importance to command the switching.  

The FPGA software is developed in the Hardware description language VHDL. Since the FPGA is from an Actel family, all the coding, synthesis and compilation are done with the LIbero Project Manager version 9.1.

VHDL modules

The functionality of the main system has been diveded in several modules, within each module there are blocks that are responsible for controlling the corresponding function

Clock Handling.   There is  special module for generating clocks since different units need special timing. The base clock is 32.768 MHz and it generate clocks up to 1 Hz. Thanks to the use of a PLL core from Actel library is possible to generate the several UART clocks needed for the different units that use UART.

Mode control. As its name stands control the mode in which the experiment will work, the two possible modes are TEST and FLIGHT. When the experiment is in TEST mode this module interprate the commands sent through the UART and when in FLIGHT mode start a preprogrammed sequence of events. 

Data output Modules. The control of ADCs and MUXs is need as all the sensors on board provide analoge outputs. Once the outputs have been sorted out it is possible record the data in the MEMORY or readout directly in a simple terminal. Once the memory has been written it can be read, write, erase and rewind.

Localization modules. Even if there is three units in the localization system, only two of them are controlled by the main FPGA. These are the GPS and the STX2 transmitter. For both of them there are specific modules that contains the needed process to start their functionality. Such as format the position received by the GPS, i.e. GGA messages for beacon or hexadecimal for STX2, or when start the transmission of messages to the satellite. 

Motor. This module consist in two main blocks. One is in charge to read out the data obtained by the four gyros on board and set the spin rate and the other one is the motor driver, i.e. controls the windings of the motor according to the predefined settings for the motor, such as step length and direction.

External communication. The eBox communicates with the external world with two channels, one the so called umbilical connector which is the interface between the RMU and the FFU and allows the UART communication to/from the RXSM, with a data baudrate of 38400 and the second channel is a 25-pin connector located in the upper part of the south face of the eBox, which allows a easy access to it, this connector contains the two UART lines and its data baud rate is faster, 115200. Thus the FPGA is able to control and use both datarate outputs according to the channel chosen.

Switching FPGA. As mention previously the SQUID system is the group of three FPGAs. So the FPGA has the module to interpret the function to switch between them and still be able to be fully communicate by the two available channels. Is worth to note that the default FPGA when the communication is through the umbilical connector is the Main FPGA and when the communication is through the 25-pin connector the default FPGA is the Uniprobe. Therefore the importance to command the switching.  

Actel cores. Among the benefits of Actel is to provide a catalog with a variety of cores. The cores used were Static PLL, Soft FIFO controller with memory and FlashROM.

Tools

The list of tools used to accomplish the main software development and its function as follow.

  • HDL editor: Used to write and check the VHDL source file.
  • ViewDraw: Used to create symbols and graphical schematic designs. As the schematic is set as root it becomes the main source file to be processed. 
  • Synplify Pro: Used to synthesize the design
  • Actel Designer Software: used to Place and Route, i.e. compile the design, run the layout and generate the programming file for the FPGA.
  • FlashPro: Used to program a single device or several. This programming system is a combination of Actel FlashPro software and a hardware programmer. Using this programmer is very convenient for the SQUID system because a single JTAG chain can be used for all JTAG devices.
  • Tera Term Pro: Terminal emulator to debug UART communication. 
  • AccessPort: Serial port used to debug UART communication