-
Technisches Gebiet
-
Die vorliegende Erfindung betrifft eine Simulationsvorrichtung mit einer Funktion zum Anpassen eines Ausführungszeitablaufs, ein Simulationsverfahren und eine elektronische Steuereinheitsvorrichtung, beispielsweise eine von einem Entwickler während der Entwicklung von Software einer elektronischen Steuereinheit eines Automobils, eines Simulationsverfahrens und einer elektronischen Steuereinheitsvorrichtung verwendete Simulationsvorrichtung.
-
Bisheriger Stand der Technik
-
In der Entwicklung von Software für elektronische Steuereinheiten gibt es wenige Fälle, in denen ein Hardware-Prototyp in einer frühen Phase der Entwicklung erstellt wird. Daher wird im Allgemeinen nach dem Design der Software auf einem Personalcomputer (PC) eine Betriebsprüfung in einer PC-Umgebung (Simulationsumgebung) durchgeführt, die in der PC-Umgebung geprüfte Software wird auf eine aktuelle Umgebung der elektronischen Steuereinheit portiert und anschließend wird erneut eine Betriebsprüfung durchgeführt.
-
Ferner ist, selbst nachdem ein Hardware-Prototyp erstellt ist, die Zahl der einem Softwareentwickler zugewiesenen Hardware-Prototypen meist klein. Beispielsweise kann ein Hardware-Prototyp von zehn Softwareentwicklern geteilt werden.
-
In solch einem Fall wird eine Betriebsprüfung von Software (SW) oder dergleichen in der aktuellen Umgebung der elektronischen Steuereinheit, die ein Hardware-Prototyp ist, und der PC-Umgebung durchgeführt.
-
In solch einem Entwicklungsablauf unterscheidet sich aufgrund eines Unterschieds in der Hardware-(HW-)Leistung zwischen dem PC und der elektronischen Steuereinheit ein Betriebsergebnis der Anwendungssoftware häufig zwischen der PC-Umgebung und der aktuellen Umgebung der elektronischen Steuereinheit.
-
Aufgrund eines Unterschieds zwischen dem Ausführungszeitablaufs der Anwendungssoftware zwischen der PC-Umgebung und der aktuellen Umgebung der elektronischen Steuereinheit tritt eine Fehlfunktion auf, die nur in einer der Umgebungen auftritt.
-
Zusätzlich zum Unterschied zwischen der PC-Umgebung und der aktuellen Umgebung der elektronischen Steuereinheit unterscheidet sich häufig die Spezifikation des in der Entwicklung verwendeten PCs zwischen Entwicklern, was zu einer Situation führt, die nur in einer aktuellen elektronischen Steuereinheit und einem spezifischen PC auftritt.
-
Zum Verbessern der Qualität von Software im vorgelagerten Prozess der Softwareentwicklung, in der ein PC-Simulator verwendet wird, muss ein Verarbeitungszeitablauf in der PC-Simulationsumgebung so angepasst werden, dass er näher an einem aktuellen Verarbeitungszeitablauf der elektronischen Steuereinheit für jeden verwendeten PC ist.
-
Diesbezüglich stellt Anspruch 2 von PTL 1 fest, dass „eine Takt-Interrupt-Simulation, in der nur eine Zeit, für die eine Simulationsentwicklungsumgebung aktuell eine Mikroprozessoreinheit eines Entwicklungscomputers verwendet, gemessen wird, ausgeführt werden kann“.
-
Liste der Anführungen
-
Patentliteratur
-
-
Zusammenfassung der Erfindung
-
Technische Aufgabe
-
In PTL 1 kann ein Verarbeitungs-Startzeitablauf durch den Takt-Interrupt angepasst werden; aber folgende Verarbeitungszeitablauf können nicht angepasst werden. Somit tritt ein Unterschied aufgrund der HW-Leistung auf.
-
Wenn beispielsweise mehrere Anwendungen auf einem Multitasking-Betriebssystem betrieben werden, kann sich ein Aktualisierungszeitablauf einer zwischen Aufgaben geteilten Variable zwischen der Simulationsumgebung und der aktuellen Umgebung der elektronischen Steuereinheit unterscheiden. Somit kann sich ein Zeitablauf der Bezugnahme auf die Variable ändern, was zu einem Unterschied im Betrieb der Anwendungssoftware führen kann.
-
Auch wenn ein Mechanismus zur Zeitablaufanpassung vorhanden ist, um die Reproduzierbarkeit im PC-Simulator zu verbessern, muss, da ein Unterschied in der Leistung (Taktfrequenz oder dergleichen) zwischen von Entwicklern verwendeten PCs vorhanden ist, ein Parameter für die Zeitablaufanpassung einzeln für jeden PC angepasst werden.
-
Daher wird ein CPU-Taktverhältnis als Information zum Bestimmen des Parameters für die Zeitablaufanpassung verwendet; es ist aber schwierig, einen effektiven Parameter nur mit einer festen Formel aufgrund eines Faktors wie eines Unterschied in der externen Speicherzugriffsleistung oder eines Einflusses eines anderen auf den PC laufenden Prozesses zu berechnen.
-
Daher besteht eine Aufgabe der vorliegenden Erfindung im Bereitstellen einer Simulationsvorrichtung, die einen Ausführungszeitablauf in einer PC-Simulationsumgebung näher zu einem Ausführungszeitablauf in einer betreffenden elektronischen Steuereinheit hin durch Verwenden eines einfachen Verfahrens, eines Simulationsverfahrens und einer elektronischen Steuereinheitsvorrichtung anpassen kann.
-
Technische Lösung
-
Vor diesem Hintergrund umfasst gemäß der vorliegenden Erfindung eine Simulationsvorrichtung: einen ersten Computer umfassend eine erste Leistungsmessfunktion, die einen ersten Verarbeitungszeitablauf ermittelt, wenn der erste Computer eine Anwendungssoftware ausführt, und eine Zeitablauf-Anpassungsfunktion, die eine Zeitablaufanpassung einer Ausführungszeit der Anwendungssoftware im ersten Computer auf der Basis eines Zeitunterschieds zwischen dem ersten Verarbeitungszeitablauf und einem zweiten Verarbeitungszeitablauf, durchführt, wenn ein zweiter Computer die Anwendungssoftware ausführt.
-
Gemäß der vorliegenden Erfindung umfasst eine Simulationsvorrichtung: einen ersten Computer umfassend eine erste Leistungsmessfunktion, die einen ersten Verarbeitungszeitablauf ermittelt, wenn der erste Computer eine Anwendungssoftware ausführt, und eine Zeitablauf-Anpassungsfunktion, die eine Zeitablaufanpassung einer Ausführungszeit der Anwendungssoftware im ersten Computer auf der Basis eines Zeitunterschieds zwischen dem ersten Verarbeitungszeitablauf und einem zweiten Verarbeitungszeitablauf, durchführt, wenn ein zweiter Computer die Anwendungssoftware ausführt; den zweiten Computer umfassend eine zweite Leistungsmessfunktion, die als den zweiten Verarbeitungszeitablauf einen Verarbeitungszeitablauf ermittelt, wenn die Anwendungssoftware ausgeführt wird; und eine Kommunikationsvorrichtung, über die der erste Computer und der zweite Computer miteinander verbunden sind.
-
Gemäß der vorliegenden Erfindung umfasst eine elektronische Steuereinheitsvorrichtung: eine Leistungsmessfunktion zum Ermitteln eines zweiten Verarbeitungszeitablaufs, wenn die Anwendungssoftware ausgeführt wird; eine Messergebnis-Speichereinheit, die den zweiten Verarbeitungszeitablauf speichert; und eine Kommunikationsvorrichtung zum Senden des zweiten Verarbeitungszeitablaufs nach außen.
-
Gemäß der vorliegenden Erfindung umfasst ein Simulationsverfahren: Durchführen einer Zeitablaufanpassung einer Ausführungszeit einer Anwendungssoftware in einem ersten Computer auf der Basis eines Zeitunterschieds zwischen einem ersten Verarbeitungszeitablauf, wenn der erste Computer die Anwendungssoftware ausführt, und einem zweiten Verarbeitungszeitablauf, wenn ein zweiter Computer die Anwendungssoftware ausführt.
-
Vorteilhafte Wirkungen der Erfindung
-
Gemäß der vorliegenden Erfindung kann der Ausführungszeitablauf in der PC-Simulationsumgebung so angepasst werden, dass er näher am Ausführungszeitablauf in der betreffenden elektronischen Steuereinheit ist. Da die Zeitablaufanpassung für jeden PC durchgeführt werden kann, kann die Verzögerungsmenge für jede PC-Umgebung eines Entwicklers angepasst werden.
-
Ferner kann gemäß den Ausführungsformen der vorliegenden Erfindung Software in einer Umgebung geprüft werden, in der ein Verarbeitungszeitablauf, der nahe einem Verarbeitungszeitablauf in einer betreffenden elektronischen Steuereinheit ist, auch dann ausgeführt werden, wenn die Zahl von betreffenden Prototypen der elektronischen Steuereinheit während der Entwicklung klein ist, und somit kann die Gewährleistung der Qualität von Software im vorgelagerten Prozess unterstützt werden.
-
Figurenliste
-
- [1] 1 zeigt ein Diagramm zur Darstellung eines Beispiels von Konfigurationen einer aktuellen Umgebung einer elektronischen Steuereinheit und einer Personalcomputer-(PC-)Umgebung in einer Simulationsvorrichtung der vorliegenden Erfindung.
- [2] 2 zeigt ein Diagramm zur Darstellung einer Hardwarekonfiguration und von Hauptverarbeitungsfunktionen eines PCs, der die Simulationsvorrichtung, die Hardwarekonfiguration und Hauptverarbeitungsfunktionen ausführt, die insbesondere mit einer Verzögerungseingabefunktion verknüpft sind.
- [3] 3 zeigt ein Diagramm zur Darstellung eines Erzeugungsprozesses, in dem zu auf eine elektronische Steuereinheitsvorrichtung zu portierende Software durch Verwenden der Simulationsvorrichtung erzeugt wird.
- [4] 4 zeigt ein Diagramm zur Darstellung einer Verarbeitung in Bezug auf eine erste Stufe der Anwendungsentwicklung gemäß Ausführungsform 2 der vorliegenden Erfindung.
- [5] 5 zeigt ein Diagramm zur Darstellung eines Beispiels eines in der vorliegenden Erfindung verwendeten Programms in der Programmiersprache C.
- [6] 6 zeigt ein Diagramm zur Darstellung eines Tabellenfestlegungsbeispiels einer Verzögerungsparameterdatei Fi3.
- [7] 7 zeigt ein Diagramm zur Darstellung eines Beispiels eines Ausführungszeitablaufs in der betreffenden elektronischen Steuereinheit und von Ausführungszeitablaufen in einem Simulator, wenn eine Zeitablaufanpassung nicht durchgeführt wird und wenn die Zeitablaufanpassung durchgeführt wird.
- [8] 8 zeigt ein Diagramm zur Darstellung eines Beispiels eines Zeitablaufs, wenn eine Verarbeitungsgeschwindigkeit der elektronischen Steuereinheit höher ist als eine Verarbeitungsgeschwindigkeit des PCs.
- [9] 9 zeigt ein Diagramm zur Darstellung eines Verhältnisses der Zahl von CPU-Takten der betreffenden elektronischen Steuereinheit zur Zahl von Takten des PCs, auf dem der Simulator betrieben wird.
- [10] 10 zeigt ein Diagramm zur Darstellung eines Verarbeitungszeitablaufs bei der Ausführung in einer betreffenden elektronischen Steuereinheit und eines Verarbeitungszeitablaufs bei der Ausführung im PC-Simulator.
- [11] 11 zeigt ein Diagramm zur Darstellung von Aufgabenprioritäten von Aufgabe A und B.
- [12] 12 zeigt ein Diagramm zur Darstellung des Konzepts der Zeitablaufanpassung bei einer Interrupt-Verarbeitung im Multitasking.
- [13] 13 zeigt ein Diagramm zur Darstellung eines Verarbeitungsablaufs einer Verzögerungsmengenbestimmung und einer Anpassungsfunktion des PCs, der die Simulationsvorrichtung ausführt, und eines betreffenden Umgebungscomputers S.
- [14] 14 zeigt ein Diagramm zur Darstellung des Konzepts der Verzögerungsmengenbestimmung und der Anpassungsfunktion.
- [15] 15 zeigt ein Diagramm zur Darstellung eines Beispiels eines in der vorliegenden Erfindung verwendeten Programms in der Programmiersprache C.
- [16] 16 zeigt ein schematisches Fließbild zur Darstellung von Inhalten der Verarbeitung im PC und Verarbeitung im betreffenden Umgebungscomputer S, die zur Verzögerungsmengenbestimmung und Zeitablaufanpassung ausgeführt werden.
- [17] 17 zeigt ein Diagramm zur Darstellung eines Beispiels von Konfigurationen einer Messergebnisdatei Fi1 einer elektronischen Steuereinheit und einer PC-Messergebnisdatei Fi2.
- [18] 18 zeigt ein Diagramm zur Darstellung einer Zeitbeziehung vor und nach einer Zeitablaufanpassung.
- [19] 19 zeigt ein Diagramm zur Darstellung eines spezifischen Verarbeitungsablaufs der Aktualisierung der Verzögerungsparameterdatei Fi3.
- [20] 20 zeigt ein Diagramm zur Darstellung eines Beispiels einer Verzögerungsparametertabelle in einem Ausgangszustand vor dem Leistungsvergleich.
- [21] 21 zeigt ein Diagramm zur Darstellung einer Verzögerungsparametertabelle, in der eine Verzögerungsmenge für jede untergeordnete Funktion in der Verzögerungsparametertabelle im Ausgangszustand von 20 widergespiegelt wird.
- [22] 22 zeigt ein Diagramm zur Darstellung eines Beispiels von Ausführungszeitablaufen, wenn ein Kontextwechsel im Multitasking erfolgt.
- [23] 23 zeigt ein Diagramm zur Darstellung eines Beispiels einer Startzeit und einer Endzeit, gespeichert in jeder Aufgabe.
-
Beschreibung von Ausführungsformen
-
Nachfolgend ist eine Simulationsvorrichtung gemäß der vorliegenden Erfindung ausführlich in Bezug auf die Zeichnungen beschrieben. Die Ausführungsformen der vorliegenden Erfindung sind vielfältig. Die Ausführungsform 1 beschreibt im Wesentlichen und insbesondere eine Hardwarekonfiguration der Simulationsvorrichtung, die Ausführungsformen 2 bis 5 beschreiben, dass eine Verzögerungsverarbeitung zur Anpassung eines Ausführungszeitablauf in einer Personalcomputer-(PC-)Simulationsumgebung näher an einem Ausführungszeitablauf in einer betreffenden elektronischen Steuereinheit ausgeführt wird, und Ausführungsform 6 und folgende Ausführungsformen beschreiben, dass eine Verzögerungsmenge zum Anpassen des Ausführungszeitablaufs in der PC-Simulationsumgebung nahe am Ausführungszeitablauf in der betreffenden elektronischen Steuereinheit für jeden PC bestimmt wird und eine Zeitablaufanpassung durchgeführt wird, während eine Verzögerungsverarbeitung an einer vorbestimmten Position zur Zeit der Ausführung in der PC-Simulationsumgebung durchgeführt wird.
-
Ausführungsform 1
-
In der Ausführungsform 1 ist insbesondere im Wesentlichen die Hardwarekonfiguration der Simulationsvorrichtung beschrieben. 1 zeigt ein Diagramm zur Darstellung eines Beispiels von Konfigurationen der aktuellen Umgebung einer elektronischen Steuereinheit und der PC-Umgebung in der Simulationsvorrichtung der vorliegenden Erfindung.
-
Die rechte Seite von 1 zeigt ein Beispiel einer Konfiguration eines aktuellen Umgebungscomputers C, der die aktuelle Umgebung der elektronischen Steuereinheit ausführt, und die linke Seite von 1 zeigt ein Beispiel einer Konfiguration des PCs, der die PC-Umgebung ausführt. Der aktuelle Umgebungscomputer S und eine Vielzahl von PCs (PCa, PCb,..., and PCn) sind über eine Kommunikationsvorrichtung 180 mit einem externen Systembus 181 verbunden. Da der PC im Wesentlichen die gleiche Konfiguration und Funktion aufweist, ist der PC PCa als ein repräsentatives Beispiel beschrieben.
-
Da der aktuelle Umgebungscomputer S und der PC beide von einem Computersystem ausgeführt sind, sind in Hardwarekonfigurationen hiervon nach dem Stand der Technik eine Central Processing Unit (CPU) 102, eine Hauptspeichervorrichtung (Random Access Memory, RAM) 103, ein Hard Disk Drive (HDD) 104 oder ein Read Only Memory (ROM) 108 und dergleichen mit einem Systembus 101 verbunden. Ferner sind eine Tastatur 105, eine Maus 106 und eine Anzeige 107 für einen Entwickler zum Durchführen eines Simulationsbetriebs oder Prüfung eines Simulationsergebnisses mit dem PC verbunden.
-
Die Hardwarekonfigurationen des aktuellen Umgebungscomputers S und des PCs sind wie zuvor beschrieben und der Hard Disk Drive 104 oder der ROM 108 ist mit hier ausgeführten Hauptfunktionen ausgestattet.
-
Zunächst speichert der Hard Disk Drive 104 des PCs, der die PC-Umgebung ausführt, als in der PC-Simulationsumgebung betriebene Software Sw eine Anwendungssoftware Sw1 der elektronischen Steuereinheit, eine Leistungsvergleichssoftware Sw2 und eine Kommunikationssoftware Sw3, die eine Kommunikation mit dem elektronischen Steuereinheit durchführt. Die Anwendungssoftware Sw1 der elektronischen Steuereinheit umfasst eine Verzögerungseingabefunktion Sw11 und eine Leistungsmessfunktion Sw12, die Leistungsvergleichssoftware Sw2 umfasst eine Messergebnisvergleichs-/Verzögerungsparameter-Festlegungseinheit Sw21 und eine Vergleichsergebnis-Anzeigeeinheit Sw22 und die Kommunikationssoftware Sw3 umfasst eine Messergebnis-Empfangseinheit Sw31. Die Anwendungssoftware Sw1 stellt eine Simulationssoftware (PC-Simulationssoftware) auf dem PC dar.
-
Zusätzlich speichert der Hard Disk Drive 104 des PCs, der die PC-Umgebung ausführt, als Datendateien Fi für verschiedene zur Zeit des Betriebs in der PC-Simulationsumgebung verwendete Daten eine Messergebnisdatei Fi1 der elektronischen Steuereinheit, in der ein Messergebnis der elektronischen Steuereinheit gespeichert ist, eine PC-Messergebnisdatei Fi2, in der ein PC-Messergebnis gespeichert ist, und eine Verzögerungsparameterdatei Fi3, in der ein durch Vergleichen der Inhalt von beiden Messergebnissen bestimmter Verzögerungsparameter gespeichert ist.
-
Der ROM 108 wiederum des aktuellen Umgebungscomputers S, der die aktuelle Umgebung der elektronischen Steuereinheit ausführt, speichert die Anwendungssoftware Sw4 der elektronischen Steuereinheit. Die Anwendungssoftware Sw4 der elektronischen Steuereinheit umfasst eine Leistungsmessfunktion Sw41 und eine Messergebnis-Sendeeinheit Sw42. Die Hauptspeichervorrichtung (RAM) 103 des aktuellen Umgebungscomputers S, der die aktuelle Umgebung der elektronischen Steuereinheit ausführt, speichert als eine Datendatei Fi für verschiedene zur Zeit des Betriebs in der aktuellen Umgebung der elektronischen Steuereinheit verwendete Daten eine Messergebnisdatei Fi4 der elektronischen Steuereinheit, in der ein Messergebnis der elektronischen Steuereinheit gespeichert ist.
-
Die Konfiguration und Verarbeitung wie in 1 beschrieben sind als eine Ausführungsform beschrieben und der technische Umfang der vorliegenden Erfindung soll nicht auf diese Ausführungsform beschränkt werden.
-
Von verschiedenen Verarbeitungen in Bezug auf 1 dient die Verzögerungseingabefunktion Sw11 in der Anwendungssoftware Sw1 der elektronischen Steuereinheit im Hard Disk Drive 104 des PCs zum Ausführen einer Verzögerungsverarbeitung zum Anpassen des Ausführungszeitablaufs in der PC-Simulationsumgebung, so dass dieser näher am Ausführungszeitablauf in der aktuellen elektronischen Steuereinheit ist, was in Ausführungsform 2 bis 5 beschrieben ist. Zusätzlich dienen andere Verarbeitungsfunktionen in 1 zum Bestimmen einer Verzögerungsmenge für jeden PC zum Anpassen des Ausführungszeitablaufs, so dass dieser näher am Ausführungszeitablauf in der aktuellen elektronischen Steuereinheit ist, und zum Durchführen der Zeitablaufanpassung, während die Verzögerungsverarbeitung an einer vorbestimmten Position zur Zeit der Ausführung in der PC-Simulationsumgebung ausgeführt wird, was in Ausführungsform 6 und folgenden Ausführungsformen beschrieben ist.
-
Ausführungsform 2
-
In der Beschreibung von Ausführungsform 2 bis 5 der vorliegenden Erfindung sind die Hardwarekonfiguration und Hauptverarbeitungsfunktionen des PCs, der die Simulationsvorrichtung beschrieben, wobei die Hardwarekonfiguration und Hauptverarbeitungsfunktionen insbesondere mit der Verzögerungseingabefunktion Sw11 verknüpft sind. Zusätzlich ist ein Erzeugungsprozess beschrieben, in dem auf die elektronische Steuereinheitsvorrichtung zu portierende Software durch Verwenden der Simulationsvorrichtung erzeugt wird.
-
Zunächst sind die Hardwarekonfiguration und Hauptverarbeitungsfunktionen des PCs, der die Simulationsvorrichtung ausführt, in Bezug auf 2 beschrieben, wobei die Hardwarekonfiguration und Hauptverarbeitungsfunktionen insbesondere mit der Verzögerungseingabefunktion Sw11 verknüpft sind.
-
Wie in 1 beschrieben wird die Simulationsvorrichtung von 2 durch einen Universal-PC ausgeführt und in der Hardwarekonfiguration von diesem sind die CPU 102, die Hauptspeichervorrichtung (RAM) 103, der Hard Disk Drive (HDD) 104, die Tastatur 105, die Maus 106, die Anzeige 107 und dergleichen mit dem Systembus 101 des PCs verbunden.
-
In der Simulationsvorrichtung von 2 wird insbesondere die Verzögerungseingabefunktion Sw11 von 1 eingesetzt, was als verschiedene Funktionen oder Produkte, ausgebildete im Hard Disk Drive 104, dargestellt sein kann. Insbesondere kann die Verzögerungseingabefunktion Sw11 so ausgedrückt sein, dass ein Quellcode 111 der elektronischen Steuereinheit für die Anwendungssoftware der elektronischen Steuereinheit, ein Cross-Compiler 112 zum Erzeugen einer Ausführungsdatei für die aktuelle elektronische Steuereinheit, ein Compiler 113 zum Erzeugen einer Ausführungsdatei zur PC-Simulation, eine Ausführungsdatei 114 für die aktuelle elektronische Steuereinheit, die durch Erstellen der Anwendungssoftware 111 unter Verwendung des Cross-Compilers 112 erzeugt wird, und eine Ausführungsdatei 115 für den PC-Simulator, die durch Erstellen der Anwendungssoftware 111 unter Verwendung des Compilers 113 erzeugt wird, in der Verzögerungseingabefunktion Sw11 gespeichert oder gebildet wird.
-
Wie in 2 dargestellt sind ein Verarbeitungsablauf F1 zum Erstellen der Ausführungsdatei 115 für den PC-Simulator aus einem Quellcode 111 der Anwendungssoftware der elektronischen Steuereinheit und ein Verarbeitungsablauf F2 zum Erstellen der Ausführungsdatei 114 für die aktuelle elektronische Steuereinheit aus einem Quellcode 111 der Anwendungssoftware der elektronischen Steuereinheit vorhanden. Diese Verarbeitungsabläufe F1 und F2 werden von einem in 3 dargestellten und nachfolgend beschriebenen Verfahren ausgeführt.
-
Der Quellcode 111 der elektronischen Steuereinheit umfasst Anwendungssoftware 121 der elektronischen Steuereinheit, die in der aktuellen elektronischen Steuereinheit und im PC-Simulator betrieben wird, und Funktionen 122 zur Verzögerungseingabe, die nur in der PC-Simulatorumgebung ausgeführt werden.
-
Ferner speichert der Hard Disk Drive 104 des PCs die Verzögerungsparameterdatei Fi3, die ausschließlich in der PC-Simulatorumgebung verwendete Verzögerungsinformationen speichert.
-
Der Compiler 113 für den PC-Simulator umfasst eine Kompilierungsoption 131 zum Hooking der Verarbeitung zum Aufrufen der Funktionen zur Verzögerungseingabe in die Software der elektronischen Steuereinheit. Wenn der Quellcode 111 der elektronischen Steuereinheit vom Compiler 113 mit der spezifizierten Kompilierungsoption 131 kompiliert wird, ist der Ausführungscode 141 zur Verzögerungseingabe in der Ausführungsdatei 115 für den PC-Simulator enthalten. Der Ausführungscode 141 zur Verzögerungseingabe weist eine Funktion zum Ausführen der Verzögerungsverarbeitung für eine in der Verzögerungsparameterdatei Fi3 beschriebenen Verzögerungsmenge auf.
-
Der Anwendungsausführungscode 142 der elektronischen Steuereinheit und der Ausführungscode 141 zur Verzögerungseingabe werden durch die Kompilierungsverarbeitung im Verarbeitungsablauf F1 erzeugt und in der Ausführungsdatei 115 für den PC-Simulator gespeichert und ein Anwendungsausführungscode 143 der elektronischen Steuereinheit wird durch die Kompilierungsverarbeitung im Verarbeitungsablauf F2 erzeugt und in der Ausführungsdatei 114 für die aktuelle elektronische Steuereinheit gespeichert.
-
Die Konfiguration und Verarbeitung wie hier beschrieben sind als eine Ausführungsform beschrieben und der technische Umfang der vorliegenden Erfindung soll nicht auf diese Ausführungsform beschränkt werden.
-
3 zeigt ein Diagramm zur Darstellung eines Erzeugungsprozesses nach dem Stand der Technik, in dem zu auf die elektronische Steuereinheit zu portierende Software durch Verwenden der Simulationsvorrichtung erzeugt wird.
-
- (a) von 3 zeigt eine erste Phase der Anwendungsentwicklung, in der beispielsweise die Anwendungssoftware 121 der elektronischen Steuereinheit zur Bremsenbetätigung in der elektronischen Steuereinheit vom Compiler 113 für den PC-Simulator umgewandelt wird und der Anwendungsausführungscode 142 der elektronischen Steuereinheit in der Ausführungsdatei 115 für den PC-Simulator erzeugt wird.
-
Der Ablauf dieser Verarbeitung ist als der Verarbeitungsablauf F1 dargestellt.
-
Ferner werden in dieser Phase verschiedene Simulationen unter Verwendung des Anwendungsausführungscodes 142 der elektronischen Steuereinheit im PC ausgeführt und Ergebnisse hiervon werden entsprechen in der Anzeige 107 oder dergleichen angezeigt. Ein Entwickler M empfängt die in der Anzeige 107 angezeigten Simulationsergebnisse und ändert entsprechend die Anwendungssoftware 121 der elektronischen Steuereinheit durch Verwenden eines Eingabemittels, etwa der Maus 106 oder der Tastatur 105, wodurch schließlich die Anwendungssoftware 121A erstellt wird. Schließlich wird der Anwendungsausführungsdateicode 142A (nicht dargestellt) der elektronischen Steuereinheit erstellt.
-
- (b) von 3 zeigt eine zweite Phase der Anwendungsentwicklung, in der die schließlich in der ersten Phase der Anwendungsentwicklung erzeugte Anwendungssoftware 121A der elektronischen Steuereinheit vom Cross-Compiler 112 für die aktuelle elektronische Steuereinheit umgewandelt wird und der Anwendungsausführungscode 143 der elektronischen Steuereinheit in der Ausführungsdatei 114 für die aktuelle elektronische Steuereinheit erzeugt wird. Der Ablauf dieser Verarbeitung ist als der Verarbeitungsablauf F2 dargestellt.
- (c) von 3 zeigt eine Prüfphase der elektronischen Steuereinheit, in welcher der schließlich in der zweiten Phase der Anwendungsentwicklung erstellte Anwendungsausführungscode 143 der elektronischen Steuereinheit zur elektronischen Steuereinheit portiert wird und verschiedene Untersuchungen oder dergleichen durch einen aktuellen Computer durchgeführt werden.
-
Das zuvor beschriebene und in 3 dargestellte Verfahren zeigt den Erzeugungsprozess nach dem Stand der Technik, in dem zur elektronischen Steuereinheit zu portierende Software durch Verwenden der Simulationsvorrichtung erzeugt wird; das Problem besteht aber in diesem Fall darin, dass ein Unterschied in der HW-Leistung (Hardware-Leistungsunterschied) zwischen einem ersten Computer, der die Simulationsvorrichtung ausführt, und einem zweiten Computer, der die elektronische Steuereinheit ausführt, einen Unterschied im Anwendungssoftware-Betriebsergebnis zwischen der PC-Umgebung und der Umgebung der elektronischen Steuereinheit bewirkt.
-
Als Unterschied in der HW-Leistung zwischen dem ersten Computer und dem zweiten Computer ist ein Unterschied in der Taktfrequenz als ein Beispiel im folgenden Beispiel beschrieben. In Ausführungsform 2 ist ein Fall, in dem eine Taktfrequenz fe der elektronischen Steuereinheit 1.000 Hz beträgt, eine Taktfrequenz fp des PCs 3.000 Hz beträgt und der PC eine höhere Leistung aufweist als die elektronische Steuereinheit, als ein Beispiel beschrieben. In Ausführungsform 3 ist ein Fall beschrieben, in dem die elektronische Steuereinheit eine höhere Leistung aufweist als der PC.
-
Die Ausführungsform 2 der vorliegenden Erfindung stellt eine Verbesserung der Verarbeitung in Bezug auf die erste Phase der Anwendungsentwicklung in (a) von 3 dar. 4 zeigt eine Verarbeitung in Bezug auf eine erste Stufe der Anwendungsentwicklung gemäß Ausführungsform 2 der vorliegenden Erfindung.
-
In der ersten Phase der Anwendungsentwicklung in 4 werden die folgenden Funktionen oder Verarbeitungen zur ersten Phase der Anwendungsentwicklung in (a) von 3 hinzugefügt. Die hinzugefügten Funktionen umfassen die zum Quellcode 111 der elektronischen Steuereinheit hinzugefügten Funktionen 122 zur Verzögerungseingabe, die auf dem PC erzeugte Verzögerungsparameterdatei Fi3, die zum Compiler 113 für den PC-Simulator hinzugefügte Funktionskompilierungsoption 131 und den zur Ausführungsdatei 115 für den PC-Simulator hinzugefügten Ausführungscode 141 zur Verzögerungseingabe.
-
Mit der Konfiguration von 4 kann die Ausführungszeitablauf-Anpassungsverarbeitung angekoppelt oder abgekoppelt werden, je nachdem, ob die Kompilierungsoption spezifiziert ist oder nicht.
-
Kurz gefasst dienen diese hinzugefügten Funktionen zum Festlegen einer vorbestimmten Verzögerungszeit für einen vorbestimmten Zeitablauf in einem Programm (den in der Ausführungsdatei 115 für den PC-Simulator erzeugten Anwendungsausführungscode 142 für die elektronische Steuereinheit), das schließlich erstellt wird. Daher ist es vorzuziehen, die Programmiersprachen C, C++ oder Java (eingetragene Marke) als eine Programmiersprache im Computer der vorliegenden Erfindung zu verwenden. Ferner werden diese Programmiersprachen nachfolgend vereinfachend als die Programmiersprache C bezeichnet.
-
5 zeigt ein Diagramm zur Darstellung eines Beispiels eines in der vorliegenden Erfindung verwendeten Programms in der Programmiersprache C. Das Programm in der Programmiersprache C ist ein einfaches Programm, das eine func1-Funktion in einer Main-Funktion aufruft wie in 5 dargestellt und den Rest der Main-Funktion ausführt, nachdem die func1-Funktion endet. In der Main-Funktion kann eine Vielzahl von func-Funktionen aufgerufen werden, um die Verarbeitung auszuführen. Die Main-Funktion kann als eine übergeordnete Funktion bezeichnet werden und die func-Funktion kann als eine untergeordnete Funktion bezeichnet werden.
-
Die zum Quellcode 111 der elektronischen Steuereinheit von 2 hinzugefügten Funktionen 122 zur Verzögerungseinspritzung bilden eine Prologfunktion, die eine Funktion zum Durchführen einer Funktion zum Festlegen einer vorbestimmten Verzögerungszeit für einen vorbestimmten Zeitablauf darstellt und zum Festlegen einer Verzögerungszeit zu Beginn des Programms verwendet wird, und eine Epilogfunktion, die zum Festlegen einer Verzögerungszeit am Ende des Programms verwendet wird, von func-Funktionen der Programmiersprache C.
-
Die elektronische Steuereinheit ist ein sogenannter Steuercomputer, der durch Integrieren in ein Fahrzeug verwendet wird. Daher wird beispielsweise eine elektronische Steuereinheit in Singletasking-Ausführung in einem Zeitraum von 10 ms aktiviert und jedes Mal, wenn die elektronische Steuereinheit aktiviert wird, wird eine Reihe von in der Main-Funktionen beschriebenen Verarbeitungen betrieben, um die Verarbeitung ausreichend innerhalb dieses Zeitraums abzuschließen. Daher wird der PC, der die Simulationsvorrichtung darstellt, unter der Annahme konfiguriert und betrieben, dass er ebenfalls als ein Steuercomputer behandelt wird. Eine elektronische Steuereinheit in Multitasking-Ausführung weist einen Steuerzeitraum eines anderen Systems auf; beispielsweise wird die elektronische Steuereinheit in einem Zeitraum von 5 ms aktiviert und gemäß einer entsprechenden Priorität betrieben.
-
6 zeigt ein Tabellenfestlegungsbeispiel der in 2 definierten Verzögerungsparameterdatei Fi3 gemäß der vorliegenden Ausführungsform. Hier sind für die Main-Funktion, die func1-Funktion und Standard Bedingungen wie eine Verzögerungszeit-Festlegungsposition, ein Name der aufrufenden Funktion, eine Verzögerungsmenge und Anmerkung beschrieben. Die Tabelle in 6 zeigt einen Zustand, nachdem die Festlegung der Verzögerungsmenge abgeschlossen ist. In dieser Tabelle festgelegte Verzögerungsmengen Δt4 bis Δt7 sind in einem Zeitablaufbeispiel von 7 dargestellt.
-
Beispielsweise ist in einer Zeile 201 für die Main-Funktion Δt4 als eine Verzögerungsmenge zur Anwendung in einer Prologfunktion (nachfolgend wird die Verarbeitung durch diese Funktion als Prologverarbeitung bezeichnet) der Main-Funktion festgelegt.
-
In einer Zeile 202 für die func1-Funktion ist Δt7 als eine Verzögerungsmenge in einer Epilogfunktion (nachfolgend wird die Verarbeitung durch diese Funktion als Epilogverarbeitung bezeichnet) der func1-Funktion festgelegt. Standard bedeutet, dass Standardeinstellungen für Teile verwendet werden, die nicht durch die Main-Funktion oder func-Funktion definiert sind. In diesem Beispiel beträgt eine anzuwendende Verzögerungsmenge 0 (keine Verzögerungsverarbeitung wird ausgeführt) in der Prologverarbeitung und der Epilogverarbeitung einer Funktion, die nicht beschrieben ist.
-
Eine in 6 dargestellte Anpassungsgruppe 203 ist nachfolgend in Ausführungsform 7 beschrieben.
-
7 zeigt ein Beispiel eines Ausführungszeitablaufs in der aktuellen elektronischen Steuereinheit, eines Ausführungszeitablaufs im PC-Simulator, wenn eine Zeitablaufanpassung nicht durchgeführt wird, und eines Ausführungszeitablaufs im PC-Simulator, wenn die Zeitablaufanpassung durchgeführt wird.
-
Zunächst ist der Ausführungszeitablauf in der elektronischen Steuereinheit auf der linken Seite von 7 beschrieben. Wie zuvor beschrieben ist in dieser Zeitablaufverarbeitung der Ausführungszeitablauf ein Zeitablauf in einem Fall, in dem die elektronische Steuereinheit einen Steuerzeitraum von 10 ms und eine Taktfrequenz von 1.000 Hz aufweist.
-
Hier wird angenommen, dass der Steuerzeitraum von 10 ms zur einer Zeit t0 startet.
-
In diesem Beispiel erfordert das Programm eine Zeit von ΔtE1 zur Bearbeitung eines vorderen Teils der Main-Funktion, erfordert eine Zeit von ΔtE2 zur Verarbeitung der func1-Funktion und erfordert eine Zeit von ΔtE3 für einen hinteren Teil der Main-Funktion und die Gesamtzeit liegt innerhalb des Steuerzeitraums der elektronischen Steuereinheit von 10 ms, so dass die Verarbeitung hinreichend abgeschlossen wird. Eine Zeit, zu der die Verarbeitung des vorderen Teils der Main-Funktion abgeschlossen ist, ist durch t1 dargestellt, eine Zeit, zu der die Verarbeitung der func1-Funktion abgeschlossen ist, ist durch t2 dargestellt, und eine Zeit, zu der die Verarbeitung des hinteren Teils der Main-Funktion abgeschlossen ist, ist durch t3 dargestellt.
-
Andererseits ist es wünschenswert, dass der gleiche Zeitablauf wie der Ausführungszeitablauf in der elektronischen Steuereinheit innerhalb der den PC verwendenden Simulationsvorrichtung ausgeführt werden kann.
-
Diesbezüglich ist gemäß dem Verfahren nach dem Stand der Technik (in der Mitte von 7), in dem die Zeitanpassung nicht wie in 3 dargestellt durchgeführt wird, eine Ausführungsstartzeit eine Zeit t0 in der aktuellen elektronischen Steuereinheit und der PC-Simulationsumgebung, aber eine Taktfrequenz des PCs beträgt 3.000 Hz, und somit wird eine Reihe von Verarbeitungen in einer kurzen Zeit abgeschlossen. Insbesondere erfordert die Verarbeitung des vorderen Teils der Main-Funktion eine Zeit von Δt1, die Verarbeitung der func1-Funktion erfordert eine Zeit von Δt2 und die Verarbeitung des hinteren Teils der Main-Funktion erfordert eine Zeit von Δt3; diese Zeiten sind aber hinreichend kürzer als die jeweiligen Zeiten in der aktuellen elektronischen Steuereinheit und somit unterscheidet sich der Ausführungszeitablauf vollständig von dem in der aktuellen elektronischen Steuereinheit. In der vorliegenden Erfindung wird die Verzögerungsmenge der in 6 beschriebenen Verzögerungsparameterdatei Fi3 auf der Basis des Unterschieds in der Ausführungszeit zwischen der aktuellen elektronischen Steuereinheit und der PC-Simulationsumgebung berechnet und festgelegt. Die Berechnung der Verzögerungsmenge ist in Ausführungsform 6 und folgenden Ausführungsformen beschrieben.
-
In der vorliegenden Erfindung kann durch entsprechendes Festlegen einer Verzögerungszeit in einem vorderen Teil und einem hinteren Teil einer Funktion ein Zeitablauf nahe dem Ausführungszeitablauf in der elektronischen Steuereinheit auf der linken Seite von 7 hergestellt werden. Wenn die Zeitablaufanpassung auf der rechten Seite von 7 durchgeführt wird, ist eine Startzeit des Steuerzeitraums t0 wie in den anderen Fällen.
-
Zu dieser Zeit startet das Programm von der Main-Funktion. Zunächst wird in Bezug auf die Verzögerungsparameterdatei Fi3 in 6 die Prologverarbeitung der Main-Funktion der Zeile 201 ausgeführt. Da eine Verzögerungsmenge in der Prologverarbeitung der Main-Funktion Δt4 ist, wird die Verarbeitung der func1-Funktion ausgeführt, nachdem die Verzögerungszeit Δt4 verstrichen ist. Wenn die Main-Funktion ausgeführt wird, wird die func1-Funktion nach der Zeit von Δt1 aufgerufen. Wenn die Verzögerungsmenge in der Prologverarbeitung der Main-Funktion angemessen ist, wird ein Zeitablauf, bei dem die func1-Funktion aufgerufen wird, so angepasst, dass er näher an dem in der aktuellen elektronischen Steuereinheit ist.
-
Anschließend nimmt das Programm Bezug auf die Verzögerungsparameterdatei Fi3 in 6 und führt eine Prologverarbeitung der func1-Funktion einer Zeile 203 durch. Hier ist Δt5 als die Verzögerungsmenge festgelegt und somit wird die Verarbeitung der func1-Funktion ausgeführt, nachdem die Verzögerungszeit von Δt5 verstreicht.
-
Eine Zeit, für welche die func1-Funktion ausgeführt wird, ist Δt2, was mit einem Fall übereinstimmt, in dem die Zeitablaufanpassung nicht durchgeführt wird. Durch das Festlegen in der Verzögerungsparameterdatei Fi3 in 6 wird eine Verzögerungsmenge von Δt6 zur Epiloganpassungsverarbeitung der func1-Funktion festgelegt und eine Verzögerungsverarbeitung für Δt6 wird ausgeführt, so dass ein Anpassen einer Startzeit der Verarbeitung des hinteren Teils der Main-Funktion zum Übereinstimmen mit einer Startzeit t2 der Verarbeitung der Main-Funktion in der elektronischen Steuereinheit möglich ist.
-
Ebenso werden durch das Festlegen in der Verzögerungsparameterdatei Fi3 in 6 eine Verzögerungsmenge von Δt7 und ein Koeffizient von 3 zur Epiloganpassungsverarbeitung der Main-Funktion festgelegt und eine Verzögerungsverarbeitung für Δt7 wird ausgeführt, so dass ein Anpassen einer Endzeit der Verarbeitung des hinteren Teils der Main-Funktion zum Übereinstimmen einer Endzeit t3 der Verarbeitung des hinteren Teils der Main-Funktion in der elektronischen Steuereinheit möglich ist.
-
Beim Festlegen der Verzögerungszeit in jeder Funktion kann entsprechend ausgewählt werden, ob eine Zeit von einer absoluten Zeit (beispielsweise eine Startzeit des Steuerzeitraums) festgelegt wird oder eine Zeit von einer Zeit des Auftritts eines vorhergehenden Ereignisses (beispielsweise eine Startzeit und eine Endzeit jeder Funktion) festgelegt wird.
-
Wie zuvor beschrieben kann gemäß der vorliegenden Erfindung ein Verarbeitungszeitablauf in der PC-Simulationsumgebung so angepasst werden, dass er näher an einem Verarbeitungszeitablauf in der aktuellen elektronischen Steuereinheit ist, indem ein Mechanismus ausgeführt wird, der die ausschließlich in der PC-Simulationsumgebung betriebene Verzögerungsverarbeitung ausführt und hinzufügt.
-
Eine Position, an der die Verzögerungsverarbeitung angewendet wird, ist eine bei Start der Funktion aufgerufene Prologverarbeitung oder eine am Ende der Funktion aufgerufene Epilogverarbeitung. Die Verzögerungsverarbeitung kann bei einer beliebigen von diesen oder bei beiden ausgeführt werden.
-
Ferner kann die Verarbeitung des Aufrufs einer Verzögerungseinspritzfunktion durch Hinzufügen einer Kompilierungsoption ausgeführt werden. Vorzugsweise wird eine Funktion zum Spezifizieren einer in Prolog und Epilog betriebenen Funktion verwendet, etwa eine Option „finstrument-functions“ einer GNU Compiler Collection (GCC). Für den Test in der PC-Simulationsumgebung muss die Verarbeitung des Aufrufs eines Testcodes in der Anwendungssoftware hinzugefügt werden.
-
Wie zuvor beschrieben ist die vorliegende Erfindung eine Simulationsvorrichtung zum Umwandeln von Anwendungssoftware in einen Ausführungscode, Prüfen des Ausführungscodes und Portieren des geprüften Ausführungscodes zu einer anderen Computervorrichtung, in der eine Zeitanpassungsverarbeitung mit einer Funktion eines Quellcodes einer Anwendung als eine Einheit beim Start oder Ende der Funktion zum Anpassen eines Ausführungszeitablaufs in einer anderen Computervorrichtung ausgeführt wird.
-
Ausführungsform 3
-
In Ausführungsform 2 wird die Verzögerungszeit am vorderen Teil oder hinteren Teil von jeder Funktion festgelegt, um einen Zeitablauf übereinstimmend mit der elektronischen Steuereinheit unter der Annahme durchzuführen, dass eine Verarbeitungsgeschwindigkeit der elektronischen Steuereinheit niedriger als eine Verarbeitungsgeschwindigkeit des PCs. Das heißt die Verzögerungsverarbeitung wird als die Zeitanpassungsverarbeitung durchgeführt.
-
Die Verarbeitungsgeschwindigkeit der elektronischen Steuereinheit wiederum kann höher sein als die Verarbeitungsgeschwindigkeit des PCs. 8 zeigt ein Diagramm zur Darstellung eines Beispiels eines Zeitablaufs, wenn die Verarbeitungsgeschwindigkeit der elektronischen Steuereinheit höher ist als die Verarbeitungsgeschwindigkeit des PCs. 8 zeigt eine Gegenmaßnahme für solch einen Fall. Beispielsweise wird ein Fall angenommen, bei dem die elektronische Steuereinheit ΔtE1 zur Verarbeitung der Main-Funktion benötigt und der PC mehr Zeit benötigt. In diesem Fall wird die für die Verarbeitung der Main-Funktion im PC vorzugsweise so angepasst, dass sie die gleiche ist wie die Verarbeitungszeit von ΔtE1 in der elektronischen Steuereinheit, indem die für die erforderliche Zeit für die Verarbeitung der Main-Funktion im PC mit einem entsprechenden Koeffizienten multipliziert wird. Hier wird die Zeitreduzierungsverarbeitung als die Zeitanpassungsverarbeitung ausgeführt.
-
Ausführungsform 4
-
Die Ausführungsform 4 nimmt ebenfalls eine Gegenmaßnahme an, wenn die Verarbeitungsgeschwindigkeit der elektronischen Steuereinheit höher ist als die Verarbeitungsgeschwindigkeit des PCs.
-
In Ausführungsform 4 ist ein Beispiel eines Falls des Ausführens der Simulation mit einer Geschwindigkeit niedriger als die in der aktuellen Umgebung der elektronischen Steuereinheit in Bezug auf 9 und 10 beschrieben. Eine Ausführungsform, in der die aktuelle elektronische Steuereinheit und der PC, auf dem der Simulator betrieben wird, verglichen werden, und eine Zeitablauf-Anpassungsfunktion, wenn die Geschwindigkeit der aktuellen elektronischen Steuereinheit höher ist als die des PCs, angewendet wird, wird beschrieben.
-
Eine Ausführungsform, in der die in 5 dargestellte Main-Funktion periodisch ausgeführt wird, wird beschrieben. 9 zeigt ein Verhältnis der Zahl von CPU-Takten der aktuellen elektronischen Steuereinheit zur Zahl von Takten des PCs, auf dem der Simulator betrieben wird. In diesem Beispiel zeigt die aktuelle elektronische Steuereinheit eine doppelt so hohe Leistung wie der PC.
-
10 zeigt einen Verarbeitungszeitablage bei der Ausführung in der aktuellen elektronischen Steuereinheit und einen Verarbeitungszeitablauf bei der Ausführung im PC-Simulator.
-
Periodische Verarbeitungszeitgeber-Ereignisse 601 und 602 treten auf und eine periodische Verarbeitung wird durch Starten der Main-Funktion gestartet. Die func1-Funktion wird von der Main-Funktion aufgerufen (603 und 604). Nachdem die func1-Funktion ausgeführt ist, kehrt der Prozess zur Main-Funktion zurück und die periodische Verarbeitung wird abgeschlossen, wenn die Main-Funktion endet (605 und 606). Wenn das nächste periodische Verarbeitungszeitgeber-Ereignis ausgegeben wird (607 und 608), wird die nächste periodische Verarbeitung in der Main-Funktion gestartet. In der vorliegenden Ausführungsform kann aber aus den Zeitabläufen von 606 und 608 in einer umgekehrten Reihenfolge bestätigt werden, dass die vorhergehende periodische Verarbeitung aufgrund der niedrigen CPU-Leistung in der PC-Simulatorumgebung nicht beendet wurde.
-
In der PC-Simulatorumgebung kann die Verarbeitung nicht mit dem gleichen Zeitablauf ausgeführt werden wie dem in der elektronischen Steuereinheit bei Ausführung mit einer einfachen Geschwindigkeit. Daher kann ein Zeitgeberereignis-Auftrittsintervall in der PC-Simulationsumgebung um das Zweifache vergrößert werden, indem die Geschwindigkeit auf der Basis des CPU-Verhältnisses halbiert wird, so dass die Verarbeitung beim Verarbeitungszeitablauf in der PC-Simulationsumgebung ausgeführt werden kann, die nahe am Verarbeitungszeitablauf in der aktuellen elektronischen Steuereinheit ist.
-
Die rechte Seite von 10 stellt einen Verarbeitungszeitablauf dar, wenn die Verarbeitung mit einer halben Geschwindigkeit in der PC-Simulationsumgebung ausgeführt wird. Das Auftreten eines Zeitgebereignisses (609), der Start der Ausführung der func1-Funktion (610) und das Ende der Main-Funktion (611) sind die gleichen wie die Ausführungszeitabläufe bei einer Reproduktion mit einfacher Geschwindigkeit in der PC-Simulationsumgebung. Es wird hingegen ein Zeitablauf (612), bei dem ein nächstes periodisches Verarbeitungszeitgeber-Ereignis auftritt, um das Zweifache verzögert bei der Reproduktion mit normaler Geschwindigkeit, so dass die periodische Verarbeitung in der PC-Simulationsumgebung innerhalb des Zeitraums abgeschlossen werden kann. Ein Korrekturverfahren im Prolog/Epilog, wenn die Ausführungszeit der Funktion im PC kürzer ist als das Zweifache der Ausführungszeit in der elektronischen Steuereinheit, ist das gleiche wie das in Ausführungsform 1.
-
Ein Zeitraum, in dem das Zeitgeberereignis auftritt, wird in der Prologverarbeitung oder Epilogverarbeitung einer in der Programminitialisierungsverarbeitung oder dergleichen ausgeführten Funktion geändert.
-
Als eine Variation der vorliegenden Ausführungsform kann ebenfalls eine virtuelle Zeit statt der realen Zeit im PC bereitgestellt werden und die virtuelle Zeit zu einer dieses erreichenden Zeit in der elektronischen Steuereinheit im Prolog/Epilog korrigiert werden. Bei diesem Verfahren kann, da die Korrektur der virtuellen Zeit durchgeführt wird statt eines Einfügens einer Wartezeit, die Simulationszeit verringert werden.
-
Ausführungsform 5
-
In den Ausführungsformen 2 bis 4 wurden die Ausführungsformen, in denen die Zeitablauf-Anpassungsfunktion auf das Programm angewendet wird, in dem nur eine Aufgabe auf einer CPU ausgeführt wird (sogenanntes Singletasking), beschrieben. In einer elektronischen Steuereinheit in Multitasking-Ausführung muss hingegen die Zeitablauf-Anpassungsfunktion auf ein Programm angewendet werden, in dem eine Vielzahl von Aufgaben A und B auf einer CPU ausgeführt wird.
-
In solch einem Multitasking-Verfahren wird eine Umschaltverarbeitung, in der eine Verarbeitungsanforderung für eine andere Aufgabe mit einer hohen Priorität während der Ausführung einer Aufgabe eingegeben wird, die eine Aufgabe unterbrochen wird und die Verarbeitung der anderen Aufgabe ausgeführt wird, und nachdem die Verarbeitung abgeschlossen ist, der restliche Teil der einen Aufgabe erneut ausgeführt wird, durchgeführt.
-
11 zeigt Aufgabenprioritäten von Aufgabe A und B. Ein Fall, in dem die Aufgabe A in einem Steuerzeitraum von beispielsweise 10 ms aktiviert wird, die Aufgabe B in einem Steuerzeitraum von beispielsweise 5 ms aktiviert wird und die Priorität der Aufgabe B höher ist als die der Aufgabe A, ist als ein Beispiel dargestellt.
-
12 zeigt das Konzept der Zeitablaufanpassung bei einer Unterbrechungsverarbeitung im Multitasking. Die linke Seite von 12 zeigt die aktuelle Verarbeitung in der elektronischen Steuereinheit und die Aufgabe A und die Aufgabe B werden mit verschiedenen Steuerzeiträumen ausgeführt. Hier sind periodische Verarbeitungszeitgeber-Aktivierungszeiten der Aufgabe A durch t0A1 und t0A2 dargestellt und eine periodische Verarbeitungszeitgeber-Aktivierungszeit der Aufgabe B ist durch t0B dargestellt. Ferner liegt in diesem Beispiel der Steuerzeitraum der Aufgabe A zwischen den Zeiten t0A1 und t0A2 und aufgrund der Unterbrechungsverarbeitung durch die Aufgabe B wird eine Wiederaufnahmezeit der Aufgabe A t1 und eine Endzeit der Aufgabe A wird t2.
-
In diesem Beispiel von 12 startet die Aufgabe A mit der Verarbeitung ausgelöst von einem Zeitgeberereignis zur Zeit t0A1. Anschließend wurde ein Zeitgeberereignis von Aufgabe B wurde zur Zeit t0B während der Ausführung der Verarbeitung der Aufgabe B ausgegeben. Zu dieser Zeit wird die Ausführung der Aufgabe A unterbrochen und die Verarbeitung der Aufgabe B startet gemäß der Priorität.
-
Gemäß einem Ereignisauftritts-Zeitablauf dieses Beispiels in der aktuellen elektronischen Steuereinheit endet die Ausführungsverarbeitung der Aufgabe A nicht, bevor die Aufgabe B startet, und es erfolgt ein Umschalten zur Aufgabe B. Nachdem die Verarbeitung der Aufgabe B endet, wird die Ausführung der Aufgabe A wiederaufgenommen.
-
Hingegen endet gemäß der in der Mitte von 12 dargestellten Verarbeitung nach dem Stand der Technik, da die Verarbeitungsgeschwindigkeit in der PC-Simulatorumgebung höher ist als die in der elektronischen Steuereinheit, die Ausführung der Aufgabe A, bevor die Aufgabe B startet, und somit erfolgt keine Aufgabenumschaltung. Das heißt das Verfahren nach dem Stand der Technik kann die Aufgabenumschaltung im Multitasking nicht ausführen. Somit ist häufig das Problem aufgetreten, dass selbst bei einer Ausführung der Verarbeitung innerhalb eines Zeitraums und einem ordnungsgemäßen Betrieb in der PC-Simulatorumgebung, wenn die Betriebsprüfung nach dem Portieren zur aktuellen Umgebung der elektronischen Steuereinheit erfolgt, die Verarbeitung nicht innerhalb eines Zeitraums abgeschlossen wird.
-
Der Betrieb der vorliegenden Erfindung, wenn die Zeitablaufanpassung in der Prolog- und Epilogverarbeitung einer Funktion in der PC-Simulationsumgebung erfolgt, ist auf der rechten Seite von 12 dargestellt. Gemäß dem dargestellten Beispiel kann durch Hinzufügen einer entsprechenden Verzögerungszeit ein vorderer Verarbeitungsabschnitt der Aufgabe A gebildet werden und es können ebenso hintere Verarbeitungsabschnitte der Aufgabe B und der Aufgabe A gebildet werden, wodurch die Unterbrechungsverarbeitung ausgeführt wird.
-
Somit tritt, da die Zeitablaufanpassungs-Verarbeitung mit einer Funktion als eine Einheit in Ausführungsform 2 fein erfolgt, wenn die Zeitgeberereignisse der Aufgabe A und der Aufgabe B mit dem gleichen Zeitablauf in der aktuellen elektronischen Steuereinheit und im PC-Simulator auftreten, die Aufgabenumschaltung ebenfalls im PC-Simulator auf. Das heißt beim Multitasking-Verfahren, in dem Aufgaben mit verschiedenem Steuerzeitraum ausgeführt werden, kann die Simulationsvorrichtung eine Zeitanpassungsverarbeitung für jede einer Vielzahl von Aufgaben durchführen und eine Unterbrechungsverarbeitung ausführen.
-
Im Multitasking-Verfahren kann eine zum Anpassen des Zeitablaufs gespeicherte Ausführungszeit für jede Aufgabe verwaltet werden und die Verarbeitung zum Stoppen des Hochzählens einer Ausführungszeit einer Aufgabe, deren Ressource von der Zeitablaufanpassungs-Verarbeitung verwendet wird, nachdem die Aufgabenumschaltung erfolgt ist, kann ausgeführt werden.
-
In diesem Beispiel wird die Ausführung der Aufgabe A in einer Prologfunktion beim Start der periodischen Verarbeitung der Aufgabe B gestoppt. Das Zählen der Verarbeitungszeit der Aufgabe A wird in der Prologfunktion beim Start der Aufgabe B gestoppt und das Hochzählen der Ausführungszeit der Aufgabe A wird in einer Epilogfunktion am Ende der Verarbeitung der Aufgabe B wiederaufgenommen. Danach wird, wenn ein Zeitablaufanpassungs-Zeitablauf eintritt, eine Zeitablaufanpassung durchgeführt, indem eine Zeitablaufanpassungszeit auf der Basis einer Ausführungszeit berechnet wird, bevor die Ressource von der Aufgabe B verwendet wird und nachdem die Ressource wiederhergestellt ist.
-
Ausführungsform 6
-
Die Ausführungsform 6 und folgende Ausführungsformen beschrieben das Bestimmen einer Verzögerungsmenge zum Anpassen des Anpassungszeitablauf in der PC-Simulationsumgebung, so dass dieser näher am Ausführungszeitablauf in der aktuellen elektronischen Steuereinheit ist, und das Durchführen der Zeitablaufanpassung während des Ausführens der Verzögerungsverarbeitung an einer vorbestimmten Position zur Zeit der Ausführung in der PC-Simulationsumgebung.
-
13 zeigt ein Diagramm zur Darstellung eines Verarbeitungsablaufs einer Verzögerungsmengenbestimmung und einer Zeitablauf-Anpassungsfunktion des PCs, der die Simulationsvorrichtung ausführt, und des aktuellen Umgebungscomputers S.
-
Wie in 13 dargestellt wird ein Leistungstest eines Hardware-Prototyps in der aktuellen Umgebung der elektronischen Steuereinheit auf dem aktuellen Umgebungscomputer S durchgeführt. Hier wird in der Anwendungssoftware Sw4 der aktuellen elektronischen Steuereinheit im ROM 108 des aktuellen Umgebungscomputers S, der die aktuelle Umgebung der elektronischen Steuereinheit ausführt, die Leistungsmessfunktion Sw41 ausgeführt, um ein Messergebnis im Simulator der elektronischen Steuereinheit im RAM 103 zu ermitteln, und das Messergebnis wird als die Messergebnisdatei Fi4 der elektronischen Steuereinheit gespeichert.
-
Anschließend wird, wenn die Messergebnis-Sendeeinheit Sw42 in der Anwendungssoftware Sw4 der elektronischen Steuereinheit betrieben wird, die Messergebnisdatei Fi4 der elektronischen Steuereinheit als die Messergebnisdatei Fi1 der elektronischen Steuereinheit im PC über die Messergebnis-Empfangseinheit Sw31, die eine Kommunikationssoftware im PC darstellt, gespeichert.
-
14 zeigt ein Diagramm zur Darstellung des Konzepts der Verzögerungsmengenbestimmung und der Zeitablauf-Anpassungsfunktion. Im Vergleich mit der Verarbeitung von 13 in der zuvor beschriebenen Verarbeitung im aktuellen Umgebungscomputer S werden eine Startzeit tsE und eine Endzeit teE der Anwendungssoftware (aktuelle elektronische Steuereinheit) als Ergebnisse (Messergebnisdatei Fi1 oder Fi4 der elektronischen Steuereinheit) des Leistungstests des Hardware-Prototyps in der elektronischen Steuereinheit auf der linken Seite von 14 gemessen.
-
Der Leistungstest des Simulators in der PC-Umgebung wiederum wird auf dem PC durchgeführt. Hier wird in der Anwendungssoftware Sw1 im Hard Disk Drive 104 des PCs, der den Simulator ausführt, die Leistungsmessfunktion Sw12 ausgeführt, um ein Messergebnis im Simulator im Hard Disk Drive 104 zu ermitteln, und das Messergebnis wird als die PC-Messergebnisdatei Fi12 gespeichert.
-
In der zuvor beschriebenen Verarbeitung im PC werden eine Startzeit tsP und eine Endzeit teP der Simulation als Ergebnisse (PC-Messergebnisdatei Fi2) des Leistungstests des Simulators im in der Mitte von 14 dargestellten PC (ohne Anpassung) gemessen. In 14 sind die Startzeiten tsE und tsP zur Vereinfachung als die gleiche Zeit dargestellt. Ferner wird in diesem Zustand die Zeitablaufanpassung auf der Basis der Verzögerungsverarbeitung gemäß der vorliegenden Erfindung nicht ausgeführt.
-
Wie in 13 dargestellt wird anschließend die Messergebnisvergleichs-/Verzögerungsparamater-Festlegungseinheit Sw21 in der Leistungsvergleichssoftware SW2 betrieben und die Messergebnisdatei Fi1 der elektronischen Steuereinheit und die PC-Messergebnisdatei Fi2 werden verglichen und geprüft. Wie in 14 dargestellt berechnet die Messergebnisvergleichs-/Verzögerungsparameter-Festlegungseinheit Sw21 eine Anpassungszeit auf der Basis eines Unterschieds zwischen den Messergebnissen. Im dargestellten Beispiel werden Zeitunterschiede zwischen den Startzeiten tsE und tsP und den Endzeiten teE und teP verglichen und geprüft und ein Ergebnis hiervon wird in der Verzögerungsparameterdatei Fi3 gespeichert.
-
Anschließend wird der Leistungstest des Simulators erneut auf dem PC durch Verwenden der gespeicherten Verzögerungsparameterdatei Fi3 durchgeführt. Somit wird die PC-Messergebnisdatei Fi2 aktualisiert.
-
Die Messergebnisvergleichs-/Verzögerungsparamater-Festlegungseinheit Sw21 in der Leistungsvergleichssoftware SW2 wird betrieben und die Messergebnisdatei Fi1 der elektronischen Steuereinheit und die PC-Messergebnisdatei Fi2 werden verglichen und geprüft. Eine Anpassungszeit wird erneut auf der Basis eines Unterschieds zwischen den Messergebnissen berechnet und die Verzögerungsparameterdatei Fi3 zum Ausführen eines Betriebs näher an dem im aktuellen Computer wird erstellt.
-
Obgleich der Simulator nach der Zeitablaufanpassung in der PC-Messergebnisdatei Fi2 im Beispiel von 13 berücksichtigt und gespeichert ist, kann er an einem geeigneten Ort gespeichert sein. Das Verfahren für die zuvor beschriebene Zeitablaufanpassung kann von der Messergebnisvergleichs-/Verzögerungsparameter-Festlegungseinheit Sw21 automatisch durchgeführt werden; das Vergleichsergebnis kann aber auch an der Anzeige 107 über die Vergleichsergebnis-Anzeigeeinheit SW22 angezeigt werden und ein spezifischer Inhalt der Zeitablaufanpassung kann gemäß der Beurteilung des Entwicklers bestimmt und berücksichtigt werden.
-
Die rechte Seite von 14 zeigt ein Beispiel einer Startzeit und einer Endzeit im PC-Simulator nach der Zeitablaufanpassung. In diesem Beispiel legt in Bezug auf den aktuellen Messzeitbereich der elektronischen Steuereinheit (Startzeit tsE und Endzeit teE) im aktuellen Umgebungscomputer S der PC als eine Startzeit der Verarbeitung im PC eine Zeit mit einer Verzögerung zur Zeit tsE fest, wenn ein Verarbeitungsbefehl zu einer Zeit von ts0 empfangen, und wenn eine Zeit von te0 von einer Endzeit der Verarbeitung im PC verstreicht, bestimmt der PC, dass die Endzeit teE des aktuellen Messzeitbereichs der elektronischen Steuereinheit im aktuellen Umgebungscomputer S erreicht ist. Das heißt durch Festlegen der Vorstartzeit von ts0 und der Nachendzeit von te0 wird die Zeit im PC-Simulator angepasst, so dass sie näher an der Zeit in der elektronischen Steuereinheit im aktuellen Umgebungscomputer S ist.
-
Der zuvor beschriebene Ablauf ist in 14 wie folgt zusammengefasst. Zunächst wird die Anwendungssoftware SW1 und SW4 der elektronischen Steuereinheit jeweils auf dem PC und auf der aktuellen elektronischen Steuereinheit ausgeführt und eine Zeit wird an Messpunkten aufgezeichnet (Start und Ende der Funktion). Der Messzeitablauf in der aktuellen elektronischen Steuereinheit ist auf der linken Seite von 14 dargestellt und der Ausführungszeitablauf im PC-Simulator ist in der Mitte von 14 dargestellt. In der Leistungsvergleichssoftware SW2 auf dem PC werden das Messergebnis in der elektronischen Steuereinheit und das Messergebnis im PC vergleichen, eine Verzögerungsmenge zum Abdecken des Leistungsunterschieds wird berechnet und die Verzögerungsmenge wird in der Verzögerungsparameterdatei Fi3 gespeichert.
-
Anschließend wird, wenn der PC-Simulator ausgeführt wird, die aktualisierte Verzögerungsparameterinformation gelesen, die Verzögerungsverarbeitung wird bei Start und Ende der Funktion ausgeführt und anschließend wird die Anwendungssoftware SW1 der elektronischen Steuereinheit ausgeführt. Ein Verarbeitungszeitablauf, wenn die Verzögerungsverarbeitung ausgeführt wird, ist auf der rechten Seite von 14 dargestellt. Es ist ersichtlich, dass der Verarbeitungszeitablauf in der elektronischen Steuereinheit (linke Seite von 14) der Ausführungszeit im PC-Simulator ähnelt.
-
In der zuvor beschriebenen Ausführungsform 6 werden die Ausführungszeit und der Zeitablauf, gemessen in der aktuellen elektronischen Steuereinheit, in der Messergebnisdatei Fi1 der elektronischen Steuereinheit gespeichert. Hier gelten die Ausführungszeit und der Zeitablauf, gespeichert in der Messergebnisdatei Fi1 der elektronischen Steuereinheit, als Zieldaten zum Abgleich der Ausführungszeit und des Zeitablaufs, gespeichert in der PC-Messergebnisdatei Fi2. In der Ausführungsform 6 wurde das Verfahren beschrieben, in dem das Messen und Vergleichen auf dem PC nach dem Messen der Zieldaten im aktuellen Umgebungscomputer S durchgeführt werden; die Messung aber nicht im aktuellen Umgebungscomputer jedes Mal durchgeführt werden, wenn die Zieldaten vorab ermittelt und in der Messergebnisdatei Fi1 der elektronischen Steuereinheit gespeichert werden.
-
Ferner wird in der zuvor beschriebenen Ausführungsform ein Fall angenommen, in dem die Verarbeitungsgeschwindigkeit im PC höher als die im aktuellen Umgebungscomputer S und somit die Zeitablaufanpassungs-Verarbeitung die Verzögerungszeitverarbeitung ist. Wie jedoch in der Ausführungsform 3 und dergleichen beschrieben kann die vorliegende Erfindung ebenfalls auf einen Fall angewendet werden, in dem die Verarbeitungsgeschwindigkeit im PC niedriger als die im aktuellen Umgebungscomputer S. Im Sinne des Umfassens von beiden Fällen ist es angemessen, dass die Verzögerungsverarbeitung die Zeitablaufanpassungs-Verarbeitung ist. Im weiteren Sinne dient die vorliegende Erfindung zum Durchführen der Zeitablaufanpassung.
-
Die Zeitablaufanpassung in der vorliegenden Erfindung bezweckt nicht notwendigerweise einen vollständigen Abgleich mit der elektronischen Steuereinheit. Wenn beispielsweise ein Abgleich von etwa 90 % möglich ist, ist davon auszugehen, dass kein großer Nachteil in der Simulation besteht.
-
Ferner ist in der vorliegenden Erfindung der aktuelle Umgebungscomputer s beispielsweise die elektronische Steuereinheit und die vorliegende Erfindung besitzt die Eigenschaft, dass die elektronische Steuereinheit eine Leistungsmessfunktion zum Messen des Zeitablaufs aufweist, wenn die Anwendungssoftware ausgeführt wird, und die Messergebnisdatei der elektronischen Steuereinheit hält, die das Messergebnis speichert.
-
Ausführungsform 7
-
In der Ausführungsform 7 ist ein spezifisches Verarbeitungsbeispiel in Bezug auf 15 bis 21 beschrieben, in dem die Zeitablauf-Anpassungsfunktion auf ein Singletasking-Programm angewendet wird.
-
15 zeigt ein Diagramm zur Darstellung eines Beispiels der in der vorliegenden Erfindung verwendeten Programms in der Programmiersprache C, das mit dem in 5 dargestellten übereinstimmt. Auf eine ausführliche Beschreibung der Programmiersprache C wird zwar verzichtet, aber das in 15 dargestellte Programm in der Programmiersprache C ist ein einfaches Programm, in dem drei Mengen von func-Funktionen, die eine kleine Verarbeitungseinheit ausführen, eine func1-Funktion 172 (eeprom_read), eine func2-Funktion 173 (nw_send) und eine func3-Funktion 174 (eeprom_write) in einer Main-Funktion 171 (10ms_func) ausgeführt werden, welche die Verarbeitung in einem Zeitraum von 10 ms ausführt. Somit werden die Verarbeitung des Lesens von EEPROM, die Verarbeitung des Sendens an NW und die Verarbeitung des Schreibens auf EEPROM innerhalb von 10 ms ausgeführt, was einen von der Main-Funktion 171 spezifizierten Steuerzeitraum entspricht. Das Programm in der Programmiersprache C weist eine Funktion zum Speichern einer Startzeit und einer Endzeit der Verarbeitung auf.
-
Die Verarbeitung im PC und im aktuellen Umgebungscomputer S in der Ausführungsform der vorliegenden Erfindung wird vom zuvor beschriebenen Programm in der Programmiersprache C ausgeführt. 16 zeigt ein schematisches Fließbild zur Darstellung von Inhalten der Verarbeitung im PC und Verarbeitung im betreffenden Umgebungscomputer S, die zur Verzögerungsmengenbestimmung und Zeitablaufanpassung ausgeführt werden.
-
Die rechte Seite von 16 zeigt den Inhalt der Verarbeitung im PC und die linke Seite von 16 zeigt den Inhalt der Verarbeitung im aktuellen Umgebungscomputer S.
-
In einem Verarbeitungsablauf von 16 wird zunächst die Ausführungszeitmessung im Verarbeitungsschritt S141 in der aktuellen elektronischen Steuereinheit durchgeführt. Durch Ausführen eines im Programm beschriebenen Leistungsmesscodes wird der Ausführungszeitablauf im Verarbeitungsschritt S142 aufgezeichnet. Im Verarbeitungsschritt S143 wird der von der aktuellen elektronischen Steuereinheit aufgezeichnete Ausführungszeitablauf von der Messergebnis-Sendeeinheit SW42 der aktuellen elektronischen Steuereinheit an den mit dem gleichen Netzwerk verbundenen PC gesendet. Der PC speichert das empfangene Messergebnis als die Messergebnisdatei Fi1 der elektronischen Steuereinheit.
-
Anschließend wird auf dem PC in Prozessschritt S144 das Programm in der PC-Simulationsumgebung ausgeführt und der Ausführungszeitablauf wird aufgezeichnet. Der Ausführungszeitablauf wird durch Ausführen des im Programm beschriebenen Leistungsmesscodes unter Verwendung eines Einstellwerts der Verzögerungsparameterdatei Fi3 auf dem PC. Ferner wird im Verarbeitungsschritt S145 der in der PC-Simulationsumgebung aufgezeichnete Ausführungszeitablauf in der PC-Messergebnisdatei Fi2 gespeichert.
-
17 zeigt ein Beispiel von Konfigurationen von in der Messergebnisdatei Fi1 der elektronischen Steuereinheit und der durch die zuvor beschriebene Verarbeitung erzeugten PC-Messergebnisdatei Fi2 gebildeten Daten. Diese Dateien werden im gleichen Format erzeugt und die von der elektronischen Steuereinheit aufgezeichneten Informationen und die vom PC aufgezeichneten Informationen sind die gleichen.
-
Als horizontale Achsenelemente der Dateien Fi1 und Fi2 in 17 werden vier Informationen umfassend eine Zeit (301 und 305), eine Betriebsaufgabe (302 und 306), einen Funktionsnamen (303 und 307) und einen Messzeitablauf (Start/Ende) (304 und 308) aufgezeichnet. Eine Ausführungszeit und eine Betriebsaufgabe werden unter Verwendung eines Zeitmesscodes in einem Startteil und einem Endteil einer Funktion zum Messen durch das Programm in der Programmiersprache C aufgezeichnet. In der vorliegenden Ausführungsform ist Singletasking als ein Beispiel beschrieben, und da die Zahl der Aufgaben 302 und 306 gleich Eins ist, sind alle Aufgaben die Aufgabe A.
-
Die Messergebnisdatei Fi1 der elektronischen Steuereinheit gibt an, dass für die Aufgabe A eine Startzeit der Main-Funktion 171 (10ms_func) t0 ist, eine Startzeit der func1-Funktion 172 (eeprom_read) t2 ist, eine Endzeit der func1-Funktion 172 (eeprom_read) t6 ist, eine Startzeit der func2-Funktion 173 (nw_send) t9 ist, eine Endzeit der func2-Funktion 173 (nw_send) t11 ist, eine Startzeit der func3-Funktion 174 (eeprom_write) t12 ist, eine Endzeit der func3-Funktion 174 (eeprom_write) t13 ist, eine Endzeit der Main-Funktion 171 (10ms_func) t14 ist und Daten in der vorhergehenden Reihenfolge erzeugt werden.
-
Ebenso gibt die PC-Messergebnisdatei Fi2 an, dass für die Aufgabe A eine Startzeit der Main-Funktion 171 (10ms_func) t0 ist, eine Startzeit der func1-Funktion 172 (eeprom_read) t1 ist, eine Endzeit der func1-Funktion 172 (eeprom_read) t3 ist, eine Startzeit der func2-Funktion 173 (nw_send) t4 ist, eine Endzeit der func2-Funktion 173 (nw_send) t5 ist, eine Startzeit der func3-Funktion 174 (eeprom_write) t7 ist, eine Endzeit der func3-Funktion 174 (eeprom_write) t8 ist, eine Endzeit der Main-Funktion 171 (10ms_func) t10 ist und Daten in der vorhergehenden Reihenfolge erzeugt werden.
-
18 zeigt ein Diagramm zur Darstellung einer Zeitbeziehung vor und nach einer Zeitablaufanpassung. Zwei Spalten auf der linken Seite von 18 zeigen eine Situation, in der die Zeitbeziehung von 17 gemessen wird. Wie für die elektronische Steuereinheit werden die untergeordneten Funktionen 172, 173 und 174 nacheinander innerhalb von 10 ms, spezifiziert durch die übergeordnete Funktion 171, ausgeführt und jede Startzeit und jede Endzeit sind in einer linken vertikalen Achse angegeben. Wie für den PC werden die untergeordneten Funktionen 172, 173 und 174 nacheinander in der übergeordneten Funktion 171 ausgeführt; wie aber von jeder Startzeit und jeder Endzeit ersichtlich wird, wenn der PC eine höhere Leistung und eine höhere Geschwindigkeit aufweist als des aktuellen Umgebungscomputers S, eine Reihe von Verarbeitungen der untergeordneten Funktionen abgeschlossen, bevor 10 ms, wie von der übergeordneten Funktion 171, spezifiziert, verstreichen.
-
Nachdem Messergebnisse der elektronischen Steuereinheit und des PCs ermittelt sind, wird die Leistungsvergleichssoftware SW2 zum Vergleichen der Messergebnisse verwendet, eine Verzögerungsmenge zum Einspritzen wird in der PC-Simulationsumgebung bestimmt und die Verzögerungsparameterdatei Fi3 wird aktualisiert. 19 zeigt einen spezifischen Verarbeitungsablauf der Aktualisierung der Verzögerungsparameterdatei Fi3, deren Verarbeitung hier ausgeführt wird.
-
Eine Verzögerungsmenge wird aus der Verzögerungsparameterdatei Fi3 im Verarbeitungsschritt S151 ermittelt, der die erste Verarbeitung im Verarbeitungsablauf von 19 darstellt, die Zeitmessung unter Verwendung der Verzögerungsparameterdatei Fi3 wird in der PC-Simulationsumgebung im Verarbeitungsschritt S152 durchgeführt und ein Ausführungsergebnis wird in der PC-Messergebnisdatei Fi2 im Verarbeitungsschritt S153 gespeichert. Der Verarbeitungsablauf ist hier wie in 16 dargestellt. Da die Reihe von Verarbeitungen wiederholt mehrmals während des Änderns eines Verzögerungsparameters ausgeführt wird, wird die Zahl von Malen der Wiederholung gezählt, während die Zahl von Malen der Ausführung im Verarbeitungsschritt S160 aktualisiert wird.
-
Im Verarbeitungsschritt S154 werden das Messergebnis der elektronischen Steuereinheit und das PC-Messergebnis verglichen, um einen Leistungsunterschied zu berechnen, und ein spezifischer Verarbeitungsinhalt hiervon wird beschrieben. In diesem Fall gibt es mehrere Funktionen (Main-Funktion und eine Vielzahl von func-Funktionen) in der Programmiersprache C, deren Ausführungszeiten zu vergleichen sind, und es gibt eine Aufrufbeziehung zwischen den jeweiligen Funktionen. Daher werden die Funktionen vom Leistungsvergleich und einer Gruppe mit kleinen Teilen der Verarbeitung (Funktionen, die nicht von anderen aufgerufen werden) ausgeführt.
-
20 zeigt ein Beispiel einer Verzögerungsparametertabelle in einem Ausgangszustand vor dem Leistungsvergleich. In 20 umfassen horizontale Achsenelemente einen Funktionsnamen, einen Aufgabennamen, einen Namen der aufrufenden Funktion, eine Anpassungsgruppe 181, Start/Ende, eine Verzögerungsmenge und Anmerkungen. Im Beispiel von 15 sind als die Funktionsnamen jede der Main-Funktion 171, die eine übergeordnete Funktion ist, und der func-Funktionen 172, 173 und 174, die untergeordnete Funktionen sind, in Zeilen entsprechend jeweils dem Start und dem Ende beschrieben. Der Aufruffunktionsname beschreibt die übergeordnete Funktion, wenn von den untergeordneten Funktionen betrachtet, und da es sich um den Ausgangszustand vor dem Leistungsvergleich handelt, ist die Spalte der Verzögerungsmenge auf 0 festgelegt. In dieser Tabelle ist die Anpassungsgruppe 181 für jede Überordnung-Unterordnung-Beziehung festgelegt, eine Anpassungsgruppe „2“ ist für die übergeordnete Funktion festgelegt und eine Anpassungsgruppe „1“ ist für die untergeordnete Funktion festgelegt.
-
Die Anpassung im Verarbeitungsschritt S154 wird in der Reihenfolge von der kleinsten Anpassungsgruppe 181, beschrieben in der Verzögerungsparametertabelle von 20, durchgeführt. In der vorliegenden Ausführungsform werden als kleinste Funktion die Funktionen (eeprom_read), (nw_send) und (eeprom_write), welche die func-Funktionen 172, 173 und 174, ranggeordnet als die Anpassungsgruppe „1“, zuerst ausgewählt und in dieser Reihenfolge ausgeführt.
-
In der Beschreibung der in 17 und 18 dargestellten Zeitbeziehung sind die Ausführungszeiten der Funktionen (eeprom_read), (nw_send) und (eeprom_write) vom Start zum Ende in der aktuellen elektronischen Steuereinheit jeweils (t6 - t2), (t11 - t9) und (t13 - t12) und die Ausführungszeiten in der PC-Simulationsumgebung sind jeweils (t3 - t1), (t5 - t4) und (t8 - t7).
-
Im Verarbeitungsschritt S155 des Verarbeitungsablaufs von 19 wird zuerst für die untergeordnete Funktion (eeprom_read) bestimmt, ob ein Unterschied in der Ausführungszeit zwischen der aktuellen elektronischen Steuereinheit und der PC-Simulationsumgebung größer ist als ein Schwellenwert. Wenn der Unterschied größer ist als der Schwellenwert, fährt der Verarbeitungsablauf mit dem Verarbeitungsschritt S156 fort und die Verzögerungsmengen-Berechnungsverarbeitung zum Ausführen der Verzögerungsverarbeitung für eine benannte Zeit in der PC-Simulationsumgebung wird ausgeführt. In einem Fall der untergeordneten Funktion (eeprom_read) wird ein Unterschied in der Ausführungszeit als ((t6 - t2) - (t3 - t1)) berechnet.
-
Im Verarbeitungsschritt S157 wird die Verzögerungsmenge für jede Funktion aktualisiert. Zunächst wird die Verzögerungsmenge für die untergeordnete Funktion (eeprom_read) aktualisiert. Hier wird die Verzögerungsverarbeitung in der PC-Simulationsumgebung durch den Unterschied in der Ausführungszeit ausgeführt, was das Anpassen der Verarbeitungszeit in der PC-Simulationsumgebung ermöglicht, so dass diese näher an der Verarbeitungszeit in der aktuellen elektronischen Steuereinheit ist. Da die Verzögerungsmengenanpassung an zwei Punkten erfolgt, das heißt wenn die Funktion startet und wenn die Funktion endet, wird eine durch Dividieren des Unterschieds in der Ausführungszeit durch zwei ermittelte Menge als die Verzögerungsmenge in die Verzögerungsparameterdatei Fi3 geschrieben.
-
Die Unterschiede in der Ausführungszeit der Funktionen (nw_send) und (eeprom_write), ermittelt durch die folgende wiederholte Verarbeitung, sind jeweils ((t11 - t9) - (t5 - t4)) und ((t13 - t12) - (t8 - t7)).
Ebenfalls für diese werden Verarbeitungsschritt S156 und Verarbeitungsschritt S157 durchgeführt und es wird die Verzögerungsmenge für jede untergeordnete Funktion bestimmt.
-
21 zeigt eine Verzögerungsparametertabelle in einem ersten Schritt (Schritt 1), in der die Verzögerungsmenge für jede untergeordnete Funktion in der Verzögerungsparametertabelle im Ausgangszustand von 20 widergespiegelt wird. Somit werden die Aktualisierungsdaten der Verzögerungsmengen der Funktionen (eeprom_read), (nw_send) und (eeprom_write), die untergeordnete Funktionen sind, hier widergespiegelt. Die zuvor berechneten Verzögerungsmengen sind an sechs Punkten 182 bis 187 geschrieben.
-
Beispiele der Verzögerungsverarbeitung umfassen die Verarbeitung des Durchführens einer unrentablen Operation, durchgeführt für die Verzögerungszeit, oder die Verarbeitung einer unnötigen Ausführung einer While-Schleife statt eines Setzens der Aufgabe in den Schlafmodus.
-
Anschließend wird im Verarbeitungsschritt S158 von 19, wenn die Anpassung der Funktionen (eeprom_read), (nw_send) und (eeprom_write), die untergeordnete Funktionen sind, abgeschlossen ist, bestimmt, ob eine Funktion, die keiner Zeitablaufanpassung unterworfen ist, vorhanden ist oder nicht.
-
Eine Zeitbeziehung der Verarbeitung im Simulator in einem Zustand, in dem die Anpassung der untergeordneten Funktion endet, ist als ein Beispiel in „Schritt 1“ dargestellt, welcher der zweite von rechts in 18 ist. Wie für die Beziehung mit der elektronischen Steuereinheit stimmen die Zeitbeziehungen der untergeordneten Funktionen nahezu mit denen in der elektronischen Steuereinheit überein. In der Phase, in der die Anpassung der untergeordneten Funktion insgesamt endet, erfolgt ein Abgleich mit der Ausführungszeit in der elektronischen Steuereinheit ausschließlich durch eine durch 431 angegebene Zeitlänge und ein Zeitabgleich eines Abschnitts entsprechend einer Zeitlänge 432 erfolgt nach wie vor nicht.
-
In einem zweiten Schritt (Schritt 2) wird eine Ausführungszeitablauf-Anpassung für die Funktion (10ms_func), welche die Funktion (die übergeordnete Funktion, welche die zuvor beschriebenen untergeordneten Funktionen aufruft) ist, die in der in der Verzögerungsparametertabelle in 20 beschriebenem Anpassungsgruppe „2“ beschrieben ist. Die Zeitablaufanpassungs-Verarbeitung für die übergeordnete Funktion startet nach dem Bestätigen des Abschlusses aller untergeordneten Funktion im Verarbeitungsschritt S158 von 19 und Initialisieren der Zahl von Malen der Ausführung zu 0 im Verarbeitungsschritt S159. Die Zeitablaufanpassungs-Verarbeitung für die übergeordnete Funktion erfolgt durch sequentielles und wiederholtes Durchführen der Verarbeitungsschritte S151, S152, S153, S160, S154, S155, S161, S156 und S157 so viele Male wie erforderlich, ähnlich einem Fall der untergeordneten Funktionen.
-
Ein Ausführungszeitablauf, wenn die Verarbeitung von Verarbeitungsschritt S151 in 19 erneut ausgeführt wird und der Leistungsunterschied mit der aktuellen elektronischen Steuereinheit erneut gemessen wird, ist als „Schritt 2“ auf der rechten Seite von 18 beschrieben und ist ein Ausführungszeitablauf, in dem ein Zeitabgleich eines Abschnitts entsprechend der Zeitlänge 432 erfolgt. Dieser Ausführungszeitablauf wird durch Verzögern eines Ausführungsstart-Zeitablaufs der übergeordneten Funktion um die Hälfte der Zeitlänge 432 erzielt.
-
Somit muss in der PC-Umgebung ein Zeitablauf, nachdem eine Zeit entsprechend der Hälfte der Zeitlänge 432 von einem Ausführungsend-Zeitablauf der übergeordneten Funktion verstreicht, einem Endzeitablauf in der Umgebung der elektronischen Steuereinheit entsprechen.
-
Gemäß der Reihe von Verarbeitungen in 19 wird die Verzögerungsverarbeitung zuerst für die untergeordnete Funktion ausgeführt und anschließend wird die Verzögerungsverarbeitung für die übergeordnete Funktion ausgeführt, um die Verarbeitung zu beenden. Hier wird die Bestimmung des Endes der Verarbeitung durch Bestätigen, dass eine Funktion, die keiner Zeitablaufanpassung unterworfen ist, im Verarbeitungsschritt S158 nicht vorhanden ist, abgeschlossen.
-
In der Reihe von Verarbeitungen wird vorzugsweise die folgende Verarbeitung zusätzlich durchgeführt. Zuerst liegt im Verarbeitungsschritt S161 die Zahl von Malen der Wiederholung der Verzögerungsverarbeitung der Funktion innerhalb einer vorbestimmten oberen Grenze (im Beispiel von 20 8 ermittelt durch 4 (Zahl von Funktionen) * 2 (Start/Ende)) und die Verzögerungsverarbeitung wird nicht mehr als die obere Grenze wiederholt.
-
Es wird ebenfalls vorzugsweise ein Fall angenommen, in dem die Verzögerungsmengen-Anpassungsverarbeitung unter Verwendung der Leistungsvergleichssoftware SW2 nicht endet. Ein Leistungsanpassungsablauf zu dieser Zeit ist in Bezug auf 19 beschrieben. Beispielsweise kann sich eine Operation von einer Funktion aufgrund einer Änderung im Ausführungszeitablauf einer anderen Funktion ändern. Ein Fall, in dem eine fehlerhafte Verarbeitung zu einer normalen Verarbeitung umgeschaltet wird oder dergleichen, kann ein Beispiel sein.
-
In 19 wird in einem Fall, in dem der Leistungsunterschied nicht kleiner ist als der Schwellenwert in der Bestimmungsbedingung von Verarbeitungsschritt S155 und die Bestimmungsbedingung von Verarbeitungsschritt S161 „Ja“ ist (die Zahl von Malen der Ausführung überschreitet die obere Grenze), der Schwellenwert geändert. Im Prozessschritt S162 von 19 wird die Verzögerungsmengenanpassung mit einem reduzierten zulässigen Leistungsunterschied durchgeführt. In einem Fall, in dem eine erneute Anpassung durchgeführt wird, die Zahl von Malen der Ausführung die obere Grenze erreicht und der Leistungsunterschied nicht kleiner ist als der Schwellenwert (in einem Fall, in dem das Ergebnis des Verarbeitungsschritts S163, der die Bestimmungsbedingung ist, „Nein“ ist), wird bestimmt, dass die Zeitablaufanpassung nicht durchgeführt werden kann, und im Prozessschritt S164 von 19 wird der Inhalt der Verzögerungsparameterdatei Fi3 initialisiert (keine Verzögerungseinspritzung) und die Leistungsanpassungsverarbeitung endet.
-
Mit den vorhergehenden Schritten endet die Verzögerungsmengenanpassung für einen PC in der PC-Simulationsumgebung. Im Allgemeinen unterscheidet sich der Typ (HW-Spezifikation) des von jedem Entwickler verwendeten PCs; aber der Ausführungszeitablauf in der PC-Simulationsumgebung kann für jeden Entwickler so angepasst werden, dass er näher an dem in der aktuellen elektronischen Steuereinheit so, indem die Verzögerungsmengenanpassung für jeden PC durchgeführt wird.
-
Ausführungsform 8
-
Obgleich Ausführungsform 7 einen Fall beschrieben hat, in dem die Verzögerungsmengenbestimmung die Zeitablaufanpassung in der Singletasking-Umgebung durchgeführt werden, wird die Anwendungssoftware der elektronischen Steuereinheit häufig in der Multitasking-Umgebung ausgeführt.
-
In der Multitasking-Umgebung erfolgt die Kontextumschaltung auf der Basis der Aufgabenpriorität. Eine Endzeit einer Funktion ändert sich abhängig davon, ob eine Kontextumschaltung erfolgt oder nicht.
-
In Ausführungsform 8 kann zur Zeit der Berechnung einer Ausführungszeit einer Funktion in der Leistungsvergleichssoftware SW2, selbst wenn die Kontextumschaltung erfolgt, eine aktuelle Verarbeitungszeit durch Berücksichtigen der Operationsaufgabeninformation berechnet werden.
-
Eine Information zu zwei Aufgaben, verwendet in der vorliegenden Ausführungsform, ist in 22 dargestellt und wird beschrieben.
-
22 zeigt ein Beispiel eines Inhalts einer Messergebnisdatei und einen Ausführungszeitablauf von jeder Aufgabe, wenn eine Kontextumschaltung von Aufgaben erfolgt.
-
In diesem Beispiel sind die Aufgaben A und B vorhanden und sowohl A als auch B sind Aufgaben, die durch ein Zeitgeberereignis aktiviert werden und die Verarbeitung periodisch ausführen. Die Aufgabe B hat aber eine höhere Priorität und die Aufgabe mit einer höheren Priorität wird während der Ausführung der Aufgabe A aktiviert.
-
In der Zeitreihe startet die Aufgabe A mit der Verarbeitung ausgelöst von einem Zeitgeberereignis 201 von einer Zeit t0. Wenn ein Zeitgeberereignis 202 der Aufgabe B zu einer Zeit t1 während der Ausführung der Verarbeitung der Aufgabe A ausgegeben wird, wird die Ausführung der Aufgabe A unterbrochen und die Verarbeitung der Aufgabe B startet gemäß der Priorität. Anschließend endet die Verarbeitung der Aufgabe B zu einer Zeit t2, die Verarbeitung der Aufgabe A wird wiederaufgenommen und schließlich endet die Aufgabe A zu einer Zeit t3.
-
Hier werden eine Startzeit und eine Endzeit, gespeichert zum Anpassen eines Zeitablaufs, für jede Aufgabe verwaltet und jede Aufgabe speichert die Startzeit und die Endzeit. 23 zeigt ein Beispiel einer Startzeit und einer Endzeit, gespeichert in jeder Aufgabe. Bei einem Multitasking wird eine aktuelle Ausführungszeit durch Subtrahieren einer Zeit, während der eine andere Aufgabe ausgeführt wird, von einer Ausführungszeit einer Funktion berechnet.
-
Beispielsweise kann eine Ausführungszeit der durch die Aufgabe B unterbrochenen Aufgabe A durch ((t3 - t0) - (t2 - t1)) berechnet werden, wobei eine Startzeit und eine Endzeit einer Funktion (func_a) der Aufgabe A jeweils t0 und t3 sind, und eine Startzeit und eine Endzeit einer Funktion (func_b) der Aufgabe B jeweils t1 und t2 sind.
-
In der vorliegenden Erfindung wie zuvor beschrieben weist die Software der elektronischen Steuereinheit eine Zeitmessfunktion und eine Verzögerungseinspritzfunktion auf. Die Software wird in der aktuellen elektronischen Steuereinheit und der PC-Simulationsumgebung ausgeführt und ein Ausführungszeitablauf (eine nach der Aktivierung verstrichene Zeit) wird aufgezeichnet.
-
Eine Leistungsvergleichssoftware mit einer Funktion zum Vergleichen von Inhalten von Verarbeitungszeitablauf-Daten, die Ausführungszeitabläufe in der aktuellen elektronischen Steuereinheit und im PC-Simulator speichern, Bestimmen der Menge der in den PC-Simulator eingegebenen Verzögerungsmenge auf der Basis eines Unterschieds in der Verarbeitungszeit und Speichern der bestimmten Verzögerungsmenge in einer Datei wird erstellt.
-
Unter Verwendung der Information in einer durch Ausführen der Leistungsvergleichssoftware aktualisierten Verzögerungsparameterdatei wird die Anwendungssoftware der elektronischen Steuereinheit erneut in der PC-Simulationsumgebung ausgeführt. Durch Ausführen der Verzögerungsverarbeitung mit einer angepassten Verzögerungsmenge in der PC-Simulationsumgebung kann der Ausführungszeitablauf in der PC-Simulationsumgebung so angepasst werden, dass er näher an dem in der aktuellen elektronischen Steuereinheit ist.
-
In der Zeitmessung erfolgt eine Aufzeichnung bei Start und Ende einer Funktion, deren Ausführungszeitablauf anzupassen ist. Ferner wird die Verzögerungsverarbeitung unmittelbar nach der Zeitmessung bei Start der Funktion und unmittelbar vor der Zeitmessung unmittelbar nach Ende der Funktion ausgeführt. Die Verzögerungsverarbeitung kann bei einer beliebigen von diesen oder bei beiden ausgeführt werden.
-
Wenn der HW-Prototyp der elektronischen Steuereinheit nicht erstellt ist, kann eine CPU-Bewertungsplatte oder eine Hardware der elektronischen Steuereinheit, welche die Basis der Entwicklung bildet, verwendet werden, es kann ein Ausführungszeitablauf darin als Information zu einem Ausführungszeitablauf in der elektronischen Steuereinheit gespeichert werden und die Information kann als ein Ausführungszeitablauf in der aktuellen elektronischen Steuereinheit verwendet werden.
-
Bezugszeichenliste
-
- 101
- Systembus
- 102
- CPU
- 103
- Hauptspeichervorrichtung
- 104
- HDD
- 105
- Tastatur
- 106
- Maus
- 107
- Anzeige
- 108
- ROM
- S
- aktuelle Umgebungsmaschine
- PC (PCa, PCb, ..., PCn)
- Personalcomputer
- 180
- Kommunikationsvorrichtung
- 181
- externer Systembus
- Sw1
- Anwendungssoftware der elektronischen Steuereinheit
- Sw2
- Leistungsvergleichssoftware
- Sw3
- Kommunikationssoftware
- SW11
- Verzögerungseinspritzfunktion
- SW12
- Leistungsmessfunktion
- SW21
- Messergebnisvergleich/Verzögerungsparameter-Festlegungseinheit
- SW22
- Vergleichsergebnis-Anzeigeeinheit
- SW31
- Messergebnis-Empfangseinheit
- Fi1
- Messergebnisdatei der elektronischen Steuereinheit
- Fi2 PC-
- Messergebnis
- Fi3
- Verzögerungsparameterdatei
- SW4
- Anwendungssoftware der elektronischen Steuereinheit
- SW41
- Leistungsmessfunktion
- SW42
- Messergebnis-Sendeeinheit
- Fi4
- Messergebnisdatei der elektronischen Steuereinheit
-
ZITATE ENTHALTEN IN DER BESCHREIBUNG
-
Diese Liste der vom Anmelder aufgeführten Dokumente wurde automatisiert erzeugt und ist ausschließlich zur besseren Information des Lesers aufgenommen. Die Liste ist nicht Bestandteil der deutschen Patent- bzw. Gebrauchsmusteranmeldung. Das DPMA übernimmt keinerlei Haftung für etwaige Fehler oder Auslassungen.
-
Zitierte Patentliteratur
-