Bezpieczeństwo funkcjonalne w układach z rdzeniem ARM

Warunkiem wprowadzenia na rynek wielu produktów w branżach takich jak: artykuły gospodarstwa domowego, motoryzacja, przemysł, czy medycyna, jest spełnienie wymogów prawnych potwierdzających ich zgodność z normami bezpieczeństwa funkcjonalnego. Uzyskanie certyfikatu jest jednym z wymagań dopuszczenia artykułu do sprzedaży i polega na spełnieniu norm bezpieczeństwa, czyniąc dany produkt bezpiecznym dla użytkowników. Producentów obowiązują normy: IEC 61508 dla systemów przemysłowych, ISO 26262 dla przemysłu motoryzacyjnego, IEC 62304 dla systemów medycznych, czy EN 50128 dla aplikacji kolejowych. Zaprojektowanie i wdrożenie systemu zarządzania bezpieczeństwem funkcjonalnym nie różni się znacząco od wdrażania innych systemów zarządzania. Wymaga jednak spełnienia szczególnych warunków.

W ramach standardów powstało kilka poziomów integralności bezpieczeństwa. Dla branży motoryzacyjnej jest to norma ASIL, a dla pozostałych obszarów norma SIL. Standardy te określają, między innymi formalne metody pracy i  kontroli jakości dla opracowania kodu aplikacji. Nie bez znaczenia jest dobór odpowiednich składników oprogramowania i zestawów narzędzi, bezpiecznych dla zamierzonego zastosowania. Dla przykładu podzespoły z klasą bezpieczeństwa ASIL A mają najmniejszy wpływ na zdrowie człowieka. Taka certyfikacja dotyczy np. sterowania oświetleniem wewnętrznym w samochodzie – wpływ jego uszkodzenia na bezpieczeństwo użytkowników jest raczej niewielki, a kierowca w czasie problemu jest w stanie zapanować nad pojazdem bez bezpośredniego zagrożenia życia. Awaria elementów istotniejszych z punktu widzenia bezpieczeństwa (np. hamulców, czy wspomagania kierownicy, powodując np. jego blokadę) może przyczynić się do bezpośredniego zagrożenia zdrowia, a nawet życia. Elementy składowe takich układów muszą spełniać wymagania najwyższej klasy poziomu bezpieczeństwa – ASIL D. Wiąże się to z koniecznością znaczącego ograniczenia ryzyka, tak aby potencjalna awaria układu nie stała się przyczyną urazów kierowcy, pasażerów, czy pozostałych uczestników ruchu. Aby zapobiegać ewentualnym sytuacjom niebezpiecznym stosuje się różne metody ograniczania ich wystąpienia, miedzy innymi FMEA, czyli analizę przyczyn i skutków możliwych błędów. Metoda ta ma na celu zapobieganie skutkom wad, które mogą wystąpić w fazie projektowania oraz w fazie wytwarzania produktu.

Narzędzia wspierające bezpieczeństwo funkcjonalne

Opracowywanie i optymalizacja złożonych aplikacji związanych z bezpieczeństwem jest trudnym zadaniem, zwłaszcza gdy ważnym czynnikiem jest czas wprowadzenia produktu na rynek. Arm dysponuje oprogramowaniem, narzędziami i platformami przeznaczonymi do tworzenia aplikacji dla bezpieczeństwa funkcjonalnego – upraszcza to projektowanie systemu i przyśpiesza proces weryfikacji. Obejmuje to certyfikowany system bezpieczeństwa dla procesorów, w tym system operacyjny czasu rzeczywistego do programowania aplikacji. Siłę łączenia powszechnie używanych funkcji bibliotecznych C z certyfikowanym przez TÜV zestawem narzędzi kompilatora Arm i systemem operacyjnym Keil RTX5 w czasie rzeczywistym zapewnia niezawodna, ​​bezpieczna i zoptymalizowana platforma programowa µVision ARM KEIL MDK-Professional. Jeżeli dodamy do tego Qualification Kit, czyli dokumentację Functional Safety, dostępną w pakiecie MDK-Pro w postaci raportów, instrukcji i analiz, to proces certyfikacji znacząco ulegnie skróceniu.

Do głównych narzędzi oprogramowania MDK-Pro wspomagających proces certyfikacji należą debugger z wbudowanymi narzędziami do testowania kodu oraz Kompilator Arm C/C ++

Za pomocą analizy strumieniowej ETM, przy użyciu adaptera debuggowania ULINKpro można korzystać z dodatkowych funkcji analizy. Arm Keil MDK-Professional zawiera debugger z wbudowanymi narzędziami do testów pokrycia kodu i profilowania wykonania.

Funkcja oprogramowania, jaką jest Pokrycie kodu, ang. ”Code coverage”, identyfikuje wykonywanie programu instrukcja po instrukcji, zapewniając dokładne testowanie aplikacji. Jest to podstawowy wymóg pełnej weryfikacji oprogramowania i certyfikacji. Funkcjonalne normy bezpieczeństwa wymagają testów pokrycia kodu dla wielu poziomów nienaruszalności bezpieczeństwa. Z kolei „Execution Profiler” rejestruje statystyki czasu i wykonania instrukcji dla całego kodu programu. Wartości te są wyświetlane w edytorze µVision lub oknie „Disassembly”.

Mówiąc o Bezpieczeństwie Funkcjonalnym należy je rozpatrywać w 3 aspektach, to znaczy na poziomie rdzeni, systemu i oprogramowania. Więcej szczegółów zostanie przedstawione podczas wspólnego seminarium z firmą LDRA, 10 kwietnia 2019 roku w Katowicach, na które serdecznie zapraszamy.

Computer Controls jest Oficjalnym Dystrybutorem Oprogramowania Arm Keil w Polsce.

O autorze