Das Design und die Entwicklung eingebetteter Systeme werden von Anwendungsanforderungen und IT-Technologien vorangetrieben. Mit der kontinuierlichen Innovation und Entwicklung der Mikroelektroniktechnologie wurden der Integrationsgrad und der Prozessgrad groß angelegter integrierter Schaltkreise kontinuierlich verbessert. Insbesondere die Einführung des eingebetteten Echtzeitbetriebssystems (RTOS) bietet die grundlegende Unterstützung und eine hocheffiziente Entwicklungsplattform für die Entwicklung komplexer Anwendungssoftware für eingebettete Systeme.
Entwicklungsprozess für eingebettete Systeme
Entwurfsphase
Die Anfangsphase der konzeptionellen Gestaltung eines neuen Produkts umfasst eine gewisse Vorausschau auf das Produkt auf der Grundlage von Marktprognosen, Kundenbedürfnissen und technologischen Entwicklungen. Bei der Planung eines Produkts wird ein Business Case für das Produkt erstellt, der Schätzungen zur Anzahl der Verkaufseinheiten, zum Preis und zum Gewinn enthält. Daraus entstehen ein erster Produktentwurf, Designspezifikationen und ein Produktmarketingplan. In dieser Phase können auch Industriedesigner hinzugezogen werden, um ein neues Verpackungskonzept für das Produkt zu entwickeln.
Vergessen Sie nicht, dass der Verkaufspreis neben den Herstellungskosten für jedes einzelne Produkt auch die Marketing-, Design- und Entwicklungskosten des Unternehmens decken muss. Dies hängt vom Verkaufsvolumen ab, aber ein Preisniveau, das das Zwei- bis Dreifache der Produktionskosten pro Einheit beträgt, ist nicht ungewöhnlich.

Entwicklungsphase
Der Großteil der Hardware- und Software-Implementierungsarbeiten findet am Ende der Entwurfsphase und während der Entwicklungsphase statt. Eine kritische Analyse der Entwurfsentscheidungen hilft dabei, festzustellen, ob es physikalisch möglich ist, ein Projektkonzept auf der Grundlage der Projektspezifikationen umzusetzen. Oft werden vor der Analyse der Entwurfsentscheidungen elektrische und Software-Modelle erstellt. Anschließend wird eine kleine Anzahl von Prototypen entworfen, gebaut und für detailliertere Hardware- und Softwaretests verwendet.
Produktionsphase
Schließlich wird in der Produktionsphase eine große Menge des Produkts hergestellt. Zunächst wird in der Regel eine kleine Pilotcharge für zusätzliche Tests und Bewertungen erstellt, bevor die Massenproduktion beginnt. Qualitätsingenieure arbeiten kontinuierlich daran, die Qualität des Produkts und des Prozesses zu verbessern. Support-Ingenieure kümmern sich um Änderungen, die sich aus der Einführung eines neuen Produkts ergeben, und leisten technischen Support für das Produkt. Angesichts der aktuellen Globalisierungstrends findet die Massenproduktion eines neuen eingebetteten Geräts oft in einem anderen Land statt, wo sie kostengünstiger ist. Bei vielen eingebetteten Geräten dauert der gesamte Prozess zwischen sechs Monaten und einem Jahr, aber der wettbewerbsintensive Markt zwingt zu immer kürzeren Produktlebenszyklen.
Entwicklung eines Embedded-System-Projekts
Die wichtigsten Softwareentwicklungs- und Konstruktionsarbeiten finden in der Entwicklungsphase statt, die nun näher beschrieben wird. Zunächst müssen die Konstrukteure den Prozessor und das Betriebssystem auswählen. Bei der Auswahl eines Prozessors für ein eingebettetes Gerät sind viele Faktoren zu berücksichtigen, wie z. B. Preis, Leistung, Stromverbrauch und Softwareunterstützung.

Wählen Sie den Prozessor aus.
Die Hersteller stellen Handbücher zur Verfügung, in denen ihre Prozessoren beschrieben werden, und bieten Entwicklern in der Regel eine vollständige Referenzplatine, die als Ausgangspunkt für die Entwicklung eines neuen Computerdesigns mit diesem Prozessor dienen kann. Eine detaillierte Beschreibung jedes einzelnen Prozessors, Speicherbausteins und aller erforderlichen Chips würde den Rahmen dieses Leitfadens sprengen, aber einige der allgemeinsten Hardwareeigenschaften, die sich direkt auf die Softwareentwicklung auswirken, werden später behandelt.
Hardwaregeräte mit dem Prozessor verbinden
Nachdem der Hardware-Entwickler für eingebettete Systeme den Prozessor und die entsprechenden Speichergeräte ausgewählt hat, besteht der nächste Schritt darin, die Hardware-E/A-Geräte und die entsprechende Busstruktur hinzuzufügen, die für den Anschluss der erforderlichen Geräte an den Prozessor benötigt werden. Das Design eingebetteter Geräte umfasst die Auswahl und den Anschluss der Hardware, die für die verschiedenen E/A-Geräte benötigt wird, die im neuen Design erforderlich sind.
Testen, Debuggen und Neugestalten
Nach der sorgfältigen Eingabe des Schaltplans wird mit Hilfe eines computergestützten Designsystems (CAD) für Leiterplatten eine Leiterplatte (PCB) für das eingebettete Gerät entworfen. Dieses Tool importiert die Pin-Verbindungsinformationen aus einem Schaltplan und verwendet sie zum Entwerfen und Testen der Kupferleiter, die zur Verbindung der integrierten Schaltkreise (ICS) auf einer Leiterplatte verwendet werden. Es werden mehrere Leiterplatten erstellt, mit den erforderlichen Komponenten bestückt und dann für umfangreiche Softwaretests des neuen Designs verwendet. Alle während der Tests festgestellten Fehler im Hardware-Design erfordern eine Änderung des Schaltplans, eine Modifikation des Leiterplattendesigns und eine neue Leiterplatte. Dies verlängert den Produktionszyklus der Leiterplatten und die Testphase, wodurch sich die Entwicklungszeit entsprechend verlängert.
Wählen Sie das Betriebssystem aus.
Softwareentwicklungswerkzeuge werden in der Regel mit dem Betriebssystem ausgeliefert. Da das Betriebssystem in C/C++ geschrieben ist, sind für die Erstellung eines neuen Betriebssystems ein Compiler, ein Link-Editor, ein Debugger und Binärbild-Werkzeuge erforderlich. Die gleichen Werkzeuge werden in der Regel auch für die Anwendungsentwicklung verwendet.
Die Softwareentwicklung erfolgt parallel zur Hardwareentwicklung, um die Gesamtentwicklungszeit des Produkts zu verkürzen. Angesichts des immer kürzer werdenden Produktlebenszyklus heutiger eingebetteter Geräte gewinnt dies noch mehr an Bedeutung. Für die Softwareentwicklung und -prüfung können Sie Emulationstools und Embedded-Computerboards mit ähnlicher Hardware verwenden, auf denen dasselbe Betriebssystem läuft, bevor eine neue Hardwareplattform verfügbar ist. Da der Großteil des Codes in C/C++/C# geschrieben ist, kann die meiste Software sogar auf einem anderen Prozessor oder Emulator entwickelt und getestet werden. Der Code wird dann für den neuen Prozessor neu kompiliert, um die letzte Entwicklungs- und Testphase durchzuführen, sobald die neue Hardware verfügbar ist.
Wenn Sie die Entwicklung Ihrer Software abgeschlossen haben, können Sie sie zum Testen und zur endgültigen Freigabe auf ein echtes Gerät übertragen. Windows Embedded CE verfügt über einen ARM-Emulator sowie Entwicklungswerkzeuge. Mit dem Emulator können Sie Ihre Software auf einem PC mit einer viel höheren Geschwindigkeit als auf echter Hardware ausführen. Der Emulator kann zum Debuggen und Profiling Ihrer Software sowie zur Softwareentwicklung für Remote-Geräte verwendet werden.
Speichertechnologien für eingebettete Geräte
Die meisten eingebetteten Geräte verwenden derzeit zwei Arten von Speicher: SDRAM oder manchmal auch SRAM für den Hauptspeicher und Flash oder ROM für den nichtflüchtigen Speicher. SDRAM hat deutlich geringere Kosten pro Speicherbit als SRAM, erfordert jedoch einen komplexeren Hardware-Controller für regelmäßige dynamische Speicheraktualisierungszyklen. Eine der wichtigsten Entscheidungen, die zu Beginn des Designprozesses getroffen werden muss, ist die Frage, wie viel Speicher jedes Typs das Gerät benötigt.
SDRAM-Speicher
SDRAM ist die Abkürzung für Synchronous Dynamic Random Access Memory (synchroner dynamischer Speicher mit wahlfreiem Zugriff). Er verwendet eine Betriebsspannung von 3,3 V und eine Bandbreite von 64 Bit. Es ist auch seit langem der gängigste Speicher, vom 430TX-Chipsatz bis zum 845-Chipsatz unterstützen alle SDRAM. Der SDRAM verbindet CPU und RAM über denselben Takt miteinander, sodass CPU und RAM einen Taktzyklus gemeinsam nutzen und synchron mit derselben Geschwindigkeit arbeiten können. Die steigende Flanke jedes Taktimpulses beginnt mit der Datenübertragung, und die Geschwindigkeit ist 50 % höher als die des EDO-Speichers.
Flash-Speicher
Das Betriebssystem und die Anwendungsprogramme werden in der Regel im Flash-Speicher gespeichert, da die meisten eingebetteten Geräte nicht über eine Festplatte verfügen.
Flash-Speichergeräte speichern Daten auf Flash-Chips. Flash-Chips enthalten ein Muster aus Elektronen, die sich in einer Schleife bewegen. Die Elektronen werden in der Speicherzelle gespeichert und bewegen sich zwischen den verschiedenen Datenbits auf dem Chip hin und her. Die Anzahl der Bits wird daran gemessen, wie schnell sich die Elektronen zwischen den Zellen oder Bits bewegen.
Wenn eine Änderung an einem Bit vorgenommen wird, wird sie in das nächste Bit geschrieben. Wenn zwei Bits gleichzeitig geändert werden, werden dem Programm zwei neue Bytes hinzugefügt usw.
SDRAM vs. Flash
SDRAM ist schneller als Flash-Speicher und eignet sich daher ideal für Anwendungen, die einen schnellen Datenzugriff erfordern.
SDRAM verbraucht weniger Strom als Flash-Speicher und eignet sich daher ideal für tragbare Geräte.
SDRAM ist teurer als Flash-Speicher und daher weniger ideal für Anwendungen, bei denen die Kosten eine Rolle spielen.
Flash-Speicher ist langlebiger als SDRAM und wird daher häufig in Anwendungen eingesetzt, bei denen Daten über lange Zeiträume gespeichert werden müssen.
Flash-Speicher hat im Vergleich zu SDRAM eine viel langsamere Lesegeschwindigkeit.
Flash-Speicher unterstützt nur eine begrenzte Anzahl von Schreibvorgängen, sodass die Verwendung eines virtuellen Speichersystems mit Paging on Demand (wie in einem Desktop-PC), bei dem Flash-Speicher (anstelle einer Festplatte) als virtuelles Speicheraustauschgerät dient, in eingebetteten Geräten in der Regel nicht zum Einsatz kommt.




