2024-07-12
한어Русский языкEnglishFrançaisIndonesianSanskrit日本語DeutschPortuguêsΕλληνικάespañolItalianoSuomalainenLatina
Ein eingebettetes Netzwerk ist ein Netzwerksystem, mit dem verschiedene eingebettete Systeme miteinander verbunden werden, damit sie Informationen untereinander übertragen und Ressourcen gemeinsam nutzen können. Eingebettete Systeme nutzen unterschiedliche Verbindungstechnologien in verschiedenen Situationen, beispielsweise Heiminformationsnetzwerke in Familienzimmern, Feldbusse im Bereich der industriellen Automatisierung und mobile Kommunikationsnetzwerke in eingebetteten Systemen wie mobilen Informationsgeräten. Darüber hinaus gibt es einige dedizierte Konnektivitätstechnologien Wird zur Verbindung eingebetteter Systeme verwendet.
Feldbus ist eine Computersteuerungstechnologie, die Mitte der 1980er Jahre nach analogen Instrumentensteuerungssystemen, zentralisierten digitalen Steuerungssystemen und verteilten Steuerungssystemen entwickelt wurde. Sie ist auch heute einer der Brennpunkte in der Technologieentwicklung im Bereich der Automatisierungssteuerung Im Bereich der industriellen Automatisierung wird es oft als lokales Computernetzwerk bezeichnet.
Feldbus ist ein Netzwerk, das Feldgeräte wie digitale Sensoren, Wandler, Industrieinstrumente und Steuerungsaktoren mit industriellen Prozesssteuerungseinheiten und Feldbedienstationen verbindet. Es zeichnet sich durch vollständige Digitalisierung, Dezentralisierung, bidirektionale Übertragung und Mehrzweigigkeit aus. Es ist das Produkt der Entwicklung industrieller Steuerungsnetzwerke auf Feldebene.
Feldbus ist ein zugrunde liegendes Steuerungsnetzwerk mit geringer Bandbreite, das sich am unteren Ende der Produktionssteuerungs- und Netzwerkstrukturen befindet und daher auch als zugrunde liegendes Netzwerk (Infranet) bezeichnet wird. Es wird hauptsächlich in Produktionsstätten eingesetzt, um eine bidirektionale, serielle, digitale Kommunikation mit mehreren Knoten zwischen Mess- und Steuerungsgeräten zu erreichen.
Das Field Control System (FCS) ist ein Steuerungssystem, das über einen Feldbus verschiedene Steuerungen und Instrumentengeräte verbindet. Dieses Steuerungssystem dezentralisiert die Steuerungsfunktionen vollständig am Standort und reduziert so die Installations- und Wartungskosten. Tatsächlich ist FCS ein offenes, interoperables und vollständig dezentralisiertes verteiltes Steuerungssystem.
Das eingebettete Feldsteuerungssystem bettet einen dedizierten Mikroprozessor in ein herkömmliches Mess- und Steuerungsinstrument ein und ermöglicht so digitale Rechen- und Kommunikationsfunktionen. Es verwendet verdrillte Leitungen, Stromleitungen oder optische Fasern als Bus, um mehrere Mess- und Kontrollinstrumente in einem Netzwerk zu verbinden. Gemäß Standardkommunikationsprotokollen verbindet es mehrere computerisierte Mess- und Kontrollgeräte vor Ort und zwischen Instrumenten vor Ort und Fernüberwachung Datenübertragung und Informationsaustausch werden zwischen Computern realisiert und bilden verschiedene automatische Steuerungssysteme, die den tatsächlichen Anforderungen entsprechen. Kurz gesagt: Das Feldbus-Steuerungssystem verwandelt einzelne verteilte Mess- und Steuergeräte in Netzwerkknoten und nutzt den Feldbus als Verbindung, um diese verteilten Geräte zu einem Netzwerksystem zu machen, das miteinander kommunizieren und gemeinsam automatische Steuerungsaufgaben erledigen kann. Mit Hilfe der Feldbustechnologie ist aus der traditionellen einzelnen verteilten Steuerungsausrüstung ein Ganzes geworden, das miteinander kommuniziert und zusammenarbeitet.
Das Heiminformationsnetzwerk ist ein lokales Netzwerk, das Personalcomputer, Haushaltsgeräte, Wasser-, Strom-, Gaszähler, Beleuchtungsgeräte, Netzwerkgeräte und Sicherheitsgeräte im Haus verbindet. Seine Hauptfunktion besteht darin, die oben genannten Geräte zentral zu steuern und sie mit dem Internet zu verbinden, um Netzwerkressourcen und -dienste gemeinsam zu nutzen. Darüber hinaus kann das Heiminformationsnetzwerk auch auf das gesamte Haus oder sogar die gesamte Gemeinschaft ausgeweitet werden und wird so zur Grundlage intelligenter Wohngemeinschaften und intelligenter Gesellschaften. Im Heiminformationsnetzwerksystem sind alle Heimgeräte intelligent, einschließlich Haushaltsgeräte, Wasser-, Strom-, Gaszähler und Beleuchtungsgeräte. Über das Home-Gateway können sie miteinander kommunizieren und auf das Internet zugreifen. Die Realisierung eines Heiminformationsnetzwerks bietet den Menschen eine sicherere, bequemere und komfortablere häusliche Umgebung. Wenn der Besitzer beispielsweise das Haus verlässt, wird die Tür automatisch geschlossen und verriegelt, das Überwachungssystem wird automatisch eingeschaltet und der Besitzer wird automatisch über jede Anomalie zu Hause benachrichtigt. Verschiedene Geräte im Haus können jederzeit gesteuert werden Zeit und an jedem Ort, und Instrumentendaten können automatisch hochgeladen werden.
Das Familieninformationsnetzwerk muss zwei grundlegende Probleme lösen:
(1) So verbinden Sie Haushaltsgeräte, Wasser, Strom, Gaszähler, Beleuchtungsgeräte usw. miteinander.
(2) Wie lässt sich die Interoperabilität zwischen diesen verbundenen Geräten realisieren? Das heißt, Geräte im Heiminformationsnetzwerk können bei Bedarf automatisch Dienste anfordern, und verwandte Geräte können Dienste bereitstellen oder Anfragen annehmen und verarbeiten. Heiminformationsnetzwerke können unterschiedliche topologische Strukturen annehmen, z. B. Bustyp, Sternstruktur usw. Das Heiminformationsnetzwerk kann weiter in mehrere Steuersubnetze und Datensubnetze unterteilt werden. Das Steuersubnetz ähnelt einem Feldbus. Es ist ein Netzwerk mit geringer Bandbreite und wird hauptsächlich zum Senden und Empfangen von Steuerinformationen verwendet. Das Datensubnetz hat höhere Anforderungen an die Bandbreite und die damit verbundenen Geräte müssen eine große Menge an Dateninformationen übertragen.
In den letzten Jahren hat mit der rasanten Entwicklung der Mobiltelefonkommunikation und der raschen Verbreitung von Personalcomputern eine Vielzahl tragbarer Computer wie Laptops, Notebooks, Handheld-Computer usw. stark zugenommen den Bedürfnissen nicht mehr genügen. Die Menschen hoffen, jederzeit und überall Dateninformationen übertragen und austauschen zu können. Daher begannen sich die Übertragungsmedien für die Datenkommunikation von kabelgebunden auf drahtlos zu erweitern, und es entstand die drahtlose mobile Datenkommunikation. Ein drahtloses Datenkommunikationsnetzwerk ist ein Netzwerksystem, das Daten über Funkwellen überträgt. Es wurde auf Basis der kabelgebundenen Datenkommunikation entwickelt und kann die Datenkommunikation im mobilen Zustand realisieren.Über drahtlose Datenkommunikationsnetzwerke, Smartphones, PDAs usw
Notebook-Computer können untereinander Dateninformationen übertragen und auf das Internet zugreifen. Drahtlose Datenkommunikationsnetzwerke werden in drahtlose Netzwerke mit kurzer Reichweite und drahtloses Internet unterteilt. Drahtlose Netzwerke mit kurzer Reichweite umfassen hauptsächlich 802.11, Bluetooth, IrDA und HomeRF. Drahtloses Internet oder mobiles Internet verwendet hauptsächlich zwei drahtlose Verbindungstechnologien: eine ist mobile drahtlose Zugangstechnologie wie GSM, GPRS, CDPD (Cellular Digital Packet Data) usw., die andere ist feste drahtlose Zugangstechnologie, einschließlich Mikrowellen- und Spread-Spectrum-Kommunikation , Satellit und drahtlose optische Übertragung usw.
Mit der rasanten Entwicklung des Internets und der eingebetteten Technologie müssen immer mehr Informationsgeräte wie Web-Videotelefone, Set-Top-Boxen, Informations-Haushaltsgeräte und andere eingebettete Systemprodukte mit dem Internet verbunden werden, um den Komfort zu teilen , Geschwindigkeit und Komfort, die das Internet bietet. Allgegenwärtige Informationsressourcen und Dienste, nämlich eingebettete Internet-Technologie. Die eingebettete Internet-Technologie hat breite Anwendungsaussichten in den Bereichen intelligentes Transportwesen, Haushaltssysteme, Heimautomation, Industrieautomation, POS und E-Commerce.
1.Eingebettete Internetzugriffsmethode
Eingebettete Geräte integrieren den TCP/IP-Protokollstapel und zugehörige Software. Solche Geräte können als Knoten im Internet verwendet werden, ihnen wird eine IP-Adresse zugewiesen und sie können direkt mit dem Internet verbunden werden. Die Merkmale dieser Zugriffsmethode sind:
2.Eingebetteter TCP/IP-Protokollstapel
Die vom eingebetteten TCP/IP-Protokollstapel ausgeführten Funktionen sind dieselben wie die des vollständigen TCP/IP-Protokollstapels. Aufgrund von Ressourcenbeschränkungen des eingebetteten Systems können jedoch einige Indikatoren und Schnittstellen des eingebetteten Protokollstapels von gewöhnlichen abweichen Protokollstapel.
(1) Die aufrufende Schnittstelle des eingebetteten Protokollstapels unterscheidet sich von der des normalen Protokollstapels. Die Socket-Schnittstelle des gewöhnlichen Protokollstapels ist Standard und die Anwendungssoftware ist gut kompatibel. Der Code-Overhead sowie der Verarbeitungs- und Speicheraufwand für die Implementierung der standardisierten Schnittstelle sind jedoch enorm. Als die meisten Hersteller Standard-Protokollstapelschnittstellen in eingebettete Systeme verpflanzten, nahmen sie daher unterschiedliche Grade an Modifikationen und Vereinfachungen vor und etablierten effiziente dedizierte Protokollstapel. Die von ihnen bereitgestellten APIs unterschieden sich von den APIs allgemeiner Protokollstapel .
(2) Die Anpassbarkeit des eingebetteten Protokollstapels. Die meisten eingebetteten Protokollstacks sind modular aufgebaut, wenn der Speicherplatz begrenzt ist, können sie bei Bedarf dynamisch installiert werden, und sie lassen einige nicht wesentliche Teile für eingebettete Systeme weg, wie z. B. die Schnittstellenweiterleitung und einen vollständigen Satz von Internetdiensttools.
(3) Plattformkompatibilität des eingebetteten Protokollstapels. Im Allgemeinen ist der Protokollstapel eng mit dem Betriebssystem integriert und die meisten Protokollstapel sind im Betriebssystemkernel implementiert. Die Implementierung des Protokollstapels hängt von den vom Betriebssystem bereitgestellten Diensten ab und weist eine schlechte Portabilität auf. Die Implementierung des eingebetteten Protokollstapels ist im Allgemeinen kaum vom Betriebssystem abhängig und lässt sich leicht übertragen. Viele kommerzielle eingebettete Protokollstapel unterstützen mehrere Betriebssystemplattformen.
(4) Hohe Effizienz des eingebetteten Protokollstapels. Implementierungen eingebetteter Protokollstapel beanspruchen in der Regel weniger Platz, benötigen weniger Datenspeicher und sind Code-effizient, wodurch die Anforderungen an die Prozessorleistung reduziert werden.
Mit der Entwicklung der eingebetteten Technologie bewegen sich eingebettete Datenbanken allmählich in Richtung Anwendung. Im Wesentlichen werden eingebettete Datenbanken aus allgemeinen Datenbanken entwickelt und auf verschiedenen eingebetteten Geräten oder mobilen Geräten ausgeführt. Sie zeigen ihre Überlegenheit in eingebetteten Systemen, da sie durch die Anwendungsumgebung des eingebetteten Systems selbst eingeschränkt sind. Eingebettete Datenbanken weisen andere Eigenschaften als allgemeine Datenbanken auf .
Typischerweise handelt es sich bei einem eingebetteten Datenbankverwaltungssystem um ein Datenbankverwaltungssystem, das auf eingebetteten Geräten verwendet wird. Da es sich bei den meisten eingebetteten Datenbankverwaltungssystemen um mobile Informationsgeräte wie Handheld-Computer, PDAs, fahrzeugmontierte Geräte und andere mobile Kommunikationsgeräte handelt, werden eingebettete Geräte mit fester Position selten verwendet. Daher werden eingebettete Datenbanken auch als mobile Datenbanken oder mobil bezeichnet Datenbanken. Eingebettete mobile Datenbank.Seine Hauptfunktion besteht darin, Datenverwaltungsprobleme in mobilen Computerumgebungen zu lösen. Mobile Datenbanken sind ein wichtiger Bestandteil mobiler Computerumgebungen.
Verteilte Datenbank.
Die Einführung der Datenbanktechnologie in eingebettete Systeme ist hauptsächlich auf die folgenden Mängel bei der Entwicklung von Informationsmanagementanwendungen direkt auf eingebetteten Betriebssystemen oder Bare-Metal zurückzuführen:
(1) Alle Anwendungen erfordern wiederholte Datenverwaltungsarbeiten, was die Schwierigkeit und die Kosten der Entwicklung erhöht.
(2) Der Datenaustausch zwischen Anwendungen ist schlecht.
(3) Anwendungssoftware weist eine geringe Unabhängigkeit, Portabilität und geringe Wiederverwendbarkeit auf.
Durch die Einführung eines Datenbankverwaltungssystems in eingebettete Systeme können die oben genannten Probleme weitgehend gelöst und die Entwicklungseffizienz und Portabilität von Anwendungssystemen verbessert werden.
Das eingebettete Datenbanksystem ist ein umfassendes System, das ein eingebettetes Datenbankverwaltungssystem umfasst und mobile Kommunikationsgeräte, Workstations oder Desktop-Computer und Datenserver umfasst. Diese Funktion des Systems und die Nutzungsumgebung des Systems haben großen Einfluss auf das eingebettete Datenbankverwaltungssystem Die größeren Auswirkungen wirken sich direkt auf die Struktur des eingebetteten Datenbankverwaltungssystems aus. Die Merkmale seiner Nutzungsumgebung lassen sich einfach wie folgt zusammenfassen:
(1) Das Gerät ist jederzeit mobil. Eingebettete Datenbanken werden hauptsächlich auf mobilen Informationsgeräten verwendet. Der Standort des Geräts ändert sich häufig mit dem Benutzer.
(2) Die Netzwerkverbindung wird häufig unterbrochen und der Standort mobiler Geräte oder mobiler Endgeräte ändert sich häufig während der Nutzung. Er wird auch durch Faktoren wie Nutzungsmethoden, Stromversorgung, drahtlose Kommunikation und Netzwerkbedingungen beeinflusst. Daher wird die Netzwerkverbindung in der Regel nicht kontinuierlich aufrechterhalten, sondern häufig intermittierend aktiv oder passiv getrennt und verbunden.
(3) Aufgrund der häufigen Standortänderungen mobiler Informationsgeräte können mobile Informationsgeräte und Datenserver zu unterschiedlichen Zeiten über unterschiedliche Netzwerksysteme verbunden sein. Diese Netzwerke können sich in der Netzwerkbandbreite, den Kommunikationskosten, der Netzwerkverzögerung, der Servicequalität usw. unterscheiden.
(4) Asymmetrische Kommunikationsfähigkeiten Aufgrund der Ressourcenbeschränkungen mobiler Geräte sind die Netzwerkkommunikationsfähigkeiten zwischen mobilen Geräten und Servern asymmetrisch. Die Sendefähigkeiten mobiler Geräte sind sehr begrenzt, wodurch die Downlink-Kommunikationsbandbreite vom Datenserver zum mobilen Gerät und die Uplink-Bandbreite vom mobilen Gerät zum Datenserver sehr unterschiedlich sind.
Ein vollständiges eingebettetes Datenbankverwaltungssystem besteht aus mehreren Subsystemen, einschließlich des Hauptdatenbankverwaltungssystems, des Synchronisationsservers, des eingebetteten Datenbankverwaltungssystems, des Verbindungsnetzwerks und anderer Subsysteme, wie in Abbildung 12-6 dargestellt.
(1) Eingebettetes Datenbankverwaltungssystem. Das eingebettete Datenbankverwaltungssystem ist ein funktional unabhängiges Einzelbenutzer-Datenbankverwaltungssystem. Es kann unabhängig vom Synchronisationsserver und dem Hauptdatenbankverwaltungssystem ausgeführt werden, um Daten im eingebetteten System zu verwalten. Es kann auch über den Synchronisationsserver mit dem Hauptserver verbunden werden, um die Daten in der Hauptdatenbank zu betreiben eine Vielzahl von Möglichkeiten zur Datensynchronisierung.
(2) Synchronisationsserver. Der Synchronisationsserver ist der Verbindungsknotenpunkt zwischen der eingebetteten Datenbank und der Hauptdatenbank und stellt die Konsistenz der Daten in der eingebetteten Datenbank und der Hauptdatenbank sicher.
(3) Datenserver. Die Hauptdatenbank und das Datenbankverwaltungssystem des Datenservers können große Allzweckdatenbanksysteme wie Oracle oder Sybase verwenden.
(4) Stellen Sie eine Verbindung zum Netzwerk her. Der Hauptdatenbankserver und der Synchronisationsserver sind im Allgemeinen über ein Festnetz mit hoher Bandbreite und geringer Latenz verbunden. Die Verbindung zwischen dem mobilen Gerät und dem Synchronisationsserver kann je nach den spezifischen Bedingungen des Geräts ein WLAN, eine Infrarotverbindung, eine universelle serielle Leitung oder ein öffentliches Netzwerk sein.
1.Der Schlüssel zu eingebetteten mobilen Datenbanken in Anwendungen
In praktischen Anwendungen müssen eingebettete mobile Datenbanken Probleme wie Datenkonsistenz (Replikation), effiziente Transaktionsverarbeitung und Datensicherheit lösen.
(1) Datenkonsistenz. Ein bemerkenswertes Merkmal der eingebetteten mobilen Datenbank besteht darin, dass die Verbindung zwischen mobilen Datenterminals und dem Synchronisationsserver eine schwache Verbindung ist, d. h. geringe Bandbreite, lange Verzögerung, Instabilität und häufige Verbindungsabbrüche. Um Benutzeroperationen in der Datenbank in schwachen Umgebungen zu unterstützen, wird heute häufig die optimistische Replikationsmethode (Optimistische Replikation oder Lazy Replication) verwendet, um Benutzern das Ausführen von Datenkopien im lokalen Cache zu ermöglichen. Nachdem das Netzwerk wiederhergestellt wurde, werden Datenänderungsinformationen mit dem Datenbankserver oder anderen mobilen Datenterminals ausgetauscht und die Datenkonsistenz wird durch Konflikterkennung und -koordinierung wiederhergestellt.
(2) Effiziente Transaktionsverarbeitung. Mobile Transaktionen werden in einer mobilen Umgebung mit häufigen und vorhersehbaren Verbindungsabbrüchen durchgeführt. Um den reibungslosen Abschluss aktiver Transaktionen sicherzustellen, müssen neue Strategien und Algorithmen für das Transaktionsmanagement entworfen und implementiert werden. Bestimmen Sie die Priorität der Transaktionsverarbeitung basierend auf den Netzwerkverbindungsbedingungen. Transaktionsanforderungen mit hoher Netzwerkverbindungsgeschwindigkeit werden zuerst verarbeitet.
Bestimmen Sie anhand der Betriebszeit, ob die Transaktion migriert wird. Das heißt, alle langfristigen Transaktionsvorgänge werden zur Ausführung auf den Server migriert. Es muss nicht sichergestellt werden, dass das Netzwerk immer reibungslos funktioniert. Bestimmen Sie, ob die Transaktion hochgeladen wird zur Ausführung oder zum Herunterladen nach der Datenkopie basierend auf der Größe der Daten; verbesserte Protokollierungsstrategie während der Transaktionsverarbeitung, ob bei der Netzwerktrennungsverarbeitung während der Verarbeitung der Servererkennungsmechanismus oder der Client-Deklarationsmechanismus verwendet werden soll; Transaktionsbewegungen (z. B. standortbezogene Abfragen).
(3) Datensicherheit. Eingebettete Geräte sind in vielen Anwendungsbereichen Schlüsselgeräte für die Datenverwaltung oder -verarbeitung im System, sodass das Datenbanksystem auf dem eingebetteten Gerät eine strengere Kontrolle über Zugriffsberechtigungen hat. Gleichzeitig verfügen viele eingebettete Geräte über eine hohe Mobilität, Portabilität und nicht ortsfeste Arbeitsumgebungen, was auch potenziell unsichere Faktoren mit sich bringt. Darüber hinaus unterliegen einige Daten einem hohen Grad an Privatsphäre, sodass die Sicherheit personenbezogener Daten im Hinblick auf die Vermeidung von Kollisionen, Magnetfeldstörungen, Verlust und Diebstahl vollständig gewährleistet sein muss. Die wichtigsten Maßnahmen zur Gewährleistung der Datensicherheit sind: Authentifizierung mobiler Endgeräte, um betrügerischen Zugriff durch illegale Endgeräte zu verhindern; Verschlüsselung und Speicherung heruntergeladener Datenkopien, um einen physischen Verlust mobiler Endgeräte zu verhindern.
2.Merkmale mobiler Datenbankverwaltungssysteme
Die Rechenumgebung des mobilen DBMS ist eine Erweiterung des herkömmlichen verteilten DBMS. Sie kann als verteiltes System betrachtet werden, in dem Clients und feste Serverknoten dynamisch verbunden sind. Daher ist das Datenbankverwaltungssystem in der mobilen Computerumgebung ein dynamisches verteiltes Datenbankverwaltungssystem. Da das eingebettete mobile Datenbankverwaltungssystem auf einem eingebetteten Betriebssystem in einer mobilen Computerumgebung angewendet wird, weist es seine eigenen Merkmale und funktionalen Anforderungen auf:
(1) Die Mikrokernelstruktur erleichtert die Realisierung eingebetteter Funktionen. Angesichts der begrenzten Ressourcen eingebetteter Geräte sollte das eingebettete mobile DBMS mithilfe der Miniaturisierungstechnologie implementiert und seine Systemstruktur kompaktiert werden, um den Anforderungen eingebetteter Anwendungen gerecht zu werden.
(2) Unterstützung für Standard-SQL. Das eingebettete mobile DBMS sollte Standard-SQL unterstützen. Unterstützt eine Teilmenge des SQL92-Standards, unterstützt Datenabfragen (Join-Abfragen, Unterabfragen, Sortieren, Gruppieren usw.) sowie das Einfügen, Aktualisieren und Löschen mehrerer Standard-SQL-Anweisungen und erfüllt so die Anforderungen der Entwicklung eingebetteter Anwendungen vollständig.
(3) Transaktionsverwaltungsfunktion. Ein eingebettetes mobiles DBMS sollte über Transaktionsverarbeitungsfunktionen verfügen, die Transaktionsintegrität, Atomizität und andere Merkmale automatisch aufrechterhalten und die Integrität der Entität und der referenziellen Integrität unterstützen.
(4) Vollständiger Datensynchronisationsmechanismus. Die Datensynchronisierung ist das wichtigste Merkmal eingebetteter Datenbanken. Durch Datenreplikation können Änderungen in der eingebetteten Datenbank oder der Hauptdatenbank aufeinander angewendet werden, um die Datenkonsistenz sicherzustellen. Der Datensynchronisationsmechanismus des eingebetteten mobilen Datenbankverwaltungssystems sollte die folgenden Merkmale aufweisen:
(5) Unterstützt mehrere Verbindungsprotokolle. Ein eingebettetes mobiles DBMS sollte mehrere Kommunikationsverbindungsprotokolle unterstützen. Verbindungen zu eingebetteten Geräten und Datenbankservern können über verschiedene Verbindungsmethoden wie serielle Kommunikation, TCP/IP, Infrarotübertragung und Bluetooth hergestellt werden.
(6) Vollständige eingebettete Datenbankverwaltungsfunktionen. Das eingebettete mobile DBMS sollte über eine automatische Wiederherstellungsfunktion verfügen, die grundsätzlich keinen manuellen Eingriff für die eingebettete Datenbankverwaltung erfordert und eine Datensicherung und -wiederherstellung ermöglichen kann, um die Sicherheit und Zuverlässigkeit der Benutzerdaten zu gewährleisten.
(7) Plattformunabhängigkeit und Unterstützung für mehrere eingebettete Betriebssysteme. Das eingebettete mobile DBMS sollte in der Lage sein, eine Vielzahl derzeit gängiger eingebetteter Betriebssysteme wie Windows CE und Palm OS zu unterstützen, sodass das eingebettete mobile Datenbankverwaltungssystem nicht durch mobile Endgeräte eingeschränkt wird.
(8) Keine Verwaltungsfunktionen. Die eingebettete Datenbank verfügt über eine automatische Wiederherstellungsfunktion. Sie kann die eingebettete Datenbank ohne manuelles Eingreifen verwalten und eine Datensicherung und -synchronisierung ermöglichen.
Darüber hinaus besteht ein Idealzustand darin, dass Benutzer mit nur einem mobilen Endgerät (z. B. einem Mobiltelefon) Datenoperationen und -verwaltung für alle damit verbundenen mobilen Datenbanken durchführen können. Dies setzt voraus, dass das Frontend-System universell ist und die Schnittstelle der mobilen Datenbank über einheitliche und standardisierte Standards verfügt. Das Front-End-Managementsystem generiert während der Datenverarbeitung automatisch einheitliche Transaktionsverarbeitungsbefehle und übermittelt diese zur Ausführung an den aktuell verbundenen Datenserver. Dies erhöht effektiv die Vielseitigkeit des eingebetteten mobilen Datenbankverwaltungssystems und erweitert die Anwendungsaussichten der eingebetteten mobilen Datenbank.
Kurz gesagt, im eingebetteten mobilen Datenbankverwaltungssystem müssen viele Probleme berücksichtigt werden, die in herkömmlichen Computerumgebungen nicht berücksichtigt werden müssen, z. B. die Unterstützung von Trennvorgängen, die Unterstützung von regionsübergreifenden langen Transaktionen und die Unterstützung von standortbezogenen Abfragen und Abfrageoptimierung. Besondere Überlegungen und Überlegungen zur Verbesserung der Nutzung begrenzter Ressourcen und der Systemeffizienz. Um die oben genannten Probleme effektiv zu lösen, werden Technologien wie Replikations- und Caching-Technologie, mobile Transaktionsverarbeitung, Datenübertragungstechnologie, mobile Abfrageverarbeitung und Abfrageoptimierung, standortbezogene Datenverarbeitung und Abfragetechnologie, mobile Informationsveröffentlichungstechnologie, mobiler Agent usw. eingesetzt Die Entwicklung und Verbesserung von Technologien wird die Entwicklung eingebetteter mobiler Datenbankverwaltungssysteme weiter vorantreiben.
Vereinfacht ausgedrückt kann ein Echtzeitsystem als ein System betrachtet werden, das rechtzeitig auf externe Ereignisse reagieren kann. Das wichtigste Merkmal dieser Art von Systemen ist die Aktualität, also die Echtzeitfähigkeit. Die Korrektheit eines Echtzeitsystems hängt nicht nur von den logischen Ergebnissen der Systemberechnungen ab, sondern auch vom Zeitpunkt, zu dem diese Ergebnisse generiert werden.
Derzeit sind die meisten Echtzeitsysteme eingebettet, und tatsächlich laufende eingebettete Systeme stellen auch Echtzeitanforderungen dar. Daher sind eingebettete Echtzeitbetriebssysteme unter vielen Arten von eingebetteten Betriebssystemen die repräsentativsten Daher konzentriert sich dieser Abschnitt hauptsächlich auf die Eigenschaften und Konzepte eingebetteter Echtzeit-Betriebssysteme und stellt die grundlegenden Konzepte und Eigenschaften, die grundlegende Architektur und den Kernel eingebetteter Betriebssysteme vor wie Dienste, Kernelobjekte und Kerneldienste.
In der realen Welt verfügen nicht alle eingebetteten Systeme über Echtzeiteigenschaften, und nicht alle Echtzeitsysteme sind unbedingt eingebettet. Diese beiden Systeme schließen sich jedoch nicht gegenseitig aus, und Systeme, die die Eigenschaften beider Systeme aufweisen, werden als eingebettete Echtzeitsysteme bezeichnet. Die Beziehung zwischen ihnen ist in Abbildung 12-7 dargestellt.
(1) Korrekte Logik (oder Funktion) bedeutet, dass das System bei der Verarbeitung externer Ereignisse korrekte Ergebnisse liefern kann.
(2) Korrekter Zeitpunkt bedeutet, dass die Verarbeitung externer Ereignisse durch das System innerhalb eines vorgegebenen Zeitraums abgeschlossen sein muss.
(3) Frist oder Frist, Deadline, Frist bezieht sich auf die letzte Frist, die das System externe Ereignisse verarbeiten muss. Das Versäumen dieser Frist kann schwerwiegende Folgen haben. Normalerweise muss die Berechnung vor Ablauf der Frist abgeschlossen sein.
(4) Echtzeitsystem bezieht sich auf ein System, das sowohl die korrekte Funktion als auch die korrekte Zeit erfüllt. Beide sind gleichermaßen wichtig. Mit anderen Worten: Echtzeitsysteme sind zeitbeschränkt und termingesteuert. In manchen Systemen kann jedoch die zeitliche Korrektheit geopfert werden, um die funktionale Korrektheit sicherzustellen.
Zur Einteilung von Echtzeitsystemen lassen sich Echtzeitsysteme üblicherweise unterteilen in:
(1) Starkes Echtzeitsystem, die Reaktionszeit des Systems ist sehr kurz, normalerweise im Millisekunden- oder Mikrosekundenbereich.
(2) Bei allgemeinen Echtzeitsystemen ist die Systemreaktionszeit geringer als bei starken Echtzeitsystemen, normalerweise auf der zweiten Ebene.
(3) Bei schwachen Echtzeitsystemen kann die Systemreaktionszeit länger sein und sich auch mit der Schwere der Systemlast ändern.
Echtzeitsysteme können anhand der Toleranz für Terminüberschreitungen bzw. der Schwere der Folgen in weiche Echtzeitsysteme und harte Echtzeitsysteme unterteilt werden.
(1) Ein hartes Echtzeitsystem bezieht sich auf ein Echtzeitsystem, dessen Flexibilität nahe bei Null liegt.Die Frist muss eingehalten werden
Andernfalls werden katastrophale Folgen eintreten und die nach Ablauf der Frist erzielten Verarbeitungsergebnisse sind entweder völlig nutzlos oder stark entwertet.
(2) Weiches Echtzeitsystem bezieht sich auf ein Echtzeitsystem, das Zeitlimitanforderungen erfüllen muss, aber über ein gewisses Maß an Flexibilität verfügt. Fristen können variable Toleranzniveaus, durchschnittliche Fristen oder sogar statistische Verteilungen mit unterschiedlichem Grad an Akzeptanz der Antwortzeiten umfassen. In weichen Echtzeitsystemen führen Terminüberschreitungen in der Regel nicht zu schwerwiegenden Folgen wie einem Systemausfall. Tabelle 12-2 ist ein Vergleich von Soft-Echtzeit- und Hard-Echtzeitsystemen.
Im Vergleich zeigt sich, dass, da Terminüberschreitungen keinen entscheidenden Einfluss auf den Betrieb von Soft-Echtzeitsystemen haben, ein Soft-Echtzeitsystem nicht vorhersagen muss, ob möglicherweise Terminüberschreitungen anstehen. Im Gegensatz dazu können weiche Echtzeitsysteme einen Wiederherstellungsprozess einleiten, nachdem sie eine Fristüberschreitung erkannt haben.
In einem Echtzeitsystem ist die Startzeit einer Aufgabe genauso wichtig wie die Frist oder die Fertigstellungszeit. Da der Aufgabe die erforderlichen Ressourcen wie CPU und Speicher fehlen, kann dies den Start der Aufgabenausführung behindern und direkt zu Fehlfunktionen führen Die Deadline für die Erledigung der Aufgabe, also das Deadline-Problem, wird zu einem Ressourcenplanungsproblem.
Dies hat entscheidende Auswirkungen auf Planungsalgorithmen und Aufgabendesign.
Das sogenannte eingebettete Betriebssystem bezieht sich auf ein Betriebssystem, das auf einem eingebetteten Computersystem ausgeführt wird, um eingebettete Anwendungen zu unterstützen. Es handelt sich um eine Sammlung von Software, die zur Steuerung und Verwaltung von Hardware- und Softwareressourcen in eingebetteten Systemen sowie zur Bereitstellung von Systemdiensten verwendet wird. Das eingebettete Betriebssystem ist ein wichtiger Bestandteil der eingebetteten Software. Sein Aufkommen hat die Effizienz der Entwicklung eingebetteter Software verbessert, die Portabilität von Anwendungssoftware verbessert und die Entwicklung eingebetteter Systeme wirksam gefördert.
1.Eigenschaften eingebetteter Betriebssysteme
Im Vergleich zu Allzweck-Betriebssystemen weisen eingebettete Betriebssysteme hauptsächlich die folgenden Merkmale auf:
(1) Miniaturisierung: Die laufende Plattform des eingebetteten Betriebssystems ist kein Allzweckcomputer, sondern ein eingebettetes Computersystem. Dieser Systemtyp verfügt im Allgemeinen nicht über einen großen Speicher und fast keinen externen Speicher. Daher muss das eingebettete Betriebssystem kompakt gestaltet werden, um so wenig Systemressourcen wie möglich zu beanspruchen. Um die Ausführungsgeschwindigkeit und Zuverlässigkeit des Systems zu verbessern, ist die Software im eingebetteten System im Allgemeinen im Speicherchip verankert, anstatt auf einem Träger wie einer Festplatte gespeichert zu werden.
(2) Hohe Codequalität: In den meisten Anwendungen ist Speicherplatz immer noch eine kostbare Ressource, die eine hohe Qualität des Programmcodes und einen möglichst schlanken Code erfordert.
(3) Spezialisierung: Es gibt verschiedene Hardwareplattformen für eingebettete Systeme, und die Prozessoren werden schnell aktualisiert. Jede davon ist speziell für unterschiedliche Anwendungsbereiche konzipiert. Daher muss das eingebettete Betriebssystem eine gute Anpassungsfähigkeit und Portabilität aufweisen und außerdem mehrere Entwicklungsplattformen unterstützen.
(4) Starke Echtzeitleistung: Eingebettete Systeme werden häufig in der Prozesssteuerung, Datenerfassung, Kommunikation, Multimedia-Informationsverarbeitung und anderen Situationen eingesetzt, die eine Echtzeitreaktion erfordern. Daher ist die Echtzeitleistung zu einem weiteren Merkmal eingebetteter Betriebssysteme geworden .
(5) Zuschneidbar und konfigurierbar: Die Vielfalt der Anwendungen erfordert, dass das eingebettete Betriebssystem eine starke Anpassungsfähigkeit aufweist und entsprechend den Merkmalen und spezifischen Anforderungen der Anwendung flexibel konfiguriert und angemessen zugeschnitten werden kann, um sich an die Anforderungen der Miniaturisierung und Spezialisierung anzupassen.
2.Klassifizierung eingebetteter Betriebssysteme
Es gibt viele Arten eingebetteter Betriebssysteme, die aus unterschiedlichen Perspektiven klassifiziert werden können. Von der Erwerbsform des eingebetteten Betriebssystems kann es in zwei Kategorien unterteilt werden: kommerzieller Typ und freier Typ:
(1) Kommerzieller Typ. Kommerzielle eingebettete Betriebssysteme verfügen im Allgemeinen über stabile und zuverlässige Funktionen, vollständigen technischen Support, vollständige Entwicklungstools und Kundendienst. Wie VxWorks von WindRiver, pSOS und Palm OS von Palm usw. Es ist jedoch teuer und Benutzer können den Quellcode des Systems normalerweise nicht erhalten.
(2) Freier Typ. Der Vorteil eines kostenlosen eingebetteten Betriebssystems liegt in seinem Preis. Darüber hinaus können Entwickler von Anwendungssystemen den Systemquellcode erhalten, was die Entwicklung erleichtert. Kostenlose Betriebssysteme weisen jedoch einfache Funktionen, einen schlechten technischen Support und eine schlechte Systemstabilität auf. Zu den typischen repräsentativen Systemen gehören eingebettetes Linux, uC/OS usw. Aufgrund der Echtzeitnatur eingebetteter Betriebssysteme können sie in zwei Kategorien unterteilt werden: eingebettete Echtzeit-Betriebssysteme und eingebettete Nicht-Echtzeit-Betriebssysteme.
(1) Real-Time Embedded OS (RTEOS). Das eingebettete Echtzeit-Betriebssystem unterstützt die Echtzeit-Systemarbeit. Seine Hauptaufgabe besteht darin, alle verfügbaren Ressourcen so zu planen, dass das Echtzeit-Zeitlimit für die Reaktion auf externe Ereignisse eingehalten wird. Echtzeit-Embedded-Betriebssysteme werden hauptsächlich in der Steuerung, Kommunikation und anderen Bereichen eingesetzt. Derzeit sind die meisten kommerziellen eingebetteten Betriebssysteme Echtzeitbetriebssysteme.
(2) Nicht-Echtzeit-eingebettetes Betriebssystem. Diese Art von Betriebssystem achtet nicht besonders auf die Reaktionszeit einer einzelnen Aufgabe. Die durchschnittliche Leistung, Systemeffizienz und Ressourcenauslastung sind im Allgemeinen hoch und eignen sich für Unterhaltungselektronikprodukte, die keine strengen Echtzeitanforderungen haben. wie persönliche digitale Assistenten, Set-Top-Boxen usw.
Insgesamt wird die Echtzeitleistung eines eingebetteten Systems von der Hardware, dem Echtzeitbetriebssystem und den Anwendungen bestimmt. Dabei spielt die Leistung des eingebetteten Echtzeitbetriebssystemkerns eine Schlüsselrolle. Im Allgemeinen gibt es zwei Arten von eingebetteten Echtzeit-Betriebssystemen: Echtzeit-Kernel-basiertes RTEOS und Allzweck-RTEOS.
Echtzeit-RTEOS vom Kernel-Typ: Bei dieser Art von Betriebssystem sind Treiber traditionell in den Kernel eingebettet und Anwendungen und Middleware werden auf Standard-Anwendungsprogrammierschnittstellen (APIs, Application Programming Interfaces) implementiert.
Echtzeit-Allzweck-RTEOS: Bei dieser Art von Betriebssystem ist der Treiber nicht tief in den Kernel eingebettet, sondern wird auf dem Kernel implementiert und enthält nur wenige notwendige Treiber. Anwendungen und Middleware können direkt implementiert werden oben auf dem Treiber, anstatt in Standard-APIs implementiert zu werden. Ihre Unterschiede sind in Abbildung 12-8 dargestellt.
Es gibt viele funktionale Ähnlichkeiten zwischen eingebetteten Echtzeit-Betriebssystemen und Allzweck-Betriebssystemen. Beispielsweise unterstützen beide das Multitasking, unterstützen die Ressourcenverwaltung von Software und Hardware und stellen grundlegende Betriebssystemdienste für Anwendungen bereit.
1.Hauptmerkmale eingebetteter Echtzeit-Betriebssysteme
Im Vergleich zu Allzweck-Betriebssystemen weisen eingebettete Echtzeit-Betriebssysteme viele Funktionsmerkmale auf. Zu den wichtigsten Merkmalen, die nur eingebettete Echtzeit-Betriebssysteme bieten und die sich von Allzweck-Betriebssystemen unterscheiden, gehören:
2.Echtzeit-Leistungsindikatoren eingebetteter Echtzeit-Betriebssysteme Bei der Bewertung der Leistung von Echtzeit-Betriebssystemdesigns werden Zeitleistungsindikatoren verwendet
Der Indikator ist der wichtigste Leistungsindikator. Zu den häufig verwendeten Zeitleistungsindikatoren gehören hauptsächlich die folgenden:
(1) Aufgabenwechselzeit: bezieht sich auf die Zeit, die erforderlich ist, um die CPU-Steuerung von einer laufenden Aufgabe auf eine andere bereite Aufgabe zu übertragen, einschließlich der Zeit, die für das Speichern und Wiederherstellen des Aufgabenkontexts und die Auswahl der nächsten auszuführenden Aufgabe beim Ausführen der Aufgabenplanung aufgewendet wird Zeitlich hängt dieser Indikator mit der Anzahl der Register und der Systemstruktur des Mikroprozessors zusammen. Dasselbe Betriebssystem kann unterschiedlich lange dauern, wenn es auf verschiedenen Mikroprozessoren ausgeführt wird. Das Zeitdiagramm, das der Task-Umschaltzeit entspricht, ist in Abbildung 12-9 dargestellt.
(2) Zeitindikatoren im Zusammenhang mit der Interrupt-Verarbeitung. Das entsprechende Interrupt-Timing-Diagramm ist in Abbildung 12-10 dargestellt
Die Interrupt-Verzögerungszeit bezieht sich auf die Zeit vom Auftreten des Interrupts bis zum Erlernen des Interrupts durch das System. Sie wird hauptsächlich von der maximalen Off-Interrupt-Zeit des Systems beeinflusst.
Je länger die Unterbrechungszeit ist, desto länger ist die Unterbrechungsverzögerung;
Ausführungszeit der Unterbrechungsverarbeitung, die von der jeweiligen Anwendung bestimmt wird;
Die Interrupt-Reaktionszeit bezieht sich auf die Zeit vom Auftreten eines Interrupts bis zum Beginn der Ausführung der Benutzer-Interrupt-Serviceroutine.
Die Interrupt-Wiederherstellungszeit bezieht sich auf die Zeit zwischen dem Ende der Interrupt-Serviceroutine des Benutzers und der Rückkehr zum unterbrochenen Code.
Die maximale Interrupt-Off-Zeit umfasst zwei Aspekte: Zum einen die maximale Interrupt-Off-Zeit des Kernels, d Zeit ist das Maximum dieser beiden Interrupt-Aus-Zeiten. Die Task-Reaktionszeit bezieht sich auf die Zeit von der Generierung des der Task entsprechenden Interrupts bis zum tatsächlichen Start der Task.
Bei der präemptiven Planung wird die Zeit für die Interrupt-Wiederherstellung auch zur Zeit für den Aufgabenwechsel und die Wiederherstellung des neuen Aufgabenkontexts addiert.
zwischen.
(3) Systemantwortzeit: Bezieht sich auf die Zeit von der Ausgabe einer Verarbeitungsanforderung bis zur Antwort des Systems, d. h. die Planungsverzögerung. Die Größe dieser Zeit wird hauptsächlich durch den Kernel-Task-Planungsalgorithmus bestimmt. Zusammenfassend ist die typische Methode zur Berechnung des Leistungsindex des präemptiven Echtzeitkernels in Tabelle 12-3 dargestellt.
Unvollständigen Statistiken zufolge beläuft sich die Gesamtzahl der weltweit vorhandenen eingebetteten Betriebssysteme bisher auf Hunderte. Es gibt mehr als ein Dutzend der am häufigsten verwendeten Betriebssysteme. Diese Betriebssysteme erfreuen sich in ihren jeweiligen Anwendungsbereichen großer Beliebtheit und einer großen Benutzerbasis. In Tabelle 12-4 werden einige gängige eingebettete Betriebssysteme der Branche zum Vergleich ausgewählt.
Die Hauptaufgabe des Entwurfs eingebetteter Systeme besteht darin, die Funktionen des Systems zu definieren, die Architektur des Systems zu bestimmen und die Funktionen der Systemimplementierungsarchitektur zuzuordnen. Dabei umfasst die Systemarchitektur sowohl die Software-Systemarchitektur als auch die Hardware-Systemarchitektur. Eine Architektur kann einer Vielzahl verschiedener physischer Implementierungen zugeordnet werden, die jeweils unterschiedliche Kompromisse darstellen und gleichzeitig bestimmte Designkriterien erfüllen und andere optimieren.
Die Entwurfsmethode eingebetteter Systeme unterscheidet sich von den allgemeinen Hardware-Design- und Software-Entwicklungsmethoden. Sie übernimmt die Methode des Hardware- und Software-Co-Designs. Der Entwicklungsprozess erfordert nicht nur Kenntnisse im Softwarebereich, sondern auch umfassende Kenntnisse in der Hardware Bereich und umfasst sogar Maschinen usw. Aspekte des Wissens. Um das entworfene System zu optimieren, müssen Designer mit verschiedenen Technologien in diesen Bereichen vertraut sein und sie frei nutzen können.
Obwohl die Entwurfslösungen eingebetteter Systemanwendungssoftware je nach Anwendungsbereich variieren, folgen die Analyse- und Entwurfsmethoden eingebetteter Systeme auch den allgemeinen Prinzipien der Softwareentwicklung. Viele ausgereifte Analyse- und Entwurfsmethoden können im eingebetteten Bereich angewendet werden. Der Entwicklungsprozess eingebetteter Systeme umfasst außerdem mehrere grundlegende Phasen: Anforderungsanalyse, Systemdesign, Implementierung und Tests, und jede Phase hat ihre eigenen einzigartigen Merkmale und Schwerpunkte.
In diesem Abschnitt werden hauptsächlich die Technologien und Methoden der Entwicklung und des Entwurfs eingebetteter Systeme vorgestellt und die Entwurfsmethoden für Anwendungssoftware sowie die Hauptprobleme im Entwurfsprozess aus der Perspektive eingebetteter Systemanwendungen und Computermodelle analysiert. Abschließend werden Fragen im Zusammenhang mit der Softwaretransplantation im Embedded-Bereich diskutiert.
Vor dem Entwurf eines eingebetteten Systems sollten die Merkmale des Entwurfs des eingebetteten Systems selbst und einige der wichtigsten technischen Indikatoren zur Messung des Entwurfs des eingebetteten Systems geklärt werden.
1.Merkmale des eingebetteten Systemdesigns
Im Vergleich zum herkömmlichen Systemdesign weist das eingebettete Systemdesign die folgenden Merkmale auf:
2.Technische Indikatoren eingebetteter Systeme
Zu den häufig verwendeten Indikatoren für das Design eingebetteter Systeme gehören:
(1) NRE-Kosten (einmalige technische Kosten): die einmaligen finanziellen Kosten, die für den Entwurf des Systems gezahlt werden müssen. Das heißt, sobald der Entwurf abgeschlossen ist, kann eine beliebige Anzahl von Produkten hergestellt werden, ohne dass zusätzliche Entwurfsgebühren gezahlt werden müssen .
(2) Stückkosten: die monetären Kosten, die zur Herstellung eines einzelnen Produkts erforderlich sind, ohne NRE-Kosten.
(3) Größe: Bezieht sich auf den vom System belegten Platz. Bei Software wird sie im Allgemeinen anhand der Anzahl der Bytes gemessen. Bei Hardware wird sie anhand der Anzahl der Logikgatter oder Transistoren gemessen.
(4) Leistung: Die Zeit, die das System benötigt, um bestimmte Aufgaben auszuführen, ist der am häufigsten verwendete Entwurfsindikator. Es gibt zwei Hauptmessmethoden. Eine davon ist die Reaktionszeit, also die Zeit zwischen dem Beginn der Ausführung und dem Ende die Aufgabe. Der zweite Wert ist die Abschlussmenge, also die Anzahl der Aufgaben, die pro Zeiteinheit erledigt werden.
(5) Leistung: Die vom System verbrauchte Leistung, die die Lebensdauer der Batterie oder die Wärmeableitungsanforderungen des Schaltkreises bestimmt.
(6) Flexibilität: Die Fähigkeit, Systemfunktionen zu ändern, ohne die NRE-Kosten zu erhöhen.
(7) Prototypenerstellungszeit: Die Zeit, die zum Erstellen einer lauffähigen Version des Systems erforderlich ist. Der Systemprototyp ist möglicherweise größer und teurer als das Endprodukt, kann jedoch die Verwendung und Korrektheit des Systems überprüfen und die Funktionalität des Systems verbessern System.
(8) Time-to-Market: Die Zeit von der Systementwicklung bis zum Verkauf an Verbraucher. Zu den wichtigsten Einflussfaktoren gehören Entwurfszeit, Herstellungszeit und Testzeit.
(9) Wartbarkeit: Die Leichtigkeit, mit der ein System nach seiner Einführung oder Vermarktung geändert werden kann, insbesondere von nicht ursprünglichen Entwicklern.
(10) Korrektheit: Wenn die Funktion des Systems korrekt implementiert ist, kann die Funktion des Systems während des gesamten Designprozesses überprüft werden, und es kann auch eine Testschaltung eingefügt werden, um zu überprüfen, ob sie korrekt ist.
(11) Sicherheit: die Wahrscheinlichkeit, dass das System keinen Schaden anrichtet. Verschiedene Designindikatoren konkurrieren im Allgemeinen miteinander. Um die Designoptimierungsanforderungen bestmöglich zu erfüllen, müssen Designer verschiedene Software- und Hardware-Implementierungstechnologien verstehen und daraus lernen Technologie wird auf eine andere übertragen, um unter bestimmten Randbedingungen die beste Lösung zu finden.
3.Herausforderungen beim Design eingebetteter Systeme
Zu den Herausforderungen beim Entwurf eingebetteter Systeme gehören die folgenden Aspekte.
(1) Wie viel Hardware wird benötigt: Designer haben eine starke Kontrolle über die Rechenleistung, die zur Lösung von Problemen verwendet wird. Sie können nicht nur den zu verwendenden Prozessor auswählen, sondern auch die Menge an Speicher, verwendeten Peripheriegeräten usw., da das Design nicht nur wichtig ist Um die Leistungsanforderungen zu erfüllen, gibt es auch Einschränkungen bei den Herstellungskosten. Die Wahl der Hardware wird die Funktions- und Leistungsanforderungen nicht erfüllen, und zu viel Hardware wird das Produkt zu teuer machen.
(2) So halten Sie das Zeitlimit ein: Es ist nicht ratsam, die Methode zur Erhöhung der Prozessorgeschwindigkeit zu verwenden, um das Programm schneller laufen zu lassen, um das Zeitlimit zu lösen, da dies den Preis des Systems erhöht. Gleichzeitig verbessert eine Erhöhung der Taktfrequenz des Prozessors manchmal nicht die Ausführungsgeschwindigkeit, da die Geschwindigkeit des Programms möglicherweise durch das Speichersystem begrenzt ist.
(3) So reduzieren Sie den Stromverbrauch des Systems: Bei batteriebetriebenen Systemen ist der Stromverbrauch ein sehr heikles Thema. Bei nicht batteriebetriebenen Systemen bedeutet hohe Leistung eine hohe Wärmeableitung. Eine Möglichkeit, den Stromverbrauch des Systems zu reduzieren, besteht darin, die Rechengeschwindigkeit zu reduzieren. Eine einfache Reduzierung der Rechengeschwindigkeit führt jedoch offensichtlich zu einer unbefriedigenden Leistung. Daher muss ein sorgfältiges Design durchgeführt werden, um den Stromverbrauch zu senken und gleichzeitig die Leistungsbeschränkungen einzuhalten.
(4) So stellen Sie die Skalierbarkeit des Systems sicher: Die Hardwareplattform des Systems kann mehrere Generationen oder unterschiedliche Produktebenen derselben Generation verwenden. Dazu müssen nur einige einfache Änderungen vorgenommen werden durch Änderung der Software. Entwerfen Sie eine Maschine, die Leistungsfähigkeiten bieten kann, die in der Software noch nicht verfügbar sind.
(5) So stellen Sie die Zuverlässigkeit des Systems sicher: Zuverlässigkeit ist ein wichtiger Indikator beim Verkauf von Produkten. Bei einigen Systemen, beispielsweise bei Sicherheitskontrollsystemen, ist die Zuverlässigkeit des Produkts besonders wichtig.
(6) Komplexität des Testens: Das Testen eines eingebetteten Systems ist viel schwieriger als nur die Eingabe einiger Daten. Daher muss die gesamte Maschine ausgeführt werden, um korrekte Daten zu generieren. Der Zeitpunkt, zu dem die Daten generiert werden, ist sehr wichtig Verlassen Sie das eingebettete System. Arbeiten Sie mit der gesamten Umgebung, um eingebettete Systeme zu testen.
(7) Eingeschränkte Sichtbarkeit und Steuerbarkeit: Eingebettete Systeme verfügen normalerweise nicht über Anzeigegeräte und Tastaturen, was es für Entwickler schwierig macht, zu verstehen, was im System passiert, und manchmal müssen sie Mikrocontroller beobachten Signale zum Verstehen. Bei Echtzeitsystemen ist es im Allgemeinen nicht möglich, das System zur Beobachtung herunterzufahren.
(8) Begrenzte Entwicklungsumgebung: Die Entwicklungsumgebung eingebetteter Systeme, wie z. B. Entwicklungssoftware und Hardwaretools, ist normalerweise eingeschränkter als die Umgebung, die auf Allzweckcomputern oder Workstations verfügbar ist. Daher ist nur eine übergreifende Entwicklung möglich beeinflusst den Entwicklungsfortschritt.
Ähnlich wie bei der Entwicklung allgemeiner Systeme können bei der Entwicklung eingebetteter Systeme auch gängige Entwicklungsmodelle in der Softwareentwicklung übernommen werden, darunter hauptsächlich Wasserfallmodelle, Spiralmodelle, schrittweise Verfeinerungsmodelle und hierarchische Modelle.
1.Gemeinsame Entwicklungsmodelle
Ein Entwurfsprozess besteht aus einer Reihe von Schritten, die beim Entwurf eines Systems befolgt werden sollten. Einige davon können mit automatisierten Tools durchgeführt werden, während andere nur manuell durchgeführt werden können. Im Bereich eingebetteter Systeme gibt es die folgenden häufig verwendeten Entwicklungsprozessmodelle.
(1) Wasserfallmodell. Das Wasserfallmodell besteht aus fünf Hauptphasen: Die Phase der Anforderungsanalyse bestimmt die grundlegenden Eigenschaften des Zielsystems; die Phase des Systemstrukturentwurfs zerlegt die Funktionen des Systems in Hauptstrukturen; die Phase des Testens erkennt hauptsächlich Fehler; und das Letzte ist die Wartungsphase, die hauptsächlich für die Änderung des Codes zur Anpassung an Änderungen in der Umgebung, die Korrektur von Fehlern und die Aktualisierung verantwortlich ist. Die Arbeit und Informationen in jeder Phase fließen immer in eine Richtung, von der Abstraktion auf hoher Ebene zu detaillierteren Entwurfsschritten, was ein ideales Top-Down-Entwurfsmodell darstellt.
(2) Spiralmodell. Das Spiralmodell geht davon aus, dass mehrere Versionen des Systems erstellt werden sollen. Die frühe Version ist ein einfaches experimentelles Modell, das dem Designer helfen soll, sich ein Bild vom System zu machen und Erfahrungen bei der Entwicklung dieses Systems zu sammeln erstellt. In jeder Entwurfsebene durchlaufen die Designer drei Phasen: Bedarfsanalyse, Strukturdesign und Tests. Zu einem späteren Zeitpunkt, wenn komplexere Versionen des Systems erstellt werden, wird in jeder Phase mehr Arbeit geleistet und die Designspirale muss erweitert werden. Dieser schrittweise Ansatz zur Verfeinerung ermöglicht es dem Designer, seine Kenntnisse zu vertiefen Verständnis des entwickelten Systems durch eine Reihe von Entwurfszyklen. Die erste Schleife am oberen Ende der Spirale ist sehr klein und kurz, während die letzte Schleife am unteren Ende der Spirale Details zu den frühen Schleifen des Spiralmodells hinzufügt, das realistischer ist als das Wasserfallmodell.
(3) Schrittweise Verfeinerung des Modells. Das schrittweise Verfeinerungsmodell ist ein System, das mehrmals erstellt wird. Das erste System wird als Prototyp verwendet und dann wird das System nach und nach weiter verfeinert. Dieser Ansatz ist sinnvoll, wenn der Designer mit der Anwendungsdomäne des zu erstellenden Systems nicht sehr vertraut ist. Durch die Verfeinerung des Systems durch den Aufbau mehrerer Systeme mit zunehmender Komplexität können Designer Architektur und Designtechniken testen. Darüber hinaus können verschiedene iterative Techniken möglicherweise nur teilweise abgeschlossen werden, bis das System endgültig fertiggestellt ist.
(4) Hierarchisches Modell. Viele eingebettete Systeme selbst bestehen aus kleineren Designs, und ein vollständiges System erfordert möglicherweise verschiedene Softwarekomponenten und Hardwarekomponenten. Diese Teile können aus kleineren Teilen bestehen, die noch entworfen werden müssen, sodass sich der Entwurfsprozess mit dem Abstraktionsgrad des Systems ändert, vom anfänglichen Entwurf des gesamten Systems über den Entwurf einzelner Teile bis hin zum Gesamtentwurf höchste Abstraktionsebene bis zur mittleren Ebene. Der detaillierte Entwurf auf der abstrakten Ebene und dann der Entwurf jedes einzelnen Moduls werden Schicht für Schicht entwickelt. Jeder Prozess kann von einem einzelnen Designer oder Designteam durchgeführt werden. Jede Gruppe verlässt sich auf die Ergebnisse anderer Gruppen , und jede Gruppe lernt von den Vorgesetzten. Gruppen erhalten Anforderungen, während Elterngruppen auf die Qualität und Leistung der einzelnen Gruppendesigns angewiesen sind. Darüber hinaus ist jede Implementierungsphase des Prozesses ein vollständiger Prozess von der Spezifikation bis zum Test.
2.Entwurfsmethoden für eingebettete Systeme
Eine gute Entwurfsmethode für eingebettete Systeme ist aus folgenden Gründen sehr wichtig:
(1) Eine gute Designmethode ermöglicht es Designern, den Fortschritt ihrer Arbeit klar zu verstehen, um sicherzustellen, dass niemand von ihnen übersehen wird.
(2) Ermöglichen Sie den Einsatz computergestützter Tools zur Arbeitsunterstützung von Designern und unterteilen Sie den gesamten Prozess in mehrere kontrollierbare Schritte.
(3) Gute Designmethoden erleichtern die Kommunikation zwischen den Mitgliedern des Designteams. Durch die Definition eines umfassenden Designprozesses kann jedes Mitglied des Teams ein gutes Verständnis für die Arbeit erhalten, die es zu erledigen hat, und für die Schritte, die zur Erledigung der ihm zugewiesenen Aufgaben erforderlich sind . Ziele erreicht.
Der Entwicklungsprozess eingebetteter Systemsoftware kann in mehrere Phasen unterteilt werden, z. B. Projektplanung, Machbarkeitsanalyse, Anforderungsanalyse, Entwurfsentwurf, detaillierter Entwurf, Programmerstellung, Download, Debugging, Verfestigung, Test und Betrieb.
Die Phasen Projektplanung, Machbarkeitsanalyse, Anforderungsanalyse, Entwurfsentwurf und Detailentwurf entsprechen im Wesentlichen dem Entwicklungsprozess allgemeiner Software und können alle nach Software-Engineering-Methoden wie Prototyping-Methoden, strukturierten Methoden usw. durchgeführt werden .
Da die Lauf- und Entwicklungsumgebungen eingebetteter Software unterschiedlich sind, erfolgt die Entwicklungsarbeit kreuzweise, sodass dies bei jedem Schritt berücksichtigt werden muss. Die Arbeit in der Programmerstellungsphase basiert auf den Dokumenten, die während der detaillierten Entwurfsphase erstellt wurden. Die Arbeit in dieser Phase umfasst hauptsächlich mehrere Unterprozesse wie das Schreiben, Kompilieren und Verknüpfen von Quellcode. Diese Aufgaben werden alle auf dem Hostcomputer ausgeführt und erfordern nicht die Verwendung des Zielcomputers. Nach dem Generieren der ausführbaren Datei der Anwendung müssen Sie die übergreifende Entwicklungsumgebung zum Debuggen verwenden. Sie können entsprechend der tatsächlichen Situation auswählen.
Verwenden Sie dazu eine der verschiedenen verfügbaren Debugmethoden oder eine gültige Kombination davon. Das Design eingebetteter Systeme unterscheidet sich vom herkömmlichen Softwaredesign, wie in Abbildung 12-11 dargestellt. Beinhaltet häufig Hardware-Design und Software-Design, wobei Front-End-Aktivitäten wie Spezifikationen und Systemarchitektur die Berücksichtigung sowohl von Hardware- als auch Softwareaspekten erfordern.
Ebenso berücksichtigen Back-End-Designs wie Systemintegration und Tests das gesamte System. In der Zwischenphase werden Software- und Hardwarekomponenten unabhängig voneinander entwickelt, und die meisten Hardware- und Softwarearbeiten können relativ unabhängig voneinander durchgeführt werden. Schließlich muss das korrekte ausführbare Programm nach dem Debuggen auf dem Zielcomputer konsolidiert werden.Abhängig von der Konfiguration der eingebetteten Systemhardware gibt es verschiedene Methoden zur Aushärtung in Speichern wie EPROM und FLASH oder in elektronischen Geräten wie DOC und DOM.
Unterplatte. Normalerweise wird dies mit Hilfe einiger spezieller Programmierer durchgeführt.
Da eingebettete Systeme höhere Anforderungen an Sicherheit und Zuverlässigkeit stellen als allgemeine Computersysteme, ist bei der Durchführung von White-Box-Tests eingebetteter Systeme eine höhere Codeabdeckung erforderlich. In jeder Phase des Systementwicklungsprozesses müssen eine Systembestätigung und Leistungsbewertung, eine Sicherheitsbewertung und eine Risikobewertung durchgeführt sowie die Implementierung des Systems getestet und verifiziert werden.
Die Entwicklung eingebetteter Systeme ist eine umfassende Entwicklung von Software und Hardware, die sich stark von der Entwicklung allgemeiner Systeme unterscheidet. Einerseits ist jedes eingebettete System eine Kombination aus Software und Hardware, andererseits ist es ein eingebettetes System entwickelt wird. Die Software wird zusammen mit der Hardware im Produkt verfestigt und weist eine starke Spezifität auf. Unter dem Einfluss dieser Merkmale muss es eine Engineering-Methodik geben, die sich vom allgemeinen Softwareentwicklungsprozess unterscheidet, um den Entwicklungsprozess eingebetteter Systeme zu unterstützen. Gleichzeitig bestimmen diese Merkmale auch die einzigartigen Kerntechnologien, die bei der Entwicklung eingebetteter Systeme verwendet werden.
Im Allgemeinen gibt es im Bereich der eingebetteten Entwicklung drei Hauptkerntechnologien: Prozessortechnologie, IC-Technologie und Design-/Verifizierungstechnologie.
1. Prozessortechnologie
Die Prozessortechnologie hängt mit der Struktur der Rechenmaschine zusammen, die Systemfunktionen implementiert. Der Unterschied zwischen diesen Prozessoren besteht in ihrem Spezialisierungsgrad für bestimmte Funktionen, was zu anderen Designspezifikationen als anderen Prozessoren führt. .
(1) Allzweckprozessor. Dieser Prozessortyp kann für verschiedene Arten von Anwendungen verwendet werden. Ein wichtiges Merkmal ist die Fähigkeit, Programme zu speichern. Da der Designer nicht weiß, welche Operationen der Prozessor ausführen wird, ist es unmöglich, ein Programm mithilfe digitaler Schaltkreise zu erstellen. Ein weiteres Merkmal ist der universelle Datenpfad, um verschiedene Berechnungen durchführen zu können. Der Datenpfad verfügt im Allgemeinen über eine große Anzahl von Registern und eine oder mehrere universelle arithmetische Logikeinheiten. Der Designer muss lediglich den Speicher des Prozessors programmieren, um die erforderlichen Funktionen auszuführen, d. h. die designbezogene Software.
Die Verwendung von Allzweckprozessoren in eingebetteten Systemen hat hinsichtlich der Designmetriken mehrere Vorteile. Die Markteinführungszeit und die NRE-Kosten sind gering, da der Designer nur das Programm schreiben muss, ohne ein digitales Design durchzuführen. Es ist äußerst flexibel und funktionale Änderungen können durch Modifizieren des Programms vorgenommen werden. Im Vergleich zur Entwicklung des Prozessors im eigenen Haus sind die Stückkosten niedriger, wenn die Stückzahl gering ist.
Natürlich weist diese Methode auch einige Mängel bei den Designindikatoren auf. Bei großen Mengen sind die Stückkosten relativ hoch, da sich bei großen Mengen die Kosten für selbst entworfene NRE amortisieren, was die Stückkosten senken kann. Gleichzeitig kann die Leistung einiger Anwendungen schlecht sein. Durch den Einsatz unnötiger Prozessorhardware können sich Systemgröße und Stromverbrauch erhöhen.
(2) Einzweckverarbeiter. Ein Einzweckprozessor ist eine digitale Schaltung, die zur Ausführung eines bestimmten Programms entwickelt wurde. Er bezieht sich auch auf Coprozessoren, Beschleuniger, Peripheriegeräte usw. Codecs wie JPEG führen einen einzelnen Prozess zum Komprimieren oder Dekomprimieren von Videoinformationen aus. Designer eingebetteter Systeme können Einzweckprozessoren erstellen, indem sie spezifische digitale Schaltkreise entwerfen. Designer können auch vorgefertigte kommerzielle Einzweckprozessoren verwenden.
Der Einsatz von Einzweckprozessoren in eingebetteten Systemen hat hinsichtlich der Metriken einige Vor- und Nachteile. Diese Vor- und Nachteile stehen im Wesentlichen im Gegensatz zu Allzweckprozessoren. Die Leistung kann besser sein, die Größe und Leistung kann kleiner sein, die Stückkosten können niedriger sein, wenn die Menge groß ist, und die Entwurfszeit und die NRE-Kosten können hoch sein. Die Flexibilität ist schlecht und die Stückkosten pro Stunde sind höher. Bei einigen Anwendungen ist die Leistung nicht so gut wie bei Allzweckprozessoren.
(3) Dedizierter Prozessor. Ein spezieller Befehlssatzprozessor ist ein programmierbarer Prozessor, der für eine bestimmte Art von Anwendung optimiert ist. Solche spezifischen Anwendungen haben die gleichen Eigenschaften, wie etwa eingebettete Steuerung, digitale Signalverarbeitung usw. Der Einsatz dedizierter Prozessoren in eingebetteten Systemen kann eine größere Flexibilität bieten und gleichzeitig eine gute Leistung, Leistung und Größe gewährleisten. Allerdings erfordern solche Prozessoren immer noch hohe Kosten für den Bau des Prozessors selbst und des Compilers. Mikrocontroller und digitale Signalprozessoren sind zwei Arten von Spezialprozessoren, die weit verbreitet sind. Digitale Signalprozessoren sind Mikroprozessoren, die allgemeine Operationen an digitalen Signalen durchführen, während Mikrocontroller Mikroprozessoren sind, die für eingebettete Steuerungsanwendungen optimiert sind.
2. IC-Technologie
Die Implementierungstechnologie, die den physischen Abbildungsprozess des tatsächlichen Chips aus der Beschreibung des integrierten Schaltkreisdesigns des Systems erhält, ist die IC-Technologie (Integrated Circuits, integrierte Schaltung). Derzeit gibt es im Halbleiterbereich drei Arten von Implementierungstechnologien, nämlich die vollständige Anpassung , Semi-Customization und programmierbare Technologie Kann auf das Hardware-Design eingebetteter Systeme angewendet werden.
(1) Vollständig kundenspezifisch/VLSI (Very Large Scale Integrated Circuits, sehr groß angelegte integrierte Schaltkreise). Bei der vollständig angepassten IC-Technologie müssen Designer auf jeder Ebene die digitale Implementierung eines bestimmten eingebetteten Systems optimieren. Designer beginnen bei der Layoutgröße, Position und Verdrahtung der Transistoren, um eine hohe Chipflächennutzung, hohe Geschwindigkeit und einen geringen Stromverbrauch zu erreichen . Leistung optimieren. Vollständig kundenspezifische IC-Designs, oft auch VLSI genannt, verwenden Masken, um tatsächliche Chips in der Produktionsanlage herzustellen. Sie haben hohe NRE-Kosten, lange Herstellungszeiten und eignen sich für Anwendungen mit hohen Stückzahlen oder leistungskritischen Anwendungen.
(2) Semi-Custom/ASIC (Application Specific Integrated Circuit, anwendungsspezifischer integrierter Schaltkreis). Semi-Custom ASIC ist eine eingeschränkte Entwurfsmethode, einschließlich der Gate-Array-Entwurfsmethode und der Standardzellen-Entwurfsmethode. Es handelt sich um eine halbfertige Hardware mit einigen universellen Einheitskomponenten und Komponentengruppen, die auf dem Chip hergestellt sind. Der Designer muss nur die logischen Funktionen der Schaltung und die sinnvollen Verbindungen zwischen den Funktionsmodulen berücksichtigen. Diese Entwurfsmethode ist flexibel, bequem und kostengünstig, verkürzt den Entwurfszyklus und verbessert die Ausbeute.
(3) Programmierbar/ASIC. Alle Schichten im programmierbaren Gerät sind bereits vorhanden, der entworfene Chip kann im Labor ohne Beteiligung von IC-Herstellern gebrannt werden, und der Entwicklungszyklus wird erheblich verkürzt. Der programmierbare ASIC hat niedrigere NRE-Kosten, höhere Stückkosten, einen höheren Stromverbrauch und eine langsamere Geschwindigkeit.
3.Design-/Verifizierungstechnologie
Die Designtechnologie eingebetteter Systeme umfasst hauptsächlich zwei Kategorien: Hardware-Designtechnologie und Software-Designtechnologie. Unter diesen umfasst die Technologie im Bereich Hardware-Design hauptsächlich Design-Technologie auf Chip-Ebene und Design-Technologie auf Leiterplatten-Ebene.
Der Kern der Chip-Level-Design-Technologie ist Kompilierung/Synthese, Bibliothek/IP (geistiges Eigentum, geistiges Eigentum) und Test/Verifizierung. Die Kompilierungs-/Synthesetechnologie ermöglicht es Designern, erforderliche Funktionalität auf abstrakte Weise zu beschreiben und Implementierungsdetails automatisch zu analysieren und einzufügen. Die Bibliotheks-/IP-Technologie verwendet vorgefertigte Abstraktionsimplementierungen auf niedriger Ebene für Abstraktionen auf hoher Ebene. Die Test-/Verifizierungstechnologie stellt sicher, dass jede Ebene korrekt funktioniert, und reduziert so die Kosten für iteratives Design zwischen Ebenen.
Der Kern der Software-Design-Technologie ist die Softwaresprache. Softwaresprachen haben den Entwicklungsprozess von Sprachen auf niedriger Ebene (Maschinensprache, Assemblersprache) zu Sprachen auf hoher Ebene (z. B. strukturierte Designsprachen, objektorientierte Designsprachen) durchlaufen Montagetechnik, Analysetechnik, Zusammenstellungs-/Interpretationstechnik usw. viele verwandte Technologien. Auch die Ebenen der Softwaresprachen wechseln allmählich von der Implementierungsebene, der Designebene und der Funktionsebene zur Sprachentwicklung auf Bedarfsebene.
In den Anfängen, mit der allmählichen Entwicklung des Konzepts der Allzweckprozessoren, entwickelte sich die Softwaretechnologie rasant, auch die Komplexität der Software begann zuzunehmen und die Technologien und Bereiche des Softwaredesigns und des Hardwaredesigns wurden vollständig getrennt. In diesen beiden Bereichen wurden gleichzeitig Entwurfstechniken und -werkzeuge entwickelt, die eine Verhaltensbeschreibung auf immer abstrakteren Ebenen ermöglichen, um sich an die wachsenden Anforderungen der Entwurfskomplexität anzupassen. Diese gleichzeitige Entwicklung führt nun dazu, dass beide Felder dasselbe Zeitmodell zur Verhaltensbeschreibung verwenden, sodass es möglich ist, dass die beiden Felder wieder zu einem Feld vereint werden.
Angesichts der Tatsache, dass es sich bei den meisten eingebetteten Systemen um reaktive Echtzeitsysteme handelt, weisen reaktive Systeme die Merkmale Multitasking-Parallelität, strenge Zeitbeschränkungen und hohe Zuverlässigkeit auf. Für den Entwurf und die Beschreibung reaktiver Systeme wurden nacheinander verschiedene Vorschläge gemacht Beschreibungssprachen und Validierungsmethodik. Beispielsweise wird sequentielle Logik verwendet, um die Natur reaktiver Systeme zu beschreiben und das Verhalten reaktiver Systeme zu begründen, und Modellprüfungstechnologie wird verwendet, um die Korrektheit reaktiver Systemdesigns zu überprüfen. Diese Technologien haben nach und nach eine wichtige Rolle in der eingebetteten Entwicklung gespielt Verfahren. .
Es gibt viele Arten von Entwicklungsumgebungen für eingebettete Systeme, die sich im Allgemeinen in die folgenden Kategorien einteilen lassen:
(1) Entwicklungsumgebungen, die eingebettete Betriebssysteme unterstützen In dieser Kategorie gibt es viele Entwicklungsumgebungen, wie z. B. PalmOS, THOS, VxWorks, Windows CE und andere kommerzielle eingebettete Betriebssysteme, die über voll funktionsfähige Entwicklungsumgebungen verfügen, die sie unterstützen.
(2) Entwicklungsumgebung, die den Prozessorchip unterstützt. Diese Art von Entwicklungsumgebung wird im Allgemeinen von Prozessorherstellern bereitgestellt. Beispielsweise ist ein von EPSON speziell für die Entwicklung eingebetteter Systeme auf Basis der Mikrocontroller-Chips der S1C33-Serie herausgebrachtes Toolkit eine solche Entwicklungsumgebung.
(3) Eine Entwicklungsumgebung, die zur spezifischen Anwendungsplattform passt. Diese Art von Entwicklungsumgebung ist sehr zielgerichtet, beispielsweise das Brew SDK von Qualcomm.
(4) Andere Arten von Entwicklungsumgebungen. Diese Art von Entwicklungsumgebung bezieht sich hauptsächlich auf eine allgemeinere Entwicklungsumgebung, die von einigen Anbietern eingebetteter Systeme auf der Grundlage von GNU-Open-Source-Tools entwickelt oder angepasst wird. Solche Tools sind kostenlos erhältlich, unterstützen eine Vielzahl von Prozessortypen und verfügen über vollständige Funktionen, ihr technischer Support ist jedoch etwas schlechter als bei professionellen kommerziellen Tools.
Da die Funktionen eingebetteter Systeme immer komplexer werden, wird es immer schwieriger, das Verhalten dieser funktional komplexen Systeme zu beschreiben. Die Praxis hat gezeigt, dass die Beschreibung und Analyse von Systemen mithilfe von Computermodellen eine Methode mit technischem Wert ist.
In diesem Abschnitt werden mehrere häufig verwendete Computermodelle im eingebetteten Bereich vorgestellt und Probleme im Zusammenhang mit dem Design und der Entwicklung eingebetteter Anwendungen aus der Perspektive von Computermodellen analysiert und erläutert. Computermodelle bieten eine Reihe von Methoden zum Kombinieren komplexer Verhaltensweisen mit einfachen Objekten, die Designern helfen können, das Systemverhalten zu verstehen und zu beschreiben. Zu den häufig verwendeten Rechenmodellen in eingebetteten Systemen gehören: sequentielles Rechenmodell, Kommunikationsprozessmodell, Zustandsmaschinenmodell, Datenflussmodell, objektorientiertes Modell und gleichzeitiges Prozessmodell. Diese Modelle werden in verschiedenen Anwendungsbereichen eingesetzt. Beispielsweise eignet sich das Zustandsmaschinenmodell besonders zur Beschreibung steuerungsorientierter Systeme, und das Datenflussmodell kann Datenverarbeitungs- und Konvertierungsprobleme gut beschreiben. Am weitesten verbreitet ist derzeit das nebenläufige Prozessmodell.
1.Zustandsmaschinenmodell
Finite-State-Machine (FSM) ist ein grundlegendes Zustandsmodell, das eine Reihe möglicher Zustände verwenden kann, um das Verhalten des Systems zu beschreiben. Das System kann sich zu jedem Zeitpunkt nur in einem der Zustände befinden oder auch den bestimmten Zustand beschreiben Durch die Eingabe kann schließlich der Vorgang beschrieben werden, der in einem bestimmten Zustand oder während eines Zustandsübergangs auftreten kann.
Der endliche Automat FSM ist ein Sechs-Tupel-F<S,I,O,F,H,S0> , wobei S eine Zustandsmenge {s0, s1,…,sl} ist, I eine Eingabemenge {I0, I1,…,Im}, O eine Ausgabemenge {o0, o1,…,on} und F ist eine Unterzustandsfunktion oder Übergangsfunktion, die den Zustand und die Eingabe auf den Zustand abbildet (S×I→S), H ist die Ausgabefunktion, die den Zustand auf den Ausgang (S→O) abbildet, und S0 ist der Anfangszustand .
Abbildung 12-12 ist die Zustandsmaschinenbeschreibung der Aufzugssteuereinheit. Im anfänglichen „Leerlauf“-Zustand auf und ab auf 0 einstellen und auf 1 öffnen. Die Zustandsmaschine bleibt im „Ruhe“-Zustand, bis sich die angeforderte Etage von der aktuellen Etage unterscheidet. Wenn die angeforderte Untergrenze größer als die aktuelle Untergrenze ist, geht die Zustandsmaschine in den „oben“-Zustand über und setzt sich auf 1. Wenn die angeforderte Etage kleiner als die aktuelle Etage ist, geht die Zustandsmaschine in den „Down“-Zustand und Down wird auf 1 gesetzt. Die Zustandsmaschine bleibt im „Down“- oder „Up“-Zustand, bis die aktuelle Etage der angeforderten Etage entspricht, und dann geht der Zustand in den „Offen“-Zustand über, wobei „Open“ auf 1 gesetzt ist. Normalerweise verfügt das System über einen Timer. Wenn die Zustandsmaschine in den Zustand „offene Tür“ wechselt, wird daher auch der Timer gestartet der „Ruhezustand“.
Wenn FSM im eingebetteten Systemdesign verwendet wird, sind die Datentypen seiner Eingabe und Ausgabe beide boolesche Typen, und die Funktion stellt eine boolesche Funktion dar, die boolesche Operationen enthält. Dieses Modell wurde für viele reine Steuerungssysteme ohne ausreichende Dateneingabe oder -ausgabe verwendet . Wenn Sie Daten verarbeiten möchten, erweitern Sie den FSM zu einer Zustandsmaschine mit Datenpfad (FSM mit Datenpfad, FSMD). Darüber hinaus kann das Zustandsmaschinenmodell weiter erweitert werden, um hierarchische und gleichzeitige FSM (HCFSM) zu unterstützen.
2.Datenflussmodell
Das Datenflussmodell ist ein vom gleichzeitigen Multitask-Modell abgeleitetes Modell. Dieses Modell beschreibt das Verhalten des Systems als eine Reihe von Knoten und Kanten, wobei die Knoten Transformationen darstellen und die Kanten den Datenfluss von einem Knoten zu einem anderen Knoten darstellen . . Jeder Knoten verwendet Daten von seinen Eingabekanten, führt Transformationen durch und erzeugt Daten an seinen Ausgabekanten.
Jede Kante kann Daten enthalten oder nicht. Die auf der Kante angezeigten Daten werden als Token bezeichnet. Wenn alle Eingabekanten eines Knotens mindestens ein Token haben, kann der Knoten ausgelöst werden. Nachdem der Knoten ausgelöst wurde, wird ein Token von jeder Eingangskante verwendet, die Datentransformation wird für alle verwendeten Token durchgeführt und ein Token wird an der Ausgangskante generiert. Die Auslösung des Knotens hängt nur vom Auftreten des Tokens ab .
Abbildung 12-13 zeigt das Datenflussmodell zur Berechnung von z=(a+b)×(cd). Derzeit gibt es mehrere kommerzielle Tools, die die Darstellung von Datenflussmodellen in grafischen Sprachen unterstützen. Diese Tools können Datenflussmodelle automatisch in gleichzeitige Multitask-Modelle für die Implementierung auf Mikroprozessoren konvertieren. Die Konvertierungsmethode besteht darin, jeden Knoten in eine Aufgabe und jede Kante in einen Kanal umzuwandeln. Die Implementierungsmethode des gleichzeitigen Multitask-Modells besteht darin, ein Echtzeitbetriebssystem zu verwenden, um gleichzeitige Aufgaben abzubilden.
Abbildung 12-14 ist ein synchrones Datenflussmodell. In diesem Modell wird jede Eingangs- und Ausgangskante des Knotens mit der Anzahl der für jeden Trigger verwendeten und generierten Token markiert. Der Vorteil dieses Modells besteht darin, dass es während der Implementierung nicht in ein gleichzeitiges Multitasking-Modell umgewandelt werden muss. Stattdessen werden Knoten statisch geplant, um ein sequentielles Programmmodell zu generieren. Das Modell kann mit einer sequentiellen Programmiersprache (z. B. der C-Sprache) ausgedrückt und ohne Echtzeitbetriebssystem ausgeführt werden, sodass seine Ausführungseffizienz höher ist.
3. Gleichzeitiges Prozessmodell
Das gleichzeitige Prozessmodell besteht aus einer Gruppe von Prozessen. Jeder Prozess ist ein sequentieller Ausführungsprozess und jeder Prozess kann gleichzeitig ausgeführt werden. Das gleichzeitige Prozessmodell stellt Operationen zum Erstellen, Beenden, Anhalten, Fortsetzen und Verbinden von Prozessen bereit. Prozesse können während der Ausführung miteinander kommunizieren und Daten austauschen. Die Kommunikation zwischen Prozessen kann zwei Formen annehmen: gemeinsam genutzte Variablen und Nachrichtenübermittlung. Semaphore, kritische Abschnitte, Röhren, Pfadausdrücke usw. werden verwendet, um die Operationen gleichzeitiger Prozesse zu synchronisieren.
Im Allgemeinen kann ein Echtzeitsystem als ein System betrachtet werden, das aus vielen gleichzeitig ausgeführten Prozessen besteht, von denen jeder Zeitanforderungen hat. Auf diese Weise lassen sich viele eingebettete Systeme einfacher durch eine Reihe gleichzeitig ausgeführter Aufgaben beschreiben, da diese Systeme selbst Multitasking-Systeme sind und das gleichzeitige Prozessmodell natürlich durch Multitasking eines Echtzeitbetriebssystems implementiert werden kann.
4.objektorientiertes Modell
Das traditionelle gleichzeitige Prozessmodell basiert auf dem Konzept des Prozesses. Es handelt sich um eine indirekte Simulation von Aktivitäten in der objektiven Welt. Daher ist es äußerst schwierig, das Prozessmodell zur Lösung von Parallelitätsproblemen zu verwenden Die objektive Welt ist unnatürlich und macht gleichzeitige Programme schwer zu entwerfen und zu verstehen.
Das objektorientierte Modell beschreibt Aktivitäten in der objektiven Welt direkter, und das Modell bietet potenziell die Fähigkeit zur gleichzeitigen Ausführung. Nachdem ein Objekt eine Nachricht an ein anderes Objekt gesendet hat und das Verarbeitungsergebnis der Nachricht nicht oder nicht sofort benötigt wird, muss ersteres nicht warten, bis letzteres die Nachricht verarbeitet, und der Nachrichtensender und der Nachrichtenempfänger können die Ausführung ausführen gleichzeitig.Nicht alle Objekte befinden sich in einem passiven Dienstbereitstellungszustand. Zusätzlich zur Bereitstellung von Diensten durch den Empfang von Nachrichten können einige von ihnen auch über eine eigene Transaktionsverarbeitung verfügen.
Grund. Ein Objekt kann oft mehrere Nachrichten gleichzeitig verarbeiten.
Ein Objekt ist eine Kapselung von Daten und Operationen. Daten werden in den lokalen Variablen des Objekts gespeichert. Der Zustand des Objekts wird durch die Werte aller lokalen Variablen des Objekts zu einem bestimmten Zeitpunkt dargestellt. In einer gleichzeitigen Umgebung muss auch die Beschreibung des gleichzeitigen Status des Objekts berücksichtigt werden, da die Parallelitätssteuerung des Objekts auf dem gleichzeitigen Status des Objekts basiert. Die Kombination von Parallelität und Objektorientierung kann auf zwei Arten zusammengefasst werden:
(1) Führen Sie einen Parallelitätsmechanismus in das objektorientierte Modell ein, nutzen Sie die objektorientierte Technologie voll aus, um die guten Modellfähigkeiten der objektiven Welt und verschiedene wichtige Merkmale des objektorientierten Modells zu beschreiben, und beschreiben Sie gleichzeitig seine potenziellen Parallelitätsfähigkeiten , wodurch es zur Beschreibung des gleichzeitigen Rechnens geeignet ist.
(2) Führen Sie objektorientiertes Denken in das traditionelle Parallelitätsmodell ein. Objektorientierte Parallelitätsmodelle können in zwei Typen unterteilt werden: implizite Parallelitätsmodelle und explizite Parallelitätsmodelle.
(1) Implizites Parallelitätsmodell. Dieses Modell zeichnet sich dadurch aus, dass das gleichzeitige Design zurückgestellt wird und die Objektmodellierung als Grundlage für die Modellierung verwendet wird. Behandeln Sie Objekte vor dem Eintritt in die Ausführungsphase als autonome Einheiten und die Aktivitäten verschiedener Objekte als spezifische Aufgaben, die idealerweise gleichzeitig ausgeführt werden. So wie jedes Objekt über einen eigenen Prozessor verfügt, kann dieser Prozessor einen Ausführungsthread für das Objekt bereitstellen. Externe Ereignisse, die in das System gelangen, werden als Verarbeitungsanforderung betrachtet und an einige Objekte gesendet. Diese Objekte stellen dann weitere Verarbeitungsanforderungen an andere Objekte. Theoretisch kann eine beliebige Anzahl von Objekten entsprechend einer Anfrage eine entsprechende Verarbeitung durchführen. Während der Implementierung bestimmt der Scheduler letztendlich die Reihenfolge der Operationen an seinen Objekten, wie in Abbildung 12-15 dargestellt.
(2) Explizites Parallelitätsmodell. Das Merkmal dieses Modells besteht darin, dass zunächst die Parallelität berücksichtigt und zunächst das Konzept der Parallelität und das Konzept der Objekte getrennt werden sollten. Nachdem das Objekt eingerichtet wurde, wird das vom Echtzeitbetriebssystem unterstützte Prozesskonzept zur Darstellung der Parallelität verwendet und bildet zwei abstrakte Ebenen von Objekt und Prozess. Das heißt, das System wird zunächst in quasi-gleichzeitige Prozesse zerlegt Verwendung objektorientierter Technologie in jedem Prozess. Interaktionen zwischen Objekten werden als verschachtelte Funktionsaufrufe ausgedrückt und explizite Synchronisationsmechanismen wie Sperren, Monitore und Semaphoren werden hinzugefügt, um die Integrität der Objekte sicherzustellen. Dieses Modell platziert Prozesse über Objekten und es besteht keine Notwendigkeit, Parallelität oder Objektserialisierung in Objekten zu berücksichtigen, wie in Abbildung 12-16 dargestellt.
In der Anfangszeit war die Entwurfsmethode von Echtzeitsystemen hauptsächlich eine strukturierte Entwurfsmethode. Systeme, die strukturierte Methoden verwendeten, hatten große Einschränkungen hinsichtlich der Wiederverwendbarkeit und Modifizierbarkeit. Die objektorientierte Echtzeitsystementwurfsmethode bietet bei diesen Problemen offensichtlich offensichtliche Vorteile. Die praktischere objektorientierte Entwurfsmethode ist die OCTOPUS-Methode von Nokia. Diese Methode basiert auf der OMT- und Fusion-Methode und schlägt Methoden zur Verarbeitung von Echtzeit-Systemantwortzeit, Zeitbereich und Parallelität vor und schlägt insbesondere Methoden für den Umgang mit Echtzeit vor Systemantwortzeit, Zeitbereich und Parallelität. Umgang mit Aspekten der Parallelität, Synchronisation, Kommunikation, Interrupt-Behandlung, ASICs, Hardware-Schnittstellen, End-to-End-Reaktionszeiten usw. Der OCTOPUS-Ansatz kombiniert die Hauptphasen der Softwareentwicklung gut, sorgt für einen engen und natürlichen Übergang von der Spezifikation zum laufenden Modell und unterstützt die inkrementelle Entwicklung. Die OCTOPUS-Methode ist eine typische Entwurfsmethode, die aktuelle objektorientierte Technologie und Echtzeitsysteme kombiniert. Darüber hinaus werden in der Anfangsphase der Echtzeitsystemmodellierung nach und nach formale objektorientierte Entwicklungstechniken und Modellierungssprachen angewendet.
Vor dem Entwerfen muss der Designer wissen, was er entwerfen soll. Anforderungen und Spezifikationen werden häufig verwendet, um diese beiden verwandten, aber unterschiedlichen Schritte des Designprozesses zu beschreiben. Anforderungen sind informelle Beschreibungen dessen, was Benutzer wollen, während Spezifikationen detailliertere, präzisere und konsistentere Beschreibungen sind, die zum Erstellen einer Systemarchitektur verwendet werden können. Natürlich handelt es sich bei Anforderungen und Spezifikationen um äußere Darstellungen des Leitsystems, nicht um interne Darstellungen. Es gibt zwei Arten von Anforderungen: funktionale Anforderungen und nicht funktionale Anforderungen beschreiben, was das System tun muss, während nicht funktionale Anforderungen andere Attribute des Systems beschreiben, wie z. B. physische Größe, Preis, Stromverbrauch, Entwurfszeit und Zuverlässigkeit Warten.
Die Anforderungsanalyse für ein großes System ist eine komplexe und zeitaufwändige Aufgabe, aber die Beschaffung einer kleinen Menge an Informationen in einem klaren, einfachen Format ist ein guter Anfang, um die Anforderungen des Systems zu verstehen. Tabelle 12-5 ist ein Anforderungsformular, das zu Beginn eines Projekts ausgefüllt wird und als Checkliste bei der Betrachtung der grundlegenden Eigenschaften des Systems verwendet werden kann.
Der Inhalt dieses Anforderungsformulars wird am Beispiel von GPS (Global Position System, mobiles Kartensystem) erstellt. Das mobile Kartensystem ist ein tragbares Gerät, das für Benutzer entwickelt wurde, die auf Autobahnen oder ähnlichen Benutzern fahren. Das Gerät kann Standortinformationen über GPS abrufen und dem Benutzer den aktuellen Standort und die umliegenden Geländekarten anzeigen. Ändert sich je nach Standort des Benutzers und Geräts.
Die wichtigste Dokumentausgabe während der Anforderungsanalysephase sind die Systemspezifikationen.
Eine Spezifikation ist ein technisches Dokument, das die Bedürfnisse des Kunden genau widerspiegelt und als Anforderungen dient, die beim Entwurf befolgt werden müssen. Im Prozess der Softwareentwicklung sind Spezifikationen sehr wichtig. Systemanalytiker akzeptieren Benutzeranforderungen und erstellen Spezifikationen für das Zielsoftwaresystem. Designer und Programmierer entwerfen Module gemäß den Spezifikationen und generieren schließlich Programmcodes, ob die endgültige Software den Spezifikationen entspricht. Spezifikationen sollten klar und eindeutig sein, andernfalls entspricht das aus den Spezifikationen erstellte System möglicherweise nicht den tatsächlichen Anforderungen.
Derzeit ist die in der Branche am weitesten verbreitete Methode die Verwendung von UML zur Beschreibung von Spezifikationen. UML ist eine universelle Standardmodellierungssprache, die jedes System mit statischer Struktur und dynamischem Verhalten modellieren kann. UML eignet sich für verschiedene Phasen im Systementwicklungsprozess, von der Anforderungsspezifikation bis zum Testen nach Fertigstellung des Systems. Abbildung 12-17 ist ein Beispiel für eine Zustandsmaschinenspezifikation, die zeigt, dass die Operationen Start und Ende spezielle Zustände sind und die Zustände in der Zustandsmaschine unterschiedliche konzeptionelle Operationen darstellen.
In der Anforderungsanalysephase werden Benutzeranforderungen anhand von Anwendungsfällen erfasst. Beschreiben Sie durch Use-Case-Modellierung die am System interessierten externen Akteure und deren funktionale Anforderungen an das System (Use-Cases). Die Analysephase befasst sich hauptsächlich mit den Hauptkonzepten (wie Abstraktionen, Klassen, Objekten usw.) und Mechanismen in der Problemdomäne. Es ist notwendig, diese Klassen und ihre Beziehungen zu identifizieren und sie mit UML-Klassendiagrammen zu beschreiben. Während der Analysephase werden nur die Objekte (reale Konzepte) der Problemdomäne modelliert, ohne die Klassen zu berücksichtigen, die die technischen Details im Softwaresystem definieren (z. B. Klassen, die Probleme wie Benutzeroberflächen, Datenbanken, Kommunikation usw. behandeln). und Parallelität).
Derzeit können Entwurfswerkzeuge für eingebettete Systeme in zwei Kategorien unterteilt werden: Werkzeuge für die kollaborative Synthese und Werkzeuge für die kollaborative Simulation.
(1) Tools für die kollaborative Synthese. Zu den wichtigsten kollaborativen Synthesetools für die Embedded-Entwicklung gehören derzeit POLIS, COSYMA und Chinook.
POLIS: POLIS ist ein von UC-Berkeley entwickeltes Software- und Hardware-Co-Design-Framework. Es eignet sich für den Entwurf kleiner Steuerungssysteme und unterstützt eine auf FSM (Finite State Machine) basierende Sprache. Da sowohl Software als auch Hardware transparent aus derselben CFSM-Beschreibung bezogen werden können, wird auch die kollaborative Simulation mit PTOLEMY sowohl auf der Beschreibungs- als auch auf der Implementierungsebene unterstützt ist begrenzt, das heißt, die Hardware-CFSMs sind nur von einem Prozessor umgeben und unterstützen keinen gemeinsam genutzten Speicher.
COSYMA: COSYMA ist eine vom deutschen Unternehmen IDA entwickelte Plattform zur Erforschung des Syntheseprozesses des Hardware- und Software-Co-Designs. Sie verfügt über eine relativ einfache Beschreibung für Softwaresysteme, unterstützt automatische Segmentierung und Co-Prozessor-Synthese und kann den Designraum erkunden Während des Synthesezeitraums ist die Systemsynthese von Hardwareeinschränkungen abhängig und unterstützt keine Parallelitätsmodule, d. h. es kann jeweils nur ein Thread ausgeführt werden. Die Architektur ist ebenfalls begrenzt und unterstützt keine formale Überprüfung hängt von Partitionierungs- und Kostenschätzungstechniken ab.
Chinook: Chinook ist für Steuerungssysteme konzipiert. Sein internes Modell basiert auf einem hierarchischen Zustandsmodell. Es bietet keine einzelne Simulationsumgebung Das gesamte Design unterstützt eine Vielzahl von Systemarchitekturen, insbesondere Multiprozessorarchitekturen. Es unterstützt auch die Beschreibung von Zeiteinschränkungen. Es kann eine Vielzahl von Schnittstellen synthetisieren, einschließlich Software- und Hardwareschnittstellen zwischen Systemen. Es kann Gerätetreiber direkt aus Zeitdiagrammen synthetisieren und die Kommunikation zwischen Prozessoren steuern.
(2) Kollaborative Simulationstools. Die kollaborative Simulation ist ein entscheidender Aspekt beim Entwurf eingebetteter Systeme. Nachdem der gesamte Systementwurf abgeschlossen ist, ist es notwendig, verschiedene Arten von Komponenten in einem einheitlichen Rahmen zu simulieren. Die kollaborative Simulation dient nicht nur der Überprüfung, sondern stellt den Benutzern auch Leistungsinformationen für jedes System zur Verfügung . Dies hilft, Änderungen in den frühen Phasen des Systems vorzuschlagen, ohne größere Verluste zu verursachen. Derzeit gibt es zwei Hauptwerkzeuge für die kollaborative Simulation:
PTOLEMY: Die Schlüsselidee von PTOLEMY besteht darin, Computermodelle mit objektorientierten Kerneln zu kombinieren. Es kann zur Simulation verschiedener Systeme verwendet werden und wird häufig in verschiedenen Anwendungen verwendet, ist jedoch nicht für die Hardwaresimulation geeignet auch eine seiner Funktionen. TSS: TSS (Tool for Systems Simulation) ist ein Tool zur Simulation komplexer Hardware. Es ist in der Sprache C geschrieben. Die Extraktion einzelner Module kann vom Benutzer gesteuert werden, und Module können einfach hinzugefügt und gelöscht werden. Hierarchische Module werden jedoch nicht unterstützt und es gibt keinen Mechanismus zum Synchronisieren des Zugriffs auf gemeinsam genutzte Datenstrukturen durch jeden Prozessor. Die Kommunikation zwischen Modulen erfolgt über Ports und Busse. Darüber hinaus unterstützt TSS die Simulation von Multicore-Systemen.
1.Design der Systemarchitektur
Der Hauptzweck des Systemarchitekturentwurfs besteht darin, zu beschreiben, wie das System die in der Spezifikation definierten Funktionen implementiert. Beim Entwurf der Systemstruktur eines eingebetteten Systems ist es jedoch schwierig, Software und Hardware vollständig zu trennen. Der übliche Ansatz besteht darin, zunächst die Softwarearchitektur des Systems und dann seine Hardwareimplementierung zu betrachten. Die Beschreibung der Systemarchitektur muss funktionale und nichtfunktionale Anforderungen erfüllen. Es muss nicht nur die erforderliche Funktionalität implementiert werden, sondern auch nichtfunktionale Randbedingungen wie Kosten, Geschwindigkeit, Stromverbrauch usw. müssen erfüllt werden. Es ist eine praktische Methode, die Funktionselemente im ursprünglichen Blockdiagramm des Systems einzeln zu betrachten und zu verfeinern und das ursprüngliche Blockdiagramm unter Berücksichtigung nichtfunktionaler Einschränkungen in eine Software- und Hardwaresystemstruktur umzuwandeln. Im Folgenden wird zur Veranschaulichung das architektonische Design des mobilen GPS-Kartensystems als Beispiel verwendet.
(1) Ursprüngliches Blockdiagramm. Wie in Abbildung 12-18 dargestellt, ist dieses ursprüngliche Blockdiagramm der Hauptbetrieb und Datenfluss des mobilen Kartensystems.
(2) Softwaresystemarchitektur. Wie in Abbildung 12-19 dargestellt, besteht das Softwaresystem hauptsächlich aus einer Benutzeroberfläche, einer Datenbanksuchmaschine und einem Datenkonverter.
(3) Hardware-Systemarchitektur. Wie in Abbildung 12-20 dargestellt, besteht das Hardwaresystem aus einem Allzweck-Mikroprozessor, Speicher und E/A-Geräten. Dieses System wählt zwei Arten von Speicher aus: allgemeine Daten, Programmspeicher und Bildpufferspeicher für die Pixelanzeige.
2.Design von Hardware-Subsystemen
Die Entwicklungsumgebung eingebetteter Systeme besteht aus vier Teilen: Zielhardwareplattform, eingebettetem Betriebssystem, Programmiersprache und Entwicklungstools. Bei der Auswahl des Prozessors und des Betriebssystems sollten weitere Faktoren berücksichtigt werden, um Fehlentscheidungen zu vermeiden, die sich auf den Projektfortschritt auswirken .
(1) Prozessortechnologie auswählen. Eine große Herausforderung beim Entwurf eingebetteter Systeme besteht darin, konkurrierende Designspezifikationen gleichzeitig zu optimieren. Designer müssen Kompromisse zwischen verschiedenen Prozessortechnologien und IC-Technologien eingehen. Im Allgemeinen hat die Prozessortechnologie nichts mit der IC-Technologie zu tun, das heißt, jede Prozessortechnologie kann mit jeder IC-Technologie implementiert werden, aber die Leistung, die NRE-Kosten, der Stromverbrauch, die Größe und andere Indikatoren des endgültigen Geräts werden sehr unterschiedlich sein unterschiedlich, wie in Abbildung 12-21 dargestellt.
Eine vielseitigere programmierbare Technologie bietet mehr Flexibilität, senkt die NRE-Kosten und ermöglicht schnellere Produktprototyp- und Markteinführungszeiten. Maßgeschneiderte Technologie kann für einen geringeren Stromverbrauch, eine bessere Leistung, eine kleinere Größe und niedrigere Kosten bei der Massenproduktion sorgen.
Wenn ein Unternehmen ein Produkt wie eine Set-Top-Box, einen Heimrouter oder einen Allzweckprozessor auf den Markt bringen möchte, kann es normalerweise zunächst ein halbkundenspezifisches Produkt auf den Markt bringen, um den Markt so schnell wie möglich zu erobern, und dann ein Produkt auf den Markt bringen vollständig maßgeschneidertes Produkt. Sie können auch zunächst eine zuverlässigere alte Technologie verwenden, um den Prozessor zu implementieren, und dann neue Prozesstechnologie verwenden, um die nächste Generation zu implementieren. Ebenso können Designer eingebetteter Systeme programmierbare Geräte verwenden, um Prototypen zu bauen, um die Markteinführungszeit zu verkürzen, und dann kundenspezifische Geräte für die Massenproduktion verwenden. Basierend auf diesen Prinzipien können Designer vernünftige Entscheidungen über die Prozessortechnologie und den verwendeten Prozessor treffen. Im Allgemeinen ist eine vollständig anpassbare, im Handel erhältliche „Universalprozessorsoftware“ für die meisten Situationen eine geeignete Option.
(2) Auswahl des allgemeinen eingebetteten Prozessors. Wählen Sie einen geeigneten Allzweck-Embedded-Prozessor basierend auf den Anforderungen des Benutzers und des Projekts. Bei der Auswahl müssen die folgenden Indikatoren berücksichtigt werden.
Prozessorgeschwindigkeit. Die Leistung eines Prozessors hängt von vielen Faktoren ab: Taktfrequenz, Größe der internen Register, ob Befehle alle Register gleichermaßen verarbeiten usw. Bei vielen eingebetteten Systemdesigns, die einen Prozessor erfordern, besteht das Ziel nicht darin, den schnellsten Prozessor auszuwählen, sondern den Prozessor und das I/O-Subsystem auszuwählen, die die Aufgabe erledigen können. Die Leistung des Prozessors entspricht den Anforderungen des Systems und hat einen gewissen Spielraum, es besteht jedoch keine Notwendigkeit, ihn zu hoch zu wählen. Technische Indikatoren. Derzeit integrieren viele eingebettete Prozessoren die Funktionen von Peripheriegeräten, wodurch die Anzahl der Chips reduziert und damit die Entwicklungskosten des gesamten Systems gesenkt werden. Entwickler überlegen zunächst, ob ein Teil der vom System benötigten Hardware ohne übermäßige kombinatorische Logik an den Prozessor angeschlossen werden kann. Zweitens berücksichtigen Sie einige unterstützende Chips des Prozessors, wie z. B. DMA-Controller, Speichermanager, Interrupt-Controller, serielles Gerät, Uhr usw. Die Vertrautheit des Entwicklers mit dem Prozessor bedeutet, dass der Projektentwickler einen Kompromiss zwischen den Kosten des Prozessors selbst und den Entwicklungskosten eingehen muss.
Ob die E/A-Funktion des Prozessors den Anforderungen des Systems entspricht, das heißt, viele Prozessoren bieten integrierte externe Geräte, um die Anzahl der Chips zu reduzieren und die Kosten zu senken. Diese Lösung sollte so weit wie möglich in Betracht gezogen werden. Relevante Software-Support-Tools für den Prozessor, das heißt, ob der Prozessor vollständige Unterstützung für eingebettete Betriebssysteme, Programmiersprachen und Entwicklungstools usw. bietet.
Das Debuggen des Prozessors bezieht sich darauf, ob der Prozessor über integrierte Debugging-Funktionen verfügt, beispielsweise ob er JTAG, BDM und andere Debugging-Methoden unterstützt. Glaubwürdigkeit des Prozessorherstellers. Bei der Auswahl eines bestimmten Prozessors während des Produktlebenszyklus müssen Designer sicherstellen, dass dieser über ausreichende Versorgung, technischen Support usw. verfügt. Der geringe Stromverbrauch des Prozessors.
Der größte und am schnellsten wachsende Markt für eingebettete Mikroprozessoren sind Unterhaltungselektronikprodukte wie Handheld-Geräte, elektronische Notizblöcke, PDAs, Mobiltelefone, GPS-Navigationsgeräte und Smart-Home-Geräte. Die in diesen Produkten erworbenen Mikroprozessoren zeichnen sich typischerweise durch hohe Anforderungen aus. Energieeffizient. Viele CPU-Hersteller sind bereits in dieses Feld vorgedrungen.
(3) Vorsichtsmaßnahmen für das Hardware-Design. Teilen Sie zunächst die Hardware in Komponenten oder Module auf und zeichnen Sie ein Blockdiagramm der Komponenten- oder Modulverbindungen. Zweitens: Verfeinern Sie jedes Modul und teilen Sie das System in besser verwaltbare Teile auf, die unabhängig voneinander implementiert werden können. Normalerweise können einige Funktionen des Systems sowohl in Software als auch in Hardware implementiert werden. Es gibt keine einheitliche Methode, die den Designer bei der Entscheidung über die Software- und Hardware-Zuweisung von Funktionen anleitet, aber basierend auf dieser kann ein Kompromiss zwischen Leistung und Kosten geschlossen werden Einschränkungsliste. Beim Entwurf der Schnittstelle zwischen Software und Hardware müssen Hardware-Designer und Software-Designer zusammenarbeiten, um sie zu vervollständigen. Durch ein gutes Schnittstellendesign kann sichergestellt werden, dass die Hardware einfach und leicht zu programmieren ist. Bei der Gestaltung sind folgende Punkte zu beachten.
Kurz gesagt, Hardware-Designer sollten Software-Designern immer detailliertere Informationen zur Verfügung stellen, um das Software-Design und die Software-Entwicklung zu erleichtern.
3.Design von Software-Subsystemen
Bestimmen Sie gemäß dem Spezifikationsdokument in der Anforderungsanalysephase das Systemberechnungsmodell und führen Sie einen angemessenen Entwurf des Softwareteils durch.
(1) Auswahl des Betriebssystems. Bei der Auswahl eines eingebetteten Betriebssystems müssen Sie viele Aspekte berücksichtigen:
Betriebssystemfunktionen. Wählen Sie Betriebssystemprodukte basierend auf den für das Projekt erforderlichen Betriebssystemfunktionen aus. Überlegen Sie, ob das System alle oder einen Teil der Funktionen des Betriebssystems unterstützt, ob es Dateisysteme und Mensch-Maschine-Schnittstellen unterstützt und ob es sich um ein Echtzeitsystem handelt oder ein Time-Sharing-System, und ob das System gekürzt werden kann usw. .
Auswahl unterstützender Entwicklungstools. Einige Echtzeitbetriebssysteme (RTOs) unterstützen nur die Entwicklungstools des Systemanbieters. Mit anderen Worten: Sie müssen auch einen Compiler, Debugger usw. vom Betriebssystemhersteller beziehen. Da einige Betriebssysteme weit verbreitet sind und Tools von Drittanbietern verfügbar sind, ist die Auswahl größer. Wie einfach es ist, das Betriebssystem zu portieren. Die Portierung des Betriebssystems auf die Hardware ist ein wichtiges Thema. Dies ist ein Schlüsselfaktor dafür, ob das gesamte System termingerecht fertiggestellt werden kann. Daher sollten Betriebssysteme mit einem hohen Grad an Portabilität ausgewählt werden, um verschiedene Schwierigkeiten zu vermeiden, die durch die Schwierigkeit der Portierung des Betriebssystems auf Hardware verursacht werden, und den Entwicklungsfortschritt zu beschleunigen vom System. Wie hoch sind die Speicheranforderungen des Betriebssystems? Überlegen Sie, ob zusätzlicher RAM oder EEPROM erforderlich ist, um den größeren Speicheranforderungen des Betriebssystems gerecht zu werden. Einige Betriebssysteme haben zielspezifische Speicheranforderungen. Wie bei Tornado/vxworks können Entwickler die erforderlichen Ressourcen entsprechend den Anwendungsanforderungen zuweisen, anstatt Ressourcen für das Betriebssystem zuzuweisen. Entwickler können aus bis zu 80 verschiedenen Konfigurationen wählen, von eingebetteten Designs, die mehrere Kilobyte Speicher erfordern, bis hin zu komplexen High-End-Echtzeitanwendungen, die mehr Betriebssystemfunktionalität erfordern.
Zusatzpakete für Betriebssysteme. Ob es die erforderlichen Softwarekomponenten enthält, wie z. B. Netzwerkprotokoll-Stacks, Dateisysteme, Treiber für verschiedene häufig verwendete Peripheriegeräte usw. Wie echtzeitfähig ist das Betriebssystem? Echtzeit wird in weiche Echtzeit und harte Echtzeit unterteilt. Einige eingebettete Betriebssysteme können nur eine weiche Echtzeitleistung bieten. Microsoft Windows CE 2.0 ist beispielsweise ein 32-Bit-Windows-kompatibles, skalierbares Mikrokernel-Echtzeitbetriebssystem, das die Anforderungen der meisten eingebetteten und nicht eingebetteten Betriebssysteme erfüllen kann Anwendungen.Allerdings ist die Echtzeitleistung nicht stark genug und es handelt sich um einen weichen eingebetteten Echtzeitvorgang.
Betriebssystem. Wie flexibel ist das Betriebssystem? Ob das Betriebssystem angepasst werden kann, das heißt, ob die Systemfunktionen an die tatsächlichen Bedürfnisse angepasst werden können. Einige Betriebssysteme verfügen über eine starke Anpassbarkeit, z. B. Embedded Linux, Tornado/Vxworks usw.
(2) Wahl der Programmiersprache. Bei der Auswahl einer Programmiersprache müssen Sie außerdem viele Aspekte berücksichtigen:
Vielseitigkeit. Mit der kontinuierlichen Weiterentwicklung der Mikroprozessortechnologie werden ihre Funktionen immer spezialisierter und es gibt immer mehr Typen. Allerdings verfügen verschiedene Arten von Mikroprozessoren über ihre eigene dedizierte Assemblersprache. Dies stellt ein großes Hindernis für Systementwickler dar, da es die Systemprogrammierung erschwert und die Wiederverwendung von Software unmöglich macht. Hochsprachen haben im Allgemeinen weniger Kontakt mit der Hardwarestruktur bestimmter Maschinen sind für die meisten Mikroprozessoren verfügbar. Gute Unterstützung und gute Vielseitigkeit.
Portabilität. Da die Assemblersprache eng mit einem bestimmten Mikroprozessor verknüpft ist, kann ein für einen bestimmten Mikroprozessor entwickeltes Programm nicht direkt auf einen anderen Mikroprozessor eines anderen Typs übertragen werden. Daher ist die Portabilität schlecht. Hochsprachen sind allen Mikroprozessoren gemeinsam, sodass Programme auf verschiedenen Mikroprozessoren ausgeführt werden können und portabler sind. Dies ist die Grundlage für die Wiederverwendung von Software. Wirksamkeit. Im Allgemeinen gilt: Je höher die Sprache, desto größer der Compiler- und Overhead und desto größer und langsamer ist die Anwendung. Wenn man sich jedoch bei der Entwicklung von Anwendungen ausschließlich auf Low-Level-Sprachen wie Assembler verlässt, entstehen Probleme wie komplexe Programmierung und lange Entwicklungszyklen. Daher gibt es einen Kompromiss zwischen Entwicklungszeit und Laufzeitleistung.
Wartbarkeit. Low-Level-Sprachen wie Assembler sind nicht wartbar. Hochsprachenprogramme sind häufig modular aufgebaut und die Schnittstellen zwischen den einzelnen Modulen sind festgelegt. Wenn also ein Problem im System auftritt, kann das Problem schnell in einem bestimmten Modul lokalisiert und so schnell wie möglich gelöst werden. Darüber hinaus erleichtert der modulare Aufbau auch die Erweiterung und Erweiterung von Systemfunktionen.
Grundleistung. Im Entwicklungsprozess eingebetteter Systeme werden viele Arten von Sprachen verwendet. Zu den am weitesten verbreiteten Hochsprachen gehören Ada, C/C++, Modula-2 und Java. Die Ada-Sprache ist streng definiert, leicht zu lesen und zu verstehen und verfügt über umfangreiche Bibliotheksprogrammunterstützung. Derzeit wird sie häufig in der Landesverteidigung, der Luftfahrt, der Luft- und Raumfahrt und anderen verwandten Bereichen verwendet und wird in diesen Bereichen weiterhin eine wichtige Position einnehmen Zukunft. Die C-Sprache verfügt über umfangreiche Bibliotheksprogrammunterstützung und ist die am weitesten verbreitete Programmiersprache in eingebetteten Systemen. Sie wird auch in Zukunft eine wichtige Position im Bereich eingebetteter Systemanwendungen einnehmen. C++ ist eine objektorientierte Programmiersprache, die auch häufig im Entwurf eingebetteter Systeme verwendet wird, beispielsweise GNU C++. Visual C++ ist eine integrierte Entwicklungsumgebung, die visuelle Programmierung unterstützt und häufig in der GUI-Programmentwicklung verwendet wird. Im Vergleich zu C++ ist der Zielcode von C++ jedoch häufig größer und komplexer. Dieser Faktor sollte bei eingebetteten Systemanwendungen vollständig berücksichtigt werden.
(3) Softwareentwicklungsprozess. Der Entwicklungsprozess eingebetteter Software unterscheidet sich vom Entwicklungsprozess allgemeiner Software. Er umfasst hauptsächlich die folgenden Schritte:
(4) Softwareentwicklungsdokumente. Im Entwicklungs- und Designprozess von eingebetteten Produkten schließt die Entwicklungsphase die Implementierung von Systemprodukten ab. Diese Dokumente sind für die Vervollständigung des Produktdesigns und der Produktwartung sehr wichtig , technische Aufgaben usw. Dokumente, technische Planberichte, Produktspezifikationen, technische Bedingungen, Konstruktionsanweisungen, Prüfberichte, zusammenfassende Berichte usw.
Normalerweise umfasst das Testen eingebetteter Systeme hauptsächlich drei Teile: Softwaretests, Hardwaretests und Unit-Tests. Zu den allgemeinen Tests der Systemhardware gehören Zuverlässigkeitstests und elektromagnetische Verträglichkeitstests. Derzeit gibt es verbindliche nationale und internationale Standards für die elektromagnetische Verträglichkeit.
Die Testmethoden und -prinzipien von eingebetteter Systemsoftware sind grundsätzlich dieselben wie beim Testen allgemeiner Software. Beim Testen von Software sind im Allgemeinen zwei Quellen für Testsequenzen erforderlich: die eine wird vom Benutzer entworfen und die andere ist eine Standardtestsequenz. Unabhängig von der Art der Testinstanz muss die Instanz mit hoher Wahrscheinlichkeit mehr Fehler finden können, es gibt jedoch einige Unterschiede im Inhalt des Tests:
(1) Eingebettete Software muss über einen langen Zeitraum stabil laufen.
(2) Eingebettete Software unterliegt im Allgemeinen keinen häufigen Versionsaktualisierungen.
(3) Eingebettete Software wird üblicherweise in kritischen Anwendungen eingesetzt.
(4) Eingebettete Software muss zusammen mit eingebetteter Hardware für Produktfehler und -zuverlässigkeit verantwortlich sein.
(5) Die realen Bedingungen sind asynchron und unvorhersehbar, was Simulationstests sehr schwierig macht.
Aufgrund dieser Unterschiede konzentriert sich das Testen eingebetteter Systemsoftware hauptsächlich auf die folgenden vier verschiedenen Aspekte:
(1) Da es schwierig ist, Echtzeit und Gleichzeitigkeit gleichzeitig zu erfüllen, konzentrieren sich die meisten Tests auf Echtzeittests.
(2) Die meisten Echtzeitsysteme unterliegen Ressourcenbeschränkungen und erfordern daher mehr Leistungs- und Benutzerfreundlichkeitstests.
(3) Die Codeabdeckung kann mit speziellen Echtzeit-Tracking-Tools getestet werden.
(4) Das Testniveau für Zuverlässigkeit ist viel höher als bei allgemeiner Software.
Darüber hinaus gehören Leistungstests zu den wichtigsten Testaktivitäten, die beim Entwurf eingebetteter Systeme durchgeführt werden müssen, und haben entscheidende Auswirkungen auf eingebettete Systeme.
Aufgrund der besonderen Eigenschaften eingebetteter Systeme verfügt das System über verschiedene Hardware- und Softwareplattformen, die jeweils speziell für unterschiedliche Anwendungen entwickelt wurden. Daher ist Anwendungssoftware selten universell zwischen verschiedenen Plattformen und eingebetteten Systemen. Die Aktualisierungsgeschwindigkeit ist relativ hoch. Um bestehende Investitionen zu schützen, vorhandene Softwareressourcen voll auszunutzen und die Produktentwicklung zu beschleunigen, ist die Softwaretransplantation im Embedded-Bereich sehr häufig geworden.