Aktuální vydání

celé číslo

07

2019

Řízení dopravy a budov

celé číslo

Vestavné systémy: charakteristika, vývoj, použití

 
 

Vestavné systémy: charakteristika, vývoj, použití

Vilém Srovnal

Většina výrobků, které nás každodenně obklopují, dnes obsahuje vestavné systémy (embedded systems), mnoho jich lze nalézt v automobilech, v kamerách, fotoaparátech, mobilních telefonech a hračkách, ale také v jednotkách pro automatické řízení výroby, v lékařských přístrojích a v domácnostech (v pračkách, myčkách, televizorech apod.). Všem těmto výrobkům vestavné systémy poskytují potřebnou inteligenci. Možnosti jejich využití jsou tak rozsáhlé, že nástup vestavných systémů svým významem převyšuje předcházející milníky vývoje informační techniky. Dokument řídicího výboru ESTP (Embedded System Technology Platform) Evropské strategické iniciativy definuje embedded systems (ES) jako kombinaci hardwaru a softwaru, jejímž smyslem je řídit externí proces, zařízení nebo systém. Jde v podstatě o desku s procesorem a ostatní elektronikou naprogramovanou pro řízení přístroje, do něhož je zabudována. Vestavné systémy jsou mnohdy navrženy tak, aby byly funkční i bez lidského zásahu a byly schopny reagovat na události probíhající v reálném čase. Na rozdíl od osobních počítačů nepoužívají pro spojení s okolím myš, klávesnici a grafické uživatelské rozhraní, ale senzory, aktuátory a specializované komunikační jednotky pro drátovou i bezdrátovou komunikaci.

Požadavky na vývoj

Vestavné systémy jsou používány v široké škále zařízení pro nejrůznější funkce, což vede k vývoji jednoúčelových řešení a paralelní práci na hardwaru a softwaru. Při jejich návrhu [1] je třeba zohlednit rozměry, hmotnost a cenu výrobku nebo zařízení, jehož jsou součástí. Z těchto důvodů je omezena velikost i výkon vestavných systémů. Často také musí pracovat v reálném čase. Dalšími omezeními mohou být dostupnost, robustnost a spotřeba energie.

Vzhledem k uvedeným požadavkům je často třeba vyvíjet vestavný software s použitím operačních systémů pracujících v reálném čase (RTOS) [2]. Pro návrh jsou k dispozici metody a nástroje pro analýzu, specifikaci, návrh, verifikaci a certifikaci provozní spolehlivosti. Ty se uplatní zejména u systémů s vnitřně propojenou sítí s vysokými požadavky na kritické řízení zdrojů, časových limitů a malou spotřebu energie. Vestavné systémy by měly pracovat s bezchybnou interakcí respektující omezení reálného světa.

Vestavné (embedded) systémy mají několik specifických vlastností:

  • kritičnost: stupeň kritičnosti závisí na vlivu odchylek od normálního chování na spolehlivé a bezpečné splnění úkolu,

  • reaktivnost: vestavné systémy jsou ve stálém spojení s prostředím, v němž jsou umístěny; práce v reálném čase je často do jisté míry omezená, protože zpracování je limitováno rychlostí zpracování,

  • autonomie: funkce musí být prováděny bez lidského zásahu po dosti dlouhou dobu; autonomie je zejména vyžadovaná tam, kde by lidská reakce byla příliš pomalá nebo nedostatečně předvídatelná (např. systém ABS u automobilu).

    Hardware

    Velký výběr procesorů
    Z devíti miliard procesorů, které jsou za rok ve světě vyrobeny, jsou pouze 2 % určena pro nové osobní počítače typu PC nebo Mac a pracovní stanice Unix. Zbývajících 8,8 miliardy pracuje především jako procesory ve vestavných systémech.

    Existuje široká škála vestavných procesorů: od jednoduchých čtyřbitových, které jsou součástí hrajících pohlednic nebo dětských hraček, přes osmi-, šestnácti- a 32bitové procesory až po výkonné zákaznické 128bitové mikroprocesory, specializované signálové procesory (obr. 1) a síťové procesory. Některé výrobky využívající tyto čipy pracují pouze s krátkým programem napsaným v asembleru, který je uložen v paměti ROM, a nevyžadují žádný operační systém. Mnoho jiných však vyžaduje operační systém reálného času (RT) s vícevláknovými procesy, které jsou naprogramovány v jazyce C nebo Embedded C++.

    Zatímco v PC se využívají procesory jen několika výrobců (nejčastěji Intel nebo AMD), počet výrobců procesorů pro vestavné systémy je daleko pestřejší. V tab. 1 jsou uvedeny alespoň ti nejznámější výrobci spolu s typy vyráběných procesorů. Návrháři si mohou z pestrého výběru snadno zvolit pro svou úlohu procesor s požadovaným výpočetním výkonem a odběrem energie. Jednotlivé typy procesorů jsou vyráběny v různých variantách a pro spojení s řízeným procesem využívají různé prostředky: rozličné typy A/D a D/A převodníků, číslicových vstupů a výstupů a různá komunikační rozhraní: RS-232, RS-485, USB, CAN, LIN, Ethernet aj.

    Tab. 1. Významní výrobci procesorů vestavných systémů

    Výrobce

    Typy procesorů

    ARM

    ARM 7, 9, 10, 11

    Atmel

    MARC4, 8051, AVR 8, 32, AT 91

    Analog Devices

    Blackfin, SHARK, TigerSHARK, ADSP21xx

    Freescale

    HC(S) 08, 11, 12, 16, 5xx, 51xx, ARM, MMC2xxx, MAC7xxx, ColdFire, PowerQUICC

    Microchip

    PIC10, 12, 16, 18, 24F, 24H, dsPIC30, dsPIC33

    NEC

    78KOS, 78KOR, V850, VR 4100, 5500, 7701

    Texas Instruments

    TMS370, MSP430, TMS470, C2000

    Toshiba

    T4X, TLCS870, TLCS900, TX19,39, TX49,99

    Vývojáři vestavných systémů často využívají vývojové sady (kity) vybavené vybraným procesorem, na nichž svůj návrh nejprve ověří, a teprve poté navrhnou vlastní desku s procesorem a ostatní elektronikou, která tvoří vestavný řídicí systém pro dané zařízení a vyhovuje i svými rozměry. V některých případech vývojáři využijí již hotové desky různých výrobců.

    Platformy PC, FPGA a ASIC
    Samostatnou skupinou jsou vestavné systémy založené na procesorech určených pro PC. Vývoj takových systémů využívá standardní prostředí a nástroje používané na PC. Tato skupina je často označována jako Embedded PC a úzce s ní souvisí jednodeskové počítače SBC (Single Board Computer). Rozměry desek SBC a jejich rozhraní jsou standardizované (PC/104, EBX, EPIC a COM Express). Stále větší integrace vede k menším rozměrům desek, např. 3,5" a 2,5". Vedle procesorů známých z PC (x86) lze použít i jiné typy, např. MIPS, ARM, X-Scale a PowerPC.

    Další platformou pro vývoj vestavných systémů jsou obvody FPGA (obr. 2). Na této platformě se navrhne zákaznický obvod, který nahradí standardní procesor a další obvody. Výhodou tohoto návrhu je skutečnost, že vestavný systém je daleko obtížněji kopírovatelný, protože jeho software je odolný proti prolomení kódu. Další výhodou je možnost snadného použití kryptografických algoritmů. Mezi přední výrobce obvodů FPGA patří firmy Xilinx, Altera, Lattice Semiconductor, Actel, Atmel, QuickLogic, Achronix Semiconductor a MathStar. Nejoblíbenější jsou obvody firmy Xilinx. Obvody FPGA se nejčastěji používají při návrhu pro vestavné systémy s velkým výpočetním výkonem, protože jejich architektura umožňuje značný paralelismus výpočtu.

    V současnosti se objevuje nový trend v oblasti vestavného hardwaru – návrh celého vestavného systému na jediném čipu – ASIC. Příkladem může být vestavný systém pro měření tlaku s korekcí na teplotu v kolech automobilu, kde je napájení řešeno buď z baterie, která vydrží i deset let provozu, nebo s využitím alternativního zdroje založeného na pohybu kola. Na čipu jsou jednak senzory tlaku a teploty a jednak vysílač pro bezdrátový přenos dat na sběrnici LIN nebo CAN a dále do centrálního systému řízení automobilu. Takový vestavný systém nabízí mnoho firem, např. Freescale (na bázi procesoru HCO8RF2 nebo 68HC908RF2 a obvodu MPXY8020A), Atmel (na bázi čipů ATA5756 a 5757), National Semiconductor, Swindon Silicon Systems, Schrader Electronics, Infineon Technologies, GE NovaSensor (senzor NPX-1), SensoNor (senzor SP12) aj. Aktivita senzoru v pneumatice je autonomní vzhledem k centrálnímu řídicímu systému a využívá akcelerometr pro řízení přepínání režimu probuzení a spánku senzoru pro prodloužení životnosti baterie.

    Bezdrátová komunikace
    Významnou roli při rozšiřování vestavných systémů rovněž sehrály bezdrátové technologie, které zajišťují např. přenos dat mezi pohybujícími se objekty nebo pohybujícími se částmi stroje. Ve vestavných systémech se používá množství standardů pro bezdrátový přenos dat. Systém GSM se uplatňuje ve vestavných měřicích systémech, kde je třeba přenášet měřená data na velké vzdálenosti. Data jsou přenášena buď v podobě zpráv SMS nebo pomocí GPRS z míst na rozsáhlém území, kde nemusí být standardní zdroj energie.

    Na střední a kratší vzdálenosti se používají metody přenosu vycházející z mezinárodních standardů pro lokální a osobní sítě IEEE 802.11 Wireless LAN-Local Area Networks (Wi-Fi) a IEEE 802.15 Wireless PAN-Personal Area Networks, mezi které patří IEEE 802.15.1 (Bluetooth) a IEEE 802.15.4 (ZigBee). Všechny jsou určeny pro bezlicenční pásmo 2,4 GHz. Pro přenos dat na krátkou vzdálenost lze rovněž použít infračervené záření – standard IrDA. Další bezlicenční pásmo, které se volí u vestavných systémů, je pásmo ISM (Industrial, Scientific and Medical), v USA tomu odpovídá pásmo 315 MHz a v Evropě 434 MHz a také 2,4 GHz. Zde si mnohdy uživatel s ohledem na úlohu, zejména na rychlost komunikace, vytváří vlastní komunikační protokol, např. s komunikačním modulem Nordic nRF2401 (obr. 3).

    Pro některé vestavné úlohy se pravděpodobně začne používat i nový standard IEEE 802.16 Broadband Wireless Access (WiMAX – Worldwide Interoperability for Microwave Access) a jeho specifikace IEEE 802.16e., který je určen pro frekvenční pásmo 2 až 11 GHz.

    Software

    Požadavky
    Software pro vestavné systémy přináší nové schopnosti pro množství hardwarových výrobků, umožňuje např. stanovit fyzikální chování i pro složité nelineární systémy. Princip použití softwaru u vestavných systémů je v mnoha ohledech shodný se softwarem konvenčních počítačů. Hlavní rozdíl je v tom, že vestavný software vyžaduje mnohem více interakcí se systémovými hardwarovými prvky, přitom však musí vystačit s omezenými prostředky. Značné požadavky jsou kladeny na jeho spolehlivost, a to z těchto důvodů:

    • systém nelze vzhledem k opravě bezpečně vypnout nebo je pro opravu nepřístupný (systémy ve vesmíru, podmořské kabely, navigační majáky, automobily aj.),

    • opravny jsou relativně vzdálené a opravy jsou finančně náročnější než výroba nového produktu (sériově vyráběná spotřební elektronika aj.),

    • systém musí být z bezpečnostních důvodů neustále v chodu (navigační systémy letadel, řízení jaderných reaktorů, řízení nebezpečných chemických provozů, provoz vlaků, řízení motorů letadel aj.),

    • zastavení systému způsobí velké finanční ztráty (telefonní ústředny, řízení strojů, řízení výtahů aj.),

    • systém nemůže běžet v nebezpečném nebo nekorektním stavu (lékařské přístroje, zálohované letecké přístroje, řízení chemických procesů aj.).

    V poslední době se u vestavných systémů projevil obrovský nárůst výpočetního výkonu díky tomu, že v klíčových technických oblastech nastala tato vylepšení:

    • CPU a paměť vyhovují použití vyšších programovacích jazyků,

    • kompilátory a vývojové nástroje jsou kvalitní; buď jsou volně dostupné, nebo se prodávají za nízkou cenu,

    • paměť je energeticky nezávislá,

    • je k dispozici kompaktní a laciný hardware s nízkou spotřebou energie,

    • jsou zlepšeny komunikační možnosti a připojení do sítě [3].

    Díky těmto změnám vestavěné zpracování v mnoha oblastech již nevede k žádným omezením.

    Vývoj softwaru
    Jakmile je zvolen hardware vestavného systému, je třeba zvolit postup vývoje soft waru. Mnohdy je software vybírán současně s hardwarem. Při tom je zapotřebí zodpovědět množství otázek:

    • Je třeba použít operační systém, nebo ne?
    • Probíhá úloha v reálném čase?
    • Jak bude uživatelský program spuštěn při zapnutí napájení?
    • Jak bude uživatelský program zaveden do hardwaru vestavného systému?
    • Jaké jsou požadavky uživatelského programu na paměť (pro běh programu a zpracovávaná data)?
    • Jaký bude použit programovací jazyk při vývoji uživatelského programu?
    • Jak bude odlaďován software vestavného systému?
    • Vyžaduje uživatelský program systém souborů?
    • Vyžaduje uživatelský program připojení do sítě?
    • Je třeba použít externí knihovny nebo ovladače (drivers)?
    • Jaké sběrnice jsou potřebné pro zajištění všech funkcí hardwaru?

    Kromě těchto základních otázek, které lze seřadit v různém pořadí, je možné najít ještě mnoho dalších, na jejichž základě lze zvolit strategii pro vývoj softwaru vestavného systému. Další otázky může také vyvolat diskuse se zákazníkem, který má obvykle množství speciálních požadavků a často nabízí podněty, které mohou ovlivnit strategii vývoje softwaru.

    Vývoj softwaru bez RTOS
    U jednoduchých uživatelských programů, které tvoří asi 30 % vestavných systémů, se nepoužívá operační systém reálného času (RTOS). V tomto případě začíná vývoj vestavného softwaru tím, že výrobci nebo specializované softwarové firmy poskytnou vývojářům kvalitní vývojové nástroje pro příslušný typ procesoru (tab. 2). Vývojové nástroje umožňují:

    • vývoj softwaru ve vyšším programovacím jazyce, nejčastěji v C, Embedded C++ a Java (v USA se ještě používá ADA),
    • generování strojového kódu pro daný procesor,
    • odladění strojového kódu, popř. doplnění úseky kódu v assembleru,
    • zavedení strojového kódu do procesoru.
    Tab. 2. Vývojová prostředí pro některé typy procesorů

    Procesor

    Vývojové prostředí

    Freescale

    CodeWarrior (pro kratší kód zdarma)

    Microchip

    CCS PIC a další

    Analog Devices

    Visual DSP, EZ-Kit Lite a další

    Atmel

    LITE SUITE RKitL51, Crossware‘s 8051 Development Suite aj.

    Některá vývojová prostředí lze použít i pro různé typy procesorů, např. vývojový nástroj od IAR Systems podporuje vývoj pro procesory 8051, ARM, AVR, MSP430 a další. Pro zavedení strojového kódu do procesoru jsou určena standardizovaná nebo specializovaná rozhraní. Například procesory Freescale využívají rozhraní SDI a konektor BDM na vývojové desce.

    V poslední době používá mnoho vývojových týmů vyšší vývojové nástroje, které přímo generují kód ve vyšším jazyku, jako je jazyk C. Tím se zrychlí vývoj softwaru (Rapid Prototyping) a usnadní dokumentace projektu softwaru. Mezi tyto nástroje patří RT UML (Rhapsody od firmy I-Logix nebo Embedded Rational Rose od firmy IBM) nebo embedded UML. Tyto nástroje umožňují grafický návrh různých diagramů popisující úlohu a generují dokumentaci. Takto může být využíváno programovací prostředí Matlab se systémem Simulink, kde návrh řízení v Simulinku je možné vygenerovat do jazyka C a dále přes vývojové nástroje procesorů (např. CodeWarrior) do strojového kódu.

    Vývoj softwaru pro vestavné systémy na bázi FPGA a na čipu je odlišný od standardního vývoje vestavného softwaru. Zde se využívá především jazyk VHDL nebo integrované nástroje pro obvody FPGA, které poskytují jejich výrobci, popř. vývojový software pro čipy, které dodávají firmy, jako jsou Cadance, Mentor Graphics aj. Pro menší úlohy může vývojář vytvořit řídicí program v prostředí Matlab a zavést jej až do obvodu FPGA.

    Vývoj softwaru s RTOS
    Především u složitějších vestavných systémů (přibližně v 70 % případů) je třeba použít operační systém reálného času. Vývoj vestavného softwaru je pak trochu složitější. Vývojář si musí z rozsáhlé nabídky RTOS pečlivě zvolit vhodný operační systém pro dané použití. Mezi nejdůležitější kritéria patří požadavek na podporu časově kritických systémů (hard real-time), zejména u procesů běžících v reálném čase. K dispozici je několik typů operačních systémů splňujících tento požadavek:

    • RTOS pro obecné úlohy v reálném čase: VxWorks, QNX, RT Linux aj.,
    • specializované RTOS: CMX RTOS, DeltaOS, eCos, embOS, FreeRTOS, Fusion Embedded, Nimble, OSEK/VDX (pro automobilový průmysl), Salvo, ThreadX, TinyOS aj.,
    • RTOS, které využívají procesory běžné pro PC: eRTOS, Phar Lap ETS nebo On Time RTOS-32,
    • nadstavby pro operační systémy typu Windows: INtime, iRMX nebo RTX.

    Zvláštní skupinu tvoří vestavné operační systémy, které nepodporují kritické úlohy reálného času, např. Palm OS, Pocket PC, Windows CE 3.0 až 6.0, Windows CE .NET, Windows XP Embedded aj. Podrobný rozbor RTOS pro vestavné systémy překračuje rozsah tohoto článku [4].

    Uvedené typy RTOS jsou velmi flexibilní a vyznačují se dobrou kompatibilitou pro různé hardwarové platformy a snadnou rozšiřitelností. K operačnímu systému je většinou k dispozici vývojové prostředí pro vývoj uživatelských programů (aplikací) na osobních počítačích, v prostředí operačních systémů Windows nebo Linux. Vývojové prostředí zpravidla zahrnuje komplexní sadu křížových vývojových nástrojů a další vybavení včetně komunikačních nástrojů pro spojení vývojového hostitelského systému na osobním počítači s cílovým vestavným systémem s určitým procesorem [4].

    V zásadě existují dvě základní možnosti vývoje a ladění uživatelských programů:

    • ve vlastním prostředí (self-hosted) – vývoj přímo na cílovém systému; počítač musí mít dostatečné množství prostředků a odpovídající výkon; běžně se využívá u vestavných PC,

    • křížový vývoj (cross-development) – vývoj na hostitelském systému, neboť cílový systém má omezené zdroje znesnadňující či znemožňující přímý vývoj uživatelských programů.

    Ladění uživatelských programů při křížovém vývoji je znázorněno na obr. 4. Ladicí program běží na hostitelském systému a laděný software na cílovém systému. Hostitelský a cílový systém musí být vzájemně propojeny komunikačním kanálem. Ladicí agent může být na úrovni procesu. Při výskytu bodu přerušení (breakpoint) převezme ladicí agent řízení procesu a zastaví všechna jeho vlákna. Ostatní procesy pokračují v běhu a přerušení jsou povolena. V tomto stavu je možné zjistit stav libovolného vlákna pozastaveného procesu. Lze také vybrat vlákna, která zůstanou zastavená, a pokračovat dále.

    V závislosti na podobě komunikačního kanálu může ladicí program realizovat spojení nejčastěji přes standardní sériová rozhraní RS-232C, USB nebo Ethernet či přes speciální rozhraní na vývojových deskách cílových systémů, jako je rozhraní SDI s konektorem BDM pro procesory Freescale.

    Jedním z nejmarkantnějších rozdílů při práci s vestavnými systémy nebo jednodeskovými počítači a klasickými počítači PC je instalace operačního systému. Například na desce cílového počítače je paměť flash, do které je nutné celý operační systém a vyvíjené uživatelské programy zavést z hostitelského systému. Cílová paměť může být i odlišného typu. Základní operací je načíst do paměti flash zavaděč cílového systému; to se nejčastěji dělá pomocí rozhraní JTAG nebo I2C, popř. i jiných. Pro vlastní zavedení obrazu operačního sytému vytvořeného na hostitelském počítači do paměti flash cílového systému se většinou využije některé standardní sériové rozhraní, nejčastěji Ethernet.

    Podpora EU ve vývoji vestavných systémů

    Vestavné systémy jsou v současné době velmi rychle rostoucím odvětvím. Evropa má přitom v této oblasti významné postavení, které přímo přispívá k vedoucí pozici kontinentu v hlavních sektorech průmyslu, jakými jsou automobilový průmysl, letecká elektronika, telekomunikace, spotřební elektronika, řízení procesů, železniční doprava, energetika aj. Dva evropské projekty zajišťují podporu firmám, které se vývojem vestavných systémů zabývají; jsou to projekty Emtech a Artemis.

    Cílem evropského projektu Emtech je pomoc malým a středním firmám, které vyvíjejí nebo používají vestavné systémy. Projekt umožňuje orientovat se v evropských strukturách vývoje a výzkumu a získat aktuální informace o nových směrech a výsledcích výzkumu v oblasti vestavných systémů. Zajišťuje také přípravu na možnost přímé účasti na evropských výzkumných projektech.

    V příštích letech bude mít značný vliv na vývoj ve zmíněné oblasti platforma Artemis (www.cordis.lu/ist/artemis), kterou založili nejdůležitější účastníci na trhu ES jak z oblasti průmyslu, tak i výzkumu.

    Literatura:
    [1] QING, Li: Real-Time Concepts for Embedded Systems. CMP Books, 2003.
    [2] SROVNAL, V.: Operační systémy pro řízení v reálném čase. VŠB – Technická univerzita, Ostrava, 2003.
    [3] SRIDHAR, T.: Designing Embedded Communications Software. CMP Books, 2003.
    [4] SROVNAL, V.: Přehled operačních systémů reálného času. AT&P Journal, October 2005, Volume 12, Issue 10-12, pp. 51–53, pp. 64–65, pp. 56, ISSN 1335-2237.

    prof. Ing. Vilém Srovnal, CSc.,
    VŠB – Technická univerzita Ostrava, FEI, katedra měřicí a řídicí techniky

    Obr. 1. Vestavný řídicí systém se dvěma procesory DSP Freescale 56F805 pro robot hrající fotbal robotů (návrh a realizace VŠB TUO, katedra měřicí a řídicí techniky)
    Obr. 2. Vestavný řídicí systém systému s obvodem FPGA
    Obr. 3. Ve vestavěném řídicím systému z obr. 1 je červeně vyznačen komunikační modul Nordic nRF2401 (2,4 GHz), umožňující pracovat se 125 komunikačními kanály
    Obr. 4. Znázornění křížového ladění a vývoje

    Příspěvek lze ve formátu PDF stáhnout zde

  •