TABLE OF CONTENTS:
Mnogość wszelkich urządzeń w otoczeniu może przyprawić o lekki ból głowy. Co chwilę można usłyszeć o nowym wynalazku, który znacząco ułatwia wykonywanie zadań. Ma to miejsce zarówno w sferze prywatnej jak i tej komercyjnej. Faktem jest, że maszyny odgrywają coraz większą rolę w naszym życiu. Wydaje się, że bez nich, świat już nie mógłby istnieć. W tym artykule postaram się przedstawić zastosowanie szczególnego typu urządzenia – systemu wbudowanego. Czym taki system się charakteryzuje? W jakich obszarach życia znalazł zastosowanie? Czytaj dalej!
System wbudowany (embedded system) to bardzo szerokie pojęcie. W uproszczeniu jest to system dedykowany jakiemuś rozwiązaniu czy funkcjonalności, które działa w jakimś innym, większym systemie. W urządzeniach tych nierzadko bardzo ważna jest niezawodność oraz ramy czasowe wykonania konkretnego zadania. Zazwyczaj składa się z części sprzętowej oraz programowej ze specjalistycznymi algorytmami.
O początkach systemów wbudowanych można mówić w drugiej połowie XX wieku. Wtedy też powstał przełomowy jak na swoje czasy komputer pokładowy Apollo 11. Przełomowa była budowa jak i samo oprogramowanie, które musiało zapewnić wiele funkcjonalności przy bardzo małych zasobach sprzętowych. Samo urządzenie ważyło 32 kg i oferowało 74 kB pamięci stałej (ROM) oraz 4 kB pamięci operacyjnej (RAM).
źródło: NASA Komputer pokładowy w programie Apollo
W obecnych czasach systemy wbudowane przeżywają swoisty renesans, a swoimi możliwościami znacznie przekraczają swoje pierwowzory. Większość z nich opiera się na mikrokontrolerach, czyli scalonych układach zawierających CPU, pamięć oraz interfejsy peryferyjne. Dla bardziej wymagających systemów embedded projektuje się układy ASIC, które są bardzo wydajne lecz ich projektowanie jest stosunkowo kosztowne. System wbudowany można schematycznie przedstawić tak jak poniżej:
Operując na dużym poziomie ogólności, typowy system wbudowany jest bardzo prostym urządzeniem. Czujniki mierzą dane wielkości, interfejsy komunikacyjne wymieniają niezbędne dane zarówno z innymi urządzeniami, jak i z samym człowiekiem (np. wyświetlacz), a zasilanie dostarcza energię. Do tego należy dołożyć inne moduły, które bezpośrednio wpływają na pracę całego urządzenia, jak np. sterownik przekaźników elektromagnetycznych. W teorii jest to więc bardzo proste technicznie urządzenie
Aby odpowiedzieć na to pytanie, należy najpierw znaleźć odpowiedź na inne, równie ważne pytanie.
Na pierwszy rzut oka różnic jest niewiele. Oba systemy posiadają jednostkę centralną, pamięć czy peryferia. Ba, nawet laptop wydaje się dość dobrym rozwiązaniem w niektórych przypadkach, ze względu na swoją mobilność. Niestety, to co na pierwszy rzut oka wydaje się rozsądne, po głębszym przeanalizowaniu już wcale takie nie jest. Jak to zawsze bywa, diabeł tkwi w szczegółach.
System wbudowany jest zorientowany na ograniczoną liczbę funkcjonalności. Jest projektowany tak, aby wykonanie danego zadania mieściło się w ściśle określonym czasie, a niezawodność była na jak najwyższym poziomie. Tego samego nie można powiedzieć o powszechnych komputerach domowo-biurowych, gdzie przewidywalność czasu wykonania zadania nie odgrywa tak dużej roli, programy lubią się wieszać, a cały system po dłuższym użytkowaniu bez restartu zalicza blue screena . Dodatkowo ważnym parametrem jest pobór energii. Wykorzystując laptopa do np. pomiaru napięcia oraz przesyłania go do innego systemu marnujemy ogromne ilości energii. Taką samą funkcjonalność jest w stanie spełnić dobrze zaprojektowany system wbudowany wykorzystując przy tym tylko ułamek tej energii.
Możliwości systemów embedded są przeogromne. Wszystko zależy od zastosowanej jednostki centralnej oraz podłączonych do niej czujników, przetworników czy interfejsów komunikacyjnych. Można wyobrazić sobie system, który posiada bardzo czuły cyfrowy przetwornik fal mózgowych. Na podstawie dokonanych pomiarów oraz zaprogramowanej wiedzy o ludzkim mózgu będzie mógł sklasyfikować zmiany w nim zachodzące – coś na pozór dekodera myśli. Czemu nie?
Dużym ograniczeniem systemów wbudowanych są skończone możliwości pomiarowe zastosowanych komponentów. Każdy czujnik czy przetwornik ma swoją dokładność czy maksymalną częstotliwość przetwarzania. Pewnych ograniczeń nie sposób ominąć bazując na obecnym poziomie technologicznym. Dodatkowo może zdarzyć się sytuacja, że dany parametr jest bardzo ciężko zmierzyć, a obróbka i przetwarzanie zebranych danych nastręcza wielu problemów.
Systemy wbudowane (embedded) można spotkać praktycznie na każdym kroku. Tak naprawdę trudno wymienić branżę, w której urządzenia te nie są istotne lub ich zastosowanie nie przyniosłoby wymiernych korzyści. Z dużą dozą pewności można stwierdzić, że będą one niezastąpione przy rozwiązywaniu problemów, które dopiero powstaną w przyszłości. Popyt na specjalistyczne urządzenia jest duży i jak na razie nie zapowiada się, aby w ogólnym rozrachunku z czasem się zmniejszał.
Mówi się, że współczesne samochody są naszpikowane elektroniką i jest to poprawne stwierdzenie, lecz bardzo ogólne. Doprecyzowując, trzeba powiedzieć, że współczesne samochody zostały wyposażone w liczne systemy wbudowane. Centralny zamek, układ rozruchu silnika, wspomaganie kierownicy, nawiew czy chociażby wszelkiego rodzaju wyświetlacze – to wszystko działa w oparciu o urządzenia typu embedded.
Każdy podsystem musi zapewnić niezawodność i bezawaryjność na bardzo wysokim poziomie. Jakość podzespołów montowanych w pojazdach tak naprawdę bezpośrednio decyduje o ludzkim życiu. Łatwo sobie wyobrazić, co by się mogło stać, gdyby zawiodły podstawowe systemy samochodu. Awaria centralnego systemu układu hamulcowego uniemożliwiłaby skuteczne hamowanie, a awaria centralki układu paliwowego mogłaby spowodować ciągłe przyspieszanie. W obu przypadkach, awarie te, najpewniej doprowadziłby do katastrofy.
W celu zminimalizowania błędów w krytycznych systemach, poddaje się je rygorystycznym testom. Testy te, sprawdzają czy dany komponent jest w stanie działać w konkretnym środowisku pracy, zapewniając przy tym zaprojektowane funkcjonalności. Można tu rozważyć przykład działania poduszki powietrznej w samochodzie.
Sygnał z czujnika uderzenia kierowany jest do sterownika, który decyduje o wystrzeleniu poduszki. System ten powinien być skuteczny zarówno dla stosunkowo małych sił zderzenia jak i dla tych większych. Dodatkowo powinien zadziałać po odpowiednio krótkim czasie. Wszystkie te parametry muszą być gruntownie przetestowane.
Nieco mniej krytycznym (pod względem bezpieczeństwa), ale bardzo ciekawym tematem są wyświetlacze w samochodach. W obecnych czasach, producenci wyposażają samochody w coraz to bardziej doskonałe układy do wizualizacji ważnych parametrów podróży.
Niektórzy stawiają na jeden duży wyświetlacz na desce rozdzielczej, który służy praktycznie do wszystkiego. Inni stawiają na dywersyfikację i nowoczesność montując w nich wyświetlacze typu HUD (Head-up display). W Solwicie, dla jednego z naszych klientów zrealizowalizowaliśmy rozwój wybranych funkcjonalności takiej platformy i braliśmy udział w tworzeniu architektury wybranych funkcjonalności i uruchomieniu nowego prototypu rozwiązania. Przeczytaj więcej o projekcie rozwoju oprogramowania dla Graphics Display Controller w automotive.
Kto w dzisiejszych czasach nie słyszał o inteligentnym domie? Pisząc „inteligentny” można sobie wyobrazić budynek, który bez pomocy człowieka posprząta, ugotuje obiad czy zamówi zakupy. Dodatkowo mógłby mieć możliwość zmiany kształtu czy wystroju w zależności od potrzeb właściciela. Idąc dalej, taki wymarzony, inteligentny dom mógłby być samowystarczalny energetycznie i neutralny dla klimatu.
Choć do takich domów jeszcze nam, jako ludzkości, bardzo daleko, to postępy na tej drodze są już znaczące. Oczywiście, wszystko za sprawą systemów wbudowanych. Im bardziej inteligentny dom, tym więcej można w nim znaleźć tego typu aparatur. Zaczynając od tak prozaicznych rzeczy jak możliwość sterowania roletami przez telefon, kończąc na sztucznej inteligencji oraz systemach biometrycznych do uwierzytelniania domowników.
W zdecydowanej większości, pod terminem związanym z automatyką budynkową kryje się na jakimś etapie, system wbudowany.
Nawet jeśli pierwotnie, budynek nie był projektowany pod kątem zastosowania szeroko pojętej automatyki, to na rynku istnieje mnóstwo urządzeń, które pozwalają unowocześnić lokum. Systemy embedded do automatycznego sterowania oświetleniem, kontrolą temperatury i wilgotności czy układy do wykrywania obecności, potrafią znacząco zmienić komfort życia.
Nie należy zapominać o minusach takich instalacji. Pierwszy to oczywiście koszty, na które składają się na same systemy wbudowane, dodatkowe kable czy w przyszłości konserwacje i naprawy. Drugi to zagrożenie utraty prywatności czy bezpieczeństwa. Im bardziej zdigitalizowany dom, tym więcej potencjalnych „furtek” dla przestępców. Dlatego bardzo ważne jest zadbanie już na etapie projektowania systemu o takie kwestie jak autoryzacja, kontrola dostępu czy szyfrowanie komunikacji.
W celu poprawy bezpieczeństwa życia mieszkańców, świat systemów wbudowanych również ma dedykowane rozwiązania. W idealnej sytuacji chcielibyśmy, aby „coś” samo wykrywało włamanie, pożar czy inną niebezpieczną sytuację i informowało o tym odpowiednie służby. Jednym z przykładów rozwiązania przedstawionego problemu jest AED.
System cały czas rejestruje sygnał dźwiękowy, następnie go przetwarza i decyduje czy nie doszło do sytuacji niebezpiecznej. Jeśli uzna, że wystąpiło zagrożenie, włącza alarm, zawiadamia odpowiednie służby lub odpowiednie osoby.
Wcześniej wspomnieliśmy, że praktycznie każda dziedzina życia może zostać usprawniona z wykorzystaniem systemów wbudowanych. Nie inaczej sprawa ma się z ochroną i ratowaniem ludzkiego życia.
W całym procesie leczenia pacjenta bardzo ważnym aspektem jest poprawne zdiagnozowanie choroby. W przypadku błędnej diagnozy pacjent przyjmuje leki, które mogą mu nawet zaszkodzić. Dodatkowo traci czas oraz pieniądze na cały ten niepotrzebny proces. W precyzyjnej diagnozie pomagają systemy wbudowane obecne w sprzęcie medycznym.
Bardzo dobrym przykładem jest technika obrazowania obiektów wykorzystująca rezonans magnetyczny. Urządzenie to zostało zaprojektowane do bardzo dokładnego odwzorowania wewnętrznych organów człowieka w trójwymiarowej przestrzeni. Posiada szereg precyzyjnych czujników, które podczas przeprowadzania badania cały czas dokonują niezbędnych pomiarów. Następnie próbki te są przetwarzane przez jedną lub wiele jednostek centralnych i na tej podstawie tworzą trójwymiarowy obraz narządu.
Po poprawnym rozpoznaniu choroby przychodzi czas na leczenie. Urządzenia do monitoringu stanu pacjenta dostarczają bezcennych informacji o aktualnym stanie chorego. Dzięki tym danym, lekarze są w stanie szybko zareagować na nagłą zmianę oraz odpowiednio wcześnie zmienić metodę leczenia.
W branży medycznej nieocenione są urządzenia do automatycznego dawkowania leku pacjentowi. Przynosi to obopólne korzyści: medycy mogą nieco odpocząć, a sam chory uzyskuje narzędzie do szybszego wyzdrowienia. Przykładem takiej choroby jest cukrzyca, a przykładem urządzenia – pompa insulinowa. W dużym uproszczeniu urządzenie składa się ze zbiorniczka na insulinę, niewielkiej pompy oraz czujników precyzyjnie mierzących podawaną dawkę leku. Ten niewielki gabarytowo system embedded, odmierza odpowiednią ilość insuliny oraz dostarcza ją do organizmu przez niewielkie wkłucie. Urządzenie jest bardzo pomocne, jednakże podczas projektowania takiego urządzenia nie należy zapominać o odpowiedzialności jakim będzie obdarzone. Zarówno medyk jak i sam chory będzie oczekiwał 100% bezawaryjności działania w każdym momencie. Urządzenia te są bezpośrednio odpowiedzialne za zdrowie i życie człowieka, dlatego muszą spełniać rygorystyczne normy medyczne. Normy te niejako wymuszają wysoką jakość samego oprogramowania jak i platformy sprzętowej urządzenia. Jako Solwit mogliśmy się o tym przekonać realizując liczne projekty safety-critical, a w szczególności gdy projektowaliśmy oprogramowanie dla urządzenia, od którego zalezy ludzkie życie, czyli wspomnianej pompy insulinowej.
Do tego momentu ani razu nie pojawił się termin IoT, a jest on bardzo spokrewniony z tytułem w nagłówku. Internet of Things to dziedzina bardziej zróżnicowana niż system wbudowany i w ogólności oznacza strukturę połączeń oraz sposób wymiany oraz przetwarzania informacji pomiędzy połączonymi urządzeniami. System wbudowany to nie jest czyste IoT. IoT opisuje za to sposób wymiany i przetwarzania informacji przez, między innymi połączone systemy wbudowane.
Na szczególną uwagę zasługuje zastosowanie IoT w przemyśle. W branży tej bardzo istotne jest zachowanie ciągłości produkcji, ponieważ każdy przestój oznacza straty finansowe oraz wiąże się z utraceniem wiarygodności dla innych firm. Należy na bieżąco monitorować stan techniczny urządzeń produkcyjnych oraz przewidywać możliwe awarie. W tym procesie bardzo pomocna jest sieć czujników, które w czasie rzeczywistym zbiera informacje o parametrach pracy maszyn i na ich podstawie jest w stanie przewidzieć nadchodzącą awarię. Za przykład można podać czujnik wibracji umieszczony na silniku w linii produkcyjnej. Dokonując pomiarów wibracji, jesteśmy w stanie określić stopień zużycia krytycznej części w silniku, a tym samym zaplanować naprawę przed wystąpieniem awarii. Minimalizujemy przez to ryzyko utracenia ciągłości wytwarzania naszego produktu.
Przemysł “lubi” także wszelkie optymalizacje procesów produkcyjnych. Optymalizacja wiąże się bezpośrednio z ograniczeniem kosztów lub zwiększeniem jakości produktu, a to przekłada się na większe dochody. Dokonując pomiarów jakości samego produktu jak i półproduktów jesteśmy w stanie szybciej określić “co jest nie tak” w całym procesie. Im więcej parametrów będziemy mierzyć, tym zyskujemy większą wiedzę nad każdym etapem produkcji. Większą wiedzę możemy wykorzystać do zmian, które usprawnią wadliwą fazę wytwórczą.
Dane z systemu zapobiegania awarii oraz dane z systemu kontroli jakości można połączyć z systemem sterowania samych urządzeń produkcyjnych. Łącząc te systemy osiągamy jeden olbrzymi system IoT. Dane z jednego systemu są uwzględniane w sterowaniu innego i na odwrót. Wtedy można mówić o prawdziwie inteligentnej fabryce. Urządzenia “rozmawiają” między sobą i na podstawie tej “rozmowy” podejmują działania bez udziału człowieka. Człowiek jedynie kontroluje poprawność podejmowanych akcji przez autonomiczne systemy.
Stworzenie w pełni autonomicznej fabryki jest bardzo trudnym zadaniem m.in. ze względu na konieczność dobrania właściwych modeli przetwarzania danych. Mając dane z każdego, nawet tego najmniejszego, etapu produkcji pojawia się problem z analizą zebranych informacji. Łatwo jest stworzyć oprogramowanie do analizy danych z jednego czujnika, ale mając do obróbki dane pochodzące z 10 000 urządzeń sprawa mocno się komplikuje. W ostatnich latach można zauważyć duży postęp w rozwoju algorytmów do Big Data, które to pomagają rozwiązać problemy związane z dużą ilością danych.
Systemy wbudowane przez lata rozwijały się w bardzo szybkim tempie i obecnie nic nie wskazuje na to, aby ich rozwój został zahamowany. Można je spotkać niemalże na każdym kroku. Dokonują pomiarów, analizują dane, wyświetlają niezbędne informacje, sterują innymi komponentami, chronią przed niepowołanym dostępem… to tylko nieliczne zastosowania omawianych urządzeń. Są nieocenione w praktycznej każdej branży, a w przyszłości uzależnienie ludzkości od tych urządzeń będzie jeszcze większe.