Przyszłość systemów wbudowanych (embedded) – trendy na 2022 rok

UDOSTĘPNIJ

Autor: Piotr Strzałkowski, ekspert w dziedzinie embedded

Jednym z moich ulubionych zajęć w ramach pracy w branży embedded jest śledzenie, analiza trendów i nowości na tym rynku. Uwielbiam przyglądać się lub uczestniczyć we wdrażaniu nowoczesnych technologii na rynek. Chciałbym się dziś z Wami podzielić opinią na temat zaobserwowanych trendów z branży oprogramowania wbudowanego typu embedded.

blog_trends

Co nowego w hardware

Rozwój układów mikroprocesorowych dedykowanych do systemów embedded jest bardzo dynamiczny. Co roku pojawią się większe, mocniejsze, bardziej energooszczędne układy mikroprocesorowe. Poniżej przedstawiłem dwie, według mnie, najciekawsze ścieżki rozwoju układów mikroprocesorowych, jakie udało mi się zaobserwować w ostatnim czasie.

Cyberbezpieczeństwo przede wszystkim

Niesamowity rozwój urządzeń i całego rynku IoT oraz duży popyt ze strony użytkowników, którym zależy na podłączaniu wszelkich urządzeń do sieci internetowych, ujawnił nowe zagrożenie czyhające na urządzenia embedded – możliwość ataków hakerskich. Cyberbezpieczeństwo oprogramowania embedded stało się dziś kluczowe.

Reakcją na te okoliczności ze strony producentów mikrokontrolerów jest wprowadzanie co rusz nowszych, szybszych i bardziej skomplikowanych mechanizmów zabezpieczających same urządzenia, kod jak i interfejsy komunikacyjne. Najnowsze mikrokontrolery już nie mogą się obyć bez takich elementów, jak trust zone i generatory liczb losowych (RNG), akceleratory kryptograficzne, tamper resistance, czy secure key storage. Wszystkie te podzespoły mają zapewnić systemowi odpowiedni poziom bezpieczeństwa. Choć ta walka wydaje się bardzo nierówna – ponieważ hakerzy muszą znaleźć tylko jedną dziurę, a inżynierowie muszą załatać je wszystkie – to bilans tej walki dla użytkownika jest na duży plus. Poziom bezpieczeństwa, jakie układy mikroprocesorowe oferują, rośnie z roku na rok.

Mnie osobiście bardzo cieszy, że widać stale rosnący trend wdrażania zabezpieczeń security do systemów embedded. Wydaje mi się, że jesteśmy na początku tej drogi i obrany kierunek producentów jest prawidłowy. Według mnie, w najbliższej przyszłości większość mikrokontrolerów i procesorów będzie posiadała kryptoperyferia, a security w systemach embedded zagości na stałe. 

AI?

Nowością, której nie sposób pominąć, jest wszechobecne AI – Artificial Intelligence (sztuczna inteligencja). Trend ten wszedł pod strzechy systemów wbudowanych z wielkim impetem w momencie, kiedy okazało się, że nie we wszystkich rozwiązaniach bycie online się sprawdza. Czujnik z wbudowanymi prostymi elementami AI to nie jest już fantastyka.

Mikrokontrolery posiadające peryferia przyspieszające obliczenia potrzebne dla sztucznej inteligencji czy też peryferia umożliwiające implementację HW sieci neuronowych zagościły na dobre w portfolio produktów producentów półprzewodników.

Do tego, oczywiście, wszelkiego rodzaju biblioteki i narzędzia wspomagające implementację, naukę i testy stworzonych rozwiązań wspomagają i przyspieszają prace nad rozwiązaniami z wykorzystaniem sztucznej inteligencji. AI to niezwykle fascynująca dziedzina inżynierii, a korzystanie z niej przy pomocy dostępnych dzisiaj układów wydaje się jeszcze bardziej ekscytujące. W przyszłości zapewne zadziwi nas jeszcze nie raz, bo rozwiązania dostępne dla tej technologii są niesamowite. Wydaje się, że w dziedzinie AI jest jeszcze dużo do zrobienia. Dlatego jej rozwój w branży systemów embedded, według mnie, będzie miał miejsce co najmniej przez najbliższych dziesięć lat.

Jakie zmiany dla software’u?

Zmiany w trendach dotyczących programowania w systemach embedded na pewno nie są tak dynamiczne jak zmiany w sprzęcie. Jednak, mimo że  przebiegają one wolniej, to jednak następują. Czasami pewne zmiany  to chwilowa moda (na przykład nowe języki programowania). Zdarza się, że te nowości rewolucjonizują pewne gałęzie branży ze względu na to, że przekładają się pośrednio lub bezpośrednio na zysk producentów lub otwierają nowe możliwości na rynku. Śledząc od pewnego czasu nowinki z branży oprogramowania embedded, zaobserwowałem następujące ciekawostki.

Jakość oprogramowania

Pierwszym trendem, który zaobserwowałem kilka lat temu, była powolnie rosnąca świadomość samej branży embedded – czym jest jakość oprogramowania wbudowanego  i w jaki sposób można ją optymalnie osiągnąć? Nie ma co ukrywać i trzeba to otwarcie powiedzieć: branża embedded jest odrobinę do tyłu pod względem wykorzystywania najnowszych trendów dotyczących szeroko rozumianej jakości kodu, co odbywa się kosztem wytwarzania oprogramowania.

Dzieje się tak, ponieważ większość testów jest wykonywana manualnie, na docelowym sprzęcie. Dodatkowo, spora liczba urządzeń IoT charakteryzuje się niestabilną pracą, czy też podatnościami bezpieczeństwa, które są częściowo pokłosiem braku dbania o jakość oprogramowania. Widać jednak niewielkie światełko w tunelu.

W Internecie można znaleźć coraz większą ilość blogów, kursów, webinarów o tym, jak poprawnie tworzyć oprogramowanie w językach C/C++ dla platform embedded. Dodatkowo konferencje branży embedded wytyczają główne ścieżki tematyczne poruszające zagadnienie jakości oprogramowania.

Jednocześnie, świadomość znaczenia jakości kodu wśród młodych inżynierów, którzy co roku zasilają szeregi zespołów przy nowych projektach, wydaje się być wyższa. Nie można także zapominać, że wiedza użytkowników końcowych z roku na rok rośnie i jednym z czynników wyboru urządzeń zaczyna być niezawodność i bezpieczeństwo oprogramowania.

To wszystko sprawia, że przed producentami urządzeń embedded stawia się nowe wymagania dotyczące jakości oprogramowania z dużym naciskiem na bezpieczeństwo danych. Bardzo mnie to cieszy, ponieważ jestem propagatorem dbania o jakość oprogramowania. Mam nadzieję, że z roku na rok grono produktów embedded, posiadających wysoką jakość oprogramowania, będzie coraz większe.

Python, czyli co?

Kolejna ciekawostka, którą udało mi się zaobserwować, jest dość zaskakująca. Nie spodziewałem się, że taki język, jak Python trafi pod strzechy branży embedded i rozgości się tam na dłużej.  Jednak coroczny ranking popularności języków programowania IEEE (The Top Programming Languages 2019 ) pokazuje już od wielu lat, że python utrzymuje się ciągle w pierwszej trójce najbardziej popularnych języków programowania.

Niewielka popularność takich języków, jak C, w gronie nowego pokolenia inżynierów, w pewnym sensie wymusza na twórcach nowoczesnych rozwiązań poszukiwanie alternatywnych ścieżek umożliwiających szybkie tworzenie firmware.

Dodatkowo bardzo szybki rozwój technologii IoT podnosi poprzeczkę w tym obszarze. Dlatego też, coraz większą popularnością cieszą się takie rozwiązania, jak mikropython (MicroPython – Python for microcontrollers). Jak można się domyślać, rozwiązanie to nie sprawdzi się we wszystkich systemach, a zwłaszcza w tych, gdzie odpowiedź czasowa musi być deterministyczna. Nie spodziewajmy się więc w najbliższej przyszłości takich rozwiązań w komputerach zarządzających pracą silnika samochodowego czy też samolotowego.

Popularne rozwiązania IoT czy infotainment nie są już tak wymagające pod względem czasu odpowiedzi czy niezawodności. Dodatkowo adaptacja takiego rozwiązania do projektu powoduje, że prawie każdy deweloper pythona może wytworzyć wymagane oprogramowanie. Wynikiem czego nie trzeba szukać specjalistów ze znajomością języka C, o których w dzisiejszych czasach podobno coraz trudniej.

Dodatkowo darmowa pythonowa baza gotowych bibliotek czy rozwiązań jest niewspółmiernie większa od języka C. Potwierdzeniem popularności tego rozwiązania jest bardzo duże grono deweloperów interesujących się tym projektem na Githubie.

Spora ilość stron internetowych opisująca projekty, które wykorzystują mikropythona, jak np. punkty dostępowe WIFI, kontrolery lotu dronów, sterowniki grzania domu, czy też wykorzystanie tej technologii w oprogramowaniu LEGO MINDSTORMS, potwierdza rosnącą popularność tego rozwiązania.

Przewiduję, że przy tak rosnącym zainteresowaniu mikropython’em możemy się spodziewać coraz większej ilości projektów komercyjnych. Co za tym idzie, udział pythona w gronie języków wykorzystywanych w branży embedded będzie się powiększał.

Mam nadzieję, że garść luźno przedstawionych przeze mnie informacji Was zainteresowała. Jestem bardzo ciekaw, jakie będą przyszłe losy przedstawionych przeze mnie trendów i rozwiązań oraz co one wyewoluują. Na pewno będę je nadal śledził i poinformuję Was o ich przyszłych losach.

 

Poszukujesz partnera technologicznego do wdrożenia cybersecurity do Twojego oprogramowania? Piotr z zespołem chętnie doradzą, jak powinien przebiegać proces i wesprą w jego wdrożeniu. Skontaktuj się z nami i zbuduj z nami swoje oprogramowanie embedded.

 

Piotr Strzałkowski, autor tego artykułu, jest ekspertem w dziedzinie embedded i pracuje w Solwicie od ponad 10 lat. Pracował przy wielu projektach dla klientów z różnych branż, ale najlepiej czuje się w systemach dla branży motoryzacyjnej. Ekspert w zakresie wdrażania rozwiązań cybersecurity w oprogramowaniu wbudowanym. Siła zespołu odpowiedzialnego za wdrażanie rozwiązań IoT.

 

Najnowsze wpisy na blogu