Brevet FR2807531A1 — publié le 20011012

La présente invention est relative à un procédé de contrôle de la cohérence d'un ensemble de systèmes électroniques intégrés recevant et produisant des données incorporées ' des messages matérialisés par des groupes de signaux numériques se propageant sur au moins un multiplexé commun. On connaît des ensembles de systèmes électroniques de ce type, conçus notamment pour équiper des véhicules automobiles. Un tel véhicule comprend couramment plusieurs systemes assurant chacun l'exécution d'une prestation telle que la commande du moteur propulsant le véhicule, la gestion de la climatisation de l'habitacle, la gestion des liaisons du véhicule au sol (freinage, suspension...), la gestion de communications téléphoniques etc, etc... On a schématisé à la figure 1 du dessin annexé les moyens matériels constituent l'ensemble de ces systèmes: Ces moyens comprennent essentiellement des unités de commande électroniques ou "calculateurs" UCEr" chaque calculateur étant éventuellement connecté à des capteurs Cni et à actionneurs Ami, tous les calculateurs étant connectés à un meure bus B pour y émettre ou recevoir des informations convenablement multiplexées, en provenance ou à destination des autres calculateurs connectés au bus B. Ce multiplexage est obtenu notamment, comme cela est bien connu pour le bus CAN par exemple, en introduisant les informations en cause dans des messages matérialisés par des trames de signaux numériques comprenant notamment un "champ identificateur" de ladite trame et un "champ de données" réunissant couramment plusieurs informations de natures différentes (pression, température, etc...) contenues chacune dans une partie prédéterminée de ce champ. A titre d'exemple illustratif, le système S2 de "commande du moteur" comprend le calculateur UCE2, plusieurs capteurs C2i sensibles à des grandeurs telles que le régime du moteur, à combustion interne par exemple, la pression collecteur d'admission de ce moteur, la pression de l'air extérieur, la temperature de l'eau de refroidissement du moteur, celle de l' l'état de charge de la batterie, etc, etc..., et plusieurs actionneurs A2j. Le calculateur UCE2 est dûment programmé pour exécuter plusieurs fonctions de commande du moteur telles la régulation de ralenti, la régulation de la richesse du mélange air/carburant, le réglage de l'avance à l'allumage de ce melange et la recirculation des gaz d'échappement. Pour ce faire le calculateur UCE2 exploite des informations venues capteurs C2i précités et élabore des signaux de commande actionneurs A2j constitués par une vanne de commande d'air additionnel et une bobine d'allumage de bougie pour la fonction "régulation de ralenti", un injecteur de carburant pour la fonction "régulateur de richesse", la même bobine d'allumage pour la fonction "avance de l'allumage" et une vanne pour la fonction "recirculation de gaz d'échappement". Les autres "prestations" évoquées ci-dessus, "climatisation de l'habitacle", "liaison avec le sol", etc.. sont exécutées par des systèmes d'architecture analogues à celle présentée ci-dessus pour la commande du moteur. Tous ces systèmes mis en communication par un même bus B constituent un réseau multiplexé. On conçoit alors que plusieurs fonctions relevant de systèmes différents peuvent exploiter des informations issues de mêmes capteurs, par exemple, ce qui évite de coûteuses redondances dans la structure de l'ensemble des systèmes. L'utilisation d'un réseau multiplexé permet aussi de réduire de manière très importante la longueur des lignes électriques interconnectant les différents éléments de l'ensemble. Un tel ensemble multiplexé permet aussi la mise en place de fonctions non classiques et éventuellement complexes, faisant intervenir parfois plusieurs systemes et dites pour cette raison "transversales". A titre d'exemple illustratif et non limitatif, la perception de l'information "sac d'air (ou "airbag") déclenché" significative de ce que le véhicule a subi un choc, peut être traitée alors de manière à commander l'émission d'un appel au secours par un dispositif de téléphonie mobile embarqué dans le véhicule. Un ensemble de systèmes électroniques du type décrit ci- dessus est, sous la poussée progrès techniques, soumis à une constante évolution, tant dans sa phase de conception que dans ses versions successives postérieures à sa première mise sur le marché. Ces évolutions peuvent résulter, par exemple, de l'intégration dans le système de fonctions nouvelles, par exemple de fonctions dites de "deuxième niveau" telles que par exemple la fonction dite "ESP" visant à commander la stabilité du véhicule en virage à partir d'informations fournies par des fonctions de "premier niveau (anti-patinage, anti-blocage de roues, commande du moteur, etc...). Ces évolutions peuvent aussi résulter de la nécessité de modifier l'architecture de l'ensemble en fonction des prestations différentes offertes par les différents véhicules d'une gamme de tels véhicules, de l'appartenance d'un véhicule particulier à tel ou tel "segment" ou catégorie de véhicules ("normale" ou "supérieure", par exemple), voire aussi de modifications logicielles ou matérielles apportées à une architecture donnée par le remplacement d'un calculateur spécifique, fourni par un équipementier, par un calculateur originaire d'un autre équipementier. Ces évolutions peuvent toucher un système seulement, voire un élément ou une fonction de ce système. Il convient de pouvoir vérifier à tout moment la compatibilité des modifications apportées par une évolution particulière dudit système, dudit élément de systeme ou de ladite fonction, avec les caractéristiques des autres systèmes de l'ensemble, notamment au niveau des circulations d'informations qui s'opèrent dans le réseau multiplexé. La présente invention a précisément pour but de fournir un procédé de contrôle de cohérence d'un ensemble de systèmes électroniques, ce procédé étant mis en oeuvre à l'aide d'un outil logiciel qui permet d'automatiser ce contrôle, et donc d'éviter un contrôle par une classique analyse intellectuelle longue, pénible et donc coûteuse. La présente invention a aussi pour but de fournir un tel procédé qui permette de contrôler automatiquement cette cohérence à tout moment, pendant la phase de conception de l'ensemble par exemple, et d'indiquer éventuellement les corrections à apporter à l'ensemble pour assurer cette cohérence, ce qui permet une progression sûre de ladite phase de conception. On atteint ces buts de l'invention, ainsi que d'autres qui apparaîtront à la lecture de la description qui va suivre, avec procédé de contrôle de la cohérence d'un ensemble de systèmes électroniques intégrés recevant et produisant des données di incorporées à des messages Mk matérialisés par des groupes de signaux numériques se propageant sur au moins un bus multiplexé commun B, ce procédé étant remarquable en ce pour chacune des données di ainsi propagée, consommée par fonction f exécutée par une unité de commande électronique UCEj formant partie d'un (Sj) desdits systèmes électroniques, on recherche l'existence d'une fonction g exécutée une unité de commande électronique UCEi d'un système Si formant partie desdits systèmes de l'ensemble et produisant ladite donnée di et, si on trouve la fonction g, on identifie les systèmes (SXo, ... S_,r,) producteurs des messages Mk contenant la donnée di et les systèmes (SYO, ... SYn) récepteurs d'un desdits messages Mk contenant la donnée et c) on diagnostique une absence d'incohérence si (SXo,... S..) contient Si et (SYo, ... S,,) contient Si. Comme on le verra plus loin, le procédé suivant l'invention permet d'opérer à tout moment une vérification sure et automatique de la cohérence de l'ensemble de systèmes électroniques examiné et ceci quelles que soient les modifications éventuelles apportées successivement à cet ensemble. D'autres caractéristiques et avantages de la présente invention apparaîtront à la lecture de la description va suivre et à l'examen du dessin annexé dans lequel - la figure 1 est un schéma d'un ensemble de systemes électroniques déjà décrits en préambule de la présente description, la figure 2 est un organigramme des relations fonctionnelles et structurelles qui sont établies entre les différents éléments de l'ensemble de la figure 1, cet organigramme étant utile à la description du procédé suivant l'invention, et la figure 3 est un diagramme fonctionnel d'un "routage" d'informations utilisable dans l'ensemble de la figure 1. se réfère à la figure 2 du dessin annexé où l'organigramme représenté visualise les relations fonctionnelles et structurelles qui sont établies entre les différents éléments d'un ensemble de systèmes électroniques tels celui représenté à la figure 1. Sur cet organigramme il apparaît que ces relations sont organisées en deux branches parallèles qui vont chacune des systèmes aux données. En effet, quel que soit le système particulier considéré dans l'ensemble, on observe que ce système est mis en ceuvre à l'aide d'un calculateur dûment programmé pour exécuter ou plusieurs fonctions consommant des données pour en produire d'autres. ailleurs, observé du point de vue matériel, les systèmes apparaissent comme des émetteurs ou consommateurs de messages Mk, des trames Tk de données numériques par exemple, ces trames contenant des données. ensemble des systèmes électroniques doit être cohérent aussi bien sur le plan fonctionnel que sur le plan matériel. Suivant le procédé de vérification de cette cohérence selon présente invention, pour chaque donnée di consommée par fonction f exécutée par un calculateur UCEj formant partie de l'un (Sj) des systèmes, on recherche l'existence d'une fonction g, exécutée par l'un (UCEi) des calculateurs pour produire ladite donnée di. La cohérence exige évidemment que l'on trouve une telle fonction g, dans un système Si. Celle-ci étant, par hypothèse, trouvee, il faut encore vérifier que les trames contenant cette donnée circulent bien entre le ou les systèmes qui les produisent et le ou les systèmes qui les exploitent. Suivant l'invention on identifie alors les systèmes (SXo, ... Sx",) qui produisent les trames TE, considérées et les systèmes (Syo, ... Syn) qui consomment. L'ensemble est alors considéré comme cohérent, ou du moins dépourvu d'incohérence, si, à la fois on retrouve le système Si dans le groupe des systèmes producteurs (S-,o, ... S.) et le système S; dans le groupe des systèmes consommateurs (S.0, ... Syn) . Les trames Tk qui circulent sur le bus B (voir figure 1) peuvent passer directement d'un système Si producteur à un système Si consommateur. Dans ce cas les indices d'ordre des systèmes Si et Si évoqués ci-dessus sont liés par la relation j = i + 1 (1) relation dont la satisfaction permet alors de certifier l'absence d'incohérence diagnostiquée auparavant. On comprend cependant qu'une telle transmission directe de trames entre systèmes producteurs et systèmes utilisateurs oblige à prévoir un grand nombre de trames différentes dont la gestion est d'autant plus lourde. Pour éviter cet inconvénient, on peut prévoir un "routage" des données à transmettre par l'intermédiaire de trames existantes, ce routage étant illustré par le diagramme fonctionnel représenté à la figure 3. Sur ce diagramme, on a schématisé, à titre d'exemple seulement, une transmission de données entre un système S1 exécutant une fonction f1 productrice de la donnée et un système S"_1 exécutant une fonction f2 consommatrice la donnée. Plutôt que de prévoir transmission directe entre S1 et Sn_1, qui exigerait une trame spécifique, la donnée est transportée successivement par des trames T1, T2, .... Tn_2 existantes, transmettant normalement des données entre les systèmes S1 et S2, S2 et ., Sn-2 et S,-1. Dans ce cas un système émetteur Si et système consommateur Sj ont des indices d'ordre i et j qui sont liés par la relation i A titre d'exemple illustratif et non limitatif, on pourra utiliser à cet effet le langage de requête SQL, bien connu de l'homme de métier. Lorsqu'on met en oeuvre un tel procédé pour vérifier la cohérence d'une architecture particulière d'un ensemble de systèmes électroniques embarqués dans un véhicule automobile par exemple, on doit tenir compte de ce que cet ensemble évolue constamment pour s'adapter aux progrès techniques rapides de l'industrie automobile. Comme on l'a indiqué en préambule de la présente description, l'architecture d'un tel ensemble évolue alors constamment, tant pendant la phase de conception de l'ensemble, qu'après la première commercialisation du véhicule. Cette évolution peut concerner un ou plusieurs systèmes ou parties de systèmes, placés sous la responsabilité de personnes différentes. Il est évidemment important et nécessaire qu'une personne qui modifie le système ou la partie de systeme dont elle est responsable, puisse s'assurer que cette modification ne perturbe pas le fonctionnement de l'ensemble des systèmes. Une telle perturbation est en effet possible étant donné les multiples échanges de données qui s'opèrent entre ces systèmes, intégrés dans un réseau multiplexé. Comme on l'a vu plus haut, pour s'assurer du maintien de la cohérence de l'ensemble, les personnes responsables évoquées ci-dessus disposent d'une base de données intégrant toutes les informations permettant de décrire structurellement et fonctionnellement l'ensemble, ces informations concernant les données manipulées, les contraintes sur ces données (valeur maximum ou minimum d'une grandeur par exemple) l'architecture de l'ensemble, les véhicules concernés, les "segments" auxquels appartiennent ces véhicules, les systèmes, leurs fonctions, les calculateurs, les liens entre données et trames, entre systèmes et trames, entre fonctions et données, entre architecture, systèmes et calculateurs, etc, etc... Ces informations sont enregistrées dans la base moyen de "tables" correspondantes, intitulées "architecture", "véhicules", "segments", "systèmes", "fonctions"..., données "constructeur", données "fournisseur", ... "liens données trames", "liens données- fonctions", "liens systèmes -données", "liens systèmes-calculateurs", etc, etc.... Chaque responsable d'un système ou d'une partie de système est ainsi également responsable de la mise à j d'un groupe de tables associées au système ou à ladite partie du système. En cas de modification, les tables correspondantes sont mises à jour et ces tables servent à leur tour à mettre à jour la base de données. Le langage de requête évoqué '-dessus permet alors d'interroger la base mise à jour de manière à vérifier la satisfaction ou la non satisfaction des regles de cohérence posées ci-dessus. En cas de non satisfaction des règles, le logiciel en diagnostique les causes pour permettre aux personnes responsables d'y porter remède. I1 apparaît maintenant que la présente invention permet bien d'atteindre le but fixé, à savoir permettre la réalisation automatique d'un contrôle de cohérence d'un ensemble de systèmes électroniques, aussi bien en phase de conception de celui-ci qu'en phase d'exploitation, et ceci après toute modification affectant la structure ou le fonctionnement de l'ensemble. Bien entendu l'invention n'est pas limitée mode de réalisation décrit et représenté qui n'a été donné qu'à titre d'exemple. C'est ainsi que l'invention est applicable dans toute industrie à la vérification de la cohérence de tout ensemble de systèmes électroniques multiplexés, quel que soit le type réseau utilisé pour le multiplexage, le réseau CAN évoqué ' dessus pouvant être remplacé par un réseau VAN, par exemple De même les messages transportant les informations circulant dans le réseau pourraient être constitués autrement que par des trames d'informations numériques, par exemple par des intervalles de temps définis statiquement dans le cas d'un bus TDMA (de l'anglais Time Division Multiple Access) c'est-à- dire un pour lequel l'échange entre deux calculateurs se fait dans intervalle de temps défini à l'avance entre les deux calculateurs, ou encore par des plages de fréquences pour des média de type FDMA (de l'anglais Frequency Division Multiple Access) c'est-à-dire des média pour lesquels l'échange de données fait à des plages de fréquences convenues à l'avance entre les deux calculateurs. REVENDICATIONS 1. Procédé de contrôle de la cohérence d'un ensemble de systèmes électroniques intégrés recevant et produisant des données (di) incorporées à des messages (Mk) matérialisés par des groupes de signaux numériques se propageant sur au moins un bus multiplexé commun (B), procédé caractérisé en ce que, pour chacune des données (di) ainsi propagées, consommée par une fonction (f) exécutée par une unité de commande électronique (UCEj) formant partie 'un (Sj) desdits systèmes électroniques, a) on recherche l'existence d'une fonction (g) exécutée par une unité de commande électronique (UCEi) d'un système (Si) formant partie desdits systèmes de l'ensemble et produisant ladite donnée et, si on trouve la fonction (g), b) identifie les systèmes (Sxo, ... SX,) producteurs d'un des messages (Mk) contenant la donnée (di) et les systèmes (S,,o, ... Syn) récepteurs d'un desdits messages (Mk) contenant la donnée (di), et c) diagnostique une absence d'incohérence si (Sxo.... Sx") contient (Si) et (Syo, ...Sy") contient (Sj) . 2. Procédé conforme à la revendication 1, appliqué à un ensemble de systèmes électroniques entre lesquels les messages (Mk) sont éventuellement routés à travers une suite de systèmes intermédiaires (Si, ... Sj), entre le système producteur (Si et le système consommateur (Sj), caractérisé en ce que les indices d'ordre (i) et (j) des systèmes ( -) et (Sj) sont tels que j > i. 3. Procédé conforme à la revendication 2, appliqué a un ensemble de systèmes électroniques dans lequel les messages (MO ne sont pas routés à travers des systèmes intermédiaires, caractérisé en ce que les indices d'ordre (i) et (j) des systèmes (Si) et (Sj) sont tels que : j = i + 1. 4. Procédé conforme à l'une quelconque des revendications 1 à 3, caractérisé en ce que lesdits messages (M#- j prennent chacun forme d'une trame (TK) de signaux numériques comprenant champ identificateur de la trame et un champ de données contenant une ou plusieurs données (di) disposées dans des parties prédéterminées dudit champ de données, chacun des systèmes de l'ensemble sélectionnant les trames contenant des données exploitées dans ledit système.