Brevet FR3012898A1 — publié le 20150508

La présente invention se rapporte de manière générale au prototypage d'un système de contrôle d'équipements électroniques d'un véhicule, notamment automobile, et concerne plus particulièrement un procédé et un système de prototypage rapide d'un tel système. Un véhicule comporte de manière connue une unité de contrôle électronique d'un certain nombre de ses équipements électroniques de type calculateur, ci-après appelé ECU (« Electronic Control Unit » en langue anglaise). Il est connu d'utiliser les informations fournies par ces équipements pour mettre en oeuvre des fonctions du véhicules. Ainsi, par exemple, il est connu d'utiliser l'information de vitesse fournie par le compteur de vitesse pour adapter celle-ci automatiquement ou bien pour déclencher un verrouillage des portières au-delà d'une vitesse minimum prédéterminée. Pour ce faire, l'ECU récupère des données des équipements électroniques ou directement du véhicule, puis exécute un programme informatique de commande utilisant ces données. Il fournit alors en sortie une commande déterminée par ledit programme informatique de commande à l'un des équipements électroniques ou bien stocke une valeur de sortie dans une mémoire dite « vive » qui pourra être utilisée ultérieurement par ledit programme informatique de commande. A cette fin, l'ECU comprend un module de commande se présentant sous la 20 forme d'un processeur, une mémoire vive (« Random Access Memory » ou RAM en langue anglaise) et une mémoire morte (« Read Only Memory » ou ROM en langue anglaise). Le programme informatique de commande et les valeurs constantes qu'il utilise pour fonctionner sont stockés sous forme binaire dans la mémoire morte tandis que 25 les données variables utilisées par ledit programme informatique de commande sont stockées dans la mémoire vive. L'implémentation d'une nouvelle fonction par l'ECU nécessite de changer le programme informatique de commande stocké dans la mémoire morte. Une telle modification suppose donc d'écrire un nouveau programme informatique de commande 30 puis de le charger dans la mémoire morte, ce qui est long et coûteux, surtout s'il faut effectuer plusieurs modifications pour tester la nouvelle version du programme informatique de commande et charger le programme plusieurs fois dans la mémoire morte. Il est donc nécessaire de tester ce programme informatique de commande avant de le charger dans la mémoire morte. 35 Dans ce but, il est connu de réaliser un prototypage dit « rapide » permettant de récupérer les données entrantes reçues par l'ECU puis de les utiliser dans un outil de simulation externe qui simule la fonction à tester hors de l'ECU et renvoie une commande ou une valeur de sortie à l'ECU de sorte que celle-ci puisse respectivement l'exécuter ou la stocker. Un tel outil de simulation externe se présente typiquement sous la forme d'un outil de type ordinateur portable que l'on vient brancher sur l'ECU à l'aide d'un câble et qui comporte un outil de programmation informatique de simulation aisé à mettre en oeuvre pour simuler la fonction à tester tel que, par exemple, un outil de programmation graphique de type Matlab Simulink 0 ou Labview 0. Afin de récupérer les données entrantes reçues par l'ECU, il est nécessaire de 10 modifier l'adressage de la mémoire vive dans laquelle elles sont destinées à être stockées de sorte à les rediriger vers l'outil de simulation pour qu'il puisse les utiliser. Une telle modification de l'adressage nécessite de modifier le programme informatique de commande en lui ajoutant un correctif (« patch » en langue anglaise). Un tel ajout nécessite par conséquent un rechargement du programme dans la mémoire 15 morte de l'ECU, ce qui est là encore long et fastidieux et présente donc des inconvénients. L'invention a pour but de remédier au moins en partie à ces inconvénients en proposant une solution simple, rapide et efficace permettant de tester de nouvelles fonctions mises en oeuvre par une unité de contrôle électronique d'une pluralité 20 d'équipements électroniques d'un véhicule. A cette fin, l'invention concerne tout d'abord un procédé de prototypage rapide par un outil de simulation d'une fonction contrôlée par une unité de contrôle électronique d'une pluralité d'équipements électroniques d'un véhicule, notamment automobile, ladite unité de contrôle électronique comprenant un module de commande, une mémoire vive et 25 une mémoire morte, ladite mémoire morte comprenant au moins un programme informatique de commande comportant des instructions pour la commande d'au moins un équipement électronique du véhicule à partir d'au moins une donnée entrante provenant du véhicule, ladite mémoire vive étant divisée en au moins une première zone, comprenant au moins une première donnée déterminée par le programme informatique 30 de commande à partir de ladite donnée entrante et stockée à au moins une première adresse, et une deuxième zone, comprenant au moins une deuxième donnée stockée par l'outil de simulation à au moins une deuxième adresse, ledit procédé étant remarquable en ce que, le module de commande comprenant un sous-module de conversion d'adresse, il comprend les étapes de : 35 - requête de lecture, réalisée par le programme informatique de commande au module de commande, de la première donnée à la première adresse, - conversion, réalisée par le sous-module de conversion d'adresse, de la première adresse de la première donnée en la deuxième adresse de la deuxième donnée, - lecture, par le programme informatique de commande, de la deuxième donnée stockée à la deuxième adresse de la deuxième zone de mémoire vive. En lecture, le programme informatique de commande est uniquement autorisé à lire la deuxième donnée stockée à la deuxième adresse de la deuxième zone de mémoire vive lorsqu'il requière la lecture de la première donnée. Cela permet avantageusement à l'outil de simulation d'écrire la deuxième donnée dans la deuxième zone mémoire afin qu'elle soit utilisée par le programme informatique de commande à la place de la première donnée sans qu'il y ait besoin de recharger tout ou partie dudit programme informatique de commande dans la mémoire morte puisque il n'est pas nécessaire de modifier la première adresse en la deuxième adresse dans le programme informatique de commande. De préférence, le programme informatique de commande est en outre configuré pour écrire la première donnée à la première adresse de la première zone de mémoire vive. Ainsi, en écriture, le programme informatique de commande est uniquement autorisé à modifier la première donnée à la première adresse de la première zone de mémoire vive mais il ne peut modifier la deuxième donnée à la deuxième adresse de la deuxième zone de mémoire vive, que seul l'outil de simulation peut modifier. Le procédé selon l'invention permet de séparer la mémoire en une première partie réservée à l'écriture par le programme informatique de commande et en une deuxième partie réservée à la lecture par le programme informatique de commande, cela étant rendu possible par la conversion de la première adresse de la première donnée en la deuxième adresse de la deuxième donnée. Selon un aspect de l'invention, le procédé comprend une étape préliminaire de réception par le sous-module de conversion d'adresse de la deuxième adresse de la deuxième donnée et une étape d'établissement d'une correspondance entre la première adresse en ladite deuxième adresse reçue. Selon un autre aspect de l'invention, le procédé comprend les étapes préliminaires réalisées par l'outil de simulation de : - obtention, de la mémoire vive, de la donnée entrante provenant du véhicule ; - écriture d'une deuxième donnée à une deuxième adresse dans la deuxième zone de mémoire vive en fonction de la valeur de ladite donnée entrante ; et - envoi au sous-module de conversion d'adresse de la deuxième adresse de sorte qu'il convertisse la première adresse en la deuxième adresse lorsque le programme informatique de commande effectue une requête de lecture de la première donnée à la première adresse. L'invention concerne aussi un véhicule, notamment automobile, comprenant une pluralité d'équipements électroniques et une unité de contrôle électronique de ladite pluralité d'équipements électroniques, ladite unité de contrôle électronique comprenant un module de commande, une mémoire vive et une mémoire morte, ladite mémoire morte comprenant au moins un programme informatique de commande comportant des instructions pour la commande d'au moins un équipement électronique du véhicule à partir d'au moins une donnée entrante provenant du véhicule, ladite mémoire vive étant divisée en au moins une première zone, comprenant au moins une première donnée déterminée par le programme informatique de commande à partir de ladite donnée entrante et stockée à au moins une première adresse, et une deuxième zone, comprenant au moins une deuxième donnée stockée par l'outil de simulation à au moins une deuxième adresse, ledit véhicule étant remarquable en ce que le module de commande comprend en outre un sous-module de conversion d'adresse configuré pour, suite à une requête de lecture de la première donnée à la première adresse réalisée par le programme informatique de commande au module de commande, convertir la première adresse de la première donnée en la deuxième adresse de la deuxième donnée de sorte que le programme informatique de commande lise la deuxième donnée stockée à la deuxième adresse de la deuxième zone de mémoire vive. De préférence, le module de commande est configuré pour recevoir ladite deuxième adresse et, le sous-module de conversion d'adresse comprenant une table de correspondance, pour stocker dans ladite table de correspondance un lien de conversion entre la première adresse et ladite deuxième adresse reçue. L'invention concerne aussi un système pour le prototypage rapide par un outil de simulation d'au moins une fonction contrôlée par une unité de contrôle électronique d'une pluralité d'équipements électroniques d'un véhicule, ledit système comprenant un véhicule tel que présenté précédemment et un outil de simulation d'au moins une fonction dudit véhicule configuré pour : - obtenir, de la mémoire vive, au moins une donnée entrante provenant du véhicule ; - écrire une deuxième donnée à une deuxième adresse dans la deuxième zone de mémoire vive en fonction de la valeur de ladite donnée entrante ; et - envoyer au sous-module de conversion d'adresse la deuxième adresse de sorte qu'il convertisse la première adresse en la deuxième adresse lorsque le programme informatique de commande effectue une requête de lecture de la première donnée à la première adresse. D'autres caractéristiques et avantages de l'invention apparaîtront lors de la description qui suit faite en regard des figures annexées données à titre d'exemples non limitatifs et dans lesquelles des références identiques sont données à des objets semblables. - La figure 1 illustre schématiquement une forme de réalisation du système selon l'invention. - La figure 2 illustre un exemple de mémoire de l'unité de contrôle électronique. - La figure 3 illustre un mode de mise en oeuvre du procédé selon l'invention. Le système selon l'invention permet le prototypage rapide par un outil de simulation d'une fonction contrôlée par une unité de contrôle d'une pluralité d'équipements électroniques d'un véhicule, notamment automobile. L'exemple décrit en référence aux figures 1 à 3 concerne la simulation d'une fonction de verrouillage des portières d'un véhicule au-delà d'une vitesse prédéterminée dudit véhicule. Cet exemple n'est bien sûr pas limitatif de la portée de la présente invention qui peut s'appliquer à la simulation de toute fonction et tout équipement électronique de tout type de véhicule. Comme illustré à la figure 1, le système 1 comprend un véhicule 10, 20 notamment automobile, et un outil de simulation 20 d'au moins une fonction du véhicule 10. Le véhicule 10 comprend une pluralité d'équipements électroniques et une unité de contrôle électronique 14 de ladite pluralité d'équipements électroniques. Dans un but purement illustratif, le véhicule 10 comprend un premier 25 équipement électronique se présentant sous la forme d'un module de verrouillage des portières 13 et un deuxième équipement électronique se présentant sous la forme d'un compteur de vitesse 12. L'unité de contrôle électronique 14 comprend un module de commande 140, une mémoire vive 144 et une mémoire morte 146. 30 La mémoire morte 146 comprend un programme informatique de commande des équipements électroniques comportant, dans cet exemple, des instructions pour la commande du module de verrouillage des portières 13 à partir d'au moins une donnée entrante provenant du compteur de vitesse 12. Dans une autre forme de réalisation du système selon l'invention, on notera 35 que la donnée entrante ne provient pas nécessairement d'un deuxième équipement électronique. Par exemple, la donnée entrante peut être une valeur de couple du moteur du véhicule 10 qui peut être calculée indirectement, pour un moteur à combustion interne, à partir de la quantité d'air admise dans le moteur avec la quantité d'essence injectée. Le véhicule 10 peut en outre comprendre d'autres équipements électroniques (non représentés) commandés par le programme informatique de 5 commande. En référence à la figure 2, la mémoire vive 144 est divisée en au moins une première zone Z1 et une deuxième zone Z2. La première zone Z1 comprend une première donnée D1 déterminée, par exemple, par le programme informatique de commande à partir de ladite donnée entrante 10 provenant du compteur de vitesse 12 et stockée à une première adresse Al. La deuxième zone Z2 comprend une deuxième donnée D2 écrite par l'outil de simulation 20 à une deuxième adresse A2. Selon l'invention, le module de commande 140 comprend un sous-module de conversion d'adresse 142 configuré pour, suite à une requête de lecture de la première 15 donnée D1 à la première adresse Al réalisée par le programme informatique de commande, convertir la première adresse Al de la première donnée D1 en la deuxième adresse A2 de la deuxième donnée D2 de sorte que le programme informatique de commande lise la deuxième donnée D2 stockée à la deuxième adresse A2 de la deuxième zone de mémoire vive Z2. 20 A cette fin, le module de commande 140 est configuré pour recevoir la dite deuxième adresse A2 et, le sous-module de conversion d'adresse 142 comprenant une table de correspondance 145, pour stocker un lien de conversion entre la première adresse Al et ladite deuxième adresse A2 reçue dans ladite table de correspondance 145. 25 L'outil de simulation 20 est tout d'abord configuré pour obtenir au moins une donnée entrante provenant du véhicule 10 et stockée dans la mémoire vive 144. Dans l'exemple de mise en oeuvre décrit ci-après, l'outil de simulation 20 recueille les mesures de vitesse envoyées à l'unité de contrôle électronique 14 par le compteur de vitesse 12 et stockées dans la mémoire vive 144. 30 Ensuite, selon l'invention, l'outil de simulation 20 est configuré, d'une part, pour écrire une deuxième donnée D2 à la deuxième adresse A2 dans la deuxième zone de mémoire vive Z2 en fonction des données entrantes obtenues et d'autre part, pour envoyer au sous-module de conversion d'adresse 142 la deuxième adresse A2 de la deuxième donnée D2 de sorte qu'il convertisse la première adresse Al en la deuxième 35 adresse A2 lorsque le programme informatique de commande effectue une requête de lecture de la première donnée D1 à la première adresse Al. Afin d'exécuter ces différentes actions, l'outil de simulation 20 comprend un programme informatique de simulation. Le procédé selon l'invention va maintenant être décrit en référence à la figure 3 dans son application illustrative à la simulation d'une fonction de verrouillage des 5 portières d'un véhicule 10 au-delà d'une vitesse prédéterminée dudit véhicule 10. Cette fonction étant simulée par l'outil de simulation 20. Dans cet exemple, lorsque le véhicule 10 roule, le compteur de vitesse 12 envoie périodiquement les mesures de vitesse du véhicule 10 à l'unité de contrôle électronique 14 qui les stocke dans la mémoire vive 144. 10 L'outil de simulation 20 obtient alors périodiquement de l'unité de contrôle électronique 14, dans une étape El, les mesures de vitesses stockées dans la mémoire vive 144. L'outil de simulation 20 simule, via son programme informatique de simulation interne, la fonction de verrouillage. Pour ce faire, le programme informatique de simulation 15 compare, dans une étape E2, chaque mesure de vitesse obtenue de l'unité de contrôle électronique 14 à la vitesse prédéterminée de verrouillage des portières. Une commande de verrouillage des portières du véhicule 10 se présente, par exemple, sous la forme d'une valeur booléenne qui est égale à « FAUX» lorsque il n'est pas nécessaire de verrouiller les portières du véhicule 10 et à « VRAI » lorsque il est 20 nécessaire de verrouiller les portières du véhicule 10. Ainsi, lorsque la vitesse mesurée dépasse la vitesse prédéterminée de verrouillage, le programme informatique de simulation écrit, dans une étape E3, une commande de verrouillage des portières du véhicule 10 sous la forme d'une deuxième donnée D2 égale à « VRAI » à une adresse A2 dans la deuxième zone Z2 de la mémoire 25 vive 144. Le programme informatique de simulation envoie ensuite la deuxième adresse A2 de la deuxième donnée D2 au sous-module de conversion d'adresse 142 qui la réceptionne dans une étape E4 de sorte qu'il établisse, dans une étape E5, une correspondance entre une première adresse Al et la deuxième adresse A2 dans sa table 30 de correspondance 145. Le programme informatique de commande des équipements électroniques stocké dans la mémoire morte 146 de l'unité de contrôle électronique 14, comporte une instruction lui permettant de lire périodiquement la valeur d'une première donnée D1 à la première adresse Al de la mémoire vive 144, cette première donnée D1 correspondant 35 dans cet exemple à une commande de verrouillage des portières du véhicule 10. Pour ce faire, lorsqu'il exécute cette instruction, le programme informatique de commande envoie, dans une étape E6, une requête de lecture au module de commande 140, de la première donnée D1 à la première adresse Al. Le sous-module de conversion 142 du module de commande 140 convertit alors dans une étape E7, à l'aide de sa table de correspondance 145, cette première adresse Al de la première donnée D1 en la deuxième adresse A2 de la deuxième donnée D2 de sorte que le programme informatique lise, dans une étape E8, la deuxième donnée D2 stockée à la deuxième adresse A2 de la deuxième zone Z2 de mémoire vive 144 et verrouille alors les portières du véhicule 10. Le programme informatique de commande peut uniquement écrire la première donnée D1 à la première adresse Al de la première zone Z1 de mémoire vive 144 mais ne peut la lire puisque, lorsqu'il souhaite la lire, il est aiguillé vers la deuxième donnée D2 stockée à la deuxième adresse A2 de la deuxième zone Z2 de mémoire vive 144. Cela permet avantageusement à l'outil de simulation 20 d'écrire la deuxième donnée D2 dans la deuxième zone mémoire Z2 afin qu'elle soit utilisée par le programme informatique de commande à la place de la première donnée D1 sans qu'il n'y ait besoin de recharger tout ou partie dudit programme informatique de commande dans la mémoire morte 146 puisque il n'est pas nécessaire de modifier la première adresse en la deuxième adresse dans le programme informatique de commande. Le procédé selon l'invention permet ainsi avantageusement de séparer la mémoire en une première partie réservée à l'écriture par le programme informatique de commande et en une deuxième partie réservée à la lecture par le programme informatique de commande, cela étant rendu possible par la conversion de la première adresse de la première donnée en la deuxième adresse de la deuxième donnée. II est à noter, en outre, que la présente invention n'est pas limitée aux exemples décrits ci-dessus et est susceptible de nombreuses variantes accessibles à l'homme de l'art. Notamment, la nature de la fonction testée, la nature des équipements électroniques, l'organisation de la mémoire vive et de la mémoire morte etc. ne sauraient être interprétées comme limitatives. REVENDICATIONS1. Procédé de prototypage rapide par un outil de simulation (20) d'une fonction contrôlée par une unité de contrôle électronique (14) d'une pluralité d'équipements électroniques (12, 13) d'un véhicule (10), ladite unité de contrôle électronique (14) comprenant un module de commande (140), une mémoire vive (144) et une mémoire morte (146), ladite mémoire morte (146) comprenant au moins un programme informatique de commande comportant des instructions pour la commande d'au moins un équipement électronique (13) du véhicule (10) à partir d'au moins une donnée entrante provenant du véhicule (10), ladite mémoire vive (144) étant divisée en au moins une première zone (Z1), comprenant au moins une première donnée (D1) déterminée par le programme informatique de commande à partir de ladite donnée entrante et stockée à au moins une première adresse (A1), et une deuxième zone, (Z2) comprenant au moins une deuxième donnée (D2) stockée par l'outil de simulation (20) à au moins une deuxième adresse (A2), ledit procédé étant caractérisé en ce que, le module de commande (140) comprenant un sous-module de conversion d'adresse (142), il comprend les étapes de : - requête (E6) de lecture, réalisée par le programme informatique de commande au module de commande (140), de la première donnée (D1) à la première adresse (A1), - conversion (E7), réalisée par le sous-module de conversion d'adresse (142), de la première adresse (A1) de la première donnée (D1) en la deuxième adresse (A2) de la deuxième donnée (D2), - lecture (E8), par le programme informatique de commande, de la deuxième donnée (D2) stockée à la deuxième adresse (A2) de la deuxième zone (Z2) de mémoire vive (144). 2. Procédé selon la revendication 1, caractérisé en ce que le programme informatique de commande est en outre configuré pour écrire la première donnée (D1) à la première adresse (A1) de la première zone (Z1) de la mémoire vive (144). 3. Procédé selon l'une quelconque des revendications précédentes, caractérisé en ce qu'il comprend une étape préliminaire (E4) de réception par le sous-module de conversion d'adresse (142) de la deuxième adresse (A2) de la deuxième donnée (D2) et une étape (E5) d'établissement d'une correspondance entre la première adresse (A1) en ladite deuxième adresse (A2) reçue. 4. Procédé selon l'une quelconque des revendications précédentes, caractérisé en ce qu'il comprend les étapes préliminaires réalisées par l'outil de simulation de :- obtention, de la mémoire vive (144), d'au moins une donnée entrante provenant du véhicule (10) ; - écriture d'une deuxième donnée (D2) à une deuxième adresse (A2) dans la deuxième zone (Z2) de mémoire vive (144) ; et - envoi au sous-module de conversion d'adresse (142) de la deuxième adresse (A2) de sorte qu'il convertisse la première adresse (A1) en la deuxième adresse (A2) lorsque le programme informatique de commande effectue une requête de lecture de la première donnée (D1) à la première adresse (A1). 5. Véhicule (10) comprenant une pluralité d'équipements électroniques (12, 13) et une unité de contrôle électronique (14) de ladite pluralité d'équipements électroniques (12, 13), ladite unité de contrôle électronique (14) comprenant un module de commande (140), une mémoire vive (144) et une mémoire morte (146), ladite mémoire morte (146) comprenant au moins un programme informatique de commande comportant des instructions pour la commande d'au moins un équipement électronique (13) du véhicule (10) à partir d'au moins une donnée entrante provenant du véhicule (10), ladite mémoire vive (144) étant divisée en au moins une première zone (Z1), comprenant au moins une première donnée (D1) déterminée par le programme informatique de commande à partir de ladite donnée entrante et stockée à au moins une première adresse (A1), et une deuxième zone (Z2), comprenant au moins une deuxième donnée (D2) stockée par l'outil de simulation à au moins une deuxième adresse (A2), ledit véhicule (10) étant caractérisé en ce que le module de commande (140) comprend en outre un sous-module de conversion d'adresse (142) configuré pour, suite à une requête de lecture de la première donnée (D1) à la première adresse (A1) réalisée par le programme informatique de commande au module de commande (140), convertir la première adresse (A1) de la première donnée (D1) en la deuxième adresse (A2) de la deuxième donnée (D2) de sorte que le programme informatique de commande lise la deuxième donnée (D2) stockée à la deuxième adresse (A2) de la deuxième zone (Z2) de mémoire vive (144). 6. Véhicule selon la revendication précédente, caractérisé en ce que le module de commande (140) est configuré pour recevoir ladite deuxième adresse (A2) et, le sous-module de conversion d'adresse (142) comprenant une table de correspondance (145), pour stocker dans ladite table de correspondance (145) un lien de conversion entre la première adresse (A1) et ladite deuxième adresse (A2) reçue. 7. Système (1) pour le prototypage rapide par un outil de simulation (20) d'au moins une fonction contrôlée par une unité de contrôle (14) d'une pluralité d'équipements électroniques (12, 13) d'un véhicule (10), ledit système (1) comprenant un véhicule (10)selon l'une quelconque des revendications précédentes 5 et 6, et un outil de simulation (20) d'au moins une fonction dudit véhicule (10) configuré pour : - obtenir, de la mémoire vive (144), au moins une donnée entrante provenant du véhicule (12) ; - écrire une deuxième donnée (D2) à une deuxième adresse (A2) dans la deuxième zone (Z2) de mémoire vive (144) ; et - envoyer au sous-module de conversion d'adresse (142) la deuxième adresse (A2) de sorte qu'il convertisse la première adresse (A1) en la deuxième adresse (A2) lorsque le programme informatique de commande effectue une requête de lecture de la première donnée (D1) à la première adresse (A1).