-
Die
Erfindung bezieht sich auf ein Verfahren zum Bereitstellen eines
Softwaremoduls für
eine Kraftfahrzeug-Steuereinheit. Des Weiteren bezieht sich die
Erfindung auf ein Verfahren zum Aktivieren eines Softwaremoduls
in einer Kraftfahrzeug-Steuereinheit. Des Weiteren bezieht sich
die Erfindung noch auf ein Verfahren, Zugriff auf ein Softwaremodul
für den
Einsatz in einer Kraftfahrzeug-Steuereinheit bereitzustellen. Darüber hinaus
bezieht sich die Erfindung auf Computerprogramme, die Programmbefehle
zum Ausführen
dieser Verfahren umfassen.
-
Zurzeit
nimmt der Einsatz von Computersystemen in Kraftfahrzeugen rasch
zu, wobei die Computersysteme zum Steuern einer zunehmenden Menge
an Softwaremodulen in Kraftfahrzeugen, wie zum Beispiel der Motor-
und Zündsteuerung,
Airbagsystemen, Antiblockiersystemen, elektronischen Stabilitätssystemen,
Armaturenbrettern und/oder Anzeigefeldern, Diebstahlsicherungssystemen,
der Zentralverriegelung, elektrischen Fensterhebern etc. eingesetzt
werden. Mit der stetig zunehmenden Menge an Softwaremodulen, die
durch solche Bordcomputer gesteuert werden, die rasche Entwicklung
von elektronischen Bauteilen für
solche Bordcomputer und den gegenwärtigen weltweiten Automarkt,
auf den eine große
Zahl verschiedener Hersteller eine ständig steigende Menge an neuen
Automodellen einführt,
nimmt die Menge der unterschiedlichen Bordcomputer, die in aktuelle
Fahrzeuge eingebaut werden, rasch zu. Üblicherweise ist jeder Mikrocomputer in
dem Fahrzeug mit seiner eigenen Software ausgestattet, die in einem
Speicher gespeichert ist, wie zum Beispiel einem Speicherchip, auf
den der Mikrocomputer zugreifen kann.
-
Aktuell
entwickelt sich der Bedarf, einen effizienten Mechanismus zur Verfügung zu
stellen, der es Kundendienststellen, Werkstätten und Händlern ermöglicht, Software, die durch
solche Computersysteme in dem Kraftfahrzeug eingesetzt werden soll,
zu erweitern (upzugraden) oder umzuprogrammieren. Es ist üblich, eine
Speichereinrichtung, wie zum Beispiel einen Halbleiterchip, z.B.
einen EPROM, auf dem die Software geladen ist, durch einen anderen zu
ersetzen, der die aktualisierte Software umfasst, jedoch erfordert
dies, dass die Software bei dem Händler oder der Kundendienststelle
auf Lager ist, oder dies führt
anderenfalls zu einer langen Lieferzeit, um die Software zu erhalten.
Während
Kundendienststellen für
die Wartung von Kraftfahrzeugen, wie zum Beispiel Autohändler, mehr
und mehr dazu neigen, Wartungs- und
Reparaturdienste für
mehrere Kraftfahrzeugmarken zur Verfügung zu stellen, nimmt die
Menge an verschiedenen Softwaremodulen, die von einer Kundendienststelle
benötigt
werden, rasch zu. Daher werden Speicherchips, die veraltete Softwaremodule
enthalten, häufig
weggeworfen, was eine Verschwendung an Materialien und elektronischen
Bauteilen bedeutet, oder sie müssen recycelt
werden, indem sie an den Hersteller zurückgeschickt werden, was eine
erhebliche logistische und verwaltungstechnische Organisation mit
Begleitkosten mit sich bringt. Des Weiteren sind Lieferzeiten zum
Beziehen eines neuen Speicherchips durch eine Kundendienststelle
lang, da in dem Moment, in dem ein neuer Speicherchip benötigt wird,
zuerst eine Bestellung bei einem Lieferanten oder einem Hersteller des
Kraftfahrzeugs aufgegeben werden muss, wonach der bestellte Speicherchip
per Post, Eilzustelldienst etc. geliefert wird. Im Allgemeinen ist
die Folge der obigen Nachteile, dass Kundendienststellen für die Wartung
von Kraftfahrzeugen entweder unnötige Kosten
für das
Bestellen jedes neuen Speicherchips mit einem Softwaremodul, der
erhältlich
wird, entstehen, und so eine große Menge an kaum genutzten Speicherchips
verfügbar
haben, oder häufig
vor dem Problem stehen, dass ein geeigneter Speicherchip für ein bestimmtes
Fahrzeug in dem Moment, in dem ein solcher Chip benötigt würde, nicht
auf Lager zu sein scheint.
-
WO-01/88.817-A legt
ein Verfahren zum Schreiben von Daten in einen in einem Einschubmodul
enthaltenen Speicher offen. Bei diesem Verfahren wird ein Einschubmodul
von einem Konnektor aufgenommen, der so konfiguriert ist, dass er
sich mit dem Einschubmodul über
eine Schnittstelle verbindet. Zuerst werden Daten aus einer Datenspeichervorrichtung
ausgelesen, und es wird ein Zugriffs-Steuercode bezogen, der die
Erzeugung von zweiten Daten auf Basis der ersten Daten erlaubt.
Die zweiten Daten werden dann auf Basis der ersten Daten und des
bezogenen Zugriffs-Steuercodes
erzeugt. Es wird in den in dem Einschubmodul enthaltenen Speicher
auf Basis der erzeugten zweiten Daten geschrieben, und anschließend wird
der Zugriff auf die zweiten Daten durch Verschlüsseln und Schreiben von Daten
in Blöcken
verhindert.
-
Die
Erfindung bezweckt, die Probleme des Standes der Technik wenigstens
teilweise zu beseitigen und ein einfaches, benutzerfreundliches,
schnelles und sicheres Verfahren zum Bereitstellen eines Softwaremoduls
für eine
Kraftfahrzeug-Steuereinheit zur Verfügung zu stellen.
-
Um
diese und andere Ziele zu erreichen, umfasst das Verfahren zum Bereitstellen
eines Softwaremoduls für
eine Kraftfahrzeug-Steuereinheit die durch eine Programmiereinrichtung
ausgeführten Schritte
a) des Aufbauens einer Verbindung zwischen einem programmierbaren
Speicher der Fahrzeug-Steuereinheit und der Programmiereinrichtung, b)
des Erzeugens einer Anforderungsnachricht, wobei die Anforderungsnachricht
eine Softwaremodule-Kennung zum Identifizieren des Softwaremoduls umfasst,
c) des Sendens der Anforderungsnachricht von der Programmiereinrichtung über eine
Kommunikationseinrichtung an einen Server, d) des Empfangens einer
Zugriffsnachricht von dem Server, wodurch es der Programmiereinrichtung
ermöglicht wird,
auf das Softwaremodul zuzugreifen, und e) des Ladens des Softwaremoduls
durch die Programmiereinrichtung in den programmierbaren Speicher
der Fahrzeug-Steuereinheit. So kann das Softwaremodul durch die
Programmiereinrichtung in den programmierbaren Speicher geladen
werden. Die Schritte nach dem Verfahren können vor Ort durchgeführt werden,
folglich z.B. in der Werkstatt oder der Kundendienststelle, und
das Softwaremodul innerhalb einer sehr kurzen Zeitspanne verfügbar machen.
Die Programmiereinrichtung kann z.B. ein Computersystem oder ein
Mobiltelefon umfassen. Außerdem
kann die Programmiereinrichtung eine Kommunikationsvorrichtung umfassen,
möglichst
eine serielle Kommunikationsvorrichtung für eine On-Board-Diagnose und/oder
für das
Programmieren und/oder Umprogrammieren der Motor-Steuereinheit (ECU).
So ist ein Diagnoseinstrument, z.B. zum seriellen Auslesen von Diagnose-
und Statusinformationen aus der Steuereinheit und zum Programmieren
oder Umprogrammieren von Prozessparametern in der ECU in der Programmiereinrichtung
enthalten. Die Programmiereinrichtung kann eine Fahrzeug-Kommunikationsschnittstelle
(VCI) zum Aufnehmen einer Verbindung mit der Fahrzeug-Steuereinheit
umfassen. Des Weiteren kann die Programmiereinrichtung mindestens
mit dem programmierbaren Speicher der Fahrzeug-Steuereinheit über ein
Kabel, einen Konnektor oder andere kabelgebundene oder kabellose
Kommunikationseinrichtungen verbunden werden. Alternativ ist es
möglich,
dass die Programmiereinrichtung in der Kraftfahrzeug-Steuereinheit enthalten
ist. Der Server kann z.B. auf dem Betriebsgelände des Herstellers oder des
Lieferanten jeweils der Kraftfahrzeug-Steuereinheit bzw. der Softwaremodule aufgestellt
sein, er kann jedoch auch an einem beliebigen anderen geeigneten
Ort aufgestellt sein. Der Server ist mit der Programmiereinrichtung
durch eine Kommunikationseinrichtung, wie zum Beispiel eine Telefonleitung,
das Internet oder eine beliebige andere kabelgebundene oder kabellose
Kommunikationseinrichtung, die als solche bekannt ist, verbunden.
Die Sicherheit wird dadurch erhöht,
dass der Zugriff auf das Softwaremodul nur ermöglicht wird, wenn eine entsprechende
Zugriffsnachricht von dem Server an die Programmiereinrichtung gesendet wird.
So ist es möglich,
von dem Server aus die Verwendung eines bestimmten Softwaremoduls
zu steuern und zu überwachen.
Falls ein Benutzer nicht bevollmächtigt
ist, ein bestimmtes Softwaremodul zu verwenden, kann darüber hinaus
das Senden der Zugriffsnachricht durch den Server deaktiviert werden, oder
eine ungültige
Zugriffsnachricht kann zu der Programmiereinheit übertragen
werden. Ein Benutzer kann zum Beispiel das Softwaremodul, das für die Kraftfahrzeug-Steuereinheit
zur Verfügung
gestellt werden muss, aus einer Tabelle oder einer Übersicht
auf einer Anzeige oder durch eine beliebige andere Auswahleinrichtung,
die als solche bekannt sein mag, auswählen, wie zum Beispiel durch eine
Suchsoftware zum Suchen eines bestimmten Softwaremoduls. Mit dem
Verfahren kann ein benötigtes
Softwaremodul schnell und leicht für die Kraftfahrzeug-Steuereinheit
bereitgestellt werden, indem eine Anforderungsnachricht erzeugt
wird, die das Softwaremodul identifiziert, eine Anforderungsnachricht
an einen Server gesendet wird, der Server als Antwort auf die Anforderungsnachricht
eine Zugriffsnachricht erzeugt und die Zugriffsnachricht an die Programmiereinrichtung
sendet, wobei die Programmiereinrichtung nun in der Lage ist, Zugriff
auf ein entsprechendes Softwaremodul zu erlangen, woraufhin das
Softwaremodul durch die Programmiereinrichtung in den programmierbaren
Speicher geladen wird. Die Anforderungsnachricht kann über eine Kommunikationseinrichtung,
wie zum Beispiel das Internet, oder durch Telefon oder Fax an den
Server gesendet werden. Zu diesem Zweck kann der Server einen Faxserver,
einen Sprachausgabe-Server oder eine beliebige andere interaktive
Kommunikationseinrichtung enthalten, es ist jedoch ebenso möglich, dass
die in der Anforderungsnachricht enthaltenen Informationen von Hand
in den Server eingegeben werden. Die Zugriffsnachricht kann von
dem Server über
das Internet, ein Telefonnetz oder eine beliebige andere Kommunikationseinrichtung
zu der Programmiereinrichtung übertragen
werden. Die Zugriffsnachricht kann z.B. auch telefonisch übertragen und
durch eine beliebige geeignete Eingabevorrichtung, wie zum Beispiel
eine Tastatur eines Computers, der in der Programmiereinrichtung
enthalten sein kann, eine in der Kraftfahrzeug-Steuereinheit enthaltene
Tastatur, einen von einem Strichcode-Leser ausgelesenen Strichcode
etc., in die Programmiereinrichtung oder in die Kraftfahrzeug-Steuereinheit
eingegeben werden. Die Kraftfahrzeug-Steuereinheit kann eine in
dem Fahrzeug enthaltene On-Board-Steuereinheit umfassen, wie zum
Beispiel eine Motor- und Zündsteuereinheit
(ECU), eine Antiblockier-Bremssteuereinheit, eine Airbag-Steuereinheit
oder eine beliebige andere Steuer-, Mess- oder Wartungseinheit,
die eine Steuereinrichtung, wie zum Beispiel eine Mikrosteuereinheit
oder eine beliebige andere Recheneinheit, umfasst. Das Kraftfahrzeug kann
aus einem Auto, einem Lieferwagen, einem Lastwagen, einem Mehrzweckfahrzeug,
einem Geländewagen
etc. bestehen. Des Weiteren ist es möglich, dass das Verfahren nach
dem Erfinder mit einer Steuereinheit für einen Standmotor angewendet wird.
-
Zweckmäßigerweise
umfasst das Verfahren den weiteren Schritt des Sendens einer Bestätigungsnachricht
von der Programmiereinrichtung an den Server, nachdem das Softwaremodul
in den programmierbaren Speicher geladen worden ist. Die Bestätigungsnachricht,
die zweckmäßigerweise
durch die Kraftfahrzeug-Steuereinheit gesendet wird, sorgt für eine Bestätigung an
den Server darüber,
dass das bestimmte Softwaremodul in die Fahrzeug-Steuereinheit programmiert
worden ist. Die durch den Server empfangene Bestätigung kann in einer Datenbank
gespeichert werden und so die Rückverfolgbarkeit
ermöglichen,
welches Softwaremodul wann und von wem in welches Fahrzeug oder
welche Fahrzeug-Steuereinheit heruntergeladen worden ist. Die Rückverfolgbarkeit
trägt zum
Vermeiden von Haftungsfällen
für den
Fahrzeughersteller bei.
-
Zweckmäßigerweise
umfasst Schritt d) die Schritte d1) des Empfangens der einen Zugriffsschlüssel enthaltenden
Zugriffsnachricht von dem Server, d2) des Ableitens des Zugriffsschlüssels aus der
Zugriffsnachricht und d3) des Zugreifens auf das Softwaremodul durch
die Programmiereinrichtung unter Verwendung des Zugriffsschlüssels. Der
Zugriffsschlüssel
kann eine beliebige geeignete Zugriffseinrichtung, wie zum Beispiel
ein Passwort, einen Sicherheitscode, einen Zugriffscode oder eine beliebige
andere geeignete Zugriffseinrichtung enthalten. Auf diese Weise
kann das Softwaremodul oder eine Bibliothek verschiedener Softwaremodule für den Benutzer
verfügbar
sein, z.B. gespeichert auf einer CD-ROM, herunterladbar aus dem
Internet etc., während
der Zugriff auf die Software nur bereitgestellt wird, wenn ein geeigneter
Zugriffsschlüssel
zur Verfügung
gestellt worden ist.
-
Zweckmäßigerweise
umfasst der Zugriffsschlüssel
einen Entschlüsselungs-Schlüssel, wobei Schritt
d3) zweckmäßigerweise
den Schritt des Entschlüsselns
des Softwaremoduls mit dem Entschlüsselungs-Schlüssel umfasst.
So kann der Zugriff auf die Software auf sehr wirksame Weise gesteuert
werden, da nur wenn ein geeigneter Entschlüsselungs-Schlüssel verfügbar ist,
der Zugriff auf das Softwaremodul zur Verfügung gestellt wird.
-
Zweckmäßigerweise
umfasst das Verfahren den weiteren Schritt g), einen Betrag durch
einen Server einem Benutzerkonto zur Zahlung für das Softwaremodul in Rechnung
zu stellen. So kann nach Empfang einer Anforderungsnachricht, die
den Zugriff auf ein bestimmtes Softwaremodul anfordert, einem Benutzerkonto
ein Betrag in Rechnung gestellt werden, so dass der Benutzer für das angeforderte Softwaremodul
bezahlt.
-
Zweckmäßigerweise
umfasst Schritt g) die weiteren Schritte g.1) des Prüfens vorheriger
Zahlungen für
einen gleichen Benutzer in einer Benutzerkonten-Datenbank und g.2)
des Festlegens eines Wertes des Betrags auf Basis der vorherigen
Zahlungen. So können
Preissysteme durch Prüfen
von vorherigen Beträgen,
die dem gleichen Benutzer berechnet worden sind, und durch Festlegen
eines Wertes auf Basis der zuvor berechneten Beträge aufgebaut
werden. Es ist zum Beispiel möglich,
mehrfache Zahlungen für
ein gleiches Softwaremodul zu vermeiden, indem der Betrag auf Null
gesetzt wird, falls das gleiche Softwaremodul bereits angefordert und
bezahlt worden ist. Es können
darüber
hinaus Mengenrabatte für
Benutzer zur Verfügung
gestellt werden, die eine bestimmte vorgegebene Menge an Softwaremodulen
innerhalb eines bestimmten Zeitrahmens anfordern und bezahlen.
-
Zweckmäßigerweise
umfasst die Anforderungsnachricht des Weiteren eine Zielkennung
zum Identifizieren eines Ziels für
das Softwaremodul. Die Zielkennung kann vorteilhaft aus einer Gruppe
gewählt
werden, die eine Benutzerkennung, eine Fahrzeugkennung, eine Kennung
der Programmiereinrichtung, eine Kennung der Steuereinheit und/oder eine
Kennung des Speichers der Fahrzeug-Steuereinheit umfasst. So ist
es möglich,
einen genaueren Bezahlmechanismus bereitzustellen, da das Berechnen
und das Festlegen einer Höhe
des berechneten Betrags des Weiteren auf einen Verlauf vorheriger Anforderungsnachrichten
und vorheriger Zahlungen, die mit dem gleichen Ziel als dem Ziel
für die
aktuelle Anforderung in Verbindung stehen, gegründet werden kann. Des Weiteren
können
die Sicherheit und die Rückverfolgbarkeit
erhöht
werden, da das Ziel, für das
das Softwaremodul angefordert wird (wie zum Beispiel der Benutzer,
die Fahrzeug-Steuereinheit, die Programmiereinrichtung oder ein
Teil davon etc.), auf dem Server zur Verfügung steht und auf dem Server
oder in einem für
den Server zugreifbaren Speicher gespeichert werden kann. Insbesondere
zusammen mit der oben beschriebenen Bestätigungsnachricht ist die Rückverfolgbarkeit
ausgezeichnet, da das Ziel für
das Softwaremodul dem Server bekannt ist sowie eine Bestätigung des
Ladens der Software zur Verfügung
gestellt wird.
-
Zweckmäßigerweise
umfasst die in Schritt d) empfangene Zugriffsnachricht des Weiteren
eine durch den Server festgelegte Kennziffer, und Schritt d) umfasst
die weiteren Schritte d5) des Ableitens der Kennziffer aus der Zugriffsnachricht
und d6) des Speicherns der Kennziffer in dem Softwaremodul, wobei
das Softwaremodul des Weiteren ein Kennziffern-Berechnungsmodul
zum Berechnen der Kennziffer enthält, um das Softwaremodul zu
befähigen
zu verifizieren, ob die durch das Kennziffern-Berechnungsmodul berechnete Kennziffer
mit der in dem Softwaremodul gespeicherten Kennziffer gleich ist. So
wird ein weiterer Schutz gegen unberechtigte Benutzung der Software
zur Verfügung
gestellt. Das Softwaremodul umfasst eine Kennziffer sowie ein Kennziffern-Berechnungsmodul.
In einem geeigneten Moment, z.B. wenn das Softwaremodul durch die Fahrzeug-Steuereinheit
gestartet wird, berechnet das Softwaremodul zuerst die Kennziffer
unter Verwendung des Kennziffern-Berechnungsmoduls
und vergleicht dann die berechnete Kennziffer mit der in dem Softwaremodul
gespeicherten Kennziffer. Wenn die in dem Softwaremodul gespeicherte
Kennziffer mit der durch das Kennziffern-Berechnungsmodul berechneten
Kennziffer identisch ist, wird anschließend die Software aktiviert,
aber falls das Kennziffern-Berechnungsmodul
eine Kennziffer bereitstellt, die nicht der in der Software gespeicherten
Kennziffer entspricht, wird das Softwaremodul nicht aktiviert. Das
Kennziffern-Berechnungsmodul ist vorteilhaft zum Berechnen der Kennziffer
unter Verwendung wenigstens eines die Zielkennung enthaltenden Eingabeparameters
eingerichtet. Wenn versucht wird, das Softwaremodul an einem anderen
Ziel einzusetzen, führt
die durch das Kennziffern-Berechnungsmodul durchgeführte Berechnung
folglich zu der Berechnung einer anderen Kennziffer, da das Kennziffern-Berechnungsmodul
die Berechnung der Kennziffer unter Verwendung der Zielkennung als
einen Eingabeparameter durchführt.
Da eine andere Zielkennung zu einer anderen Kennziffer führt, entspricht die
in der Software gespeicherte Kennziffer nicht der durch das Berechnungsmodul
berechneten Kennziffer, was zu beschränkter Verfügbarkeit oder zu Nichtverfügbarkeit
des Softwaremoduls führt.
So kann unbefugtes Kopieren des Softwaremoduls und unbefugter Einsatz
des Softwaremoduls an verschiedenen Zielen, wie zum Beispiel verschiedenen
Fahrzeug-Steuereinheiten, Fahrzeug-Kommunikationsschnittstellen etc., verhindert
werden. Da das Kennziffern-Berechnungsmodul
in dem Softwaremodul enthalten ist, ist es möglich, verschiedene Kennziffern-Berechnungsmodule
für eine
Vielzahl von Softwaremodulen einzusetzen, da das geeignete Kennziffern-Berechnungsmodul
für das
bestimmte Softwaremodul in jedem einzelnen Softwaremodul enthalten
ist. Falls zum Beispiel ein dritter Teilnehmer den Berechnungs-Algorithmus,
der durch das Kennziffern-Berechnungsmodul, das in einem bestimmten Softwaremodul
angewendet wird, erfolgreich abgerufen hat, könnte dieser dritte Teilnehmer
den Schutz des Kennziffern-Berechnungsmoduls durch Berechnen von
geeigneten Kennziffern für
eine Vielzahl von Zielkennungen und durch Speichern jeder Kennziffer in
einem entsprechenden, ohne Bevollmächtigung in eine entsprechende
Fahrzeug-Steuereinheit zu ladenden Softwaremodul etc. beseitigen.
Da jedoch jedes Softwaremodul ein anderes Kennziffern-Berechnungsmodul
enthalten kann, das einen anderen Kennziffern-Berechnungsalgorithmus
einsetzt, kann ein anderer Algorithmus und folglich ein anderes Kennziffern-Berechnungsmodul
in jedem verschiedenen Softwaremodul enthalten sein, was die unberechtigte
Benutzung verschiedener Softwaremodule erheblich behindert, da für jedes
einzelne Softwaremodul, das ein bestimmtes Softwaremodul bereitstellt,
der Algorithmus, der zum Berechnen der Kennziffer in dem in diesem
bestimmten Softwaremodul eingesetzten Kennziffern-Berechnungsmodul
angewendet wird, abgerufen werden muss. Das Kennziffern-Berechnungsmodul
kann eine beliebige Art von Operation zum Berechnen der Kennziffer,
einschließlich
logischer, mathematischer und/oder einer beliebigen geeigneten Art
von Operation ausführen.
Darüber
hinaus kann das Kennziffern-Berechnungsmodul
Gebrauch von einem oder mehreren Parametern machen, die zweckmäßigerweise
die Zielkennung umfassen, die das Ziel für das bestimmte Softwaremodul
identifizieren, es kann jedoch ein beliebiger anderer geeigneter
Typ Eingabeparameter eingesetzt werden.
-
Zweckmäßigerweise
umfasst das Verfahren die weiteren durch den Server ausgeführten Schritte, vor
Schritt d) eine Kopie des Hilfsprogramms zur Kennziffern-Berechnung
für den
Server bereitzustellen, die Kennziffer auf dem Server zu berechnen
und die Kennziffer in die Zugriffsnachricht einzubinden. So wird
die Kennziffer durch eine Kopie des Hilfsprogramms zur Kennziffern-Berechnung
(das den gleichen Algorithmus zum Berechnen der Kennziffer enthält, wie
das in dem Softwaremodul enthaltene Hilfsprogramm zur Kennziffern-Berechnung)
berechnet, was in einer Möglichkeit
resultiert, eine Kennziffer individuell nach Empfang einer ein Softwaremodul für ein bestimmtes
Ziel anfordernden Anforderungsnachricht zu berechnen.
-
Zweckmäßigerweise
umfasst das Softwaremodul Programmbefehle zum Ausführen der
Schritte des Berechnens der Kennziffer durch das Kennziffern-Berechnungsmodul,
des Vergleichens der berechneten Kennziffer mit der in dem Softwaremodul gespeicherten
Kennziffer und des nur dann erfolgenden Aktivierens des Softwaremoduls,
wenn die berechnete Kennziffer der in dem Softwaremodul gespeicherten
Kennziffer gleich ist, bevor das Softwaremodul in der Kraftfahrzeug-Steuereinheit
aktiviert wird.
-
Das
Softwaremodul kann aus einer Speichereinrichtung ausgelesen werden,
die vorteilhaft aus einer Gruppe ausgewählt wird, die eine optisch
lesbare Platte, eine magnetisch lesbare Platte, ein magnetisch lesbares
Band und einen Halbleiterspeicher umfasst. Die Softwaremodule können so
für den
Benutzer auf einer Speichereinrichtung verfügbar sein, wie zum Beispiel
auf einer CD-ROM, zweckmäßigerweise
in verschlüsselter
Form, und nach Empfang einer geeigneten Zugriffsnachricht wird der
Zugriff auf ein bestimmtes Softwaremodul zur Verfügung gestellt.
Alternativ ist es möglich,
dass das Softwaremodul aus dem Internet oder einem beliebigen anderen Computer-Netzwerk
heruntergeladen werden kann.
-
Die
Erfindung umfasst des Weiteren ein Verfahren zum Aktivieren eines
Softwaremoduls in einer Kraftfahrzeug-Steuereinheit, wobei das Softwaremodul
dem Instrument nach dem Verfahren nach der Erfindung zur Verfügung gestellt
worden ist, wobei das Verfahren die Schritte des Berechnens der
Kennziffer in der Kraftfahrzeug-Steuereinheit durch das Kennziffern-Berechnungsmodul,
des Vergleichens der berechneten Kennziffer mit der in dem Softwaremodul gespeicherten
Kennziffer und des nur dann erfolgenden Aktivierens des Softwaremoduls,
wenn die berechnete Kennziffer der in dem Softwaremodul gespeicherten
Kennziffer gleich ist, umfasst.
-
Des
Weiteren umfasst die Erfindung ein Verfahren zum Bereitstellen des
Zugriffs auf ein Softwaremodul zum Einsatz in einer Kraftfahrzeug-Steuereinheit,
die einen programmierbaren Speicher aufweist, wobei das Verfahren
den Schritt des Empfangens einer Zugriff auf das Softwaremodul anfordernden
Anforderungsnachricht auf einem Server von einer Programmiereinrichtung
umfasst, wobei die Anforderungsnachricht eine Softwarekennung zum Identifizieren
des Softwaremoduls enthält,
und den Schritt des Sendens einer Zugriffsnachricht, die einen Zugriffschlüssel enthält, der
das Automobilinstrument befähigt,
auf das Softwaremodul zuzugreifen, von dem Server an die Programmiereinrichtung
umfasst.
-
Die
Computerprogramme nach der Erfindung umfassen Programmbefehle zum
Ausführen der
jeweiligen Verfahren nach der Erfindung.
-
Weitere
Vorteile und Merkmale der Erfindung werden durch eine Beschreibung
der beigefügten Zeichnungen
deutlich, die nichtbeschränkende
Ausführungsformen
der Erfindung zeigen, wobei gilt:
-
1 zeigt
ein System zum Bereitstellen eines Softwaremoduls für eine Kraftfahrzeug-Steuereinheit nach
der Erfindung;
-
2 stellt
ein Ablaufdiagramm dar, das ein Verfahren zum Bereitstellen des
Softwaremoduls für die
Kraftfahrzeug-Steuereinheit nach der Erfindung zeigt; und
-
3 zeigt
ein Ablaufdiagramm, das ein Verfahren zum Aktivieren des Softwaremoduls
in der Fahrzeug-Steuereinheit beschreibt, das, wie mit Bezug auf 2 beschrieben,
für die
Fahrzeug-Steuereinheit bereitgestellt worden ist.
-
1 stellt
sehr schematisch ein Fahrzeug mit einer Kraftfahrzeug-Steuereinheit 1 dar,
die mit einem programmierbaren Speicher 2 ausgestattet
ist. 1 zeigt des Weiteren eine Programmiereinrichtung,
die in diesem Beispiel aus einer Programmierstation 3 und
einem Personal-Computer 4 besteht, der über eine geeignete Datenverbindung 3b mit
der Programmierstation 3 verbunden ist. Die Kraftfahrzeug-Steuereinheit 1,
oder wenigstens der programmierbare Speicher 2, kann mit
der Programmierstation 3 über eine Kabel-, Funkfrequenz-
oder Infrarot-Verbindung 3a verbunden werden, so dass das Programmieren
des programmierbaren Speichers durch die Programmierstation 3 ermöglicht wird.
Die Programmierstation 3 kann einen Protokollkonverter, einen
Spannungspegelkonverter etc. umfassen. Des Weiteren kann die Programmierstation 3 ein
Automobil-Diagnoseinstrument umfassen, wie zum Beispiel eine serielle
Kommunikationsvorrichtung für
eine On-Board-Diagnose und/oder zum Programmieren und/oder Umprogrammieren
einer Motor-Steuereinheit (ECU). Die Programmierstation 3 kann
darüber hinaus
eine Fahrzeug-Kommunikationsschnittstelle (VCI) enthalten. Der Personal-Computer 4 ist
mit einem Server verbunden, wie in diesem Beispiel einem Internet-Server 6,
der sich an einem von dem Personal-Computer 4 entfernten
Ort befinden kann. Der Personal-Computer 4 und der Internet-Server 6 sind miteinander über ein
Netzwerk 7 verbunden, wie zum Beispiel ein Telefonnetz,
ein privates Computer-Netzwerk oder ein öffentliches Computer-Netzwerk,
wie zum Beispiel das Internet, und der Personal-Computer 4 sowie
der Internet-Server 6 sind mit dem Netzwerk 7 jeweils über eine
geeignete Nachrichtenverbindung 8a bzw. 8b verbunden,
wie zum Beispiel ein Modem, eine Datenübertragungsleitung, ein lokales Netzwerk
etc.
-
Die
Kraftfahrzeug-Steuereinheit 1, der programmierbare Speicher 2,
die Programmierstation 3 und der Personal-Computer 4 sind
in der Praxis in einer Kundendienststelle, einer Werkstatt, bei
einem Autohändler
oder alternativ bei einer Kundendienststelle oder einem Händler für die Kraftfahrzeug-Steuereinheit
aufgestellt, es ist jedoch auch ein beliebiger anderer Ort möglich. Der
Server 6 wird üblicherweise durch
einen Hersteller oder bevollmächtigten
Händler
der Kraftfahrzeug-Steuereinheit 1 gesteuert, was einer
solchen Person, Firma oder Partei, die den Server 6 steuert,
ermöglicht,
einem Benutzer der Programmierstation 3 und des Personal-Computers 4 den
Zugriff auf ein Softwaremodul für
die Kraftfahrzeug-Steuereinheit 1 zu gewähren oder
zu verweigern, wie unten ausführlicher
erläutert
wird. In diesem Beispiel steht das Softwaremodul (auch Software
oder Softwareprogramm genannt) dem Benutzer der Programmierstation 3 und
des Personal-Computers 4 auf einem computerlesbaren Medium,
wie zum Beispiel einer CD-ROM 5 zur Verfügung. Die CD-ROM 5 umfasst
ein oder mehrere Softwaremodule für die Kraftfahrzeug-Steuereinheit 1,
die in geeignete Softwareprogramme einbezogen sind. Die Software
ist auf der CD-ROM 5 verschlüsselt gespeichert und erfordert
eine Entschlüsselung,
bevor sie funktionsgemäß angewendet
werden kann. Der Betrieb des Systems nach 1 wird mit
Bezug auf 2 beschrieben. Das Softwaremodul
kann Programmbefehle enthalten, die durch die Kraftfahrzeug-Steuereinheit 1 auszuführen sind,
es ist jedoch auch möglich,
dass das Softwaremodul Parameter, Parameterreihen, -felder oder
beliebige andere Daten umfasst, die von der Kraftfahrzeug-Steuereinheit 1 zu
verwenden sind.
-
2 stellt
ein Ablaufdiagramm dar, das die Schritte 20 bis 28 umfasst,
die in der Programmiereinrichtung, d.h. dem Personal-Computer 4,
der Programmierstation 3 oder in beiden, ausgeführt werden.
Des Weiteren stellt 2 die Schritte 30–35 dar, die
durch den in 1 gezeigten Server 6 ausgeführt werden.
In Schritt 20 wird eine Verbindung zwischen dem programmierbaren
Speicher 2 der Fahrzeug-Steuereinheit 1 und der
Programmiereinrichtung, in diesem Beispiel der Programmierstation 3, aufgebaut.
Dies kann erfolgen, indem der Speicher 2 elektrisch mit
der Programmierstation 3 verbunden wird. Nach der Wahl
des Softwaremoduls durch den Benutzer des Personal-Computers 4 und
dem Eingeben der Wahl durch den Benutzer in den Personal-Computer
in einer Weise, die als solche bekannt ist, wird in Schritt 21 eine
Anforderungsnachricht erzeugt. Die Anforderungsnachricht umfasst
eine Softwaremodul-Kennung
zum Identifizieren des angeforderten Softwaremoduls, wie zum Beispiel
eine Softwarenummer, und umfasst zweckmäßigerweise eine Zielkennung,
wie zum Beispiel eine Speichernummer, eine Nummer der Steuereinheit,
eine Benutzernummer, eine Kundennummer, eine Fahrgestellnummer oder
eine beliebige andere geeignete Kennung. Dann wird in Schritt 22 die
Anforderungsnachricht von dem Personal-Computer 4 über das Netzwerk 7 an
den Server 6 gesendet. In Schritt 30 wird auf
dem Server bestimmt, ob die Anforderung zulässig ist. Eine solche Bestimmung
der Gültigkeit
kann z.B. auf Basis der Zielkennung ausgeführt werden, d.h. durch Überprüfen in einer
Datenbank, die sich auf dem Server 6 befindet oder die
betrieblich mit ihm verbunden ist, ob die Anforderung eine Zielkennung
umfasst, die in einer Liste mit gültigen Zielkennungen enthalten ist,
die in der Datenbank enthalten ist. Dann wird in Schritt 31 ein
Entschlüsselungs-Schlüssel bestimmt. Der
Entschlüsselungs-Schlüssel kann
von dem Softwaremodul, d.h. von der angeforderten bestimmten Software,
die sich auf der CD-ROM 5 befindet, abhängig sein, es ist jedoch ebenso
möglich,
dass der Entschlüsselungs-Schlüssel benutzerabhängig, zielabhängig etc.
ist. Dann wird in Schritt 32 unter Verwendung eines Kennziffern-Berechnungsmoduls, das
sich auf dem Server befindet oder auf das der Server zugreifen kann,
auf dem Server eine Kennziffer berechnet. Das Softwaremodul der
Kennziffer und das Kennziffern-Berechnungsmodul werden unten genauer
erläutert.
In Schritt 33 wird einem Benutzerkonto das angeforderte
Softwaremodul in Rechnung gestellt. Das Berechnen kann auf Basis
einer festen Gebühr
ausgeführt
werden, es ist jedoch ebenso möglich,
dass ein Abrechnungsbetrag z.B. auf vorherigen Zahlungen, einem
Rabattplan oder einem beliebigen anderen Parameter basiert. In Schritt 34 wird eine
Zugriffsnachricht erzeugt, wobei die Zugriffsnachricht den in Schritt 31 bestimmten
Entschlüsselungs-Schlüssel und
die in Schritt 32 berechnete Kennziffer enthält. Dann
wird in Schritt 35 die Zugriffsnachricht über das
Netzwerk 7 an die Programmiereinrichtung, in diesem Beispiel
an den Personal-Computer 4, gesendet und in Schritt 23 darin empfangen.
Nach dem Empfang der Zugriffsnachricht wird in Schritt 24 der
Entschlüsselungs-Schlüssel aus
der Zugriffsnachricht abgeleitet, mit dem, wie mit Schritt 25 angegeben,
die auf der CD-ROM gespeicherte angeforderte Software auf dem Personal-Computer 4 entschlüsselt wird.
Darüber
hinaus wird in Schritt 26 die Kennziffer aus der Zugriffsnachricht
abgeleitet, und die Kennziffer wird in der in Schritt 25 entschlüsselten
Software gespeichert. Dann wird in Schritt 28 das Softwaremodul
von der Programmierstation 3 in den programmierbaren Speicher 2 geladen.
Des Weiteren kann eine Bestätigungsnachricht
(auf 2 nicht dargestellt) an den Server gesendet werden,
um die Vollendung des Ladens des Softwaremoduls in den Speicher 2 des Fahrzeugs
zu bestätigen.
So wird ein Schutz gegen unberechtigte Benutzung des in der Software
enthaltenen Softwaremoduls erreicht, da nur ein Benutzer oder ein
Ziel, die durch den Server 6 als zulässig betrachtet werden, eine
geeignete Zugriffsnachricht empfangen, mit der der Zugriff auf die
Software, die das Softwaremodul enthält, bereitgestellt wird.
-
Wenn,
wie in Schritt 40 in 3 angegeben, in
der Kraftfahrzeug-Steuereinheit ein Start des Softwaremoduls angefordert
wird, berechnet anschließend
das Softwaremodul zuerst die Kennziffer in Schritt 41.
Die Berechnung der Kennziffer wird unter Verwendung des Kennziffern-Berechnungsmoduls, das
in dem Softwaremodul enthalten ist, und wenigstens eines Eingabeparameters
ausgeführt,
der die Zielkennung umfasst (wie zum Beispiel eine Seriennummer
der Fahrzeug-Steuereinheit, eine Benutzernummer oder Kundennummer
oder eine beliebige andere geeignete Kennung zum Identifizieren
des Ziels, von dem das Betreiben der Software angefordert worden
ist). Die Zielkennung wird zweckmäßigerweise in der Fahrzeug-Steuereinheit 1 gespeichert.
In Schritt 42 wird die berechnete Kennziffer mit der in
der Software gespeicherten Kennziffer verglichen. Wenn die berechnete
Kennziffer mit der gespeicherten Kennziffer gleich ist, wird das
Softwaremodul in Schritt 43 aktiviert. Wenn die berechnete Kennziffer
nicht mit der gespeicherten Kennziffer gleich ist, wird das Softwaremodul
anschließend
gesperrt, d.h. die Verfügbarkeit
des Softwaremoduls auf der bestimmten Kraftfahrzeug-Steuereinheit
wird blockiert. Folglich wird das Softwaremodul nur gestartet, falls
eine korrekte Kennziffer berechnet wird, d.h. das Softwaremodul
wird nur auf einem vorgegebenen Ziel gestartet, da nur ein Ziel,
das die vorgegebene Zielkennung umfasst, zu einer Berechnung einer Kennziffer
führt,
die der gespeicherten Kennziffer entspricht. So wird die Benutzung
der Software oder einer Kopie davon auf anderen Zielen, d.h. in
anderen Fahrzeug-Steuereinheiten, durch andere Benutzer etc. verhindert.
Da das Kennziffern-Berechnungsmodul in der Software enthalten ist,
ist es des Weiteren möglich,
verschiedene Kennziffern-Berechnungsmodule
in verschiedene Softwaremodule einzubeziehen, so dass, falls eine
unberechtigte Person den Algorithmus hinter einem bestimmten in
einem bestimmten Softwaremodul enthaltenen Hilfsprogramm zur Kennziffern-Berechnung
erfolgreich abgerufen haben sollte, dann diese Person nur Zugriff auf
das bestimmte Softwaremodul hat, das das bestimmte Hilfsprogramm
zur Kennziffern-Berechnung umfasst, nicht jedoch auf alle anderen
Softwaremodule, die ein anderes Hilfsprogramm zur Kennziffern-Berechnung umfassen.
In dem oben beschriebenen Beispiel ist das Softwaremodul dem Benutzer auf
einer CD-ROM zur Verfügung
gestellt worden, es ist jedoch auch möglich, dass das Softwaremodul
auf einer magnetisch lesbaren Platte, einem magnetisch lesbaren
Band, einem Halbleiterspeicher gespeichert wird. Des Weiteren ist
es möglich,
dass das Softwaremodul aus dem Internet heruntergeladen wird.
-
Folglich
stellt die Erfindung eine benutzerfreundliche, schnelle und sichere
Methode zum Bereitstellen eines Softwaremoduls für eine Kraftfahrzeug-Steuereinheit
zur Verfügung,
da eine Anforderung zum Erlangen des Zugriffs auf das Softwaremodul
an einen Server gesendet wird, woraufhin der Server eine Zugriffsnachricht
bereitstellt, die zweckmäßigerweise
einen Zugriffsschlüssel,
wie zum Beispiel einen Entschlüsselungs-Schlüssel, enthält, der den
Zugriff auf das Softwaremodul ermöglicht. Der Server kann die
Zulässigkeit
der Anforderung bestimmen und kann dafür sorgen, dass einem Benutzerkonto
ein Betrag zur Bezahlung der Software in Rechnung gestellt wird.
Ein Vorteil des Systems und des Verfahrens nach der Erfindung ist,
dass die Software im Voraus verteilt werden kann, während der Einsatz
der Software, wie oben beschrieben, über die Zugriffsnachricht gesteuert
wird und die Bezahlung der Software stattfindet, wenn der Zugriff
auf die Software zur Verfügung
gestellt wird. Es ist folglich nicht erforderlich, große Dateien über das
Internet oder ein anderes Netzwerk zu senden, da die Software selbst, die
das Softwaremodul umfasst, bereits auf der CD-ROM enthalten ist,
während
nur vergleichsweise kleine Nachrichten über das Internet gesendet werden
müssen,
um den Zugriff auf die Software zur Verfügung zu stellen.
-
Durch
Nutzen des Verfahrens und des Systems nach der Erfindung, wie insbesondere
mit Bezug auf 1 und 2 beschrieben,
ist es möglich, die
Software schnell und einfach für
das Fahrzeug bereitzustellen. So wird, wenn eine in einem Softwaremodul
enthaltene Funktion benötigt
wird, eine Anforderungsnachricht an den Server gesendet, was in
einer von dem Server an die Programmiereinrichtung zu sendenden
Zugriffsnachricht resultiert. Mit der Zugriffsnachricht wird der
Zugriff auf die Software zur Verfügung gestellt, die sich auf
einer CD-ROM oder einer beliebigen anderen Einrichtung befinden kann.
Die CD-ROM oder andere Einrichtungen, auf denen die Softwaremodule
gespeichert sind, können an
eine große
Zahl von Händlern
und/oder andere Kundendienststellen verteilt werden. Mit dem Verfahren
und dem System nach der Erfindung ist es möglich, dem Händler oder
den Kundendienststellen erst in dem Moment eine Rechnung zu stellen,
in dem auf ein bestimmtes auf der CD-ROM enthaltenes Softwaremodul
zugegriffen wird, da das Berechnen nach dem Senden einer Zugriffsnachricht
durch den Server an die Programmiereinrichtung stattfinden kann. Auf
diese Weise ist es nicht erforderlich, große Datenmengen über ein
Netzwerk, wie zum Beispiel das Internet, oder andere Kommunikationseinrichtungen, wie
zum Beispiel ein Telekommunikationsnetz, zu senden, da das Softwaremodul
selbst zweckmäßigerweise
auf der CD-ROM verfügbar
ist, während
nur eine kleine Datenmenge, d.h. die Anforderungsnachricht und die
Zugriffsnachricht, über
das Netzwerk übertragen
werden.
-
Des
Weiteren kann eine Rückverfolgbarkeit zur
Verfügung
gestellt werden, da es mit der Zielkennung möglich ist, Aufzeichnungen auf
dem Server des Ziels zu machen, für das eine Zugriffsnachricht bereitgestellt
worden ist, d.h. es ist möglich,
den Überblick über die
Ziele zu behalten, an die ein bestimmtes Softwaremodul übertragen
wird. Die Zielkennung in diesem Beispiel umfasst zweckmäßigerweise
die Fahrgestellnummer (VIN), aber natürlich kann eine beliebige andere
Kennnummer, wie zum Beispiel eine Kennnummer der Mikrosteuereinheit oder
eine Motorsteuerungsnummer oder eine Motorseriennummer angewendet
werden. Unter einem weiteren Aspekt der Erfindung umfasst das Verfahren
nach der Erfindung zweckmäßigerweise
den weiteren Schritt des Sendens einer Bestätigungsnachricht von der Programmiereinheit
an den Server, wobei die Bestätigungsnachricht
eine Bestätigung
enthält,
dass das Softwaremodul in den in dem Fahrzeug enthaltenen programmierbaren
Speicher geladen worden ist. So kann die Rückverfolgbarkeit optimiert
werden, da es möglich
ist, nicht nur Aufzeichnungen der Anforderungsnachrichten und der
Zugriffsnachrichten zu machen, sondern auch den Überblick über die Bestätigungsnachrichten
zu behalten, die bestätigen,
dass die Software in das bestimmte Fahrzeug heruntergeladen worden
ist. Die Bestätigungsnachricht
umfasst zweckmäßigerweise die
Zielkennung und eine Kennung des Softwaremoduls.