Gdańsk, 2017 1
System wbudowany (Embedded System) dedykowany system komputerowy, składający się z odpowiednio dobranych komponentów sprzętowych i programowych, zaprojektowany pod kątem wykonania określonej aplikacji programowej. Aplikacja odpowiada za realizację funkcji systemu wbudowanego i wpływa na sposób jego postrzegania przez użytkownika końcowego. System wbudowany spełnia określone wymagania, zdefiniowane do zadań które ma wykonywać. Nie można nim więc nazywać typowego wielofunkcyjnego komputera osobistego. Każdy system wbudowany oparty jest na mikroprocesorze (lub mikrokontrolerze), zaprogramowanym do wykonywania ograniczonej ilości zadań, lub nawet do jednego. 2
Czy to już system wbudowany czy jeszcze nie? System wbudowany bezpośrednio kieruje jakimś analogowym urządzeniem elektrycznym, chemicznym lub mechanicznym (innym niż standardowa myszka, klawiatura, joystick lub ekran) System wbudowany działa z reguły na niestandardowej platformie sprzętowej, niejednokrotnie skonstruowanej lub skonfigurowanej specjalnie na potrzeby określonego urządzenia Środowisko wytwarzania systemu wbudowanego jest inne niż środowisko docelowe Systemy wbudowane są również: systemami czasu rzeczywistego (niekiedy rozproszonymi) systemami krytycznymi ze względu na bezpieczeństwo 3
Zależnie od złożoności wykonywanych zadań, może zawierać oprogramowanie dedykowane wyłącznie temu urządzeniu (firmware), lub może to być system operacyjny wraz ze specjalizowanym oprogramowaniem. Może o tym decydować też stopień niezawodności jakie ma oferować dany system wbudowany. Ogólną zasadą jest, iż im mniej złożone i specjalizowane jest oprogramowanie, tym bardziej system jest niezawodny, oraz może szybciej reagować na zdarzenia krytyczne. Niezawodność systemu może być zwiększona, przez rozdzielenie zadań na mniejsze podsystemy, a także przez redundancję. Polegać to może np. na zastosowaniu do jednego zadania dwóch identycznych urządzeń, które mogą przejąć zadania drugiego, w przypadku awarii jednego z nich. 4
Za pierwszy komputer wbudowany uznaje się ten, który sterował amerykańskim statkiem kosmicznym Apollo. Pierwszy komputer wbudowany produkowany masowo sterował rakietą LGM-30 Minuteman. Apollo XVII LGM-30 Minuteman II Tego typu systemy znajdują zastosowanie we wszystkich dziedzinach, gdyż w obecnych czasach dąży się aby wszystkie urządzenia były inteligentne i zdolne do pracy autonomicznej oraz wykonywały coraz bardziej złożone zadania. 5
Przykłady obszarów i urządzeń technicznych, w których stosuje się systemy wbudowane układy sterujące pracą silnika samochodowego i ABS, komputery pokładowe sprzęt sterujący samolotami, rakietami, pociskami rakietowymi, bomby inteligentne sprzęt medyczny, w tym między innymi: monitory holterowskie sprzęt pomiarowy, w tym między innymi: oscyloskopy, analizatory widma bankomaty i podobne urządzenia ATM termostaty, klimatyzatory kuchenki mikrofalowe, zmywarki sterowniki PLC stosowane w przemyśle do sterowania i kontroli procesów i maszyn produkcyjnych sterowniki do wszelkiego rodzaju robotów mechanicznych systemy alarmowe służące do ochrony osób i mienia np. antywłamaniowe, przeciwpożarowe, i inne telefony komórkowe i centrale telefoniczne drukarki, kserokopiarki kalkulatory sprzęt komputerowy, w tym między innymi: dyski twarde, napędy optyczne, routery, serwery czasu i firewalle systemy rozrywki multimedialnej i interaktywnej 6
Poziom złożoności systemów wbudowanych Proste urządzenia powszechnego użytku, bazujące na mikrokontrolerach i mikroprocesorach małej mocy Wieloprocesorowe rozproszone systemy, stosowane w robotyce, telekomunikacji i lotnictwie System wbudowany ze względu na obszary zastosowań musi być dobrze przetestowany i stabilny. Błędy w oprogramowaniu mogą być katastrofalne w skutkach. 7
Projektowanie systemu wbudowanego Analiza wymagań Opracowanie dedykowanej warstwy sprzętowej Opracowanie odpowiedniego oprogramowania warstwa systemowa tworzy środowisko wykonania warstwa aplikacyjna Testowanie W przypadku prostych systemów wbudowanych, o zamkniętej, nieskalowalnejarchitekturze, warstwa systemowa nie jest ściśle wyodrębniona i nie zawiera mechanizmów wspierających tworzenie aplikacji. 8
Projektowanie systemu wbudowanego Zaawansowane systemy realizowane są w oparciu o specjalne systemy operacyjne, lub biblioteki ekstrakodów, które zawierają mechanizmy i funkcje ułatwiające tworzenie aplikacji i testowanie systemu. Projektant musi rozszerzyć warstwę systemową o sterowniki dedykowanych urządzeń, wykonać odpowiednie testy i przygotować odpowiednie oprogramowanie aplikacyjne. 9
Platformy sprzętowe Podstawowe czynniki wpływającymi na wybór platformy sprzętowej: Poziom skomplikowania realizowanych funkcji Obszar zastosowań System zaawansowany powinien cechować się: Duża niezawodność Duża odporność na błędy Prosty system powinien cechować się: Niską ceną Długi czas bezawaryjnej pracy Dla urządzeń produkowanych masowo projekt dedykowanego sprzętu na potrzeby konkretnego zastosowania W przypadku produkcji małoseryjnej Compact PCI, Komputery platerowe, Komputery PC/104, SOM (System on Module), komputery ciasteczkowe (Biscuit PC) 10
Compact PCI Zaprojektowany w 1994 roku przez grupę PICMG (PC Industrial ComputersManufacturesGroup), w skład której wchodzą: Intel, Hewlet-Packard, IBM, Motorola, Seimens, SUN Jako magistralę komunikacyjną wykorzystuje magistralę PCI stosowaną w komputerach PC Częstotliwość pracy to 66 Mhz Maksymalna przepustowość 133 Mbit/s Najnowsza specyfikacja wykorzystuje 64 bitowy PCI-Xzapewniający transfer powyżej 1Gbit/s i pozwala na wymianę karty bez wyłączania zasilania Mogą być wyposażone są w procesory typu RISC i CISC Charakteryzują się wysoką ceną, znacznymi gabarytami i wagą 11
Compact PCI Rozwiązania Compact PCI znajdują zastosowanie w odpowiedzialnych systemach sterowania i zaawansowanych urządzeniach telekomunikacyjnych, gdzie konieczne jest zapewnienie dużego stopnia niezawodności sprzętu, a niekiedy nawet wymiana jego komponentów w trakcie działania. Charakteryzują się budową modułową, dzięki czemu są skalowalne i mogą dość łatwo zostać rozszerzone o nową funkcjonalność. 12
Komputery platerowe Wykorzystują standardowe karty rozszerzeń z magistralą PCI lub ISA Dostosowane są do pracy w trudnych warunkach otoczenia odporność na wibracje i zakłócenia Zastosowano w nich standardowe rozwiązania wykorzystywane w komputerach PC Oferują ułatwiony serwis Oferują długi czas życia poszczególnych elementów systemu 13
Komputery PC/104 Standard PC/104 został zdefiniowany w 1992 roku Stanowi zmodyfikowaną magistralę ISA o zredukowanym poborze mocy Nazwa pochodzi od liczby styków w złączu modułu Łączy się je samonośną konstrukcją kanapkową W 1996 powstała kolejna wersja PC/104+ wyposażona w dwie magistrale ISA i PCI (33/66 MHz) Maksymalna moc modułu interfejsowego to 2 W Maksymalna moc modułu procesorowego 7.5 W uzyskana dzięki zastosowaniu energooszczędnego procesora (np. NS Geode 300MHz) Zamiast klasycznych dysków twardych stosuje się często dyski typu FLASH (odporność na wibracje i niezawodność) Moduły zdolne do pracy w temperaturach od -40 C do 120 C 14
Komputery ciasteczkowe (BiscuitPC) Mają złącze w standardzie PC/104 Na płycie umieszcza się standardowe złącza interfejsowe VGA, Ethernet, RS-232 Występują w dwóch rozmiarach 3.5 i 5.25 Płytki 3.5 są uzupełnieniem modułów PC/104 (znajdują zastosowania w podobnych aplikacjach) Płytki 5.25 są wyposażone w układ audio (AC-97), kartę grafiki ze sterownikiem LCD i wyjściem telewizyjnym (stosowane we wszelkich aplikacjach multimedialnych) 15
SOM (System on Module) Przy tworzeniu platform sprzętowych do zastosowań wbudowanych często wykorzystuje się te same rozwiązania układowe (procesory, układy sterujące) Różne jest otoczenie interfejsowe, rozkład złączy i wyprowadzeń na płycie Mając powyższe na uwadze zaprojektowano moduły zawierające procesor, układ sterujący i niektóre interfejsy Moduł taki jest dostosowany do wmontowania na płytę bazową, którą projektuje się od podstaw dla konkretnej aplikacji Na złącza krawędziowe są wyprowadzone standardowe magistrale urządzeń ISA i PCI Pozwala to na skrócenie czasu projektowania i testowania systemu o 80% 16
Oprogramowanie dla systemów wbudowanych Realizowane jest w oparciu o specjalne systemy operacyjne Musi charakteryzować się wysoką jakością i stabilnością Nie może być projektowane w oderwaniu od stosowanych rozwiązań sprzętowych W większości przypadków podstawą do tworzenia aplikacji wbudowanych są systemy operacyjne czasu rzeczywistego W wielu przypadkach aplikacja jest prosta i składa się z kilku procesów Z systemem dostarczany jest zestaw narzędzi uruchomieniowych do tworzenia i testowania aplikacji W wielu systemach wbudowanych stosowane są systemy ogólnego przeznaczenia Wybór systemu operacyjnego zależy od poziomu skomplikowania, przeznaczenia systemu i jego ceny 17
Systemy operacyjne do zastosowań krytycznych Do sterowania procesami o znaczeniu krytycznym (przemysł, zastosowania wojskowe, systemy dla lotnictwa) Cechują się większym poziomem komplikacji W celu utrzymania odpowiedniego stopnia wiarygodności jest stosowana ochrona zasobów, a wykonujące się zadania podlegają pełnej separacji przez co błędy w jednym z nich nie wpływają na działanie pozostałych Wyposażony jest w aplikacje ułatwiające tworzenie aplikacji tolerujących awarie i monitorowanie wykonujących się zadań Podlegają certyfikacji Oprócz ochrony zasobów ochronie podlega również czas procesora 18
Systemy operacyjne do zastosowań krytycznych Ochronę czasu procesora realizuje się poprzez podział systemu na partycje wykonawcze, w których działają programy Czas przydzielony każdej partycji jest stały i nie zależy od liczby wykonywanych w jej obrębie zadań W systemie może zostać wyodrębnionych wiele partycji o rozmaitym przeznaczeniu 19
Systemy operacyjne do zastosowań krytycznych W systemie z przezroczystą komunikacją partycje wykonawcze mogą być zlokalizowane w różnych modułach, przez co można uniezależnić się od awarii sprzętu W momencie awarii pojedynczego modułu zadania są nadal wykonywane w pozostałych 20
Testowanie systemów wbudowanych Testy czarnej skrzynki To takie testy, gdzie pomysł przypadku (zadania, skryptu scenariusza) bierze się głównie z wiedzy o działaniu (zachowaniu się) systemu, a nie o jego wewnętrznej konstrukcji (strukturze). Typowym przykładem takich testów są tzw. testy akceptacyjne, wykonywane przez nie będących informatykami użytkowników systemu (np. pracowników banku). Testy białej skrzynki To takie, gdzie pomysł przypadku testowego bierze się z wiedzy o konstrukcji (strukturze, budowie programu). Typowym przykładem takich testów będą tzw. testy modułowe, wykonywane przez programistów i konstruktorów. 21
Testowanie systemów wbudowanych Kontrola przebiegu testów systemu wbudowanego Stymulowanie systemu oraz pomiar i ocena poprawności produkowanych przez system wyników Stosowane narzędzia (programy) śledzące przez testera: analizator logiczny Oscyloskop ICE (In-Circuit Emulator) JTAG wbudowany program śledzący program śledzący na poziomie kodu źródłowego program śledzący na poziomie RTOS 22
Testowanie systemów wbudowanych Oscyloskop Weryfikacja wartości pojedynczego sygnału Identyfikacja przedziałów czasowych zmiany wartości sygnału badanego Wykrywanie wartości niejednoznacznych (np. 1.5V może być losowo interpretowane jako wartość 0 lub 1 ) Typowym obszarem zastosowania oscyloskopu jest pomiar wartości sygnałów przychodzących od urządzeń peryferyjnych W systemach wbudowanych może wystąpić problem z podłączeniem oscyloskopu do urządzenia 23
Testowanie systemów wbudowanych Analizator logiczny Rejestruje sygnały dostępne na jakimś interfejsie zewnętrznym systemu Możliwość przedstawiania sygnałów w różnych formatach (binarny, dziesiętny, szesnastkowy) Zrzut danych zebranych przez analizator jest niełatwy do analizy nawet dla bardzo wprawnego specjalisty Możliwość automatycznej, przy pomocy specjalnie napisanego programu, weryfikacji poprawności zgromadzonych danych 24
Testowanie systemów wbudowanych ICE (In-Circuit Emulator) Jest urządzeniem specyficznym dla danego procesora Umieszczany między procesorem, a płytką Nie zawiesi się, kiedy zawiesi się oprogramowanie Zawiera bufor pozwalający na gromadzenie rejestrowanych danych Rejestruje wszystkie sygnały procesora Pozwala na obserwację i zmianę zawartości pamięci Pozwala na manipulację każdego sygnału wchodzącego do procesora Nie wymaga miejsca w pamięci systemu, ani nie modyfikuje w żaden sposób zawartości pamięci systemu (chyba że robi to celowo) Nie potrafią śledzić pamięci CACHE procesora 25
Testowanie systemów wbudowanych JTAG (Joint Test Action Group) Umożliwia zewnętrzne sterowanie układem scalonym Ustawianie przerwań na określone instrukcje Analizowanie i modyfikowanie dostępnej w procesorze pamięci Ma ograniczone możliwości w stosunku do ICE, czy programu śledzącego, ale jest znacznie tańszy 26
Testowanie systemów wbudowanych Wbudowany program śledzący System docelowy wyposaża się w podstawowy program śledzący Umożliwia on wykonanie (na poziomie instrukcji procesora) podstawowych czynności takich jak odczyt i modyfikację pamięci oraz instalowanie punktów przerwania Program śledzący na poziomie kodu źródłowego Na systemie docelowym z reguły brak wolnego miejsca, dlatego działa na platformie zewnętrznej, za pośrednictwem wbudowanego programu śledzącego Program śledzący na poziomie RTOS Gdy system wbudowany wyposażony jest w system operacyjny czasu rzeczywistego, istotna podczas testowania jest wiedza o stanie procesów, wątków i sygnalizacji między nimi Dostawcy systemów operacyjnych czasu rzeczywistego mają w swoim zestawie narzędzi program śledzący, który rozpoznaje i potrafi manipulować tą informacją 27
Testowanie systemów wbudowanych Techniki pomiaru pokrycia strukturalnego Pokrycie strukturalne to miara, wskazująca jaki odsetek wybranych elementów kodu źródłowego (np. instrukcji, rozgałęzień) jest pokryty (wykonany) podczas wykonywania zestawu przypadków testowych Pomiary pokrycia strukturalnego w systemach wbudowanych wykorzystuje się bardzo często, bo są realne na całym systemie, a nie tylko na poszczególnych modułach wiele standardów dla systemów krytycznych, ze względu na bezpieczeństwo, wymaga udowodnienia określonego pokrycia strukturalnego 28
Testowanie systemów wbudowanych Testy produkcyjne Konieczna jest kontrola jakości każdego pojedynczego egzemplarza systemu Stosuje się metody usprawniania tego procesu (np. testuje się co któryś egzemplarz, losowo wybrany) Przy masowej produkcji czas dostępu do testów jest ograniczony (10000 egzemplarzy w ciągu 16 godzin daje przy testowaniu co 10 egzemplarza 57.6 sekundy na test) Środowisko testowe musi być dostosowane do taśmy produkcyjnej Zwykle są w znacznym stopniu zautomatyzowane 29
Testowanie systemów wbudowanych Inwazyjność narzędzi testowych Gdy test wymaga użycia narzędzi innych, niż te, które wystąpią także w środowisku produkcyjnym Istnieje ryzyko, że wyniki uzyskane w środowisku testowym będą inne, niż w środowisku produkcyjnym Narzędzia testowe (analizator stanów, ICE, JTAG) można uznać za nieinwazyjne Wszelkie programy śledzące są inwazyjne Narzędzia do pomiaru pokrycia strukturalnego są szczególnie inwazyjne, gdyż modyfikują kod testowanej aplikacji (instrumentacja) 30