-
Notifications
You must be signed in to change notification settings - Fork 9
Software Diagrams
All flowchart were made in yEd. The flowchart source files can be found here.
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:
![](https://github.com/floripasat/obdh/raw/master/images/flowcharts/OBDH_flowchart.png)
The boot setups the OBDH functionalities and restores the previous context after a reinitialization.
![](https://github.com/floripasat/obdh/raw/master/images/flowcharts/boot_flowchart.png)
Several hardware components are setuped here for their correct operation, such as watchdog timers, clocks, serial interfaces, ADC and some GPIOs.
![](https://github.com/floripasat/obdh/raw/master/images/flowcharts/setup_hardware_flowchart.png)
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.
![](https://github.com/floripasat/obdh/raw/master/images/flowcharts/update_reset_flowchart.png)
![](https://github.com/floripasat/obdh/raw/master/images/flowcharts/restore_time_counter_flowchart.png)
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.
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).
![](https://github.com/floripasat/obdh/raw/master/images/flowcharts/verify_deployment_status_flowchart.png)
![](https://github.com/floripasat/obdh/raw/master/images/flowcharts/hibernate_flowchart.png)
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.
![](https://github.com/floripasat/obdh/raw/master/images/flowcharts/deploy_antennas_flowchart.png)
![independent deploy](https://github.com/floripasat/obdh/raw/master/images/flowcharts/antennas_independent_deploy_flowchart.png)
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.
![](https://github.com/floripasat/obdh/raw/master/images/flowcharts/create_tasks_flowchart.png)
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.
![](https://github.com/floripasat/obdh/raw/master/images/flowcharts/housekeeping_task.png)
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.
![](https://github.com/floripasat/obdh/raw/master/images/flowcharts/store_data_task_flowchart.png)
![](https://github.com/floripasat/obdh/raw/master/images/flowcharts/read_and_pack_data_flowchart.png)
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.
![](https://github.com/floripasat/obdh/raw/master/images/flowcharts/eps_task_flowchart.png)
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.
![](https://github.com/floripasat/obdh/raw/master/images/flowcharts/beacon_task.png)
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.
![](https://github.com/floripasat/obdh/raw/master/images/flowcharts/link_task_flowchart.png)
![](https://github.com/floripasat/obdh/raw/master/images/flowcharts/execute_telecommand_flowchart.png)
Through this task, all the data acquired in the IMU is sent to queue for later storage in memory.
![](https://github.com/floripasat/obdh/raw/master/images/flowcharts/imu_task_flowchart.png)
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.
![](https://github.com/floripasat/obdh/raw/master/images/flowcharts/wdt_task_flowchart.png)