Bezpieczeństwo funkcjonalne - korzyści zapewniane przez ARM
| TechnikaWarunkiem wprowadzenia na rynek wielu produktów, w szczególności takich jak artykuły konsumenckie, urządzenia motoryzacyjne, przemysłowe czy medyczne, jest spełnienie szeregu wymogów prawnych potwierdzających zgodność z normami bezpieczeństwa funkcjonalnego, a więc tego, że korzystanie z produktu jest bezpieczne dla użytkownika.
W systemach przemysłowych producentów obowiązuje norma IEC 61508, w motoryzacji ISO 26262, w medycynie IEC62304, a spełnienie wymagań EN 50128 dotyczy 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 wymagań.
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 - norma SIL. Określają one 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 używanych narzędzi, także 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 niewielki, a kierowca w czasie trwania problemu jest w stanie zapanować nad pojazdem i nie ma bezpośredniego zagrożenia życia.
Awarie elementów istotniejszych z punktu widzenia bezpieczeństwa (np. hamulców czy wspomagania kierownicy) mogą przyczynić się do powstania bezpośredniego zagrożenia zdrowia lub ż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, między 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.
Bezpieczeństwo funkcjonalne
Mówiąc o bezpieczeństwie funkcjonalnym, należy je rozpatrywać w 3 aspektach, to znaczy na poziomie rdzeni, systemu i oprogramowania, przez co 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.
Firma ARM dysponuje oprogramowaniem, narzędziami i platformami przeznaczonymi do tworzenia aplikacji dla bezpieczeństwa funkcjonalnego, co znacząco upraszcza projektowanie takich systemów i przyśpiesza proces weryfikacji. Obejmuje to certyfikowany system bezpieczeństwa dla procesorów, w tym system operacyjny czasu rzeczywistego do programowania aplikacji.
Z kolei połączenie 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 niezawodną, bezpieczną i zoptymalizowaną platformę programową μ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 debugowania ULINKpro można korzystać z dodatkowych funkcji analizy. ARM Keil MDKProfessional zawiera debugger z wbudowanymi narzędziami do testów pokrycia kodu i profilowania wykonania.
Funkcja oprogramowania, jaką jest tzw. pokrycie kodu (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".
Grzegorz Cuber
Computer Controls