EP2340486A1 - Verfahren zur übertragung von programmcodes an einen speicher eines steuergerätes, insbesondere für kraftfahrzeuge - Google Patents
Verfahren zur übertragung von programmcodes an einen speicher eines steuergerätes, insbesondere für kraftfahrzeugeInfo
- Publication number
- EP2340486A1 EP2340486A1 EP09740650A EP09740650A EP2340486A1 EP 2340486 A1 EP2340486 A1 EP 2340486A1 EP 09740650 A EP09740650 A EP 09740650A EP 09740650 A EP09740650 A EP 09740650A EP 2340486 A1 EP2340486 A1 EP 2340486A1
- Authority
- EP
- European Patent Office
- Prior art keywords
- program
- memory
- control unit
- program code
- transmitted
- 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.)
- Ceased
Links
Classifications
-
- H—ELECTRICITY
- H03—ELECTRONIC CIRCUITRY
- H03M—CODING; DECODING; CODE CONVERSION IN GENERAL
- H03M7/00—Conversion 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/30—Compression; Expansion; Suppression of unnecessary data, e.g. redundancy reduction
- H03M7/40—Conversion to or from variable length codes, e.g. Shannon-Fano code, Huffman code, Morse code
- H03M7/42—Conversion to or from variable length codes, e.g. Shannon-Fano code, Huffman code, Morse code using table look-up for the coding or decoding process, e.g. using read-only memory
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/60—Software deployment
- G06F8/61—Installation
-
- H—ELECTRICITY
- H03—ELECTRONIC CIRCUITRY
- H03M—CODING; DECODING; CODE CONVERSION IN GENERAL
- H03M7/00—Conversion 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/30—Compression; Expansion; Suppression of unnecessary data, e.g. redundancy reduction
- H03M7/40—Conversion to or from variable length codes, e.g. Shannon-Fano code, Huffman code, Morse code
Definitions
- the invention relates to a method for transmitting program codes to a program memory of a control unit according to the preamble of claim 1. Such a method is known from DE 10 2006 016 891 A1.
- Modern motor vehicles include one or more electronic control devices that include a program memory that can be programmed in the installed state of the controller, i. can be described with program codes.
- the program memory is usually a so-called. Flash memory, which is often integrated into a microcontroller.
- Common controllers include an interface, also called a diagnostic interface, used to transfer commands and data.
- the interface used is often a "CAN" bus.
- a common diagnostic protocol is UDS in accordance with ISO 14229. These are only given by way of example, since a variety of other interfaces and protocols exist.
- the control unit usually also contains a diagnostic software which provides commands for deleting and programming the program memory via the diagnostic interface. This software is often called a "boot loader".
- a programmer which has the required counterpart to the diagnostic interface in the controller.
- a programming device is often referred to as a diagnostic device or diagnostic tester.
- this programmer today is often a personal computer, such as a personal computer. a laptop.
- Control units of motor vehicles are often universal control devices which, when the motor vehicle is manufactured at the end of the belt, are individually designed for the respective vehicle
- Motor vehicle be programmed.
- the time required for the programming of the control unit is therefore a critical factor for the production of the motor vehicle and should be as short as possible.
- Memory area are transferred and not the entire software.
- Object of the present invention is to improve the method of the type mentioned in that the time duration for the transmission of program codes to the memory of the control unit is significantly shortened.
- the basic idea of the present invention is to set all memory cells of the memory to a standard value (default) before writing the program codes into the memory of the control unit; then the program codes to be transmitted by the programmer in the programmer to a lossless data com- submission, preferably according to the Huffman Code,
- the default value when setting all the memory cells of the memory to a default value, the default value is selected such that it contains an invalid program code (so-called illegal opcode).
- illegal opcode many microprocessors store their value in the microprocessor. Depending on the microprocessor or programming language used, it can also be a different value, which then in an initialization phase before transmitting the Progra ⁇ uncodes is transmitted from the programmer to the controller.
- Fig. 1 is a block diagram of a control unit and a programming device
- FIG. 2 is a flow chart of the process steps of the invention.
- Fig. 3a shows an illustration of the individual steps for up to 3 g of data compression
- Fig. 4 shows an illustration of method steps of the data compression by means of an auxiliary vector
- Fig. 5 is an illustration of a decoding tree.
- the electronic control unit 1 of Fig. 1 which is designated by ECU (Electronic Control Unit), has a program memory 2, which is designed as erasable and writable memory.
- the control unit 1 is connected via an interface 3 to a programming device 4 connectable, which may be a PC, such as a laptop, for example.
- program codes are stored, which are to be transmitted via the interface 3 to the control unit 1.
- the program codes are usually available as binary or hex files.
- the "programming" of the control unit 1 is effected in that the program codes are transmitted from the programming device 4 to the control unit 1 and stored there in the program memory 2.
- control unit Previously, the programming or reprogramming of the control unit was characterized in that the entire program was written with the individual program codes in the program memory 2. Any previously occupied memory cells of the program memory 2 will be overwritten.
- a first step S1 the programmer 4 sends an instruction via the interface 3 to the control unit 1 first to the so-called "boot charger" of the control unit 1, with which the program memory 2 is deleted.
- this erase includes writing all the memory cells of the program memory 2 to invalid program code (illegal opcode).
- This code can be pre-assigned as default value (default) in the control unit 1.
- the program codes stored in the programming device 4 are subjected to a non-lossy compression method, ie coded or compressed.
- the requirements for the compression method are minimal consumption of resources, in particular computing time, program memory and main memory.
- Some existing memory modules can only be programmed completely. In other memory modules at least predetermined areas must be described without gaps. This results in the requirement that the decompressed data must be available without gaps, at least in certain areas. The easiest way is the decompressed data to handle, if they arrive completely over the entire memory area to be programmed. Since the existing working memory of the control unit 1 is usually much smaller than the program memory 2, it is not possible to decompress the entire data before programming. It is therefore necessary that the data to be transmitted arrive completely.
- the Huffman coding which is known per se, has proven particularly suitable, in which, in contrast to many other coding methods, the data to be transmitted arrive without gaps.
- this coding or compression a lossless compression and decompression of the data to be transmitted can be realized. In doing so, in principle often occurring data is encoded into short keywords and less common data is encoded into longer keywords.
- the efficiency of the process depends on the distribution of the data to be transmitted. The more frequently certain data is available, the more frequently short keywords are used and thus a higher compression factor is achieved.
- Sorting operations create a "tree" that can be used to create a "dictionary” for coding. From this tree, a corresponding tree can be created for decompression. This tree must either be transferred to the control unit 1 or can be permanently stored there. In this case, of course, the same dictionary must also be used for coding.
- An adaptive variant in each case the coding tree is newly generated and transmitted, brings better results in the compression and requires more memory in the control unit 1, but less program memory, where the dictionary is deposited.
- the adaptive or the non-adaptive variant may be more advantageous.
- the structure of the decoding tree is transmitted in the adaptive variant in a non-compressed area at the beginning of the data stream. This is followed by the decoding tree followed by the compressed data.
- the coding makes sense for data sizes that represent a multiple of one byte (8 bits).
- the size of the decoding tree grows strongly with the length "L" of the words to be coded.
- the length of Huffman coded characters may be longer for rare characters than the length of the uncoded character. Since not all characters occur in practice, especially in 16-bit coding, the decoding tree can become correspondingly smaller. Nevertheless, it becomes clear that smaller data areas are encoded better 8-bit wise.
- the 16-bit encoding yielded a higher compression factor in experiments. However, this is effective only from a minimum amount of data to be transmitted, since the decoding tree must also be transmitted.
- FIGS. 3a, 3d and 3f a corresponding tree is shown linear because it is easy to implement in this form. With the help of this tree now the coding and decoding tables can be generated.
- the decoding tree required for decoding is built up by the tree top ( Figure 5). No characters are created for non-existing characters. This tree is again a linked list.
- the codes to be decoded are analyzed from right to left according to the above coding table.
- the codes are also transmitted in this direction. In the example above, 4 is transmitted as 0-1-1.
- the roots in the tree are marked accordingly. For this purpose, one additional bit per entry is sufficient to distinguish a valid character from a pointer.
- the entries N1 and N2 accordingly contain pointers or the decoded character, which is shown in Fig. 3dargesteilt.
- the left path means there "0" the right "1". This assignment must be made identically to the coding. If the sequence 0-1-1 is received in the example of FIG. 3, the decoding (FIG. 5) is followed by the entries N1, N2 proceeding from the tree top (left-hand page) and the result obtained is "4".
- the number of leaves in the decoding tree is less than or equal to the number of characters to be encoded. In the example shown, three leaves suffice for a decoding tree of four codes.
- the entries N1, N2 contain either a time ger or index or the coded character. For the number of bites of the indices, the result is:
- L is the length of the words to be coded (e.g., 8 or 16).
- step S3 the program codes thus compressed in step S3 are transmitted from the programming device 4 via the interface 3 to the control unit 1, then decompressed correspondingly in step S4 and written into the program memory 2 in step S5.
- a check of the transmitted program codes can be carried out, for example by means of a checksum check or a cyclic redundancy check (CRC) (see step S7). If desired, the result of this check can be reported back to the programming device 4 in a step S8.
- CRC cyclic redundancy check
- the program codes to be coded for control units of motor vehicles are codes for microprocessors in which, according to experience, certain codes (opcodes) occur much more frequently than others, so that the described compression method can have a very good effect.
- opcodes codes for microprocessors in which, according to experience, certain codes (opcodes) occur much more frequently than others, so that the described compression method can have a very good effect.
- opcodes Depending on the degree of filling of the program memory, a considerable saving can also be achieved by not transmitting program codes for unused areas.
- the use of invalid program codes (illegal opcodes) for these areas provides additional operational safety in the event of failures or software failures, since microprocessors cause an interruption in the case of invalid program codes, which can be used to detect the error.
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Software Systems (AREA)
- General Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Compression, Expansion, Code Conversion, And Decoders (AREA)
- Stored Programmes (AREA)
Abstract
Description
Claims
Applications Claiming Priority (2)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| DE102008052955A DE102008052955B4 (de) | 2008-10-23 | 2008-10-23 | Verfahren zur Übertragung von Programmcodes an einen Speicher eines Steuergerätes, insbesondere für Kraftfahrzeuge |
| PCT/EP2009/007313 WO2010046043A1 (de) | 2008-10-23 | 2009-10-12 | Verfahren zur übertragung von programmcodes an einen speicher eines steuergerätes, insbesondere für kraftfahrzeuge |
Publications (1)
| Publication Number | Publication Date |
|---|---|
| EP2340486A1 true EP2340486A1 (de) | 2011-07-06 |
Family
ID=41401972
Family Applications (1)
| Application Number | Title | Priority Date | Filing Date |
|---|---|---|---|
| EP09740650A Ceased EP2340486A1 (de) | 2008-10-23 | 2009-10-12 | Verfahren zur übertragung von programmcodes an einen speicher eines steuergerätes, insbesondere für kraftfahrzeuge |
Country Status (7)
| Country | Link |
|---|---|
| US (1) | US8782328B2 (de) |
| EP (1) | EP2340486A1 (de) |
| CN (1) | CN102197375B (de) |
| BR (1) | BRPI0920595B1 (de) |
| DE (1) | DE102008052955B4 (de) |
| RU (1) | RU2534927C2 (de) |
| WO (1) | WO2010046043A1 (de) |
Families Citing this family (6)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| DE102010009263B4 (de) * | 2010-02-25 | 2012-04-12 | Knorr-Bremse Systeme für Nutzfahrzeuge GmbH | Verfahren zur Datenübertragung zu einem elektronischen Steuergerät |
| DE102011100106A1 (de) | 2011-04-30 | 2012-10-31 | Daimler Ag | System zur Diagnose einer Komponente in einem Fahrzeug |
| DE102011079399A1 (de) * | 2011-07-19 | 2013-01-24 | Bayerische Motoren Werke Aktiengesellschaft | Steuervorrichtung für ein Kraftfahrzeug, Programmiervorrichtung und Programmiersystem |
| US9219499B2 (en) | 2014-05-16 | 2015-12-22 | Robert Bosch Gmbh | Run time compression method for a vehicle communication bus |
| US9694766B2 (en) | 2015-06-16 | 2017-07-04 | Ford Global Technologies, Llc | Compression algorithms for vehicle-bus-messaging of preview data |
| US11338816B2 (en) * | 2019-02-02 | 2022-05-24 | Ford Global Technologies, Llc | Over-the-air flashing and reproduction of calibration data using data regression techniques |
Family Cites Families (21)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| US4021782A (en) * | 1974-01-07 | 1977-05-03 | Hoerning John S | Data compaction system and apparatus |
| US5937065A (en) * | 1997-04-07 | 1999-08-10 | Eaton Corporation | Keyless motor vehicle entry and ignition system |
| US6023233A (en) * | 1998-03-20 | 2000-02-08 | Craven; Peter G. | Data rate control for variable rate compression systems |
| US6393149B2 (en) * | 1998-09-17 | 2002-05-21 | Navigation Technologies Corp. | Method and system for compressing data and a geographic database formed therewith and methods for use thereof in a navigation application program |
| US6145069A (en) * | 1999-01-29 | 2000-11-07 | Interactive Silicon, Inc. | Parallel decompression and compression system and method for improving storage density and access speed for non-volatile memory and embedded memory devices |
| US20020034971A1 (en) * | 1999-02-08 | 2002-03-21 | Chienchung Chang | Data allocation for multiple applications on a microprocessor or dsp |
| FR2791507B1 (fr) * | 1999-03-25 | 2001-06-29 | Peugeot Citroen Automobiles Sa | Procede et systeme de telechargement d'un fichier dans un calculateur de vehicule automobile |
| DE10012272B4 (de) * | 2000-03-14 | 2004-04-08 | Daimlerchrysler Ag | Verfahren zur Abspeicherung von Daten in rechnergestützten Geräten von Verkehrsmitteln |
| DE10037397A1 (de) | 2000-08-01 | 2002-02-14 | Daimler Chrysler Ag | Verfahren zum Laden von Software |
| FR2837946B1 (fr) * | 2002-03-26 | 2006-12-29 | Peugeot Citroen Automobiles Sa | Systeme de telechargement d'au moins un fichier dans au moins un calculateur de vehicule automobile |
| US7248632B1 (en) * | 2002-06-28 | 2007-07-24 | Len Gollobin | Video data storage and transmission system and method |
| DE10234063B4 (de) * | 2002-07-26 | 2004-09-30 | Audi Ag | Verfahren zum variantenspezifischen Programmieren eines Programm- und Datenspeichers eines Steuergeräts, insbesondere eines Steuergeräts eines Kraftfahrzeugs, sowie Vorrichtung zur Durchführung des Verfahrens |
| US6670897B1 (en) * | 2002-10-03 | 2003-12-30 | Motorola, Inc. | Compression/decompression techniques based on tokens and Huffman coding |
| DE102004005676A1 (de) * | 2004-02-05 | 2005-08-25 | Giesecke & Devrient Gmbh | Datenträger mit plattformunabhängigem Anwendungs-Programmcode |
| DE102005013285B4 (de) * | 2005-03-22 | 2009-09-03 | Continental Automotive Gmbh | Verfahren zum Konfigurieren eines Steuergeräts und Steuergerät |
| DE102005034168A1 (de) | 2005-07-21 | 2007-02-01 | Siemens Ag | Verfahren zum Bedienen und Beobachten eines Steuergeräts, hiermit korrespondierendes Bedien-/Beobachtungsgerät, Steuergerät sowie Maschine mit einem solchen Steuergerät und Verwendungen des Verfahrens sowie Datenspeichermedien |
| US20070022243A1 (en) * | 2005-07-22 | 2007-01-25 | John Rudelic | Method and apparatus capable of disabling authenticated operations and guaranteed secure boot in a wireless platform |
| DE102005045149A1 (de) * | 2005-09-22 | 2007-04-05 | Giesecke & Devrient Gmbh | Verfahren zur Initialisierung und/oder Personalisierung eines tragbaren Datenträgers |
| DE102006013762A1 (de) * | 2006-03-24 | 2007-09-27 | Robert Bosch Gmbh | Verfahren zum Betreiben einer Speichereinrichtung |
| DE102006016891A1 (de) | 2006-04-11 | 2007-10-25 | Robert Bosch Gmbh | Erweiterung der Funktionalität einer Serien-Software in einem Steuergerät |
| RU62721U1 (ru) * | 2006-07-31 | 2007-04-27 | Михаил Викторович Ерещенко | Автомобильный компьютер |
-
2008
- 2008-10-23 DE DE102008052955A patent/DE102008052955B4/de active Active
-
2009
- 2009-10-12 BR BRPI0920595 patent/BRPI0920595B1/pt active IP Right Grant
- 2009-10-12 EP EP09740650A patent/EP2340486A1/de not_active Ceased
- 2009-10-12 WO PCT/EP2009/007313 patent/WO2010046043A1/de not_active Ceased
- 2009-10-12 CN CN200980142122.1A patent/CN102197375B/zh active Active
- 2009-10-12 RU RU2011120350/08A patent/RU2534927C2/ru active
- 2009-10-12 US US12/998,451 patent/US8782328B2/en active Active
Non-Patent Citations (2)
| Title |
|---|
| None * |
| See also references of WO2010046043A1 * |
Also Published As
| Publication number | Publication date |
|---|---|
| CN102197375B (zh) | 2014-02-19 |
| DE102008052955A1 (de) | 2010-05-06 |
| DE102008052955B4 (de) | 2010-06-24 |
| CN102197375A (zh) | 2011-09-21 |
| US20110264844A1 (en) | 2011-10-27 |
| US8782328B2 (en) | 2014-07-15 |
| RU2011120350A (ru) | 2012-11-27 |
| BRPI0920595B1 (pt) | 2019-11-26 |
| WO2010046043A1 (de) | 2010-04-29 |
| RU2534927C2 (ru) | 2014-12-10 |
| BRPI0920595A2 (pt) | 2015-12-29 |
Similar Documents
| Publication | Publication Date | Title |
|---|---|---|
| DE3606869C2 (de) | Vorrichtung zur Datenkompression | |
| DE69528152T2 (de) | Datenkompressionsvorrichtung, Datenexpansionsvorrichtung und System zur Datenkompression und Expansion | |
| DE3887627T2 (de) | Effizienzabhängige Rücksetzung eines Datenkomprimierungswörterbuches. | |
| DE60033184T2 (de) | Verfahren und Vorrichtung zur Datenkomprimierung von Netzwerkdatenpaketen unter Verwendung von paketweisen Hash Tabellen | |
| DE102008052955B4 (de) | Verfahren zur Übertragung von Programmcodes an einen Speicher eines Steuergerätes, insbesondere für Kraftfahrzeuge | |
| DE2264090C3 (de) | Datenverdichtung | |
| DE69323020T2 (de) | Dekodierer für veränderliche Längenkodes | |
| DE3850035T2 (de) | Datenkomprimierungssystem mit Expandierungsschutz. | |
| DE2801988A1 (de) | Arithmetische codierung von symbolfolgen | |
| DE2614916A1 (de) | Konverter zur codeumwandlung | |
| DE69524999T2 (de) | Verfahren zum Komprimieren und Dekomprimieren von Dateien | |
| EP3885957B1 (de) | Vorrichtung zur speicherung von daten in einem nichtflüchtigen speicher | |
| EP3424200B1 (de) | Kennungscodierungseinrichtung und kennungsdecodierungseinrichtung zur datenverteilung in netzwerken sowie derartige einrichtungen aufweisende netzwerkelemente | |
| EP1286471B1 (de) | Verfahren zur Kompression von Daten | |
| DE69937761T2 (de) | Arithmetische Kodierung/Dekodierung eines digitalen Informationssignals | |
| EP1350252B1 (de) | Verfahren zum einspeichern einer datenmenge in einen zielspeicherbereich und speichersystem | |
| DE10228128B4 (de) | Verfahren zur Speicherung von Daten, Verfahren zum Lesen von Daten, Vorrichtung zur Komprimierung von Daten und Vorrichtung zur Dekomprimierung von Daten | |
| DE102010009263B4 (de) | Verfahren zur Datenübertragung zu einem elektronischen Steuergerät | |
| EP2646670B1 (de) | Verfahren zum reversiblen, manipulationssicheren codieren eines motorsteuergeräts für ein kraftfahrzeug und motorsteuergerät | |
| DE69028601T2 (de) | Datenkomprimierungssystem | |
| EP0715313B1 (de) | Verfahren zur Programmierung eines elektrisch löschbaren, nichtflüchtigen Speichers in einem elektronischen Rechengerät sowie Steuergerät zur Verwendung bei dem Verfahren | |
| DE19721786A1 (de) | Verfahren zum Betreiben eines Datenverarbeitungsgerätes, insbesondere Automatisierungsgerätes | |
| DE2144113C3 (de) | Verfahren zur Codeumsetzung und Assozjathr-Speichereinrlchtung zur Durchführung dieses Verfahrens | |
| EP1293938A2 (de) | Binärzähler mit permutierten Speicherung | |
| DE10340010B4 (de) | Verfahren und Vorrichtung zum sicheren Speichern von Daten |
Legal Events
| Date | Code | Title | Description |
|---|---|---|---|
| PUAI | Public reference made under article 153(3) epc to a published international application that has entered the european phase |
Free format text: ORIGINAL CODE: 0009012 |
|
| 17P | Request for examination filed |
Effective date: 20110523 |
|
| AK | Designated contracting states |
Kind code of ref document: A1 Designated state(s): AT BE BG CH CY CZ DE DK EE ES FI FR GB GR HR HU IE IS IT LI LT LU LV MC MK MT NL NO PL PT RO SE SI SK SM TR |
|
| AX | Request for extension of the european patent |
Extension state: AL BA RS |
|
| DAX | Request for extension of the european patent (deleted) | ||
| 17Q | First examination report despatched |
Effective date: 20120227 |
|
| APBK | Appeal reference recorded |
Free format text: ORIGINAL CODE: EPIDOSNREFNE |
|
| APBN | Date of receipt of notice of appeal recorded |
Free format text: ORIGINAL CODE: EPIDOSNNOA2E |
|
| APBR | Date of receipt of statement of grounds of appeal recorded |
Free format text: ORIGINAL CODE: EPIDOSNNOA3E |
|
| APAF | Appeal reference modified |
Free format text: ORIGINAL CODE: EPIDOSCREFNE |
|
| REG | Reference to a national code |
Ref country code: DE Ref legal event code: R003 |
|
| APBT | Appeal procedure closed |
Free format text: ORIGINAL CODE: EPIDOSNNOA9E |
|
| STAA | Information on the status of an ep patent application or granted ep patent |
Free format text: STATUS: THE APPLICATION HAS BEEN REFUSED |
|
| 18R | Application refused |
Effective date: 20190122 |