DE102010009263B4 - Verfahren zur Datenübertragung zu einem elektronischen Steuergerät - Google Patents

Verfahren zur Datenübertragung zu einem elektronischen Steuergerät Download PDF

Info

Publication number
DE102010009263B4
DE102010009263B4 DE102010009263A DE102010009263A DE102010009263B4 DE 102010009263 B4 DE102010009263 B4 DE 102010009263B4 DE 102010009263 A DE102010009263 A DE 102010009263A DE 102010009263 A DE102010009263 A DE 102010009263A DE 102010009263 B4 DE102010009263 B4 DE 102010009263B4
Authority
DE
Germany
Prior art keywords
bit
data words
decoding
code tree
code
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.)
Expired - Fee Related
Application number
DE102010009263A
Other languages
English (en)
Other versions
DE102010009263A1 (de
Inventor
Uwe Fischer
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.)
Knorr Bremse Systeme fuer Nutzfahrzeuge GmbH
Original Assignee
Knorr Bremse Systeme fuer Nutzfahrzeuge 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 Knorr Bremse Systeme fuer Nutzfahrzeuge GmbH filed Critical Knorr Bremse Systeme fuer Nutzfahrzeuge GmbH
Priority to DE102010009263A priority Critical patent/DE102010009263B4/de
Priority to PCT/EP2011/052670 priority patent/WO2011104268A2/de
Priority to US13/581,251 priority patent/US8760326B2/en
Priority to EP11707136A priority patent/EP2540001A2/de
Publication of DE102010009263A1 publication Critical patent/DE102010009263A1/de
Application granted granted Critical
Publication of DE102010009263B4 publication Critical patent/DE102010009263B4/de
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L69/00Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass
    • H04L69/04Protocols for data compression, e.g. ROHC
    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03MCODING; DECODING; CODE CONVERSION IN GENERAL
    • H03M7/00Conversion of a code where information is represented by a given sequence or number of digits to a code where the same, similar or subset of information is represented by a different sequence or number of digits
    • H03M7/30Compression; Expansion; Suppression of unnecessary data, e.g. redundancy reduction
    • H03M7/40Conversion to or from variable length codes, e.g. Shannon-Fano code, Huffman code, Morse code

Abstract

Verfahren zur Datenübertragung von einem Programmiergerät zu einem Steuergerät, bei dem die zu übertragenden Daten im Programmiergerät durch eine Huffman-Codierung komprimiert werden, nach der Komprimierung zusammen mit einem Huffman-Codebaum zum Decodieren vom Programmiergerät an das Steuergerät übertragen werden, im Steuergerät dekomprimiert und dort gespeichert werden,
dadurch gekennzeichnet,
dass für eine vorbestimmte Anzahl von Datenworten, bestehend jeweils aus N-Bits, der zu übertragenden Daten eine erste Huffman-Codierung mit einem ersten Codebaum und für die verbleibenden Datenworte, bestehend jeweils aus M-Bits, eine zweite Huffman-Codierung mit einem zweiten Codebaum durchgeführt wird, wobei N größer als M ist,
wobei die vorbestimmte Anzahl Datenworte, bestehend aus N-Bits, und die verbleibenden Datenworte, bestehend aus M-Bits aus jeweils mehr als zwei Datenworten bestehen, dass ein Codebaum für die zu codierenden N-Bit-Datenwörter und ein Codebaum für die zu codierenden M-Bit-Datenwörter erzeugt werden,
dass beide Codebäume an das Steuergerät übertragen werden und
dass alle codierten...

Description

  • Die Erfindung betrifft ein Verfahren zur Datenübertragung von einem Programmiergerät zu einem elektronischen Steuergerät insbesondere zu elektronischen Steuergeräten von Kraftfahrzeugen.
  • Ein solches Verfahren ist aus der Druckschrift Liebscher P.: ”Aktuelle Trends bei der Steuergeräte-Reprogrammierung”. In: Elektronik automotive 2.2006, S. 34–37 bekannt. Die ältere nicht vorveröffentlichte DE 10 2008 052 955 A1 zeigt ebenfalls die Übertragung von Programmcodes an einen Speicher eines Steuergerätes, bei dem zunächst der Programmspeicher im Steuergerät mit ungültigen Codes überschrieben wird, anschließend die zu übertragenden Programmcodes nach dem Huffman-Datenkompressionsverfahren komprimiert, übertragen, im Steuergerät dekomprimiert und gespeichert werden.
  • Die Druckschrift Decker, Th.: ”Vortrag 6: Huffman”; In: Online-Bibliothek Wikipedia, 19.01.1999, http://www.itec.uka.de/seminare/redundanz/vortrag06/ sowie die US 2007/0016406 A1 , DE 39 43 881 B4 und DE 699 16 661 T2 beschreiben, dass die Huffman-Codierung dadurch optimiert werden kann, dass als zu codierende Datenworte nicht nur einzelne Eingangsdatenworte verwendet werden sondern Paare/Tuppel dieser Eingangsworte.
  • Bei der US 2007/0016406 A1 und der DE 39 43 881 B4 ist zusätzlich beschrieben, die verwendeten Huffman-Codierungen abhängig von den gerade zu codierenden Daten umzuschalten und zwar bereichsweise innerhalb der zu codierenden Daten. Weiter ist bei der DE 39 43 881 34 ein Kennungsbit zum Unterscheiden verschiedener Codierungsvarianten vorgesehen.
  • Zur Datenübertragung größerer Datenmengen in vertretbarer zeit ist es bekannt, die zu übertragenden Daten zu komprimieren. Hierfür eignet sich die sehr leistungsfähige verlustfreie Huffman-Codierung. Die Huffman 16 Codierung, die mit 16-Bit Datenworten arbeitet ist sehr leistungsfähig, erfordert aber einen verhältnismäßig großen Codebaum zum Decodieren (bis ca. 278 KBytes). Die Größe hängt von der Code Ausnutzung ab. Jeder verwendete 16-Bit Code kostet 34 Bit im Codebaum für die Decodierung. Dementsprechend dauert die Erstellung des Codebaumes auch lange. Außerdem muß bei der Datenübertragung der Codebaum für die Decodierung mit übertragen werden und passt eventuell aufgrund seiner Größe nicht mehr in den Arbeitsspeicher des Zielsystems bzw. Steuergerätes.
  • Andererseits kommt die 8-Bit Huffman-Codierung, die mit 8-Bit Datenworten arbeitet, mit einem kleineren Codebaum für die Decodierung aus (ca. 574 Bytes) erreicht jedoch nicht die Leistungsfähigkeit der 16-Bit Huffman-Codierung.
  • Aufgabe der Erfindung ist es das Verfahren gemäß dem Oberbegriff des Patentanspruches 1 dahingehend zu verbessern, dass es bei hoher Leistungsfähigkeit mit kleineren Codebäumen auskommt und dadurch die Datenübertragung schneller stattfindet. Weiter soll die Belastung des Arbeitsspeichers des Steuergerätes durch den Codebaum verringert werden.
  • Diese Aufgabe wird durch die im Patentanspruch 1 angegebenen Merkmale gelöst. Vorteilhafte Ausgestaltungen und Weiterbildungen der Erfindung sind den Unteransprüchen zu entnehmen.
  • Die Grundidee der Erfindung liegt darin, die Komprimierung der zu übertragenden Daten teilweise mit einer N-Bit Huffman-Codierung und teilweise mit M-Bit Huffman-Codierung durchzuführen, wobei N ein ganzzahliges Vielfaches M ist und die Anzahl von N-Bit-Datenworten und die Anzahl von M-Bit-Datenworten jeweils größer 2 ist und weiter beide Codebäume an das Steuergerät übertragen werden. Unter N-Bit Huffman-Codierung und M-Bit Huffman-Codierung wird hier und im folgenden eine Huffman-Codierung mit einem ersten bzw. zweiten Codebaum verstanden, der Datenwörter bestehend aus N-Bits bzw. M-Bits codiert.
  • In einem bevorzugten Ausführungsbeispiel wird eine vorbestimmte Anzahl von zu codierenden Datenworten mit der 16-Bit Huffman-Codierung durchgeführt, während die restlichen Datenworte mit der 8-Bit Huffman-Codierung komprimiert werden.
  • Für die häufigsten 16-Bit Datenworte wird eine eigene Codiertabelle und ein eigener(erster)Codebaum für die Decodierung erstellt, wobei die Anzahl der Datenworte so gewählt wird, dass die Größe des Codebaumes überschaubar bleibt. Für alle übrigen Codes wird ein (zweiter) 8-Bit Huffman-Baum erstellt, der alle Codes von ”0” bis ”255” decodieren kann. Da der vollständige 8-Bit Codebaum für die Decodierung nur 574 Bytes groß ist, lohnt es sich hier nicht, einen unvollständigen Baum zu verwenden.
  • Bei der Codierung wird zunächst geprüft, ob der gefundene 16-Bit Wert in der 16-Bit Codiertabelle enthalten ist. Wenn nicht, wird die 8-Bit Tabelle verwendet und die beiden Bytes des 16-Bit Wortes codiert.
  • Für die Entscheidung, welcher Codebaum zum Decodieren zu verwenden ist, wird bei der Codierung ein Bit hinzugefügt. Der Codebaum kann für beliebige Daten verwendet werden, da mit Hilfe der vollständigen 8-Bit Bäume beliebige Daten darstellbar sind.
  • Generell ist anstelle der erwähnten 16-Bit Codierung auch eine 32-Bit Codierung denkbar, wobei das Verfahren prinzipiell auch für beliebige andere Datengrößen einsetzbar ist, wie z. B. 9-Bit oder 19-Bit.
  • Primäres Einsatzgebiet des Verfahrens nach der Erfindung ist die Programmierung von elektronischen Steuergeräten für Kraftfahrzeuge und Nutzfahrzeuge über eine Diagnoseschnittstelle. Durch die Komprimierung der Daten läßt sich bei der Entwicklung, in Produktion und in der Werkstatt erhebliche Zeit sparen.
  • Durch die Kombination der zwei Codierarten lassen sich die Vorteile beider Codebäume nutzen. Die Nachteile der geringen Effizienz der 8-Bit Codierung und des zu großen Codebaumes für die Decodierung der 16-Bit Codierung werden kompensiert. Die Übertragung der Daten über die Diagnoseschnittstelle eines Fahrzeuges erfolgt in aufsteigender Reihenfolge was bei manchen Steuergeräten notwendig ist, da nicht wahlfrei, sondern nur Sektorweise in den Speicher geschrieben werden kann. Die Codebäume für die Decodierung sind klein genug, um während der Decodierung im Arbeitsspeicher des Zielsystems abgelegt werden zu können. Danach können die Codebäume für die Decodierung aus dem Arbeitsspeicher entfernt werden, sodass dieser für andere Aufgaben zu Verfügung steht. Es ist aber auch möglich zumindest einen der Codebäume für die Decodierung oder auch beide Codebäume für die Decodierung permanent in einem nicht flüchtigen Speicher wie z. B. einem Flash-Speicher des Steuergerätes gespeichert zu behalten. Bei späteren Änderungen der an das Steuergerät zu übertragenden Daten ändern sich im Regelfall die Codebäume nicht oder nur geringfügig, sodass keine spürbare Verschlechterung eintritt. Selbstverständlich muß bei späteren Datenänderungen dann der ursprünglich verwendete Codebaum benutzt werden.
  • Im folgenden wird die Erfindung anhand eines Ausführungsbeispieles im Zusammenhang mit der Zeichnung ausführlicher beschrieben. Es zeigt:
  • 1 einen ersten Codebaum für die 16-Bit Huffman-Codierung;
  • 2 einen 16-Bit Codebaum für die Decodierung für das Ausführungsbeispiel der 1;
  • 3 einen zweiten Codebaum für die 8-Bit Huffman-Codierung; und
  • 4 einen Codebaum für die Decodierung mit einem 8-Bit und einem 16-Bit Teil-Codebaum für die Decodierung.
  • Zur Unterscheidung von Hexadezimalzahlen gegenüber Primär- und Dezimalzahlen wird das übliche Präfix 0x verwendet, um Hexadezimalzahlen zu kennzeichnen. Sofern nicht gesondert darauf hingewiesen wird.
  • Folgende Bytes ab Adresse 0x2000 sind zu komprimieren, wobei alle Werte Hexadezimalzahlen sind: Tabelle 1
    Figure 00060001
    dabei ergeben sich folgende Häufigkeiten: Tabelle 2
    Figure 00070001
  • Darin sind folgende 8-Bit Werte enthalten: Tabelle 3
    Figure 00070002
  • Es wird dann eine Anzahl x (mit x = 5 im beschriebenen Beispiel) der häufiger vorkommenden 16-Bit Werte bestimmt, die einer 16-Bit Codierung unterworfen werden. Die Anzahl x ist jedoch kleiner 2N, sodass nicht alle 16-Bit Werte der 16-Bit Codierung unterworfen werden und mehrere 8-Bit Werte übrig bleiben, die 16-Bit Codierung also unvollständig ist, damit der 16-Bit Codebaum und der entsprechende 16-Bit Codebaum für die Decodierung nicht zu lang werden. Werte für x von 100 bis 200 werden als günstig angesehen.
  • Da die auftretenden 8-Bit-Werte in den 16-Bit-Werten zum Teil enthalten sind, müssen die Häufigkeiten der 8-Bit-Werte korrigiert werden. Dabei ist zu beachten, dass sowohl das höherwertige Byte als auch das niederwertige Byte der 16-Bit-Werte berücksichtigt werden. Zum Beispiel wird die Häufigkeit von 0xFF (8-Bit) mit jedem Auftreten von 0xFFFF (16-Bit) um zwei vermindert, mit jedem Auftreten von 0xFF00 um eins.
  • Ohne diese Korrektur würde sich zum Beispiel für die 66 ein kurzer Huffman-Code ergeben, obwohl dieser 8-Bit-Wert gar nicht vorkommt. (Weil er in dem 16-Bit-Wert 6655 aufgegangen ist.) Es ergeben sich dann folgende Korrekturen für die Häufigkeit der 8-Bit Werte.
  • Tabelle 4
    Figure 00080001
  • Für die Erstellung des Codebaumens darf die Häufigkeit „0” nicht vorkommen, da sonst eine Erstellung nicht möglich wäre. Deshalb werden alle Häufigkeiten mit dem Wert „0” auf „1” gesetzt, um vollständige 8-Bit Codebäume und Codebäume für die Decodierung zu erzwingen. Damit aber nicht vorkommende Zeichen dadurch keinen gleich „guten” Platz im Codebaum erhalten, wie selten oder nur einmal vorkommende Zeichen, werden die Häufigkeiten der tatsächlich vorkommenden Zeichen mit einem Faktor multipliziert, beispielsweise mit dem Faktor 100. Es ergeben sich dann folgende umsortierte 8-Bit Werte: Tabelle 5
    Figure 00090001
  • Da das Verhältnis der Häufigkeiten zueinander gleich bleibt, ändern sich der erzeugte Codebaum und die erzeugten Codes bei Vorkommen aller 8-Bit-Werte nicht.
  • Im dargestellten Beispiel wirkt dieser Mechanismus sehr stark, hat jedoch keine Bedeutung, wenn alle 8-Bit Werte auch in Daten vorkommen.
  • Es werden nun zwei voneinander unabhängige Codebäume erzeugt, nämlich ein Codebaum für 16-Bit-Werte und ein Codebaum für 8-Bit-Werte.
  • Der 16-Bit-Codebaum wird hier zur übersichtlichen Darstellung nur für die ersten 5 Werte gemäß der Häufigkeit erzeugt, im Beispiel also die Werte FFFF, 0000, FF00, 6655 und 0605, wie in 1 dargestellt.
  • Der entsprechende Codebaum für die Decodierung dazu ist in 2 gezeigt.
  • Für alle 8-Bit-Werte wird ein vollständiger 8-Bit Codebaum erstellt, der in 3 nur für die vorkommenden 8-Bit-Werte dargestellt ist. Damit ergeben sich folgende Codiertabellen:
  • Tabelle 6
  • Codiertabelle M = 8-Bit
    • nur für die vorkommenden Zeichen dargestellt.
    Wert Länge Code
    55 3 101
    02 4 1111
    00 4 1110
    01 3 001
    78 4 1000
    90 5 11011
    12 5 11010
    AA 4 0101
    34 4 0100
    56 4 0111
    06 4 0110
    05 4 0001
    FF 4 0000
  • Tabelle 7
  • Codiertabelle N = 16-Bit
  • Nicht vorkommende 16-Bit Zeichen werden als zwei 8-Bit Zeichen codiert.
    Wert Länge Code
    FFFF 1 0
    0000 2 10
    FF00 3 110
    6655 4 1111
    0605 4 1110
  • Bei der Codierung wird zunächst versucht, jedes 16-Bit Wort als solches zu codieren. Kommt es in der 16-Bit Tabelle nicht vor, so werden beide Hälften einzeln als 8-Bit Wert codiert. Damit kommen 8-Bit Werte hier immer Paarweise vor, oder allgemeiner gesagt N/M-fach.
  • Zur Unterscheidung wird als „Kennungsbit” vor jedem 16-Bit Wert eine ”0” eingefügt und eine ”1”, wenn zwei 8-Bit Werte folgen.
  • Figure 00110001
  • Die so codierten und mit Kennungsbit versehenen Daten werden dann zusammen mit den zugehörigen Codebäumen für die Decodierung an das Steuergerät übertragen und dort mittels der Codebäume für die Decodierung decodiert. Falls die Codebäume für die Decodierung schon im Steuergerät aufgrund einer Erstprogrammierung gespeichert sind, entfällt natürlich die Übertragung der Codebäume für die Decodierung, wobei dann für die Codierung die ursprünglichen Codebäume verwendet werden müssen.
  • Bei der Decodierung werden immer entweder ein 16-Bit Wert oder zwei 8-Bit-Werte decodiert. Einzelne 8-Bit-Werte werden nicht decodiert, weil dies keinen Vorteil bringen würde. Durch die Ausrichtung der Mikrocontroller-Codes an 16-Bit Grenzen und die Notwendigkeit eines zusätzlichen Codebits für jeden 8-Bit-Code würde sich eine Verschlechterung der Komprimierung ergeben.
  • 4 zeigt, dass das vor die codierten Werte gesetzte Bit (Kennungs-Bit) entscheidet, ob die 16-Bit Decodierung (für einen 16-Bit Wert) oder die 8-Bit Decodierung (für zwei aufeinanderfolgende 8-Bit Werte) durchgeführt wird. Ist dieses Bit eine ”0”, so wird der 16-Bit Codebaum für die Decodierung verwendet, ist es eine ”1”, so wird der 8-Bit Codebaum für die Decodierung verwendet. Die jeweilige Decodierung eines Datenwortes ist immer dann erledigt, wenn im Codebaum für die Decodierung das letzte ”Blatt” erreicht ist, wobei nach Auftreten des Kennungs-Bit ”1” der 8-Bit Codebaum für die Decodierung zweimal durchlaufen wird.
  • Der Codebaum für die Decodierung für die 8-Bit Werte ist in 3 dargestellt. In den 1 bis 3 sind Hexadezimalwerte jeweils durch den Präfix 0x kenntlich gemacht.
  • Aus obigem ist ersichtlich, dass die Größe des 16-Bit Codebaumes und des zugehörigen 16-Bit Codebaumes für die Decodierung einen wesentlichen Einfluß hat. Eine beliebige Vergrößerung des 16-Bit Codebaumes für die Decodierung kann kontraproduktiv sein und zu einer schlechteren Komprimierung führen. Dies sei an folgendem Beispiel verdeutlicht:
    Ein zusätzlicher Eintrag im Codebaum für die Decodierung beansprucht 34 Bit.
  • Die Codierung der zwei 8-Bit Werte beansprucht 6 + 8 + 1 = 15 Bit.
  • Die Codierung eines 16-Bit Wertes beansprucht 12 + 1 = 13 Bit.
  • Pro zwei Bytes werden also vier Bit eingespart. Um die zusätzlichen 34 Bit zu Amortisieren muß der 16-Bit Wert in diesem Rechenbeispiel mindestens 17 Mal auftreten. Um dies zu überprüfen, müßte man teilweise große Dateien durchrechnen, da die Länge der codierten Zeichen nicht konstant ist.
  • Die optimalen Werte hängen von den jeweils vorliegenden Daten ab. Die nachfolgende Tabelle 9 zeigt ausgehend von der ursprünglichen Größe einer Datei von 131072 Bytes den Zusammenhang zwischen der Anzahl von 16-Bit Codes, der Anzahl der komprimierten Bytes einschließlich Codebäume und das Kompressionsverhältnis in Prozent. Tabelle 9
    Anzahl 16-Bit Codes Kodierbäume Anzahl Bytes komprimiert incl. Prozent von 131072 Bytes
    78 55848 42,61%
    386 55433 42,29%
    152 55425 42,29%
    231 55309 42,20%
    295 55290 42,18%
    268 55266 42,16%
  • Eine Testapplikation mit einer ursprünglichen Größe von 1179648 Bytes zeigt, dass das Kompressionsverhältnis bei größeren Dateien noch besser wird. Tabelle 10
    Anzahl 16-Bit Codes Anzahl Bytes komprimiert incl. Kodierbäume Prozent von 1179648 Bytes
    1025 265977 22,55%
    635 263772 22,36%
    418 262473 22,25%
    335 261968 22,21%
    277 261654 22,18%
    240 261367 22,16%
    200 261118 22,14%
    42 261029 22,13%
    94 260973 22,12%
    165 260942 22,12%
    118 260929 22,12%
    65 260737 22,10%
    50 260717 22,10%
    56 260618 22,09%
  • Weiter ist zu erkennen, dass die Anzahl der 16-Bit Codes bei Dateien dieser Größe einen relativ geringen Einfluß hat. Die optimalen Parameter hängen nämlich von der Code-Verteilung in den zu komprimierenden Daten ab.
  • Da bei größeren Datenmengen der Codebaum für die Decodierung kaum ins Gewicht fällt, sollte man die Anzahl der 16-Bit Codes nicht zu klein wählen. Werte um 100 bis 200 erscheinen günstig zu sein, wobei generell jeder Wert größer 1 möglich ist.

Claims (10)

  1. Verfahren zur Datenübertragung von einem Programmiergerät zu einem Steuergerät, bei dem die zu übertragenden Daten im Programmiergerät durch eine Huffman-Codierung komprimiert werden, nach der Komprimierung zusammen mit einem Huffman-Codebaum zum Decodieren vom Programmiergerät an das Steuergerät übertragen werden, im Steuergerät dekomprimiert und dort gespeichert werden, dadurch gekennzeichnet, dass für eine vorbestimmte Anzahl von Datenworten, bestehend jeweils aus N-Bits, der zu übertragenden Daten eine erste Huffman-Codierung mit einem ersten Codebaum und für die verbleibenden Datenworte, bestehend jeweils aus M-Bits, eine zweite Huffman-Codierung mit einem zweiten Codebaum durchgeführt wird, wobei N größer als M ist, wobei die vorbestimmte Anzahl Datenworte, bestehend aus N-Bits, und die verbleibenden Datenworte, bestehend aus M-Bits aus jeweils mehr als zwei Datenworten bestehen, dass ein Codebaum für die zu codierenden N-Bit-Datenwörter und ein Codebaum für die zu codierenden M-Bit-Datenwörter erzeugt werden, dass beide Codebäume an das Steuergerät übertragen werden und dass alle codierten N-Bit Datenworte und N/M von aufeinanderfolgenden M-Bit-Datenworten jeweils mit einem vorangestellten Kennungsbit versehen werden.
  2. Verfahren nach Anspruch 1, dadurch gekennzeichnet, dass die Anzahl N ein ganzzahliges Vielfaches der Anzahl M ist.
  3. Verfahren nach Anspruch 2, dadurch gekennzeichnet, dass die Anzahl N gleich 16 und die Anzahl M gleich 8 ist.
  4. Verfahren nach einem der Ansprüche 1 bis 3, dadurch gekennzeichnet, dass beide Codebäume zum Dekodieren nach der Decodierung der übertragenen Daten im Steuergerät gelöscht werden.
  5. Verfahren nach einem der Ansprüche 1 bis 4, dadurch gekennzeichnet, dass die Anzahl der Datenworte, die der ersten Huffman-Codierung unterzogen werden kleiner 2N beträgt.
  6. Verfahren nach einem der Ansprüche 1 bis 5, dadurch gekennzeichnet, dass das Kennungsbit für die Datenworte, die der ersten Huffman-Codierung unterzogen wurden, eine logische ”0” ist und für die der zweiten Huffman-Codierung unterworfenen Datenworte eine logische ”1” ist.
  7. Verfahren nach einem der Ansprüche 1 bis 6, dadurch gekennzeichnet, dass die codierten Datenworte, bestehend aus N-Bits, einzeln decodiert werden und von den verbleibenden codierten Datenworten, bestehend aus M-Bits, eine Anzahl N/M solcher Bitworte in Folge decodiert wird.
  8. Verfahren nach einem der Ansprüche 1 bis 7, dadurch gekennzeichnet, dass die Häufigkeit der vorkommenden N-Bit Datenworte und M-Bit Datenworte vor dem Codieren ermittelt wird, dass die Anzahl(x) der N-Bit Datenworte festgelegt wird, anschließend die Anzahl der nicht in den festgelegten N-Bit Datenworten enthaltenen M-Bit-Datenworte bestimmt wird, anschließend die so ermittelten Anzahlen von M-Bit-Datenworten mit einem Korrekturfaktor multipliziert werden, wobei die Anzahl von M-Bit-Datenworten mit dem Wert ”0” auf ”1” gesetzt wird.
  9. Verfahren nach Anspruch 8, dadurch gekennzeichnet, dass der Korrekturfaktor zwischen 10 und 100 beträgt.
  10. Verfahren nach einem der Ansprüche 1 bis 3 und 5 bis 9, dadurch gekennzeichnet, dass die Codebäume zum Dekodieren oder zumindest der vollständige Codebaum zum Dekodieren von N-Bit-Datenwörtern in einem nichtflüchtigen Speicher (zb. Flash-Speicher) des Steuergerätes gespeichert bleiben.
DE102010009263A 2010-02-25 2010-02-25 Verfahren zur Datenübertragung zu einem elektronischen Steuergerät Expired - Fee Related DE102010009263B4 (de)

Priority Applications (4)

Application Number Priority Date Filing Date Title
DE102010009263A DE102010009263B4 (de) 2010-02-25 2010-02-25 Verfahren zur Datenübertragung zu einem elektronischen Steuergerät
PCT/EP2011/052670 WO2011104268A2 (de) 2010-02-25 2011-02-23 Verfahren zur datenübertragung zu einem elektronischen steuergerät
US13/581,251 US8760326B2 (en) 2010-02-25 2011-02-23 Method for data transmission to an electronic control unit
EP11707136A EP2540001A2 (de) 2010-02-25 2011-02-23 Verfahren zur datenübertragung zu einem elektronischen steuergerät

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
DE102010009263A DE102010009263B4 (de) 2010-02-25 2010-02-25 Verfahren zur Datenübertragung zu einem elektronischen Steuergerät

Publications (2)

Publication Number Publication Date
DE102010009263A1 DE102010009263A1 (de) 2011-08-25
DE102010009263B4 true DE102010009263B4 (de) 2012-04-12

Family

ID=44168140

Family Applications (1)

Application Number Title Priority Date Filing Date
DE102010009263A Expired - Fee Related DE102010009263B4 (de) 2010-02-25 2010-02-25 Verfahren zur Datenübertragung zu einem elektronischen Steuergerät

Country Status (4)

Country Link
US (1) US8760326B2 (de)
EP (1) EP2540001A2 (de)
DE (1) DE102010009263B4 (de)
WO (1) WO2011104268A2 (de)

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
DE69916661T2 (de) * 1998-12-14 2004-08-19 Microsoft Corp., Redmond Codebuchkonstruktion für entropiekodierung von variabler zu variabler länge
US20070016406A1 (en) * 2005-07-15 2007-01-18 Microsoft Corporation Reordering coefficients for waveform coding or decoding
DE3943881B4 (de) * 1989-04-17 2008-07-17 Fraunhofer-Gesellschaft zur Förderung der angewandten Forschung e.V. Digitales Codierverfahren
DE102008052955A1 (de) * 2008-10-23 2010-05-06 Knorr-Bremse Systeme für Nutzfahrzeuge GmbH Verfahren zur Übertragung von Programmcodes an einen Speicher eines Steuergerätes, insbesondere für Kraftfahrzeuge

Family Cites Families (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4853696A (en) * 1987-04-13 1989-08-01 University Of Central Florida Code converter for data compression/decompression
US5550542A (en) * 1994-05-04 1996-08-27 Matsushita Electric Corporation Of America Variable length code look-up table having separate code length determination
US6771824B1 (en) * 1999-12-28 2004-08-03 Lucent Technologies Inc. Adaptive variable length decoding method
US6563441B1 (en) * 2002-05-10 2003-05-13 Seiko Epson Corporation Automatic generation of program logic to decode variable-length codes
US7937413B2 (en) * 2004-05-04 2011-05-03 International Business Machines Corporation Self-adaptive prefix encoding for stable node identifiers
US7609179B2 (en) * 2008-01-08 2009-10-27 International Business Machines Corporation Method for compressed data with reduced dictionary sizes by coding value prefixes

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
DE3943881B4 (de) * 1989-04-17 2008-07-17 Fraunhofer-Gesellschaft zur Förderung der angewandten Forschung e.V. Digitales Codierverfahren
DE69916661T2 (de) * 1998-12-14 2004-08-19 Microsoft Corp., Redmond Codebuchkonstruktion für entropiekodierung von variabler zu variabler länge
US20070016406A1 (en) * 2005-07-15 2007-01-18 Microsoft Corporation Reordering coefficients for waveform coding or decoding
DE102008052955A1 (de) * 2008-10-23 2010-05-06 Knorr-Bremse Systeme für Nutzfahrzeuge GmbH Verfahren zur Übertragung von Programmcodes an einen Speicher eines Steuergerätes, insbesondere für Kraftfahrzeuge

Non-Patent Citations (3)

* Cited by examiner, † Cited by third party
Title
DECKER,TH.: "Vortrag 6: Huffman", In: Online-Bibliothek Wikipedia , 19.01.1999, http://www.itec.uka.de/seminare/redundanz/vortrag06 / *
HUFFMAN D.: A Method for the Construction of Minimum-Redundancy Codes". In: Proceedings of the I.R.E, Sept. 1952, S. 1098-1101 *
LIEBSCHER P.:"Aktuelle Trends bei der Steuergeräte- Reprogrammierung". In: Elektronik automotive 2.2006, S. 34-37 *

Also Published As

Publication number Publication date
WO2011104268A2 (de) 2011-09-01
WO2011104268A3 (de) 2011-12-29
DE102010009263A1 (de) 2011-08-25
US8760326B2 (en) 2014-06-24
EP2540001A2 (de) 2013-01-02
US20130070837A1 (en) 2013-03-21

Similar Documents

Publication Publication Date Title
DE10301362B4 (de) Blockdatenkompressionssystem, bestehend aus einer Kompressionseinrichtung und einer Dekompressionseinrichtung, und Verfahren zur schnellen Blockdatenkompression mit Multi-Byte-Suche
DE69833094T2 (de) Verfahren und Vorrichtung zur adaptiven Datenkompression mit höherem Kompressionsgrad
DE60127695T2 (de) Verfahren zur komprimierung von datenpaketen
DE2801988A1 (de) Arithmetische codierung von symbolfolgen
DE69433620T2 (de) Datenkomprimierungsverfahren
WO2003094355A2 (de) Verfahren und anordnung zur arithmetischen enkodierung und dekodierung von binären zuständen sowie ein entsprechendes computerprogramm und ein entsprechendes computerlesbares speichermedium
DE60009502T2 (de) Lzw datenkomprimierung/dekomprimierungsgerät und - verfahren mit eingebetteter lauflängenkodierung/dekodierung
DE102008052955B4 (de) Verfahren zur Übertragung von Programmcodes an einen Speicher eines Steuergerätes, insbesondere für Kraftfahrzeuge
EP1514375A2 (de) Verfahren und anordnung zur codierung bzw. decodierung einer folge digitaler daten
WO2002030123A2 (de) Verfahren und anordnung zum übertragen eines vektors
DE102010009263B4 (de) Verfahren zur Datenübertragung zu einem elektronischen Steuergerät
EP1286471B1 (de) Verfahren zur Kompression von Daten
DE19907728A1 (de) Vorrichtung und Verfahren zum Erzeugen eines Datenstroms und Vorrichtung und Verfahren zum Lesen eines Datenstroms
DE10258472B3 (de) Verfahren zum Verarbeiten von digitalen Datenwerten
DE102018006226A1 (de) Verfahren zum Booten eines Datenverarbeitungssystems
DE10131801B4 (de) Verfahren zur Datenkompression und Navigationssystem
DE10146356A1 (de) Verfahren zum Komprimiern von dynamischen Webseiten und eine Datenverarbeitungseinrichtung zur Durchführung des Verfahrens
EP1924931B1 (de) Verfahren zur speichereffizienten durchführung einer burrows-wheeler-rücktransformation
WO2000069179A1 (de) Verfahren und vorrichtung zur komprimierung und dekomprimierung von daten
EP2076964A1 (de) Verfahren und vorrichtung zur kompression und dekompression digitaler daten auf elektronischem wege unter verwendung einer kontextgrammatik
DE19937456C2 (de) Rechner zur Datenverarbeitung und Verfahren zur Datenverarbeitung in einem Rechner
DE102004052417B4 (de) Schaltung und Verfahren zur Weiterleitung von Datenpaketen in einem Netzwerk
EP1522148A1 (de) Verfahren zur codierung von positionen von datenelementen in einer datenstruktur
DE10310858A1 (de) Verfahren und Vorrichtung zur Kompression einer Zeichenkette
DE102013108424A1 (de) Verfahren zur Verschlüsselung von Zeichenketten

Legal Events

Date Code Title Description
R016 Response to examination communication
R016 Response to examination communication
R018 Grant decision by examination section/examining division
R020 Patent grant now final

Effective date: 20120713

R119 Application deemed withdrawn, or ip right lapsed, due to non-payment of renewal fee