Luați în considerare exemplul unei unități de control electronic (ECU) care utilizează software tradițional încorporat static. Bootloader este o componentă software utilizată atât pentru a iniția pornirea software-ului principal ECU, inclusiv copierea software-ului în RAM, cât și pentru a efectua orice verificări ale software-ului înainte de pornire. Bootloader-ul este, de asemenea, responsabil pentru actualizarea software-ului, primirea, verificarea și scrierea software-ului actualizat în memorie, de obicei memoria Flash. Prin urmare, termenul Flash Bootloader este, de asemenea, utilizat în mod obișnuit.
Sunt aceleași bootloadere utilizate în dezvoltare și producție?
În mod obișnuit, același bootloader poate fi utilizat în dezvoltarea vehiculelor și a ECU-urilor asociate și în producția normală, cu măsuri de protecție pentru a se asigura că ECU de producție au multe capacități de dezvoltare sau dezactivate încărcătoarele de inginerie. În timpul dezvoltării vehiculelor, este adesea de dorit eliminarea mecanismelor de securitate ale încărcătoarelor de producție pentru a permite implementarea rapidă a software-ului de dezvoltare.
Bootloader securizat
Din ce în ce mai mult, toți bootloaderii trebuie să fie siguri. Cu toate acestea, în mod tradițional, aceasta a fost o distincție, de obicei implementată pentru a proteja funcționalitatea legată de securitate, siguranță și uneori performanță.
Bootloaderii verifică în mod obișnuit memoria software a ECU la pornire și au primit software-ul înainte de o actualizare software și în memorie după.
Mecanismele includ în mod obișnuit:
- Autentificarea software-ului primit și/sau prezent în memorie la momentul pornirii, adesea folosind un hash al binarului software pentru a verifica corectitudinea generată dintr-un proces securizat de compilare a versiunilor software lansate oficial.
- Autentificarea expeditorului folosind un seed și o cheie, protecția datelor securizate în ECU folosind memorie securizată și hărți de memorie pentru a defini zone accesibile/rescribile.
Bootloader dual
Unele implementări ale bootloaderelor sunt în două părți, de unde și termenul dual bootloader. În acest caz, bootloader-ul principal nu poate fi actualizat, ca parte a securizării bootloader-ului. Aceasta se referă la pornirea modulului și actualizarea bootloader-ului secundar. Bootloader-ul secundar poate fi actualizat, printr-un proces securizat, permițând modificări ale procesului de actualizare a software-ului, de exemplu, harta de memorie, permițând ca acestea să fie blocate în mod normal. Acest tip de bootloader este mai puțin frecvent acum datorită noilor metode de securizare a procesului de actualizare utilizând hardware securizat la bord, de exemplu, HSM (Hardware Secure Module).
Rețineți, acest termen este ca boot-ul dual, unde sunt disponibile blocuri cu două porturi sau memorii complete, permițând o actualizare să aibă loc pe versiunea neutilizată în timp ce o versiune este activă. Acest lucru necesită memorie suplimentară în fiecare ECU care acceptă această metodă de actualizare.
Capital Embedded Bootloader
Capital Embedded Bootloader suportă actualizări ECU fiabile în timpul dezvoltării, în producția de vehicule și pe parcursul duratei de viață a vehiculului, prin instrumente de diagnosticare conectate sau metodologii over-the-air. Protocolul standardizat ISO 14229 UDS este utilizat pe o gamă de magistrale comune de rețea pentru vehicule, Ethernet, CAN/CAN-FD, LIN, FlexRay și este, de asemenea, posibil să se utilizeze alte metode, cum ar fi protocoalele de calibrare ASAM. Securitatea cibernetică este un aspect cheie al fluxului de actualizare software și caracteristicile care permit autentificarea software-ului, iar opțiunile de pornire securizată fac parte din soluție. Pentru a satisface cerințele specifice OEM (producătorii de echipamente originale) și MCU, este disponibil un suport larg pentru o gamă largă de proiecte ECU.
Care este diferența dintre OTA și FOTA?
Actualizarea OTA (over the air), sau FOTA (firmware over the air), este o metodă de obținere a recepției de software nou pentru un dispozitiv încorporat, de exemplu, ECU auto, într-un mod de la distanță, nu prin intermediul unui instrument de service conectat direct într-un atelier. Acest lucru poate necesita o anumită capacitate de testare de diagnosticare la bord într-un ECU coordonator și/sau abilități de recuperare și auto-testare în bootloader-ul propriu-zis.