Ο On-Board Computer (OBC — “Υπολογιστής Επί Σκάφους”) είναι υπεύθυνος για τη διαχείριση όλων των λειτουργιών του δορυφόρου. Είναι αρμόδιος για όλες τις αυτόνομες λειτουργίες του, για την επεξεργασία των λαμβανόμενων εντολών, και το χειρισμό κάθε είδους δεδομένων. Για να το πετύχει αυτό, χρησιμοποιεί ολοκληρωμένα κυκλώματα που ονομάζονται μικροελεγκτές, και προγραμματίζονται από την ομάδα μας ώστε να συντονίζουν αυτόματα και αξιόπιστα όλα τα υποσυστήματα για πολλούς μήνες, παρά τις αντίξοες συνθήκες του διαστήματος. Μεταξύ άλλων, το OBC είναι υπεύθυνο για:

  • Λήψη περιοδικών δεδομένων τηλεμετρίας
  • Επεξεργασία και χειρισμό λαμβανόμενων δεδομένων τηλεχειρισμού
  • Ανταπόκριση σε συμβάντα στο δορυφόρο
  • Εκτέλεση προγραμματισμένων εντολών
  • Δοκιμή και χειρισμό σφαλμάτων και αναπάντεχων περιστατικών
  • Πραγματοποίηση ελέγχων καλής λειτουργίας
  • Μεταφορά δεδομένων μεταξύ υποσυστημάτων
  • Μεταφορά σε Ασφαλή Λειτουργία (Safe Mode) σε περίπτωση κρίσιμης βλάβης

Ο σχεδιασμός του OBC βασίζεται σε έναν μικροελεγκτή αρχιτεκτονικής ARM Cortex-M4. Μαζί με αυτόν, τα περιφερειακά που απαρτίζουν το υποσύστημα είναι:

  • MCU: STMicroelectronics STM32L4S9ZIT6 (640 kB RAM, 2 MB ROM)
  • RAM: Everspin Technologies MR4A08BUYS45 (2 MB)
  • NAND Flash: ISSI IS37SML01G1-MLI (128 MB)
  • Πομποδέκτες του πρωτοκόλλου CAN bus, για επικοινωνία μεταξύ υποσυστημάτων
  • Τάση εισόδου: 3.3V

Ένα κύκλωμα παρακολούθησης watchdog (ISL88705IB846Z) εξασφαλίζει τη διηνεκή λειτουργία του μικροελεγκτή, επανεκκινώντας τον σε περίπτωση μη-ανταποκρισιμότητάς του. Επιπλέον, μία μόνιμη μνήμη 8 GB μορφής NAND Flash βρίσκεται στο πεπιεσμένο δοχείο του Science Unit για αποθήκευση των δεδομένων του πειράματος.

Όλο το λογισμικό που γράφεται για το διάστημα επιθεωρείται, δοκιμάζεται και ελέγχεται εκτενώς, με βάση διεθνή πρότυπα και συστάσεις. Κατασκευάζουμε λογισμικό ανοιχτού κώδικα που βασίζεται σε ανοιχτές λύσεις & βιβλιοθήκες, κάνοντας έτσι ευκολότερο για τον καθένα να δοκιμάσει και να εμπλουτίσει ο ίδιος τον υπάρχοντα κώδικα, με μηδενικό κόστος. Μερικά χαρακτηριστικά της εργασίας μας είναι:

Το λογισμικό που συνθέτει η υποομάδα του OBC είναι ανοιχτού κώδικα, και μπορεί να βρεθεί στις εξής τοποθεσίες:

  • ecss-services: Μία υλοποίηση του προτύπου ECSS-E-ST-70-41C σε C++
  • obc-pcb: Σχεδιασμός των τυπωμένων πλακετών του OBC, στο πρόγραμμα KiCad EDA
  • obc-software: Κύριο λογισμικό του μικροελεγκτή του υποσυστήματος, βασισμένο σε FreeRTOS
  • stm32-component-drivers: Βιβλιοθήκες και κώδικας υποστήριξης για διάφορα περιφερειακά, για χρήση με μικροελεγκτές STM32
  • mockup-4 and mockup-support: Ο πλήρης κώδικας που χρησιμοποιείται στα mockup της ομάδας
On-Board Computer PCB

Ένα δοκιμαστικό μοντέλο της πλακέτας του OBC, σχεδιασμένο από μέλη της υποομάδας και συναρμολογημένο από την Prisma Electronics

Screenshot of kcachegrind

Μελέτη ταχύτητας και ιστορικού κλήσης συναρτήσεων του κώδικα του OBC, χρησιμοποιώντας το KCachegrind