WO2019016464A1 - Procédé de détermination de l'intégrité de données de navigation d'une unité de contrôle d'un véhicule automobile - Google Patents

Procédé de détermination de l'intégrité de données de navigation d'une unité de contrôle d'un véhicule automobile Download PDF

Info

Publication number
WO2019016464A1
WO2019016464A1 PCT/FR2018/051809 FR2018051809W WO2019016464A1 WO 2019016464 A1 WO2019016464 A1 WO 2019016464A1 FR 2018051809 W FR2018051809 W FR 2018051809W WO 2019016464 A1 WO2019016464 A1 WO 2019016464A1
Authority
WO
WIPO (PCT)
Prior art keywords
counter
last
resettable
during
navigation data
Prior art date
Application number
PCT/FR2018/051809
Other languages
English (en)
Inventor
François DE LA BOURDONNAYE
Stéphane Eloy
Nora-Marie GOUZENES
Original Assignee
Continental Automotive France
Continental Automotive 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 Continental Automotive France, Continental Automotive Gmbh filed Critical Continental Automotive France
Priority to US16/631,941 priority Critical patent/US11500848B2/en
Priority to CN201880060794.7A priority patent/CN111066002B/zh
Publication of WO2019016464A1 publication Critical patent/WO2019016464A1/fr

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/23Updating
    • G06F16/2365Ensuring data consistency and integrity
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/14Error detection or correction of the data by redundancy in operation
    • G06F11/1402Saving, restoring, recovering or retrying
    • G06F11/1415Saving, restoring, recovering or retrying at system level
    • G06F11/1441Resetting or repowering
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/08Error detection or correction by redundancy in data representation, e.g. by using checking codes
    • G06F11/10Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's
    • G06F11/1004Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's to protect a block of data words, e.g. CRC or checksum

Definitions

  • the invention belongs to the field of data backup and more particularly relates to a method for determining the integrity of navigation data and restoring the data saved in an electronic control unit of a motor vehicle.
  • control unit typically an ECU, acronym for Engine
  • navigation data is saved in a non-volatile memory, or non-volatile, connected to a microcontroller, during a key-cut for stopping the vehicle. At a later start of the computer, these data are restored from the non-volatile memory, so as to be reused by the control unit.
  • a key-break allows to initiate a sleep phase of the computer (also called shutdown phase in English).
  • a backup of the data from the RAM, also connected to the microcontroller to the read-only memory, is performed during the sleep phase of the control unit.
  • the control unit can be deactivated.
  • a restart or awakening may be required during the sleep phase.
  • the processes in progress during the sleep phase must then be interrupted so as to initiate a wake up phase of the control unit as quickly as possible.
  • the time required to save the data in the read-only memory is not compatible with the reactivity required by an alarm during a sleep phase, for example. This time is typically 300 ms, and generally between 100 ms and 3s.
  • the writing or copying of one or more navigation data to the read-only memory, created or modified during the running is interrupted by restarting, before the data n have been copied to the ROM during the sleep phase.
  • non-resettable zone For this purpose, it is known to write the data at the beginning of the sleep phase in a portion of random access memory, designated by non-resettable zone or reset safe in English.
  • This part of the RAM unlike the other parts of the RAM, is not reinitialized during a restart of the control unit: the data written in the non-resettable zone remain unchanged during a restart as long as the RAM is turned on.
  • the fingerprints associated with each of the navigation data or each group of navigation data are also calculated and then recorded in the non-resettable area.
  • the microcontroller calculates the footprint of each data or group of navigation data written in the non-resettable zone and compares it with the previously stored fingerprint in the non-resettable zone. If these are equal, the RAM has not been de-energized between startup and previous operation. The start was therefore during a sleep phase and the data integrity of the ROM is not safe. The data is then loaded from the non-resettable area. If the associated fingerprints are not equal, the RAM has been de-energized, indicating that the sleep phase has been completed. The data is then loaded from the ROM.
  • An alarm clock of the computer can be triggered during a sleep phase, but after a phase of complete recording of the data in the read-only memory.
  • the method described above does not discriminate whether the data were actually recorded in the ROM or not in this case.
  • An object of the invention is to determine the integrity of the navigation data of a control unit, particularly data copied into the read-only memory of a control unit in a simple and accurate manner.
  • control unit comprising a microcontroller, a random access memory and a read-only memory connected to the microcontroller, the random access memory being configured so that a non-resettable zone of the random access memory is not reinitialized during a start of the control unit, the method being characterized in that it comprises the steps of:
  • step g) a user of the vehicle is notified of the integrity of the navigation data when the counters are equal and the corruption of the navigation data when the counters are different.
  • the method comprises a step of restoring the navigation data:
  • a fingerprint is calculated by a method chosen from at least one cyclic redundancy check and a checksum.
  • Another object of the invention is a control unit of a motor vehicle comprising a microcontroller, a random access memory and a read-only memory connected to the microcontroller, the random access memory being configured so that a non-resettable zone of the random access memory is not reset when starting the control unit, the control unit being configured to: a) calculating the maximum of a first counter and a second counter, the second counter not being associated with any imprint, and setting these counters to a value strictly greater than the maximum;
  • control unit is configured to notify a user of the vehicle the integrity of the navigation data when the counters are equal and the corruption of the navigation data when the counters are different.
  • control unit is configured to restore navigation data:
  • FIG. 1 schematically shows a vehicle 1 automobile comprising a control unit
  • FIG. 3 schematically illustrates a navigation data restoration method according to one embodiment of the invention.
  • FIG. 1 schematically depicts an automobile vehicle 1 comprising an ECU control unit.
  • the ECU control unit of the vehicle 1 comprises a microcontroller 3 or microprocessor, illustrated by a black rectangle in solid line, electrically connected to a read-only memory 5, or non-volatile memory, illustrated by a rectangle in dashed lines, and also connected electrically to a RAM 4, or volatile memory, illustrated by a dashed rectangle.
  • the read-only memory 5 may be a FLASH type memory, or more generally EEPRO type (Electrically Erasable Programmable Read-Only Memory), or electrically erasable and programmable read only memory.
  • EEPRO Electrically Erasable Programmable Read-Only Memory
  • RAM 4 is also referred to as volatile memory, or random access memory, of Random Access Memory (RAM).
  • RAM random access memory
  • the RAM 4 comprises a non-resettable zone 6 or reset safe in English. This part of the RAM 4 is not reinitialized during a restart of the ECU control unit: the data copied in the non-resettable zone 6 remain unchanged during a restart as long as the RAM 4 is powered on .
  • FIG. 2 schematically depicts various memories and memory areas of the ECU control unit.
  • the RAM 4 is illustrated by a dashed rectangle on the left of FIG. 2. This memory comprises a non-resettable zone 6.
  • the ECU control unit is configured to process and / or store a first set of data.
  • This set of data includes sets of variables, or channels in English, including at least a first counter A, a second counter LAST and a set of navigation data D (including the navigation data D ,, i being an integer natural, illustrated by data Di and D 2 in Figure 2).
  • Channel denotes a group of data or sets of variables related to the same function, for example relating to the engine of the vehicle 1.
  • This navigation data correspond for example to a distance traveled, a consumption, but can also correspond to the signaling of a failure in the vehicle 1 or the failure of a sensor.
  • fingerprint we mean data that makes it possible to identify another piece of data, such as a checksum, a digital fingerprint, a hash, a digest, a condensate, a signature or a cryptographic fingerprint.
  • Reading a fingerprint can be used to check the integrity of a data.
  • an imprint can be obtained by a hash function and / or a cyclic redundancy check (CRC).
  • the size of the CRC typically used is 8 bits, 16 bits or 32 bits.
  • a CRC fingerprint can be calculated for a first counter A and for each data D ,.
  • the second LAST counter is configured to have no computable fingerprint, in particular no CRC fingerprint. In other words, it is impossible to calculate the footprint of the second LAST counter.
  • RAM 4 is configured to store the data set in a different zone than the non-resettable zone.
  • the non-resettable zone 6 is configured to store the first counter A, the second counter LAST and the navigation data of the vehicle 1. These data are duplicated, in the example illustrated in FIG. 2, in another zone of the random access memory 4.
  • the read-only memory 5 is configured to store at least the set of data (including the first counter A, the second counter LAST and the navigation data D,).
  • the read-only memory 5 is also configured to allow the microcontroller 3 to write the set of data in a defined order: starting with the copy of the first counter A, then writing each data D, before copying the second counter LAST. This copy order of the dataset is illustrated by the arrow above ROM 5.
  • the microcontroller 3 is configured to calculate the CRC fingerprint of each piece of data copied in the random access memory 4, insofar as these fingerprints are computable, which is not the case with the fingerprint of the second LAST counter.
  • the microcontroller 3 can calculate the CRC fingerprint A of the first counter and the CRC fingerprints D, of each navigation datum (for example CRC Di, CRC D 2 , etc.).
  • the microcontroller 3 is also configured to write each of these data and each of the associated calculated footprints in the non-resettable zone 6 of the random access memory 4.
  • Figure 3 illustrates a method for restoring navigation data according to an embodiment of the invention.
  • a step a the maximum of the first counter A and the second counter LAST is calculated, then the value of the counters A and LAST is fixed at a value strictly greater than this maximum.
  • This step can be implemented during the running of the vehicle 1 and more generally at any time before the sleep phase of the ECU control unit.
  • step b) during a sleep phase of the ECU control unit a write, in other words a copy, of the navigation data of the first counter A and the second counter LAST is initiated in the non-resettable zone 6 of the random access memory 4, and a calculation and the copy of the CRC fingerprint of each navigation data and the counter A are initiated in the non-resettable zone 6.
  • the second LAST counter has no computable fingerprint: its fingerprint can not be copied to the non-resettable zone 6.
  • the data is started in the read-only memory 5 in the order illustrated in FIG. 2, that is to say starting with the copy of the first counter A, then writing each data before writing the second LAST counter.
  • An alarm can be requested during the sleep phase, and more particularly during step b). If a copy in read-only memory 5 of the navigation data and the counters has been initiated, it must be interrupted at the time of waking to meet a reactivity criterion of the alarm clock of the vehicle 1.
  • a user of the vehicle 1 can control an awakening phase during a sleep phase.
  • the second LAST counter is loaded from the read-only memory 5.
  • step d the fingerprints of the navigation data and of the first counter A, copied in the non-resettable zone 6, are computed in the wake-up phase.
  • each copied (or registered) fingerprint associated with a non-resettable area is compared. given in the non-resettable zone 6 with the footprint calculated in step d) associated with the same datum.
  • the first counter A is copied from the non-resettable zone 6 into 4.
  • the first counter A is copied from the read-only memory 5 into the RAM 4, in a different zone from the non-resettable zone 6.
  • the first counter A copied during step e) is compared with the second counter LAST copied during step c).
  • the first counter A and the second counter LAST may be equal or different.
  • step g the integrity of the navigation data, in particular navigation data copied to the read-only memory 5, is determined when the first counter A is equal to the second counter LAST.
  • the alteration of the data, in particular navigation data copied in the read-only memory 5 is determined.
  • the term "corrupted” denotes data that does not represent the current state of the vehicle 1.
  • Such a notification can be implemented by copying in the read-only memory 5 a data item or a set of variables representative of the integrity of the data. data. It is also possible to signal to a user of the vehicle 1 and / or to the ECU control unit the integrity or the alteration of the data, for example when the vehicle 1 is started.
  • the data is restored from the random access memory 4.
  • the navigation data could not be copied entirely into the read-only memory 5 during the sleep phase of the ECU control unit (all navigation data being copied before the LAST counter).
  • This method makes it possible to determine whether, in the event of loss of power from the computer and the RAM 4 after step g), data restored from the read-only memory 5 to the RAM 4 are restored with or without a loss of information (ie an alteration) relating to data evolutions during previous runs.

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Security & Cryptography (AREA)
  • Quality & Reliability (AREA)
  • Data Mining & Analysis (AREA)
  • Databases & Information Systems (AREA)
  • Navigation (AREA)
  • Techniques For Improving Reliability Of Storages (AREA)

Abstract

La présente invention a pour objet un procédé de détermination de l'intégrité de données de navigation d'une unité de contrôle d'un véhicule automobile, comprenant les étapes consistant à fixer deux compteurs à une valeur strictement supérieure au maximum des deux compteurs, et lors d'une phase de réveil calculer les empreintes des données écrites dans la zone non réinitialisable, comparer les compteurs et déterminer l'intégrité des données quand les compteurs sont égaux.

Description

Procédé de détermination de l'intégrité de données de navigation d'une unité de contrôle d'un véhicule automobile
L'invention appartient au domaine de la sauvegarde de données et concerne plus particulièrement un procédé de détermination de l'intégrité de données de navigation et de restauration des données sauvegardées dans une unité de contrôle électronique d'un véhicule automobile.
Dans une unité de contrôle (typiquement un ECU, acronyme de Engine
Control Unit en anglais), des données de navigation sont sauvegardées dans une mémoire morte, ou non-volatile, reliée à un microcontrôleur, lors d'une coupure-clé en vue d'un arrêt du véhicule. Lors d'un démarrage ultérieur du calculateur, ces données sont restaurées à partir de la mémoire non-volatile, de manière à être réutilisées par l'unité de contrôle.
Une coupure-clé permet d'initier une phase d'endormissement du calculateur (appelée également phase de shutdown en anglais). Une sauvegarde des données depuis la mémoire vive, aussi reliée au microcontrôleur vers la mémoire morte, est réalisée pendant la phase d'endormissement de l'unité de contrôle. A l'issue de la phase d'endormissement, l'unité de contrôle peut être désactivée.
Un redémarrage ou réveil peut être requis pendant la phase d'endormissement. Les processus en cours pendant la phase d'endormissement doivent alors être interrompus de manière à initier une phase de réveil de l'unité de contrôle le plus rapidement possible.
Le temps nécessaire à la sauvegarde des données dans la mémoire morte n'est pas compatible avec la réactivité requise par un réveil pendant une phase d'endormissement, par exemple. Ce temps est typiquement de 300 ms, et de manière générale compris entre 100 ms et 3s.
L'écriture ou la copie d'une ou plusieurs données de navigation vers la mémoire morte, créées ou modifiées au cours du roulage (par exemple la signalisation d'une panne d'un capteur) est interrompue en redémarrant, avant que les données n'aient été copiées dans la mémoire morte lors de la phase d'endormissement.
A cet effet, il est connu d'écrire les données au début de la phase d'endormissement dans une partie de mémoire vive, désignée par zone non réinitialisable ou reset safe en anglais. Cette partie de la mémoire vive, à la différence des autres parties de la mémoire vive, n'est pas réinitialisée lors d'un redémarrage de l'unité de contrôle : les données écrites dans la zone non réinitialisable restent inchangées lors d'un redémarrage tant que la mémoire vive est sous tension. Les empreintes associées à chacune des données de navigation ou à chacun des groupes de données de navigation sont également calculées, puis enregistrées dans la zone non réinitialisable. Ainsi, il est possible de déterminer, lors d'une phase de réveil, depuis quelle mémoire (vive ou morte) le microcontrôleur doit charger les données pour avoir accès aux données les plus récentes et/ou des données intègres. Lors d'une phase de réveil, le microcontrôleur calcule l'empreinte de chaque donnée ou groupe de données de navigation écrit dans la zone non réinitialisable et la compare avec l'empreinte enregistrée au préalable dans la zone non réinitialisable. Si celles-ci sont égales, la mémoire vive n'a pas été mise hors tension entre le démarrage et le fonctionnement antérieur. Le démarrage a donc eu lieu pendant une phase d'endormissement et l'intégrité des données de la mémoire morte n'est pas sûre. Les données sont alors chargées à partir de la zone non réinitialisable. Si les empreintes associées ne sont pas égales, la mémoire vive a été mise hors tension, indiquant que la phase d'endormissement a été menée à son terme. Les données sont alors chargées depuis la mémoire morte.
Un réveil du calculateur peut être déclenché pendant une phase d'endormissement, mais après une phase d'enregistrement complète des données dans la mémoire morte. Le procédé décrit précédemment ne permet pas de discriminer si les données ont été effectivement enregistrées dans la mémoire morte ou pas dans ce cas.
Il est également possible de redémarrer le véhicule à une fréquence permettant à un utilisateur mal intentionné d'empêcher l'écriture des données dans la mémoire morte. Lors d'un redémarrage subséquent, si l'unité de contrôle n'est plus alimentée électriquement, les données n'ayant pas été sauvegardées en mémoire morte sont définitivement perdues.
Un but de l'invention est de déterminer l'intégrité des données de navigation d'une unité de contrôle, particulièrement des données copiées dans la mémoire morte d'une unité de contrôle d'une manière simple et précise.
Ce but est atteint dans le cadre de la présente invention grâce à un procédé de détermination de l'intégrité de données de navigation d'une unité de contrôle d'un véhicule automobile, l'unité de contrôle comprenant un microcontrôleur, une mémoire vive et une mémoire morte reliées au microcontrôleur, la mémoire vive étant configurée pour qu'une zone non réinitialisable de la mémoire vive ne soit pas réinitialisée lors d'un démarrage de l'unité de contrôle, le procédé étant caractérisé en ce qu'il comprend les étapes consistant à :
a) lors d'un roulage, calculer le maximum d'un premier compteur et d'un deuxième compteur, le deuxième compteur n'étant associé à aucune empreinte, et fixer ces compteurs à une valeur strictement supérieure au maximum ;
b) lors d'une phase d'endormissement de l'unité de contrôle, initier une copie des données de navigation du premier compteur et du deuxième compteur dans la zone non réinitialisable, initier le calcul et la copie d'une empreinte de chaque donnée de navigation et d'une empreinte du premier compteur dans la zone non réinitialisable, puis initier une copie des données de navigation et des compteurs dans la mémoire morte en commençant par la copie du premier compteur et en copiant chaque donnée avant le deuxième compteur ;
c) lors d'une phase de réveil, charger le deuxième compteur depuis la mémoire morte ; d) lors d'une phase de réveil, calculer les empreintes des données et du premier compteur copiées dans la zone non réinitialisable ;
e) lors d'une phase de réveil, charger le premier compteur depuis la zone non réinitialisable quand l'empreinte calculée et l'empreinte enregistrée du premier compteur dans la zone non réinitialisable sont égales, et charger le premier compteur depuis la mémoire morte quand l'empreinte calculée est différente de l'empreinte enregistrée du premier compteur dans la zone non réinitialisable ;
f) lors d'une phase de réveil, comparer le premier compteur et le deuxième compteur ; g) déterminer l'intégrité des données de navigation de la mémoire morte quand le premier compteur est égal au deuxième compteur lors de l'étape f).
Avantageusement, dans l'étape g), on notifie à un utilisateur du véhicule l'intégrité des données de navigation quand les compteurs sont égaux et la corruption des données de navigations quand les compteurs sont différents.
Avantageusement, le procédé comprend une étape de restauration des données de navigation :
• depuis la mémoire morte quand le premier compteur et le deuxième compteur sont égaux, et
• depuis la mémoire vive quand le premier compteur et le deuxième compteur sont différents.
Avantageusement, une empreinte est calculée par une méthode choisie parmi au moins un contrôle de redondance cyclique et une somme de contrôle.
Un autre objet de l'invention est une unité de contrôle d'un véhicule automobile comprenant un microcontrôleur, une mémoire vive et une mémoire morte reliées au microcontrôleur, la mémoire vive étant configurée pour qu'une zone non réinitialisable de la mémoire vive ne soit pas réinitialisée lors d'un démarrage de l'unité de contrôle, l'unité de contrôle étant configurée pour : a) calculer le maximum d'un premier compteur et d'un deuxième compteur, le deuxième compteur n'étant associé à aucune empreinte, et fixer ces compteurs à une valeur strictement supérieure au maximum ;
b) lors d'une phase d'endormissement de l'unité de contrôle, initier une copie des données de navigation du premier compteur et du deuxième compteur dans la zone non réinitialisable, initier le calcul et la copie d'une empreinte de chaque donnée de navigation et d'une empreinte du premier compteur dans la zone non réinitialisable, puis initier une copie des données de navigation et des compteurs dans la mémoire morte en commençant par la copie du premier compteur et en copiant chaque donnée avant le deuxième compteur ;
c) lors d'une phase de réveil, charger le deuxième compteur depuis la mémoire morte ; d) lors d'une phase de réveil, calculer les empreintes des données et du premier compteur copiées dans la zone non réinitialisable ;
e) lors d'une phase de réveil, charger le premier compteur depuis la zone non réinitialisable quand l'empreinte calculée et l'empreinte enregistrée du premier compteur dans la zone non réinitialisable sont égales, et charger le premier compteur depuis la mémoire morte quand l'empreinte calculée est différente de l'empreinte enregistrée du premier compteur dans la zone non réinitialisable ;
f) lors d'une phase de réveil, comparer le premier compteur et le deuxième compteur ; g) déterminer l'intégrité des données de navigation de la mémoire morte quand le premier compteur est égal au deuxième compteur lors de l'étape f).
Avantageusement, l'unité de contrôle est configurée pour notifier à un utilisateur du véhicule l'intégrité des données de navigation quand les compteurs sont égaux et la corruption des données de navigation quand les compteurs sont différents.
Avantageusement, l'unité de contrôle est configurée pour restaurer des données de navigation :
• depuis la mémoire morte quand le premier compteur et le deuxième compteur sont égaux, ou
• depuis la mémoire vive quand le premier compteur et le deuxième compteur sont différents.
D'autres caractéristiques et avantages ressortiront de la description qui suit, laquelle est purement illustrative et non limitative, et doit être lue en regard des figures annexées, parmi lesquelles : - la figure 1 décrit schématiquement un véhicule 1 automobile comprenant une unité de contrôle ;
- la figure 2 décrit schématiquement différentes mémoires et zones de mémoire de l'unité de contrôle ;
- la figure 3 illustre schématiquement un procédé de restauration de données de navigation selon un mode de réalisation de l'invention.
La figure 1 décrit schématiquement un véhicule 1 automobile comprenant une unité de contrôle ECU. L'unité de contrôle ECU du véhicule 1 comprend un microcontrôleur 3 ou microprocesseur, illustré par un rectangle noir en trait continu, relié électriquement à une mémoire morte 5, ou mémoire non-volatile, illustrée par un rectangle en traits pointillés, et également reliée électriquement à une mémoire vive 4, ou mémoire volatile, illustrée par un rectangle en traits pointillés.
La mémoire morte 5 peut être une mémoire de type FLASH, ou plus généralement de type EEPRO (acronyme de l'anglais Electrically- Erasabie Programmable Read-Only Memory, ou mémoire morte 5 effaçable électriquement et programmable).
La mémoire vive 4 est également désignée mémoire volatile, ou mémoire à accès direct, de l'anglais Random Access Memory (RAM). La mémoire vive 4 comprend une zone non réinitialisable 6 ou reset safe en anglais. Cette partie de la mémoire vive 4 n'est pas réinitialisée lors d'un redémarrage de l'unité de contrôle ECU : les données copiées dans la zone non réinitialisable 6 restent inchangées lors d'un redémarrage tant que la mémoire vive 4 est sous tension.
La figure 2 décrit schématiquement différentes mémoires et zones de mémoire de l'unité de contrôle ECU.
La mémoire vive 4 est illustrée par un rectangle en pointillés à gauche de la figure 2. Cette mémoire comprend une zone non réinitialisable 6.
De manière générale, l'unité de contrôle ECU est configurée pour traiter et/ou mémoriser un premier ensemble de données. Cet ensemble de données comprend des jeux de variables, ou channels en anglais, dont au moins à un premier compteur A, un second compteur LAST et un ensemble de données de navigation D (comprenant les données de navigation D,, i étant un nombre entier naturel, illustrées par les données Di et D2 dans la figure 2). On désigne par channel un groupe de données ou jeux de variables liés à une même fonction, par exemple relative au moteur du véhicule 1 . Ces données de navigation correspondent par exemple à une distance parcourue, à une consommation, mais peuvent également correspondre à la signalisation d'une panne dans le véhicule 1 ou de la défaillance d'un capteur. Par empreinte, on entend une donnée permettant d'identifier une autre donnée, telle qu'une somme de contrôle, une empreinte numérique, un hash, un condensé, un condensât, une signature ou encore une empreinte cryptographique. La lecture d'une empreinte peut permettre de vérifier l'intégrité d'une donnée. Avantageusement, une empreinte peut être obtenue par une fonction de hachage et/ou un contrôle de redondance cyclique (CRC). La taille du CRC typiquement utilisé est de 8 bits, 16 bits ou 32 bits.
Une empreinte CRC peut être calculée pour un premier compteur A et pour chaque donnée D,. Le deuxième compteur LAST est configuré pour ne pas avoir d'empreinte calculable, en particulier pas d'empreinte de type CRC. Autrement dit, il est impossible de calculer l'empreinte du deuxième compteur LAST.
La mémoire vive 4 est configurée pour mémoriser l'ensemble de données dans une autre zone que la zone non réinitialisable.
La zone non réinitialisable 6 est configurée pour mémoriser le premier compteur A, le deuxième compteur LAST et les données de navigation du véhicule 1 . Ces données sont dupliquées, dans l'exemple illustré dans la figure 2, dans une autre zone de la mémoire vive 4.
La mémoire morte 5 est configurée pour mémoriser au moins l'ensemble de données (comprenant le premier compteur A, le second compteur LAST et les données de navigation D,). La mémoire morte 5 est également configurée pour permettre au microcontrôleur 3 d'écrire l'ensemble de données dans un ordre défini : en commençant par la copie du premier compteur A, puis en écrivant chaque donnée D, avant la copie du deuxième compteur LAST. Cet ordre de copie de l'ensemble de données est illustré par la flèche au-dessus de la mémoire morte 5.
Le microcontrôleur 3 est configuré pour calculer l'empreinte CRC de chaque donnée copiée dans la mémoire vive 4, dans la mesure où ces empreintes sont calculables, ce qui n'est pas le cas de l'empreinte du deuxième compteur LAST. Le microcontrôleur 3 peut calculer l'empreinte CRC A du premier compteur et les empreintes CRC D, de chaque donnée de navigation (par exemple CRC Di , CRC D2, etc.). Le microcontrôleur 3 est également configuré pour écrire chacune de ces données et chacune des empreintes calculées associées dans la zone non réinitialisable 6 de la mémoire vive 4.
La figure 3 illustre un procédé de restauration de données de navigation selon un mode de réalisation de l'invention.
Lors d'une étape a), on calcule le maximum du premier compteur A et du second compteur LAST, puis on fixe la valeur des compteurs A et LAST à une valeur strictement supérieure à ce maximum. Avantageusement, on fixe (ou on initialise) la valeur du premier compteur A et du deuxième compteur LAST à la valeur de ce maximum plus un. Cette étape peut être mise en œuvre pendant le roulage du véhicule 1 et de manière plus générale à tout moment avant la phase d'endormissement de l'unité de contrôle ECU.
Lors de l'étape b), pendant une phase d'endormissement de l'unité de contrôle ECU, on initie une écriture, autrement dit une copie, des données de navigationdu premier compteur A et du deuxième compteur LAST dans la zone non réinitialisable 6 de la mémoire vive 4, et on initie un calcul et la copie de l'empreinte CRC de chaque donnée de navigation et du compteur A dans la zone non réinitialisable 6. Le deuxième compteur LAST n'a pas d'empreinte calculable : son empreinte ne peut pas être copiée dans la zone non réinitialisable 6. Enfin, on initie la copie des données dans la mémoire morte 5 dans l'ordre illustré dans la figure 2, c'est-à-dire en commençant par la copie du premier compteur A, puis en écrivant chaque donnée avant d'écrire le deuxième compteur LAST.
Si l'unité de contrôle ECU est mise hors tension après la phase d'endormissement, l'ensemble des données de la mémoire vive 4 sont, lors de la remise sous tension de la mémoire vive 4, dans un état indéterminé. Les données de la zone non réinitialisable 6 n'étant pas réinitialisées, elles sont également dans un état indéterminé après une initialisation de la mémoire vive 4.
Un réveil peut être demandé pendant la phase d'endormissement, et plus particulièrement pendant l'étape b). Si une copie en mémoire morte 5 des données de navigation et des compteurs a été initiée, elle doit être interrompue au moment du réveil pour répondre à un critère de réactivité du réveil du véhicule 1 .
Un utilisateur du véhicule 1 peut commander une phase de réveil pendant une phase d'endormissement. Lors de l'étape c), lors d'une une phase de réveil, on charge le deuxième compteur LAST depuis la mémoire morte 5.
Lors d'une étape d), on calcule, dans la phase de réveil, les empreintes des données de navigation et du premier compteur A, copiées dans la zone non réinitialisable 6. On compare ensuite chaque empreinte copiée (ou enregistrée) associée à une donnée dans la zone non réinitialisable 6 avec l'empreinte calculée dans l'étape d) associée à la même donnée.
Lors d'une étape e), dans la phase de réveil, quand l'empreinte calculée et l'empreinte enregistrée du premier compteur A dans la zone non réinitialisable 6 sont égales, le premier compteur A est copié depuis la zone non réinitialisable 6 dans une autre zone de la mémoire vive 4. En revanche, quand l'empreinte du premier compteur A calculée et l'empreinte du premier compteur A enregistrée dans la zone non réinitialisable 6 sont différentes, le premier compteur A est copié depuis la mémoire morte 5 dans la mémoire vive 4, dans une zone différente de la zone non réinitialisable 6.
Lors d'une étape f), on compare le premier compteur A copié lors de l'étape e) et le deuxième compteur LAST copié lors de l'étape c). Le premier compteur A et le deuxième compteur LAST peuvent être égaux ou différents.
Lors de l'étape g), on détermine l'intégrité des données de navigation, en particulier des données de navigation copiées dans la mémoire morte 5, quand le premier compteur A est égal au deuxième compteur LAST. Dans le cas contraire, quand le premier compteur A est différent du deuxième compteur LAST, on détermine l'altération des données, en particulier des données de navigation copiées dans la mémoire morte 5. On désigne par « altéré » des données qui ne représentent pas l'état actuel du véhicule 1 .
On peut avantageusement notifier l'intégrité ou l'altération des données de navigation copiées dans la mémoire morte 5. Une telle notification peut être mise en œuvre en copiant dans la mémoire morte 5 une donnée ou un jeu de variables représentatives de l'intégrité des données. On peut également signaler à un utilisateur du véhicule 1 et/ou à l'unité de contrôle ECU l'intégrité ou l'altération des données, par exemple lors du démarrage du véhicule 1 .
On peut également restaurer l'ensemble de données dans la mémoire vive 4 de l'unité de contrôle ECU depuis la mémoire morte 5 quand le premier compteur A et le deuxième compteur LAST sont égaux. Ce cas de figure correspond à un cas où l'ensemble de données a été entièrement copié lors de la précédente phase d'endormissement de l'unité de contrôle ECU.
En revanche, quand le premier compteur A et le deuxième compteur LAST sont différents, les données sont restaurées depuis la mémoire vive 4. Dans ce cas, les données de navigation n'ont pas pu être copiées entièrement dans la mémoire morte 5 lors de la phase d'endormissement de l'unité de contrôle ECU (toutes les données de navigation étant copiées avant le compteur LAST). Cette méthode permet de déterminer si, en cas de perte d'alimentation du calculateur et de la mémoire vive 4 après l'étape g), des données restaurées depuis la mémoire morte 5 vers la mémoire vive 4 sont restaurées avec ou sans une perte d'information (c'est-à-dire une altération) relative aux évolutions des données lors des roulages précédents.

Claims

REVENDICATIONS
1. Procédé de détermination de l'intégrité de données de navigation d'une unité de contrôle (ECU) d'un véhicule (1 ) automobile, l'unité de contrôle comprenant un microcontrôleur (3), une mémoire vive (4) et une mémoire morte (5) reliées au microcontrôleur (3), la mémoire morte étant configurée pour qu'une zone non réinitialisable (6) de la mémoire vive ne soit pas réinitialisée lors d'un démarrage de l'unité de contrôle, le procédé étant caractérisé en ce qu'il comprend les étapes consistant à : a) calculer le maximum d'un premier compteur (A) et d'un deuxième compteur (LAST), le deuxième compteur (LAST) n'étant associé à aucune empreinte, et fixer ces compteurs à une valeur strictement supérieure au maximum ;
b) lors d'une phase d'endormissement de l'unité de contrôle, initier une copie des données de navigation du premier compteur (A) et du deuxième compteur (LAST) dans la zone non réinitialisable, initier le calcul et la copie d'une empreinte de chaque donnée de navigation et d'une empreinte du premier compteur (A) dans la zone non réinitialisable, puis initier une copie des données de navigation et des compteurs (A, LAST) dans la mémoire morte en commençant par la copie du premier compteur (A) et en copiant chaque donnée avant le deuxième compteur (LAST) ;
c) lors d'une phase de réveil, charger le deuxième compteur (LAST) depuis la mémoire morte ;
d) lors d'une phase de réveil, calculer les empreintes des données et du premier compteur (A) copiées dans la zone non réinitialisable ;
e) lors d'une phase de réveil, charger le premier compteur (A) depuis la zone non réinitialisable quand l'empreinte calculée et l'empreinte enregistrée du premier compteur (A) dans la zone non réinitialisable sont égales, et charger le premier compteur (A) depuis la mémoire morte quand l'empreinte calculée est différente de l'empreinte enregistrée du premier compteur (A) dans la zone non réinitialisable ;
f) lors d'une phase de réveil, comparer le premier compteur (A) et le deuxième compteur (LAST) ;
g) déterminer l'intégrité des données de navigation copiées dans la mémoire morte quand le premier compteur (A) est égal au deuxième compteur (LAST) lors de l'étape f).
2. Procédé selon la revendication 1 dans lequel, dans l'étape g), on notifie à un utilisateur du véhicule (1 ) l'intégrité des données de navigation quand les compteurs (A, LAST) sont égaux ou l'altération des données de navigation quand les compteurs (A, LAST) sont différents.
3. Procédé selon la revendication 1 ou 2, comprenant en outre une étape de restauration des données de navigation :
• depuis la mémoire morte (5) quand le premier compteur (A) et le deuxième compteur (LAST) sont égaux, ou
· depuis la mémoire vive (4) quand le premier compteur (A) et le deuxième compteur (LAST) sont différents.
4. Procédé selon l'une des revendications 1 à 3, dans lequel l'empreinte est calculée par une méthode choisie parmi au moins un contrôle de redondance cyclique et une somme de contrôle.
5. Unité de contrôle (ECU) d'un véhicule (1 ) automobile comprenant un microcontrôleur (3), une mémoire vive (4) et une mémoire morte (5) reliées au microcontrôleur (3), la mémoire morte étant configurée pour qu'une zone non réinitialisable (6) de la mémoire vive ne soit pas réinitialisée lors d'un démarrage de l'unité de contrôle, l'unité de contrôle étant configurée pour :
a) lors d'un roulage, calculer le maximum d'un premier compteur (A) et d'un deuxième compteur (LAST), le deuxième compteur (LAST) n'étant associé à aucune empreinte et fixer ces compteurs à une valeur strictement supérieure au maximum ;
b) lors d'une phase d'endormissement de l'unité de contrôle, initier une copie des données de navigation du premier compteur (A) et du deuxième compteur (LAST) dans la zone non réinitialisable, initier le calcul et la copie d'une empreinte de chaque donnée de navigation et d'une empreinte du premier compteur (A) dans la zone non réinitialisable, puis initier une copie des données de navigation et des compteurs (A, LAST) dans la mémoire morte en commençant par la copie du premier compteur (A) et en copiant chaque donnée avant le deuxième compteur (LAST) ;
c) lors d'une phase de réveil, charger le deuxième compteur (LAST) depuis la mémoire morte ;
d) lors d'une phase de réveil, calculer les empreintes des données et du premier compteur (A) copiées dans la zone non réinitialisable ;
e) lors d'une phase de réveil, charger le premier compteur (A) depuis la zone non réinitialisable quand l'empreinte calculée et l'empreinte enregistrée du premier compteur (A) dans la zone non réinitialisable sont égales, et charger le premier compteur (A) depuis la mémoire morte quand l'empreinte calculée est différente de l'empreinte enregistrée du premier compteur (A) dans la zone non réinitialisable ; f) lors d'une phase de réveil, comparer le premier compteur (A) et le deuxième compteur (LAST) ;
g) déterminer l'intégrité des données de navigation de la mémoire morte quand le premier compteur (A) est égal au deuxième compteur (LAST) lors de l'étape f).
6. Unité de contrôle selon la revendication 5 configurée pour notifier à un utilisateur du véhicule (1 ) l'intégrité des données de navigation quand les compteurs (A, LAST) sont égaux et l'altération des données de navigation quand les compteurs (A, LAST) sont différents.
7. Unité de contrôle selon la revendication 5 ou 6 configurée pour restaurer des données de navigation :
• depuis la mémoire morte (5) quand le premier compteur (A) et le deuxième compteur (LAST) sont égaux, ou
• depuis la mémoire vive (4) quand le premier compteur (A) et le deuxième compteur (LAST) sont différents.
PCT/FR2018/051809 2017-07-20 2018-07-17 Procédé de détermination de l'intégrité de données de navigation d'une unité de contrôle d'un véhicule automobile WO2019016464A1 (fr)

Priority Applications (2)

Application Number Priority Date Filing Date Title
US16/631,941 US11500848B2 (en) 2017-07-20 2018-07-17 Method for determining the integrity of navigation data of a control unit of an automotive vehicle
CN201880060794.7A CN111066002B (zh) 2017-07-20 2018-07-17 用于确定机动车辆的控制单元的驾驶数据的完整性的方法

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
FR1756868 2017-07-20
FR1756868A FR3069342B1 (fr) 2017-07-20 2017-07-20 Procede de determination de l'integrite de donnees de navigation d'une unite de controle d'un vehicule automobile

Publications (1)

Publication Number Publication Date
WO2019016464A1 true WO2019016464A1 (fr) 2019-01-24

Family

ID=60302218

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/FR2018/051809 WO2019016464A1 (fr) 2017-07-20 2018-07-17 Procédé de détermination de l'intégrité de données de navigation d'une unité de contrôle d'un véhicule automobile

Country Status (4)

Country Link
US (1) US11500848B2 (fr)
CN (1) CN111066002B (fr)
FR (1) FR3069342B1 (fr)
WO (1) WO2019016464A1 (fr)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
FR3094505A1 (fr) * 2019-03-26 2020-10-02 Continental Automotive Procédé de détection d’une falsification d’un compteur kilométrique électronique de véhicule automobile

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
FR3069342B1 (fr) * 2017-07-20 2019-07-26 Continental Automotive France Procede de determination de l'integrite de donnees de navigation d'une unite de controle d'un vehicule automobile

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP0896276A1 (fr) * 1997-08-05 1999-02-10 Alps Electric Co., Ltd. Appareillage électrique pour véhicules, comprenant un micro-processeur intégré
DE102006039942A1 (de) * 2006-04-19 2007-10-25 Mitsubishi Electric Corp. Informationsspeichereinrichtung für elektrische Steuereinrichtung
US20110283056A1 (en) * 2009-12-22 2011-11-17 Toyota Jidosha Kabushiki Kaisha Information management apparatus and information managing method
US20140053030A1 (en) * 2012-08-16 2014-02-20 Hyundai Motor Company Method and system for preventing loss of trip data in vehicle

Family Cites Families (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
DE19963214A1 (de) * 1999-12-28 2001-07-12 Bosch Gmbh Robert Verfahren und Vorrichtung zum Hochfahren eines Steuergeräts für ein Kraftfahrzeug
DE102004031041A1 (de) * 2004-06-25 2006-02-09 Siemens Ag Berechnungsverfahren für kumulative Lenkzeitunterbrechung
JP2008040585A (ja) * 2006-08-02 2008-02-21 Renesas Technology Corp マイクロコンピュータ
FR2923627B1 (fr) * 2007-11-08 2013-08-30 Siemens Vdo Automotive Procede de deverrouillage d'un calculateur de controle moteur.
EP2461251B1 (fr) * 2010-12-03 2017-06-21 Robert Bosch GmbH Unité de protection de mémoire et procédé de contrôle d'un accès à un dispositif de mémoire
FR3006768B1 (fr) * 2013-06-06 2017-05-26 Continental Automotive France Procede de surveillance d'un organe fonctionnel d'un vehicule automobile
US10241706B2 (en) * 2016-05-20 2019-03-26 Renesas Electronics Corporation Semiconductor device and its memory access control method
FR3069342B1 (fr) * 2017-07-20 2019-07-26 Continental Automotive France Procede de determination de l'integrite de donnees de navigation d'une unite de controle d'un vehicule automobile
US11657125B2 (en) * 2019-09-20 2023-05-23 Canon Kabushiki Kaisha Information processing apparatus and reset control method

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP0896276A1 (fr) * 1997-08-05 1999-02-10 Alps Electric Co., Ltd. Appareillage électrique pour véhicules, comprenant un micro-processeur intégré
DE102006039942A1 (de) * 2006-04-19 2007-10-25 Mitsubishi Electric Corp. Informationsspeichereinrichtung für elektrische Steuereinrichtung
US20110283056A1 (en) * 2009-12-22 2011-11-17 Toyota Jidosha Kabushiki Kaisha Information management apparatus and information managing method
US20140053030A1 (en) * 2012-08-16 2014-02-20 Hyundai Motor Company Method and system for preventing loss of trip data in vehicle

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
FR3094505A1 (fr) * 2019-03-26 2020-10-02 Continental Automotive Procédé de détection d’une falsification d’un compteur kilométrique électronique de véhicule automobile

Also Published As

Publication number Publication date
CN111066002B (zh) 2023-10-31
US11500848B2 (en) 2022-11-15
CN111066002A (zh) 2020-04-24
US20200364206A1 (en) 2020-11-19
FR3069342A1 (fr) 2019-01-25
FR3069342B1 (fr) 2019-07-26

Similar Documents

Publication Publication Date Title
FR3069342B1 (fr) Procede de determination de l'integrite de donnees de navigation d'une unite de controle d'un vehicule automobile
JP2019530085A (ja) 重複排除ストレージ内の画像を修復するためのシステム及び方法
CN1991779A (zh) 基于安全芯片的防病毒方法
FR2917525A1 (fr) Traitement de donnees biometriques par transformation
FR3018934A1 (fr) Procede d'enrolement de donnees dans une base pour la protection desdites donnees
EP1748374A1 (fr) Procédé et dispositif de protection d'une mémoire contre les attaques par injection d'erreur
FR2894709A1 (fr) "detecteur de destruction anormale de secteur memoire"
WO2014195012A1 (fr) Procédé d'optimisation de l'utilisation de la mémoire non volatile d'un calculateur de véhicule automobile pour la surveillance d'un organe fonctionnel
EP3740891A1 (fr) Procede et dispositif de detection de chiffrement, notamment pour anti-virus ranconneur
EP2785039B1 (fr) Procédé et dispositif de tatouage d'une séquence d'images, procédé et dispositif d'authentification d'une séquence d'images tatouées et programme d'ordinateur correspondant
CA2918215C (fr) Procede d'estimation sur une courbe d'un point pertinent pour la detection d'anomalie d'un moteur et systeme de traitement de donnees pour sa mise en oeuvre
WO2012175827A1 (fr) Procédé de gestion de l'endurance de mémoires non volatiles
EP1880387B1 (fr) Dispositif de protection d'une memoire contre les attaques par injection d'erreur
FR2938088A1 (fr) Procede de securisation des donnees de vol et systeme pour mettre en oeuvre ledit procede
EP0604311A1 (fr) Procédé de gestion de fichiers, support d'enregistrement et système informatique l'incorporant
FR3010554A1 (fr) Procede de detection et de prevention de panne de composant de vehicule automobile
WO2014060096A1 (fr) Procédé de gestion d'une mémoire flash
FR3111228A1 (fr) Garantie de la confiance en un programme informatique pour dispositifs de l’internet des objets
FR2963128A1 (fr) Procédé de détection d'une attaque par injection de faute dans un dispositif de mémoire, et système de détection correspondant
FR3050044B1 (fr) Procede de verification automatique d'un fichier informatique cible par rapport a un fichier informatique de reference
FR3138555A1 (fr) Procédé de détermination de la température des gaz de sortie d’un moteur et procédé de mesure de l’usure d’un moteur
FR3079946A1 (fr) Procede de perennisation des informations stockees dans une memoire non volatile-temporaire d’un un calculateur.
EP2229648A1 (fr) Methode de transfert securise de donnees
EP4093959A1 (fr) Procede de surveillance d'une sequence de demarrage d'une turbomachine et systeme de surveillance mettant en oeuvre ce procede
FR2929429A1 (fr) Procede securise de mise a jour d'un programme de demarrage ou d'un systeme d'exploitation d'un dispositif informatique

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: 18755514

Country of ref document: EP

Kind code of ref document: A1

NENP Non-entry into the national phase

Ref country code: DE

122 Ep: pct application non-entry in european phase

Ref document number: 18755514

Country of ref document: EP

Kind code of ref document: A1