System wbudowany

System wbudowany to komputer, który został zbudowany w celu rozwiązania tylko kilku bardzo specyficznych problemów i nie jest łatwo zmienić. Słowo "wbudowany" oznacza, że jest on wbudowany w system. Jest to stała część większego systemu. Zazwyczaj nie wygląda jak komputer, często nie ma w nim klawiatury, monitora czy myszy. Ale jak każdy komputer ma procesor i oprogramowanie, wejścia i wyjścia.

Na przykład, sterownik wbudowany w windę mówi silnikowi, aby przeniósł windę na różne piętra, w oparciu o przyciski, które są naciskane. Dekoder jest wbudowany w dekoder telewizji satelitarnej (zwany STB), aby odczytać sygnał z anteny i wysłać coś, co jest zrozumiałe dla telewizora. Często tego typu system musi wykonywać swoją pracę w określonym czasie. Nazywa się to obliczaniem w czasie rzeczywistym. Gdyby set-top boks został przerwany w celu wykonania innego zadania, na przykład w telewizorze zobaczyłbyś zły obraz. Komputer ogólnego przeznaczenia często ma krótkie pauzy, podczas gdy robi coś innego, nie pracuje w czasie rzeczywistym.

Systemy wbudowane kontrolują wiele powszechnie stosowanych obecnie urządzeń, takich jak czytniki kart w zamkach hotelowych lub kilka rzeczy w samochodzie. Mogą one kontrolować małe rzeczy, takie jak odtwarzacz MP3 lub aparat cyfrowy, a duże, takie jak systemy sygnalizacji świetlnej, samoloty lub linie montażowe w fabryce.

Zdjęcie wnętrza modemu/routera ADSL. Nowoczesny przykład systemu wbudowanego. Oznaczone części obejmują mikroprocesor (4), pamięć RAM (6) i pamięć flash (7).Zoom
Zdjęcie wnętrza modemu/routera ADSL. Nowoczesny przykład systemu wbudowanego. Oznaczone części obejmują mikroprocesor (4), pamięć RAM (6) i pamięć flash (7).

Przykłady systemów wbudowanych

Systemy wbudowane są stosowane w wielu rodzajach urządzeń elektrycznych, w tym:

  • Systemy telekomunikacyjne wykorzystują je dla telefonów, sieci telefonii komórkowej i routerów wi-fi.
  • Elektronika użytkowa obejmuje odbiorniki telewizyjne, odtwarzacze MP3, telefony komórkowe, konsole do gier wideo, aparaty cyfrowe, odtwarzacze DVD, odbiorniki GPS, systemy zabezpieczeń domowych i drukarki.
  • Urządzenia gospodarstwa domowego, takie jak kuchenki mikrofalowe, pralki, systemy alarmowe przeciwwłamaniowe i zmywarki mają systemy wbudowane.
  • W transporcie stosuje się systemy wbudowane we wszystko, od lokomotyw do pociągów, samolotów i samochodów.
  • Przemysł wykorzystuje silniki elektryczne ze sterownikami elektronicznymi, czytniki kart i maszyny CNC, które automatycznie wykonują części metalowe.
  • Urządzenia medyczne takie jak defibrylatory, automatyczne czytniki ciśnienia krwi i automatyczne pompy insulinowe.
  • Urządzenia wojskowe, takie jak krótkofalówki, satelity i systemy naprowadzania rakiet.

Cechy wspólne

  • Systemy wbudowane są przeznaczone do wykonywania określonych zadań, w przeciwieństwie do komputerów ogólnego przeznaczenia.
  • Nie wygląda to jak komputer - może nie mieć pełnego monitora lub klawiatury.
  • Wiele systemów wbudowanych musi być w stanie działać w czasie rzeczywistym - w krótkim czasie (prawie natychmiast z ludzkiego punktu widzenia).
  • Wiele systemów wbudowanych musi być bardzo bezpiecznych i niezawodnych, zwłaszcza w przypadku urządzeń medycznych lub awioniki sterującej samolotami.
  • Zaczyna się bardzo szybko. Ludzie nie chcą czekać minutę lub dwie na start swojego samochodu lub sprzętu ratunkowego.
  • Może on korzystać ze specjalnego systemu operacyjnego (lub czasami bardzo małego domowego systemu operacyjnego), który pomaga spełnić te wymagania, zwanego systemem operacyjnym czasu rzeczywistego lub RTOS.
  • Instrukcje programów napisane dla systemów wbudowanych są określane jako firmware i są przechowywane w pamięci tylko do odczytu lub w chipach pamięci flash. Działają one z ograniczonymi zasobami sprzętowymi komputera: małą pamięcią, małą lub nieistniejącą klawiaturą i/lub ekranem.

Systemy wbudowane nie zawsze są urządzeniami samodzielnymi. Czasami są one budowane jako zestaw, jak różne części samochodu - radio, sterowanie przepustnicą, kontrola zanieczyszczeń, itp. Czasami mogą one komunikować się z Internetem lub siecią komórkową i mogą mieć czytnik USB lub inne połączenia.

Interfejsy użytkownika

Systemy wbudowane obejmują zakres od całkowitego braku interfejsu użytkownika - tylko wysyłanie i odbiór sygnałów elektrycznych - do w pełni graficznego interfejsu użytkownika, jak w nowoczesnym komputerze. Dość często będą one miały kilka przycisków i mały wyświetlacz oraz kilka diod LED. Bardziej złożony system może mieć ekran dotykowy, pozwalający na zmianę znaczenia przycisków z każdym ekranem, jak w smartfonach.

Przykład interfejsu użytkownika z przyciskami i prostym wyświetlaczem LCD.Zoom
Przykład interfejsu użytkownika z przyciskami i prostym wyświetlaczem LCD.

Sprzęt komputerowy

Sprzęt obejmuje chipy, przewody, płytki drukowane, przyciski i wyświetlacze.

Jednostki centralne

Najważniejszym układem jest jednostka centralna lub CPU. To uruchamia instrukcje oprogramowania. Może to być standardowy mikroprocesor lub mikrokontroler. Mikrokontrolery zawierają zarówno mikroprocesor, jak i proste urządzenia peryferyjne, dzięki czemu system może być mniejszy i tańszy. Mają one mniejszą elastyczność, ponieważ tych części nie można zmieniać. Zazwyczaj te części obejmują pamięć Flash i obsługę portów szeregowych, USB, itp.

W przeciwieństwie do mikroprocesora dla komputera ogólnego przeznaczenia, większy i szybszy nie zawsze jest lepszy. Wiele wbudowanych procesorów jest bardzo małych. Czasami chodzi o to, aby zużywać mniej miejsca lub mniej mocy, czasami jest to tańsze. Komputery ogólnego przeznaczenia wykorzystują mikroprocesory, które odczytują 32-bitowe lub 64-bitowe słowa i działają z szybkościami mierzonymi w GHz, ale procesory wbudowane mają zazwyczaj od 4 do 32 bitów i działają z szybkościami mierzonymi zazwyczaj w dziesiątkach MHz (sto razy wolniej). (Ale programy te są również mniejsze i nie sprawdzają tego, co nie jest używane).

Gotowe tablice komputerowe

Istnieją "gotowe" płyty komputerowe, które mogą być wykorzystane w niektórych systemach wbudowanych. Często wykorzystują one Windows CE, Linux, NetBSD lub wbudowany system operacyjny czasu rzeczywistego.

Czasami łatwiej jest użyć płytki drukowanej, która jest już wykonana. Zazwyczaj dzielą one wiele komponentów z komputerami ogólnego przeznaczenia, ale są mniejsze niż jeden w komputerze ogólnego przeznaczenia. Płytki takie jak VIA EPIA mogą pracować w systemie Microsoft Windows. Zaletą jest to, że oszczędza trochę czasu elektrotechniki i może używać tych samych narzędzi programistycznych, które są używane do tworzenia oprogramowania typu PC. Przykładami takich wbudowanych urządzeń są bankomaty lub wyświetlacze w kasynach. Działa to dobrze, jeśli wymagania w czasie rzeczywistym nie są naprawdę surowe (nie ma większego znaczenia, jeśli np. zadanie zajmuje osiem sekund zamiast pięciu).

Rozwiązania ASIC i FPGA

Jeśli urządzenie musi być bardzo małe lub będzie sprzedawane w bardzo dużych ilościach ("high volume"), sensowne jest, aby zrobić niestandardowy lub specjalistyczny chip, który robi dokładnie to, co jest potrzebne. Jest to system na chipie (SoC), który posiada kompletny system - procesor, jednostkę zmiennoprzecinkową, pamięć podręczną i interfejsy na jednym układzie scalonym. SoCs może być wykonany jako układ scalony specyficzny dla aplikacji na specjalne zamówienie (ASIC) lub przy użyciu programowalnej macierzy bramek (FPGA), która jest programowana przez ludzi budujących system wbudowany.

Peryferie

Systemy wbudowane rozmawiają ze światem zewnętrznym lub innymi komponentami za pomocą urządzeń peryferyjnych, np:

  • Porty szeregowe: RS-232, RS-422, RS-485. Kiedyś było to dość powszechne, z 9-pinowymi (lub większymi) złączami.
  • Synchroniczny interfejs komunikacji szeregowej: I²C Inter-Integrated Circuit, I²S Inter-Integrated Sound, SPI, MIcrowire, ...
  • Uniwersalna magistrala szeregowa (USB).
  • Sieci: Ethernet, Controller Area Network, LonWorks, ...
  • Dyskretne wejście/wyjście: Wejście/wyjście ogólnego przeznaczenia (GPIO). Może to być pojedynczy przewód z sygnałem włączania/wyłączania. Może być używane do małej klawiatury, lub do zapalenia diody LED.
  • Przetworniki analogowo-cyfrowe/cyfrowo-analogowe (ADC/DAC). Mierzy on coś, co zmienia siłę, np. czujnik światła lub sterowanie silnikiem.
  • Debugowanie: JTAG, port ICSP, dla inżynierów oprogramowania.
Soekris net4801, wbudowany system przeznaczony do zastosowań sieciowych.Zoom
Soekris net4801, wbudowany system przeznaczony do zastosowań sieciowych.

Oprogramowanie

Systemy operacyjne

Systemy wbudowane często nie potrzebują pełnego systemu operacyjnego. Jedni używają specjalnie zbudowanych małych i prostych systemów operacyjnych, które uruchamiają się bardzo szybko, inni wcale go nie potrzebują. Systemy wbudowane nie są tak łatwo przystosowane, ale są zbudowane do wykonywania swoich zadań znacznie bardziej niezawodnie. Ponieważ sprzęt jest prostszy, często też taniej jest budować i działać szybciej.

W przeciwieństwie do tego, komputer ogólnego przeznaczenia musi być gotowy na nowe sterowniki urządzeń i oprogramowanie do uruchamiania sprzętu, o którym jeszcze nie wie, jak nowe drukarki czy dyski twarde. Musi on uruchamiać różne programy aplikacyjne.

W miarę jak systemy wbudowane stają się coraz większe, rzeczy, które kiedyś znajdowały się tylko na komputerach ogólnego przeznaczenia lub nawet na komputerach typu mainframe, stają się teraz powszechne w systemach wbudowanych. Dotyczy to zarówno chronionej pamięci, jak i otwartego środowiska programowania, w tym Linuksa, NetBSD, itp.

Kilka przykładów systemów operacyjnych, od prostych do złożonych:

  • Prosta pętla sterowania - timer i pętla są używane do wielokrotnego wywoływania różnych podprogramów. Jest to często wykonywane przez jedną osobę dla mniejszych systemów.
  • kontrolowana przerwa - zadania są uruchamiane przez różne rodzaje zdarzeń. Zdarzeniem może być coś czasowego (np. co dziesięć sekund) lub naciśnięcie przycisku lub odebranie danych.
  • wielozadaniowość nieobowiązkowa - każde zadanie ma swoją kolej na uruchomienie, a po jego zakończeniu wywołuje harmonogram w systemie operacyjnym, aby uruchomić kolejne zadanie.
  • prewencyjna wielozadaniowość lub wielowątkowość - zadanie można zatrzymać po pewnym czasie, aby pozwolić innemu zadaniu na jakiś czas. Żadne zadanie nie jest w stanie uruchomić systemu. Na tym poziomie system jest uważany za posiadający jądro "systemu operacyjnego" i może uruchamiać zadania równolegle. Ten typ systemu operacyjnego jest zazwyczaj kupowany od firmy, która pracuje tylko na wbudowanych systemach operacyjnych.

Systemy operacyjne w czasie rzeczywistym obejmują takie produkty jak MicroC/OS-II, Green Hills INTEGRITY, QNX lub VxWorks. W przeciwieństwie do systemów MacOS czy Windows 7, te systemy operacyjne nie są zbyt dobrze znane większości ludzi. Ale są one używane w wielu miejscach, gdzie czas i bezpieczeństwo są bardzo ważne. Ludzie używają ich na co dzień i nie zdają sobie z tego sprawy.

Typowymi przykładami większych j±der s± Linux Embedded i Windows CE. Chociaż nie mają one ścisłych limitów czasowych wymaganych dla ścisłego systemu czasu rzeczywistego, stają się coraz bardziej powszechne, zwłaszcza w przypadku bardziej zaawansowanych urządzeń, takich jak routery bezprzewodowe i GPS. Umożliwiają one ponowne wykorzystanie kodu w domenie publicznej dla sterowników urządzeń, serwerów sieciowych, zapór sieciowych i innego kodu. Twórcy oprogramowania, którzy są bardziej komfortowe w pisaniu aplikacji dla komputerów PC, również uznają to za bardziej znane. W razie potrzeby, FPGA lub inny specjalny sprzęt może być użyty do rzeczy, które wymagają ścisłych limitów czasowych.

Narzędzia

Podobnie jak inne programy, projektanci systemów wbudowanych wykorzystują kompilatory, asemblery i debuggery do tworzenia oprogramowania wbudowanego. Mogą oni jednak również używać bardziej specyficznych narzędzi:

  • W przypadku systemów wykorzystujących cyfrowe przetwarzanie sygnału deweloperzy mogą korzystać z narzędzi matematycznych, takich jak MATLAB, MathCad lub Mathematica.
  • W celu poprawy optymalizacji dla danego sprzętu można zastosować własne kompilatory i łączniki.
  • System wbudowany może mieć swój własny, specjalny język lub narzędzie projektowe, lub też może dodawać ulepszenia do istniejącego języka, takiego jak ten używany przez Basic Stamp.

Narzędzia do debugowania:

  • Obwodowy debugger (ICD), urządzenie sprzętowe, które łączy się z mikroprocesorem za pomocą interfejsu JTAG. Uruchamia on i zatrzymuje mikroprocesor z zewnątrz podczas uruchamiania oprogramowania. Pozwala to również na odczytywanie pamięci i rejestrów oraz przechowywanie programu w pamięci.
  • Zewnętrzne debugowanie przy użyciu logowania lub wyjścia portu szeregowego do śledzenia operacji przy użyciu migającego monitora (printfs).
  • Interaktywne debugowanie rezydencjonalne - jeśli system operacyjny go obsługuje, to jest to powłoka na wbudowanym procesorze, która uruchamia polecenia wpisywane przez dewelopera (na przykład Linux).
  • Emulator w obwodzie zastępuje mikroprocesor na płycie, zapewniając pełną kontrolę nad wszystkim, co mikroprocesor może zrobić.
  • Kompletny emulator symuluje wszystkie funkcje sprzętu, pozwalając na jego kontrolę i modyfikację. Sprzęt tak naprawdę nie istnieje, ale jego udawana wersja (maszyna "wirtualna") znajduje się na normalnym komputerze PC.
  • Sprawdzanie zewnętrznych linii za pomocą analizatora logicznego lub multimetru.

O ile nie jest to ograniczone do zewnętrznego debugowania, programista może zazwyczaj wczytać i uruchomić oprogramowanie za pomocą narzędzi, zobaczyć działający w procesorze kod i rozpocząć lub zakończyć jego działanie. Widok kodu może mieć postać kodu asemblera lub kodu źródłowego. Niektóre zintegrowane systemy (jak VxWorks czy Green Hills) posiadają specjalne funkcje, takie jak śledzenie ile miejsca zajmuje oprogramowanie podczas pracy, jakie zadania są uruchamiane i kiedy coś się dzieje.

W zależności od tego, jaki rodzaj systemu wbudowanego jest tworzony, będzie miał wpływ na to, jak można go debugować. Na przykład, debugowanie pojedynczego systemu mikroprocesorowego różni się od debugowania systemu, w którym przetwarzanie odbywa się również na urządzeniu peryferyjnym (DSP, FPGA, koprocesor).

Bezpieczeństwo i niezawodność

Systemy wbudowane często znajdują się w maszynach, od których oczekuje się, że będą działały przez lata bez błędów, a w niektórych przypadkach same się regenerują w przypadku wystąpienia błędu. Oznacza to, że oprogramowanie jest zazwyczaj opracowywane i testowane dokładniej niż w przypadku komputerów osobistych, a także unika się zawodnych mechanicznych części ruchomych, takich jak napędy dyskowe i wentylatory.

Miejsca, w których bezpieczeństwo i niezawodność są ważne:

  • Niektóre systemy nie mogą być bezpiecznie wyłączone do naprawy, lub jest to zbyt trudne do naprawienia. Przykładem mogą być systemy kosmiczne (satelity, łaziki), kable podmorskie oraz systemy kontroli elektrowni jądrowych.
  • System może zabijać ludzi, jeśli zawiedzie, np. kontrole samolotów, kontrole fabryk chemicznych, sygnały kolejowe i defibrylatory serca.
  • System straci duże kwoty pieniędzy, jeśli zostanie wyłączony lub jeśli popełniony zostanie błąd: Przełączniki telefoniczne, sterowniki fabryczne, kasy fiskalne, bankomaty.

Sposoby odzyskiwania po błędach - zarówno błędy w oprogramowaniu, takie jak wycieki pamięci, jak i miękkie błędy w sprzęcie:

  • Watchdog timer, który restartuje wbudowany system, jeśli coś przestanie działać.
  • Podwójne części, gdzie jeden system może przejąć kontrolę, jeśli inny przestanie działać.
  • Oprogramowanie "limp modes", które zapewnia funkcje częściowe.
  • Programowanie świadome odporności

Powiązane strony

Pytania i odpowiedzi

P: Co to jest system wbudowany?


O: System wbudowany to komputer zbudowany do rozwiązywania specyficznych problemów i niełatwy do zmiany.

P: Czym różni się system wbudowany od komputera ogólnego przeznaczenia?


O: System wbudowany zwykle nie ma klawiatury, monitora ani myszy i ma wyspecjalizowane funkcje. Komputer ogólnego przeznaczenia może wykonywać szeroki zakres zadań.

P: Jakie są przykłady systemów wbudowanych?


O: Przykładami systemów wbudowanych są sterowniki wind, dekodery, czytniki kart w zamkach hotelowych, systemy sygnalizacji świetlnej, samoloty i linie montażowe w fabrykach.

P: Co to jest przetwarzanie w czasie rzeczywistym?


O: Obliczenia w czasie rzeczywistym to sytuacja, w której system wbudowany musi wykonać swoją pracę w określonym czasie. Jeśli zostanie przerwany, może to spowodować problemy, takie jak zła jakość obrazu w telewizorze.

P: Jakie są elementy składowe systemu wbudowanego?


O: Jak każdy komputer, system wbudowany ma procesor, oprogramowanie, wejście i wyjście.

P: Jakie są niektóre zadania, którymi może sterować system wbudowany?


O: System wbudowany może sterować małymi urządzeniami, jak odtwarzacze MP3 lub aparaty cyfrowe, lub większymi systemami, jak sygnalizacja świetlna lub samoloty.

P: Co oznacza termin "wbudowany" w odniesieniu do systemów wbudowanych?


O: Termin "wbudowany" oznacza, że komputer jest wbudowany w większy system i nie jest łatwo go zmienić.

AlegsaOnline.com - 2020 / 2023 - License CC3