Εξετάστε το παράδειγμα μιας ηλεκτρονικής μονάδας ελέγχου (ECU) που χρησιμοποιεί παραδοσιακό στατικό ενσωματωμένο λογισμικό. Το Bootloader είναι ένα στοιχείο λογισμικού που χρησιμοποιείται τόσο για την εκκίνηση του κύριου λογισμικού ECU, συμπεριλαμβανομένης της αντιγραφής του λογισμικού στη μνήμη RAM, όσο και για την εκτέλεση οποιωνδήποτε ελέγχων στο λογισμικό πριν από την εκκίνηση. Ο bootloader είναι επίσης υπεύθυνος για την ενημέρωση λογισμικού, τη λήψη, τον έλεγχο και την εγγραφή του ενημερωμένου λογισμικού στη μνήμη, συνήθως μνήμη Flash. Ως εκ τούτου, ο όρος Flash Bootloader χρησιμοποιείται επίσης συνήθως.
Χρησιμοποιούνται οι ίδιοι bootloader στην ανάπτυξη και την παραγωγή;
Συνήθως, ο ίδιος φορτωτής εκκίνησης μπορεί να χρησιμοποιηθεί στην ανάπτυξη οχημάτων και των σχετικών ECU και στην κανονική παραγωγή, με προστασία για να διασφαλιστεί ότι οι ECU παραγωγής έχουν πολλές δυνατότητες ανάπτυξης ή ότι οι μηχανικοί φορτωτές εκκίνησης απενεργοποιούνται. Κατά την ανάπτυξη οχημάτων είναι συχνά επιθυμητό να καταργηθούν οι μηχανισμοί ασφαλείας των bootloader παραγωγής για να καταστεί δυνατή η ταχεία ανάπτυξη λογισμικού ανάπτυξης.
Ασφαλής φορτωτής εκκίνησης
Όλο και περισσότερο όλοι οι bootloader πρέπει να είναι ασφαλείς. Ωστόσο, παραδοσιακά αυτή ήταν μια διάκριση, που συνήθως εφαρμόζεται για την προστασία λειτουργιών που σχετίζονται με την ασφάλεια, την ασφάλεια και μερικές φορές την απόδοση.
Οι bootloader συνήθως ελέγχουν τη μνήμη λογισμικού του ECU κατά την εκκίνηση και λαμβάνουν λογισμικό πριν από μια ενημέρωση λογισμικού και στη μνήμη μετά.
Οι μηχανισμοί συνήθως περιλαμβάνουν:
- Έλεγχος ταυτότητας του λογισμικού που λαμβάνεται ή/και υπάρχει στη μνήμη κατά την εκκίνηση, συχνά χρησιμοποιώντας ένα κατακερματισμό του δυαδικού λογισμικού για τον έλεγχο της ορθότητας που δημιουργείται από μια ασφαλή διαδικασία σύνταξης εκδόσεων λογισμικού που κυκλοφόρησαν επίσημα.
- Έλεγχος ταυτότητας του αποστολέα με χρήση σπόρου και κλειδιού, προστασία ασφαλών δεδομένων εντός του ECU χρησιμοποιώντας ασφαλή μνήμη και χάρτες μνήμης για τον καθορισμό προσβάσιμων/επανεγγράψιμων περιοχών.
Διπλός φορτωτής εκκίνησης
Ορισμένες υλοποιήσεις των bootloaders είναι σε δύο μέρη, εξ ου και ο όρος dual bootloader. Σε αυτήν την περίπτωση, ο κύριος φορτωτής εκκίνησης δεν μπορεί να ενημερωθεί, ως μέρος της εξασφάλισης του bootloader. Αυτό αφορά την εκκίνηση της μονάδας και την ενημέρωση του δευτερεύοντος bootloader. Ο δευτερεύων φορτωτής εκκίνησης μπορεί να ενημερωθεί, μέσω μιας ασφαλούς διαδικασίας, επιτρέποντας τροποποιήσεις στη διαδικασία ενημέρωσης λογισμικού, για παράδειγμα, χάρτη μνήμης, επιτρέποντάς τους να κλειδωθούν κανονικά. Αυτός ο τύπος bootloader είναι λιγότερο συνηθισμένος τώρα λόγω νέων μεθόδων διασφάλισης της διαδικασίας ενημέρωσης χρησιμοποιώντας ενσωματωμένο ασφαλές υλικό, για παράδειγμα, HSM (Hardware Secure Module).
Σημειώστε ότι αυτός ο όρος είναι σαν διπλή εκκίνηση, όπου είναι διαθέσιμα μπλοκ δύο εκκίνησης ή πλήρεις μνήμες, επιτρέποντας μια ενημέρωση στην αχρησιμοποίητη έκδοση ενώ μια έκδοση είναι ενεργή. Αυτό απαιτεί επιπλέον μνήμη σε κάθε ECU που υποστηρίζει αυτήν τη μέθοδο ενημέρωσης.
Capital Embedded Bootloader
Capital Embedded Bootloader υποστηρίζει αξιόπιστες ενημερώσεις ECU κατά την ανάπτυξη, στην παραγωγή οχημάτων και κατά τη διάρκεια της ζωής του οχήματος, μέσω συνδεδεμένων διαγνωστικών εργαλείων ή μεθοδολογιών over-the-air. Το τυποποιημένο πρωτόκολλο ISO 14229 UDS χρησιμοποιείται σε μια σειρά κοινών διαύλων δικτύου οχημάτων, Ethernet, CAN/CAN-FD, LIN, FlexRay και είναι επίσης δυνατή η χρήση άλλων μεθόδων όπως τα πρωτόκολλα βαθμονόμησης ASAM. Η ασφάλεια στον κυβερνοχώρο αποτελεί βασική πτυχή της ροής ενημερώσεων λογισμικού και των λειτουργιών που επιτρέπουν τον έλεγχο ταυτότητας λογισμικού και οι επιλογές ασφαλούς εκκίνησης αποτελούν μέρος της λύσης. Για την ικανοποίηση ειδικών απαιτήσεων OEM (κατασκευαστές αρχικού εξοπλισμού) και MCU, διατίθεται ευρεία υποστήριξη για ένα ευρύ φάσμα έργων ECU.
Ποια είναι η διαφορά μεταξύ OTA και FOTA;
Η ενημέρωση OTA (over the air), ή FOTA (firmware over the air), είναι μια μέθοδος για την επίτευξη λήψης νέου λογισμικού για μια ενσωματωμένη συσκευή, για παράδειγμα, ECU αυτοκινήτου, με απομακρυσμένο τρόπο, όχι μέσω απευθείας συνδεδεμένου εργαλείου σέρβις σε ένα εργαστήριο. Αυτό μπορεί να απαιτεί κάποια ενσωματωμένη ικανότητα διαγνωστικού ελεγκτή σε ένα συντονιστικό ECU ή/και ικανότητες ανάκτησης και αυτοελέγχου στον ίδιο τον φορτωτή εκκίνησης.