Systemy wbudowane spotykane są w bardzo wielu dziedzinach życia, a obszar ich zastosowań, wraz z postępem technologicznym, ulega ciągłemu poszerzaniu. Telefony komórkowe, kioski informacyjne, systemy nawigacji satelitarnej, urządzenia wykorzystywane w diagnostyce medycznej, rozwiązania dla telekomunikacji i teleinformatyki, systemy kontroli lotu, a także naturalnie roboty i maszyny przemysłowe oraz szereg układów sterowania w automatyce – to najbardziej reprezentatywne przykłady systemów wbudowanych.
Złożoność tego typu rozwiązań jest bardzo zróżnicowana – począwszy od prostych systemów powszechnego użytku bazujących na mikrokontrolerach małej mocy, a skończywszy na wieloprocesorowych, rozproszonych układach stosowanych w robotyce czy kolejnictwie. Podstawową cechą wyróżniającą systemy wbudowane na tle innych systemów komputerowych są, oprócz dedykowanego charakteru, jakość oprogramowania i stosowanych komponentów sprzętowych.
System wbudowany, ze względu na obszary zastosowań, musi być również w pełni przetestowany i stabilny – błędy w oprogramowaniu mogą być tutaj katastrofalne w skutkach. Artykuł ma na celu przybliżenie omawianej problematyki i stanowi przegląd dostępnych rozwiązań sprzętowych, systemów operacyjnych oraz omawia podstawowe problemy związane z projektowaniem rozwiązań wbudowanych.
PROJEKTOWANIE SYSTEMÓW WBUDOWANYCH
Na projektowanie systemu wbudowanego składa się zarówno opracowywanie dedykowanej warstwy sprzętowej, jak i odpowiedniego oprogramowania. W tym ostatnim wydzielić można obszar systemowy i aplikacyjny.
Warstwa systemowa tworzy środowisko wykonania dla aplikacji wbudowanej i, w zależności od obszaru zastosowań, cechuje się różnym stopniem skomplikowania. W przypadku prostych systemów wbudowanych o zamkniętej, nieskalowalnej architekturze, warstwa systemowa nie jest ściśle wyodrębniona i nie zawiera mechanizmów wspierających tworzenie aplikacji.
Zaawansowane systemy, przeznaczone dla medycyny, lotnictwa, telekomunikacji czy robotyki realizowane są w oparciu o specjalne systemy operacyjne lub biblioteki, które zawierają mechanizmy i funkcje ułatwiające tworzenie aplikacji i testowanie systemu. Mimo to projektant musi rozszerzyć warstwę systemową o sterowniki dedykowanych urządzeń, wykonać odpowiednie testy i przygotować oprogramowanie aplikacyjne. Od funkcjonalności i użyteczności aplikacji zależy w dużej mierze powodzenie całego projektu.
Tworzenie systemu wbudowanego wymaga przeanalizowania wymagań, opracowania odpowiedniej architektury i jej przemyślanej dekompozycji. Każdy błąd czy zlekceważenie pewnych wymagań we wstępnych fazach projektu może prowadzić do niepowodzenia całego przedsięwzięcia. Złe decyzje projektowe pociągają za sobą często konieczność modyfikacji nie tylko oprogramowania, lecz także sprzętu.
W przypadku systemów do zastosowań krytycznych pojawia się też problem bezpieczeństwa, czyli głównie odporności systemu na awarie sprzętu, zaburzenia elektromagnetyczne oraz błędy implementacyjne. W przypadku, gdy projektowany system jest skomplikowany, na przykład system sterujący robotem w zakładzie produkcyjnym, projekt przeobraża się w skomplikowane przedsięwzięcie logistyczne, wymagające koordynacji prac kilku różnych zespołów inżynierów.
STOSOWANE PLATFORMY SPRZĘTOWE
Podstawowymi czynnikami wpływającymi na architekturę systemu wbudowanego są poziomy skomplikowania realizowanych przez niego funkcji i obszar zastosowań. Zupełnie inne wymagania stawiane są przed systemem kontroli lotu niż w przypadku urządzeń powszechnego użytku.
System kontroli lotu powinien cechować się dużą niezawodnością i odpornością na błędy, natomiast urządzenia powszechnego użytku powinny być tanie i charakteryzować się długą, bezawaryjną pracą. Ze względu na bardzo różnorodne wymagania i funkcje systemów wbudowanych nie jest możliwe zbudowanie jednej uniwersalnej platformy sprzętowej do wszystkich zastosowań.
Z punktu widzenia technicznego najlepszym rozwiązaniem jest zaprojektowanie dedykowanego sprzętu na potrzeby konkretnego zastosowania, jednak takie postępowanie nie ma uzasadnienia ekonomicznego przy produkcji małoseryjnej.
W takim wypadku lepiej zastosować gotowe platformy sprzętowe dla aplikacji wbudowanych, opierające się o ustalone standardy. Jednymi z najbardziej popularnych standardów są systemy typu: CompactPCI, PC/104 i SOM. Ważną grupę stanowią także miniaturowe i subminiaturowe rozwiązania potocznie zwane komputerami "ciasteczkowymi" (Biscuit PC). Każdy z powyższych standardów cechuje się innymi parametrami użytkowymi i obszarem zastosowań.
SYSTEMY COMPACTPCI
Rozwiązania CompactPCI znajdują zastosowanie w 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.
Systemy oparte o CompactPCI charakteryzują się budową modułową, dzięki czemu są skalowalne i mogą zostać dość łatwo rozszerzone o nową funkcjonalność. W przypadku urządzeń telekomunikacyjnych cecha ta nabiera istotnego znaczenia.
Pojedyncze urządzenie może zostać wyposażone w odpowiednie moduły dopasowane do konkretnej konfiguracji sieci telekomunikacyjnej. Dodatkowo w przypadku awarii pojedynczego modułu nie jest konieczna wymiana całego urządzenia, a uszkodzony element może zostać wymieniony w trakcie jego działania, co nie powoduje przerwy w dostarczaniu usług.
Należy podkreślić, że wymiana modułów w trakcie pracy, mimo odpowiedniej konstrukcji elektrycznej magistrali CompactPCI, jest możliwa wyłącznie wtedy, gdy wspiera ją odpowiednio zaprojektowane oprogramowanie urządzenia.
Historia standardu CompactPCI, zwanego dalej w skrócie CPCI, sięga 1994 roku, kiedy to został on zaprojektowany przez grupę producentów systemów automatyki i komputerów przemysłowych działających pod wspólnym szyldem organizacji PICMG (PC Industrial Computers Manufacturers Group).
Wśród członków tej organizacji są m.in. Intel, Hewlett-Packard, IBM, Motorola, Siemens, SUN. CPCI jako podstawową magistralę komunikacyjną wykorzystuje popularną magistralę PCI stosowaną w komputerach osobistych i stacjach roboczych.
Dzięki zastosowaniu PCI rozwiązania CPCI są tańsze od konkurencyjnych systemów opartych o magistralę VME, stosowanych od wielu lat w przemyśle. Najnowsza specyfikacja CPCI wykorzystuje 64-bitowy PCI-X, zapewniający transfer z szybkością powyżej 1Gbit/s i pozwala na wymianę kart bez wyłączania zasilania.
Grzegorz Kowalczyk
Z całą pewnością rośnie liczba aplikacji tworzonych na bazie tzw. komputerów kompaktowych, których moce obliczeniowe, liczba i rodzaj interfejsów oraz niezawodność spełniają zazwyczaj w zupełności wymogi projektantów różnych nowoczesnych systemów. Oczywiście jeśli chodzi o skalę projektów, to komputery do wbudowania (embedded) są wciąż niezaprzeczalnym liderem pod względem sprzedaży. Nie należy tu oczywiście pomijać komputerów panelowych czy stacji serwerowych rack 19".
Sprzęt jest oceniany jest przez pryzmat niezawodności i całkowitych kosztów posiadania, a nie tylko ceny zakupu. Dla klientów ważna jest też marka oraz długi cykl życia produktu na rynku.
W dość konserwatywnej grupie rozwiązań, jakimi są komputery przemysłowe, zauważalna staje się coraz doskonalsza miniaturyzacja. Nowoczesne, energooszczędne i wydajne wielordzeniowe procesory stosowane są obecnie powszechnie nie tylko w "pełnowymiarowych" komputerach przemysłowych typu PC, ale również w kompaktach czy płytach embedded.
Głównym formatem pozostają tzw. rozwiązania 3,5", czyli o wymiarach 146×102 mm. W bardziej skomplikowanych konstrukcjach korzysta się też często z PC/104. |
Od strony mechanicznej CPCI nawiązuje do standardu Eurokarty i VME. Poszczególne moduły w postaci kart o wymiarach zgodnych ze standardem Eurokarty i o wysokościach 3 lub 6U są wkładane do standaryzowanych kaset. Karty mogą być umieszczane poziomo lub pionowo w kasetach o różnej liczbie gniazd, różnych rozwiązaniach układów zasilania i chłodzenia, w tym redundancyjnych.
Kasety w formacie 19" mają po osiem złączy w jednym segmencie dla kart procesorowych, jednak poprzez dodanie dodatkowego mostka PCI-PCI można łatwo zwiększyć ich liczbę do 24. Charakteryzują się one różnymi gabarytami i wagą - wysokości od 1U (1 karta) do 12U.
Karty procesorowe stosowane w CompactPCI wyposażone są w procesory różnych producentów. Spotykane są procesory o modelach programowych typu RISC (np. ARM, Power PC, MIPS) oraz CISC (Intel IA32, Motorola 68K). Wybór procesora uzależniony jest przede wszystkim od specyfiki aplikacji wbudowanej oraz jej zapotrzebowania na moc obliczeniową.
Systemy CPCI są wydajne, elastyczne i niezawodne, jednak charakteryzują się wysoką ceną, znacznymi gabarytami i dużą wagą, co czyni je nieprzydatnymi w aplikacjach, gdzie istotne są małe rozmiary i niski koszt systemu.