Eingebettetes System

Ein eingebettetes System ist ein Computersystem, das für spezifische Kontrollfunktionen innerhalb eines größeren Systems häufig mit Echtzeitrecheneinschränkungen entworfen ist. Es wird als ein Teil eines ganzen Geräts häufig einschließlich der Hardware und mechanischen Teile eingebettet. Im Vergleich wird ein Mehrzweckcomputer, wie ein Personalcomputer (PC), entworfen, um flexibel zu sein und eine breite Reihe von Endbenutzer-Bedürfnissen zu entsprechen. Eingebettete Systeme kontrollieren viele Geräte in der üblichen Anwendung heute.

Eingebettete Systeme enthalten in einer Prozession gehende Kerne, die normalerweise entweder Mikrokontrolleure oder Digitalsignalverarbeiter (DSP) sind. Die Schlüsseleigenschaft wird jedoch gewidmet, um eine besondere Aufgabe zu behandeln. Da das eingebettete System spezifischen Aufgaben gewidmet wird, können Designingenieure es optimieren, um die Größe und Kosten des Produktes zu reduzieren und die Zuverlässigkeit und Leistung zu vergrößern. Einige eingebettete Systeme werden serienmäßig hergestellt, aus Wirtschaften der Skala einen Nutzen ziehend.

Physisch erstrecken sich eingebettete Systeme von tragbaren Geräten wie Digitaluhren und MP3 Spieler, zu großen stationären Installationen wie Stopplichter, Fabrikkontrolleure oder die Systeme, Kernkraftwerke kontrollierend. Kompliziertheit ändert sich vom niedrigen, mit einem einzelnen Mikrokontrolleur-Span, zu sehr hoch mit vielfachen Einheiten, Peripherie und Netzen, die innerhalb eines großen Fahrgestells oder Einschließung bestiegen sind.

Vielfalt von eingebetteten Systemen

Eingebettete Systeme messen alle Aspekte des modernen Lebens ab, und es gibt viele Beispiele ihres Gebrauches.

Fernmeldesysteme verwenden zahlreiche eingebettete Systeme von Telefonschaltern für das Netz zu Mobiltelefonen am Endbenutzer.

Computernetzwerkanschluss verwendet hingebungsvolle Router und Netzbrücken zu Weg-Daten.

Verbraucherelektronik schließt persönliche Digitalhelfer (PDAs), mp3 Spieler, Mobiltelefone, Videospiel-Konsolen, Digitalkameras, DVD-Spieler, GPS Empfänger und Drucker ein.

Viele Haushaltsgeräte, wie Mikrowellengeräte, Waschmaschinen und Spülmaschinen, schließen eingebetteter Systeme ein, um Flexibilität, Leistungsfähigkeit und Eigenschaften zur Verfügung zu stellen.

Fortgeschrittene HVAC Systeme verwenden vernetzte Thermostate an genauer und kontrollieren effizient Temperatur, die sich vor der Zeit des Tages und der Jahreszeit ändern kann.

Hausautomationsgebrauch hat - und Radionetzwerkanschluss telegrafiert, der verwendet werden kann, um Lichter, Klima, Sicherheit, Audio/visuell, Kontrolle usw. zu kontrollieren, von denen alle eingebettete Geräte verwenden, um zu fühlen und zu kontrollieren.

Transport-Systeme vom Flug bis Automobile verwenden zunehmend eingebettete Systeme.

Neue Flugzeuge enthalten fortgeschrittene Avionik wie Trägheitsleitungssysteme und GPS Empfänger, die auch beträchtliche Sicherheitsvoraussetzungen haben.

Verschiedene elektrische Motoren - bürstenlose Gleichstrommotoren, Induktionsmotoren und Gleichstrommotoren - verwenden elektrische/elektronische Motorkontrolleure.

Automobile, elektrische Fahrzeuge und hybride Fahrzeuge verwenden eingebettete Systeme zunehmend, um Leistungsfähigkeit zu maximieren und Verschmutzung zu reduzieren.

Andere Automobilsicherheitssysteme schließen Antiblockiersystem (ABS), Elektronische Stabilitätskontrolle (ESC/ESP), Antriebsregelung (TCS) und automatischer Allradantrieb ein.

Medizinische Ausrüstung setzt fort, mit mehr eingebetteten Systemen für die Lebenszeichen-Überwachung, elektronischen Stethoskopen vorwärts zu gehen, um Töne und verschiedene medizinische Bildaufbereitung (HAUSTIER, SPECT, CT, MRI) für nichtangreifende innere Inspektionen zu verstärken.

Eingebetteten Systemen wird besonders für den Gebrauch in Transport, Feuersicherheit, Sicherheit und Sicherheit, medizinischen Anwendungen und Leben kritische Systeme angepasst, weil diese Systeme vom Hacken isoliert werden und so zuverlässiger sein können. Für die Feuersicherheit können die Systeme entworfen werden, um größere Fähigkeit zu haben, höhere Temperaturen zu behandeln und fortzusetzen, zu funktionieren. Im Umgang mit der Sicherheit können die eingebetteten Systeme unabhängig sein und im Stande sein, sich mit Kürzung elektrisch und Nachrichtensysteme zu befassen. http://www.embeddedsystem.com

Zusätzlich zu allgemein beschriebenen eingebetteten auf kleinen Computern gestützten Systemen hat eine neue Klasse von Miniaturradiogeräten gerufen Stäubchen gewinnen Beliebtheit als das Feld von Radiosensornetzwerkanschlussanstiegen schnell. Radiosensornetzwerkanschluss, WSN, macht von der Miniaturisierung gemacht möglich durch das fortgeschrittene IC Design Gebrauch, volle Radiosubsysteme zu hoch entwickelten Sensoren zu verbinden, Leuten und Gesellschaften ermöglichend, eine Myriade von Dingen in der physischen Welt zu messen und dieser Information DADURCH Überwachung und Regelsysteme zu folgen. Diese Stäubchen sind völlig selbst enthalten, und werden normalerweise von einer Batteriequelle viele Jahre lang herunterlaufen, bevor die Batterien geändert oder beladen werden müssen.

Geschichte

Eines der ersten erkennbar modernen eingebetteten Systeme war der Leitungscomputer von Apollo, der von Charles Stark Draper am MIT Instrumentierungslaboratorium entwickelt ist. Am Beginn des Projektes wurde der Leitungscomputer von Apollo als der am meisten unsichere Artikel im Projekt von Apollo betrachtet, weil es die dann kürzlich entwickelten monolithischen einheitlichen Stromkreise verwendet hat, um die Größe und das Gewicht zu reduzieren. Ein frühes serienmäßig hergestelltes eingebettetes System war der Autonetics D-17 Leitungscomputer für die Rakete des Freiwilligen im amerikanischen Unabhängigkeitskrieg, veröffentlicht 1961. Es wurde von der Transistor-Logik gebaut und hatte eine Festplatte für das Hauptgedächtnis. Als der Freiwillige im amerikanischen Unabhängigkeitskrieg II in Produktion 1966 eingetreten ist, wurde der D-17 durch einen neuen Computer ersetzt, der der erste Großseriengebrauch von einheitlichen Stromkreisen war. Dieses Programm allein hat Preise auf dem Viererkabel nand Tor ICs von 1000 $/jeden bis 3 $/jede reduziert, ihren Gebrauch in kommerziellen Produkten erlaubend.

Seit diesen frühen Anwendungen in den 1960er Jahren sind eingebettete Systeme im Preis heruntergekommen, und es hat einen dramatischen Anstieg der in einer Prozession gehenden Macht und Funktionalität gegeben. Der erste Mikroprozessor zum Beispiel, Intel 4004, wurde für Rechenmaschinen und andere kleine Systeme entworfen, aber hat noch viele Außenspeicher- und Unterstützungschips verlangt. 1978 hat Nationale Technikhersteller-Vereinigung einen "Standard" für programmierbare Mikrokontrolleure, einschließlich fast irgendwelcher computergestützten Kontrolleure, wie einzelne Vorstandscomputer, numerische und Ereignis-basierte Kontrolleure veröffentlicht.

Da die Kosten von Mikroprozessoren und Mikrokontrolleuren gefallen sind, ist es ausführbar geworden, teure Knopf-basierte analoge Bestandteile wie potentiometers und variable Kondensatoren mit/unten Knöpfen oder Knöpfen zu ersetzen, die durch einen Mikroprozessor sogar in einigen Verbrauchsgütern vorgelesen sind. Durch die Mitte der 1980er Jahre waren die meisten allgemeinen vorher äußerlichen Systembestandteile in denselben Span wie der Verarbeiter integriert worden, und diese moderne Form des Mikrokontrolleurs hat einen noch weit verbreiteteren Gebrauch erlaubt, die am Ende des Jahrzehnts die Norm aber nicht die Ausnahme für fast alle Elektronik-Geräte waren.

Die Integration von Mikrokontrolleuren hat weiter die Anwendungen vergrößert, für die eingebettete Systeme in Gebiete verwendet werden, wo traditionell ein Computer nicht betrachtet worden sein würde. Ein allgemeiner Zweck und verhältnismäßig preisgünstiger Mikrokontrolleur können häufig programmiert werden, um dieselbe Rolle als eine Vielzahl von getrennten Bestandteilen zu erfüllen. Obwohl in diesem Zusammenhang ein eingebettetes System gewöhnlich komplizierter ist als eine traditionelle Lösung, wird der grösste Teil der Kompliziertheit innerhalb des Mikrokontrolleurs selbst enthalten. Sehr wenige zusätzliche Bestandteile können erforderlich sein, und der grösste Teil der Designanstrengung ist in der Software. Die nicht greifbare Natur der Software macht es viel leichter zum Prototyp, und prüfen Sie neue Revisionen im Vergleich zum Design und Aufbau eines neuen Stromkreises, keinen eingebetteten Verarbeiter verwendend.

Eigenschaften

1. Eingebettete Systeme werden entworfen, um eine spezifische Aufgabe zu erledigen, anstatt ein Mehrzweckcomputer für vielfache Aufgaben zu sein. Einige haben auch Echtzeitleistungseinschränkungen, die, aus Gründen wie Sicherheit und Brauchbarkeit entsprochen werden müssen; andere können niedrig oder keine Leistungsvoraussetzungen haben, der Systemhardware erlaubend, vereinfacht zu werden, um Kosten zu reduzieren.

2. Eingebettete Systeme sind nicht immer eigenständige Geräte. Viele eingebettete Systeme bestehen aus kleinen, computerisierten Teilen innerhalb eines größeren Geräts, das einem allgemeineren Zweck dient. Zum Beispiel zeigt die Roboter-Gitarre von Gibson ein eingebettetes System, für die Schnuren abzustimmen, aber der gesamte Zweck der Roboter-Gitarre ist natürlich, Musik zu spielen. Ähnlich stellt ein eingebettetes System in einem Automobil eine Sonderaufgabe als ein Subsystem des Autos selbst zur Verfügung.

3. Die für eingebettete Systeme geschriebenen Programm-Instruktionen werden firmware genannt, und werden im ROM-Speicher oder den Blitz-Speicherchips versorgt. Sie laufen mit beschränkten Computerhardware-Mitteln: wenig Gedächtnis, kleine oder nicht existierende Tastatur oder Schirm.

Benutzerschnittstelle

Die eingebettete Systemreihe von keiner Benutzerschnittstelle überhaupt - hat nur einer Aufgabe - zu komplizierten grafischen Benutzerschnittstellen gewidmet, die moderner Computerarbeitsfläche Betriebssysteme ähneln.

Einfache eingebettete Geräte verwenden Knöpfe, LEDs, grafisch oder Charakter LCDs (zum Beispiel populäre HD44780 FLÜSSIGKRISTALLANZEIGE) mit einem einfachen Menüsystem.

Hoch entwickeltere Geräte, die einen grafischen Schirm mit der Berührungsabfragung oder Knöpfe des Schirm-Randes verwenden, stellen Flexibilität zur Verfügung, während sie verwendeten Raum minimieren: Die Bedeutung der Knöpfe kann sich mit dem Schirm ändern, und Auswahl ist mit dem natürlichen Verhalten des Hinweisens darauf verbunden, was gewünscht wird. Tragbare Systeme haben häufig einen Schirm mit einem "Steuerknüppel-Knopf" für ein hinweisendes Gerät.

Einige Systeme stellen Benutzerschnittstelle entfernt mit der Hilfe einer Reihe zur Verfügung (z.B. RS-232, USB, I²C, usw.) oder Netz (z.B. Ethernet) Verbindung. Diese Annäherung gibt mehrere Vorteile: Erweitert die Fähigkeiten zum eingebetteten System, vermeidet die Kosten einer Anzeige, vereinfacht BSP, erlaubt uns, reiche Benutzerschnittstelle auf dem PC zu bauen. Ein gutes Beispiel davon ist die Kombination eines eingebetteten Webservers, der auf einem eingebetteten Gerät (wie eine IP Kamera) oder ein Netz Router läuft. Die Benutzerschnittstelle wird in einem WWW-Browser auf einem PC gezeigt, der mit dem Gerät verbunden ist, deshalb keine bestellte zu installierende Software brauchend.

Verarbeiter in eingebetteten Systemen

Zweitens können eingebettete Verarbeiter in zwei breite Kategorien gebrochen werden: Gewöhnliche Mikroprozessoren (μP) und Mikrokontrolleure (μC), die noch viele Peripherie auf dem Span haben, Kosten und Größe reduzierend. Sich zum Personalcomputer und den Server-Märkten abhebend, wird eine ziemlich hohe Zahl von grundlegenden Zentraleinheitsarchitekturen verwendet; es gibt Von Neumann sowie verschiedene Grade von Architekturen von Harvard, RISC sowie non-RISC und VLIW; Wortlängen ändern sich von 4 Bit bis 64 Bit und darüber hinaus (hauptsächlich in DSP Verarbeitern), obwohl die typischsten 8/16-bit bleiben. Die meisten Architekturen kommen in einer Vielzahl von verschiedenen Varianten und Gestalten, von denen viele auch von mehreren verschiedenen Gesellschaften verfertigt werden.

Ein langer, aber noch immer nicht erschöpfende Liste von allgemeinen Architekturen ist: 65816, 65C02, 68HC08, 68HC11, 68k, 78K0R/78K0, 8051, ARM, AVR, AVR32, Blackfin, C167, Coldfire, COP8, Cortus APS3, eZ8, eZ80, FR-V, H8, HT48, M16C, M32C, MIPS, MSP430, FOTO, PowerPC, R8C, RL78, SHARC, SPARC, ST6, SuperH, TLCS-47, TLCS-870, TLCS-900, TriCore, V850, x86, XE8000, Z80, AsAP usw.

Bereite gemachte Computerausschüsse

PC/104 und PC/104 + sind Beispiele von Standards für bereite gemachte Computervorstands-, die für kleine, niedrig-bändige eingebettete und ruggedized Systeme beabsichtigt sind, größtenteils mit Sitz in x86. Diese sind häufig im Vergleich zu einem Standard-PC, obwohl noch ziemlich groß, im Vergleich zum einfachsten (8/16-bit) eingebettete Systeme physisch klein. Sie verwenden häufig MS-DOS, Linux, NetBSD oder ein eingebettetes Echtzeitbetriebssystem wie MicroC/OS-II, QNX oder VxWorks. Manchmal verwenden diese Ausschüsse non-x86 Verarbeiter.

In bestimmten Anwendungen, wo kleine Größe oder Macht-Leistungsfähigkeit nicht primäre Sorgen sind, können die verwendeten Bestandteile mit denjenigen vereinbar sein, die im allgemeinen Zweck x86 Personalcomputer verwendet sind. Ausschüsse solcher als ÜBER die EPIA-Reihe helfen, die Lücke zu überbrücken, indem sie mit dem PC vereinbar sind, aber hoch einheitlich, physisch kleiner oder andere Attribute zu haben, die sie attraktiv für eingebettete Ingenieure machen. Der Vorteil dieser Annäherung besteht darin, dass preisgünstige Warenbestandteile zusammen mit denselben für die allgemeine Softwareentwicklung verwendeten Softwareentwicklungswerkzeugen verwendet werden können. Systeme gebaut werden noch auf diese Weise, wie eingebettet, betrachtet, da sie in größere Geräte integriert werden und eine einzelne Rolle erfüllen. Beispiele von Geräten, die diese Annäherung annehmen können, sind ATMs und Arkade-Maschinen, die zur Anwendung spezifischen Code enthalten.

Jedoch werden die meisten eingebetteten Konfektionssystemvorstands-nicht PC - und verwenden den ISA oder die PCI Küsse nicht. Wenn ein System auf einem Span-Verarbeiter beteiligt wird, kann es wenig Vorteil dafür geben, einen standarized Bus zu haben, der getrennte Bestandteile verbindet, und die Umgebung sowohl für die Hardware als auch für Softwarewerkzeuge kann sehr verschieden sein.

Ein allgemeiner Designstil verwendet ein kleines Systemmodul, vielleicht die Größe einer Visitenkarte, hohe Speicherdichte BGA Chips wie ein Arm-basiertes System auf einem Span-Verarbeiter und Peripherie, Außenblitz-Gedächtnis für die Lagerung und SCHLUCK für das Laufzeitgedächtnis haltend. Der Modul-Verkäufer wird gewöhnlich Stiefelsoftware zur Verfügung stellen und sicherstellen, dass es eine Auswahl an Betriebssystemen, gewöhnlich einschließlich Linux und einiger Echtzeitwahlen gibt. Diese Module können in der Großserie von Organisationen verfertigt werden, die mit ihren Spezialprobeproblemen vertraut sind, und haben sich mit der viel niedrigeren Volumen-Gewohnheit mainboards mit der anwendungsspezifischen Außenperipherie verbunden. Erzeugnisse von Gumstix sind ein Linux-zentrisches Beispiel dieses Modells.

ASIC und FPGA Lösungen

Eine allgemeine Reihe der n Konfiguration für eingebettete Systeme der Sehr-Großserie ist das System auf einem Span (SoC), der ein ganzes System enthält, das aus vielfachen Verarbeitern, Vermehrern, geheimen Lagern und Schnittstellen auf einem einzelnen Span besteht. SoCs kann als ein anwendungsspezifischer einheitlicher Stromkreis (ASIC) oder das Verwenden einer feldprogrammierbaren Tor-Reihe (FPGA) durchgeführt werden.

Peripherie

Eingebettete Systeme sprechen mit der Außenwelt über die Peripherie wie:

  • Serial Communication Interfaces (SCI): RS-232, RS-422, RS-485 usw.
  • Gleichzeitige Seriennachrichtenschnittstelle: I2C, SPI, SSC und ESSI (erhöhte gleichzeitige Serienschnittstelle)
  • Universal Serial Bus (USB)
  • Vielmediakarten (SD Karten, Kompaktblitz usw.)
  • Netze: Ethernet, LonWorks, usw.
  • Fieldbuses: KÖNNEN-BUS, LIN-Bus, PROFIBUS, usw.
  • Zeitmesser: PLL (s), gewinnen Sie/Vergleichen und Zeitverarbeitungseinheiten
  • Getrennter IO: auch bekannt als Allgemeiner Zweck-Eingang/Produktion (GPIO)
  • Analogon zum Digitalen/digitalen zum Analogon (ADC/DAC)
  • Beseitigen: JTAG, ISP, ICSP, BDM Hafen, BITP und DP9 Häfen.

Werkzeuge

Als mit anderer Software verwenden eingebettete Systementwerfer Bearbeiter, Monteure und Testhilfeprogramme, um eingebettete Systemsoftware zu entwickeln. Jedoch können sie auch einige spezifischere Werkzeuge verwenden:

  • In Stromkreis-Testhilfeprogrammen oder Emulatoren (sieh folgende Abteilung).
  • Dienstprogramme, um eine Kontrollsumme oder CRC zu einem Programm hinzuzufügen, so kann das eingebettete System überprüfen, ob das Programm gültig ist.
  • Für Systeme mit der Digitalsignalverarbeitung können Entwickler einen Mathearbeitstisch wie Scilab / Scicos, MATLAB / Simulink, EICASLAB, MathCad, Mathematica oder FlowStone DSP verwenden, um die Mathematik vorzutäuschen. Sie könnten auch Bibliotheken für beide der Gastgeber und das Ziel verwenden, das das Entwickeln DSP Routinen, wie getan, in DSPnano RTOS und Einklang-Betriebssystem beseitigt.
  • Das gestützte Entwicklungswerkzeug eines Modells wie VisSim lässt Sie schaffen und grafischen Datenfluss und UML Staatskarte-Diagramme von Bestandteilen wie Digitalfilter, Motorkontrolleure, Nachrichtenprotokoll-Entzifferung und Mehrrate-Aufgaben vortäuschen. Unterbrechungsdressierer können auch grafisch geschaffen werden. Nach der Simulation können Sie C-Code zu VisSim RTOS automatisch erzeugen, der die Hauptkontrollaufgabe und das Vorkaufsrecht von Hintergrundaufgaben, sowie die automatische Einstellung und die Programmierung der Peripherie auf dem Span behandelt.
  • Kundenspezifische Bearbeiter und linkers können verwendet werden, um Optimierung für die besondere Hardware zu verbessern.
  • Ein eingebettetes System kann seine eigene spezielle Sprache oder Designwerkzeug haben, oder Erhöhungen zu einer vorhandenen Sprache solcher als Hervor oder Grundlegend hinzufügen.
  • Eine andere Alternative soll ein Echtzeitbetriebssystem hinzufügen oder hat Betriebssystem eingebettet, das DSP Fähigkeiten wie DSPnano RTOS haben kann.
  • Das Modellieren und Codeerzeugen-Werkzeuge, die häufig auf Zustandmaschinen gestützt sind

Softwarewerkzeuge können aus mehreren Quellen kommen:

  • Softwaregesellschaften, die sich auf den eingebetteten Markt spezialisieren
  • Getragen von den GNU-Softwareentwicklungswerkzeugen
  • Manchmal können Entwicklungswerkzeuge für einen Personalcomputer verwendet werden, wenn der eingebettete Verarbeiter ein Ende hinsichtlich eines allgemeinen PC-Verarbeiters ist

Als die Kompliziertheit von eingebetteten Systemen wächst, wandern höhere Niveau-Werkzeuge und Betriebssysteme in die Maschinerie ab, wo es Sinn hat. Zum Beispiel brauchen Mobiltelefone, persönliche Digitalhelfer und andere Verbrauchercomputer häufig bedeutende Software, die gekauft oder von einer Person außer dem Hersteller der Elektronik zur Verfügung gestellt wird. In diesen Systemen ist eine offene Programmierumgebung wie Linux, NetBSD, OSGi oder das Eingebettete Java erforderlich, so dass der Drittsoftwareversorger zu einem großen Markt verkaufen kann.

Das Beseitigen

Das eingebettete Beseitigen kann an verschiedenen Niveaus abhängig von den verfügbaren Möglichkeiten durchgeführt werden. Vom einfachsten bis hoch entwickeltesten können sie in die folgenden Gebiete grob gruppiert werden:

  • Das interaktive Residentbeseitigen, mit der einfachen Schale, die durch das eingebettete Betriebssystem (z.B zur Verfügung gestellt ist. Hervor und Grundlegend)
  • Außenbeseitigen-Verwenden-Protokollierung oder Serienhafen-Produktion, um Operation mit entweder einem Monitor im Blitz oder mit einem Fehlersuchprogramm-Server wie das Heilmittel-Testhilfeprogramm zu verfolgen, das sogar für heterogene Mehrkernsysteme arbeitet.
  • Ein Testhilfeprogramm im Stromkreis (ICD), ein Hardware-Gerät, das zum Mikroprozessor über einen JTAG oder der Verknüpfungsschnittstelle in Verbindung steht. Das erlaubt der Operation des Mikroprozessors, äußerlich kontrolliert zu werden, aber wird normalerweise auf spezifische Beseitigen-Fähigkeiten im Verarbeiter eingeschränkt.
  • Ein integrierter Emulator (ICE) ersetzt den Mikroprozessor durch eine vorgetäuschte gleichwertige, zur Verfügung stellende volle Kontrolle über alle Aspekte des Mikroprozessors.
  • Ein ganzer Emulator stellt eine Simulation aller Aspekte der Hardware zur Verfügung, allem davon erlaubend, kontrolliert und modifiziert zu werden, und erlaubend, auf einem normalen PC die Fehler beseitigend.

Wenn nicht eingeschränkt, auf das Außenbeseitigen kann der Programmierer normalerweise laden und Software durch die Werkzeuge führen, den Code ansehen, der im Verarbeiter läuft, und anfangen oder seine Operation aufhören. Die Ansicht vom Code kann als HLL Quellcode, Zusammenbau-Code oder Mischung von beiden sein.

Weil ein eingebettetes System häufig aus einem großen Angebot an Elementen zusammengesetzt wird, kann sich die Beseitigen-Strategie ändern. Zum Beispiel bei einer Software - (und Mikroprozessor-) die Fehler beseitigend, ist zentrisches eingebettetes System davon verschieden, bei einem eingebetteten System die Fehler zu beseitigen, wo der grösste Teil der Verarbeitung von der Peripherie (DSP, FPGA, Coprozessor) durchgeführt wird.

Eine steigende Zahl von eingebetteten Systemen verwendet heute mehr als einen einzelnen Verarbeiter-Kern. Ein häufiges Problem mit der Mehrkernentwicklung ist die richtige Synchronisation der Softwareausführung. In solch einem Fall könnte das eingebettete Systemdesign den Datenverkehr auf den Küssen zwischen den Verarbeiter-Kernen überprüfen mögen, der das sehr auf niedriger Stufe Beseitigen am Niveau des Signals/Busses mit einem Logikanalysator zum Beispiel verlangt.

Nachforschung

Echtzeitbetriebssysteme (RTOS) unterstützen häufig Nachforschung von Betriebssystemereignissen. Eine grafische Ansicht wird durch ein Gastgeber-PC-Werkzeug präsentiert, das auf einer Aufnahme des Systemverhaltens gestützt ist. Die Spur-Aufnahme kann in der Software, durch den RTOS, oder durch die spezielle Nachforschungshardware durchgeführt werden. RTOS Nachforschung erlaubt Entwicklern, Timing- und Leistungsprobleme des Softwaresystems zu verstehen, und gibt ein gutes Verstehen des Systemverhaltens auf höchster Ebene. Ein gutes Beispiel ist RTXCview, für RTXC Quadros durch Quadros Systems, Inc.

Zuverlässigkeit

Eingebettete Systeme wohnen häufig in Maschinen, die, wie man erwartet, unaufhörlich seit Jahren ohne Fehler laufen, und in einigen Fällen durch sich genesen, wenn ein Fehler vorkommt. Deshalb wird die Software gewöhnlich entwickelt und sorgfältiger geprüft als das für Personalcomputer, und unzuverlässige mechanische bewegende Teile wie Laufwerke, Schalter oder Knöpfe werden vermieden.

Spezifische Zuverlässigkeitsprobleme können einschließen:

  1. Das System kann für die Reparatur nicht sicher geschlossen werden, oder es ist zur Reparatur zu unzugänglich. Beispiele schließen Raumsysteme, unterseeische Kabel, Navigationsleuchtfeuer, Bohrloch-Systeme und Automobile ein.
  2. Das System muss behalten werden, aus Sicherheitsgründen laufend. "Schlaffe Weisen" sind weniger erträglich. Häufig werden Unterstützungen von einem Maschinenbediener ausgewählt. Beispiele schließen Flugzeugsnavigation, Reaktorregelsysteme, sicherheitskritische chemische Fabriksteuerungen, Zugsignale ein.
  3. Das System wird große Beträge des Geldes, wenn geschlossen, verlieren: Telefonschalter, Fabriksteuerungen, Brücke und Aufzug-Steuerungen, Kapital-Übertragung und das Marktbilden, haben Verkäufe und Dienst automatisiert.

Eine Vielfalt von Techniken wird manchmal in der Kombination verwendet, um sich von Fehlern zu erholen — sowohl Softwareprogrammfehler wie Gedächtnis, lecken als auch weiche Fehler in der Hardware:

  • Aufpasser-Zeitmesser, der den Computer neu fasst, wenn die Software regelmäßig den Aufpasser nicht benachrichtigt
  • Subsysteme mit überflüssigen Ersatzteilen, die zu geschaltet werden können
  • Software "schlaffe Weisen", die teilweise Funktion zur Verfügung stellen
  • Das Entwerfen mit einer Architektur von Trusted Computing Base (TCB) sichert eine hoch sichere & zuverlässige Systemumgebung
  • Ein Eingebetteter Hyperschirm ist im Stande, sicheren encapsulation für jeden Subsystem-Bestandteil zur Verfügung zu stellen, so dass ein in Verlegenheit gebrachter Softwarebestandteil andere Subsysteme oder Systemsoftware des privilegierten Niveaus nicht stören kann. Dieser encapsulation hält Schulden davon ab, sich von einem Subsystem bis einen anderen fortzupflanzen, Zuverlässigkeit verbessernd. Das kann auch einem Subsystem erlauben, automatisch geschlossen und auf der Schuld-Entdeckung wiederangefangen zu werden.
  • Immunität bewusste Programmierung

Hoch gegen das niedrige Volumen

Für Großseriensysteme wie tragbare Musik-Spieler oder Mobiltelefone, Kosten minimierend, ist gewöhnlich die primäre Designrücksicht. Normalerweise ausgesuchte Hardware von Ingenieuren, die gerade "gut genug ist", um die notwendigen Funktionen durchzuführen.

Als niedrig-bändiger oder Prototyp Systeme eingebettet haben, können allgemeine Zweck-Computer durch das Begrenzen der Programme oder durch das Ersetzen des Betriebssystems mit einem Echtzeitbetriebssystem angepasst werden.

Eingebettete Softwarearchitekturen

Es gibt mehrere verschiedene Typen der Softwarearchitektur in der üblichen Anwendung.

Einfache Kontrollschleife

In diesem Design hat die Software einfach eine Schleife. Die Schleife nennt Unterprogramme, von denen jedes einen Teil der Hardware oder Software führt.

Unterbrechen Sie kontrolliertes System

Einige eingebettete Systeme sind vorherrschend kontrollierte Unterbrechung. Das bedeutet, dass durch das System durchgeführte Aufgaben durch verschiedene Arten von Ereignissen ausgelöst werden. Eine Unterbrechung konnte zum Beispiel durch einen Zeitmesser in einer vorherbestimmten Frequenz, oder von einem Serienhafen-Kontrolleur erzeugt werden, der ein Byte erhält.

Diese Arten von Systemen werden verwendet, wenn Ereignis-Dressierer niedrige Latenz brauchen und die Ereignis-Dressierer kurz und einfach sind.

Gewöhnlich führen diese Arten von Systemen eine einfache Aufgabe in einer Hauptschleife auch, aber diese Aufgabe ist zu unerwarteten Verzögerungen nicht sehr empfindlich.

Manchmal wird der Unterbrechungsdressierer längere Aufgaben zu einer Warteschlange-Struktur hinzufügen. Später, nachdem der Unterbrechungsdressierer fertig gewesen ist, werden diese Aufgaben durch die Hauptschleife durchgeführt. Diese Methode bringt das System in der Nähe von einem stark mehrbeanspruchenden Kern mit getrennten Prozessen.

Das kooperative Mehrbeschäftigen

Ein System der nichtpräemptiven Multitasking ist dem einfachen Kontrollschleife-Schema sehr ähnlich, außer dass die Schleife in einer API verborgen wird. Der Programmierer definiert eine Reihe von Aufgaben, und jede Aufgabe veranlasst, dass seine eigene Umgebung darin "läuft". Wenn eine Aufgabe müßig ist, nennt sie eine müßige Routine, gewöhnlich genannt "Pause", "warten Sie", "tragen Sie", "nop" (tritt für keine Operation ein), usw.

Die Vorteile und Nachteile sind zur Kontrollschleife, außer dass das Hinzufügen neuer Software, durch das einfache Schreiben einer neuen Aufgabe oder das Hinzufügen zum Warteschlange-Dolmetscher leichter ist.

Präemptive Multitasking oder Nebenläufigkeit

In diesem Typ des Systems schaltet ein auf niedriger Stufe Stück des Codes zwischen Aufgaben oder Fäden um, die auf einem Zeitmesser gestützt sind (verbunden mit einer Unterbrechung). Das ist das Niveau, an dem, wie man allgemein betrachtet, das System ein "Betriebssystem" Kern hat. Je nachdem, wie viel Funktionalität erforderlich ist, führt sie mehr oder weniger der Kompliziertheiten ein, vielfache Aufgaben zu führen, die begrifflich in der Parallele laufen.

Da jeder Code die Daten einer anderen Aufgabe potenziell beschädigen kann (außer in größeren Systemen mit einem MMU), müssen Programme sorgfältig entworfen und geprüft werden, und der Zugang zu geteilten Daten muss von einer Synchronisationsstrategie, wie Nachrichtenwarteschlangen, Semaphore oder ein blockierungsfreies Synchronisationsschema kontrolliert werden.

Wegen dieser Kompliziertheiten ist es für Organisationen üblich, ein Echtzeitbetriebssystem (RTOS) zu verwenden, den Anwendungsprogrammierern erlaubend, sich auf die Gerät-Funktionalität anstatt Betriebssystemdienstleistungen mindestens für große Systeme zu konzentrieren; kleinere Systeme können häufig das oberirdische nicht gewähren, das mit einem allgemeinen Echtzeitsystem, wegen Beschränkungen bezüglich der Speichergröße, der Leistung oder des Batterielebens vereinigt ist. Die Wahl, dass ein RTOS erforderlich ist, bringt in seinen eigenen Problemen jedoch, weil die Auswahl vor dem Starten zum Anwendungsentwicklungsprozess getan werden muss. Dieses Timing zwingt Entwickler, das eingebettete Betriebssystem für ihr Gerät zu wählen, das auf aktuellen Voraussetzungen gestützt ist, und schränkt so zukünftige Optionen weit gehend ein. Die Beschränkung von zukünftigen Optionen wird mehr von einem Problem, als Produktleben abnimmt. Zusätzlich wächst das Niveau der Kompliziertheit unaufhörlich, weil Geräte erforderlich sind, viele Variablen solcher als Serien-, USB, TCP/IP, Bluetooth, Drahtloser LAN, Stamm-Radio, vielfache Kanäle, Daten und Stimme, erhöhte Grafik, vielfache Staaten zu führen, warten vielfache Fäden, zahlreich auf Staaten und so weiter. Diese Tendenzen führen zum Auffassungsvermögen von eingebettetem middleware zusätzlich zu einer Echtzeit Betriebssystem.

Mikrokerne und exokernels

Ein Mikrokern (wie QNX stellt zur Verfügung), ist ein logischer Schritt von einem schritthaltenden OS. Die übliche Einordnung besteht darin, dass der Betriebssystemkern Gedächtnis zuteilt und die Zentraleinheit zu verschiedenen Fäden der Ausführung schaltet. Benutzerweise-Prozesse führen Hauptfunktionen wie Dateisysteme, Netzschnittstellen usw. durch.

Im Allgemeinen sind Mikrokerne erfolgreich, wenn Aufgabenumschaltungs- und Zwischenaufgabe-Kommunikation schnell ist, und scheitern Sie, wenn sie langsam sind.

Exokernels kommunizieren effizient durch normale Unterprogramm-Anrufe. Die Hardware und die ganze Software im System sind dafür verfügbar, und durch Anwendungsprogrammierer ausziehbar.

Monolithische Kerne

In diesem Fall wird ein relativ großer Kern mit hoch entwickelten Fähigkeiten angepasst, um einer eingebetteten Umgebung anzupassen. Das gibt Programmierern eine Umgebung, die einem Tischbetriebssystem wie Windows von Linux oder Microsoft ähnlich ist, und ist deshalb für die Entwicklung sehr produktiv; auf der Kehrseite verlangt man beträchtlich mehr Hardware-Mittel, ist häufig teurer, und wegen der Kompliziertheit dieser Kerne kann weniger voraussagbar und zuverlässig sein.

Allgemeine Beispiele von eingebetteten monolithischen Kernen werden Linux und Windows CE Eingebettet.

Trotz der vergrößerten Kosten in der Hardware nimmt dieser Typ des eingebetteten Systems in der Beliebtheit, besonders auf den stärkeren eingebetteten Geräten wie Radiorouter und GPS Navigationssysteme zu. Hier sind einige der Gründe:

  • Häfen zu allgemeinen eingebetteten Chipsätzen sind verfügbar.
  • Sie erlauben Wiedergebrauch des öffentlich verfügbaren Codes für Gerät-Fahrer, Webserver, Brandmauern und anderen Code.
  • Entwicklungssysteme können mit breiten Merkmalsreihen aufbrechen, und dann kann der Vertrieb konfiguriert werden, um nicht benötigte Funktionalität auszuschließen, und den Aufwand des Gedächtnisses zu sparen, das es verbrauchen würde.
  • Viele Ingenieure glauben, dass das Laufen des Anwendungscodes in der Benutzerweise zuverlässiger, leichter ist die Fehler zu beseitigen, und dass deshalb der Entwicklungsprozess leichter ist und der mehr tragbare Code.
  • Viele eingebettete Systeme haben an den dichten Echtzeitvoraussetzungen eines Regelsystems Mangel. Obwohl ein System wie Eingebetteter Linux schnell genug sein kann, um auf viele andere Anwendungen zu antworten.
  • Eigenschaften, die schnellere Antwort verlangen als, können versichert werden kann häufig in die Hardware gelegt werden.
  • Viele RTOS Systeme haben Kosten pro Einheit. Wenn verwendet, auf einem Produkt, das ist oder eine Ware werden wird, die kosten, ist bedeutend.

Exotische kundenspezifische Betriebssysteme

Ein kleiner Bruchteil von eingebetteten Systemen verlangt sicheres, rechtzeitiges, zuverlässiges oder effizientes mit einigen der obengenannten Architekturen nicht erhältliches Verhalten. In diesem Fall baut eine Organisation ein System, um zu passen.

In einigen Fällen kann das System in einen "Mechanismus-Kontrolleur" das Verwenden von speziellen Techniken und einem "Anzeigekontrolleur" mit einem herkömmlichen Betriebssystem verteilt werden. Ein Nachrichtensystem passiert Daten zwischen den zwei.

Zusätzliche Softwarebestandteile

Zusätzlich zum Kernbetriebssystem haben viele eingebettete Systeme zusätzliche Softwarebestandteile der oberen Schicht. Diese Bestandteile bestehen daraus, Protokoll-Stapel zu vernetzen, mögen, KANN TCP/IP, FTP, HTTP, und HTTPS und auch eingeschlossene Lagerungsfähigkeiten wie FETT und Speicherverwaltungssysteme aufblitzen lassen. Wenn die eingebetteten Geräte Audio- und Videofähigkeiten haben, dann werden die passenden Fahrer und codecs im System anwesend sein. Im Fall von den monolithischen Kernen werden viele dieser Softwareschichten eingeschlossen. In der RTOS Kategorie hängt die Verfügbarkeit der zusätzlichen Softwarebestandteile vom kommerziellen Angebot ab.

Siehe auch

Zeichen

Links


Automatisierte Erzähler-Maschine / Die jungen
Impressum & Datenschutz