WO2011104268A2 - 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
WO2011104268A2
WO2011104268A2 PCT/EP2011/052670 EP2011052670W WO2011104268A2 WO 2011104268 A2 WO2011104268 A2 WO 2011104268A2 EP 2011052670 W EP2011052670 W EP 2011052670W WO 2011104268 A2 WO2011104268 A2 WO 2011104268A2
Authority
WO
WIPO (PCT)
Prior art keywords
bit
data words
bits
decoding
bit data
Prior art date
Application number
PCT/EP2011/052670
Other languages
English (en)
French (fr)
Other versions
WO2011104268A3 (de
Inventor
Uwe Fischer
Original Assignee
Knorr-Bremse Systeme für 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 für Nutzfahrzeuge GmbH filed Critical Knorr-Bremse Systeme für Nutzfahrzeuge GmbH
Priority to EP11707136A priority Critical patent/EP2540001A2/de
Priority to US13/581,251 priority patent/US8760326B2/en
Publication of WO2011104268A2 publication Critical patent/WO2011104268A2/de
Publication of WO2011104268A3 publication Critical patent/WO2011104268A3/de

Links

Classifications

    • 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
    • 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

Definitions

  • the invention relates to a process for REMtra ⁇ supply from a programming device to an electronic control unit and in particular to electronic HEADUNITS ⁇ th of motor vehicles.
  • the older unpublished DE 10 2008 052 955 AI also shows the transmission of program codes to a memory of a control unit, in which initially the program memory in the control unit is overwritten with invalid codes, then the program codes to be transmitted compressed according to the Huffman data compression method, in Control unit decompressed and stored.
  • Each 16-bit code used costs 34 bits in the encoding tree for decoding. Accordingly, the creation of the coding tree takes a long time. In addition, in the data transmission ⁇ the coding tree for the decoding must be transmitted with and possibly no longer fits due to its size in the main memory of the target system or control unit.
  • the Huffman 8 encoding which works with 8-bit data words, comes with a smaller encoding tree for decoding (about 574 bytes) but not the performance of the Huffman 16 Co ⁇ dation.
  • the object of the invention is to improve the method according to the preamble of claim 1 to the effect that it manages with high performance with smaller coding trees and thereby the data transfer takes place faster.
  • the burden of the working memory of the control unit should be reduced by the coding tree.
  • the basic idea of the invention is to partially perform the Komprimie ⁇ tion of the data to be transmitted with an N-bit Huffman coding and some with M-bit Huffman coding, where N is an integer multiple of M and the number of N-bit data words and the number of M-bit data words is in each case greater than 2 and further both code trees to the control unit übertra ⁇ gen be.
  • N-bit Huffman coding and M-bit Huffman coding Huffman coding with a first or second code tree, which encodes data words consisting of N bits or M bits, is understood here and below.
  • a predetermined number of data words to be coded are carried out with the Huffman 16 coding, while the remaining data words are compressed using the Huffman 8 encoding.
  • Bit encoding tree for decoding is only 574 bytes in size, it is not worth using an incomplete tree here.
  • it is first checked whether the gefun ⁇ dene 16-bit value contained in the 16-bit encoding. If not, the 8-bit table is used and the two bytes of the 16-bit word are encoded. For deciding which encoding tree to use for decoding, one bit is added in the encoding.
  • the coding tree can be used for any data, since with the help of the complete 8-bit trees any data can be displayed.
  • a 32-bit coding is also conceivable instead of the mentioned 16-bit coding, wherein the method can in principle also be used for any other data variables , such as 9-bit or 19-bit.
  • the primary area of application of the method according to the OF INVENTION ⁇ dung is the programming of electronic control units for cars and commercial vehicles over a Diagnostic interface. By compressing the data , considerable time can be saved in development, in production and in the workshop. By combining the two types of coding, the advantages of both coding trees can be exploited.
  • the transmission of data on the diagnostic interface of a vehicle is done what is necessary in some Steuerge ⁇ councils in ascending order, as not random, but only sector by sector can be written to memory.
  • the coding trees for the decoding are small enough to be stored in the working memory of the target system during decoding. After that, the coding trees for decoding can be removed from the main memory so that it is available for other tasks. But it is also possible at least one of the encoding trees for decoding or both
  • Coding trees for decoding permanently in a non-volatile memory such as a flash memory of the control unit to keep stored.
  • a non-volatile memory such as a flash memory of the control unit
  • Fig. 2 is a 16-bit coding tree for decoding for the embodiment of Fig. 1;
  • Fig. 4 shows a coding tree for decoding with an 8-bit and a 16-bit sub-coding tree for decoding tion.
  • 16-bit values of the 16-bit encoding are subjected to and a multiple of 8-bit values left over, so the 16-bit Co ⁇ dation is incomplete, so that the 16-bit Co ⁇ decoding tree and the corresponding 16-bit coding tree for decoding is not to be too long.
  • the frequencies of the 8-bit values must be corrected. It should be noted that both the high-order byte and the low-order byte of the 16-bit values are taken into account. For example, the frequency of OxFF (8-bit) is decreased by two with each occurrence of OxFFFF (16-bit), with each occurrence of OxFFOO by one.
  • this mechanism is very strong, but has no significance if all 8-bit values are also present in data.
  • Two independent coding trees are now generated, namely an encoding tree for 16-bit values and an encoding tree for 8-bit values.
  • the 16-bit coding tree is here generated for clarity only for the first 5 values according to the frequency, in the example so the values FFFF, 0000, FF00, 6655 and 0605, as shown in Fig. 1.
  • the corresponding coding tree for the decoding for this purpose is shown in FIG.
  • the encoding first attempts to code each 16-bit word as such. If it does not occur in the 16-bit table, both halves are coded individually as an 8-bit value. Thus, 8-bit values always come in pairs, or more generally N / M times.
  • the thus encoded and provided with identification bit data are then transmitted together with the associated Codierbäumen for decoding to the control unit and there by means of Codierbäume for decoding deco ⁇ diert.
  • the transmission of the coding trees for the decoding is omitted, in which case the original coding trees must then be used for the coding.
  • Fig. 4 shows that the set before the encoded values bit (identification bit) decides whether the 16-bit Decodie ⁇ tion (value for a 16-bit) or the 8-bit decoding (for two successive 8-bit values ) is carried out. If this bit is a "0", the 16-bit Co ⁇ decoding tree is used for the decoding, it is a "1", so the 8-bit coding tree is used for the decoding.
  • the respective decoding of a data word is always done when in the coding tree for the decoding the last "leaf" is reached, wherein
  • the 8-bit coding tree for the decoding is traversed twice.
  • the encoding tree for decoding the 8-bit values is shown in FIG. In FIGS. 1 to 3, he ⁇ xadecimal values are each identified by the prefix Ox.
  • An additional entry in the coding tree for the decoding requires 34 bits.
  • Table 6 shows the relationship between the number of 16-bits based on the original size of a file of 131072 bytes Codes, the number of compressed bytes including Codierbäume and the compression ratio in Pro ⁇ cent.
  • the number of 16-bit codes for files of this size has a relatively small influence.
  • the optimal parameters depend on the code distribution in the data to be compressed. Since the coding tree for decoding hardly matters in the case of larger amounts of data, one should not select the number of 16-bit codes too small. Values of around 100 to 200 appear to be low, whereby in general each ⁇ the value is as large as possible. 1

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Compression, Expansion, Code Conversion, And Decoders (AREA)

Abstract

Das Verfahren zur Datenübertragung von einem Programmiergerät zu einem elektronischen Steuergerät komprimiert die zu übertragenden Daten mit zwei verschiedenen Huffman-Codierbäumen, vorzugsweise mit einem 16-Bit und einem 8-Bit Codierbaum. Die mit unterschiedlichen Codierbäumen codierten Datenworte werden durch ein Kennungsbit voneinander unterschieden.

Description

Verfahren zur Datenübertragung zu einem
elektronischen Steuergerät
Beschreibung
Die Erfindung betrifft ein Verfahren zur Datenübertra¬ gung von einem Programmiergerät zu einem elektronischen Steuergerät insbesondere zu elektronischen Steuergerä¬ ten von Kraftfahrzeugen.
Ein solches Verfahren ist aus der Druckschrift Lieb¬ scher 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 AI zeigt ebenfalls die Übertragung von Prgrammcodes 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 &: Huffman"; In:
Online-Bibliothek Wikipedia, 19.01.1999,
http : //www . itec . uka . de/seminare/redundanz/vortragO 6/ sowie die US 2007/0016406 AI, 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 ver¬ wendet werden sondern Paare/Tuppel dieser Eingangswor- te .
Bei der US 2007/0016406 AI und der DE 39 43 881 B4 ist zusätzlich beschrieben, die verwendeten Huffman- Codierungen abhängig von den gerade zu codierenden Da- ten umzuschalten und zwar bereichsweise innerhalb der zu codierenden Daten. Weiter ist bei der DE 39 43 881 B4 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 Codierbaum 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 Codierbaum für die Decodierung. Dementsprechend dauert die Erstellung des Codierbaumes auch lange. Außerdem muß bei der Daten¬ übertragung der Codierbaum 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 Huffman 8 Codierung, die mit 8- Bit Datenworten arbeitet, mit einem kleineren Codierbaum für die Decodierung aus (ca. 574 Bytes) erreicht jedoch nicht die Leistungsfähigkeit der Huffman 16 Co¬ dierung .
Aufgabe der Erfindung ist es das Verfahren gemäß dem Oberbegriff des Patentanspruches 1 dahingehend zu verbessern, dass es bei hoher Leistungsfähigkeit mit kleineren Codierbäumen auskommt und dadurch die Datenübertragung schneller stattfindet. Weiter soll die Belastung des Arbeitsspeichers des Steuergerätes durch den Codierbaum verringert werden.
Diese Aufgabe wird durch die im Patentanspruch 1 ange¬ gebenen Merkmale gelöst. Vorteilhafte Ausgestaltungen und Weiterbildungen der Erfindung sind den Unteransprü- chen zu entnehmen.
Die Grundidee der Erfindung liegt darin, die Komprimie¬ rung 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 übertra¬ gen werden. Unter N-Bit Huffman-Codierung und M-Bit Huffman-Codierung wird hier und im folgenden eine Huff- man-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 vor¬ bestimmte Anzahl von zu codierenden Datenworten mit der Huffman 16-Codierung durchgeführt, während die restli- chen Datenworte mit der Huffman 8-Codierung komprimiert werden .
Für die häufigsten 16-Bit Datenworte wird eine eigene Codiertabelle und ein eigener (erster) Codierbaum für die
Decodierung erstellt, wobei die Anzahl der Datenworte so gewählt wird, dass die Größe des Codierbaumes über¬ schaubar bleibt. Für alle übrigen Codes wird ein (zwei¬ ter) 8-Bit Huffman-Baum erstellt, der alle Codes von "0" bis "255" decodieren kann. Da der vollständige 8-
Bit Codierbaum 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 gefun¬ dene 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 Codierbaum zum Decodieren zu verwenden ist, wird bei der Codierung ein Bit hinzugefügt. Der Codierbaum 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 ein¬ setzbar ist, wie z.B. 9-Bit oder 19-Bit.
Primäres Einsatzgebiet des Verfahrens nach der Erfin¬ dung ist die Programmierung von elektronischen Steuergeräten für Kraftfahrzeuge und Nutzfahrzeuge über eine Diagnoseschnittstelle. Durch die Komprimierung der Da¬ ten 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 Codierbäume nutzen. Die Nachteile der geringen Effizienz der 8-Bit Codierung und des zu großen Codierbaumes für die Decodierung der 16-Bit Co¬ dierung werden kompensiert. Die Übertragung der Daten über die Diagnoseschnittstelle eines Fahrzeuges erfolgt in aufsteigender Reihenfolge was bei manchen Steuerge¬ räten notwendig ist, da nicht wahlfrei, sondern nur Sektorweise in den Speicher geschrieben werden kann. Die Codierbä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 Codierbä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 ei- nen der Codierbäume für die Decodierung oder auch beide
Codierbäume für die Decodierung permanent in einem nicht flüchtigen Speicher wie zB einem Flash-Speicher des Steuergerätes gespeichert zu behalten. Bei späteren Änderungen der an das Steuergerät zu übertragenden Da- ten ändern sich im Regelfall die Codierbä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 Codierbaum benutzt werden.
Im folgenden wird die Erfindung anhand eines Ausführungsbeispieles im Zusammenhang mit der Zeichnung ausführlicher beschrieben. Es zeigt: Fig. 1 einen ersten Codierbaum für die 16-Bit Huffman- Codierung;
Fig. 2 einen 16-Bit Codierbaum für die Decodierung für das Ausführungsbeispiel der Fig. 1 ;
Fig. 3 einen zweiten Codierbaum für die 8-Bit Huffman- Codierung; und
Fig. 4 einen Codierbaum für die Decodierung mit einem 8-Bit und einem 16-Bit Teil-Codierbaum für die Decodie rung .
Zur Unterscheidung von Hexadezimalzahlen gegenüber Pri mär- und Dezimalzahlen wird das übliche Präfix Ox ver¬ wendet, 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 imgf000008_0001
dabei ergeben sich folgende Häufigkeiten Tabelle 2
WERT
(Hex) FFFF 0000 FF00 6655 0605 0055 90AA FF55 0102 1234 0201 0506 5678
HÄUFIGKEIT
(Dez) 16 8 7 6 2 2 1 1 1 1 1 1 1
Darin sind folgende 8-Bit Werte enthalten:
Tabelle 3
Figure imgf000010_0001
Es wird dann eine Anzahl x (mit x=5 im beschriebenen Beispiel) der häufiger vorkommenden 16-Bit Werte be¬ stimmt, 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 Co¬ dierung also unvollständig ist, damit der 16-Bit Co¬ dierbaum und der entsprechende 16-Bit Codierbaum 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 nieder- wertige Byte der 16-Bit-Werte berücksichtigt werden. Zum Beispiel wird die Häufigkeit von OxFF (8-Bit) mit jedem Auftreten von OxFFFF (16-Bit) um zwei vermindert, mit jedem Auftreten von OxFFOO 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 imgf000011_0001
Für die Erstellung des Codierbaumens darf die Häufig¬ keit „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
Codierbäume und Codierbäume für die Decodierung zu er¬ zwingen. Damit aber nicht vorkommende Zeichen dadurch keinen gleich „guten" Platz im Codierbaum erhalten, wie selten oder nur einmal vorkommende Zeichen, werden die Häufigkeiten der tatsächlich vorkommenden Zeichen mit einem Faktor multipliziert, beispielsweise mit dem Fak¬ tor 100. Es ergeben sich dann folgende umsortierte 8- Bit Werte: Tabelle 5
Figure imgf000012_0001
Da das Verhältnis der Häufigkeiten zueinander gleich bleibt, ändern sich der erzeugte Codierbaum und die erzeugten Codes bei Vorkommen aller 8-Bit-Werte nicht.
10 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 Codierbäume erzeugt, nämlich ein Codierbaum für 16-Bit-Werte und ein Codierbaum für 8-Bit-Werte.
Der 16-Bit-Codierbaum 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 Fig. 1 dargestellt.
Der entsprechende Codierbaum für die Decodierung dazu ist in Fig.2 gezeigt.
Für alle 8-Bit-Werte wird ein vollständiger 8-Bit Co¬ dierbaum erstellt, der in Fig. 3 nur für die vorkommen den 8-Bit-Werte dargestellt ist. Damit ergeben sich folgende Codiertabellen:
Tabelle 6 Tabelle 7
Codiertabelle M=8-Bit Codiertabelle N=16-Bit nur für die vorkommenden Nicht vorkommende 16-Bit Zeichen dargestellt. Zeichen werden als zwei ί
Bit Zeichen codiert.
Figure imgf000013_0002
Figure imgf000013_0001
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. Aus dem Beispiel der Tabelle 1 ergibt sich somit
Tabelle 8
Figure imgf000014_0001
Die so codierten und mit Kennungsbit versehenen Daten werden dann zusammen mit den zugehörigen Codierbäumen für die Decodierung an das Steuergerät übertragen und dort mittels der Codierbäume für die Decodierung deco¬ diert. Falls die Codierbäume für die Decodierung schon im Steuergerät aufgrund einer Erstprogrammierung gespeichert sind, entfällt natürlich die Übertragung der Codierbäume für die Decodierung, wobei dann für die Co- dierung die ursprünglichen Codierbä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 Mikrocontrol- ler-Codes an 16-Bit Grenzen und die Notwendigkeit eines zusätzlichen Codierbits für jeden 8-Bit-Code würde sich eine Verschlechterung der Komprimierung ergeben.
Fig. 4 zeigt, dass das vor die codierten Werte gesetzte Bit (Kennungs-Bit ) entscheidet, ob die 16-Bit Decodie¬ rung (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 Co¬ dierbaum für die Decodierung verwendet, ist es eine "1", so wird der 8-Bit Codierbaum für die Decodierung verwendet. Die jeweilige Decodierung eines Datenwortes ist immer dann erledigt, wenn im Codierbaum für die De- Codierung das letzte "Blatt" erreicht ist, wobei nach
Auftreten des Kennungs-Bit "1" der 8-Bit Codierbaum für die Decodierung zweimal durchlaufen wird. Der Codierbaum für die Decodierung für die 8-Bit Werte ist in Fig. 3 dargestellt. In den Fig. 1 bis 3 sind He¬ xadezimalwerte jeweils durch den Präfix Ox kenntlich gemacht .
Aus obigem ist ersichtlich, dass die Größe des 16-Bit Codierbaumes und des zugehörigen 16-Bit Codierbaumes für die Decodierung einen wesentlichen Einfluß hat. Eine beliebige Vergrößerung des 16-Bit Codierbaumes 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 Codierbaum für die Decodie- rung 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 Datei¬ en 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 6 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 Codierbäume und das Kompressionsverhältnis in Pro¬ zent .
Tabelle 9
Figure imgf000018_0001
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
Figure imgf000019_0001
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 Codierbaum für die De- codierung 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 je¬ der Wert größer 1 möglich ist.

Claims

Patentansprüche
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 wer¬ den und dass alle codierten N-Bit Datenworte und N/M von auf¬ einanderfolgenden M-Bit-Datenworten jeweils mit einem vorangestellten Kennungsbit versehen werden.
Verfahren nach Anspruch 1, dadurch gekennzeichnet, dass die Anzahl N ein ganzzahliges Vielfaches der Anzahl M ist .
Verfahren nach Anspruch 2, dadurch gekennzeichnet, dass die Anzahl N gleich 16 und die Anzahl M gleich 8 ist.
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.
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 .
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 .
Verfahren nach einem der Ansprüche 1 bis 6, dadurch gekennzeichnet, dass die codierten Datenworte, bestehend aus N-Bits, einzeln decodiert werden und die von den verbleibenden codierten Datenworten, bestehend aus M- Bits, eine Anzahl N/M solcher Bitworte in Folge deco¬ diert wird.
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 ermittel¬ ten 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.
Verfahren nach Anspruch 8, dadurch gekennzeichnet, der Korrekturfaktor zwischen 10 und 100 beträgt.
Verfahren nach einem der Ansprüche 1 bis 3 und 5 bis 9 dadurch gekennzeichnet, dass die Codebäume zum Dekodie ren oder zumindest der vollständige Codebaum zum Deko¬ dieren von N-Bit-Datenwörtern in einem nichtflüchtigen Speicher (zb. Flash-Speicher) des Steuergerätes gespei chert bleiben.
PCT/EP2011/052670 2010-02-25 2011-02-23 Verfahren zur datenübertragung zu einem elektronischen steuergerät WO2011104268A2 (de)

Priority Applications (2)

Application Number Priority Date Filing Date Title
EP11707136A EP2540001A2 (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

Applications Claiming Priority (2)

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
DE102010009263.0 2010-02-25

Publications (2)

Publication Number Publication Date
WO2011104268A2 true WO2011104268A2 (de) 2011-09-01
WO2011104268A3 WO2011104268A3 (de) 2011-12-29

Family

ID=44168140

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/EP2011/052670 WO2011104268A2 (de) 2010-02-25 2011-02-23 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 (2)

* Cited by examiner, † Cited by third party
Title
DECKER, TH.: "Vortrag &: Huffman", ONLINE-BIBLIOTHEK WIKIPEDIA, 19 January 1999 (1999-01-19), Retrieved from the Internet <URL:http://www.itec.uka.de/seminare/redundanz/vortrag06>
LIEBSCHER P.: "Aktuelle Trends bei der Steuergeräte-Reprogrammierung", ELEKTRONIK AUTOMOTIVE, vol. 2, 2006, pages 34 - 37

Also Published As

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

Similar Documents

Publication Publication Date Title
DE69433620T2 (de) Datenkomprimierungsverfahren
DE102008052955B4 (de) Verfahren zur Übertragung von Programmcodes an einen Speicher eines Steuergerätes, insbesondere für Kraftfahrzeuge
DE2900586C2 (de) Anordnung zum Decodieren von Codewörtern variabler Länge
EP1514375A2 (de) Verfahren und anordnung zur codierung bzw. decodierung einer folge digitaler daten
EP0479787B1 (de) Verfahren zur codierung einer elementfolge und einrichtung zur durchführung des verfahrens
EP2540001A2 (de) Verfahren zur datenübertragung zu einem elektronischen steuergerät
EP1286471A2 (de) Verfahren zur Kompression von Daten
WO2000051242A1 (de) Vorrichtung und verfahren zum erzeugen eines datenstroms und vorrichtung und verfahren zum lesen eines datenstroms
DE10131801B4 (de) Verfahren zur Datenkompression und Navigationssystem
DE10258472B3 (de) Verfahren zum Verarbeiten von digitalen Datenwerten
EP2823568B1 (de) Verfahren zur codierung eines datenstroms
EP1522148B1 (de) Verfahren zur codierung von positionen von datenelementen in einer datenstruktur
DE102018006226A1 (de) Verfahren zum Booten eines Datenverarbeitungssystems
EP0427884A1 (de) Verfahren und Anordnung zum Komprimieren und Dekomprimieren von Daten
WO2008040267A1 (de) Verfahren und vorrichtung zur kompression und dekompression digitaler daten auf elektronischem wege unter verwendung einer kontextgrammatik
DE102004052417B4 (de) Schaltung und Verfahren zur Weiterleitung von Datenpaketen in einem Netzwerk
DE19653133C2 (de) System und Verfahren zur pre-entropischen Codierung
EP1763168A1 (de) Verfahren zum Erzeugen von Datentelegrammen, die CRC-Sicherungsanhänge aufweisen, welche eine verringerte Restfehlerwahrscheinlichkeit bieten
DE102006035936A1 (de) Verfahren zur Herstellung eines mit einem Programmcode versehenen Mikrocontrollers
DE102007024410B4 (de) Verfahren zum Betreiben eines Zählers und Zähler-Schaltungsanordnung
AT15997U1 (de) Adressierungsverfahren für Gebäudetechnikgerätebusteilnehmer
EP1293938A2 (de) Binärzähler mit permutierten Speicherung
WO2000069179A1 (de) Verfahren und vorrichtung zur komprimierung und dekomprimierung von daten
EP1153481A1 (de) Verfahren und vorrichtung zum erzeugen eines datenstroms aus codeworten variabler länge und verfahren und vorrichtung zum lesen eines datenstroms aus codeworten variabler länge
DE10310858A1 (de) Verfahren und Vorrichtung zur Kompression einer Zeichenkette

Legal Events

Date Code Title Description
121 Ep: the epo has been informed by wipo that ep was designated in this application

Ref document number: 11707136

Country of ref document: EP

Kind code of ref document: A2

WWE Wipo information: entry into national phase

Ref document number: 2011707136

Country of ref document: EP

WWE Wipo information: entry into national phase

Ref document number: 13581251

Country of ref document: US