DECKERT MICHAEL (DE)
NAGEL PATRICK (DE)
SHCHETYNIN MAKSYM (DE)
US20170046358A1 | 2017-02-16 | |||
DE10064000A1 | 2001-07-19 |
Ansprüche 1. Verfahren (500) zum Bereitstellen von Anwendungsdaten zumindest einer auf einem Steuergerät (110) für ein Fahrzeugs ausführbaren Anwendung (112), wobei das Steuergerät (110) Komponenten (202; 300, 302, 304, 306; 400, 402) zum Ausführen eines Betriebssystems (200) mit virtueller Speicherverwaltung umfasst, wobei das Verfahren (500) folgende Schritte umfasst: Auslesen (502) eines Anwendungsadressraumes eines ersten virtuellen Speichers (302), wobei der Anwendungsadressraum einem Prozess der Anwendung zugeordnet ist und einen von den Anwendungsdaten belegten Bereich eines physischen Speichers (300) des Steuergeräts (110) abbildet; und Einblenden (504) des Anwendungsadressraumes in einen virtuellen Adressraum eines weiteren virtuellen Speichers (306), der einem Prozess einer Kommunikationsanwendung (118) zum Datenaustausch über eine Kommunikationsschnittstelle (108) zu einer steuergeräteexternen Auswerteeinrichtung (106) zugeordnet ist, um die Anwendungsdaten über die Kommunikationsschnittstelle (108) bereitzustellen. 2. Verfahren (500) gemäß Anspruch 1, mit einem Schritt des Bereitstellens der Anwendungsdaten über eine XCP-Schnittstelle als die Kommunikationsschnittstelle (108). 3. Verfahren (500) gemäß einem der vorangegangenen Ansprüche, bei dem der Prozess der Kommunikationsanwendung (118) ausgebildet ist, um den Schritt (502) des Auslesens und den Schritt des Einblendens (504) ohne Zuhilfenahme einer Hardwareeinheit zur Speicherverwaltung (MMU) auszuführen. 4. Verfahren (500) gemäß einem der vorangegangenen Ansprüche, bei dem im Schritt des Auslesens (502) zumindest eine physische und/oder virtuelle Adresse der Anwendungsdaten als der Anwendungsadressraum ausgelesen wird. 5. Verfahren (500) gemäß einem der vorangegangenen Ansprüche, bei dem im Schritt des Einblendens (504) der Anwendungsadressraum (302) mittels eines POSIX-basierten Betriebssystems (200) des Steuergeräts (110) in den virtuellen Adressraum eingeblendet wird. 6. Verfahren (500) gemäß einem der vorangegangenen Ansprüche, bei dem im Schritt des Auslesens (502) der Anwendungsadressraum ansprechend auf ein vorbestimmtes Ereignis des der Anwendung (112) zugeordneten Prozesses ausgelesen wird. 7. Verfahren (500) gemäß einem der vorangegangenen Ansprüche, bei dem im Schritt des Auslesens (502) ein zweiter virtueller Anwendungsadressraum eines zweiten virtuellen Speichers (304), der einem Prozess einer zweiten auf dem Steuergerät (110) ausführbaren Anwendung (114) zugeordnet ist und einen von zweiten Anwendungsdaten der zweiten Anwendung (114) belegten Bereich des physischen Speichers (300) repräsentiert, ausgelesen wird, wobei im Schritt des Einblendens (504) der zweite Anwendungsadressraum (304) in den virtuellen Adressraum (306) eingeblendet wird, um die zweiten Anwendungsdaten über die Kommunikationsschnittstelle (108) bereitzustellen. 8. Steuergerät (110) mit Einheiten (202; 300, 302, 304, 306; 400, 402), die ausgebildet sind, um das Verfahren (500) gemäß einem der vorangegangenen Ansprüche auszuführen und/oder anzusteuern. 9. Steuergerät (110) gemäß Anspruch 8, bei dem die Einheiten (300, 302, 304, 306; 400, 402) einen Mikroprozessor (202), einen physischen Speicher (300), einen der Anwendung (112) zugeordneten ersten virtuellen Speicher (302) und einen der Kommunikationsanwendung (118) zugeordneten weiteren virtuellen Speicher (306) umfassen. 10. Verfahren (600) zum Kalibrieren eines Steuergeräts (110) unter Verwendung von Anwendungsdaten, die in einem Verfahren (500) gemäß einem der Ansprüche 1 bis 7 bereitgestellt wurden, wobei das Verfahren (600) folgende Schritte umfasst: Einlesen (602) der Anwendungsdaten über die Kommunikationsschnittstelle (108) unter Verwendung der Kommunikationsanwendung (118); Generieren (604) einer Kalibrierinformation zum Verstellen zumindest eines Parameters des Steuergeräts (110) unter Verwendung der Anwendungsdaten; und Ausgeben (606) der Kalibrierinformation an die Kommunikationsschnittstelle (108), um das Steuergerät (110) zu kalibrieren. 11. Auswerteeinrichtung (106) mit Einheiten (700, 706), die ausgebildet sind, um das Verfahren (600) gemäß Anspruch 10 auszuführen und/oder anzusteuern. 12. Computerprogramm, das ausgebildet ist, um das Verfahren (500) gemäß einem der Ansprüche 1 bis 7 oder das Verfahren (600) gemäß Anspruch 10 auszuführen und/oder anzusteuern. 13. Maschinenlesbares Speichermedium, auf dem das Computerprogramm nach Anspruch 12 gespeichert ist. |
Titel
Verfahren zum Bereitstellen von Anwendungsdaten zumindest einer auf einem
Steuergerät eines Fahrzeugs ausführbaren Anwendung, Verfahren zum
Kalibrieren eines Steuergeräts, Steuergerät und Auswerteeinrichtung
Stand der Technik
Die Erfindung geht aus von einem Verfahren oder einer Vorrichtung nach Gattung der unabhängigen Ansprüche. Gegenstand der vorliegenden Erfindung ist auch ein Computerprogramm.
In Steuergeräten von Kraftfahrzeugen werden in der Regel konventionelle Mikrocontroller mit integrierten Peripheriekomponenten wie beispielsweise Flash oder RAM-Speicher eingesetzt. Solche Bausteine besitzen meist keine
Speichervirtualisierungsmechanismen mit Speicherverwaltungseinheit, auch Memory Management Unit oder kurz MMU genannt. Die Messung und
Verstellung von Parametern wird beispielsweise über das XCP-Protokoll (Universal Measurement and Calibration Protocol) ermöglicht. Dabei können beliebige Speicherzellen ausgelesen und auf einem Messtechnikrechner dargestellt werden. Aufgrund der fehlenden Speicherverwaltungseinheit sind solche Steuergeräte meist nicht für den Einsatz moderner Betriebssysteme wie Linux oder QNX geeignet.
In Infotainment- Steuergeräten werden bereits heute moderne Mikroprozessoren eingesetzt, die über schnelle Recheneinheiten, externe Speicher und
Speicherverwaltungseinheiten verfügen. Mitunter kommen hier Betriebssysteme zum Einsatz, die Speichervirtualisierung verwenden. Dabei werden überwiegend einfache Logging-Mechanismen eingesetzt, die die Parametrierbarkeit des Systems einschränken. In Fahrerassistenzsystemen spielen moderne Betriebssysteme und
Mikroprozessoren eine wichtige Rolle. Diese erfordern umfassende Mess- und Kalibriermöglichkeiten.
Offenbarung der Erfindung
Vor diesem Hintergrund werden mit dem hier vorgestellten Ansatz ein Verfahren zum Bereitstellen von Anwendungsdaten zumindest einer auf einem Steuergerät eines Fahrzeugs ausführbaren Anwendung, ein Steuergerät, das dieses
Verfahren verwendet, ein Verfahren zum Kalibrieren eines Steuergeräts, eine Auswerteeinrichtung, die dieses Verfahren verwendet, sowie schließlich ein entsprechendes Computerprogramm gemäß den Hauptansprüchen vorgestellt. Durch die in den abhängigen Ansprüchen aufgeführten Maßnahmen sind vorteilhafte Weiterbildungen und Verbesserungen der im unabhängigen
Anspruch angegebenen Vorrichtung möglich.
Der hier vorgestellte Ansatz beruht auf der Erkenntnis, dass in einem
Mikroprozessor, wie sie beispielsweise in Steuergeräten für
Fahrerassistenzsysteme eingesetzt werden, ein PMD (PMD = Process
Measurement Daemon) oder eine sonstige in einem virtuellen Speicher ausführbare Kommunikationsanwendung zur Kommunikation mit einem steuergeräteexternen Messrechner eingesetzt werden kann. Dadurch wird ein einfaches Auslesen von Mess- und Kalibrierdaten aus unterschiedlich allokierten Speicherbereichen des Mikroprozessors ermöglicht, und zwar unabhängig von einem tatsächlichen Memory Mapping der virtuellen Speicherverwaltung.
Unter anderem beschreibt der hier vorgestellte Ansatz, wie auf Mikroprozessoren mit modernen Betriebssystemen und Speichervirtualisierung eine Mess- und Kalibrierschnittstelle mit XCP eingesetzt werden kann. Diese Möglichkeit ist für Fahrerassistenzsteuergeräte, etwa für das autonome Fahren, unerlässlich.
Insbesondere ermöglicht der hier vorgestellte Ansatz beispielsweise die
Implementierung einer XCP- Messtechnikschnittstelle unter POSIX-kompatiblen Betriebssystemen (Portable Operating System Interface). Dies hat den Vorteil, dass in Fahrerassistenzsteuergeräten ein bereits etabliertes Messtechnikprotokoll einschließlich entsprechender PC-Tools weiterverwendet werden kann. Somit können neue mikroprozessorbasierte Systeme mit
Speichervirtualisierung weiterhin mit etablierten Messwerkzeugen analysiert und kalibriert werden. Damit kann der Anpassungsaufwand im Bereich der
Messtechnik angesichts des weitreichenden Technologiewandels bei
Steuergeräten auf ein Minimum reduziert werden.
Es wird ein Verfahren zum Bereitstellen von Anwendungsdaten zumindest einer auf einem Steuergerät für ein Fahrzeug ausführbaren Anwendung vorgestellt, wobei das Steuergerät Komponenten zum Ausführen eines Betriebssystems mit virtueller Speicherverwaltung umfasst, wobei das Verfahren folgende Schritte umfasst:
Auslesen eines Anwendungsadressraumes eines ersten virtuellen Speichers, wobei der Anwendungsadressraum einem Prozess der Anwendung zugeordnet ist und einen von den Anwendungsdaten belegten Bereich eines physischen Speichers des Steuergeräts abbildet; und
Einblenden des Anwendungsadressraumes eines weiteren virtuellen Speichers in einen virtuellen Adressraum, der einem Prozess einer
Kommunikationsanwendung zum Datenaustausch über eine
Kommunikationsschnittstelle zu einer externen Auswerteeinrichtung zugeordnet ist, um die Anwendungsdaten über die Kommunikationsschnittstelle
bereitzustellen.
Bei den Anwendungsdaten kann es sich beispielsweise um Mess- oder
Kalibrierdaten handeln. Die Anwendungsdaten können von dem Prozess der Anwendung verwendet und/oder erstellt werden oder worden sein. Unter einem Steuergerät kann beispielsweise ein Motorsteuergerät oder ein Gerät zum Steuern von Fahrerassistenzfunktionen verstanden werden. Unter einer Anwendung kann ein Computerprogramm oder eine Software verstanden werden. Beispielsweise kann unter einer Anwendung eine als Slave fungierende Instanz eines Programms verstanden werden. Die Anwendung kann
insbesondere innerhalb eines virtuellen Prozessbereiches ausführbar sein. Bei den Komponenten kann es sich beispielsweise um einen Mikroprozessor oder -Controller oder einen flüchtigen oder nicht flüchtigen Speicher handeln. Bei dem Betriebssystem kann es sich insbesondere um ein POSIX-konformes
Betriebssystem , insbesondere auch ein Echtzeitbetriebssystem, wie
beispielsweise Linux oder QNX handeln. Unter virtueller Speicherverwaltung kann eine Art der Speicherverwaltung verstanden werden, bei der die von einer Anwendung generierten Speicheradressen einen virtuellen Adressraum bilden, dessen Adressen nicht direkt an einen Speicherbus, sondern an eine
Speicherverwaltungseinheit gehen. Diese bildet die virtuellen Adressen auf Adressen des tatsächlich vorhandenen physischen Speichers ab. In diesem Sinn kann unter einem virtuellen Adressraum ein vom physischen Speicher unabhängiger Adressraum verstanden werden, den das Betriebssystem einem Prozess zuweist. Dementsprechend kann unter einem Anwendungsadressraum ein einem Prozess der Anwendung vom Betriebssystem zugewiesener, virtueller Adressraum verstanden werden, der wiederum auf einen bestimmten
Adressraum des physischen Speichers verweist. Der Anwendungsadressraum einer Anwendung und/oder der virtuelle Adressraum der
Kommunikationsanwendung kann Daten in Form von Zeigern aufweisen, die auf Speicherabschnitte des physischen Speicher verweisen.
Unter einem physischen Speicher kann ein flüchtiger oder nicht flüchtiger Speicher, etwa in Form von Flash- oder RAM-Speicher, verstanden werden. Der physische Speicher kann beispielsweise in den Mikroprozessor oder -Controller des Steuergeräts integriert sein oder als externer Speicher realisiert sein. Unter einer Kommunikationsanwendung kann insbesondere ein Programmierwerkzeug zur Codeanalyse, beispielsweise ein Process Measuremenet Daemon, ein sogenannter PMD, oder Ähnliches, verstanden werden. Unter einer
Kommunikationsschnittstelle kann beispielsweise eine Mess- und
Kalibrierschnittstelle zum Austausch von Mess- und Kalibrierdaten, etwa über das XCP-Protokoll oder ein sonstiges geeignetes Netzwerkprotokoll, verstanden werden. Die Kommunikationsschnittstelle kann hardwareseitig als
Funkschnittstelle oder kabelgebundene Schnittstelle, etwa als Ethernet- Schnittstelle, ausgebildet sein. Unter einer steuergeräteexternen
Auswerteeinrichtung kann beispielsweise ein mit dem Steuergerät koppelbarer Mess- und Kalibriercomputer, etwa in Form eines Laptops oder PCs, verstanden werden. Die Kommunikationsschnitstelle kann eine Protokollschicht aufweisen, die von der Transportschicht getrennt ist, sodass beispielsweise eine auf dem CAN-Bus basierende Transportschicht verwendet werden kann.
Gemäß einer Ausführungsform können in einem Schrit des Bereitstellens die Anwendungsdaten über eine XCP-Schnitstelle als die
Kommunikationsschnitstelle bereitgestellt werden. Unter einer XCP-Schnitstelle kann eine Schnitstelle zum Datenaustausch über ein standardisiertes Mess- und Kalibrierprotokoll für die Steuergerätekalibrierung, auch Universal Measurement and Calibration Protocol genannt, verstanden werden. Dadurch kann die universelle Anwendbarkeit des Verfahrens gewährleistet werden.
Der Prozess der Kommunikationsanwendung kann ausgebildet sein, um den Schrit des Auslesens und den Schrit des Einblendens ohne Zuhilfenahme einer Hardwareeinheit zur Speicherverwaltung auszuführen. Somit kann das
Steuergerät ohne eine sogenannte MMU (Memory Management Unit) ausgeführt sein.
Gemäß einer weiteren Ausführungsform kann im Schrit des Auslesens zumindest eine physische und/oder virtuelle Adresse der Anwendungsdaten als der Anwendungsadressraum ausgelesen werden. Unter einer physischen Adresse kann ein Ort eines belegten Bereichs des physischen Speichers verstanden werden. Unter einer virtuellen Adresse kann ein auf die physische Adresse verweisender Bereich eines virtuellen Speichers verstanden werden. Durch diese Ausführungsform kann eine effiziente und zuverlässige Ermitlung des Anwendungsadressraumes sichergestellt werden.
Des Weiteren kann im Schrit des Einblendens der Anwendungsadressraum mitels eines POSIX-basierten Betriebssystems des Steuergeräts in den virtuellen Adressraum eingeblendet werden. Unter einem POSIX-basierten Betriebssystem kann ein POSIX-konformes, weitgehend POSIX-konformes oder durch Kompatibilitätserweiterungen POSIX-konform gemachtes Betriebssystem verstanden werden. Durch diese Ausführungsform kann eine hocheffiziente Speicherverwaltung realisiert werden. Gemäß einer weiteren Ausführungsform kann der Anwendungsadressraum ansprechend auf ein vorbestimmtes Ereignis des der Anwendung zugeordneten Prozesses ausgelesen werden. Beispielsweise kann der Schritt des Auslesens ansprechend auf ein Starten oder Beenden des der Anwendung zugeordneten Prozesses durchgeführt werden. Auf diese Weise können beispielsweise stets aktuelle Daten über die Kommunikationsschnittstelle ausgelesen werden.
Es kann im Schritt des Auslesens ein zweiter virtueller Anwendungsadressraum eines zweiten virtuellen Speichers ausgelesen werden, der einem Prozess einer zweiten auf dem Steuergerät ausführbaren Anwendung zugeordnet ist und einen von zweiten Anwendungsdaten der zweiten Anwendung belegten Bereich des physischen Speichers repräsentiert. Dementsprechend kann im Schritt des Einblendens der zweite Anwendungsadressraum in den virtuellen Adressraum eingeblendet werden, um die zweiten Anwendungsdaten über die
Kommunikationsschnittstelle bereitzustellen. Die zweiten Anwendungsdaten können von dem Prozess der zweiten Anwendung verwendet und/oder erstellt werden oder worden sein. Indem durch den Prozess der
Kommunikationsanwendung auf mehrere virtuelle Speicher mehrerer
Anwendungen zugegriffen werden kann, können gemeinsam Daten mehrerer unterschiedlicher Anwendungen des Steuergeräts über die
Kommunikationsschnittstelle ausgelesen und kalibriert werden.
Der hier vorgestellte Ansatz schafft ferner ein Steuergerät, das ausgebildet ist, um die Schritte einer Variante eines hier vorgestellten Verfahrens in
entsprechenden Einrichtungen durchzuführen, anzusteuern bzw. umzusetzen. Auch durch diese Ausführungsvariante der Erfindung in Form eines Steuergeräts kann die der Erfindung zugrunde liegende Aufgabe schnell und effizient gelöst werden.
Hierzu kann das Steuergerät zumindest eine Recheneinheit zum Verarbeiten von Signalen oder Daten, zumindest eine Speichereinheit zum Speichern von Signalen oder Daten, zumindest eine Schnittstelle zu einem Sensor oder einem Aktor zum Einlesen von Sensorsignalen von dem Sensor oder zum Ausgeben von Steuersignalen an den Aktor und/oder zumindest eine
Kommunikationsschnittstelle zum Einlesen oder Ausgeben von Daten aufweisen, die in ein Kommunikationsprotokoll eingebettet sind. Die Recheneinheit kann beispielsweise ein Signalprozessor, ein Mikrocontroller oder dergleichen sein, wobei die Speichereinheit ein Flash-Speicher, ein EPROM oder eine
magnetische Speichereinheit sein kann. Die Kommunikationsschnittstelle kann ausgebildet sein, um Daten drahtlos und/oder leitungsgebunden einzulesen oder auszugeben, wobei eine Kommunikationsschnittstelle, die leitungsgebundene Daten einiesen oder ausgeben kann, diese Daten beispielsweise elektrisch oder optisch aus einer entsprechenden Datenübertragungsleitung einiesen oder in eine entsprechende Datenübertragungsleitung ausgeben kann.
Unter einem Steuergerät kann vorliegend ein elektrisches Gerät verstanden werden, das Sensorsignale verarbeitet und in Abhängigkeit davon Steuer- und/oder Datensignale ausgibt. Das Steuergerät kann eine Schnittstelle aufweisen, die hard- und/oder softwaremäßig ausgebildet sein kann. Bei einer hardwaremäßigen Ausbildung können die Schnittstellen beispielsweise Teil eines sogenannten System-ASICs sein, der verschiedenste Funktionen des
Steuergeräts beinhaltet. Es ist jedoch auch möglich, dass die Schnittstellen eigene, integrierte Schaltkreise sind oder zumindest teilweise aus diskreten Bauelementen bestehen. Bei einer softwaremäßigen Ausbildung können die Schnittstellen Softwaremodule sein, die beispielsweise auf einem Mikrocontroller neben anderen Softwaremodulen vorhanden sind.
In einer vorteilhaften Ausgestaltung erfolgt durch das Steuergerät eine Steuerung des Fahrzeugs. Hierzu kann das Steuergerät beispielsweise auf Sensorsignale wie Beschleunigungs-, Druck-, Lenkwinkel- oder Umfeldsensorsignale zugreifen. Die Ansteuerung erfolgt über Aktoren wie Brems- oder Lenkaktoren oder ein Motorsteuergerät des Fahrzeugs.
Gemäß einer Ausführungsform kann das Steuergerät als die Einheiten zumindest einen Mikroprozessor, einen physischen Speicher, einen der Anwendung zugeordneten ersten virtuellen Speicher und einen der
Kommunikationsanwendung zugeordneten zweiten virtuellen Speicher aufweisen. Dadurch kann das Steuergerät mit hoher Rechenleistung bei verhältnismäßig geringen Herstellungskosten und geringem Platzbedarf realisiert werden. Der hier vorgestellte Ansatz schafft ferner ein Verfahren zum Kalibrieren eines Steuergeräts unter Verwendung von Anwendungsdaten, die in einem Verfahren gemäß einer der vorstehenden Ausführungsformen bereitgestellt wurden, wobei das Verfahren folgende Schritte umfasst:
Einlesen der Anwendungsdaten über die Kommunikationsschnittstelle unter Verwendung der Kommunikationsanwendung;
Generieren einer Kalibrierinformation zum Verstellen zumindest eines
Parameters des Steuergeräts unter Verwendung der Anwendungsdaten; und
Ausgeben der Kalibrierinformation an die Kommunikationsschnittstelle, um das Steuergerät zu kalibrieren.
Unter einer Kalibrierinformation kann beispielsweise eine Beschreibungsdatei für steuergeräteinterne Größen, etwa eine A2L-Datei, oder eine sonstige zur Durchführung von Mess- oder Verstelloperationen geeignete Information verstanden werden.
Die genannten Verfahren können beispielsweise in Software oder Hardware oder in einer Mischform aus Software und Hardware, beispielsweise in einem
Steuergerät, implementiert sein.
Der hier vorgestellte Ansatz schafft zudem eine Auswerteeinrichtung mit
Einheiten, die ausgebildet sind, um das Verfahren gemäß der vorstehenden Ausführungsform auszuführen und/oder anzusteuern. Unter einer
Auswerteeinrichtung kann ein Steuergeräte- oder fahrzeugexterner Computer verstanden werden.
Von Vorteil ist auch ein Computerprogrammprodukt oder Computerprogramm mit Programmcode, der auf einem maschinenlesbaren Träger oder Speichermedium wie einem Halbleiterspeicher, einem Festplattenspeicher oder einem optischen Speicher gespeichert sein kann und zur Durchführung, Umsetzung und/oder Ansteuerung der Schritte des Verfahrens nach einer der vorstehend beschriebenen Ausführungsformen verwendet wird, insbesondere wenn das Programmprodukt oder Programm auf einem Computer oder einer Vorrichtung ausgeführt wird.
Ausführungsbeispiele der Erfindung sind in den Zeichnungen dargestellt und in der nachfolgenden Beschreibung näher erläutert. Es zeigt:
Fig. 1 eine schematische Darstellung einer Topologie von Multi-XCP-Slaves; Fig. 2 eine schematische Darstellung eines Steuergeräts aus Fig. 1;
Fig. 3 eine schematische Darstellung einer Speicherorganisation in einem Steuergerät gemäß einem Ausführungsbeispiel;
Fig. 4 eine schematische Darstellung eines Mikroprozessors aus Fig. 2;
Fig. 5 ein Ablaufdiagramm eines Verfahrens zum Bereitstellen von
Anwendungsdaten gemäß einem Ausführungsbeispiel;
Fig. 6 ein Ablaufdiagramm eines Verfahrens zum Kalibrieren eines
Steuergeräts gemäß einem Ausführungsbeispiel; und
Fig. 7 eine schematische Darstellung einer Auswerteeinrichtung gemäß einem Ausführungsbeispiel.
In der nachfolgenden Beschreibung günstiger Ausführungsbeispiele der vorliegenden Erfindung werden für die in den verschiedenen Figuren
dargestellten und ähnlich wirkenden Elemente gleiche oder ähnliche
Bezugszeichen verwendet, wobei auf eine wiederholte Beschreibung dieser Elemente verzichtet wird.
Fig. 1 zeigt eine schematische Darstellung zweier Topologien von Multi-XCP- Slaves. Die Topologien sind zum besseren Vergleich übereinander dargestellt und durch eine gestrichelte Linie voneinander getrennt.
Die obere Topologie umfasst beispielhaft ein erstes Steuergerät 100, das einen ersten XCP-Slave repräsentiert, ein zweites Steuergerät 102, das einen zweiten XCP-Slave repräsentiert, und ein drittes Steuergerät 104, das einen dritten XCP- Slave repräsentiert. Eine steuergeräteexterne Auswerteeinrichtung 106, hier beispielhaft ein Messtechnik- PC, ist über eine XCP-Schnittstelle als
Kommunikationsschnittstelle 108 mit jedem der drei Steuergeräte 100, 102, 104 zu Mess- und Kalibrierzwecken gekoppelt. Die kompletten Steuergeräte 100,
102, 104 werden jeweils als XCP-Slave betrachtet. Die Auswerteeinrichtung 106 ist dabei in der Lage, mit mehreren Slaves, etwa mit einem ESP-Steuergerät und einem Motorsteuergerät, gleichzeitig zu kommunizieren, beispielsweise um Mess- und/oder Kalibrierdaten auszutauschen.
Die untere Topologie zeigt ein Steuergerät 110 gemäß einem
Ausführungsbeispiel des hier vorgestellten Ansatzes. Gemäß dem hier vorgestellten Ansatz wird nun beispielsweise jede Instanz einer Applikation in dem Steuergerät 110 als XCP-Slave betrachtet. Beispielhaft sind als in dem Steuergerät 110 ausführbare Instanzen eine erste Anwendung 112, eine zweite Anwendung 114, eine dritte Anwendung 116 und eine
Kommunikationsanwendung 118 gezeigt. Die Kommunikationsanwendung 118 ist ausgebildet, um über eine externe Kommunikationsschnittstelle 108 mit der Auswerteeinrichtung 106 zu kommunizieren, also Daten in das jeweilige
Steuergerät 110 zu schreiben oder aus dem Steuergerät 110 auszulesen.
Das in der unteren Topologie gezeigte Steuergerät 110, etwa ein POSIX- Steuergerät mit virtueller Speicherverwaltung, ist ähnlich wie die in der oberen Topologie gezeigten Steuergeräte 100, 102, 104 über die
Kommunikationsschnittstelle 108 mit der Auswerteeinrichtung 106 gekoppelt. Auf dem Steuergerät 110 sind die verschiedenen Anwendungen 112, 114, 116, 118 in entsprechenden virtuellen Speicherbereichen eines Betriebssystems ausführbar. Dabei repräsentiert die erste Anwendung 112 einen ersten XCP- Slave, die zweite Anwendung 114 einen zweiten XCP-Slave und die dritte Anwendung 116 einen dritten XCP-Slave. Zusätzlich ist auf dem Steuergerät 110 die Kommunikationsanwendung 118, beispielsweise zum Austausch von Mess- und Kalibrierdaten über die Kommunikationsschnittstelle 108 ausführbar. Bei der Kommunikationsanwendung 118 handelt es sich gemäß diesem
Ausführungsbeispiel um einen Process Measurement Daemon, kurz PMD, zur externen Codeanalyse mittels der Auswerteeinrichtung 106.
Gemäß einem Ausführungsbeispiel ist das Steuergerät 110 ausgebildet, um einen Anwendungsadressraum von Anwendungsdaten der Anwendung 112, beispielsweise von Mess- und Kalibrierdaten, mittels des Betriebssystems auszulesen. Dabei bildet der Anwendungsadressraum einen von den
Anwendungsdaten belegten physischen Speicherbereich des Steuergeräts 110 ab. Um die Anwendungsdaten über die Kommunikationsschnittstelle 108 zugänglich zu machen, blendet das Steuergerät 110 den
Anwendungsadressraum in einen virtuellen Prozessbereich der
Kommunikationsanwendung 118 ein. Somit sind die Anwendungsdaten im virtuellen Speicher der Kommunikationsanwendung 118 referenziert und unabhängig von einem tatsächlichen Memory Mapping des Steuergeräts 110 über die Kommunikationsschnittstelle 108 mittels der Auswerteeinrichtung 106 abrufbar.
Gemäß einem weiteren Ausführungsbeispiel ist das Steuergerät 110 ausgebildet, um zusätzlich zum Anwendungsadressraum der Anwendung 112 weitere
Anwendungsadressräume der jeweiligen Anwendungsdaten der beiden
Anwendungen 114, 116 auszulesen und in den virtuellen Adressraum der Kommunikationsanwendung 118 einzublenden, sodass auch auf die
Anwendungsdaten der beiden Anwendungen 114, 116 über den virtuellen Adressraum der Kommunikationsanwendung 118 zugegriffen werden kann.
Gemäß einem Ausführungsbeispiel weist das Steuergerät 110 keine
Hardwareeinheit zur Speicherverwaltung auf. Stattdessen ist die
Kommunikationsanwendung 118 ausgebildet, um direkt auf den physikalischen Speicher zuzugreifen. Ferner ist die Kommunikationsanwendung 118
ausgebildet, um virtuelle Speicher der Anwendungen 112, 114, 116 direkt auszulesen oder von den virtuellen Speichern der Anwendungen 112, 114, 116 umfasste Anwendungsadressräume zu empfangen.
Gemäß einem Ausführungsbeispiel ist das Steuergerät 110 in einem Fahrzeug angeordnet und die Auswerteeinrichtung 106 ebenfalls in dem Fahrzeug oder außerhalb des Fahrzeugs angeordnet. Beispielsweise wird die
Auswerteeinrichtung 106 nur zeitweise, beispielsweise während eines
Werkstattaufenthalts des Fahrzeugs über die Kommunikationsschnittstelle 108 mit dem Steuergerät 110 gekoppelt. Fig. 2 zeigt eine schematische Darstellung des Steuergeräts 110 aus Fig. 1 gemäß einem Ausführungsbeispiel. Gezeigt ist eine Software-Architektur auf Basis eines POSIX- Echtzeitbetriebssystems 200, das die Prozesse der verschiedenen Anwendungen 112, 114, 118 verwaltet, und eines
Mikroprozessors 202 als Recheneinheit.
Gemäß diesem Ausführungsbeispiel umfasst das Steuergerät 110 mehrere voneinander unabhängige Programme oder Anwendungen 112, 114 in Form von ELF-Dateien (ELF = Executable and Linking Format), die binär in einem nicht flüchtigen Speicher des Steuergeräts 110 liegen. Beispielsweise basiert die erste Anwendung 112 auf einer ELF-Datei„A.elf, die zweite Anwendung 114 auf einer ELF-Datei„B.elf, eine x-te Anwendung auf einer ELF-Datei„X.elf“.
Beim Start der Anwendungen 112, 114, 118 sorgt ein Betriebssystem- Loader dafür, dass die notwendigen Ressourcen physikalisch allokiert werden. Dabei werden physikalische Speicherpages, beispielsweise ä 4 KB, reserviert und an eine möglicherweise andere Adresse im jeweiligen virtuellen Adressraum, auch als Anwendungsadressraum bezeichnet, des Prozesses der jeweiligen
Anwendung 112, 114, 118 eingeblendet, wie es nachfolgend anhand von Fig. 3 beschrieben wird.
Fig. 3 zeigt eine schematische Darstellung einer Speicherorganisation in einem Steuergerät 110 gemäß einem Ausführungsbeispiel, etwa dem vorangehend anhand der Figuren 1 und 2 beschriebenen Steuergerät. Gezeigt sind ein physischer Speicher 300 des Steuergeräts 110 sowie beispielhaft ein erster virtueller Speicher 302, der einen virtuellen Prozessbereich der ersten
Anwendung repräsentiert, ein zweiter virtueller Speicher 304, der einen virtuellen Prozessbereich der zweiten Anwendung repräsentiert, sowie ein weiterer virtueller Speicher 306, der der Kommunikationsanwendung, hier dem Process Measurement Daemon, zugeordnet ist. Der erste virtuelle Speicher 302 ist beispielhaft einer Anwendung oder einem Prozess A.elf und der zweite virtuelle Speicher 304 einer Anwendung oder einem Prozess B.elf zugeordnet.
Die vier Speicher 300, 302, 304, 306 sind schematisch je als Memory-Page- Tabelle mit einer Mehrzahl von Zeilen dargestellt, von denen jede einen bestimmten Speicherbereich gleicher Größe mit eindeutiger Adresse, etwa mit einer Hexadezimaladresse von 0x...0000 bis OxF... FFFF, repräsentiert. Von den jeweiligen Anwendungsdaten belegte Speicherbereiche sind mit der Endung „.data“ markiert. Sonstige anwendungsbezogene Daten sind mit der Endung „.text“ markiert.
In den ersten virtuellen Speicher 302 sind die .text- und .data-Dateien der ersten Anwendung eingeblendet. Analog dazu sind in den zweiten virtuellen Speicher 304 die .text- und .data-Dateien der zweiten Anwendung eingeblendet. In den weiteren virtuellen Speicher 306 sind die .data-Dateien sowohl der ersten als auch der zweiten Anwendung, d. h. deren jeweilige Anwendungsdaten, eingeblendet und von dort aus über die Kommunikationsschnittstelle abrufbar.
Die in dem ersten virtuellen Speicher 302 enthaltenen Daten können als
Anwendungsadressraum eines Prozesses der ersten Anwendung aufgefasst werden. Die in dem zweiten virtuellen Speicher 304 enthaltenen Daten können als Anwendungsadressraum eines Prozesses der zweiten Anwendung aufgefasst werden. Die in dem weiteren virtuellen Speicher 306 enthaltenen Daten können als virtueller Adressraum des weiteren virtuellen Speichers 306 aufgefasst werden.
Die Anwendungsdaten werden bereitgestellt, indem die zu messenden Prozesse, hier beispielsweise die Prozesse A.elf und B.elf der ersten und zweiten
Anwendung, beim Start über Interprozesskommunikation der
Kommunikationsanwendung mitteilen, welche Speicherbereiche genau die jeweiligen Anwendungsdaten enthalten. Es werden unter anderem Informationen über physikalische und virtuelle Adresse der entsprechenden Datensektionen übermittelt. Die Kommunikationsanwendung blendet sich die physikalischen Speicherbereiche der zu messenden Anwendungen nun in ihren virtuellen Prozessbereich, hier den weiteren virtuellen Speicher 306, ein. Der Adressraum des weiteren virtuellen Speichers 306 kann somit die auf den physikalischen Speicher 300 bezogenen physikalischen Speicherbereiche der ersten und zweiten Anwendung abbilden. Anschließend kann ein externes Messprogramm, das in einer extern zu dem Steuergerät angeordneten Vorrichtung ausgeführt werden kann, mit der Kommunikationsanwendung kommunizieren und die Anwendungsdaten abfragen, etwa über Ethernet. Dabei benötigt das externe Messprogramm keinerlei Kenntnis des tatsächlich im Steuergerät 110 vor sich gehenden Memory-Mappings, womit sämtliche aus der Mikrocontroller-Welt bekannten Messtechniken ohne Veränderungen weiterverwendet werden können.
Das Mapping zwischen dem physischen Speicher 300 und den virtuellen
Speichern 302, 304, 306 ist mit mehreren Verbindungslinien angedeutet. Dabei repräsentieren die mit dem Bezugszeichen 308 gekennzeichneten
Verbindungslinien ein normales Programm-Mapping mittels MMU, während die mit dem Bezugszeichen 310 gekennzeichneten Verbindungslinien ein Mess- und Kalibrier-Mapping repräsentieren.
Fig. 4 zeigt eine schematische Darstellung eines Mikroprozessors 202 aus Fig. 2 gemäß einem Ausführungsbeispiel. Gemäß diesem Ausführungsbeispiel umfasst der Mikroprozessor 202 eine Ausleseeinheit 400 zum Auslesen der
Anwendungsadressräume sowie eine Einblendeeinheit 402 zum Einblenden des Anwendungsadressraumes in den zugehörigen virtuellen Speicher der
Kommunikationsanwendung. Die Ausleseeinheit 400 und die Einblendeeinheit 402 können in Software als Teile der Kommunikationsanwendung und/oder einer einen genannten Anwendungsadressraum nutzenden Anwendung des
Steuergeräts realisiert sein.
Fig. 5 zeigt ein Ablaufdiagramm eines Verfahrens 500 zum Bereitstellen von Anwendungsdaten gemäß einem Ausführungsbeispiel. Das Verfahren 500 kann beispielsweise von einem Steuergerät, wie es vorangehend anhand der Figuren 1 bis 4 beschrieben ist, ausgeführt werden. Dabei wird in einem ersten Schritt 502 der Anwendungsadressraum, der einen von den Anwendungsdaten belegten physischen Speicherbereich des Steuergeräts repräsentiert, ausgelesen. In einem weiteren Schritt 504 erfolgt das Einblenden des
Anwendungsadressraumes in den virtuellen Speicher der
Kommunikationsanwendung. Damit sind die Anwendungsdaten über den virtuellen Speicher der Kommunikationsanwendung von außen abrufbar. Fig. 6 zeigt ein Ablaufdiagramm eines Verfahrens 600 zum Kalibrieren eines Steuergeräts gemäß einem Ausführungsbeispiel. Das Verfahren 600 kann beispielsweise von einer Auswerteeinrichtung, wie sie vorangehend anhand von Fig. 1 beschrieben ist, ausgeführt werden. Dabei werden in einem Schritt 602 die im virtuellen Speicher der Kommunikationsanwendung referenzierten
Anwendungsdaten durch Ansprechen der Kommunikationsanwendung über die Kommunikationsschnittstelle in die Auswerteeinrichtung eingelesen. In einem weiteren Schritt 604 wird unter Verwendung der Anwendungsdaten eine
Kalibrierinformation, beispielsweise eine A2L- Beschreibungsdatei, zum
Verstellen steuergeräteinterner Parameter generiert. In einem Schritt 606 wird die Kalibrierinformation oder eine davon abgeleitete Information an die
Kommunikationsschnittstelle ausgegeben, um die betreffenden Parameter im Steuergerät in geeigneter Weise zu verstellen.
Fig. 7 zeigt eine schematische Darstellung einer Auswerteeinrichtung 106 gemäß einem Ausführungsbeispiel. Die Auswerteeinrichtung 106 umfasst eine
Generiereinheit 700, die ausgebildet ist, um unter Verwendung zumindest eines ersten Datenpakets 702, das die vom Steuergerät bereitgestellten
Anwendungsdaten repräsentiert, zumindest ein zweites Datenpaket 704 zu generieren, das die Kalibrierinformation zum Kalibrieren des Steuergeräts repräsentiert. Eine Ausgabeeinheit 706 ist ausgebildet, um das zweite
Datenpaket 704 oder ein darauf basierendes Datenpaket an die
Kommunikationsschnittstelle auszugeben.
Umfasst ein Ausführungsbeispiel eine„und/oder“-Verknüpfung zwischen einem ersten Merkmal und einem zweiten Merkmal, so ist dies so zu lesen, dass das Ausführungsbeispiel gemäß einer Ausführungsform sowohl das erste Merkmal als auch das zweite Merkmal und gemäß einer weiteren Ausführungsform entweder nur das erste Merkmal oder nur das zweite Merkmal aufweist.
Next Patent: METHOD FOR PRODUCING A COVERED STEERING WHEEL FOR A VEHICLE