Komputer pokładowy

Wszystkie podsystemy na pokładzie PW-Sat2 sterowane są przez komputer pokładowy (On-board Computer – OBC). OBC przetwarza telekomendy odebrane z Ziemi, monitoruje aktualny stan satelity, automatycznie wykonuje zaplanowane zadania oraz zbiera dane telemetryczne ze wszystkich podsystemów i obraz z kamer. Oparty jest o platformę CubeComputer V3 firmy CubeSpace, która bazuje na mikrokontrolerze EFM32 (ARM Cortex-M3). Dane przechowywane są w zewnętrznej pamięci Flash, która znajduje się na płytce Payload’u (PLD).

Komputer pokładowy CubeSpace CubeComputer V3

Komputer pokładowy CubeSpace CubeComputer V3

Płytka komputera pokładowego została zakupiona przez firmę FP Instruments z Gliwic.

FP Instruments

Oprogramowanie OBC jest otwarte!

Oprogramowanie OBC PW-Sat2 zostało opracowane przez pracowników firmy Future Processing z Gliwic.

Future Processing

Kod źródłowy jest otwarty i można go znaleźć na naszym profilu GitHub: Source code of the PW-Sat 2 On Board Computer (OBC) software. Zapraszamy do przeglądania!

Testy

Oprogramowanie komputera pokładowego jest skomplikowane i posiada wiele zależności. Jest ono oparte o system czasu rzeczywistego FreeRTOS. Odpowiedni stos testów oraz środowisko testowe umożliwiły wygodne testowanie oprogramowania przez cały czas pracy nad nim.

Środowisko testowe OBC PW-Sat2

Środowisko testowe OBC PW-Sat2

Testy jednostkowe zostały stworzone przy pomocy bibliotek GoogleTest i GoogleMock (z niewielkimi modyfikacjami). Dodatkowo część testów została stworzona przy pomocy biblioteki RapidCheck wspierającej technikę property-based testing. Regularne code review oraz continuous integration pomogły utrzymać wysoką jakość kodu przez cały okres rozwijania oprogramowania. Zestaw testów end-to-end (Python) pozwolił potwierdzić gotowość oprogramowania oraz wyeliminować trudno uchwytne błędy.

background

Budowa komputera pokładowego

OBC wyposażony jest w równoległą pamięcią Flash, StaticRAM oraz EEPROM. W pamięci Flash przechowywane są obrazy oprogramowania, których integralność sprawdzana jest przez bootloader, który to następnie ładuje sprawny obraz do wewnętrznej pamięci Flash mikrokontrolera EFM32. Jeśli wczytanie sprawnego obrazu oprogramowania nie będzie możliwe, to komputer pokładowy wczyta specjalny tryb pracy z pamięci EEPROM i podejmie próbę naprawy oprogramowania.

Integracja PW-Sat2 - OBC

Integracja PW-Sat2 – OBC

Natomiast pamięć StaticRAM przechowuje aktualne wyniki działania OBC. Jest ona zabezpieczona poprzez redundancję sprzętową, kod Hamminga (EDAC) realizowany przez FPGA oraz scrubbing realizowany przez oprogramowanie OBC.

Komputer pokładowy CubeSpace CubeComputer V3 - schemat blokowy

Komputer pokładowy CubeSpace CubeComputer V3 – schemat blokowy

Dane eksperymentów oraz historyczny stan (do ~36 godzin) satelity przechowywane są w pamięciach na PLD (zewnętrzne pamięci podłączone są do złącza Piggyback). Znajdują się tam trzy pamięci Flash o wielkości 16MB każda, jednak połączone są one w taki sposób, aby uzyskać potrójną redundancję. To właśnie na tej pamięci znajduje się system plików, który umożliwia zapisywanie i odczytywanie danych eksperymentów oraz obrazów z kamer. Dodatkowo na PLD znajdują się trzy pamięci FerroelectricRAM (FRAM) w układzie potrójnej redundancji, w której przechowywane są aktualne ustawienia oraz podstawowe informacje na temat funkcjonowania satelity.