Brevet FR3069342A1 (20190125)

REVENDICATIONS1. 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). 10\n<CLM>\1\tProcé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. 5\n<CLM>\1\tProcé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 10 compteur (LAST) sont différents.\n<CLM>\1\tProcé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.\n<CLM>\1\tUnité de contrôle (ECU) d'un véhicule (1) automobile comprenant un 15 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 20 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 25 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 30 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 ; 11 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 5 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 10 le premier compteur (A) est égal au deuxième compteur (LAST) lors de l'étape f).\n<CLM>\1\tUnité 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, 15 LAST) sont différents.\n<CLM>\1\tUnité 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 20 - depuis la mémoire vive (4) quand le premier compteur (A) et le deuxième compteur (LAST) sont différents.