Łagodne wprowadzenie do systemów wbudowanych - … · Łagodne wprowadzenie do systemów...

29
Łagodne wprowadzenie do systemów wbudowanych AGH, Kraków 26.02.2009 Bartłomiej Sięka [email protected]

Transcript of Łagodne wprowadzenie do systemów wbudowanych - … · Łagodne wprowadzenie do systemów...

Page 1: Łagodne wprowadzenie do systemów wbudowanych - … · Łagodne wprowadzenie do systemów wbudowanych 3/29 Defnicja systemu wbudowanego System wbudowany (embedded) system komputerowy

Łagodne wprowadzenie do systemów wbudowanych

AGH, Kraków 26.02.2009

Bartłomiej Się[email protected]

Page 2: Łagodne wprowadzenie do systemów wbudowanych - … · Łagodne wprowadzenie do systemów wbudowanych 3/29 Defnicja systemu wbudowanego System wbudowany (embedded) system komputerowy

2/29Łagodne wprowadzenie do systemów wbudowanych

Plan

Wstęp defnicja, zastosowania charakterystyka

Sprzęt pojęcia, przykładowe platformy

Oprogramowanie warstwy oprogramowania, przykłady

Praca z systemami wbudowanymi Podsumowanie i pytania

Page 3: Łagodne wprowadzenie do systemów wbudowanych - … · Łagodne wprowadzenie do systemów wbudowanych 3/29 Defnicja systemu wbudowanego System wbudowany (embedded) system komputerowy

3/29Łagodne wprowadzenie do systemów wbudowanych

Defnicja systemu wbudowanego

System wbudowany (embedded) system komputerowy dedykowany dla jednej (lub małej liczby) funkcji część większej całości

System czasu rzeczywistego (real time) gwarancja czasu odpowiedzi na zdarzenie zewn. soft i hard real time RT to temat na osobną serię wykładów

Page 4: Łagodne wprowadzenie do systemów wbudowanych - … · Łagodne wprowadzenie do systemów wbudowanych 3/29 Defnicja systemu wbudowanego System wbudowany (embedded) system komputerowy

4/29Łagodne wprowadzenie do systemów wbudowanych

Wachlarz zastosowań wbudowanych

Telefon komórkowy, PDA, GPS

Telewizor, PVR, router, punkt dostępowy WLAN

Pralka, zmywarka, kuchenka mikrofalowa

Obrabiarki, linie produkcyjne, systemy sterujące

Przemysł samochodowy (multimedia, ABS, ...)

Lotnictwo i zastosowania kosmiczne

Medycyna (tomograf, respirator, stetoskop)

Telekomunikacja (infrastruktura, terminale)

Wojsko (nie możemy powiedzieć)

Page 5: Łagodne wprowadzenie do systemów wbudowanych - … · Łagodne wprowadzenie do systemów wbudowanych 3/29 Defnicja systemu wbudowanego System wbudowany (embedded) system komputerowy

5/29Łagodne wprowadzenie do systemów wbudowanych

Cechy charakterystyczne

Silnie zintegrowany, niewielkich rozmiarów Ograniczone interfejsy (często brak GUI) Niezawodność i trwałość Niski pobór energii Bezobsługowy, działanie bez dozoru Odporność mechaniczna Praca w trudnych warunkach środowiskowych

Page 6: Łagodne wprowadzenie do systemów wbudowanych - … · Łagodne wprowadzenie do systemów wbudowanych 3/29 Defnicja systemu wbudowanego System wbudowany (embedded) system komputerowy

6/29Łagodne wprowadzenie do systemów wbudowanych

Dlaczego systemy wbudowane?

Ogromy rynek i potencjał 10 mld układów ARM sprzedanych (mobile) 10 mln 4-rdzeniowych CPU sprzedanych (Intel)

Szerokie spektrum zagadnień (OS, sieć, arch.) Blisko sprzętu Nietrywialne problemy Satysfakcja z pracy

open source efekty pracy w rzeczywistych produktach

Page 7: Łagodne wprowadzenie do systemów wbudowanych - … · Łagodne wprowadzenie do systemów wbudowanych 3/29 Defnicja systemu wbudowanego System wbudowany (embedded) system komputerowy

7/29Łagodne wprowadzenie do systemów wbudowanych

Sprzęt dla systemów wbudowanych

Hierarchia CPU, core System on Chip (SoC) platforma

Rodzaje systemów zestaw uruchomieniowy urządzenie dedykowane

Przykłady

core

SoC

platforma

Page 8: Łagodne wprowadzenie do systemów wbudowanych - … · Łagodne wprowadzenie do systemów wbudowanych 3/29 Defnicja systemu wbudowanego System wbudowany (embedded) system komputerowy

8/29Łagodne wprowadzenie do systemów wbudowanych

System on Chip (SoC)

Silnie zintegrowany układ mikroprocesorowy CPU, cache magistrale lokalne kontrolery pamięci zewn. (RAM, Flash, …) układy peryferyjne

UART, Ethernet, PCI, PCI-E, USB, audio, wideo DMA, XOR, crypto, pattern matching

Producenci: AMCC, Freescale, Marvell,...

Page 9: Łagodne wprowadzenie do systemów wbudowanych - … · Łagodne wprowadzenie do systemów wbudowanych 3/29 Defnicja systemu wbudowanego System wbudowany (embedded) system komputerowy

9/29Łagodne wprowadzenie do systemów wbudowanych

Przykładowy SoC: MPC8572E

http://www.freescale.com/fles/graphic/block_diagram/MPC8572_BLKDIA.jpg

Page 10: Łagodne wprowadzenie do systemów wbudowanych - … · Łagodne wprowadzenie do systemów wbudowanych 3/29 Defnicja systemu wbudowanego System wbudowany (embedded) system komputerowy

10/29Łagodne wprowadzenie do systemów wbudowanych

Platforma

Główny układ SoC, oprócz niego: pamięc (RAM, Flash) obwody zasilania i kontrolne układy dostosowujące (PHY, itd) magistrale przemysłowe (I2C, CAN, SPI, RapidIO) peryferia na magistralach PCI, PCI-E, USB, … logika programowalna DSP, układy ASIC, inne układy SoC

Page 11: Łagodne wprowadzenie do systemów wbudowanych - … · Łagodne wprowadzenie do systemów wbudowanych 3/29 Defnicja systemu wbudowanego System wbudowany (embedded) system komputerowy

11/29Łagodne wprowadzenie do systemów wbudowanych

Logika programowalna

CPLD/FPGA Funkcje kontrolne i konfguracyjne Szybkie prototypowanie Implementacja algorytmów specjalnych (szyfry) Producenci: Altera, Lattice, Xilinx, ...

Page 12: Łagodne wprowadzenie do systemów wbudowanych - … · Łagodne wprowadzenie do systemów wbudowanych 3/29 Defnicja systemu wbudowanego System wbudowany (embedded) system komputerowy

12/29Łagodne wprowadzenie do systemów wbudowanych

Rodzaje platform

Zestaw uruchomieniowy ogólnego przeznaczenia przeznaczony do eksperymentów, prototypów uniwersalna płytka drukowana łatwy dostęp do I/O dodatkowe układy logiki programowalnej udostępnia interfejs JTAG

Prototyp urządzenia lub produkt końcowy dedykowany dla konkretnego rozwiązania

Page 13: Łagodne wprowadzenie do systemów wbudowanych - … · Łagodne wprowadzenie do systemów wbudowanych 3/29 Defnicja systemu wbudowanego System wbudowany (embedded) system komputerowy

13/29Łagodne wprowadzenie do systemów wbudowanych

Platforma MPC8555E CDS

Freescale Confgurable Development System Modularny, SoC na karcie-córce MPC85XX (PowerQUICC III)

Core E500 kontroler DDR/SDRAM kontroler przerwań Ethernet (TSEC) DUART PCI

I2C silnik DMA silnik kryptografczny CPM (dedykowany

procesor komunikacyjny RISC)

Page 14: Łagodne wprowadzenie do systemów wbudowanych - … · Łagodne wprowadzenie do systemów wbudowanych 3/29 Defnicja systemu wbudowanego System wbudowany (embedded) system komputerowy

14/29Łagodne wprowadzenie do systemów wbudowanych

MPC8555E CDS – schemat

http://www.freescale.com/fles/netcomm/doc/ref_manual/MPC8555CDSX3RM.pdf

Page 15: Łagodne wprowadzenie do systemów wbudowanych - … · Łagodne wprowadzenie do systemów wbudowanych 3/29 Defnicja systemu wbudowanego System wbudowany (embedded) system komputerowy

15/29Łagodne wprowadzenie do systemów wbudowanych

Page 16: Łagodne wprowadzenie do systemów wbudowanych - … · Łagodne wprowadzenie do systemów wbudowanych 3/29 Defnicja systemu wbudowanego System wbudowany (embedded) system komputerowy

16/29Łagodne wprowadzenie do systemów wbudowanych

Przykładowa platforma MPC5121

Urządzenie prototypowe Freescale MPC5121 SoC 1GB NAND Flash (Hynix HY27UG088G5M) 64MB Nor Flash (2 x Spansion GL256P11FF102) 256MB DDR2 (2 x Micron D9HNZ) Logika programowalna (Xilinx CoolRunner-II CPLD) 2 x Ethernet miniPCI, Compact Flash, serial, USB, SATA

Page 17: Łagodne wprowadzenie do systemów wbudowanych - … · Łagodne wprowadzenie do systemów wbudowanych 3/29 Defnicja systemu wbudowanego System wbudowany (embedded) system komputerowy

17/29Łagodne wprowadzenie do systemów wbudowanych

Platforma D-Link DIR-615

Produkt końcowy Marvell 88F5180N (Orion) SoC 8MB Flash (FS28F640) 32MB DDR (2 x P2S28D40CTP) 5 x Ethernet (88E6061) 802.11n WiFi (88W8361P)

Page 18: Łagodne wprowadzenie do systemów wbudowanych - … · Łagodne wprowadzenie do systemów wbudowanych 3/29 Defnicja systemu wbudowanego System wbudowany (embedded) system komputerowy

18/29Łagodne wprowadzenie do systemów wbudowanych

Systemy wbudowane: oprogramowanie

Software kluczową kwestią Warstwy oprogramowania

frmware/bootloader system operacyjny

kernel root fle system

aplikacje

Wiele architektur Na przykładzie FreeBSD

aplikacje

firmware/bootloader

root file system

kernel

sprzęt

Page 19: Łagodne wprowadzenie do systemów wbudowanych - … · Łagodne wprowadzenie do systemów wbudowanych 3/29 Defnicja systemu wbudowanego System wbudowany (embedded) system komputerowy

19/29Łagodne wprowadzenie do systemów wbudowanych

Firmware/bootloader

Najbliżej sprzętu Działa na samym początku Przechowywane w pamięci nieulotnej Ograniczone możliwości Wykonuje podstawowe czynności

inicjalizacja (pamięć, konsola, ew. sieć, inne) uruchomienie jądra systemu operacyjnego

Przykłady: CFE, EFI, OpenFirmware (IEEE-1275), U-Boot, wiele, wiele innych

Page 20: Łagodne wprowadzenie do systemów wbudowanych - … · Łagodne wprowadzenie do systemów wbudowanych 3/29 Defnicja systemu wbudowanego System wbudowany (embedded) system komputerowy

20/29Łagodne wprowadzenie do systemów wbudowanych

Systemy operacyjnedo zastosowań wbudowanych

Podstawa na której działają aplikacje właściwe dla danego zastosowania

Rosnące zainteresowanie open source kosztem systemów dostępnych komercyjnie

Odchodzenie od systemów historycznie używanych jako embedded, na rzecz adaptacji systemów ogólnego przeznaczenia (desktop, serwer)

Dlaczego FreeBSD nowoczesny, zaawansowany technologicznie system prosta i przyjazna dla przemysłu licencja

Page 21: Łagodne wprowadzenie do systemów wbudowanych - … · Łagodne wprowadzenie do systemów wbudowanych 3/29 Defnicja systemu wbudowanego System wbudowany (embedded) system komputerowy

21/29Łagodne wprowadzenie do systemów wbudowanych

Przykłady wbudowanchsystemów operacyjnych

eCos FreeBSD, NetBSD Linux

Denx Montavista WindRiver ...

LynxOS QNX Symbian Windows CE VxWorks

Wiele możliwości wyboru:

Page 22: Łagodne wprowadzenie do systemów wbudowanych - … · Łagodne wprowadzenie do systemów wbudowanych 3/29 Defnicja systemu wbudowanego System wbudowany (embedded) system komputerowy

22/29Łagodne wprowadzenie do systemów wbudowanych

Warstwa aplikacji

Defniuje funkcję systemu wbudowanego Często rozwijana wewnętrznie, zamknięta (IP) Istnieją też rozwiązania open source

Asterisk freeNAS m0n0wall pfSense … wiele innych

Page 23: Łagodne wprowadzenie do systemów wbudowanych - … · Łagodne wprowadzenie do systemów wbudowanych 3/29 Defnicja systemu wbudowanego System wbudowany (embedded) system komputerowy

23/29Łagodne wprowadzenie do systemów wbudowanych

Specyfka pracy z systemami wbudowanymi

Blisko sprzętu Wczesne wersje układów Defekty sprzętowe Niedostateczna lub błędna dokumentacja Komunikacja przez RS232, brak GUI Osprzęt pomocniczy

debugger sprzętowy (JTAG) oscyloskop, analizator logiczny

Page 24: Łagodne wprowadzenie do systemów wbudowanych - … · Łagodne wprowadzenie do systemów wbudowanych 3/29 Defnicja systemu wbudowanego System wbudowany (embedded) system komputerowy

24/29Łagodne wprowadzenie do systemów wbudowanych

Środowisko deweloperskie

Host i target Kompilacja skrośna Instalacja oprogramowania na targecie Bootowanie systemu

Flash TFTP/NFS USB/HDD/CF/MCC

Techniki debugowania

Page 25: Łagodne wprowadzenie do systemów wbudowanych - … · Łagodne wprowadzenie do systemów wbudowanych 3/29 Defnicja systemu wbudowanego System wbudowany (embedded) system komputerowy

25/29Łagodne wprowadzenie do systemów wbudowanych

Wstępne fazy uruchamiania systemu

Dostosowanie kompilatora, asemblera, linkera Wczesna inicjalizacja CPU Konfguracja/inicjalizacja

MMU cache magistrala zegary kontroler pamięci

Uzyskanie konsoli

Page 26: Łagodne wprowadzenie do systemów wbudowanych - … · Łagodne wprowadzenie do systemów wbudowanych 3/29 Defnicja systemu wbudowanego System wbudowany (embedded) system komputerowy

26/29Łagodne wprowadzenie do systemów wbudowanych

Problemy optymalizacyjne

Wymagana wysoka wydajność obliczeniowa pamięci urządzeń zewn. (dysków, USB), sieci

Rozmiar zajmowanej pamięci storage runtime

Czas bootowania systemu

Page 27: Łagodne wprowadzenie do systemów wbudowanych - … · Łagodne wprowadzenie do systemów wbudowanych 3/29 Defnicja systemu wbudowanego System wbudowany (embedded) system komputerowy

27/29Łagodne wprowadzenie do systemów wbudowanych

Przykłady naszych wdrożeń

Własne, specjalizowane rozwiązania (projekt sprzętu, PCB, software)

Software wbudowany do popularnych produktów m.in.: Apple Huawei Juniper Networks Pacomp

Page 28: Łagodne wprowadzenie do systemów wbudowanych - … · Łagodne wprowadzenie do systemów wbudowanych 3/29 Defnicja systemu wbudowanego System wbudowany (embedded) system komputerowy

28/29Łagodne wprowadzenie do systemów wbudowanych

Systemy wbudowane: podsumowanie

Ogólne wprowadzenie w tematykę Sprzęt i oprogramowanie Dziedzina interesująca, warta uwagi Praca w środowisku wbudowanym

wymagająca intrygująca dająca satysfakcję (złożone problemy do pokonania)

Następne wykłady z serii FreeBSD, U-Boot, sterowniki

Page 29: Łagodne wprowadzenie do systemów wbudowanych - … · Łagodne wprowadzenie do systemów wbudowanych 3/29 Defnicja systemu wbudowanego System wbudowany (embedded) system komputerowy

29/29Łagodne wprowadzenie do systemów wbudowanych

Łagodne wprowadzenie do systemów wbudowanych

AGH, Kraków 26.02.2009

Bartłomiej Się[email protected]

Dziękuję za uwagę.

Pytania?