FR 3077904 A1 20190816 FR 1851102 A 20180209 L'invention a pour domaine technique les unités de commande électronique et, plus particulièrement, leur reprogrammation. Les véhicules automobiles actuels comprennent un ensemble de calculateurs agencés autour d'une unité de commande électronique présentant des fonctions de 5 passerelle permettant de coordonner les échanges de messages et de données. De telles unités de commande électronique présentent également des fonctions de reprogrammation permettant la reprogrammation de l'unité de commande électronique. Une reprogrammation consiste en une reprogrammation de la mémoire non volatile, de type mémoire flash, de l'unité de commande électronique afin de modifier les 10 données ou les instructions de fonctionnement. Pour des raisons de sécurité, lors de la reprogrammation, toutes les fonctions de passerelle sont suspendues au profit des fonctions de reprogrammation pour la durée de la reprogrammation. En effet, sans une telle interruption des fonctions de passerelle, les fonctions de reprogrammation seraient périodiquement interrompues ou suspendues, 15 ce qui pourrait mener à des erreurs ou à un échec de la reprogrammation. L'apparition de telles erreurs n'est pas acceptable et pourrait rendre l'unité de commande électronique inutilisable. La reprogrammation des calculateurs est généralement réalisée véhicule éteint, en amont du démarrage, afin de que les calculateurs ne soient pas en fonction. 20 Cela est nécessaire d'un point de vue de sécurité du véhicule afin d'éviter d'exposer le véhicule à un fonctionnement dans lequel un ou plusieurs calculateurs cruciaux sont indisponibles. Pour pouvoir réaliser cela alors que le groupe motopropulseur et l'alternateur du véhicule sont arrêtés, les unités de commande électronique et les calculateurs sont alimentés par la batterie du véhicule. Une telle alimentation implique 25 alors que la reprogrammation soit effectuée dans un délai suffisamment court pour ne pas abaisser la charge de la batterie à un niveau insuffisant pour assurer un démarrage du véhicule. Il est ainsi devenu nécessaire de disposer d'unités de commande électronique telles que décrites ci-dessus permettant de réaliser la reprogrammation dans une durée suffisamment courte pour être compatible avec la capacité de la batterie du véhicule. 30 Par ailleurs, la complexité de telles reprogrammations augmentant, il est devenu nécessaire de disposer d'unités de commande électronique telles que décrites ci-dessus permettant de maintenir des fonctions de passerelle entre les calculateurs tout en réalisant une reprogrammation afin de pouvoir surveiller le déroulement des autres reprogrammations ou le fonctionnement des autres calculateurs. 2 Il est à noter que les fonctions de passerelle et de reprogrammation sont des fonctions aux mécanismes et contraintes différents, notamment en termes de sécurité, ce qui complique leur exécution simultanée. Dans le cas où des fonctions de passerelle sont insérées dans des fonctions de reprogrammation, les fonctions de reprogrammation sont prioritaires, ce qui génère des durées de traitement élevées des données à transmettre. Les données à transmettre sont donc transmises avec un délai qui rend un fonctionnement rapide ou temps réel impossible. Dans le cas où des fonctions de reprogrammation sont insérées dans des fonctions de passerelle, il existe, en plus des problèmes d'interruptions de fonctionnement dus au partage des ressources mentionnés plus haut, un problème de sécurité de fonctionnement des fonctions de reprogrammation. En effet, les fonctions de reprogrammation partagent une mémoire commune avec les fonctions de passerelle, ce qui peut mener à des conflits ou erreur d'écriture simultanée des deux fonctions. Enfin, il serait théoriquement possible d'exécuter des fonctions de passerelle et de reprogrammation de façon séquentielle sur un unique coeur d'exécution. Toutefois, la complexité de fonctionnement, notamment en termes de mélanges de données mises à jour et de données non encore mises à jour serait particulièrement élevée. Par ailleurs, les temps de traitement de chacune des deux fonctions deviendraient alors très importants, ce qui serait incompatible avec un fonctionnement sur batterie. Il existe ainsi un problème technique concernant le maintien de fonctions de passerelle dans une unité de commande électronique pour un véhicule automobile alors qu'une reprogrammation de ladite unité de commande électronique est requise. L'invention a pour objet un procédé de commande d'une unité de commande électronique de véhicule automobile comprenant au moins deux coeurs d'exécution et connectée à au moins un calculateur, à une mémoire commune et à une mémoire de stockage comprenant une requête de reprogrammation et des données de reprogrammation, l'unité de commande électronique et le au moins un calculateur étant alimentés par une batterie du véhicule automobile, le procédé comprenant les étapes suivantes : - on commande l'unité de commande électronique de sorte qu'un premier ensemble de fonctions de passerelle soit exécuté par au moins un coeur d'exécution, - on lit la requête de reprogrammation accompagnée de données de reprogrammation dans la mémoire de stockage, - on détermine si une reprogrammation de l'unité de commande électronique est requise, 3 - si tel est le cas, on commande le au moins un coeur d'exécution exécutant le premier ensemble de fonctions de passerelle de sorte que ledit premier ensemble de fonctions de passerelle soit arrêté et on commande le démarrage d'un deuxième ensemble de fonctions de passerelle sur au moins un coeur 5 d'exécution et le démarrage de fonctions de reprogrammation sur au moins un coeur d'exécution différent du au moins un coeur d'exécution exécutant le deuxième ensemble de fonctions de passerelle, - lorsque le groupe motopropulseur du véhicule automobile est arrêté, - on transmet la requête de reprogrammation au deuxième ensemble de fonctions 10 de passerelle, - on commande le deuxième ensemble de fonctions de passerelle de sorte à déterminer une sous-requête de reprogrammation accompagnée d'un sous-ensemble de données de reprogrammation pour la reprogrammation de l'unité de commande électronique en fonction de la requête de reprogrammation et des 15 données de reprogrammation, et - on commande la transmission de la sous-requête de reprogrammation et du sous-ensemble de données de reprogrammation l'accompagnant audit au moins un coeur d'exécution exécutant les fonctions de reprogrammation, - on commande la reprogrammation de l'unité de commande électronique en 20 fonction de la sous-requête de reprogrammation et du sous-ensemble de données de reprogrammation l'accompagnant, - si une reprogrammation de l'unité de commande électronique n'est pas requise, on maintient le premier ensemble de fonctions de passerelle. Si une reprogrammation de l'unité de commande électronique est requise 25 dans la requête de reprogrammation, on peut commander le deuxième ensemble de fonctions de passerelle de sorte à: - déterminer une liste des calculateurs connectés directement ou indirectement à l'unité de commande électronique pour lesquels une reprogrammation est requise, puis 30 - déterminer une sous-requête de reprogrammation fonction de la liste des calculateurs à reprogrammer, - déterminer un sous-ensemble de données de reprogrammation pour la reprogrammation de chaque calculateur dont la reprogrammation est requise en fonction des données de reprogrammation accompagnant la requête de 35 reprogrammation, - émettre ensuite une sous-requête de reprogrammation à destination de chaque calculateur connecté à l'unité de commande électronique dont la 4 reprogrammation est requise par la requête de reprogrammation, accompagnée du sous-ensemble de données de reprogrammation correspondant. Si une reprogrammation de l'unité de commande électronique n'est pas requise dans la requête de reprogrammation, on peut commander le premier ensemble de 5 fonctions de passerelle de sorte à: - déterminer une liste des calculateurs connectés directement ou indirectement à l'unité de commande électronique pour lesquels une reprogrammation est requise, puis - déterminer une sous-requête de reprogrammation fonction de la liste des 10 calculateurs à reprogrammer - déterminer un sous-ensemble de données de reprogrammation pour la reprogrammation de chaque calculateur dont la reprogrammation est requise en fonction des données de reprogrammation accompagnant la requête de reprogrammation, 15 - émettre ensuite une sous-requête de reprogrammation à destination de chaque calculateur connecté à l'unité de commande électronique dont la reprogrammation est requise par la requête de reprogrammation, accompagnée du sous-ensemble de données de reprogrammation correspondant. Le premier ensemble de fonctions de passerelle peut comprendre le 20 deuxième ensemble de fonction de passerelle et au moins une fonction supplémentaire. La fonction supplémentaire peut comprendre au moins une parmi une fonction de pare-feu, une fonction de diagnostic d'erreurs, une fonction de gestion de l'alimentation et une fonction d'odomètre. Le procédé de commande selon l'invention présente l'avantage de fonction de 25 passerelle et de reprogrammation complétement isolé de sorte que la reprogrammation soit bien menée à terme. D'autres buts, caractéristiques et avantages de l'invention apparaîtront à la lecture de la description suivante, donnée uniquement à titre d'exemple non limitatif et faite en référence aux dessins annexés sur lesquels : 30 - la figure 1 illustre les principaux éléments d'une unité de commande électronique, et - la figure 2 illustre les principales étapes d'un procédé de commande de l'unité de commande électronique selon l'invention. La figure 1 illustre les principaux composants d'une unité de commande 35 électronique 1 comprenant des fonctions de passerelle selon l'invention. 5 L'unité de commande électronique 1 selon l'invention comprend au moins deux coeurs d'exécution 2,3 et au moins une mémoire 4 commune, volatile et/ou non volatile. Chaque coeur d'exécution 2,3 a ainsi accès à des zones de mémoire dédiées 5 au sein de la mémoire commune 4 qui permettent leur exécution de façon indépendante. Il n'existe donc pas de risque d'une interruption des fonctions de reprogrammation. Chaque coeur d'exécution 2,3 a également accès à des zones de mémoire partagées au sein de la mémoire commune 4 permettant l'échange d'informations. L'unité de commande électronique 1 comprend des connexions à d'autres 10 calculateurs par différentes connexions telles qu'une connexion CAN 5a, une connexion Flexray 5b ou une connexion Ethernet Sc. L'unité de commande électronique 1 est également connectée à une mémoire de stockage 6 comprenant la requête de reprogrammation accompagnée de données de reprogrammation. Une telle mémoire de stockage 6 peut être une mémoire amovible de type USB, un ordinateur connecté par une 15 connexion filaire ou sans fil. En fonctionnement normal, c'est-à-dire hors des périodes de reprogrammation, au moins un des coeurs d'exécution 2,3 est configuré pour exécuter un premier ensemble de fonctions de passerelle. A réception de la requête de reprogrammation, et si l'unité de commande 20 électronique doit être reprogrammée, la passerelle est configurée pour remplacer le premier ensemble de fonctions de passerelle exécuté sur les deux coeurs d'exécution 2,3 par un deuxième ensemble de fonctions de passerelle exécuté sur un des coeurs d'exécution et par des fonctions de reprogrammation sur l'autre coeur d'exécution. Le premier ensemble de fonctions de passerelle, le deuxième ensemble de fonctions de 25 passerelle et les fonctions de reprogrammation sont mémorisés dans une mémoire, de préférence non volatile, accessible par l'unité de commande électronique, de préférence intégrée à l'unité de commande électronique 1. Le deuxième ensemble de fonctions de passerelle dérive du premier ensemble de fonctions de passerelle en comprenant des éléments similaires, tels que le 30 système d'exploitation, les pilotes des différentes connexions et dispositifs connectés à l'unité de commande électronique 1. A contrario, le deuxième ensemble de fonctions de passerelle exclut certaines fonctions de haut niveau du premier ensemble de fonctions de passerelle n'étant pas directement requises pour la réception des requêtes et données de reprogrammation et pour l'échange de sous-requêtes et sous-ensemble de données de 35 reprogrammation avec les calculateurs connectés. Des exemples de fonctions omises sont un pare-feu, un module de diagnostic d'erreurs, une gestion de l'alimentation et un odomètre. 6 Sur la figure 2, on peut voir les principales étapes d'un procédé de commande de l'unité centrale électronique 1 selon l'invention. Au cours d'une première étape 11, le premier ensemble de fonctions de passerelle reçoit la requête de reprogrammation. Au cours d'une deuxième étape 12, on 5 détermine si une reprogrammation de l'unité de commande électronique 1 est requise. Si tel est le cas, le procédé se poursuit par une troisième étape 13, au cours de laquelle on commande l'arrêt du premier ensemble de fonctions de passerelle, le démarrage d'un deuxième ensemble de fonctions de passerelle et le démarrage des fonctions de reprogrammation. Lorsque le groupe motopropulseur du véhicule automobile 10 est arrêté, on transmet alors la requête de reprogrammation au deuxième ensemble de fonctions de passerelle. On considère que, lorsque le groupe motopropulseur du véhicule est arrêté, les calculateurs ne sont plus actifs et peuvent être reprogrammés en toute sécurité. Par contre, les calculateurs et l'unité de commande électronique ne sont plus alimentés que par la batterie du véhicule. Au cours d'une quatrième étape 14, on 15 détermine une liste des calculateurs connectés directement ou indirectement à l'unité de commande électronique pour lesquels une reprogrammation est requise. On détermine également un sous-ensemble de données de reprogrammation pour la reprogrammation de l'unité de commande électronique ainsi qu'un sous-ensemble de données de reprogrammation pour la reprogrammation de chaque calculateur dont la 20 reprogrammation est requise, en fonction des données de reprogrammation accompagnant la requête de reprogrammation. Au cours d'une cinquième étape 15, on émet ensuite une sous-requête de reprogrammation à destination de chaque calculateur connecté à l'unité de commande électronique dont la reprogrammation est requise par la requête de reprogrammation, 25 accompagnée du sous-ensemble de données de reprogrammation correspondant. Si, à l'étape 12, on détermine qu'une reprogrammation de l'unité de commande électronique 1 n'est pas requise, le procédé se poursuit par une sixième étape 16, au cours de laquelle on maintient le premier ensemble de fonctions de passerelle. Au cours d'une septième étape 17, on détermine une liste des calculateurs 30 connectés directement ou indirectement à l'unité de commande électronique pour lesquels une reprogrammation est requise. On détermine également un sous-ensemble de données de reprogrammation pour la reprogrammation de l'unité de commande électronique ainsi qu'un sous-ensemble de données de reprogrammation pour la reprogrammation de chaque calculateur dont la reprogrammation est requise, en fonction 35 des données de reprogrammation accompagnant la requête de reprogrammation. Au cours d'une huitième étape 18, on émet ensuite une sous-requête de reprogrammation à destination de chaque calculateur connecté à l'unité de commande 7 électronique dont la reprogrammation est requise par la requête de reprogrammation, REVENDICATIONS1. Procédé de commande d'une unité de commande électronique (1) de véhicule automobile comprenant au moins deux coeurs d'exécution et connectée à au moins un calculateur, à une mémoire commune (4) et à une mémoire de stockage (6) comprenant une requête de reprogrammation et des données de reprogrammation, l'unité de commande électronique et le au moins un calculateur étant alimentés par une batterie du véhicule automobile, le procédé comprenant les étapes suivantes : - on commande l'unité de commande électronique (1) de sorte qu'un premier ensemble de fonctions de passerelle soit exécuté par au moins un coeur d'exécution, - on lit la requête de reprogrammation accompagnée de données de reprogrammation dans la mémoire de stockage (6), - on détermine si une reprogrammation de l'unité de commande électronique (1) est requise, - si tel est le cas, on commande le au moins un coeur d'exécution exécutant le premier ensemble de fonctions de passerelle de sorte que ledit premier ensemble de fonctions de passerelle soit arrêté, et on commande le démarrage d'un deuxième ensemble de fonctions de passerelle sur au moins un coeur d'exécution et le démarrage de fonctions de reprogrammation sur au moins un coeur d'exécution différent du au moins un coeur d'exécution exécutant le deuxième ensemble de fonctions de passerelle, - lorsque le groupe motopropulseur du véhicule automobile est arrêté, - on transmet la requête de reprogrammation au deuxième ensemble de fonctions de passerelle, - on commande le deuxième ensemble de fonctions de passerelle de sorte à déterminer une sous-requête de reprogrammation accompagnée d'un sous-ensemble de données de reprogrammation pour la reprogrammation de l'unité de commande électronique (1) en fonction de la requête de reprogrammation et des données de reprogrammation, et - on commande la transmission de la sous-requête de reprogrammation et du sous-ensemble de données de reprogrammation l'accompagnant audit au moins un coeur d'exécution exécutant les fonctions de reprogrammation, 9 - on commande la reprogrammation de l'unité de commande électronique (1) en fonction de la sous-requête de reprogrammation et du sous-ensemble de données de reprogrammation l'accompagnant, - si une reprogrammation de l'unité de commande électronique (1) n'est pas 5 requise, on maintient le premier ensemble de fonctions de passerelle. 2. Procédé de commande selon la revendication précédente, dans lequel, si une reprogrammation de l'unité de commande électronique (1) est requise dans la requête de reprogrammation, on commande le deuxième ensemble de fonctions de passerelle de sorte à: 10 - déterminer une liste des calculateurs connectés directement ou indirectement à l'unité de commande électronique (1) pour lesquels une reprogrammation est requise, puis - déterminer une sous-requête de reprogrammation fonction de la liste des calculateurs à reprogrammer, 15 - déterminer un sous-ensemble de données de reprogrammation pour la reprogrammation de chaque calculateur dont la reprogrammation est requise en fonction des données de reprogrammation accompagnant la requête de reprogrammation, - émettre ensuite une sous-requête de reprogrammation à destination de chaque 20 calculateur connecté à l'unité de commande électronique (1) dont la reprogrammation est requise par la requête de reprogrammation, accompagnée du sous-ensemble de données de reprogrammation correspondant. 3. Procédé de commande selon la revendication 1, dans lequel, si une reprogrammation de l'unité de commande électronique (1) n'est pas requise dans la 25 requête de reprogrammation, on commande le premier ensemble de fonctions de passerelle de sorte à: - déterminer une liste des calculateurs connectés directement ou indirectement à l'unité de commande électronique (1) pour lesquels une reprogrammation est requise, puis 30 - déterminer une sous-requête de reprogrammation fonction de la liste des calculateurs à reprogrammer, - déterminer un sous-ensemble de données de reprogrammation pour la reprogrammation de chaque calculateur dont la reprogrammation est requise en 10 fonction des données de reprogrammation accompagnant la requête de reprogrammation, - émettre ensuite une sous-requête de reprogrammation à destination de chaque calculateur connecté à l'unité de commande électronique (1) dont la 5 reprogrammation est requise par la requête de reprogrammation, accompagnée du sous-ensemble de données de reprogrammation correspondant. 4. Procédé de commande selon l'une quelconque des revendications précédentes, dans lequel le premier ensemble de fonctions de passerelle comprend le deuxième ensemble de fonction de passerelle et au moins une fonction supplémentaire. /0 5. Procédé de commande selon la revendication 4, dans lequel une fonction supplémentaire comprend au moins une parmi une fonction de pare-feu, une fonction de diagnostic d'erreurs, une fonction de gestion de l'alimentation et une fonction d'odomètre.