Uno smartwatch di consumo che si guasta e corrompe i dati del contapassi è un fastidio. Una pompa per infusione medicale che si guasta erogando una dose letale di farmaco, o un sistema di frenata elettronica di un’auto che cede in autostrada, è una catastrofe.
Per colmare questa enorme disparità di rischio, il mondo dell’ingegneria si affida a norme di sicurezza formali. Le due più importanti sono il SIL (Safety Integrity Level), derivato dalla norma generale sulla sicurezza funzionale IEC 61508, e l’ASIL (Automotive Safety Integrity Level), derivato dalla norma specifica per l’automotive ISO 26262.
Comprendere e progettare un prodotto in modo che soddisfi questi livelli è una delle sfide intellettualmente più impegnative (e costose) dell’ingegneria hardware.
Cosa sono SIL e ASIL?
SIL e ASIL non sono certificazioni hardware fisiche; sono classificazioni di riduzione del rischio. Rispondono alla domanda: “Se questo specifico componente hardware o software si guasta, quanto è probabile che provochi la morte di una persona e, di conseguenza, quanto rigore matematico dobbiamo applicare per garantire che non si guasti mai?”
La classificazione ASIL (da A a D)
Nella norma automotive (ISO 26262), il rischio è valutato sulla base di tre fattori:
- Gravità (S): se si verifica un incidente a causa del guasto, quanto gravi sono le lesioni?
- Esposizione (E): con quale frequenza il veicolo si trova in una situazione in cui questo guasto potrebbe verificarsi?
- Controllabilità (C): il conducente può ragionevolmente evitare l’incidente se il guasto si verifica?
La combinazione di questi fattori crea una matrice che assegna un livello ASIL:
- QM (Quality Management): nessun rischio per la sicurezza (es. si rompe l’autoradio). Si applicano le pratiche ingegneristiche standard.
- ASIL A: rischio molto basso (es. smettono di funzionare le luci posteriori).
- ASIL B / C: rischio medio-alto (es. si blocca il quadro strumenti, sistemi avanzati di assistenza alla guida).
- ASIL D: rischio estremo, potenzialmente letale (es. si blocca il servosterzo elettronico, cedono i freni ABS).
Analogamente, la norma industriale (IEC 61508) utilizza i livelli da SIL 1 a SIL 4, dove SIL 4 è il più rigoroso (comunemente utilizzato nella segnalazione ferroviaria o nell’energia nucleare).
Progettare per ASIL-D / SIL 3
Se un architetto di Inovasense determina che una scheda di controllo deve soddisfare l’ASIL-D, l’intero processo di sviluppo V-Model cambia drasticamente rispetto all’elettronica di consumo.
- Ridondanza (elaborazione in lockstep): un sistema ASIL-D non può affidarsi a un singolo core MCU. Tipicamente imponiamo microcontrollori Dual-Core Lockstep (DCLS) (come l’NXP S32 o il TI Hercules). Questi chip possiedono fisicamente due core CPU identici che eseguono esattamente lo stesso codice, sfasati di un ciclo di clock. Un comparatore hardware localizzato verifica istantaneamente l’uscita di entrambi i core. Se un raggio cosmico inverte un bit in un core e le uscite divergono, l’hardware attiva immediatamente uno spegnimento sicuro (es. il rilascio del freno di stazionamento elettronico).
- Memoria ECC: ogni byte di RAM e Flash deve essere protetto da un codice di correzione degli errori (ECC) per rilevare e correggere matematicamente la corruzione della memoria in tempo reale.
- Tracciabilità: ogni singola riga di codice C/C++ deve risalire a un requisito software specifico e verificabile, che a sua volta risale a un requisito di sistema.
- Analisi dei modi e degli effetti dei guasti (FMEA/FMEDA): gli ingegneri modellano matematicamente ogni singolo resistore, condensatore e traccia di silicio sul PCB per calcolarne l’esatta probabilità di guasto in un arco di 10 anni, garantendo che il tasso totale di FIT (Failures In Time) dell’intera scheda rimanga al di sotto dei rigorosi limiti della norma.
Riferimenti ufficiali
- IEC 61508 — Sicurezza funzionale dei sistemi elettrici/elettronici/elettronici programmabili relativi alla sicurezza — IEC (framework SIL)
- ISO 26262 — Veicoli stradali: Sicurezza funzionale (ASIL) — ISO (framework ASIL)