Skip to content

Software Diagrams

Daniel Baron edited this page Aug 1, 2018 · 21 revisions

All flowchart were made in yEd. The flowchart source files can be found here.

Main

The abstract main flow of OBDH consists in make the boot, assure that the antennas are opened, create and start the OS tasks. This can be seen below:

Boot

The boot setups the OBDH functionalities and restores the previous context after a reinitialization.

Setup Hardware

Several hardware components are setuped here for their correct operation, such as watchdog timers, clocks, serial interfaces, ADC and some GPIOs.

Restore context

The time counter and reset information need to be retrieved for proper OBDH operation. This provides synchronism between the satellite and the ground station and a time print for the generated data.

Antenna deployment process

To deploy the antennas, some steps need to be made, such as a deployment status verification, a security hibernation time, and the deployment of the four antennas. It is important to note that this process ideally occur only once, i.e. after the hibernation time (45 minutes), the antennas must be deployed and the status verification should block the execution of these steps again.

Verify deployment status and hibernation

Hibernation will work to give a safety space between the FloripaSat satellite and the launching rocket with its payloads. On the other hand, the deployment verification will always run to ensure the correct antenna status (deployed or not).

Deployment sequence

The complete deployment consists to active the antenna opening sequence for 10 seconds. After this, to ensure the correct deployment even in adverse conditions, the OBDH execute another deploy activation for 20 seconds. So, with this two redundant deployments, all the antennas will be open and ready to communicate.

Tasks

Create tasks

Using the FreeRTOS, the tasks are created to include all the module functionalities. So, when the scheduler starts, the OBDH executes all these tasks synchronously considering periodicity and priority. Also, some message queues and mutexes are created to manage communications and shared resources between tasks.

Housekeeping

This task is responsible to keep the correct OBDH operation, such as monitoring the voltage and current of the board, reading fault flags, updating the status of some communications and updating the time counting.

Store data task

Considering the OBDH's main feature, storing data, this task manage the data flow and save all relevant data in the memory (SD Card). Then, this task needs to setup and verify the memory status, read data from the task's queues, use a mutex for the SPI (shared resource) communications with the memory.

EPS task

The interface with the EPS module is done through this task, which consists of reading data, updating the energy level, and sending this data to a queue.

Beacon task

This task interfaces the OBDH with the Beacon in the TTC module. The functions performed are: send data or a command to beacon's MCU.

Link task

The Link task perform several functions, being them: in case of a telecommand ("SHUTDOWN", "SEND DATA" or "PING"), decode and execute it, update the power mode and send the periodic data through the radio.

IMU task

Through this task, all the data acquired in the IMU is sent to queue for later storage in memory.

Watchdog timer task

This task ensures that the internal and external watchdog function properly, i.e. this guarantee that the OBDH will reset when a software deadlock happens.