Samouczek dotyczący systemów wbudowanych

⚡ Inteligentne podsumowanie

W samouczku poświęconym systemom wbudowanym opisano urządzenia oparte na kontrolerach, przeznaczone do wykonywania określonych funkcji wewnątrz większych systemów mechanicznych lub elektrycznych. LessOmówiono w nim komponenty, charakterystykę, mikrokontrolery, mikroprocesory, języki programowania, zastosowania, zalety i wady zarówno dla początkujących, jak i średnio zaawansowanych inżynierów.

  • ⚙️ Dedykowany cel: Systemy wbudowane wykonują jedno konkretne zadanie, wykorzystując procesor, pamięć i urządzenia peryferyjne wbudowane w urządzenie hosta.
  • ???? Główne elementy: Sprzęt, oprogramowanie sprzętowe i systemy operacyjne czasu rzeczywistego współpracują ze sobą, aby zapewnić deterministyczne odpowiedzi czujników i siłowników.
  • 📐 ArchiTypy struktur: Wybierz projekty oparte na mikrokontrolerach, mikroprocesorach lub układach FPGA w zależności od potrzeb dotyczących kosztów, poboru mocy i wydajności.
  • 💻 Języki programowania: Język C dominuje w rozwoju wbudowanym, C++, Assembly, Python, a Rust zyskuje coraz większe zastosowanie w obciążeniach o znaczeniu krytycznym dla bezpieczeństwa.
  • 🏭 Szerokie zastosowania: Branża motoryzacyjna, medyczna, elektronika użytkowa, automatyka przemysłowa i lotnictwo codziennie opierają się na systemach wbudowanych.
  • 🤖 AI na krawędzi: TinyML, układy sztucznej inteligencji brzegowej i akceleratory neuronowe przenoszą inteligencję wewnętrzną do urządzeń wbudowanych bez konieczności uzależnienia od chmury.

Samouczek dotyczący systemów wbudowanych

Zanim nauczymy się systemu wbudowanego, nauczmy się:

Co to jest system?

System to układ, w którym wszystkie jego elementy działają według ściśle określonych zasad. Jest to metoda organizowania, pracy lub wykonywania jednego lub większej liczby zadań według ustalonego planu.

Co to jest system wbudowany?

Wbudowany system to połączenie oprogramowania komputerowego i sprzętu komputerowego o stałych możliwościach lub programowalnym. System wbudowany może być systemem niezależnym lub częścią dużego systemu. Jest przeznaczony głównie do określonej funkcji lub funkcji w większym systemie. Na przykład alarm pożarowy jest typowym przykładem systemu wbudowanego, który wykrywa tylko dym.

Przykład systemów wbudowanych

Drukarka laserowa

Drukarki laserowe są jednym z przykładów systemów wbudowanych, które wykorzystują systemy wbudowane do zarządzania różnymi aspektami drukowania. Oprócz wykonywania głównego zadania drukowania, muszą one przyjmować dane wejściowe użytkownika, zarządzać komunikacją z systemem komputerowym, obsługiwać błędy i wykrywać papier pozostawiony na tacy itp.

Tutaj głównym zadaniem mikroprocesora jest zrozumienie tekstu i sterowanie głowicą drukującą w taki sposób, aby wyładowywała atrament tam, gdzie jest on potrzebny.

Aby tego dokonać, musi odkodować różne przekazane mu pliki oraz zrozumieć czcionkę i grafikę. Przetwarzanie danych zajmie znaczną ilość czasu procesora, a także będzie wymagać wprowadzania danych przez użytkownika, sterowania silnikami itp.

Historia systemu wbudowanego

Oto ważne kamienie milowe w historii systemów wbudowanych:

  • W 1960 roku po raz pierwszy zastosowano system wbudowany do rozwojuping System naprowadzania Apollo zaprojektowany przez Charlesa Starka Drapera z MIT.
  • W 1965 roku firma Autonetics opracowała D-17B, komputer używany w systemie naprowadzania rakiet Minuteman.
  • W 1968 roku wypuszczono pierwszy system wbudowany w pojeździe.
  • Firma Texas Instruments opracowała pierwszy mikrokontroler w 1971 roku.
  • W 1987 roku firma Wind River wypuściła pierwszy wbudowany system operacyjny, VxWorks.
  • Microsoft'S Windows osadzony CE w 1996 roku.
  • Pod koniec lat 1990. pojawił się pierwszy wbudowany system Linux.
  • Rynek rozwiązań wbudowanych osiągnął w 140 roku wartość 2013 miliardów dolarów.
  • Analitycy prognozują, że do 40 roku wartość rynku systemów wbudowanych przekroczy 2030 miliardów dolarów.

Charakterystyka systemu wbudowanego

Charakterystyka systemu wbudowanego
Charakterystyka systemu wbudowanego

Poniżej przedstawiono ważne cechy systemu wbudowanego:

  • Wymaga wydajności w czasie rzeczywistym
  • Powinien charakteryzować się wysoką dostępnością i niezawodnością.
  • Opracowany wokół systemu operacyjnego czasu rzeczywistego
  • Zwykle mają łatwą i bezdyskową obsługę, rozruch ROM-u
  • Zaprojektowany do jednego konkretnego zadania
  • Aby podłączyć urządzenia wejściowe i wyjściowe, należy go połączyć z urządzeniami peryferyjnymi.
  • Zapewnia wysoką niezawodność i stabilność
  • Potrzebny minimalny interfejs użytkownika
  • Ograniczona pamięć, niski koszt, mniejsze zużycie energii
  • To nie jest potrzebne pamięć drugorzędna w komputerze.

Ważne terminologie stosowane w systemie wbudowanym

W tym samouczku dotyczącym systemów wbudowanych omówimy kilka ważnych terminów używanych w systemie wbudowanym.

Niezawodność

Jest to miara prawdopodobieństwa przetrwania systemu, gdy funkcja ma krytyczne znaczenie w czasie działania.

Tolerancja błędów

Tolerancja błędów to zdolność systemu komputerowego do przetrwania w obecności usterek.

Real-Time

System wbudowany musi spełniać różne ograniczenia czasowe i inne. Narzucają mu się naturalne zachowania świata zewnętrznego w czasie rzeczywistym.

Na przykład departament sił powietrznych, który utrzymuje track nadlatujących pocisków rakietowych musi precyzyjnie obliczyć i zaplanować kontratak ze względu na ścisły termin realizacji w czasie rzeczywistym. W przeciwnym razie zostanie zniszczony.

Elastyczność

To budowanie systemów z wbudowanymi możliwościami debugowania, które umożliwiają zdalną konserwację.

Na przykład budujesz statek kosmiczny, który wyląduje na innej plantatorze, aby zebrać różnego rodzaju dane i przesłać nam zebrane szczegóły. Jeśli ten statek kosmiczny oszalał i stracił kontrolę, powinniśmy móc przeprowadzić ważną diagnostykę. Dlatego elastyczność jest kluczowa przy projektowaniu systemu wbudowanego.

Przenośność

Przenośność to miara łatwości korzystania z tego samego oprogramowania wbudowanego w różnych środowiskach. Wymaga uogólnionychtracpołączenia między samą logiką programu aplikacyjnego i interfejsami systemowymi niskiego poziomu.

Co to jest mikrokontroler?

Mikrokontroler to jednoukładowa jednostka VLSI, zwana także mikrokomputerem. Zawiera całą potrzebną pamięć i interfejsy we/wy, podczas gdy mikroprocesor ogólnego przeznaczenia potrzebuje dodatkowych układów, aby zapewnić te niezbędne funkcje. Mikrokontrolery są szeroko stosowane w systemach wbudowanych do zastosowań związanych ze sterowaniem w czasie rzeczywistym.

Co to jest mikroprocesor?

Mikroprocesor to jednoukładowe urządzenie półprzewodnikowe. Jego procesor zawiera licznik programu, jednostkę ALU, wskaźnik stosu, rejestr roboczy i obwód taktowania zegara. Zawiera również ROM i RAM, dekoder pamięci oraz wiele portów szeregowych i równoległych.

Architecture Systemu Wbudowanego

Poniżej przedstawiono podstawową architekturę systemu wbudowanego:

Architecture Systemu Wbudowanego
Architecture Systemu Wbudowanego

1) Czujnik

Czujnik pomaga mierzyć wielkość fizyczną i zamienia ją na sygnał elektryczny. Przechowuje również zmierzoną wielkość w pamięci. Sygnał ten może być gotowy przez obserwatora lub przez dowolny instrument elektroniczny, taki jak przetwornik A2D.

2) Konwerter AD

Konwerter AD (przetwornik analogowo-cyfrowy) umożliwia konwersję sygnału analogowego wysyłanego przez czujnik na sygnał cyfrowy.

3) Pamięć

Pamięć służy do przechowywania informacji. System wbudowany zawiera głównie dwie komórki pamięci: 1) Ulotną 2) Pamięć nieulotną.

4) Procesor i układy ASIC

Ten komponent przetwarza dane, aby zmierzyć wynik i zapisać je w pamięci.

5) Konwerter DA

Konwerter DA (przetwornik cyfrowo-analogowy) pomaga w konwersji danych cyfrowych dostarczanych przez procesor na dane analogowe.

6) Siłownik

Aktywator umożliwia porównanie sygnału wyjściowego podanego przez przetwornik DA z rzeczywistym wyjściem w nim zapisanym i zapisanie zatwierdzonego wyjścia w pamięci.

Rodzaje systemów wbudowanych

Trzy typy systemów wbudowanych to:

  • Mała skala
  • Skala średnia
  • Wyrafinowany
Rodzaje systemów wbudowanych

Rodzaje systemów wbudowanych

Systemy wbudowane na małą skalę

Ten system wbudowany można zaprojektować z wykorzystaniem pojedynczego 8- lub 16-bitowego mikrokontrolera. Można go obsługiwać za pomocą baterii. Do celów rozwojowychping w przypadku małych systemów wbudowanych najważniejszymi elementami są edytor, asembler (IDE) i cross-asembler narzędzia programistyczne.

Systemy wbudowane średniej skali

Tego typu systemy wbudowane są projektowane przy użyciu 16- lub 32-bitowych mikrokontrolerów. Systemy te oferują zarówno złożoność sprzętową, jak i programową. C, C++, Javai narzędzia do inżynierii kodu źródłowego itp. służą do opracowywania tego rodzaju systemów wbudowanych.

Wyrafinowane systemy wbudowane

Tego typu systemy wbudowane mają wiele złożoności sprzętowych i programowych. Możesz potrzebować IPS, ASIPS, PLA, procesora konfiguracyjnego lub skalowalnych procesorów. Do opracowania tego systemu potrzebujesz współprojektowania sprzętu i oprogramowania oraz komponentów, które muszą zostać połączone w końcowym systemie.

Różnica między mikroprocesorem a mikrokontrolerem

Poznaj różnicę pomiędzy Mikroprocesor i mikrokontroler

Mikroprocesor Mikrokontrolery
Wykorzystuje bloki funkcjonalne, takie jak rejestr, ALU, taktowanie i jednostki sterujące. Wykorzystuje bloki funkcjonalne mikroprocesorów, takie jak pamięć RAM, timer, równoległe wejścia/wyjścia, przetwornik ADC i przetwornik DAC.
W mikroprocesorze instrukcja obsługi bitów jest mniejsza, tylko jeden lub dwa typy. Mikrokontroler oferuje wiele rodzajów instrukcji obsługi bitów.
Oferuje szybkie przenoszenie kodu i danych pomiędzy pamięcią zewnętrzną a mikroprocesorem. Oferuje szybkie przemieszczanie kodu i danych w mikrokontrolerze.
Pomaga zaprojektować system komputerów cyfrowych ogólnego przeznaczenia. Pomaga w projektowaniu dedykowanych systemów dostosowanych do konkretnych zastosowań.
Pozwala na wykonywanie wielu zadań jednocześnie. Jest to system zorientowany na jedno zadanie.
W systemie mikroprocesorowym możesz określić liczbę potrzebnych portów pamięci lub wejść/wyjść. W systemie mikrokontrolera stała liczba pamięci lub wejść/wyjść sprawia, że ​​mikrokontroler jest idealny do wykonania określonego zadania.
Oferuje obsługę pamięci zewnętrznej i portów we/wy, co czyni go cięższym i droższym systemem. Tego typu systemy są lżejsze i tańsze w porównaniu do mikroprocesorów.
Urządzenia zewnętrzne potrzebują więcej miejsca, a ich zużycie energii jest znacznie wyższe. Tego typu system zajmuje mniej miejsca, a zużycie energii jest również bardzo niskie.

Zastosowania systemów wbudowanych

Poniżej przedstawiono najważniejsze zastosowania systemów wbudowanych:

Nauka o robotyce

  • Pojazdy naziemne
  • Drony
  • Pojazdy podwodne
  • Roboty przemysłowe

Dyrektorem

  • Maszyna do dializy
  • Pompy infuzyjne
  • Monitor pracy serca
  • Urządzenie protetyczne

Motoryzacja

  • Kontrola silnika
  • Sytem zapłonu
  • Układ hamulcowy

Sieci

  • Router
  • Piasty
  • bramy
  • Instrumenty elektroniczne

Urządzenia domowe

  • telewizory
  • Digital Alarm
  • Klimatyzator
  • Odtwarzacz wideo DVD
  • Aparaty

Samochody

  • Wtrysk paliwa
  • System oświetleniowy
  • Kłódki
  • Poduszki powietrzne
  • Windows
  • System asystenta parkowania
  • Alarmy antykradzieżowe Whippers Motion

Industrial Control

  • Robotyka
  • System sterowania
  • Rakiety
  • Reaktor nuklearny
  • Stacje kosmiczne
  • Czółenka

Zalety systemu wbudowanego

Oto zalety/korzyści korzystania z systemu wbudowanego:

  • Jest w stanie obsłużyć różnorodne środowiska
  • Less prawdopodobnie będzie popełniał błędy
  • System wbudowany upraszcza sprzęt, co zmniejsza ogólne koszty.
  • Oferuje zwiększoną wydajność
  • Wbudowany system jest przydatny przy produkcji masowej.
  • Wbudowany system jest wysoce niezawodny.
  • Ma bardzo mało połączeń wzajemnych.
  • Wbudowany system ma niewielkie rozmiary.
  • Działa szybko.
  • Oferuje lepszą jakość produktu.
  • Optymalizuje wykorzystanie zasobów systemowych.
  • Pobiera małą moc.

Wady systemu wbudowanego

Oto ważne wady/wady korzystania z systemu Embedded.

  • Opracowanie systemu wbudowanego wymaga dużego wysiłku programistycznego.
  • Potrzebuje dużo czasu na wprowadzenie na rynek.
  • Systemy wbudowane wykonują bardzo specyficzne zadanie, więc nie można ich zaprogramować do robienia różnych rzeczy.
  • Systemy wbudowane oferują bardzo ograniczone zasoby pamięci.
  • Nie oferuje żadnego udoskonalenia technologicznego.
  • Tworzenie kopii zapasowych osadzonych plików jest trudne.

FAQ

Systemy wbudowane realizują dedykowane funkcje przy ograniczonych zasobach, podczas gdy komputery ogólnego przeznaczenia obsługują wiele aplikacji. Projekty wbudowane stawiają na wydajność, rozmiar, koszt i reakcję w czasie rzeczywistym, a nie na elastyczność i szeroką kompatybilność oprogramowania.

Sprzęt Edge AI, taki jak Google Platformy Coral, NVIDIA Jetson i TinyML umożliwiają urządzeniom wbudowanym lokalne uruchamianie sieci neuronowych. Umożliwia to wykrywanie anomalii w czasie rzeczywistym, obrazu i głosu bez konieczności przesyłania danych do chmury.

Tak. Narzędzia do kodowania AI generują kod sterownika, optymalizują procedury na poziomie rejestrów i objaśniają arkusze danych. Przyspieszają uruchamianie mikrokontrolerów, sugerują procedury obsługi przerwań i pomagają debugować problemy z synchronizacją na platformach STM32, ESP32 i PIC.

Język C pozostaje dominującym językiem, ponieważ zapewnia ścisłą kontrolę nad sprzętem i zajmuje mało miejsca. C++ i Rust rozwijają się w projektach o znaczeniu krytycznym dla bezpieczeństwa, podczas gdy MicroPython i obwódPython uprościć szybkie prototypowanieping na wydajnych mikrokontrolerach.

System RTOS planuje zadania z deterministycznym harmonogramem, dzięki czemu zdarzenia są wykonywane w ściśle określonych terminach. Popularne rozwiązania to FreeRTOS, Zephyr, ThreadX i VxWorks, powszechnie stosowane w urządzeniach sterujących w przemyśle motoryzacyjnym, medycznym i przemysłowym.

Projektanci łączą energooszczędne mikrokontrolery, tryby uśpienia, wydajne urządzenia peryferyjne i oprogramowanie sprzętowe sterowane zdarzeniami. Techniki takie jak cykliczne przetwarzanie sygnału, bramkowanie zegara i zasilacze z funkcją pozyskiwania energii wydłużają żywotność baterii w czujnikach IoT o lata.

Nowoczesne pojazdy zawierają dziesiątki wbudowanych modułów sterujących silnikiem, ABS, systemem informacyjno-rozrywkowym, systemami ADAS i akumulatorem. Magistrale CAN, LIN i Automotive Ethernet łączą te wbudowane moduły, zapewniając skoordynowaną pracę w czasie rzeczywistym.

FoundationZdobycie umiejętności związanych z systemami wbudowanymi zajmuje od trzech do sześciu miesięcy i obejmuje praktyczne projekty z mikrokontrolerami. Opanowanie systemu czasu rzeczywistego (RTOS), protokołów komunikacyjnych i debugowania sprzętu zazwyczaj wymaga od jednego do dwóch lat konsekwentnego doświadczenia praktycznego.

Podsumuj ten post następująco: