-
Es wird ein Verfahren zum Betreiben einer Steuervorrichtung für ein Fahrzeug angegeben. Es wird ferner ein Diagnosesystem angegeben.
-
Die Aufgabe, die der Erfindung zugrunde liegt, ist es, ein Verfahren zum Betreiben einer Steuervorrichtung für ein Fahrzeug sowie ein korrespondierendes Diagnosesystem zu schaffen, das eine zuverlässige und effiziente Funktionsvalidierung der Steuervorrichtung ermöglicht.
-
Die Aufgabe wird gelöst durch die unabhängigen Patentansprüche. Vorteilhafte Ausgestaltungen sind in den Unteransprüchen gekennzeichnet.
-
Gemäß einem ersten Aspekt betrifft die Erfindung ein Verfahren zum Betreiben einer Steuervorrichtung für ein Fahrzeug. Die Steuervorrichtung umfasst einen globalen Speicher, einen Datenkonsistenzpuffer und einen Ausgabepuffer und ist ausgebildet, mehrere Rechenprozesse zeitgleich und/oder kooperativ und/oder präemptiv abzuarbeiten.
-
Bei dem Verfahren wird eine Ausgabeabfolge bereitgestellt, die repräsentativ ist für mögliche Rechenprozessausgabezeitpunkte von in den Rechenprozessen verwendeten Variablen.
-
Des Weiteren wird ein erstes Auswahlsignal bereitgestellt, das repräsentativ ist für wenigstens eine in dem Ausgabepuffer bereitzustellende Variable der in den Rechenprozessen verwendeten Variablen. Es wird ferner ein zweites Auswahlsignal bereitgestellt, das repräsentativ ist für wenigstens einen gewünschten Rechenprozessausgabezeitpunkt der jeweiligen bereitzustellenden Variable.
-
Abhängig von dem ersten Auswahlsignal und dem zweiten Auswahlsignal wird ein Rechenprozessausgabezeitpunkt der jeweiligen bereitzustellenden Variable aus der Ausgabeabfolge ausgewählt. Abhängig von dem ausgewählten Rechenprozessausgabezeitpunkt wird die jeweilige bereitzustellende Variable während einer vorgegebenen Ausgabezeitdauer aus dem Datenkonsistenzpuffer oder dem globalen Speicher in den Ausgabepuffer kopiert.
-
Das Verfahren ermöglicht ein automatisiertes Auslesen der jeweiligen bereitzustellenden Variable, wobei eine Datenkonsistenz bei Betreiben der Steuervorrichtung gewährleistet werden kann. Insbesondere wird in diesem Zusammenhang dazu beigetragen, dass ein Wert der jeweiligen bereitzustellenden Variable mit einem Wert übereinstimmt, der bei der Abarbeitung des jeweiligen Rechenprozesses verwendet wird bzw. wurde. In vorteilhafter Weise wird so zu einer zuverlässigen Funktionsvalidierung der Steuervorrichtung beigetragen.
-
Bei der Steuervorrichtung kann es sich insbesondere um einen Mehrkernprozessor handeln, der ausgebildet ist mehrere Rechenprozesse gleichzeitig abzuarbeiten. Die Rechenprozesse umfassen jeweils wenigstens eine ausführbare Funktion (engl. „Runable“), die jeweils Eingangs-, Zwischen- und Ausgangswerte aufweisen können. Die Eingangs-, Zwischen und Ausgangswerte sind in einem jeweiligen Speicher der Steuervorrichtung, insbesondere dem globalen Speicher und/oder dem Datenkonsistenzpuffer gespeichert und werden hier und im Folgenden als Variablen bezeichnet. Die Variablen werden in anderen Worten bei Abarbeitung der Rechenprozesse verwendet.
-
Bei dem globalen Speicher handelt es sich beispielsweise um einen Speicherbereich der Steuervorrichtung, der von allen Rechenprozessen bzw. ausführbaren Funktionen ausgelesen und/oder beschrieben werden kann. Bei dem Datenkonsistenzpuffer handelt es sich beispielsweise um einen Speicherbereich der Steuervorrichtung, der einzelne Pufferabschnitte umfasst, die jeweils einer Variable eines Rechenprozesses oder Funktion zugewiesen werden können, und lediglich zur Laufzeit des jeweiligen Rechenprozesses oder der jeweiligen Funktion ausgelesen und/oder beschrieben werden kann. Nach Abarbeitung des jeweiligen Rechenprozesses oder der jeweiligen Funktion kann dieser Pufferabschnitt beispielsweise freigegeben werden. Bei dem Ausgabepuffer handelt es sich beispielsweise um einen Speicherbereich der Steuervorrichtung, der beispielsweise zyklisch über eine Kommunikationsschnittstelle der Steuervorrichtung ausgegeben und/oder beispielhaft durch eine Diagnoseeinheit ausgelesen werden kann. Beispielsweise umfasst die Diagnoseeinheit in diesem Zusammenhang eine Anzeigevorrichtung, über die die auszugebende Variable einem Anwender angezeigt werden kann.
-
In vorteilhafter Weise kann einem Anwender die auszugebende Variable dabei automatisiert, also insbesondere ohne manuelles Setzen von Haltepunkten zuverlässig angezeigt werden, so dass zu einer besonders einfachen und effizienten Funktionsvalidierung der Steuervorrichtung beigetragen wird.
-
Bei einer Konfigurationszeit des Verfahrens, also beispielsweise bei einem Kompilationsvorgang eines Programms zur Durchführung des Verfahrens, können die möglichen Rechenprozessausgabezeitpunkte von in den Rechenprozessen verwenden Variablen ermittelt werden. Insbesondere können diese dann zur Laufzeit des Programms als Ausgabeabfolge bereitgestellt werden.
-
Zu einer Laufzeit des Programms können ferner das erste Auswahlsignal sowie das zweite Auswahlsignal bereitgestellt werden. Beispielsweise kann die Steuervorrichtung hierzu signaltechnisch mit einer Diagnoseeinheit gekoppelt sein, über die ein Anwender eine auszugebende Variable sowie den gewünschten Rechenprozessausgabezeitpunkt der auszugebenden bzw. bereitzustellenden Variable festlegt.
-
Diese bereitzustellende Variable wird dann während der vorgegebenen Ausgabezeitdauer in den Ausgabepuffer der Steuervorrichtung kopiert. Die vorgegebene Ausgabezeitdauer bezeichnet dabei eine Zeitdauer, in der sowohl das Kopieren in den Ausgabepuffer durchgeführt wird, als auch eine Pufferkopierfunktion (sogenanntes „Fill/Flush“) durchgeführt wird, also eine Kopie der jeweiligen Variable von dem globalen Speicher in den Datenkonsistenzpuffer oder umgekehrt.
-
Das Kopieren der Variable in den Datenkonsistenzpuffer dient dabei insbesondere einer Datenkonsistenz im Falle einer Unterbrechung des Rechenprozesses oder einer gleichzeitigen Verwendung der Variable durch einen weiteren Rechenprozess. Insbesondere kann dies der Fall bei mehreren Produzenten sein, also im Falle, dass mehrere Rechenprozesse bzw. Funktionen innerhalb des Rechenprozesses den Wert der Variable verändern.
-
Der Rechenprozessausgabezeitpunkt der jeweiligen bereitzustellenden Variable kann auch als sogenannter „Alternative Sample Point“ bezeichnet werden.
-
In einer vorteilhaften Ausgestaltung gemäß dem ersten Aspekt wird ein durch die vorgegebene Ausgabezeitdauer umfasster Abschnitt des jeweiligen Rechenprozesses unterbrechungsfrei abgearbeitet. Dies leistet einen zusätzlichen Beitrag, dass der Wert der jeweiligen bereitzustellenden Variable mit dem Wert übereinstimmt, der bei der Abarbeitung des jeweiligen Rechenprozesses verwendet wird bzw. wurde. Das Programm zur Durchführung des Verfahrens kann in diesem Zusammenhang eine geschützte Ausgabezeitdauer umfassen (engl. „Exclusive Area“).
-
In einer weiteren vorteilhaften Ausgestaltung gemäß dem ersten Aspekt wird während der vorgegebenen Ausgabezeitdauer die jeweilige bereitzustellende Variable aus dem globalen Speicher in den Ausgabepuffer und anschließend in den Datenkonsistenzpuffer kopiert.
-
In vorteilhafter Weise kann die bereitzustellende Variable somit vor dem Kopieren in den Datenkonsistenzpuffer bereitgestellt werden, so dass ein Rechenprozess, welcher den Wert dieser Variable verwendet und gegebenenfalls verändert, keinen Einfluss auf den Wert der bereitzustellenden Variable nimmt. Insbesondere wird so dazu beigetragen, dass der Wert der bereitzustellenden Variable mit dem Wert übereinstimmt, der bei der Abarbeitung des jeweiligen Rechenprozesses verwendet wird. Die Variable stellt in diesem Zusammenhang insbesondere einen Eingangswert des jeweiligen Rechenprozesses bzw. der in dem Rechenprozess ausgeführten Funktion dar. Das Kopieren der jeweiligen Variable in den Datenkonsistenzpuffer kann auch als sogenannte „Fill-Routine“ bezeichnet werden.
-
In einer weiteren vorteilhaften Ausgestaltung gemäß dem ersten Aspekt wird die jeweilige bereitzustellende Variable direkt anschließend an das Kopieren in den Ausgabepuffer in den Datenkonsistenzpuffer kopiert.
-
In vorteilhafter Weise kann die vorgegebene Ausgabezeitdauer so besonders kurz gehalten werden. Dies ermöglicht einen sicheren und effizienten Betrieb der Steuervorrichtung, insbesondere im Falle, dass die vorgegebene Ausgabezeitdauer unterbrechungsfrei abgearbeitet wird.
-
In einer weiteren vorteilhaften Ausgestaltung gemäß dem ersten Aspekt wird während der vorgegebenen Ausgabezeitdauer die jeweilige bereitzustellende Variable aus dem Datenkonsistenzpuffer in den globalen Speicher und anschließend in den Ausgabepuffer kopiert.
-
In vorteilhafter Weise kann die bereitzustellende Variable somit nach dem Kopieren in den globalen Speicher bereitgestellt werden, so dass ein Einfluss auf den Wert der bereitzustellenden Variable berücksichtigt werden kann, beispielsweise durch einen Rechenprozess, welcher den Wert dieser Variable verwendet und gegebenenfalls verändert. Insbesondere wird so dazu beigetragen, dass der Wert der bereitzustellenden Variable mit dem Wert übereinstimmt, der bei der Abarbeitung des jeweiligen Rechenprozesses verwendet wurde. Die Variable stellt in diesem Zusammenhang insbesondere einen Ausgangswert des jeweiligen Rechenprozesses bzw. der in dem Rechenprozess ausgeführten Funktion dar. Das Kopieren der jeweiligen Variable in den globalen Speicher kann auch als sogenannte „Flush-Routine“ bezeichnet werden.
-
In einer weiteren vorteilhaften Ausgestaltung gemäß dem ersten Aspekt wird die jeweilige bereitzustellende Variable direkt anschließend an das Kopieren in den globalen Speicher in den Ausgabepuffer kopiert.
-
In vorteilhafter Weise kann die vorgegebene Ausgabezeitdauer so besonders kurz gehalten werden. Dies ermöglicht einen sicheren und effizienten Betrieb der Steuervorrichtung, insbesondere im Falle, dass die vorgegebene Ausgabezeitdauer unterbrechungsfrei abgearbeitet wird.
-
Gemäß einem zweiten Aspekt zeichnet sich die Erfindung aus durch ein Diagnosesystem. Das Diagnosesystem umfasst eine Steuervorrichtung und eine Diagnoseeinheit, die signaltechnisch mit der Steuervorrichtung gekoppelt ist.
-
Die Diagnoseeinheit ist ausgebildet, der Steuervorrichtung ein erstes Auswahlsignal bereitzustellen. Das erste Auswahlsignal ist repräsentativ für wenigstens eine bereitzustellende Variable, die bei Betreiben der Steuervorrichtung verwendet wird.
-
Die Diagnoseeinheit ist ferner ausgebildet, der Steuervorrichtung ein zweites Auswahlsignal bereitzustellen. Das zweite Auswahlsignal ist repräsentativ für wenigstens einen gewünschten Rechenprozessausgabezeitpunkt der jeweiligen Variable. Die Diagnoseeinheit ist ferner ausgebildet, in einem Ausgabepuffer der Steuervorrichtung gespeicherte Daten auszulesen. In vorteilhafter Weise ermöglicht dies eine einfache Funktionsvalidierung der Steuervorrichtung.
-
Die Diagnoseeinheit kann insbesondere mit einer Mess-, Kalibrier- und Diagnosesoftware wie INCA (Integrated Calibration and Application Tool) betrieben werden. In diesem Zusammenhang kann das Diagnosesystem auch als Messsystem bezeichnet werden.
-
In einer vorteilhaften Ausgestaltung gemäß dem zweiten Aspekt ist die Steuervorrichtung ausgebildet, ein Verfahren gemäß dem ersten Aspekt durchzuführen.
-
Ausführungsbeispiele sind im Folgenden anhand der schematischen Zeichnungen näher erläutert.
-
Es zeigen:
-
1 ein schematisch dargestelltes Diagnosesystem,
-
2 eine Ablaufsequenz bei einem Betreiben einer Steuervorrichtung gemäß 1, und
-
3 ein Ablaufdiagramm zum Betreiben der Steuervorrichtung gemäß 1.
-
Elemente gleicher Konstruktion oder Funktion sind figurenübergreifend mit den gleichen Bezugszeichen versehen.
-
1 zeigt Diagnosesystem 10 für eine Steuervorrichtung 1 für ein Fahrzeug, umfassend eine Diagnoseeinheit 3, welche signaltechnisch mit der Steuervorrichtung 1 gekoppelt ist.
-
Die Steuervorrichtung 1 ist als Mehrkernprozessor ausgebildet, der mehrere Kerne C1, C2 umfasst (vergleiche 2). Bei den Kernen C1, C2 handelt es sich insbesondere um Rechenkerne der Steuervorrichtung 1. In diesem Ausführungsbeispiel umfasst die Steuervorrichtung 1 zwei Kerne C1, C2. In anderen Ausführungsbeispielen kann eine Anzahl der Kerne C1, C2 der Steuervorrichtung 1 hiervon abweichen, und diese insbesondere übersteigen.
-
Die Steuervorrichtung 1 ist ausgebildet, mehrere Rechenprozesse T präemptiv und/oder kooperativ und/oder gleichzeitig abzuarbeiten. In 1 ist ferner ein solcher prinzipieller Ablauf eines Rechenprozesses T dargestellt. Die Rechenprozesse T umfassen jeweils wenigstens eine ausführbare Funktion R1, R2, R3, R4, R5, R6, die jeweils Eingangs-, Zwischen- und Ausgangswerte aufweisen können. Gegebenenfalls werden, wie in diesem Ausführungsbeispiel, Daten für Software Algorithmen, beispielsweise zum Betreiben des Fahrzeugs, in Pufferspeicher kopiert, um eine Datenkonsistenz sicher zu stellen. Der Steuervorrichtung 1 ist in diesem Zusammenhang ein Datenkonsistenzpuffer D zugeordnet. Bei dem Datenkonsistenzpuffer D handelt es sich insbesondere um einen rechenprozessindividuellen Pufferspeicher (sogenannter „Task individual buffer“). Ferner ist der Steuervorrichtung 1 ein globaler Speicher G zugeordnet. Bei dem globalen Speicher G handelt es sich insbesondere um sogenannten „Global Data RAM“.
-
Um zu verhindern, dass eine Übermittlung der Daten an die Diagnoseeinheit 3 am Ende eines Rechenprozesses T nicht den Wert anzeigt, den der Software Algorithmus als Eingangswert gesehen hat, bzw. dass ein Ausgabewert im Falle von mehreren Produzenten von dem Wert am Ende der relevanten Berechnung abweicht, könnte beispielsweise durch geeignetes Setzen von Haltepunkten am Softwaretestplatz der Wert der Variable zum richtigen Zeitpunkt ermittelt werden. Mangelns realistischer Stimulation kann es jedoch dazu kommen, dass der Betriebspunkt am Softwaretestplatz nicht eingestellt werden kann.
-
In diesem Ausführungsbeispiel ist die Steuergerätesoftware daher so instrumentiert, dass zu den in Frage kommenden Zeitpunkten eine Übertragung der relevanten globalen Daten an die Diagnoseeinheit 3 erfolgen kann. Zwischen den einzelnen ausführbaren Funktionen R1...R6 können Pufferkopierfunktionen (Fill/Flush) aufgerufen werden. Bei einer Fill-Routine L handelt es sich um einen Kopiervorgang, bei dem eine Variable aus dem globalen Speicher G ausgelesen und in den Datenkonsistenzpuffer D kopiert wird. Bei einer Flush-Routine S handelt es sich um einen Kopiervorgang, bei dem eine Variable aus dem Datenkonsistenzpuffer D in den globalen Speicher G geschrieben wird. Ein derartiges Vorgehen kann auch als Datenkonsistenzpufferverfahren bezeichnet werden.
-
2 zeigt eine beispielhafte Ablaufsequenz über die Zeit t bei Betreiben der Steuervorrichtung 1 gemäß 1. Auf den Kernen C1, C2 der Steuervorrichtung 1 wird jeweils ein Rechenprozess T1, T2 ausgeführt. In dem globalen Speicher G ist einer Variable „var“ beispielsweise der Wert „2“ zugeordnet. Dieser Wert wird von der ausführbaren Funktion R1 des Rechenprozesses T1 verwendet. In diesem Zusammenhang wird der Wert „2“ durch die Fill-Routine L1 in einen Datenkonsistenzpuffer D1 kopiert, und als Eingangswert E1 der ausführbaren Funktion R1 genutzt. Im Falle, dass es wichtig ist den Wert der Variable “var”, der dem Algorithmus in R1 übergeben wurde, beispielsweise durch die Diagnoseeinheit 3 zu sehen, muss eine Ausgabe mit Rechenprozessausgabezeitpunkt M1 (sogenannter „Alternative Sample Point“) genau vor dem Kopieren in den Datenkonsistenzpuffer D1 erfolgen. Der Rechenprozessausgabezeitpunkt M1 übergibt den Wert „2“, der durch die ausführbare Funktion R1 genutzt wird.
-
Des Weiteren wird der Wert „2“ durch die Fill-Routine L2 in einen Datenkonsistenzpuffer D2 kopiert, und als Eingangswert E2 der ausführbaren Funktion R2 genutzt. Die ausführbare Funktion R2 gibt als Ausgabewert A2 den Wert „3“ aus und schreibt diesen in den Datenkonsistenzpuffer D2. Anschließend wird der Wert „3“ durch die Flush-Routine S2 in den globalen Speicher G kopiert. Ein sogenanntes „End of cylce“ Ereignis M2 übergibt den Wert „3“, der durch die ausführbare Funktion R2 erneuert wurde.
-
Die Steuervorrichtung 1 umfasst insbesondere einen Daten- und Programmspeicher, in dem Schritte des Verfahrens als Programm gespeichert sind, wie es im Folgenden anhand des Ablaufdiagramms der 3 näher erläutert ist.
-
Das Programm wird in einem Schritt P1 gestartet. Beispielsweise wird in dem Schritt P1 eine Ausgabeabfolge bereitgestellt, die repräsentativ ist für mögliche Rechenprozessausgabezeitpunkte von in den Rechenprozessen T verwendeten Variablen. Die relevanten Zeitpunkte sind durch das Datenkonsistenzpufferverfahren vorgegeben. Ferner wird in dem Schritt P1 insbesondere ein erstes Auswahlsignal, das repräsentativ ist für eine in dem Ausgabepuffer bereitzustellende Variable, und ein zweites Auswahlsignal bereitgestellt, das repräsentativ ist für einen gewünschten Rechenprozessausgabezeitpunkt der Variable. Die Auswahl des Rechenprozessausgabezeitpunktes („Alternative Sample Point“) und der Daten erfolgt durch das Diagnosesystem 10 vom Anwender. Das Programm wird anschließend in einem Schritt P3 fortgesetzt.
-
In dem Schritt P3 werden abhängig von dem ersten Auswahlsignal und dem zweiten Auswahlsignal ein Rechenprozessausgabezeitpunkt der jeweiligen bereitzustellenden Variable aus der Ausgabeabfolge, also den durch das Datenkonsistenzpufferverfahren vorgegebenen Zeitpunkten ausgewählt. Das Programm wird anschließend in einem Schritt P5 fortgesetzt.
-
In dem Schritt P5 wird eine Pufferkopierfunktion aufgerufen. So werden vor der Ausführung einer Software-Funktion die Daten in einen Datenkonsistenzpuffer D kopiert. Das Kopieren erfolgt beispielsweise in einer vor Unterbrechung geschützten vorgegebenen Ausgabezeitdauer, sogenannten „Exclusive Areas“ der Programmausführung. Abhängig von dem ausgewählten Rechenprozessausgabezeitpunkt werden die durch den Anwender ausgewählten, zur Ausgabe bereitzustellenden Variablen während der vorgegebenen Ausgabezeitdauer in einen Ausgabepuffer kopiert und durch die Diagnoseeinheit 3 ausgelesen.
-
Ein durch die vorgegebene Ausgabezeitdauer umfasster Abschnitt des jeweiligen Rechenprozesses wird dabei unterbrechungsfrei abgearbeitet. Jede dieser Exclusive Areas wird mit einer Instrumentierung versehen. Die Instrumentierung befindet sich für Abschnitte, die das Kopieren in den Datenkonsistenzpuffer D durchführen am Beginn. Für Abschnitte, die das Kopieren aus dem Datenkonsistenzpuffer D durchführen am Ende. Die Instrumentierung sowie die Datendefinition zur Auswahl der sogenannten „Samplepoints“ erfolgt abgestimmt auf das Pufferlayout toolbasiert.
-
In vorteilhafter Weise kann die Lage des Rechenprozessausgabezeitpunktes an das Problem angepasst werden. Durch die toolgestützte Implementierung ist dieser Zeitpunkt einfach durch den Anwender auswählbar. Die Instrumentierung verbraucht nur signifikant Laufzeit wenn der Anwender eine Rechenprozessausgabe anstößt und kann deshalb in der Software der Steuervorrichtung 1 verbleiben. Die „Alternative Sample Point“ Methode erweitert die schon bestehenden Diagnosemöglichkeiten, ohne das Diagnoseverfahren zu ändern und ermöglicht so eine detaillierte Analyse des Datenverhaltens im Fahrzeug unter realen Betriebsbedingungen. Insbesondere kann so eine besonders zuverlässige und effiziente Funktionsvalidierung der Steuervorrichtung 1 durchgeführt werden.