Vestavěný systém
vestavěný systém je specialita-účel počítačový systém vyrůstal do většího zařízení. Vestavěný systém je typicky požadovaný splnit velmi odlišné požadavky než general-purpose osobní počítač.
Dvě hlavní oblasti rozdílů jsou cena a spotřeba energie. Protože mnoho vestavěných systémů je produkováno v tens tisíců k miliónům rozsahu jednotek, snížení ceny je hlavní starost. Vestavěné systémy často používají (relativně) zpomalovat procesor a malou pamětovou velikost minimalizovat ceny.
Pomalost není jen rychlost hodin. Celá architektura počítače je často úmyslně zjednodušená k nižším cenám. Například, vestavěné systémy často používají periférie řízené synchronními sériovými rozhraními, který být deset ke stovkám časů pomaleji než srovnatelné periférie používané v PC.
Programy na vestavěném systému často musí běžet s real-time omezení. Obvykle tam je žádná disková jednotka, operační systém, klávesnice nebo obrazovka.
Tam je mnoho různého CPUčka architektury používané ve vložených designech. Toto v srovnání s trhem stolního počítače, který jak tohoto psaní (2003) je omezen k jen nemnoho soupeřících architektur, hlavně Intel' s x86, a jablko/Motorola/IBM PowerPC, použitý v Apple Macintosh.
Jedna obyčejná konfigurace pro vestavěné systémy je systém na čipu, aplikace-specifický integrovaný obvod, pro kterého procesor byl koupen jako intelektuální vlastnictví se přidat k IC designu.
Softwarové nástroje (kompilátoři, montéři a debugger) se vyvíjeli vestavěný systém může přijít z několika zdrojů:
- Softwarové firmy, které se specializují ve vloženém trhu
- Ported od GNU vývoje software nástroje
- Někdy, rozvojové prostředky k osobnímu počítači mohou být používány jestliže vložený procesor je blízký příbuzný k obyčejnému PC procesoru.
Ladění je obvykle vykonáváno s v-emulátor obvodu, nebo nějaký druh debuggeru, který může přerušit microcontroller je interní mikrokód.
Mikrokódové přerušení nechá ladící program pracovat v hardwaru ve kterém jen procesor pracuje. CPUčko-založený ladící program může být zvyklý na test a ladit elektroniku počítače z hlediska CPUčka. Tento rys byl propagován na PDP-11.
Vývojáři by měli trvat na ladění, které ukazuje vysokoúrovňový jazyk, se zarážkami a jeden-šlápnout, protože tyto rysy jsou široce dostupné. Také, vývojáři by měli psát a používat jednoduchý zaznamenávat schopnosti ladit sekvence real-time události.
PC nebo programátoři sálového počítače nejprve se setkávat s tímto druhem programování často stát se zmatený prioritami designu a přijatelnými metodami. Mentoring, kód-recenze a programování egoless jsou doporučeni.
První rozeznatelně moderní vestavěný systém byl Apollo počítač vedení, vyvinutý Charles obchodníkem s textilem a MIT vybavením laboratoř. Každý let do měsíce měl dva. Oni provozovali inertial vedení systémy obou velitelská kabina a Lem.
U založení projektu, apollo počítač vedení byl považován za nejriskantnější položku v projektu apollo.
První masově vyráběný vestavěný systém byl počítač vedení pro minuteman raketu. To také používalo integrované obvody, a byl první uživatel hlasitosti je. Bez tohoto programu, integrované obvody by mohly nikdy dosáhli použitelné ceny-bod.
Velmi důležité designové rysy minuteman počítače byly že jeho algoritmus vedení mohl být reprogrammed později v programu, dělat raketu přesnější, a počítač mohl také testovat raketu, kabel ukládání a váhu konektoru.
Konstrukce vestavěných systémů
Elektronika obvykle používá jeden mikroprocesor nebo microcontroller. Některé velké nebo staré systémy používají general-purpose sálový počítač počítače nebo minipočítače.
Všechny vestavěné systémy mají začáteční kodex. Obvykle to vyřadí přerušení, soubory zvýší elektroniku, testuje počítač (RAM, CPUčko a program), a pak odstartuje kód aplikace. Mnoho vestavěných systémů se dostane z krátkodobých výpadků elektřiny skákáním self-testy jestliže software může dokázat, že oni byli děláni nedávno. Restartovat časy dolů 1/10 sekundy být samozřejmost.
Mnozí návrháři našli software-kontrolované světlo užitečný k ukážou chyby. Jeden obyčejný způsob, jak se zabývat tím má mít elektroniku vypnout to (který vypadá zlomeně) u resetovaný. Software zapne to u první příležitosti se ukázat jako lehké práce. Po tom, kód mrkne tím během normálního chodu, a možná ve vzorech pro chyby. Toto ujistí mnoho uživatelů a technicians.
Druhy vložených softwarových architektur
Tam je několik zásadně odlišných druhů architektur softwaru v běžném používání.
V tomto designu, software prostě má smyčku. Smyčka volá subrutiny. Každá subrutina řídí díl hardwaru nebo softwaru. Přerušení obecně dají vlajky nebo aktualizační pulty, které jsou četly zbytkem softwaru.
Jednoduchý API vyřadí a umožní přerušení. Hotový pravý, to se zabývá vloženými hovory ve vložených subrutinách, a obnoví předchozí přerušovací stát v outermost zmocnit. Toto je jeden z nejjednodušších metod vytvářet exokernel.
Typicky, tam je nějaký druh subrutiny ve smyčce řídit seznam časovačů softwaru, používat periodické skutečné časové přerušení. Když časovač vyprší, sdružená subrutina je provozována nebo vlajka je dána.
Některý očekával událost hardwaru by měla být podporována-nahoru s časovačem softwaru. Události hardwaru propadnou o jakmile v trillion časy. To je okolo jednou rok s moderním hardwarem. S miliónem masově vyráběná zařízení, odcházející ven časovač softwaru je pohroma obchodu.
Státní stroje jsou realizovány s funkcí-ukazatel na stát-stroj (v C + +, C nebo shromáždění, rozhodně). Změna státu uloží odlišnou funkci do ukazatele. Ukazatel funkce je vykonán vždy, když smyčka běží.
Mnozí návrháři doporučí číst každé IO zařízení jednou na smyčku a uložení výsledek tak logika jedná podle souhlasných hodnot.
Mnozí návrháři upřednostňují navrhnout jejich stroje státu kontrolovat jediný nebo dvě věci na stát. Obvykle toto je událost hardwaru a časovač softwaru.
Návrháři doporučí to hierarchické státní stroje by měly běžet nižší-úrovňové státní stroje dříve vyšší, tak vyšší běh s přesnou informací.
Komplexní funkce jako ovládací prvky vnitřního spalování jsou často se ovládal s multi-rozměrné stoly. Místo toho komplexních vypočítavostí, kód vyhledá hodnoty. Software může pozměnit mezi záznamy, držet stoly malý a levný.
Někteří návrháři drží obslužný program ke otáčecím datovým souborům do kódu, tak že oni mohou zahrnovat nějaký druh dat v programu.
Nejvíce návrháři také mají obslužné programy přidat kontrolní součet nebo CRC k programu, tak to může kontrolovat jeho programového údaje předtím, než vykoná to.
Jedna hlavní slabost tohoto systému je že to negarantuje čas reagovat na nějakou zvláštní hardwarovou událost. Jiný je že to může stát se komplexní k dodají nové rysy.
Síla je to to je jednoduché a na malých kusech softwaru smyčka je obvykle tak rychle že nikdo se stará že to je nepředvídatelné.
Další výhoda je že tento systém garantuje, že software bude běžet. Není tam žádný tajemný operační systém k vině za špatné chování.
Opatrné kódování může snadno ujišťovat, že nic vyřadí přerušení na dlouho. Tak přerušovací kód může dosáhnout velmi přesných timings.
Tento systém je velmi podobný k nahoře, kromě toho smyčka je skryta v API. Jeden definuje sérii úloh a každá úloha dostane jeho vlastní subrutinovou hromadu. Pak, když úloha je nezaměstnaná, to volá línou rutinu (obvykle volal “odmlku”, “vyčkávání” nebo etc.).
Architektura s podobnými vlastnostmi má mít frontu události, a mají smyčka, která odstraní události a hovory subrutiny založené na poli ve frontě-vstup.
Výhody a nevýhody jsou velmi podobný smyčce kontroly, kromě toho připočítání nový software je snadnější. Jeden jednoduše píše novou úlohu, nebo se přidá k frontě-interpret.
Vzít některého nad systémy, ale přidat systém časovače, který provozuje subrutiny od přerušení časovače. Toto přidá úplně nové schopnosti k systému. Poprvé, rutiny časovače mohou nastat v zaručené době.
Také, poprvé, kód může stoupnout na jeho vlastní datové struktury u neočekávaných časů. Rutiny časovače musí být léčeny stejnou péčí jak přerušovacími rutinami.
Vzít nahoře nonpreemptive úlohový systém a běh to od preemptive časovač nebo jiná přerušení.
Najednou systém je docela odlišný. Nějaký kus kódu úlohy může poškodit data další úlohy - oni musí být přesně odděleni. Přístup ke sdíleným datům musí být tuze kontrolovaný, s frontami zpráv nebo semaphores.
Často, v této chvíli, vyvíjející se organizace kupuje real-time operační systém. Toto může být moudré rozhodnutí jestliže organizace postrádá lidi se schopnostmi psát jednoho, nebo jestliže port operačního systému k hardwaru bude použit v několika produktech. Jinak, být vědomý, že to obvykle sčítá šest k osmi týdnům k plánu, a navždy po programátorech mohou zpoždění viny na tom.
Office-stylové operační systémy
Tito jsou populární pro vložené projekty, které mají žádný rozpočet systémů. Podle názoru přinejmenším jeden autor tohoto článku, oni jsou obvykle chyba. Here's logika.
Operační systémy jsou specificky-balené knihovny znovu použitelného kódu. Jestliže kód dělá něco užitečný, návrhář šetří čas a peníze. Jestliže ne, to je bezcenné.
Operační systémy pro systémy obchodu postrádají rozhraní k vloženému hardwaru. Například, jestliže jeden používá linux, aby napsal motoru řadič nebo přepínač telefonu, většina ze skutečné kontroly operace skončí jak počítané funkce v IOCTL volají. Zatím, normální čtení, psát, fseek, rozhraní je bezúčelné. Tak operační systém vlastně střetává se s vývojem.
Kancelářské stylové operační systémy chrání hardware před programy uživatele. To je, oni se střetávají s vývojem vestavěných systémů hluboce.
Protože nejvíce vestavěné systémy nevykonávají kancelářskou práci, většina kódu kancelářského obsluhování systémů je odpad. Například, většina vestavěných systémů nikdy používá souborový systém nebo obrazovka tak souborový systém amd logika Gui je odpad.
Operační systémy musí trvale být ported k vestavěnému systému. To je, hardwarový řidičský kód musí vždy být psán stejně. Protože toto je nejtěžší část operačního systému, malý je uložen tím, že používá jednoho.
Minule, ryze užitečné, přenosné rysy operačních systémů jsou malé kusy kódu. Například, základní TCP/IP rozhraní je o 3,000 linkách C kód. Podobně, jednoduchý souborový systém. Tak, jestliže design potřebuje tyto, oni mohou být měl za méně než 10 % typického vloženého systémového rozvojového rozpočtu, bez královské hodnosti, jen tím, že píše je. Také, jestliže potřebovaný kód je dostatečně druhový, zadní strana embeded časopisy systémů typicky přimět prodavače prodávat královskou hodnost-volný C implmentation.
Pozoruhodná, milovaná výjimka ze všech těchto námitek je DOS pro IBM-PC. Jestliže vy používáte jeden-počítač karty, BIOS je dělán, tak žádní řidiči. DOS dovolí kódu psát hardwaru. Konečně, DOS nedělá hodně, tak to je kompaktní.
Exotické zakázkové operační systémy
Některé systémy vyžadují bezpečný, příhodný, spolehlivé nebo účinné chování nezískatelný s nad architekturami. Tam jsou známé lsti k pojmu tyto systémy:
Najměte skutečného systémového programátora. Oni stáli malý více, ale moci uložit roky ladění a spojené ztráty výnosu.
RMA, míra monotonic analýzu, moci být používán objevit zda soubor úloh může běžet v definovaném hardwarovém systému. V jeho nejjednodušší formě, návrhář ujišťuje, že nejrychleji-úlohy dokončení mají nejvyšší přednosti, a to v průměru, procesor má přinejmenším 30 % jeho času volný.
Harmonické úlohy optimalizují efektivitu CPUčka. V podstatě, návrháři ujišťují, že všechno běží z časovače tepu. To jde těžko dělat toto s real-time operační systém, protože tito obvykle mění úlohy, když oni čekají na já/O zařízení.
Systémy s přesně dvě úrovně priority (obvykle běžet, a přerušení-postižený) moci ne mít převrácené přednosti, ve kterém nižší přednostní úkol čeká na vyšší-přednostní úkol pustit semafor nebo jiný zdroj.
Systémy s monitory nemohou mít mrtvé bod. Monitor uzamkne oblast kódu od přerušení nebo jiné nucené přerušení. Jestliže monitor je jen aplikován na malé, rychlé kusy kódu, toto může pracovat přijatelně dobře.
Toto znamená, že systémy, které používají dvojí prioritu a monitory jsou bezpečné a spolehlivé, protože hey postrádají jak mrtvé bod tak opak priority. Jestliže oni používají harmonické úlohy, oni mohou dokonce být docela účinní. Nicméně, RMA nemůže charakterizovat tyto systémy a úrovně priority měly lépe ne existovat kdekoli, včetně v operačním systému.
Uživatelská rozhraní pro vestavěné systémy se mění divoce, a tak si zasloužit nějakou poznámku speciality.
Návrháři doporučí testovat uživatelské rozhraní pro použitelnost v nejdříve možném okamžiku. Rychlý, špinavý test má žádat o výkonného zástupce k užívacím lepenkovým modelům kresleným s ukazovateli kouzla, a obsluhoval inženýrem. Nahrávaný výsledek pravděpodobně je oba vtipný a velmi vzdělávací. V páskách, každý čas inženýr mluví, rozhraní propadlo: To by způsobilo služební hovor.
Přesně jedna osoba by měla schválit uživatelské rozhraní. Ideálně, toto by mělo být zákazník, hlavní distributor nebo někdo přímo zodpovědný pro prodávat systém. Decisionmaker by měly být schopné se rozhodnout. Problém je že výbor bude nikdy tvořit jeho mysl a žádnou vůli někteří lidé. Ne dělat toto způsobí avoidable, drahá zpoždění. Test použitelnosti je důležitější než nějaké množství názorů.
Návrháři rozhraní u PARC, Apple počítač, Boeing a HP minimalizuje množství druhů akcí uživatele. Například, používat dvě tlačítka (absolutní minimum) kontrolovat nabídkový systém (jen aby byl jasné, jedno tlačítko by mělo být “další záznam nabídky” jiné tlačítko by mělo být “vybrat tento záznam nabídky”). Dotek-clonit nebo clonit-tlačítka okraje také minimalizují druhy akcí uživatele.
Další základní trik má minimalizovat a simplfy druh výstupu. Designy by měly zvažovat, že použije stavové světlo pro každou zásuvku rozhraní nebo podmínku poruchy, říkat, že co propadlo. Levná variace má mít dva lehké bary s tištěnou maticí chyb, které oni vyberou - uživatel může lepidlo na popiskách pro jazyk že ona mluví.
Například, Boeing má úroveň rozhraní testu je tlačítko a některá světla. Když vy stisknete tlačítko, všechna světla se zapnou. Když vy pustíte tlačítko, světla s poruchami zůstávají na. Popisky jsou v základních english.
Pro další příklad, dívejte se na tiskárnu malého počítače. Vy byste mohli mít jednoho vedle vašeho počítače. Poznamenejte, že světla jsou označena samolepkami, které mohou být tištěné v jakémkoli jazyce. Opravdu se dívat na to.
Návrháři použijí barvy. Červené prostředky uživatelé mohou být zraněni - myslet na krev. Žlutý znamená, že něco by mohlo být špatné. Zelená znamená, že všechno je v pořádku.
Další základní trik má nutit nějaké režimy rozhodně se zbavit displeje uživatele.
Jestliže rozhraní má režimy, oni musí být reverzibilní ve zřejmé cestě.
Nejvíce návrháři upřednostňují displej, aby reagoval na uživatele. Displej by měl měnit se bezprostředně po akci uživatele. Jestliže stroj bude dělat něco, to by mělo začít uvnitř 7 sekund, nebo dát pokrok hlásí.
Jestliže design potřebuje obrazovku, mnozí návrháři používají prostý text. To může být prodáváno jak dočasný výhodný. Proč je to lépe než obrazy? Uživatelé četli znamení po celá léta. Gui je pěkná a moci dělat něco, ale typicky přidá rok od umělce, schválení a překladová zpoždění a jeden nebo dva programátoři k ceně projektu, bez přidávat nějakou hodnotu. Často, chytrý Gui vlastně plete uživatele.
Jestliže design potřebuje ukázat na části stroje (jak v kopírovacích strojích), tito jsou označeni čísly na skutečném stroji, to být viditelný s dveře se zavřely.
Rozhraní sítě je jen vzdálená obrazovka. To vyžaduje stejnou opatrnost jako nějaké jiné uživatelské rozhraní.
Jeden z nejvíce úspěšné univerzální obrazovky-založená rozhraní je dvě nabídková tlačítka a řada textu v uživatelském mateřském jazyce. To je použito v pagerech, médium-oceňoval tiskárny, přepínače sítě a jiné médium-ceněné situace, které vyžadují složité chování od uživatelů.
Když tam je text, tam jsou jazyky. Základní jazyk by měl být jeden nejvíce široce rozuměl. Pravý nyní toto je Angličan. Francouzština a španělština následují.
Nejvíce návrháři doporučují to jedno používání přirozené znakové sady, bez ohledu na to jak bolavý. Lidi s podivnou osobou pocit souborů rozmazloval a miloval, když jejich jazyk se ukáže na strojním zařízení, které oni používají.
Text by měl být přeložen profesionálními překladateli, dokonce jestliže rodilí mluvčí jsou v štábu. Osazenstva marketingu musí být schopný říct cizím distributorům že překlady jsou profesionální.
Cizí organizace by měla dát nejvyšší-distributor hlasitosti povinnost zhodnotit a opravit nějaké překlady v jeho rodném jazyce. Toto zastaví posudky jinými rodilými mluvčími, kdo inklinovat věřit, že žádná cizí organizace bude nikdy znát jejich jazyk také jak oni.
- bankomaty
- tiskárny počítače
- diskové jednotky
- mobilní telefony a telefonují přepínače.
- inertial naváděcí systémy pro letadla a rakety.
- lékařské equipments
- video herní konzoly
- průmyslové strojní zařízení používat programovatelné logické kontrolory k automatizaci kliky a sledování.
- počítače řízení motoru a antilock brzdové řadiče pro automobily
- náramkové hodinky
- domácí přístroje, včetně mikrovlnných troub, praček, televizních souborů, DVD přehrávačů/rekordérů
- domácí automatizační produkty, jako termostaty, sprinkler, a bezpečnostní informační systémy
- síťové vybavení, obsahující směrovače a firewally