Inbyggt system

Ett inbäddat system är en dator som har byggts för att lösa några få mycket specifika problem och som inte är lätt att ändra. Ordet inbäddad betyder att den är inbyggd i systemet. Det är en permanent del i ett större system. Det ser vanligtvis inte ut som en dator, ofta saknas tangentbord, bildskärm eller mus. Men precis som alla datorer har den en processor och programvara, in- och utdata.

Till exempel säger styrenheten i en hiss till motorn att flytta hissen till olika våningar, baserat på knappar som trycks in. En dekoder är inbäddad i en satellit-tv-box (kallad STB) för att läsa av en signal från parabolen och sända något som en tv förstår. Ofta måste den här typen av system utföra sitt arbete på en viss tid. Detta kallas realtidsdrift. Om en set-top box avbryts för att göra en annan uppgift skulle du till exempel få se en dålig bild på tv:n. En dator för allmänt bruk har ofta korta pauser medan den gör något annat, det är inte realtidsdrift.

Inbäddade system styr många av de vanligaste enheterna som används idag, t.ex. kortläsare i hotelldörrlås eller flera saker i en bil. De kan styra små saker som en MP3-spelare eller en digitalkamera och stora saker som trafikljussystem, flygplan eller monteringslinjer i en fabrik.

Bild på de inre delarna av ett ADSL-modem/router. Ett modernt exempel på ett inbyggt system. De märkta delarna omfattar en mikroprocessor (4), RAM (6) och flashminne (7).Zoom
Bild på de inre delarna av ett ADSL-modem/router. Ett modernt exempel på ett inbyggt system. De märkta delarna omfattar en mikroprocessor (4), RAM (6) och flashminne (7).

Exempel på inbyggda system

Inbäddade system används i många typer av elektriska apparater, bland annat:

Gemensamma egenskaper

  • Inbäddade system är utformade för att utföra en specifik uppgift, till skillnad från datorer för allmänna ändamål.
  • Den ser inte ut som en dator - det kanske inte finns någon komplett bildskärm eller något tangentbord.
  • Många inbyggda system måste kunna göra saker i realtid - på kort tid (nästan omedelbart ur mänsklig synvinkel).
  • Många inbäddade system måste vara mycket säkra och tillförlitliga, särskilt när det gäller medicinsk utrustning eller flygelektronik som styr flygplan.
  • Startar mycket snabbt. Människor vill inte vänta en minut eller två på att bilen ska starta eller att nödutrustningen ska starta.
  • Den kan använda ett särskilt operativsystem (eller ibland ett mycket litet hemmagjort operativsystem) som hjälper till att uppfylla dessa krav och som kallas realtidsoperativsystem (RTOS).
  • Programinstruktionerna som skrivs för inbyggda system kallas firmware och lagras i skrivskyddade minnen eller flashminneschips. De fungerar med begränsade hårdvaruresurser: lite minne, litet eller obefintligt tangentbord och/eller skärm.

Inbyggda system är inte alltid fristående enheter. Ibland byggs de som en uppsättning, som de olika delarna i en bil - radion, gasreglaget, föroreningskontrollen osv. Ibland kan de kommunicera med Internet eller ett mobiltelefonnät och de kan ha en USB-läsare eller andra anslutningar.

Användargränssnitt

Inbäddade system kan ha allt från att inte ha något användargränssnitt alls - bara skicka och ta emot elektriska signaler - till ett fullständigt grafiskt användargränssnitt som på en modern dator. Ofta har de några tryckknappar, en liten display och några lysdioder. Ett mer komplext system kan ha en pekskärm som gör det möjligt att ändra knapparnas betydelse med varje skärm, som i smarta telefoner.

Ett exempel på ett användargränssnitt med knappar och en enkel LCD-skärm.Zoom
Ett exempel på ett användargränssnitt med knappar och en enkel LCD-skärm.

Hårdvara

Hårdvara omfattar chips, kablar, kretskort, knappar och displayer.

Processorer

Det viktigaste chipet är den centrala processorenheten (CPU). Den kör programvaruinstruktionerna. Det kan vara en vanlig mikroprocessor eller en mikrokontroller. Mikrokontroller innehåller mikroprocessorn samt enkel kringutrustning så att systemet kan bli mindre och billigare. De är mindre flexibla eftersom dessa delar inte kan ändras. Vanligtvis omfattar dessa delar flashminne och stöd för seriella portar, USB osv.

Till skillnad från en mikroprocessor för en dator för allmänt bruk är större och snabbare inte alltid bättre. Många inbyggda processorer är mycket små. Ibland är det för att använda mindre utrymme eller mindre ström, ibland för att vara billigare. I datorer för allmänt bruk används mikroprocessorer som läser 32-bitars eller 64-bitars ord och som körs med hastigheter som mäts i GHz, men inbyggda processorer har vanligtvis 4 till 32 bitar och körs med hastigheter som vanligtvis mäts i tiotals MHz (hundra gånger långsammare). (Men programmen är också mindre och kontrollerar inte saker som inte används).

Färdiga datorplattor

Det finns "färdiga" datorkort som kan användas i vissa inbyggda system. Dessa använder ofta Windows CE, Linux, NetBSD eller ett inbyggt realtidsoperativsystem.

Ibland kan det vara lättare att använda ett redan tillverkat kretskort. Dessa har vanligen många komponenter gemensamt med datorer för allmänt bruk, men är mindre än ett kretskort i en dator för allmänt bruk. Kretskort som VIA EPIA kan köra Microsoft Windows. Fördelen är att man sparar en del tid för elektroteknik och kan använda samma verktyg för programvaruutveckling som används för programvaruutveckling av PC-typ. Exempel på sådana inbyggda enheter är bankomater eller displayer i kasinon. Detta fungerar bra om realtidskraven inte är riktigt strikta (det spelar inte så stor roll om ett jobb tar åtta sekunder i stället för fem, till exempel).

ASIC- och FPGA-lösningar

Om enheten måste vara mycket liten eller om den kommer att säljas i mycket stora mängder ("högvolym") är det vettigt att tillverka ett specialchip som gör exakt vad som behövs. Detta är ett system på ett chip (SoC) som innehåller ett komplett system - processor, flyttal, minnescache och gränssnitt på en enda integrerad krets. SoC:er kan tillverkas som en specialbeställd applikationsspecifik integrerad krets (ASIC) eller med hjälp av en fältprogrammerbar grindmatris (FPGA) som programmeras av de personer som bygger det inbyggda systemet.

Periferiprodukter

Inbäddade system kommunicerar med omvärlden eller andra komponenter med hjälp av kringutrustning, t.ex:

  • Seriella portar: RS-232, RS-422, RS-485. Förr var detta ganska vanligt med 9-poliga (eller större) kontakter.
  • Synkront seriellt kommunikationsgränssnitt: I²C Inter-Integrated Circuit, I²S Inter-Integrated Sound, SPI, MIcrowire, ...
  • Universal Serial Bus (USB).
  • Nätverk: Ethernet, Controller Area Network, LonWorks, ...
  • Diskret ingång/utgång: Ingång/utgång för allmänna ändamål (GPIO). Detta kan vara en enkel tråd med en on/off-signal. Den kan användas för en liten knappsats eller för att tända en lysdiod.
  • Analog till digital/digital till analog omvandlare (ADC/DAC). Detta mäter något som förändras i styrka, t.ex. en ljussensor eller en motorstyrning.
  • Felsökning: JTAG, ICSP-port, för mjukvaruingenjörer.
Soekris net4801, ett inbäddat system för nätverkstillämpningar.Zoom
Soekris net4801, ett inbäddat system för nätverkstillämpningar.

Programvara

Operativsystem

Inbäddade system behöver ofta inte ett komplett operativsystem. Vissa använder speciellt byggda små och enkla operativsystem som startar mycket snabbt, medan andra inte behöver något operativsystem alls. Inbäddade system anpassas inte lika lätt, men de är byggda för att utföra sina uppgifter på ett mycket mer tillförlitligt sätt. Eftersom hårdvaran är enklare är den också ofta billigare att bygga och går snabbare.

I motsats till detta måste en dator för allmänna ändamål vara redo för nya enhetsdrivrutiner och programvara för att köra maskinvara som den ännu inte känner till, t.ex. nya skrivare eller hårddiskar. Den måste kunna köra olika tillämpningsprogram.

I takt med att inbyggda system blir större blir saker som tidigare bara fanns på datorer för allmänna ändamål eller till och med på stordatorer nu vanliga i inbyggda system. Det gäller bland annat skyddat minnesutrymme och öppna programmeringsmiljöer som Linux, NetBSD osv.

Några exempel på operativsystem, från enkla till komplexa:

  • Enkel kontrollslinga - En timer och en slinga används för att anropa olika underprogram upprepade gånger. Detta görs ofta av en person för mindre system.
  • avbrottsstyrd - Uppgifterna startas av olika typer av händelser. Händelsen kan vara tidsbestämd (t.ex. var tionde sekund) eller en knapptryckning eller data som tas emot.
  • Nonpreemptive multitasking - Varje uppgift får sin tur att köra och när den är klar anropar den en schemaläggare i operativsystemet för att köra nästa uppgift.
  • Preemptive multitasking eller multi-threading - En uppgift kan stoppas efter en viss tid för att låta en annan uppgift köra en stund. Ingen uppgift kan ta över systemet. På denna nivå anses systemet ha en "operativsystemkärna" och kan köra uppgifter parallellt. Denna typ av operativsystem köps vanligtvis från ett företag som endast arbetar med inbyggda operativsystem.

Realtidsoperativsystem omfattar produkter som MicroC/OS-II, Green Hills INTEGRITY, QNX eller VxWorks. Till skillnad från MacOS eller Windows 7 är dessa operativsystem inte särskilt kända av de flesta. Men de används på många ställen där tid och säkerhet är mycket viktigt. Människor använder dem varje dag utan att inse det.

Vanliga exempel på större kärnor är Embedded Linux och Windows CE. Även om dessa kärnor inte har de snäva tidsgränser som krävs för ett strikt realtidssystem blir de allt vanligare, särskilt för kraftfullare enheter som trådlösa routrar och GPS:er. De gör det möjligt att återanvända kod i den offentliga domänen för enhetsdrivrutiner, webbservers, brandväggar och annan kod. Programvaruutvecklare som är mer bekväma med att skriva program för datorer kommer också att känna sig mer bekanta med detta. Vid behov kan en FPGA eller annan speciell hårdvara användas för saker som kräver snäva tidsgränser.

Verktyg

Precis som annan programvara använder konstruktörer av inbyggda system kompilatorer, assemblers och felsökare för att utveckla programvara för inbyggda system. De kan dock också använda vissa mer specifika verktyg:

  • För system som använder digital signalbehandling kan utvecklarna använda matematiska verktyg som MATLAB, MathCad eller Mathematica.
  • Anpassade kompilatorer och länkare kan användas för att förbättra optimeringen för den särskilda maskinvaran.
  • Ett inbäddat system kan ha ett eget specialspråk eller konstruktionsverktyg eller komplettera ett befintligt språk som det som används av Basic Stamp.

Verktyg för felsökning:

  • En in-circuit debugger (ICD), en hårdvaruenhet som ansluts till mikroprocessorn via ett JTAG-gränssnitt. Den startar och stoppar mikroprocessorn utifrån när den kör programvaran. Den gör det också möjligt att läsa minnen och register och att lagra programvaran i minnet.
  • Extern felsökning med hjälp av loggning eller seriell portutgång för att spåra verksamheten med hjälp av antingen en blinkande monitor (printfs).
  • Interaktiv intern felsökning - om operativsystemet stöder det är detta ett skal på den inbyggda processorn som kör de kommandon som utvecklaren skriver in (t.ex. Linux).
  • En in-circuit-emulator ersätter mikroprocessorn på kortet och ger full kontroll över allt som mikroprocessorn kan göra.
  • En komplett emulator simulerar alla maskinvarans funktioner och gör det möjligt att styra och ändra allt. Hårdvaran existerar inte i verkligheten, men en låtsasversion av den (en "virtuell" maskin) finns på en vanlig dator.
  • Kontrollera externa linjer med en logikanalysator eller multimeter.

Om programmeraren inte är begränsad till extern felsökning kan han eller hon vanligtvis ladda och köra programvara genom verktygen, se den kod som körs i processorn och starta eller stoppa dess funktion. Koden kan visas som assemblerkod eller källkod. Vissa integrerade system (som VxWorks eller Green Hills) har särskilda funktioner, som att hålla reda på hur mycket utrymme programvaran tar i anspråk när den körs, vilka uppgifter som körs och när saker och ting händer.

Beroende på vilken typ av inbäddat system som tillverkas påverkar hur det kan felsökas. Exempelvis skiljer sig felsökning av ett system med en enda mikroprocessor från felsökning av ett system där bearbetningen också sker på en perifer (DSP, FPGA, samprocessor).

Säkerhet och tillförlitlighet

Inbäddade system finns ofta i maskiner som förväntas fungera i flera år utan fel och i vissa fall återhämta sig själva om ett fel uppstår. Detta innebär att programvaran vanligen utvecklas och testas mer noggrant än för persondatorer, och opålitliga mekaniska rörliga delar som diskettstationer och fläktar undviks.

Platser där säkerhet och tillförlitlighet är viktiga:

  • Vissa system kan inte stängas av på ett säkert sätt för att repareras, eller så är det för svårt att reparera dem. Exempel på detta är rymdsystem (satelliter, rovers), kablar under havet och kontroller i kärnkraftverk.
  • Systemet kan döda människor om det misslyckas, till exempel flygplanskontroller, kontroller i kemiska fabriker, tågsignaler och hjärtdefibrillatorer.
  • Systemet kommer att förlora stora belopp om det stängs av eller om ett misstag begås: Telefonväxlar, fabriksstyrningar, kassaapparater, bankomater.

Sätt att återhämta sig från fel - både programvarufel som minnesläckor och mjuka fel i hårdvaran:

  • Watchdog-timer som startar om det inbyggda systemet om något slutar fungera.
  • Dubbla delar, där ett system kan ta över om ett annat slutar fungera.
  • Programvarans "haltlägen" som ger partiell funktion.
  • Immunitetsmedveten programmering

Relaterade sidor

Frågor och svar

F: Vad är ett inbäddat system?


S: Ett inbäddat system är en dator som är byggd för att lösa specifika problem och som inte är lätt att ändra.

F: På vilket sätt skiljer sig ett inbyggt system från en allmän dator?


S: Ett inbäddat system har vanligtvis inget tangentbord, ingen bildskärm eller mus och har specialiserade funktioner. En dator för allmänna ändamål kan utföra ett stort antal uppgifter.

F: Vilka är några exempel på inbyggda system?


S: Exempel på inbäddade system är hissregulatorer, set-top-boxar, kortläsare i hotelldörrlås, trafikljussystem, flygplan och monteringslinjer i fabriker.

F: Vad är realtidsberäkning?


S: Realtidsberäkning är när ett inbyggt system måste slutföra sitt arbete inom en viss tid. Om det avbryts kan det orsaka problem som dålig bildkvalitet på en TV.

F: Vilka är komponenterna i ett inbyggt system?


S: Precis som alla datorer har ett inbyggt system en processor, programvara, ingång och utgång.

F: Vilka uppgifter kan ett inbäddat system kontrollera?


S: Ett inbyggt system kan styra små enheter som MP3-spelare eller digitalkameror eller större system som trafikljus eller flygplan.

F: Vad betyder termen "inbäddad" i samband med inbyggda system?


S: Termen "inbäddad" betyder att datorn är inbyggd i ett större system och inte är lätt att ändra.

AlegsaOnline.com - 2020 / 2023 - License CC3