DE102007059524B4 - Verfahren zum Erzeugen einer Betriebssoftware auf einem Steuergerät für ein Kraftfahrzeug sowie Steuergerät - Google Patents

Verfahren zum Erzeugen einer Betriebssoftware auf einem Steuergerät für ein Kraftfahrzeug sowie Steuergerät Download PDF

Info

Publication number
DE102007059524B4
DE102007059524B4 DE102007059524A DE102007059524A DE102007059524B4 DE 102007059524 B4 DE102007059524 B4 DE 102007059524B4 DE 102007059524 A DE102007059524 A DE 102007059524A DE 102007059524 A DE102007059524 A DE 102007059524A DE 102007059524 B4 DE102007059524 B4 DE 102007059524B4
Authority
DE
Germany
Prior art keywords
control unit
software
operating software
motor vehicle
data source
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
DE102007059524A
Other languages
English (en)
Other versions
DE102007059524A1 (de
Inventor
Achim Przymusinski
Frank Queisser
Wolfgang Dr. Östreicher
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Vitesco Technologies GmbH
Original Assignee
Continental Automotive GmbH
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Continental Automotive GmbH filed Critical Continental Automotive GmbH
Priority to DE102007059524A priority Critical patent/DE102007059524B4/de
Priority to US12/331,491 priority patent/US8346430B2/en
Publication of DE102007059524A1 publication Critical patent/DE102007059524A1/de
Application granted granted Critical
Publication of DE102007059524B4 publication Critical patent/DE102007059524B4/de
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/60Software deployment
    • G06F8/61Installation
    • G06F8/64Retargetable
    • FMECHANICAL ENGINEERING; LIGHTING; HEATING; WEAPONS; BLASTING
    • F02COMBUSTION ENGINES; HOT-GAS OR COMBUSTION-PRODUCT ENGINE PLANTS
    • F02DCONTROLLING COMBUSTION ENGINES
    • F02D41/00Electrical control of supply of combustible mixture or its constituents
    • F02D41/24Electrical control of supply of combustible mixture or its constituents characterised by the use of digital means
    • F02D41/2406Electrical control of supply of combustible mixture or its constituents characterised by the use of digital means using essentially read only memories
    • F02D41/2425Particular ways of programming the data
    • FMECHANICAL ENGINEERING; LIGHTING; HEATING; WEAPONS; BLASTING
    • F02COMBUSTION ENGINES; HOT-GAS OR COMBUSTION-PRODUCT ENGINE PLANTS
    • F02DCONTROLLING COMBUSTION ENGINES
    • F02D41/00Electrical control of supply of combustible mixture or its constituents
    • F02D41/24Electrical control of supply of combustible mixture or its constituents characterised by the use of digital means
    • F02D41/26Electrical control of supply of combustible mixture or its constituents characterised by the use of digital means using computer, e.g. microprocessor
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/60Software deployment
    • G06F8/61Installation

Landscapes

  • Engineering & Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Chemical & Material Sciences (AREA)
  • Combustion & Propulsion (AREA)
  • Mechanical Engineering (AREA)
  • Computer Hardware Design (AREA)
  • Microelectronics & Electronic Packaging (AREA)
  • Stored Programmes (AREA)

Abstract

Verfahren zum Erzeugen einer Betriebssoftware auf einem Steuergerät (1) für ein Kraftfahrzeug durch Ausführen einer Steuerungssoftware im Steuergerät (1), das die folgenden Schritte umfasst:
a) Ausführen einer Diagnosefunktion im Kraftfahrzeug, mit der eine Konfiguration des Kraftfahrzeugs feststellbar ist, so dass die durch das Steuergerät (1) zu erfüllenden Funktionen eindeutig definiert sind, anschließend
b) Auswählen nur von erforderlichen Softwarekomponenten von einer externen Datenquelle (2), so dass die Konfiguration des Kraftfahrzeugs mit der Betriebssoftware auf dem Steuergerät (1) abbildbar ist, und
c) Übertragen der ausgewählten Softwarekomponenten in das Steuergerät (1) und anschließend
d) Erzeugen der komponentenindividuellen lauffähigen Betriebssoftware auf dem Steuergerät (1) unter Einbezug der ausgewählten Softwarekomponenten.

Description

  • Die vorliegende Erfindung betrifft ein Verfahren zum Erzeugen einer Betriebssoftware auf einem Steuergerät für ein Kraftfahrzeug. Die Erfindung betrifft auch ein Steuergerät für ein Kraftfahrzeug. Steuergeräte in Kraftfahrzeugen werden mit einer Betriebssoftware ausgestattet, damit sie ihre jeweils vorgesehenen Aufgaben im Kraftfahrzeug erfüllen können. In den heutigen Systemen werden lauffähige Programme im Vorfeld der Produktion erzeugt und der Montagelinie fertig zur Verfügung gestellt. Varianten in den Zielsystemen, also individuelle Eigenschaften der jeweiligen Steuergeräte, mit Einfluss auf die auf ihnen ausführbaren Programme werden entweder durch Berücksichtigung in der Parametrierung und Aktivierung von Codeteilen oder durch automatische Selektion von bereits codierten Varianten berücksichtigt. Dabei ist die Betriebssoftware mit ihren möglichen Varianten und Codeteilen auf einem Speicher des Steuergeräts abgelegt.
  • Ein Problem ist dabei die Vielfalt in der Praxis möglicher Varianten der Betriebssoftware. Insbesondere lassen sich mit der herkömmlichen Variantencodierung und Parametrierung der Software viele verbaute Komponentenvarianten, wie z. B. fahrzeugspezifische Kommunikationsprotokolle oder OEM spezifische Funktionsstrategien nicht, oder nur mit sehr hohem Ressourcenverbrauch auf dem Mikrocontroller des Steuergeräts konfigurieren. Insbesondere sind dabei viele unterschiedliche Softwareversionen bzw. große und schnelle Flashspeicher des Steuergeräts notwendig, in denen die verschiedenen möglichen Varianten abgelegt sind und ausgeführt werden. Dadurch besteht ein hoher Bedarf an Ressourcen, insbesondere Speicher platz und Laufzeit auf dem Steuergerätespeicher. Es resultieren hohe Entwicklungs- und Logistikkosten bzw. ein erhöhter Teilepreis.
  • In der Veröffentlichung von Frenzel, P. et al.: „Extending the Reflexion Method for Consolidating Software Variants into Product Lines", 14th working conference an reverse engineering, 28. bis 31. Oktober 2007, ist ein Verfahren zum Vergleichen von Softwarevarianten beschrieben, die durch „cloning-at-the-large" erzeugt wurden.
  • DE 101 53 447 A1 beschreibt ein Verfahren zur Programmierung eines Steuergeräts eines Fahrzeugs, bei dem über eine Programmiervorrichtung in einem Speicher des Steuergeräts ein Fahrzeugtyp angepasster Arbeitsprogrammsatz und/oder ein Fahrzeugtyp angepasster Applikationsdatensatz abgespeichert wird.
  • DE 102 34 063 B4 beschreibt ein Verfahren zum variantenspezifischen Programmieren eines Programm- und Datenspeichers eines Steuergeräts, wobei ein Speicher ein Basisprogramm und mehrere variantenspezifische Programmänderungsinformationen sowie ein Basisdatensatz und mehrere variantenspezifische Datenänderungsinformationen abgelegt sind. Zur Programmierung wird eine bestimmte variantenspezifische Programmänderungsinformation und Datenänderungsinformation über eine dem Steuergerät zu gebende Auswahlinformation gewählt und das Basisprogramm und der Basisdatensatz werden automatisch gemäß der Programm- und der Datenänderungsinformation geändert. Ein Steuergerät und Netzwerk für eine Mehrzahl von Vorrichtungen mit einem dazugehörigen Implementierungsverfahren ist in WO 2005/006091 A1 beschrieben. Das Implementierungsverfahren umfasst die Schritte:
    a) Ermitteln aller Vorrichtungen eines spezifischen Fahrzeugs, b) Untersuchen der ermittelten Vorrichtungen im Hinblick auf ihre jeweiligen Anforderungen an ein Steuergerät sowie Zuordnen der Vorrichtungen zu einer Domäne, c) Zusammenstellen des Softwarepakets sowie d) Einspielen des zusammengestellten Softwarepakets auf das Steuergerät.
  • Weiterhin ist ein Verfahren und eine Vorrichtung zur Steuerung von Betriebsabläufen in einem Fahrzeug in DE 199 64 013 A1 beschrieben. Die Steuerung erfolgt durch wenigstens eine Steuereinheit mit wenigstens einem nicht flüchtigen Speichermittel, wobei die Steuerung abhängig von der jeweiligen Ausführungsvariante des Fahrzeugs und/oder der Steuereinheit durchgeführt wird und bei einer Funktionsauswahl durch Vorgabe einer Kennung die jeweiligen Funktionen entsprechend der eingesetzten Ausführungsvarianten ausgewählt werden.
  • Ausgehend von dem voran erläuterten Stand der Technik liegt der Erfindung daher die Aufgabe zugrunde, eine individuelle Betriebssoftware für ein Steuergerät mit hoher Flexibilität und geringem Ressourcenbedarf zu erstellen.
  • Diese Aufgabe wird erfindungsgemäß durch die Gegenstände der unabhängigen Ansprüche 1 und 10 gelöst. Weitere Lösungen des Problems finden sich in den Ansprüchen 11 und 12. Vorteilhafte Ausgestaltungen und Weiterbildungen der Erfindung sind in den abhängigen Ansprüchen sowie der Beschreibung und der Zeichnung enthalten.
  • Für ein eingangs genanntes Verfahren zum Erzeugen einer Betriebssoftware auf einem Steuergerät für ein Kraftfahrzeug wird die Aufgabe gemäß der Erfindung dadurch gelöst, dass aus einer externen Datenquelle eine für den jeweiligen Einsatz des Steuergeräts individuelle Betriebssoftware auf dem Steuergerät erzeugt wird. Entsprechend wird die Aufgabe für ein Steuergerät der eingangs genannten Art dadurch gelöst, dass es eine nach dem erfindungsgemäßen Verfahren individuell erzeugte Betriebssoftware aufweist.
  • Der Erfindung liegt der Gedanke zugrunde, die Betriebssoftware, insbesondere eine Echtzeitsoftware, für das jeweilige Zielsystem maßgeschneidert aus einer externen Datenquelle zu erstellen. Dazu wird die Betriebssoftware aus der externen Datenquelle ausgewählt bzw. zusammengestellt und auf dem Steuergerät installiert bzw. programmiert. Es ist dabei möglich, die Software aus der Datenquelle auszuwählen und die Softwarekomponenten erst auf dem Steuergerät zu einem lauffä higen Code zusammenzustellen, also insbesondere zu compilieren und zu verlinken oder aus fertig gelinkten Codeteilen zusammenzusetzen. Es ist aber auch möglich, die Software bereits auf der externen Datenquelle zu compilieren und zu verlinken, und die fertige Software auf das Steuergerät zu übertragen. Auf diese Weise werden weitere Laufzeit und Speicher des Steuergeräts gespart.
  • Die Betriebssoftware ist ein lauffähiger Programmcode für echtzeitfähige (embedded) Systeme, insbesondere Steuergeräte (ECU), der zur Ausübung der jeweils vorgesehenen Funktionen befähigt. Die Betriebssoftware wird insbesondere in dem Arbeits- oder Programmspeicher des Steuergeräts erzeugt. Bei der externen Datenquelle handelt es sich um eine Datenquelle, die nicht auf dem Steuergerät selbst vorgesehen ist. Insbesondere ist die Datenquelle im Gegensatz zum Stand der Technik nicht der Arbeits- bzw. Programmspeicher des Steuergeräts. Zur Erzeugung der Software ist die externe Datenquelle mit dem Steuergerät in geeigneter Weise verbindbar.
  • Der erfindungsgemäß maßgeschneiderte, optimierte und lauffähige Code kann dabei zu einem möglichst späten Zeitpunkt auf dem Steuergerät erzeugt werden, z. B. am Bandende des Steuergeräteherstellers, am Bandende des Automobilherstellers, in Servicewerkstätten oder sogar direkt durch den Endkunden des Fahrzeugs im Feld. Frühestens wird die Betriebssoftware erfindungsgemäß erzeugt, nachdem die Konfiguration des Fahrzeugs soweit feststeht, dass die durch das jeweilige Steuergerät zu erfüllenden Funktionen eindeutig definiert sind.
  • Indem die Betriebssoftware aus einer externen Datenquelle erzeugt wird, werden teure Ressourcen auf dem Steuergerät, insbesondere Speicherplatz und Laufzeit, gespart. Insbesondere muss der Variantenreichtum der möglichen Betriebssoftware nicht auf dem Steuergerät gespeichert werden. Vielmehr können die möglichen Varianten der Betriebssoftware auf der externen Datenquelle zur Verfügung gestellt werden und von dieser ausgewählt werden. Dies verringert die Teilekosten. Dabei kann das Steuergerät optimal an die speziellen Bedingungen im Betrieb angepasst werden. So können z. B. bestimmte Fahrzeugkonfigurationen oder eine durch das Steuergerät vorgesehene Ansteuerung bzw. Auswertung bestimmter Aktuatoren bzw. Sensoren berücksichtigt werden (ASIC'S, Sensor-/Aktuator-Interfaces etc.). Auch können andere durch die mit dem Steuergerät zu steuernde Komponente bedingte Konfigurationen berücksichtigt werden. Ebenso ist es möglich, ECU-, Komponenten-, länder-, gelände- oder kundenspezifische Konfigurationen mit der Betriebssoftware auf dem Steuergerät abzubilden. Indem der auf dem Steuergerät erzeugte Programmcode komponentenindividuell ausgestaltet sein kann, können beispielsweise größere Fertigungstoleranzen von mechanischen Komponenten durch mitgelieferte spezifische Softwarealgorithmen ausgeglichen werden oder an die jeweils zu steuernde Komponente gebundene individuelle Verschlüsselungen realisiert werden. Auch ist es möglich, bei der Erzeugung der Betriebssoftware die Zusammensetzung des durch das Kraftfahrzeug getankten Kraftstoffs (Qualität, Typ, etc.) oder Umweltdaten, z. B. Temperaturen (permanente Kälte oder Hitze) oder die Luftqualität, zu berücksichtigen.
  • Mit nur einem Steuergerät kann erfindungsgemäß eine Vielzahl von Einsatzvarianten abgedeckt werden, so dass Logistikkosten gespart werden. Die Konfiguration des Steuergeräts mit der Betriebssoftware ist noch bei einem Austausch von Komponenten des Fahrzeugs oder sogar noch beim Endkunden des Fahrzeugs möglich. So ist es denkbar, bestimmte Softwarefunktionen als Produkt zu dem Fahrzeug zu verkaufen, die dann durch den Fahrer selbst installiert werden können.
  • Nach einer Ausgestaltung der Erfindung kann die Betriebssoftware in einer die externe Datenquelle enthaltenden Komponente erzeugt und anschließend auf das Steuergerät übertragen werden. Bei einer solchen die externe Datenquelle enthaltenden Komponente kann es sich beispielsweise um einen Computer am Bandende (Bandenderechner) der Produktionslinie des Steuergeräts oder des Kraftfahrzeugs handeln. Es kann sich aber beispielsweise auch um eine durch das Steuergerät zu steuernde Komponente, beispielsweise einen Sensor oder Aktuator handeln. Es kann also beispielsweise in einem Bandenderechner überprüft werden, welche Komponenten in dem Fahrzeug verbaut sind und eine entsprechende Software für diese Konfiguration in dem Bandenderechner erstellt werden. Anschließend kann diese Software dann auf das Steuergerät übertragen werden.
  • Gemäß einer weiteren Ausgestaltung kann die individuelle Betriebssoftware aus einer Mehrzahl von auf der externen Datenquelle zur Verfügung gestellten Softwarekomponenten zusammengestellt werden. Bei dieser Ausgestaltung wird die Betriebssoftware also durch ein Compilieren und Verlinken individuell zusammengestellter Softwarekomponenten und anschließender Programmierung auf dem Steuergerät erzeugt. Dem Automobil- bzw. Steuergerätehersteller wird bei dieser Ausgestaltung ein Pool aus Softwaremodulen, beispielsweise in Form von OBJ Code, Libraries oder C-Code zu Verfügung gestellt. Der Softwarepool kann auch komponentenspezifisch, also in Abhängigkeit von der durch das Steuergerät zu steuernden Komponente, bereitgestellt werden (z. B. Basiscode für ECU oder Code für die Ansteuerung eines speziellen Aktuators/Sensors etc.). Je nach Fahrzeug- bzw. ECU-Konfiguration wird die Steuergeräte-Software beispielsweise während der Fertigung des Fahrzeugs oder Steuergeräts individuell generiert und anschließend programmiert. Dazu sind die Softwarearchitektur und die Schnitt stellen zu den Codevarianten für den jeweiligen Steuergerätetyp standardisiert. Das Zusammenstellen der Softwarekomponenten (Compilieren und Verlinken) kann noch in der externen Datenquelle erfolgen, beispielsweise parallel zur Steuergeräte- oder Fahrzeugherstellung. Anschließend, beispielsweise am jeweiligen Bandende, kann dann die zusammengestellte Betriebssoftware in das Steuergerät übertragen und so auf dem Steuergerät erzeugt werden. Dadurch werden Ressourcen, insbesondere Laufzeit, auf dem Steuergerätespeicher eingespart. Es ist aber auch denkbar, das Compilieren und Verlinken bereits auf dem Steuergerät selbst durchzuführen, die Softwarekomponenten also vorher von der externen Datenquelle auf das Steuergerät zu übertragen. Die Softwarekomponenten können beispielsweise in einem Speicher eines Bandenderechners oder in Speichern einer oder verschiedener, jeweils durch das Steuergerät zu steuernder Komponenten abgelegt sein und so zur Verfügung gestellt werden. Auch ist eine Kombination aus einem Ablegen der Softwarekomponenten in einem Speicher des Bandenderechners und in Speichern eines oder verschiedener, jeweils durch das Steuergerät zu steuernder Komponenten möglich.
  • Nach einer weiteren Ausgestaltung kann die individuelle Betriebssoftware aus einer auf der externen Datenquelle zur Verfügung gestellten Basissoftware und mindestens einer ebenfalls auf einer externen Datenquelle für den jeweiligen Einsatz des Steuergeräts individuellen Differenzsoftware erzeugt werden. Bei dieser Vorgehensweise existiert eine allgemeine Basis- oder Mastersoftware, die mit einer oder mehreren individuell auszuwählenden Differenzsoftwares zu einem neuen Softwarecode kombiniert wird. Die jeweilige Differenzsoftware entspricht dabei der Differenz zwischen der Basissoftware und der für den Einsatz des Steuergeräts benötigten Variante der Betriebssoftware. Zur Erzeugung der Betriebssoftware kann die Differenzsoftware beispielsweise Teile der Basissoftware er setzen oder verändern bzw. ergänzen. Ein solches Differenzdatensatzverfahren ist im Grundsatz bekannt aus WO 2006/100232 A1 . Dieses Verfahren ist im Grundsatz auch bei der Erfindung anwendbar. Das aus WO 2006/100232 A1 bekannte Verfahren wird jedoch nur für die Parametrierung (Datensatzkonfiguration) eingesetzt und nicht für die Erstellung einer vollständigen Betriebssoftware des Steuergeräts. Außerdem sind bei dem bekannten Verfahren der Basisdatensatz und die jeweiligen Differenzdatensätze auf einem Speicher des Steuergeräts abgelegt. Dadurch besteht wiederum ein hoher Ressourcenbedarf. Erfindungsgemäß wird die Betriebssoftware dagegen aus einer externen Datenquelle erstellt. Dabei können die Datenquellen für die Basissoftware und die Differenzsoftware dieselbe Datenquelle oder unterschiedliche Datenquellen sein. Die Mastersoftware und die Differenzensoftwares können beispielsweise auf Hex-File-Level gegebenenfalls komprimiert abgelegt und je nach Fahrzeug- bzw. ECU-Konfiguration zu einer individuellen Variantensoftware zusammengesetzt werden. Ein Vorteil dieser Ausgestaltung liegt darin, dass der schnelle und teure Speicher des Steuergeräts (z. B. Flashspeicher) optimal ausgenutzt werden kann und die Definition der möglichen Varianten nicht bereits während der Entwicklung des Steuergeräts erfolgen muss. Vielmehr können auch noch zu einem späteren Zeitpunkt Varianten durch eine entsprechend nachgelieferte Differenzensoftware ohne Einfluss auf bestehende Varianten und Mastersoftware berücksichtigt werden. Darüber hinaus besteht weitgehend Unabhängigkeit bezüglich der möglichen Schnittstellen und Parameter.
  • Nach einer weiteren Ausgestaltung kann auf einem Programmspeicher des Steuergeräts eine Mehrzahl von Speicherbereichen definiert und bestimmten Funktionen zugeordnet werden, wobei zur Erzeugung der individuellen Betriebssoftware die Speicherbereiche zumindest teilweise mit auf der externen Daten quelle zur Verfügung gestellten Softwarevarianten befüllt werden. Bei dieser Ausgestaltung werden also im Programmspeicher des Steuergeräts Funktionen des Steuergeräts und zugehörige Speicherbereiche insbesondere hinsichtlich ihrer Adresse und Größe statisch festgelegt und gegebenenfalls verlinkt. Zur Erzeugung der Betriebssoftware werden beispielsweise am Bandende, in der Werkstatt oder im Feld diese Bereiche mit den für die jeweilige Funktion gewünschten Funktionsvarianten befüllt. Nach der fertiggestellten Programmierung der Betriebssoftware sind dann die gewünschten Funktionsvarianten in dem Programmspeicher enthalten. Die zugehörige RAM-Belegung erfolgt in diesem Fall dynamisch. Diese Ausgestaltung hat den Vorteil, dass auch nicht von dem Steuergerätehersteller zur Verfügung gestellte „Fremdsoftware" auf dem Steuergerät eingebunden werden kann, beispielsweise auf Hex-Code-Ebene. Dabei ist es erforderlich, dass die Schnittstellen und Speicherbereiche zur Entwicklungszeit des Steuergeräts bereits eindeutig definiert sind. Darüber hinaus ist die Größe der jeweiligen Speicherbereiche jeweils so auszulegen, dass die größte der für diesen Speicherbereich jeweils denkbaren Softwarevariante in diesem Bereich gespeichert werden kann.
  • Die externe Datenquelle kann beispielsweise ein externes, vorzugsweise preisgünstiges Speichermedium sein, z. B. ein kostengünstiger Flashspeicher. Die externe Datenquelle kann auch als Speicher in anderen in dem Kraftfahrzeug verbauten Steuergeräten oder Komponenten, als Strichcode oder auf einem Transponderchip auf mechanischen Komponenten des Fahrzeugs, als Speicher im End-of-Line-(EOL-)Rechner, als Speicher im Service-Tester, auf anderen Speichermedien, wie Compact Discs usw. vorgesehen sein. Insbesondere kann die externe Datenquelle ein Speichermedium der durch das Steuergerät jeweils anzusteuernden Komponente sein. Die Übertragung von Daten von der externen Datenquelle auf das Steuergerät kann beispielsweise über eine Datenleitung erfolgen, z. B. eine serielle Anbindung. Es ist aber auch denkbar, dass zur Erzeugung der individuellen Betriebssoftware Daten von der externen Datenquelle über ein Computernetzwerk und/oder über das Internet auf das Steuergerät übertragen werden. So ist auf diese Weise beispielsweise eine Übertragung der Daten von einer bei dem Hersteller der von dem Steuergerät zu steuernden Komponente, dem Steuergerätehersteller oder dem Fahrzeughersteller vorgesehenen Datenquelle auf das Steuergerät möglich.
  • Zur Auswahl und Programmierung der gewünschten Softwarevariante auf dem Steuergerät gibt es verschiedene Möglichkeiten. Dies kann durch ein externes Werkzeug, beispielsweise eine entsprechende Software, oder durch den jeweiligen Benutzer selbst geschehen. Die Auswahl und/oder Erzeugung der auf dem Steuergerät individuell zu erzeugenden Betriebssoftware kann insbesondere auch durch eine Steuerungssoftware erfolgen. Nach einer Ausgestaltung kann die Steuerungssoftware in einem Speicher des Steuergeräts enthalten sein. Der die Steuerungssoftware aufweisende Speicher des Steuergeräts kann beispielsweise der Arbeitsspeicher oder Programmspeicher des Steuergeräts sein. Das Steuergerät kann mit seiner Steuerungssoftware also selbst prüfen, wie es sich zu konfigurieren bzw. zu programmieren hat und anschließend die Umprogrammierung selbst anstoßen. Dies kann beispielsweise basierend auf der Bestückung des Steuergeräts (z. B. ASIC's, Sensor-Interfaces etc.) oder angeschlossenen Komponenten oder Komponentenparametern im Fahrzeug erfolgen. Grundlage für die Auswahl und/oder Erzeugung der Betriebssoftware kann z. B. eine Auswertung einer entsprechenden Diagnosefunktion der Steuerungssoftware oder ein spezielles Konfigurationsprogramm auf dem Steuergerät sein.
  • Nach einer weiteren Ausgestaltung kann die Auswahl und/oder Erzeugung der auf dem Steuergerät individuell zu erzeugenden Betriebssoftware durch ein Signal von einer anderen Komponente des Kraftfahrzeugs, insbesondere einem anderen Steuergerät, erfolgen. Gemäß dieser Ausgestaltung kann die Programmierung der Betriebssoftware durch ein externes Signal, also ein von einem externen Gerät stammendes Signal, angestoßen werden. Beispielsweise kann über einen Can-Bus von einem anderen Steuergerät im Fahrzeug, z. B. einem Navigationssystem, ein entsprechendes Signal gesendet werden. Ein solches externes Steuergerät, beispielsweise ein Navigationssystem, kann selbst die jeweilige Konfiguration durch eine Datenübertragung von einer zentralen Quelle erhalten oder beispielsweise abhängig von der jeweiligen Position des Fahrzeugs (z. B. länder- oder geländespezifisch) die gewünschte Konfiguration ermitteln. Das Signal kann von einer externen Steuerungssoftware stammen, die dann auch die Erzeugung der Betriebssoftware auf dem Steuergerät übernimmt. Es ist aber auch denkbar, dass auf dem Steuergerät eine Steuerungssoftware zur Erzeugung der Betriebssoftware vorhanden ist, die durch das von dem externen Gerät stammende Signal lediglich angesteuert wird und dann selbst die entsprechende Programmierung vornimmt. Eine Auswahl der jeweils zu erzeugenden Betriebssoftware kann auch abhängig von der Zusammensetzung des getankten Kraftstoffs (Qualität, Typ, etc.) oder abhängig von Umweltdaten, z. B. Temperatur oder Luftqualität erfolgen.
  • Die der Erfindung zugrundeliegende Aufgabe wird auch gelöst durch ein Computerprogramm mit Programmcode-Mitteln, mit denen das erfindungsgemäße Verfahren durchführbar ist, wenn das Computerprogramm auf einem Computer oder Computer-Netzwerk ausgeführt wird. Die Programmcode-Mittel können auf einem maschinenlesbaren Datenträger gespeichert sein. Umfasst ist also auch ein entsprechendes Computerprogramm-Produkt, bei dem die Programmcode-Mittel auf einem maschinenlesbaren Datenträger gespeichert sind. Die Aufgabe wird außerdem gelöst durch einen Datenträger, auf dem ein Computerprogramm gespeichert ist, das nach Laden in einen Arbeits- und/oder Hauptspeicher eines Computers oder Computer-Netzwerks das erfindungsgemäße Verfahren ausführen kann.
  • Ein Ausführungsbeispiel der Erfindung wird nachfolgend anhand einer Zeichnung näher erläutert. Die einzige Figur zeigt schematisch ein zur Erzeugung der Betriebssoftware mit einer externen Datenquelle verbundenes Steuergerät.
  • In der einzigen Figur ist schematisch ein Steuergerät 1 (ECU) für ein nicht näher dargestelltes Kraftfahrzeug gezeigt. In dem dargestellten Beispiel dient das Steuergerät 1 zur Ansteuerung von ebenfalls nicht dargestellten Fahrzeugsensoren, beispielsweise Parkdistanzsensoren. Weiterhin ist in der Figur eine externe Datenquelle 2, vorliegend ein kostengünstiger Flashspeicher 2, gezeigt. Im dargestellten Beispiel wird die Datenquelle 2 zusammen mit den von dem Steuergerät 1 zu steuernden Komponenten, vorliegend den Parkdistanzsensoren, ausgeliefert.
  • Zur Erzeugung einer individuellen Betriebssoftware auf dem Steuergerät 1, die das Steuergerät 1 zur Steuerung der Parkdistanzsensoren befähigt, kann der externe Datenspeicher 2 über eine Datenleitung 3 seriell an das Steuergerät 1 angebunden werden. Wie durch den Pfeil 4 an der Datenleitung 3 veranschaulicht, findet dabei vorwiegend ein Datentransfer von der externen Datenquelle 2 zu dem Steuergerät 1 statt. Selbstverständlich ist aber auch ein Datentransfer in die entgegengesetzte Richtung möglich.
  • Auf dem Datenspeicher 2 befindet sich eine Mehrzahl von Softwarekomponenten zur Ansteuerung verschiedener Fahrzeugkomponenten, in dem dargestellten Beispiel verschiedener Parkdistanzsensoren für verschiedene Kraftfahrzeugkonfigurationen. In dem Arbeitsspeicher des Steuergeräts 1 ist eine Steuerungssoftware abgelegt. Die Steuerungssoftware weist eine Diagnosefunktion auf, mit der der spätere Einsatzzweck des Steuergeräts 1 ermittelt werden kann.
  • Im ausgelieferten Zustand besitzt das Steuergerät 1 noch keine vollständige Betriebssoftware für den späteren Betrieb. Um diese Betriebssoftware zu erzeugen, wird von der Steuerungssoftware die Diagnosefunktion durchgeführt. Als Ergebnis stellt die Steuerungssoftware fest, dass das Steuergerät 1 zur Steuerung von Parkdistanzsensoren in der für das Kraftfahrzeug spezifischen Weise vorgesehen ist. Dabei wird von der Steuerungssoftware insbesondere festgestellt, welche Art von Parkdistanzsensoren auf welche Weise in dem jeweiligen Kraftfahrzeug durch das Steuergerät 1 angesteuert und ausgelesen werden sollen. Entsprechend diesem Ergebnis wählt die Steuerungssoftware aus der Mehrzahl von auf der Datenquelle 2 zur Verfügung gestellten Softwarekomponenten die für die vorgesehene Ansteuerung von Sensoren durch das Steuergerät 1 erforderlichen Komponenten individuell aus. Die ausgewählten Komponenten werden dann von der Steuerungssoftware 1 noch auf dem externen Datenspeicher 2 compiliert und verlinkt oder aus fertig gelinkten Codeteilen zusammengesetzt und so zu einer Betriebssoftware zusammengestellt. Anschließend wird die zusammengestellte Software zur Erzeugung der Betriebssoftware über die Datenleitung 3 von der Datenquelle 2 in den Programmspeicher des Steuergeräts 1 übertragen und dort installiert.
  • Im Ergebnis wird durch die Steuerungssoftware so die für den speziellen Einsatz des Steuergeräts 1 erforderliche Betriebssoftware individuell auf dem Steuergerät 1, und insbesondere in dem Programmspeicher des Steuergeräts 1, erzeugt.
  • Das Erzeugen der Betriebssoftware auf dem Steuergerät 1 erfolgt in dem dargestellten Beispiel erst am Bandende des Herstellers des Fahrzeugs, in dem das Steuergerät 1 verbaut wird. Die Diagnosefunktion und die anschließende Auswahl und Compilerung bzw. Verlinkung der Softwarekomponenten für die Betriebssoftware kann dagegen bereits während der Steuergeräte- bzw. Fahrzeugherstellung vor dem Bandende erfolgen. Zu diesem Zeitpunkt steht die Konfiguration des Fahrzeugs und insbesondere die Konfiguration des Steuergeräts 1 bereits eindeutig fest.
  • Erfindungsgemäß ist eine flexible, individuelle Konfiguration des Steuergeräts 1 möglich, wobei aufgrund der Nutzung einer externen Datenquelle 2 teure Ressourcen auf dem Steuergerät 1, insbesondere Speicherplatz und Laufzeit auf dem Speicher des Steuergeräts 1 gespart werden.

Claims (9)

  1. Verfahren zum Erzeugen einer Betriebssoftware auf einem Steuergerät (1) für ein Kraftfahrzeug durch Ausführen einer Steuerungssoftware im Steuergerät (1), das die folgenden Schritte umfasst: a) Ausführen einer Diagnosefunktion im Kraftfahrzeug, mit der eine Konfiguration des Kraftfahrzeugs feststellbar ist, so dass die durch das Steuergerät (1) zu erfüllenden Funktionen eindeutig definiert sind, anschließend b) Auswählen nur von erforderlichen Softwarekomponenten von einer externen Datenquelle (2), so dass die Konfiguration des Kraftfahrzeugs mit der Betriebssoftware auf dem Steuergerät (1) abbildbar ist, und c) Übertragen der ausgewählten Softwarekomponenten in das Steuergerät (1) und anschließend d) Erzeugen der komponentenindividuellen lauffähigen Betriebssoftware auf dem Steuergerät (1) unter Einbezug der ausgewählten Softwarekomponenten.
  2. Verfahren nach Anspruch 1, dadurch gekennzeichnet, dass die individuelle Betriebssoftware aus einer Mehrzahl von auf der externen Datenquelle (2) zur Verfügung gestellten Softwarekomponenten zusammengestellt wird.
  3. Verfahren nach einem der Ansprüche 1 bis 2, dadurch gekennzeichnet, dass die individuelle Betriebssoftware aus einer auf der externen Datenquelle (2) zur Verfügung ge stellten Basissoftware und mindestens einer ebenfalls auf einer externen Datenquelle (2) für den jeweiligen Einsatz des Steuergeräts (1) individuellen Differenzsoftware erzeugt wird.
  4. Verfahren nach einem der Ansprüche 1 bis 3, dadurch gekennzeichnet, dass auf einem Programmspeicher des Steuergeräts (1) eine Mehrzahl von Speicherbereichen definiert und bestimmten Funktionen zugeordnet wird, wobei zur Erzeugung der individuellen Betriebssoftware die Speicherbereiche zumindest teilweise mit auf der externen Datenquelle (2) zur Verfügung gestellten Softwarevarianten befüllt werden.
  5. Verfahren nach einem der vorhergehenden Ansprüche, dadurch gekennzeichnet, dass zur Erzeugung der individuellen Betriebssoftware Daten aus der externen Datenquelle (2) über ein Computernetzwerk und/oder über das Internet auf das Steuergerät (1) übertragen werden.
  6. Verfahren nach einem der vorhergehenden Ansprüche, dadurch gekennzeichnet, dass die Steuerungssoftware in einem Speicher des Steuergeräts (1) enthalten ist.
  7. Verfahren nach einem der vorhergehenden Ansprüche, dadurch gekennzeichnet, dass die Auswahl und/oder Erzeugung der auf dem Steuergerät (1) individuell zu erzeugenden Betriebssoftware durch ein Signal von einer anderen Komponente des Kraftfahrzeugs erfolgt.
  8. Verfahren gemäß einem der Ansprüche 1 bis 7, das auf einem Datenträger gespeichert ist.
  9. Steuergerät für ein Kraftfahrzeug, dadurch gekennzeichnet, dass es eine nach einem der Ansprüche 1 bis 6 komponentenindividuell erzeugte Betriebssoftware aufweist.
DE102007059524A 2007-12-11 2007-12-11 Verfahren zum Erzeugen einer Betriebssoftware auf einem Steuergerät für ein Kraftfahrzeug sowie Steuergerät Active DE102007059524B4 (de)

Priority Applications (2)

Application Number Priority Date Filing Date Title
DE102007059524A DE102007059524B4 (de) 2007-12-11 2007-12-11 Verfahren zum Erzeugen einer Betriebssoftware auf einem Steuergerät für ein Kraftfahrzeug sowie Steuergerät
US12/331,491 US8346430B2 (en) 2007-12-11 2008-12-10 Method for the generating operating software on a control device for a motor vehicle as well as control device

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
DE102007059524A DE102007059524B4 (de) 2007-12-11 2007-12-11 Verfahren zum Erzeugen einer Betriebssoftware auf einem Steuergerät für ein Kraftfahrzeug sowie Steuergerät

Publications (2)

Publication Number Publication Date
DE102007059524A1 DE102007059524A1 (de) 2009-06-25
DE102007059524B4 true DE102007059524B4 (de) 2009-09-17

Family

ID=40689406

Family Applications (1)

Application Number Title Priority Date Filing Date
DE102007059524A Active DE102007059524B4 (de) 2007-12-11 2007-12-11 Verfahren zum Erzeugen einer Betriebssoftware auf einem Steuergerät für ein Kraftfahrzeug sowie Steuergerät

Country Status (2)

Country Link
US (1) US8346430B2 (de)
DE (1) DE102007059524B4 (de)

Families Citing this family (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP5303367B2 (ja) * 2009-06-08 2013-10-02 富士通テン株式会社 エコラン制御装置及びエコラン制御方法
DE102009057979A1 (de) * 2009-12-11 2011-06-16 Bayerische Motoren Werke Aktiengesellschaft Verfahren und Vorrichtung zur Konfiguration eines Steuergeräts eines Fahrzeugs
FR2964764B1 (fr) * 2010-09-15 2012-08-31 Peugeot Citroen Automobiles Sa Methode de transfert etage vers un calculateur de vehicule automobile, d'un code applicatif puis de parametres de calibration de ce code applicatif.
US9286800B2 (en) 2012-12-30 2016-03-15 Robert Gordon Guidance assist vehicle module
US9053636B2 (en) 2012-12-30 2015-06-09 Robert Gordon Management center module for advanced lane management assist for automated vehicles and conventionally driven vehicles
US9689336B2 (en) 2014-11-10 2017-06-27 Caterpillar Inc. Engine system utilizing modal weighted engine optimization
MX2018001207A (es) 2015-07-28 2018-04-24 Crown Equip Corp Modulo de control de vehiculo con tablero de señal y tablas de salida.
EP3128383B1 (de) * 2015-08-03 2020-06-03 Schneider Electric Industries SAS Feldgerät
US9799218B1 (en) 2016-05-09 2017-10-24 Robert Gordon Prediction for lane guidance assist
US9911329B1 (en) 2017-02-23 2018-03-06 Robert Gordon Enhanced traffic sign information messaging system
CN113778557B (zh) * 2021-09-15 2024-04-26 深圳市元征软件开发有限公司 车辆诊断软件配置方法、装置、服务器及存储介质

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
DE19964013A1 (de) * 1999-12-30 2001-07-12 Bosch Gmbh Robert Verfahren und Vorrichtung zur Steuerung von Betriebsabläufen in einem Fahrzeug
DE10153447A1 (de) * 2001-10-30 2003-05-15 Volkswagen Ag Verfahren und Vorrichtung zur Programmierung eines Steuergeräts eines Fahrzeugs, insbesondere eines Kraftfahrzeugs
DE10234063B4 (de) * 2002-07-26 2004-09-30 Audi Ag Verfahren zum variantenspezifischen Programmieren eines Programm- und Datenspeichers eines Steuergeräts, insbesondere eines Steuergeräts eines Kraftfahrzeugs, sowie Vorrichtung zur Durchführung des Verfahrens
WO2005006091A1 (de) * 2003-07-09 2005-01-20 Peter-Michael Ludwig Steuergerät und netzwerk für eine mehrzahl von vorrichtungen
WO2006100232A1 (de) * 2005-03-22 2006-09-28 Siemens Vdo Automotive Ag Verfahren und vorrichtung zum konfigurieren eines steuergeräts und steuergerät

Family Cites Families (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7043316B2 (en) * 2003-02-14 2006-05-09 Rockwell Automation Technologies Inc. Location based programming and data management in an automated environment
US7913242B2 (en) * 2003-11-04 2011-03-22 Gm Global Technology Operations, Inc. Low cost, open approach for vehicle software installation/updating and on-board diagnostics
KR100683853B1 (ko) * 2005-02-04 2007-02-16 삼성전기주식회사 프리 컴파일링 장치
US20070028208A1 (en) * 2005-06-07 2007-02-01 Alec Maki Runtime generative programming method and system
US7610176B2 (en) * 2006-06-06 2009-10-27 Palm, Inc. Technique for collecting information about computing devices
US20080005733A1 (en) * 2006-06-29 2008-01-03 Balaji Ramachandran Method and apparatus for updating firmware and software
US8146052B2 (en) * 2006-08-22 2012-03-27 Caterpillar Inc. Method and system for hierarchical hardware mapping for software design

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
DE19964013A1 (de) * 1999-12-30 2001-07-12 Bosch Gmbh Robert Verfahren und Vorrichtung zur Steuerung von Betriebsabläufen in einem Fahrzeug
DE10153447A1 (de) * 2001-10-30 2003-05-15 Volkswagen Ag Verfahren und Vorrichtung zur Programmierung eines Steuergeräts eines Fahrzeugs, insbesondere eines Kraftfahrzeugs
DE10234063B4 (de) * 2002-07-26 2004-09-30 Audi Ag Verfahren zum variantenspezifischen Programmieren eines Programm- und Datenspeichers eines Steuergeräts, insbesondere eines Steuergeräts eines Kraftfahrzeugs, sowie Vorrichtung zur Durchführung des Verfahrens
WO2005006091A1 (de) * 2003-07-09 2005-01-20 Peter-Michael Ludwig Steuergerät und netzwerk für eine mehrzahl von vorrichtungen
WO2006100232A1 (de) * 2005-03-22 2006-09-28 Siemens Vdo Automotive Ag Verfahren und vorrichtung zum konfigurieren eines steuergeräts und steuergerät

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
FRENZEL,P., KOSCHKE,R., BREU,A.P.J., ANGSTMANN,K.: "Extending the Reflexion Method for Consolidating Software Variants into Product Lines" 14th Working Conference on Reserve Engineering, 28.-31. Okt. 2007, 160-169 Digital Object Identifer 10.1109/WCRE.2007.28 *

Also Published As

Publication number Publication date
DE102007059524A1 (de) 2009-06-25
US8346430B2 (en) 2013-01-01
US20090150020A1 (en) 2009-06-11

Similar Documents

Publication Publication Date Title
DE102007059524B4 (de) Verfahren zum Erzeugen einer Betriebssoftware auf einem Steuergerät für ein Kraftfahrzeug sowie Steuergerät
DE19964013B4 (de) Verfahren und Vorrichtung zur Steuerung von Betriebsabläufen in einem Fahrzeug
EP1290511B1 (de) Verfahren und vorrichtung zur steuerung und/oder zur bestimmung einer variante einer steuerung eines systems
DE10014994A1 (de) Verfahren und Vorrichtung zur Speicherung von Daten in einem Fahrzeug und zur Auswertung der gespeicherten Daten
DE10219832B4 (de) Verfahren zum Kodieren von Steuergeräten in Verkehrsmitteln
EP1574864B1 (de) Verfahren zum Testen der Funktion von in einem Kraftfahrzeug eines bestimmten Typs verbauten, über einen Kommunikationsbus adressierbaren elektronischen und elektrischen Komponenten
DE102007029285A1 (de) Testvorrichtung zum Testen wenigstens eines elektronischen Steuerungssystems sowie Verfahren zum Betreiben einer Testvorrichtung
DE19934191B4 (de) Elektronische Steuerungseinheit und Steuerungsverfahren zum Speichern eines Neuschreibungszählwerts eines nichtflüchtigen Speichers
EP2326959B1 (de) Verfahren zum freischalten von funktionen eines tachographen
DE19736231A1 (de) Verfahren zum Ändern von Daten eines Steuergeräts für ein Kraftfahrzeug
WO2006035064A2 (de) Verfahren zur beschreibung von speicherinhalten und zur beschreibung des transfers von speicherinhalten
EP2176839A1 (de) Verfahren zum betreiben eines tachographen und tachograph
DE19963210A1 (de) Verfahren und Vorrichtung zur Steuerung eines Fahrzeugs
DE10015319B4 (de) Vorrichtung zur Steuerung einer Brennkraftmaschine
DE19963475A1 (de) Verfahren und Vorrichtung zur Steuerung von Betriebsabläufen in einem Fahrzeug sowie zur Bereitstellung von Daten diesbezüglich
WO2007065585A1 (de) Diagnoseverfahren und diagnosevorrichtung zur funktionsorientierten diagnose eines systems mit vernetzten komponenten
DE102007038190B4 (de) Verfahren zur Parametrierung eines Diagnosegerätes, korrespondierendes Computerprogramm und Computerprogrammprodukt sowie Diagnosesystem
DE102006045151A1 (de) Verfahren zur Diagnose eines Kraftfahrzeugs, Steuergerät und Werkstatttester
DE102009028516A1 (de) Verfahren zum Erkennen und Konfigurieren von Antriebsstrangkomponenten
DE102008052534A1 (de) Softwareintegrationsprozess
DE102006050003A1 (de) Verfahren zur Verwaltung der Applikationsdaten einer Fahrzeugkomponente eines Kraftfahrzeugs
DE10148090B4 (de) Verfahren und Vorrichtung zum Sichern von einer Stellposition eines Bauteils
DE102005047555A1 (de) Verfahren zur Programmierung einer Ansteuereinheit eines Kraftfahrzeuges und Vorrichtung zur Ausführung des Verfahrens
DE10236801A1 (de) Verfahren und Vorrichtung zum Programmieren von Steuergeräten
DE19748181B4 (de) Verfahren zum Prüfen einer Funktion oder Einrichtung eines Fahrzeugs

Legal Events

Date Code Title Description
OP8 Request for examination as to paragraph 44 patent law
8364 No opposition during term of opposition
R084 Declaration of willingness to licence
R081 Change of applicant/patentee

Owner name: VITESCO TECHNOLOGIES GMBH, DE

Free format text: FORMER OWNER: CONTINENTAL AUTOMOTIVE GMBH, 30165 HANNOVER, DE

R081 Change of applicant/patentee

Owner name: VITESCO TECHNOLOGIES GMBH, DE

Free format text: FORMER OWNER: VITESCO TECHNOLOGIES GMBH, 30165 HANNOVER, DE