-
Die vorliegende Erfindung betrifft ein Programmierverfahren, eine mit einer Anordnung zur Ausführung des Programmierverfahrens kombinierte Batterie sowie ein Kraftfahrzeug mit einer solchen Batterie, welche insbesondere einsetzbar sind für eine parallele abgesicherte Programmierung von Steuergeräten.
-
Stand der Technik
-
Beim Flashprogrammieren von Steuergeräten wird zur Absicherung oft ein sogenanntes Anforderungs-Antwort-Verfahren (Challenge-Response-Verfahren) eingesetzt, um zu verhindern, dass Unbefugte schreibenden Zugriff auf den Flash eines Steuergerätes erhalten, um dort evtl. eigenen Code einzuschleusen:
- – Eine Datenverarbeitungseinrichtung, z. B. ein sogenannter Tester, fordert von einem zu programmierenden Steuergerät einen sogenannten Keim (seed) x, z. B. eine n Bytes Zufallszahl;
- – Das zu programmierende Steuergerät sendet den Keim x an den Tester,
- – der Tester berechnet aus dem Keim x einen sogenannten Schlüssel (key) mittels einer Funktion f(x),
- – das zu programmierende Steuergerät berechnet aus dem Keim ebenfalls den zugehörigen Schlüssel mittels f(x), wobei die Funktion f(x) auf dem Tester und auf dem zu programmierenden Steuergerät identisch ist,
- – der Tester sendet den Schlüssel an das zu programmierende Steuergerät,
- – wenn der an das zu programmierende Steuergerät gesendete Schlüssel mit dem auf dem zu programmierenden Steuergerät berechneten Schlüssel übereinstimmt, ist der Tester autorisiert, das Steuergerät umzuprogrammieren.
-
Das zu programmierende Steuergerät schaltet den Schreibzugriff auf seinen Flashspeicher frei.
-
In Batteriepacks, beispielsweise für Elektroautos, wird gewöhnlich ein zentrales Steuergerät 102 eingesetzt, welches eine bestimmte Anzahl n an untergeordneten Steuergeräten 104-1, 104-2, ..., 104-n koordiniert. Die untergeordneten Steuergeräte 104-1, 104-2, ..., 104-n erfassen nah bei den Batteriezellen 106-1, 106-2, ..., 106-n Messdaten wie Zellspannung und/oder -temperatur usw. Das zentrale Steuergerät 102 und die untergeordneten Steuergeräte 104-1, 104-2, ..., 104-n sind durch einen Kommunikationsbus 108 verbunden, beispielsweise einen CAN-Bus.
-
Bei Flashprogrammierung mehrerer Steuergeräte muss für jedes Steuergerät das oben genannte Verfahren durchgeführt werden (vgl. 2). Das sichere parallele Programmieren 202 mehrerer gleichartiger untergeordneter Steuergeräte (Zielgeräte) 104-1, 104-2, ..., 104-n mit dem gleichen Programmcode ist nicht möglich, ohne vorheriges Aushandeln 204-1, 204-2, ..., 204-n von Keim/Schlüssel mit jedem Zielgerät 104-1, 104-2, ..., 104-n.
-
Wenn in einem Steuergeräteverbund viele gleichartige Steuergeräte vorhanden sind, die mit der gleichen Software laufen, wie das beispielsweise bei Batteriemanagementsystemen mit einem Hauptsteuergerät und vielen untergeordneten Sensorsteuergeräten der Fall ist, so ist aus dem Stand der Technik kein Verfahren bekannt, das ein paralleles Programmieren und gleichzeitiges Absichern des Flashvorgangs vor unbefugtem Zugriff umsetzt.
-
Aus der europäischen Patentschrift
EP 1 055 983 B1 ist bereits ein Steuergerät mit mindestens zwei Steuereinheiten bekannt, wobei Daten für eine Programmierung der mindestens zwei Steuereinheiten gleichzeitig an die mindestens zwei Steuereinheiten übertragen werden. Allerdings wird bei dem Verfahren gemäß
EP 1 055 983 B1 die Programmierung nicht abgesichert.
-
Ein Verfahren zur Programmierung eines Mikrocontrollers ist aus der Veröffentlichung
DE 199 50 159 A1 bekannt. Auch diese Lösung schlägt ein nicht abgesichertes Programmieren eines Speicherbereichs des Mikrocontrollers vor, bei dem die zur Programmierung vorgesehenen Nutzdaten von einem Zwischenspeicher gleichzeitig in die zu programmierenden Speicherbereiche des Mikrocontrollers übertragen werden.
-
Offenbarung der Erfindung
-
Ein besonderer Vorteil der Erfindung besteht darin, dass die serielle Programmierung einer Vielzahl von Zielsteuergeräten durch eine parallele, abgesicherte Programmierung ersetzt wird, was zu einer erheblichen Beschleunigung des Programmiervorgangs um etwa den Faktor „Anzahl der zu programmierenden Steuergeräte“ führt. Dies wird dadurch erreicht, indem erfindungsgemäß von einer ersten Datenverarbeitungseinrichtung mindestens zwei zweite Datenverarbeitungseinrichtungen programmiert werden und wobei von den mindestens zwei zweiten Datenverarbeitungseinrichtungen jeweils eine erste Authentifizierungsinformation an die erste Datenverarbeitungseinrichtung gesendet wird. Bei der ersten Datenverarbeitungseinrichtung kann es sich beispielsweise um ein zentrales Steuergerät, insbesondere um ein Hauptsteuergerät eines Batteriemanagementsystems eines Kraftfahrzeugs, handeln. Bei den mindestens zwei zweiten Datenverarbeitungseinrichtungen kann es sich beispielsweise um Steuergeräte handeln, die der ersten Datenverarbeitungseinrichtung untergeordnet sind. In einer bevorzugten Ausführungsform ist vorgesehen, dass es sich bei den mindestens zwei zweiten Datenverarbeitungseinrichtungen um Sensorsteuergeräte eines Batteriemanagementsystems handelt. Durch derartige Sensorsteuergeräte können beispielsweise Messdaten von Batteriezellen erfasst werden.
-
Bei den von den mindestens zwei zweiten Datenverarbeitungseinrichtungen gesendeten ersten Authentifizierungsinformationen handelt es sich vorzugsweise um einen öffentlichen Schlüssel eines asymmetrischen Verschlüsselungsverfahrens, beispielsweise um einen Keim, der in einem Anforderungs-Antwort-Verfahren genutzt wird.
-
Aus den ersten Authentifizierungsinformationen wird vorzugsweise durch die erste Datenverarbeitungseinrichtung jeweils eine zweite Authentifizierungsinformation generiert und an die mindestens zwei zweiten Datenverarbeitungseinrichtungen übertragen. Durch jede der mindestens zwei zweiten Datenverarbeitungseinrichtungen wird Folgendes ausgeführt:
Verifizierung der zweiten Authentifizierungsinformation, die aus der von der jeweiligen zweiten Datenverarbeitungseinrichtung gesendeten ersten Authentifizierungsinformation erzeugt wurde, und Programmierung der jeweiligen zweiten Datenverarbeitungseinrichtungen in Abhängigkeit des Ergebnisses der Verifizierung.
-
Erfindungsgemäß ist weiter vorgesehen, dass die mindestens zwei zweiten Authentifizierungsinformationen von der ersten Datenverarbeitungseinrichtung gemeinsam durch einmaliges Senden an die mindestens zwei zweiten Datenverarbeitungseinrichtungen übertragen werden. Vorzugsweise werden die mindestens zwei zweiten Authentifizierungsinformationen von der ersten Datenverarbeitungseinrichtung gleichzeitig in einem Datenstrom an die mindestens zwei zweiten Datenverarbeitungseinrichtungen übertragen. In einer bevorzugten Ausführungsform ist vorgesehen, dass die Übertragung nach einem Broadcastverfahren erfolgt.
-
In einer anderen bevorzugten Ausführungsform ist vorgesehen, dass von der ersten Datenverarbeitungseinrichtung eine gemeinsame Anfrage an die mindestens zwei zweiten Datenverarbeitungseinrichtungen erfolgt, vorzugsweise gleichzeitig in einem Broadcastverfahren, um die ersten Authentifizierungsinformationen anzufordern. Alternativ kann diese Anfrage auch seriell an jede einzelne der mindestens zwei zweiten Datenverarbeitungseinrichtungen in einem individualisierten Datenstrom erfolgen.
-
Eine weitere bevorzugte Ausführungsform sieht vor, dass durch das einmalige Senden zusammen mit den mindestens zwei zweiten Authentifizierungsinformationen Daten für die Programmierung der mindestens zwei zweiten Datenverarbeitungseinrichtungen übertragen werden.
-
Noch eine andere bevorzugte Ausführungsform sieht vor, dass die mindestens zwei ersten Authentifizierungsinformationen durch die erste Datenverarbeitungseinrichtung einmal von den mindestens zwei zweiten Datenverarbeitungseinrichtungen angefordert werden. Die von den mindestens zwei zweiten Datenverarbeitungseinrichtungen empfangenen ersten Authentifizierungsinformationen werden vorzugsweise in einem Speicherbereich dauerhaft gespeichert, auf den die erste Datenverarbeitungseinrichtung Zugriff hat. Das hat den Vorteil, dass die ersten Authentifizierungsinformationen nicht jedes Mal, wenn die mindestens zwei zweiten Datenverarbeitungseinrichtungen programmiert werden sollen, erneut abgefragt werden müssen. Vielmehr werden die dauerhaft gespeicherten ersten Authentifizierungsinformationen von der ersten Datenverarbeitungseinrichtung genutzt, um die mindestens zwei zweiten Authentifizierungsinformationen zu erzeugen, wenn die mindestens zwei zweiten Datenverarbeitungseinrichtungen erneut programmiert werden sollen. Auf diese Weise kann eine Vielzahl von (Neu-)Programmierungen der mindestens zwei zweiten Datenverarbeitungseinrichtungen vorgenommen werden, ohne vorher die ersten Authentifizierungsinformationen explizit von den mindestens zwei zweiten Datenverarbeitungseinrichtungen anzufordern.
-
Eine weitere bevorzugte Ausführungsform sieht vor, dass zumindest ein Teil, vorzugsweise alle, der mindestens zwei zweiten Authentifizierungsinformationen erzeugt werden, indem eine Kennung der Daten für die Programmierung verschlüsselt wird. Bei der Kennung kann es sich um eine Checksumme über die Daten für die Programmierung handeln. Vorzugsweise werden die ersten Authentifizierungsinformationen als (öffentlicher) Schlüssel genutzt. Als vorteilhaft erweist es sich, wenn die Kennung mit allen mindestens zwei zweiten Authentifizierungsinformationen verschlüsselt wird. In einer bevorzugten Ausführungsform ist vorgesehen, dass zumindest ein Teil der mindestens zwei zweiten Datenverarbeitungseinrichtungen unterschiedliche erste Authentifizierungsinformationen besitzt und an die erste Datenverarbeitungseinrichtung sendet. Die erzeugten mindestens zwei zweiten Authentifizierungsinformationen werden an die mindestens zwei zweiten Datenverarbeitungseinrichtungen übertragen. Nach Empfang der mindestens zwei zweiten Authentifizierungsinformationen entschlüsseln die mindestens zwei zweiten Datenverarbeitungseinrichtungen die empfangenen zweiten Authentifizierungsinformationen mit einem (privaten) Schlüssel. Wenn eine der empfangenen zweiten Authentifizierungsinformationen, insbesondere die Kennung der Daten für die Programmierung, verifiziert werden kann, heißt das, dass die Programmierung der jeweiligen zweiten Datenverarbeitungseinrichtung zulässig ist, und die Programmierung wird ausgeführt.
-
Als vorteilhaft erweist es sich, wenn es sich bei den mindestens zwei zweiten Datenverarbeitungseinrichtungen um gleichartige oder identische Datenverarbeitungseinrichtungen und/oder bei den Daten für die Programmierung für jede der mindestens zwei zweiten Datenverarbeitungseinrichtungen um die gleichen Daten handelt.
-
Ein weiterer Aspekt der Erfindung betrifft eine Batterie, die mit einer Anordnung kombiniert ist, wobei die Anordnung eine erste Datenverarbeitungseinrichtung und mindestens zwei zweite Datenverarbeitungseinrichtungen umfasst und wobei die Anordnung derart eingerichtet ist, dass ein Programmierverfahren ausführbar ist, wobei von der ersten Datenverarbeitungseinrichtung die mindestens zwei zweiten Datenverarbeitungseinrichtungen programmiert werden und wobei von den mindestens zwei zweiten Datenverarbeitungseinrichtungen jeweils eine erste Authentifizierungsinformation an die erste Datenverarbeitungseinrichtung gesendet wird, aus den ersten Authentifizierungsinformationen jeweils eine zweite Authentifizierungsinformation erzeugt und an die mindestens zwei zweiten Datenverarbeitungseinrichtungen übertragen wird, und nach Verifizierung der zweiten Authentifizierungsinformationen durch jeweils die mindestens zwei zweiten Datenverarbeitungseinrichtungen eine Programmierung der mindestens zwei zweiten Datenverarbeitungseinrichtungen erfolgt. Erfindungsgemäß ist dabei vorgesehen, dass die mindestens zwei zweiten Authentifizierungsinformationen von der ersten Datenverarbeitungseinrichtung gemeinsam durch einmaliges Senden an die mindestens zwei zweiten Datenverarbeitungseinrichtungen übertragen werden. Vorzugsweise handelt es sich bei der Batterie um eine Lithium-Ionen-Batterie oder die Batterie umfasst elektrochemische Zellen, die als Lithium-Ionen-Batteriezellen ausgebildet sind. Bei der Anordnung kann es sich beispielsweise um ein Batteriemanagementsystem handeln, oder die Anordnung kann in ein Batteriemanagementsystem integriert sein.
-
Ein anderer Aspekt der Erfindung betrifft ein Kraftfahrzeug mit einem elektrischen Antriebsmotor zum Antreiben des Kraftfahrzeugs und einer mit dem elektrischen Antriebsmotor verbundenen oder verbindbaren Batterie gemäß dem im voranstehenden Absatz beschriebenen Erfindungsaspekt. Die Batterie ist jedoch nicht auf einen solchen Einsatzzweck eingeschränkt, sondern kann auch in anderen elektrischen Systemen eingesetzt werden.
-
Ein wichtiger Aspekt der Erfindung besteht darin, dass nur ein einziger Datenstrom im Broadcastverfahren vom Steuergerät oder Tester an untergeordnete, vorzugsweise gleichartige Steuergeräte, wie beispielsweise in Elektroautos eingesetzte Sensorsteuergeräte, geschickt wird. Alle Zielsteuergeräte werden parallel programmiert, wobei das erfindungsgemäße Verfahren sicherstellt, dass kein Unbefugter eigenen Programmcode in die Steuergeräte einschleusen kann, z. B. zum Tuning von Komponenten, indem eine verschlüsselte Checksumme übertragen wird. Nach Verifizieren der Checksumme im Zielsteuergerät markiert dieses die Software als „authentifiziert“ und führt die neue Software aus. Bei Übermittlung einer falschen Checksumme, z. B. durch einen unbefugten Dritten, wird die Software im Zielsteuergerät nicht ausgeführt. Ein unbefugter Dritter, der versucht, eigene Software in das Zielsteuergerät zu programmieren, kann somit ohne Kenntnis des Verschlüsselungsverfahrens keine gültige verschlüsselte Checksumme generieren, die von dem Zielsteuergerät akzeptiert wird. Die Software des Unbefugten wird somit nicht als „gültig“ markiert und nicht ausgeführt.
-
Die Erfindung stellt somit folgende Vorteile bereit:
- – Durch die parallele Flashprogrammierung von vergleichbaren Steuergeräten, wie beispielsweise Sensorsteuergeräten, wird ein Geschwindigkeitsgewinn beim Flashprogrammieren erzielt.
- – Da die Flashprogrammierdaten nur einmal an alle Steuergeräte gleichzeitig gesendet werden, wird im Vergleich zu einem seriellen Flashprogrammieren ein schnelleres Flashen ermöglicht, und darüber hinaus wird das zu übertragende Datenvolumen beim Flashprogrammieren verringert.
- – Durch die Verwendung verschlüsselter Checksummen wird der Flashvorgang abgesichert und ein Einschleusen von eigenem Programmcode durch Unbefugte verhindert.
- – Es werden bewährte und verbreitete Verschlüsselungsalgorithmen aus dem Bereich der asymmetrischen Verschlüsselung (public key encryption) verwendet.
- – Es kann die Stärke der Verschlüsselung gewählt werden, was insbesondere vorteilhaft ist bei der Anpassung des für die Verschlüsselung erforderlichen Rechenaufwands an die vorhandenen Ressourcen.
-
Vorteilhafte Weiterbildungen der Erfindung sind in den Unteransprüchen angegeben und in der Beschreibung beschrieben.
-
Zeichnungen
-
Ausführungsbeispiele der Erfindung werden anhand der Zeichnungen und der nachfolgenden Beschreibung näher erläutert. Es zeigen:
-
1 eine schematische Veranschaulichung eines Batteriemanagementsystems,
-
2 eine Veranschaulichung eines sequentiellen Flashprogrammierens mit vorhergehendem individuellen Anforderungs-Antwort-Verfahren nach dem Stand der Technik, und
-
3 eine schematische Veranschaulichung einer beispielhaften Flashprogrammierung per Broadcastkommunikation.
-
Ausführungsformen der Erfindung
-
In einer beispielhaften Ausführungsform der Erfindung wird analog zum Keim-Schlüssel-Verfahren (seed & key-Verfahren)
- – ein Keim – hier der öffentliche Schlüssel – übertragen und
- – ein Schlüssel berechnet und übertragen, der in der beispielhaften Ausführungsform zumindest die mit dem Keim verschlüsselte Checksumme der zum Programmieren genutzten Daten umfasst.
-
Dabei ist die Erfindung nicht auf dieses spezielle Ausführungsbeispiel eingeschränkt. Vielmehr sind auch andere Authentifizierungsverfahren in der Erfindung nutzbar, beispielsweise insbesondere jede asymmetrische Verschlüsselung. Darüber hinaus wird die Erfindung zwar am Beispiel eines Batteriemanagementsystems mit einem zentralen Steuergerät und einer Vielzahl von Sensorsteuergeräten beschrieben. Die Erfindung umfasst jedoch jede parallele abgesicherte Programmierung von Datenverarbeitungseinrichtungen, solange das Programmierverfahren nur alle Merkmale jeweils der unabhängigen Ansprüche realisiert.
-
Zunächst soll das Verfahren zum Programmieren von Steuergeräten prinzipiell am Beispiel des Programmierens eines Zielsteuergeräts durch ein Steuergerät bzw. einen Tester beschrieben werden.
-
Das zu programmierende Zielsteuergerät verwendet einen festen privaten und einen festen öffentlichen Schlüssel. Der öffentliche Schlüssel wird von dem programmierenden Steuergerät/Tester angefragt und dann von dem zu programmierenden Zielsteuergerät an das programmierende Steuergerät/Tester übermittelt. Das programmierende Steuergerät berechnet eine Checksumme über die zu flashende Software und verschlüsselt diese Checksumme mit dem öffentlichen Schlüssel des Zielsteuergeräts. Hierfür können alle bekannten Verschlüsselungsverfahren aus dem Umfeld der public key encryption verwendet werden. Anschließend wird die zu flashende Software zusammen mit der verschlüsselten Checksumme an das Zielsteuergerät übermittelt. Mit Hilfe des privaten Schlüssels entschlüsselt das Zielsteuergerät die Checksumme und vergleicht die Checksumme mit der selbst berechneten Checksumme über die empfangenen Softwaredaten. Stimmen beide Checksummen überein, wird die Software auf dem Zielsteuergerät als „gültig“ markiert und ausgeführt. Andernfalls wird die Ausführung verhindert.
-
In einer beispielhaften Ausführungsform der Erfindung werden mehrere Zielsteuergeräte 104-1, 104-2, ..., 104-n (beispielsweise eine Anzahl von n Zielsteuergeräten 104-1, 104-2, ..., 104-n), beispielsweise mehrere gleichartige Sensorsteuergeräte, von einem zentralen Steuergerät 102, beispielsweise einem Batteriesteuergerät, oder von einem Tester 110 aus koordiniert, insbesondere programmiert werden. Von den Sensorsteuergeräten können beispielsweise Messdaten wie Temperatur, Spannung oder dergleichen von Batteriezellen 106-1, 106-2, ..., 106-n erfasst werden.
-
Jedes der zu programmierenden Zielsteuergeräte 104-1, 104-2, ..., 104-n hat einen festen privaten und öffentlichen Schlüssel. Die öffentlichen Schlüssel werden von dem programmierenden zentralen Steuergerät 102/Tester 110 angefragt und dann von den zu programmierenden Zielsteuergeräten 104-1, 104-2, ..., 104-n an das zentrale Steuergerät 102 bzw. den Tester 110 übermittelt. Das programmierende zentrale Steuergerät 102 berechnet eine Checksumme über die zu flashende Software 302 und verschlüsselt diese Checksumme jeweils mit den öffentlichen Schlüsseln der Zielsteuergeräte 104-1, 104-2, ..., 104-n. Daraus ergeben sich n verschlüsselte Checksummen 304-1, 304-2, ..., 304-n. Das programmierende zentrale Steuergerät 102 bzw. der Tester 110 überträgt die Programmierdaten 306, das heißt die zu flashende Software 302 zusammen mit den n verschlüsselten Checksummen 304-1, 304-2, ..., 304-n, an alle n zu programmierende Zielsteuergeräte 104-1, 104-2, ..., 104-n gleichzeitig in einem Datenstrom (vgl. 3). Jedes Zielsteuergerät 104-1, 104-2, ..., 104-n entschlüsselt die für es bestimmte Checksumme mit dem privaten Schlüssel und vergleicht diese Checksumme mit der selbst berechneten Checksumme über die Software 302. (Die verschlüsselten Checksummen, die für das betreffende Zielsteuergerät nicht relevant sind, sind in 3 durch eine Schraffur gekennzeichnet.) Stimmen beide Checksummen überein, wird die Software auf dem Zielsteuergerät als „gültig“ markiert und ausgeführt. Andernfalls wird die Ausführung verhindert. Vorzugsweise wird nach dem Flashprogrammiervorgang einzeln geprüft, ob das Flashprogrammieren in allen Zielsteuergeräten 104-1, 104-2, ..., 104-n erfolgreich war.
-
In einer weiteren beispielhaften Ausführungsform ist ein beschleunigtes Verfahren zur Flashprogrammierung vorgesehen. Wird für die Programmierung immer dasselbe zentrale Steuergerät 102 genutzt, wie es beispielsweise bei Batteriemanagementsystemen mit einem Hauptsteuergerät und vielen Sensorsteuergeräten der Fall ist, wird das zentrale Steuergerät 102 beim ersten Hochfahren angelernt. Es fragt von allen untergeordneten Zielsteuergeräten 104-1, 104-2, ..., 104-n deren öffentlichen Schlüssel ab und speichert diese dauerhaft im eigenen Flash. Dadurch entfällt der Austausch der öffentlichen Schlüssel vor jedem Flashvorgang. Falls ein untergeordnetes Zielsteuergerät 104-i (i = 1, 2, ..., n) ausgetauscht wird, was bei Batteriesystemen selten vorkommt, und einen anderen öffentlichen Schlüssel besitzt, so wird das Entschlüsseln der Checksumme mit dem dazugehörigen privaten Schlüssel fehlschlagen. Das untergeordnete Zielsteuergerät 104-i (i = 1, 2, ..., n) meldet diesen Fehlschlag an das zentrale programmierende Steuergerät 102, welches dann den öffentlichen Schlüssel erneut anfordert („anlernt“).
-
Um die Zielsteuergeräte 104-1, 104-2, ..., 104-n zu programmieren, überträgt das zentrale Steuergerät 102 bzw. der Tester 110 die zu flashende Software 302 zusammen mit den n verschlüsselten Checksummen 304-1, 304-2, ..., 304-n an alle n zu programmierenden Zielsteuergeräte 104-1, 104-2, ..., 104-n gleichzeitig in einem Datenstrom (vgl. 3). Jedes Zielsteuergerät 104-1, 104-2, ..., 104-n entschlüsselt die für es bestimmte Checksumme mit dem privaten Schlüssel und vergleicht diese Checksumme mit der selbst berechneten Checksumme über die Software 302. Stimmen beide Checksummen überein, wird die Software auf dem Zielsteuergerät als „gültig“ markiert und ausgeführt. Andernfalls wird die Ausführung verhindert.
-
Bezüglich der herkömmlichen Verfahren zeichnet sich die Erfindung insbesondere dadurch aus, dass die Kommunikation von dem zentralen Steuergerät 102 an die untergeordneten Zielsteuergeräte 104-1, 104-2, ..., 104-n im Broadcastverfahren erfolgt. Es ist somit individueller Datenstrom für jedes einzelne Zielsteuergerät 104-1, 104-2, ..., 104-n nötig. Das programmierende Steuergerät 102 übersendet alle verschlüsselten Checksummen 304-1, 304-2, ..., 304-n und die zu flashende Software 302 per Broadcast an alle Zielsteuergeräte 104-1, 104-2, ..., 104-n, welche nur die für sie bestimmte Checksumme entschlüsseln. Das Senden per Broadcast vereinfacht die Kommunikation erheblich, da nicht mit jedem Zielsteuergerät 104-1, 104-2, ..., 104-n individuell verhandelt werden muss.
-
Die Erfindung stellt somit ein Verfahren bereit, bei dem mit einem einzigen Datenstrom vom Hauptsteuergerät zu allen untergeordneten Steuergeräten die Daten für die Programmierung (Flashdaten) übertragen werden und gleichzeitig sichergestellt wird, dass kein Unbefugter Zugriff auf den Flashspeicher eines Steuergeräts erhält., um dort eventuell modifizierten Softwarecode einzuschleusen.
-
Durch das parallele Programmieren wird der Flashvorgang der untergeordneten Steuergeräte im Wesentlichen um den Faktor „Anzahl der zu flashenden Steuergeräte“ im Vergleich zu einem sequentiellen Flashen der Steuergeräte beschleunigt.
-
Das erfindungsgemäße Verfahren basiert auf der Methode der asymmetrischen Verschlüsselung mit öffentlichen Schlüsseln (public key encryption), bei der ein Teilnehmer eine Botschaft mit einem öffentlichen (bekannten) Schlüssel verschlüsselt, die von einem Empfänger nur mit dessen geheimem (privatem) Schlüssel entschlüsselt werden kann.
-
Die Erfindung beschränkt sich in ihrer Ausführungsform nicht auf die vorstehend angegebenen bevorzugten Ausführungsbeispiele. Vielmehr ist eine Anzahl von Varianten denkbar, die von dem erfindungsgemäßen Verfahren, der erfindungsgemäßen Batterie und dem erfindungsgemäßen Kraftfahrzeug auch bei grundsätzlich anders gearteten Ausführungen Gebrauch macht.
-
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
-
- EP 1055983 B1 [0007, 0007]
- DE 19950159 A1 [0008]