česky english Vítejte, dnes je čtvrtek 25. duben 2024

Funkční bezpečnost v automotivních systémech. Úvod do ISO 26262

DPS 5/2021 | Články
Autor: Ing. David Trojek, STMicroelectronics

Abstrakt

Cílem článku je přinést čtenářům úvod do oblasti funkční bezpečnosti a normy ISO26262, která řeší funkční bezpečnost elektrických a/nebo elektronických (E/E) systémů pro silniční vozidla. Norma se zabývá celým řetězcem od návrhu konceptu přes vývoj HW a SW až po nasazení zařízení do provozu. Samostatná kapitola v normě je věnována také polovodičovým součástkám. Co musí dnes obsahovat mikroprocesor, aby mohl být nasazen v automotivní elektronice?

obr- a tabulka (jpg)

Motivace

V letech 2005 a 2007 byly zaznamenané vážné dopravní nehody vozidel Toyota Camry model 2005 i se smrtelnými následky, kdy došlo k nekontrolovatelnému zrychlování vozidla, jakoby se zasekl plynový pedál a nešlo vozidlo zastavit. Podobné problémy se nevyhnuly ani jiným automobilkám. Případů bylo několik. Nejprve se příčina připisovala chybě řidiče, později mechanickým pedálům nebo koberečku pod pedálem. Skutečná příčina problému však byla úplně jinde.

graf (jpg)

Nehody v USA vyšetřovala NHTSA (National Highway Traffic Safety Administration), později ve spolupráci také s NASA (National Aeronautics and Space Administration). Původní závěry NHTSA z 8. 2. 2011, které nenalezly žádnou závadu v elektronice, byly revidovány a 24. 10. 2013 bylo před porotou na základě analýzy SW z jednotky prokázáno, že SW v řídicí jednotce ovládání plynu nebyl napsán robustně a náhodná změna v jediném bitu v paměti za běhu mohla způsobit nekontrolovatelné zrychlení vozidla.

Mezitím proběhlo několik soudů a Toyota musela zaplatit astronomické pokuty. Lze se domnívat, že ještě daleko větší náklady přineslo v letech 2009−2010 svolání více než 9 miliónů vozidel Toyota Camry a Toyota Corola do servisu na opravu, aby se předešlo dalším nehodám.

ISO 26262

Z celé situace vyvstaly dva úkoly: jak zajistit bezpečnější návrh řídicích jednotek (ECU) a jak zajistit, aby jediným plátcem pokut a náhrad nebyla samotná automobilka jako dodavatel výrobku, ale aby se případné náklady rozprostřely i na subjekty dodávající jednotlivé komponenty včetně SW až po výrobce polovodičových součástek.

Odpovědí byla norma ISO 26262:2011, která je oborovou aplikací IEC 61508 přizpůsobenou pro (E/E) systémy používané v silničních vozidlech. Existuje ČSN EN 61508 jako český překlad IEC 61508 (Funkční bezpečnost elektrických/ elektronických/programovatelných elektronických systémů souvisejících s bezpečností), ale samotná norma ISO 26262 do českého jazyka dosud nebyla převedena.

tabulka 1 (jpg)

Původně byla norma ISO 26262:2011 koncipována pro osobní vozidla, ale novela ISO26262:2018 byla rozšířena o kapitoly pro motocykly, autobusy a nákladní vozidla. Přibyla také samostatná kapitola pro výrobce polovodičových součástek.

Funkční bezpečnost

Bezpečnost lze definovat jako odstranění nepřijatelného rizika. Nároky na bezpečnost elektronických systémů se liší podle oblasti nasazení. Běžná spotřební elektronika zpravidla (s výjimkou přehřátí) nemá, jak způsobit nějaký úraz, pokud dojde k poruše. Výrobce polovodičových součástek pro tuto oblast zpravidla řeší jen spolehlivost. V leteckém průmyslu je však nutno zajistit dostupnost systému a jeho vysokou spolehlivost a odolnost proti rušení a poruchám.

obr (jpg)

Pro automobilový průmysl je požadována funkční bezpečnost, tj. odstranění nepřijatelného rizika v případě poruchy E/E systému.

Riziko je kombinace pravděpodobnosti výskytu poškození a závažnosti tohoto poškození. Nulové riziko, tj. absolutní bezpečnost, reálně neexistuje. Proto je definované přípustné riziko, tj. riziko, které je přijatelné v daných souvislostech založených na běžných hodnotách společnosti. Opakem je nepřípustné riziko. Mezi nimi existuje hranice přípustnosti.

Cílem je navrhnout zařízení tak, aby spadalo do oblasti přípustného rizika.

Duální přístup ISO 26262

Norma ISO26262 se zabývá celým životním cyklem výrobku. Hlavní dělení je na období před dodáním na trh a po dodání, tj. během provozu. V období před dodáním se soustředí na metody návrhu vývoje HW a SW, testování a výrobu. V období po dodání do provozu se zabývá řízením zpracování chyb během provozu. Během vývoje je používán V-model, který stanoví, že pro všechny požadavky na všech úrovních (koncept, systém, subsystém, jednotka/součástka) musí existovat test, který prověří, že daný požadavek byl úspěšně implementován.

ASIL (Automotive Safety Integrity Level)

Norma ISO 26262 umožňuje klasifikovat systémy pomocí úrovní ASIL (Automotive Safety Integrity Level). Nejnižší úroveň je ASIL A, nejvyšší ASIL D. Ještě nižší úrovní je QM (quality management), která však již nepatří mezi úrovně ASIL.

Úroveň ASIL je stanovena na základě tří složek: pravděpodobnost výskytu + kontrolovatelnost situace + závažnost poškození.

Kromě pravděpodobnosti výskytu a závažnosti poškození tak zde přichází ještě třetí složka kontrolovatelnosti situace, tedy jak obtížné je dostat situaci pod kontrolu z hlediska řidiče, pokud dojde k poruše systému.

Úroveň ASIL také v podstatě odpovídá míře námahy, kterou musíme při vývoji vynaložit, abychom dostali daný systém na úroveň přípustného rizika.

Přibližně lze porovnat úrovně ASIL dle ISO 26262 a SIL dle ČSN EN (IEC) 61508 viz tabulka 1.

tabulka (jpg)

FIT (failures in time)

Jednotka 1 FIT (failures in time) je v ISO 26262 definována jako 10-9 poruch za hodinu provozu zařízení. Jednotku FIT však lze do jisté míry upravit: 1 FIT je odpovídá výskytu 1 poruchy za 109 hodin provozu zařízení. Z časového hlediska je 109 hodin těžko představitelné období přibližně 114 155 let. 1 FIT je také ekvivalentní 1 poruše za 1 hodinu pro množinu 109 zařízení. Množství 109 automobilů je hodnota opět těžko představitelná, ale počet tranzistorů v jednom mikroprocesoru nebo bitů v paměti již dává lepší představu.

Poruchy

Z hlediska výskytu poruch (chyb) lze poruchy rozdělit na poruchy systematické a poruchy náhodné (random fault). Systematické poruchy jsou deterministické a lze je odstranit změnou zařízení, ať už na úrovni HW, nebo SW. Chyby SW jsou typicky systematické.

Náhodné poruchy se vyskytují s určitou pravděpodobností. Dále je lze rozdělit ještě na přechodné (porucha po jistém čase zmizí) a trvalé (od výskytu je porucha trvale přítomna). Příkladem přechodné poruchy může být průlet neutrina z kosmického záření nebo alfa částice, které mohou způsobit překlopení stavu klopného obvodu nebo hodnoty bitu v paměti RAM. Příkladem trvalé náhodné poruchy může být zkrat nebo přerušení spoje ve struktuře silikonu mikroprocesoru.

Z hlediska výskytu můžeme počítat s trvalými poruchami přibližně v rozsahu 1−100 FIT / zařízení a přechodnými 1 000−1 400 FIT / Mbit paměti.

 

Zabezpečení proti poruchám

Zabezpečení proti poruchám lze provést například ztrojením zařízení (klopný obvod) a použitím majoritní logiky pro určení správné hodnoty bitu. Případná porucha jednoho klopného obvodu nebude detekována, ale výsledkem bude spolehlivá správná hodnota bitu i v případě jedné poruchy. Cena za tento přístup je však trojnásobná oproti jednomu zařízení.

Zabezpečení proti poruchám lze provést také pomocí monitorování správné funkce zařízení. V případě jedné poruchy zařízení (single point fault) monitor detekuje poruchu a provede se příslušná reakce na poruchu. Případná porucha monitoru, která způsobí, že monitor nekontroluje správnou funkcionalitu hlavní funkce zařízení (ale nenaruší ji), se nazývá latentní chyba (latent fault).

Příkladem zařízení a jeho funkcionality může být interní PLL jako zdroj hodin pro mikroprocesor z externího krystalu a jako monitor pak periferie CMU (clock monitor unit), která porovnává stav hodin na výstupu PLL s jiným referenčním zdrojem hodin, například interním RC oscilátorem v mikroprocesoru.

V případě rozdílu obou hodin nad stanovenou mez provede CMU interrupt nebo reset jako reakci na poruchu výstupu hodin z PLL. V případě poruchy CMU jsou hodiny z PLL nadále poskytovány, ale jejich případná porucha by však nebyla nijak detekována. Proto je potřeba kontrolovat stav CMU před zahájením využívání PLL jako zdroje hodin (latent fault detection).

Zabezpečení proti poruchám dle ASIL

Z hlediska ASIL musí být zařízení zabezpečená proti chybám. Míra požadavků na zabezpečení odpovídá požadovanému stupni ASIL. Zde si pro představu vytáhneme z normy základní požadavky na zabezpečení proti hardwarovým single point chybám, latentním chybám a náhodným chybám.

Pro úroveň ASIL A jsou v normě jiné požadavky, většinou dokumentačního typu. Úrovně ASIL B není až tak složité s určitou HW podporou v praxi dosáhnout. Pro úroveň ASIL D jsou nutné speciální periferie a SW podpora, které umožní kritéria splnit.

SEooC (safety element out of context)

Aby nebylo nutno vyvíjet a posuzovat každý prvek zařízení vždy pro konkrétní účel celého zařízení, norma umožňuje definovat takový prvek jako obecný a izolovaně zajistit, aby splňoval všechny ASIL požadavky mimo kontext celého zařízení. Z takových prvků pak lze jednodušeji složit celé zařízení a dosáhnout cílová ASIL. Příkladem takového SEooC může být mikroprocesor.

Pro takový SEooC zpravidla výrobce definuje rámec jeho použití (scope), bezpečnostní cíle (safety goals) a způsob, jak toho dosáhnout (jaké provádět testy na SW a HW úrovni). Pokud se uživatel s takovými podmínkami ztotožní, může převzít analýzy SEooC od výrobce a zakomponovat je do svého zařízení. Celý proces se tak zjednoduší a zlevní.

STMicroelectronics jako výrobce polovodičových součástek dodává ke svým automotivním mikroprocesorům potřebnou dokumentaci (safety manual) a nástroje (FMEDA analysis), aby je uživatel mohl zakomponovat do svého zařízení a dosáhnout s nimi požadované úrovně ASIL.

Speciální výbava automotivního mikroprocesoru

Automotivní mikroprocesor se liší od toho běžného v mnoha ohledech. Především musí být vyvinut v souladu s normou ISO 26262 od samotného počátku. Aby mohl detekovat potenciální latent faults, musí být vybaven BIST (build in self test) na HW úrovni. Pro dosažení úrovně ASIL D je v praxi nezbytné, aby jádro mikroprocesoru obsahovalo ještě jedno identické jádro a detektor rozdílu vykonávaných instrukcí. Některé periferie jsou rovněž zdvojené, např. DMA nebo Interrupt controller. Paměti musí být vybaveny ECC (error correction code). ECC je kód, který je pomocí dodatečných bitů schopen detekovat poruchu jednoho nebo více bitů a/nebo jeden nebo více bitů automaticky opravit. Například lze 32bitové slovo zabezpečit pomocí osmi bitů a opravit tak ve slově jeden vadný bit a detekovat poruchu dvou, popř. více bitů. V praxi se používá i vícebitové zabezpečení pro 64, 128 nebo 256 bitů široké slovo, oprava jednoho nebo dvou vadných bitů a detekce dvou nebo tří a více vadných bitů.

Komunikace mezi jádrem a pamětí (perifériemi) musí být rovněž zabezpečena. Sběrnici lze zdvojit, ale z hlediska velikosti silikonu, a tedy ceny mikroprocesoru je výhodnější zabezpečit komunikaci na začátku a na konci přenosu pomocí E2E EDC (End to end error detection code). Po sběrnici se pak přenáší adresa + data + kontrolní signály.

Signály na pinech mikroprocesoru lze připojit na více periferií. Měření analogových signálů na pinech je umožněno dvěma nezávislými ADC převodníky. Periferie jsou rozdělené do skupin s přístupem přes samostatný peripheral bridge.

Dále je potřeba mikroprocesor vybavit detektory poklesu nebo překročení napájecího napětí a měřit vnitřní teplotu, aby bylo možno zabránit přehřátí jádra například snížením frekvence hodin. Monitor vnitřních hodin CMU již byl zmíněn.

Speciální periferie jsou potřeba pro detekci různých poruch v HW nebo paměti a umožněné reakce v případě jejich výskytu.

Pro zabránění interference mezi jednotlivými SW aplikacemi v paměti je potřeba zajistit memory management na HW úrovni pomocí vhodné periferie a/nebo na úrovni jádra MPU (memory protection unit).

Závěr

Norma ISO 26262 se stala obecně přijatým standardem v oblasti automotivních systémů a v současné době prakticky není možné v této oblasti postupovat jinak než v souladu s touto normou. Ukázali jsme si její východiska, základní principy a některé důsledky pro automotivní mikroprocesory.

Reference:

[1] ISO 26262-2011

[2] ISO 26262-2018

[3] Wikipedia

[4] RM0391 SPC58 E/G Line reference manual

[5] www.st.com

 

obr. auto (jpg)