« Composant électronique à réponse déterministe »
La présente invention concerne les composants électroniques destinés à évoluer dans un environnement informatique, permettant l'échange de données et la communication, de façon déterministe, entre différents éléments de l'environnement.
Les systèmes électroniques de communication et de contrôle sont de plus en plus complexes. Une voiture actuelle peut par exemple comporter jusqu'à soixante-dix unités de contrôle électroniques inter-opérantes. Il existe à présent au total près de trois cents protocoles de communication différents.
Face à ces exigences d'interopérabilité et cette complexité, les utilisateurs ont cherché à avoir un standard unique.
La plupart des protocoles de communication intègrent à la fois un protocole de communication, ou langage, et un support physique de transmission. Ces protocoles sont ainsi très dépendants du moyen utilisé et de l'application logicielle visée, et sont incapables de prendre en compte un changement, tel qu'un besoin d'augmentation de bande passante ou de diversification du mode de transmission, par exemple fîlaire, sans-fil, optique ou par courant porteur en ligne.
Les protocoles actuels peuvent ainsi difficilement répondre aux exigences des utilisateurs, notamment suivre le rythme accéléré de sortie de nouveaux produits et applications logicielles sur le marché et la nécessité d'intégrer des éléments hétérogènes pour constituer un environnement compétitif.
Dans le contexte multi-protocole, les architectures distribuées sont de plus en plus utilisées. Ces architectures consistent à mettre en réseau des calculateurs et des capteurs.
Les utilisateurs ont également essayé d'externaliser leurs développements et de rechercher des solutions de type « commercial off-theshelj "» (COTS), c'est-à-dire des solutions déjà disponibles sur le marché pour remplacer leurs développements internes spécifiques.
Il est connu de la demande de brevet US 2006/036772 de proposer un logiciel médiateur évoluant dans une architecture distribuée et communiquant avec un processeur hôte par le biais de modules d'interface utilisant des processeurs logiciels. Des créneaux
temporels prédéfinis et non modifiables sont imposés pour les échanges entre le processeur hôte et le logiciel médiateur, en utilisant une horloge synchronisée entre ces derniers.
La demande WO 00/03521 décrit une interface Ethernet utilisant des modules logiciels.
La demande WO 2004/059505 propose une méthode logicielle de partage de données stockées dans une base de données. Différents programmes logiciels peuvent accéder à la base de données.
Ces solutions ne permettent pas d'interagir de manière universelle avec les différents protocoles de communication existants tout en donnant la possibilité de ti-ansmettre, de manière autonome, paramétrable et déterministe, toutes les données issues des différents flux d'un environnement. Les solutions logicielles doivent notamment gérer de nombreuses interruptions lors de l'exécution des programmes, ce qui empêche d'obtenir des réponses déterministes.
Il existe un besoin pour disposer d'un composant électronique capable d'évoluer dans un environnement distribué et de jouer le rôle d'une passerelle entre différents éléments de l'environnement utilisant des protocoles de communication différents, tout en fournissant des réponses déterministes à des requêtes provenant de ces éléments.
L'invention répond à ce besoin grâce à un composant électronique à modules de communication supervisés, le composant comportant :
- au moins deux modules de communication fonctionnant en parallèle, et
- un superviseur dépourvu de microprocesseur,
chaque module de communication comportant un étage d'interfaçage avec le superviseur permettant à ce dernier d'utiliser un format de données commun à l'ensemble des modules, le superviseur étant configuré pour gérer de façon déterministe l'accès à une base de données, en fonction d'une table de configuration et de requêtes de lecture et/ou d'écriture de données provenant des modules de communication.
Par .« de façon déterministe », il faut comprendre que le composant garantit de toujours fournir, pour une même requête, une réponse dans un temps maximum déterminé au préalable.
Par « dépourvu de microprocesseur », il faut comprendre que le superviseur n'exécute aucun programme informatique et ne contient pas de système d'exploitation.
L'invention fournit un opérateur médiateur, « middleware » en anglais, de communication temps réel et multi-protocole, jouant le rôle d'une passerelle entre des éléments hétérogènes d'un environnement extérieur utilisant des protocoles de communication différents. Le composant selon l'invention s'inscrit dans un environnement distribué, permettant l'échange de données entre ces différents éléments avec des performances temps réel garanties.
L'invention permet aux utilisateurs de disposer d'une solution modulaire, universelle, simple, adaptable et sécurisée, capable de s'intégrer dans leurs environnements existants, afin de simplifier la gestion des flux de données et les échanges de données dans ces environnements. Cela conduit à la réduction de leurs temps de développement et de validation.
L'invention permet à l'utilisateur de simplifier les développements d'environnements complexes en faisant abstraction de la communication, c'est-à-dire qu'il peut développer l'application désirée sans se préoccuper des aspects de communication nécessaires à son bon fonctionnement. Les aspects de communication sont notamment dissociés du mode de transmission des données, et l'application devient indépendante du protocole de communication utilisé dans l'environnement au sein duquel évolue l'application. L'utilisateur peut ainsi réutiliser facilement des applications déjà développées, et faire le lien entre le passé et le futur en étant capable de fonctionner aussi bien avec d'anciens protocoles de communication qu'avec des nouveaux.
Le composant selon l'invention permet la gestion facilitée de modules de communication, correspondant par exemple à la liaison avec une application de l'environnement et/ou permettant de piloter des entrées/sorties physiques et/ou d'échanger des informations avec d'autres applications par le biais d'un ou de plusieurs réseaux, par tout moyen de transmission, par exemple filaire, sans-fil, optique, ou par courant porteur en ligne.
Le composant selon l'invention permet de gérer l'accès aux données, indépendamment de leur endroit de production, éléments de l'architecture ou modules de communication du composant selon l'invention, et de garantir la mise à disposition des données à l'environnement dans un temps maximum préalablement déterminé, pour un environnement donné. Le superviseur permet de gérer des accès concurrents à la base de données, de manière sécurisée et déterministe.
Le composant est avantageusement intégré dans un environnement cible sans qu'il soit nécessaire de programmer de nouvelles lignes de code informatique. Le composant est capable de s'adapter à tout type de système d'exploitation, à tout type de bus de communication de carte informatique, par exemple pour la liaison avec un processeur exécutant une application, et à tout type de protocole de communication.
Le composant selon l'invention ne définit pas un nouveau protocole de communication et est différent d'un bus de communication propriétaire.
Le composant selon l'invention n'impose aucune contrainte temporelle aux éléments de l'environnement, par exemple des processeurs exécutant des applications, les différentes tâches effectuées par le composant, en réponse aux requêtes de lecture et/ou d'écriture de données des modules de communication, n'étant pas assujetties à l'allocation de créneaux temporels. Ces tâches sont séquencées par passage de jetons, ou « tokens » en anglais, c'est-à-dire que le composant est configuré pour passer la main à une tâche suivante lorsque la tâche courante est terminée. Les événements n'ont pas besoin d'être datés pour réaliser lesdites tâches.
Le composant selon l'invention, fournissant une réponse déterministe garantissant la maîtrise des temps de propagation des signaux et les latences de transmission des données, et ainsi leur temps de traitement, procure un haut niveau de sécurité et est particulièrement adapté pour des applications critiques, s'intégrant notamment dans des environnements destinés à l'aéronautique ou à la défense, où ce type de réponse est primordial. Cette caractéristique de prédictibilité est quasiment impossible à atteindre avec les solutions logicielles connues, dites « en couche », et est de plus en plus requise dans les démarches de certification des environnements de niveaux de sécurité critiques.
Composant électronique
Le composant selon l'invention est avantageusement réalisé à l'aide d'un ou plusieurs composants logiques programmables, de préférence reprogrammables. Le composant peut être réalisé à l'aide d'un ou plusieurs composants de type FPGA (réseau de portes programmables in situ ou « field-programmable gâte array » en anglais) ou CPLD (circuit logique programmable complexe ou « complex programmable logic device » en anglais) ou ASIC (« application spécifie integrated -circuit » en anglais).
Le composant selon l'invention se fonde ainsi sur des éléments matériels tels que des portes logiques et des machines d'états. Ces éléments sont avantageusement
programmés en langage VHDL (« VHSIC Hardware Description Language »). A la différence des microprocesseurs ou microcontrôleurs, les composants logiques programmables, de type FPGA notamment, sont intrinsèquement parallèles, comportant des matrices de millions de transistors, et sont ainsi parfaitement adaptés à la réception et à l'émission simultanée de plusieurs flux de données. Ils permettent en outre de rendre le composant selon l'invention beaucoup plus robuste aux attaques informatiques, dites « cyber attaques », les logiciels malveillants, ciblant des applications sur microprocesseur, étant le plus souvent inopérants sur un composant logique programmable.
Le composant peut comporter un séquenceur. Ce séquenceur peut être externe au superviseur, étant piloté par le superviseur, ou intégré au superviseur II permet d'organiser les transmissions de requêtes et de données provenant en parallèle des modules de communication par ordre de priorité. Le séquenceur permet de garantir les latences de transmission de données et les temps d'accès aux données, et d'éviter les collisions entre les différentes requêtes en assurant la gestion de requêtes concurrentes.
Le composant comporte avantageusement une base de temps configurée pour adjoindre à une donnée son heure de réception par le module de communication lors d'une requête d'écriture dans la base de données. Cette heure de réception peut être lue avec la donnée lors d'une requête de lecture. Ceci permet à l'environnement de gérer une durée de validité pour chaque donnée, selon le besoin, et de déterminer notamment si une donnée est devenue obsolète.
La base de temps peut utiliser une heure système précise à 1 με, codée sur 52 bits. Elle est avantageusement disponible à tout moment. Elle permet de disposer d'un référentiel de temps commun pour tous les modules de communication du composant.
Le paramétrage du composant peut être réalisé par un outil d'environnement logiciel appelé configurateur. Le paramétrage peut être réalisé à partir de fichiers décrivant les flux d'échanges de données ainsi que leur type dans l'environnement, par exemple quel élément de l'environnement produit quelle donnée, et quelle donnée est consommée par quel(s) élément(s).
Données et base de données
Les données gérées par le composant selon l'invention sont avantageusement identifiées de façon unique par un identifiant.
Les données écrites dans la base de données peuvent contenir plusieurs paramètres encapsulés, notamment l'identifiant de la donnée, l'heure associée à cette donnée par la base de temps et le résultat d'un contrôle de redondance cyclique sur la donnée, créant ainsi une métadonnée. Le contrôle de redondance cyclique permet la validation de l'intégrité de la donnée lors de sa lecture. Si la donnée est altérée, le superviseur est configuré pour la lire dans la base de données, et pour envoyer une notification d'erreur au module de communication en même temps que ladite donnée altérée.
L'encapsulation d'une donnée est de préférence inséparable de celle-ci, et ne peut être retirée que lors d'un accès en lecture.
Les données peuvent être enregistrées dans la base de données dans un format dont un exemple non limitatif est illustré sur le tableau suivant, comportant l'identifiant (« identifîer_data »), l'heure associée à la donnée (« date »), la donnée elle-même (« data ») et le résultat du contrôle de redondance cyclique (« crc ») :
L'adresse de la donnée (« first_address ») est avantageusement fournie par la table de configuration.
Le composant communique avantageusement avec la base de données par le biais d'un double port d'accès (ou « dual port » en anglais), permettant d'avoir des accès indépendants à la base de données pour la donnée et son adresse, afin de gérer les accès concurrents à la base de données et d'éviter les pertes de données dans le cas de requêtes concurrentes.
Le composant peut comporter la base de données. Dans une variante, la base de données est déportée à un autre endroit de l'environnement, et est reliée au composant, notamment par le biais d'un double port d'accès et d'une interface dédiée afin que le composant puisse piloter la base de données.
Les adresses des données dans la base de données sont avantageusement gérées uniquement par le superviseur, en fonction de la table de configuration, ce qui permet d'éviter les écrasements intempestifs de données.
L'accès à la base de données se fait avantageusement sous la forme d'une interface de type requête/donnée, c'est-à-dire que l'accès se fait par une requête de lecture ou d'écriture et par une trame contenant ou recevant la donnée selon le sens de la requête.
Les transferts vers et depuis la base de données peuvent être définis par un algorithme de type DTDMA (« dynamic time division médium access » en anglais) qui alloue un temps maximum de transfert pour chaque accès. Cet algorithme assure une bande passante mimmale entre le superviseur et la base de données. Contrairement à d'autres algorithmes connus, tout en respectant le déterminisme, il permet d'optimiser les débits ; par exemple si un module de communication est seul à vouloir accéder à la base de données, il peut utiliser la totalité de la bande passante.
Le stockage des données dans la base de données peut être géré selon différents modes d'empilage, déterminés par un paramètre de la table de configuration, par exemple le mode « premier entré, premier sorti » (ou FIFO, « first in first out » en anglais), ou « dernier entré, premier sorti » (ou LIFO, « last in, first out » en anglais).
Les caractéristiques de la base de données sont avantageusement choisies selon les performances désirées et le coût des technologies, afin de s'adapter à chaque environnement.
Le support physique de la base de données peut être une mémoire vive statique à double port (SRAM dual port, « static random access memory » en anglais), dans le cas où le composant comporte la base de données, ou, dans le cas où la base de données est externe au composant, dynamique (SDRAM, « Synchronous Dynamic Random Access Memory » en anglais), par exemple une mémoire DDR (« double data rate » en anglais).
La base de données peut avoir une mémoire de 32, 64 ou 128 bits, une capacité de 1 Mo ou plus, et une fréquence de 125, 200 ou 333 MHz ou plus.
Table de configuration
La table de configuration définit notamment les données contenues dans la base de données et leurs propriétés.
La table de configuration peut contenir par exemple au moins 2048 données de 64 bits chacune. L'identifiant de la donnée à gérer permet d'y accéder.
La table de configuration peut être générée par le configurateur, à partir de la définition de l'environnement et des données par l'utilisateur. Pour ce faire, une interface graphique peut être utilisée pour définir graphiquement la topologie de l'environnement, ainsi que l'ensemble des données. Dans une variante, des fichiers XML (« langage de balisage extensible » ou « extensible markup language » en anglais) peuvent être utilisés.
La table de configuration peut comporter les informations de configuration suivantes :
- l'adresse de la donnée dans la base de données (« first_address »),
- la taille de la donnée à écrire ou lire dans la base de données (« data_size »),
- le nombre de données ayant le même identifiant, empilables dans la base de données (« data_number »),
- le mode de gestion de l'empilage dans la base de données (« stack jnode »),
- le pointeur (« riting_current__number ») sur la dernière donnée de taille « data_number » écrite dans la base de données, ce pointeur étant avantageusement mis à jour à chaque lecture ou écriture dans la base de données,
- le pointeur (« reading__current_number ») sur la dernière donnée de taille « dataj umber » lue dans la base de données, ce pointeur étant avantageusement mis à jour à chaque lecture ou écriture dans la base de données,
- un indicateur (« producer ») des ports d'accès pouvant produire la donnée à écrire dans la base de données, codé sur 8 bits avec un bit par port (bit égal à 0 : le port n'est pas associé à l'identifiant de la donnée, bit égal à 1 : le port est associé à l'identifiant de la donnée),
- un indicateur (« consumer ») des ports d'accès pouvant consommer la donnée lue dans la base de données, codé sur 8 bits avec un bit par port (bit égal à 0 : le port n'est pas associé à l'identifiant de la donnée, bit égal à 1 : le port est associé à l'identifiant de la donnée),
- un bit indiquant si la donnée à gérer doit être distribuée à un autre élément de l'environnement ou non (« remote consumer »),
- un bit indiquant si les modules consommateurs de la donnée doivent être prévenus de récriture de ladite donnée ou non (« consumption_enable »), et
- un bit indiquant si les modules producteurs de la donnée doivent être prévenus de la lecture de ladite donnée ou non (« consumption acknowledge »).
Ces informations sont illustrées dans le tableau suivant :
Le composant peut comporter la table de configuration. Dans une variante, la table de configuration est déportée à un autre endroit de l'environnement, et est reliée au composant, notamment par le biais d'un port d'accès. La table de configuration peut être stockée sur une mémoire de type Flash ou SRAM ou SDRAM.
La table de configuration est de préférence une entité distincte de la base de données.
Le temps de réponse du composant à chaque requête provenant des modules de communication peut être calculé, par le biais d'un logiciel dédié par exemple, à partir des informations de la table de configuration, notamment à partir de la longueur des trames de données correspondant à la requête.
Superviseur
Le superviseur est avantageusement configuré pour fonctionner en temps réel. Il permet de faire le lien, en temps réel, entre la mémoire locale de l'environnement, qui stocke les données, et les événements provenant des différents modules de communication.
Le superviseur ne dépend de préférence pas du support physique de la base de données, et est configuré indépendamment de ce dernier.
Le superviseur reçoit de préférence les requêtes de l'environnement et permet de faire fonctionner le composant selon l'invention quel que soit le ou les systèmes d'exploitation utilisé par l'environnement et les bus de communication utilisés.
Le superviseur peut être relié à une application logicielle tierce en utilisant une interface de programmation (ou API, « application programming interface » en anglais), comportant un ensemble de commandes pour permettre au composant selon l'invention d'exécuter diverses instructions. Cet ensemble de commandes comporte notamment des commandes élémentaires d'écriture et de lecture des données, et des commandes gérant la configuration de l'environnement, les événements du composant selon l'invention, tels que
le contrôle de ce dernier, par exemple l'accès aux informations sur son état et aux informations d'acquittements de commandes, et les services offerts par le composant, par exemple son démarrage et son arrêt après sa configuration, ou l'accès à l'heure système.
L'interface de programmation peut être située dans un processeur hôte auquel est relié le composant selon l'invention, notamment par un module de communication.
L'interface de programmation peut comporter entre 8 et 15 commandes, notamment 10 commandes. Cette interface est avantageusement suffisamment générique pour que l'implantation du superviseur puisse être réalisée pour tout type de système d'exploitation.
Le superviseur est de préférence entièrement paramétrable afin de s'adapter à l'hétérogénéité des modules qui lui sont connectés.
Le superviseur est avantageusement fonctionnellement invariant au sein d'un environnement ou d'un composant à un autre. La table de configuration est avantageusement configurée pour évoluer selon l'application désirée, ce qui permet l'invariance du superviseur. Le superviseur est en outre avantageusement indépendant du nombre de modules de communication présents dans le composant et de la nature de ces derniers. L'évolutivité du composant est ainsi possible en fonction des besoins de l'environnement.
Le superviseur est avantageusement configuré pour vérifier la validité d'une requête de lecture et/ou d'écriture d'une donnée par le biais de l'identifiant associé à ladite donnée. Le superviseur peut ainsi connaître, par le biais de la table de configuration, les propriétés de chaque donnée grâce à son identifiant. Le superviseur peut ainsi être configuré pour vérifier la taille de la donnée lors de chaque requête de lecture ou d'écriture.
Le superviseur peut être configuré, après l'écriture et/ou la lecture d'une donnée dans la base de données, et en fonction de la table de configuration, pour transmettre une notification au module de communication dont provient la requête de lecture et/ou d'écriture de ladite donnée, notamment une notification de succès ou d'erreur.
Le superviseur peut avoir accès à un registre de commandes, permettant de contrôler le composant via l'interface de programmation. Les commandes du registre de commandes gèrent notamment l'initialisation et l'arrêt du composant.
Le superviseur peut avoir accès à un registre de contrôle (ou « monitoring » en anglais), contenant notamment des informations sur l'état du composant et des rapports d'erreur sur des requêtes précédentes. Cela permet la mise en œuvre de mécanismes de s reté de fonctionnement, permettant d'utiliser le composant dans des applications critiques soumises à des impératifs de certification.
Modules de communication
Chaque module de communication du composant selon l'invention comporte avantageusement, en outre, un étage d'interfaçage vers l'extérieur, avec un élément de l'environnement, et un étage de liaison entre cet étage d'interfaçage vers l'extérieur et l'étage d'interfaçage avec le superviseur, permettant la gestion et la transmission des requêtes de lecture et/ou d'écriture de données. Les étages d'interfaçage des modules de communication permettent le traitement de données ayant des formats différents car provenant de différents éléments d'un même environnement, par exemple le bus avionique et le radar d'un drone.
Les modules de communication peuvent être réutilisés d'un environnement à l'autre ou pour diverses applications. Une bibliothèque de modules peut ainsi être créée. Un module déjà existant peut également être adapté pour un autre but ou une autre application.
Les modules de communication peuvent être configurés pour transmettre les requêtes de lecture et/ou d'écriture de données au superviseur par le biais de ports d'accès. Ces ports d'accès sont avantageusement identiques quel que soit le module de communication auquel ils sont reliés, et peuvent être contrôlés par le superviseur.
Les requêtes de lecture et/ou d'écriture proviennent de préférence de sollicitations de l'environnement reçues par les modules de communication, notamment une sollicitation d'au moins une application logicielle exécutée sur un processeur de l'environnement, notamment un microprocesseur, et/ou d'une entrée/sortie physique de l'environnement, notamment une entrée/sortie audio et/ou vidéo, et/ou d'un réseau de l'environnement, notamment un CAN, un réseau TCP-IP, un réseau utilisant les normes ARTNC 429, AFDX, MIL STD 1553, ou FlexRay, ou le système Ethercat ou Powerlink.
Processeur
Au moins l'un des modules de communication du composant selon l'invention peut être un module processeur, permettant notamment la liaison avec un processeur de l'environnement exécutant une application logicielle.
Ce module processeur peut transmettre au superviseur une requête et des données lors d'une requête d'écriture dans la base de données. H peut transmettre à l'environnement les données lors d'une lecture, et la notification de succès du superviseur le cas échéant.
Le module processeur peut être relié à au moins un bus de communication du processeur, ce bus étant notamment un bus utilisant le standard PCI (« peripheral component interconnect ») ou PCI Express, ou un bus VME (« VERSA module eurocard »).
Le module processeur comporte avantageusement un étage d'interfaçage avec ledit bus de communication, permettant de réaliser la connexion physique avec le bus et de recevoir les requêtes, et un étage de liaison entre cet étage d'interfaçage et l'étage d'interfaçage avec le superviseur, permettant la gestion des requêtes reçues et leur transmission au superviseur via l'étage d'interfaçage avec le superviseur, afin de préparer les trames de données pour leur transfert vers et depuis la base de données.
Entrée/sortie
Au moins l'un des modules de communication peut être un module entrée/sortie, permettant notamment d'établir une liaison avec une entrée/sortie physique de l'environnement. Les entrées/sorties physiques de l'environnement peuvent être du type analogique, discret, RS232 ou PT100.
Le module entrée/sortie est avantageusement autonome, c'est-à-dire qu'une fois paramétré, il génère les requêtes et les transmet au superviseur sans qu'aucun processeur n'effectue un quelconque traitement.
Le module entrée/sortie peut comporter un étage d'interfaçage avec au moins une entrée/sortie physique de l'environnement, permettant de réaliser l'accès physique à cette entrée/sortie et de transmettre ou recevoir les données de l'étage d'interfaçage avec le superviseur. Cet étage d'interfaçage avec au moins une entrée/sortie physique de l'environnement peut être configuré pour accéder à un convertisseur analogique/numérique connecté à l' entrée/sortie physique.
Le module entrée/sortie peut comporter en outre un étage de liaison entre cet étage d'interfaçage et l'étage d'interfaçage avec le superviseur, permettant de générer les requêtes dans le format adéquat à partir du paramétrage du module et de les transmettre à l'étage d'interfaçage avec le superviseur.
Réseau
Au moins un des modules de communication peut être un module réseau, permettant notamment l'échange de données entre le composant et l'environnement par un ou plusieurs réseaux.
Le module réseau peut collaborer avec tout type de réseau, par exemple un CAN, un réseau TCP-IP (« transmission control protocol » et « internet protocol »), par exemple pour des flux vidéo, un réseau utilisant les normes aéronautiques ARINC 429, AFDX, ou MIL STD 1553, la norme FlexRay, ou le système Ethercat {« Ethernet for control automaîion technology »), et peut correspondre aux différents protocoles de communication standardisés.
Le module réseau permet de mettre en œuvre une passerelle entre le réseau de l'environnement et le composant selon l'invention, tout en gérant tous les problèmes de communication, tels que la segmentation des données, le respect des protocoles, le décodage ou la mise au format adéquat des données.
Le module réseau peut être dépourvu de processeur, étant purement matériel, dans le cas notamment où le protocole du réseau de l'environnement permet de définir aisément une bijection avec un identifiant d'une donnée. Dans une variante, le module réseau peut utiliser un processeur, afin de gérer le protocole de communication et/ou la mise au format des données et/ou la bijection avec l'identifiant des données. Le code du processeur peut être configuré pour être modifié selon les applications désirées.
Le module réseau peut comporter un étage d'interfaçage avec au moins un réseau de l'environnement, permettant de réaliser la connexion physique au réseau, et un étage de liaison entre cet étage d'interfaçage et l'étage d'interfaçage avec le superviseur, permettant d'interpréter les protocoles de communication du réseau et de transmettre les requêtes à l'étage d'interfaçage avec le superviseur.
L'étage de liaison est avantageusement configuré pour convertir les données à traiter dans un format adéquat pour le réseau et pour récupérer, le cas échéant, le label ou les labels du réseau correspondant à l'identifiant des données, grâce à une table de
correspondance entre identifiants et labels du réseau, notamment initialisée à la configuration du module.
Le module réseau d'un composant peut permettre de transmettre des données au module réseau d'un autre composant selon l'invention au sein d'un même environnement. Ceci permet de grouper plusieurs composants selon l'invention afin de former un ensemble de composants.
Le composant selon l'invention peut comporter plusieurs modules réseaux, permettant notamment de faire le lien entre différents réseaux de l'environnement dans lequel évolue le composant et de fournir des temps de traitement optimisés et déterministes.
Le composant peut comporter entre 0 et 12 modules réseau, mieux entre 2 et 8 modules réseau.
Distribution
Au moins un des modules de communication peut être un module de distribution, permettant notamment de connecter entre eux des bases de données de différents composants selon l'invention.
Ce module de distribution joue avantageusement le rôle d'un bus de distribution des données issues de la base de données.
Le module de distribution peut comporter un étage d'interfaçage avec au moins une connexion réseau de l'environnement. Cet étage d'interfaçage permet de réaliser la connexion physique entre les différents composants. Le module de distribution peut comporter en outre un étage de liaison entre cet étage d'interfaçage et l'étage d'interfaçage avec le superviseur, permettant la gestion du protocole de communication du concentrateur et la transmission des requêtes à l'étage d'interfaçage avec le superviseur. Les modules de distribution sont connectés par l'intermédiaire d'un concentrateur ou « hub » en anglais.
Le concentrateur reliant entre eux les modules de distribution de différents composants selon l'invention peut utiliser un support physique Ethernet, par exemple un support en cuivre, notamment redondé, c'est-à-dire que les éléments du support sont systématiquement doublés. Le module de distribution est ainsi avantageusement configuré pour transmettre et recevoir les données sur les deux branches du support en parallèle. Cela permet de sécuriser le transfert des données. Si l'une des deux branches ne répond plus, la donnée continue avantageusement à être reçue ou transmise.
L'état du concentrateur peut être connu à tout moment par le composant par le biais du registre de contrôle, ce qui permet d'agir rapidement en cas de panne.
Le module de distribution peut distribuer les données à 1 Gb/s, ou à 10 Gb/s, ou par courant porteur en ligne.
Le composant selon l'invention peut comporter entre 0 et 12 modules de communication, mieux entre 2 et 8 modules de communication.
Toutes les combinaisons de modules de communication sont possibles, ce qui permet de créer une multitude de composants selon l'invention différents.
Sûreté de fonctionnement
Selon les besoins de l'environnement extérieur, des mécanismes intégrés au composant selon l'invention peuvent être mis en place afin de détecter un composant ne respectant pas les règles de communication dans l'environnement, par exemple lire en parallèle du composant les informations reçues et transmises, afin de vérifier son bon fonctionnement, en remontant notamment des informations à l'interface de programmation.
Procédé de fonctionnement du composant
L'invention a ainsi encore pour objet un procédé de fonctionnement d'un composant électronique selon l'invention, comportant au moins deux modules de communication et un superviseur, chaque module de communication comportant un étage d'interfaçage avec le superviseur, procédé dans lequel :
- l'un des modules de communication du composant transmet une requête de lecture et/ou d'écriture de données au superviseur du composant, par le biais de l'étage d'interfaçage avec le superviseur, et
- le superviseur, en fonction d'une table de configuration, gère de façon déterministe l'accès à une base de données, afin d'y lire et/ou d'y écrire lesdites données.
La table de configuration peut être établie en fonction de l'environnement et chargée lors de l'initialisation du composant, en utilisant ou non l'interface de programmation, par exemple par le biais d'un module processeur ou de distribution. Dans une variante ou en combinaison, elle peut être modifiée ultérieurement, selon les évolutions de l'environnement et les applications désirées.
Le superviseur, avant d'écrire ou de lire une donnée dans la base de données, vérifie avantageusement la validité de la requête de lecture et/ou d'écriture de ladite
donnée provenant d'un module de communication, notamment par le biais d'un identifiant correspondant aux paramètres de la table de configuration, tel que décrit précédemment.
Procédé de fabrication du composant
L'invention a encore pour objet un procédé de fabrication d'un composant électronique à modules de communication supervisés selon l'invention, comportant au moins deux modules de communication et un superviseur dépourvu de microprocesseur, procédé dans lequel un ou plusieurs composants logiques programmables, notamment de type FPGA, CPLD ou ASIC, sont programmés de telle sorte que les modules de communication fonctionnent en parallèle et que le superviseur gère de façon déterministe l'accès à une base de données, en fonction d'une table de configuration et de requêtes de lecture et/ou d'écriture dans la base de données, provenant des modules de communication.
Utilisation du composant
L'invention a encore pour objet l'utilisation d'un composant électronique à modules de communication supervisés selon l'invention dans un avion, notamment pour le contrôle d'un radar ou d'un altimètre, ou dans un système de contrôle industriel de commandes, par exemple pour la remontée d'informations issues de capteurs, notamment de température ou de vitesse de rotation, vers les applications de supervision.
Ensemble de composants
L'invention a encore pour objet un ensemble comportant plusieurs composants électroniques selon l'invention, lesdits composants comportant chacun au moins un module de distribution et étant reliés entre eux par leur module de distribution.
Chaque composant de l'ensemble selon l'invention est avantageusement configuré pour émettre une donnée, après une requête de lecture, en direction d'un autre composant de l'ensemble, configuré pour écrire cette donnée dans la base de données dans le cas d'une requête d'écriture. Le premier composant peut être appelé composant émetteur, le second composant récepteur.
Chaque superviseur de chacun des composants peut être relié à une interface de programmation. Dans une variante, un seul superviseur ou seulement quelques-uns peuvent être reliés à une interface de programmation.
Une base de temps est avantageusement partagée entre tous les composants. Le partage du temps est avantageusement dynamique, en fonction des besoins de chaque composant.
Un des composants de l'ensemble, appelé « composant gérant », est avantageusement configuré pour contrôler la synchronisation des dates de tous les composants par le biais de la base de temps partagée entre tous les composants. Cela pennet la mise en place d'une heure système distribuée. Le composant gérant peut être configuré pour envoyer périodiquement son heure système sur le réseau de distribution, chaque composant de l'ensemble récupérant cette heure et compensant la valeur reçue avec la latence de la distribution.
Les différentes requêtes d'écriture ou de lecture reçues par les différents composants peuvent ainsi être ordonnées suivant un ordre de priorité défini dans la table de configuration de chaque composant.
Les composants de l'ensemble selon l'invention prennent avantageusement tour à tour la main dans l'ensemble pour répondre aux requêtes leur étant adressées, de telle sorte que, à un instant donné, un seul composant soit actif et les autres composants soient uniquement à l'écoute. Ceci permet d'éviter toute collision d'échange de données.
Le composant gérant peut en outre être configuré pour lister les superviseurs connectés de l'ensemble à un instant donné.
Tous les composants de l'ensemble peuvent indifféremment être élus gérant. Si le gérant vient à être déconnecté, à cause par exemple d'une panne du composant, de l'environnement ou du réseau, par exemple à cause de la rupture physique totale du lien entre le concentrateur et ce composant, un nouveau composant peut être élu gérant. Cette réélection est avantageusement effectuée dans une durée inférieure ou égale à 150 μβ, par exemple pour des modules de distribution utilisant un support physique Ethernet. L'interruption de service est ainsi très limitée, et n'impacte que très faiblement le fonctionnement de l'environnement.
Un composant déconnecté de l'ensemble n'est avantageusement plus accessible pour les autres composants, l'ensemble restant néanmoins opérationnel. Dans le cas où ce composant est relié à une interface de programmation, il reste avantageusement actif tout en étant isolé du reste de l'ensemble. Dans le cas où c'est l'unique composant relié à une interface de programmation, le reste de l'ensemble n'est avantageusement plus relié ni contrôlé par une interface de programmation.
Le superviseur de chaque composant est de préférence configuré pour gérer l'accès à une base de données distincte. Les données contenues dans la base de données
associée à un composant peuvent être configurées pour être accessibles par tous les composants, notamment par le biais d'informations issues de la table de configuration. Cela permet de distribuer efficacement les données entre les différents composants de l'ensemble selon l'invention. Cela permet également de s'assurer que le transfert d'une donnée a été valablement effectué, en vérifiant que l'encapsulation d'une donnée reçue par un composant récepteur correspond à l'encapsulation au niveau de l'émetteur, notamment le résultat du contrôle de redondance cyclique.
Le concentrateur peut être agencé pour détecter le dysfonctionnement d'un des composants de l'ensemble, par exemple un composant envoyant de façon inopinée ou erronée des données. Ces données pourront être rejetées par les autres composants.
La ou les interfaces de programmation peuvent être configurées pour détecter une panne ou un dysfonctionnement du concentrateur, par exemple un envoi continu de données aux composants en l'absence de requête, ou un envoi erroné. Les composants pourront alors être laissés actifs mais avec un fonctionnement isolé, ou pourront être désactivés.
Un transfert déterministe des données entre composants au sein d'un même environnement est ainsi assuré grâce aux modules de distribution, permettant l'indépendance entre le lieu d'émission et le lieu de réception d'une donnée, sans impact sur les applications de l'environnement extérieur, Le processus de distribution est ainsi géré de façon autonome.
L'ensemble de composants selon l'invention peut être assimilé à un espace de communication fonctionnant comme un macro superviseur unique gérant une base de données distribuée.
Procédé de fonctionnement de l'ensemble
L'invention a encore pour objet un procédé de fonctionnement d'un ensemble comportant plusieurs composants selon l'invention, lesdits composants comportant chacun au moins un module de distribution et étant reliés entre eux par leur module de distribution, procédé dans lequel :
- suite à une requête d'écriture d'une donnée d'un des modules de communication d'un composant, et en fonction de la table de configuration, le module de distribution du composant concerné transmet la donnée à tous les modules de communication des composants, et
- les composants associés à l'identifiant de ladite donnée la reçoivent par le biais d'une requête d'écriture provenant de leur module de distribution.
Les superviseurs peuvent envoyer une notification aux autres modules de communication du composant auquel ils appartiennent pour prévenir de la disponibilité de ladite donnée, sur demande exprimée par le biais d'un paramètre de la table de configuration.
Les tables de configuration de chaque composant peuvent être chargées via un seul composant d'entrée.
L'invention pourra être mieux comprise à la lecture de la description détaillée qui va suivre, d'exemples de mise en œuvre non limitatifs de celle-ci, et à l'examen du dessin annexé, sur lequel :
- la figure 1 représente un composant électronique à modules de communication supervisés selon l'invention,
- la figure 2 représente la structure d'un module de communication d'un composant selon l'invention,
- la figure 3 illustre le fonctionnement d'un module processeur d'un composant selon l'invention,
- la figure 4 illustre le fonctionnement d'un module entrée/sortie d'un composant selon l'invention,
- la figure 5 illustre le fonctionnement d'un module réseau d'un composant selon l'invention,
- la figure 6 représente une variante de réalisation d'un composant selon l'invention,
- les figures 7A à 7C illustrent différentes étapes de l'écriture d'une donnée dans la base de données,
- les figures 8A à 8C illustrent différentes étapes de la lecture d'une donnée dans la base de données,
la figure 9 représente un ensemble de composants selon l'invention,
- la figure 10 représente une variante de réalisation d'un ensemble de composants selon l'invention,
- les figures 1 1 A à 1 1G illustrent différentes étapes de distribution d'une donnée dans un ensemble de composants selon l'invention, et
- les figures 12 et 13 représentent des variantes d'ensemble comportant plusieurs composants selon l'invention.
Un composant électronique 1 à modules de communication supervisés selon l'invention, évoluant dans un environnement informatique extérieur, est représenté à la figure 1. Ce composant 1 comporte un superviseur 2 dépourvu de microprocesseur et trois modules de communication 3, 4, 5 fonctionnant en parallèle. Le composant 1 selon l'invention est avantageusement réalisé à l'aide d'un ou plusieurs composants logiques programmables, par exemple des composants FPGA.
Le superviseur 2 est configuré pour gérer de façon déterministe l'accès à une base de données 6, en fonction d'une table de configuration 7, telles que décrites précédemment, et de requêtes de lecture et/ou d'écriture dans la base de données 6, provenant des modules de communication 3, 4 et 5.
Les modules de communication 3, 4 et 5 sont configurés pour transmettre les requêtes de lecture et/ou d'écriture de données au superviseur 2 par le biais de ports d'accès 9 internes au composant 1.
Le composant 1 comporte avantageusement un séquenceur, non représenté, piloté par le superviseur et permettant d'ordonner les requêtes provenant des modules de communication 3, 4 et 5 fonctionnant en parallèle.
Comme représenté à la figure 1, le composant 1 comporte une base de temps 8 permettant d'adjoindre à une donnée son heure de réception par le superviseur 2 lors d'une requête d'écriture dans la base de données 6, ladite heure de réception étant notamment lue avec la donnée lors d'une requête de lecture.
Le superviseur 2 est avantageusement relié à une interface de programmation 11, notamment par le biais d'un module de communication, comportant un ensemble de commandes pour permettre au composant 1 selon l'invention d'exécuter diverses instructions. Cet ensemble de commandes comporte notamment des commandes élémentaires d'écriture et de lecture des données.
Comme représenté à la figure 2, chaque module de communication 3, 4, et 5 comporte un étage d'interfaçage 20 avec le superviseur 2 permettant à ce dernier d'utiliser un format de données commun à l'ensemble des données. Chaque module de communication 3, 4, et 5 comporte en outre un étage d'interfaçage 22 vers un élément de l'environnement extérieur du composant 1, et un étage de liaison 21 entre cet étage
d'interfaçage 22 et l'étage d'interfaçage 21 avec le superviseur 2, permettant la gestion et la transmission des requêtes de lecture et/ou d'écriture 16 et des données 17.
Les requêtes de lecture et/ou d'écriture proviennent de sollicitations de Γ environnement extérieur reçues par les modules de communication 3, 4 et 5.
Dans l'exemple de la figure 1, le composant 1 comporte un module processeur
3, recevant des sollicitations d'une application logicielle exécutée sur un microprocesseur 13 de l'environnement extérieur, un module entrée/sortie 4, permettant la liaison avec une entrée/sortie physique 14 de l'environnement, et un module réseau 5, permettant l'échange de données entre le composant 1 et P environnement par un réseau 15.
Le fonctionnement du module processeur 3 est représenté en détails à la figure
3. Le microprocesseur 13 utilise dans l'exemple considéré un bus de communication 13a de type PCI 32 bits, et est par exemple inséré dans un ordinateur fonctionnant avec le système d'exploitation Linux. Ce module processeur 3 est configuré pour transmettre au superviseur 2 une requête 16 et des données 17 lors d'une requête d'écriture dans la base de données 6. H peut transmettre à l'environnement les données 17 lors d'une requête de lecture.
Le module processeur comporte, dans l'exemple décrit, un étage d'interfaçage 3c avec le bus de communication 13a, permettant de réaliser la connexion physique avec le bus et de recevoir les requêtes d'écriture et/ou de lecture 16, et un étage de liaison 3b entre cet étage d'interfaçage 3c et l'étage d'interfaçage 3a avec le superviseur 2, permettant la gestion des requêtes reçues et leur transmission au superviseur 2 via l'étage d'interfaçage 3a, afin de préparer les trames de données 17 pour leur transfert vers et depuis la base de données 6.
Le fonctionnement du module entrée/sortie 4 est représenté en détails à la figure 4. Dans cet exemple, l'entrée/sortie physique 14 de l'environnement est analogique, étant par exemple une entrée/sortie valeur de température. Dans l'exemple décrit, l'étage d'interfaçage 4a avec le superviseur 2 du module entrée/sortie 4 est agencé pour transmettre les requêtes 16 notifiant le module 4 de générer une sortie de données 17 par un flux 24 ou d'échantillonner une entrée de données.
Dans le cas d'une requête de lecture 36, la donnée est récupérée par l'étage de liaison 4b entre l'étage d'interfaçage 4a et l'étage d'interfaçage 4c vers l'entrée/sortie de l'environnement 14, l'étage de liaison 4b convertissant la donnée 17 dans un format
adéquat. La donnée 17 est ensuite fournie à l'étage d'interfaçage 4c, qui effectue l'accès physique à un convertisseur analogique/numérique 25 pour transmettre la donnée 17 dans un format analogique compréhensible par Γ entrée/sortie physique 14 de Γ environnement, par le biais d'un découpleur/connecteur 26.
Dans le cas d'une requête d'écriture 16, cette requête et sa donnée 17 associée sont récupérées par l'étage de liaison 4b entre l'étage d'interfaçage 4a et l'étage d'interfaçage 4c vers rentrée/sortie de l'environnement 14 qui échantillonne la donnée 17 contenue dans le convertisseur analogique/numérique 25 par le biais de l'étage d'interfaçage 4c. La donnée est ensuite mise au format adéquat et la requête d'écriture dans la base de données 6 est générée et transmise au superviseur 2 par l'étage d'interfaçage 4a.
Le fonctionnement du module réseau 5 est représenté en détails à la figure 5. Dans cet exemple, le réseau 15 de l'environnement est un réseau utilisant la norme Arinc 429. Le module réseau 5 se connecte d'un côté au superviseur 2 du composant 1 et de l'autre au bus 15 de type Arinc 429.
Dans l'exemple considéré, et dans le cas d'une émission de données en provenance du composant 1, lors d'une requête de lecture 16, l'étage d'interfaçage 5a avec le superviseur 2 transmet l'événement 27 notifiant le module réseau 5 qu'une donnée est prête à être envoyée vers le bus 15. L'événement 27 et la donnée 17 sont récupérés par l'étage de liaison 5b entre l'étage d'interfaçage 5a et l'étage d'interfaçage 5c vers le réseau. Cet étage de liaison 5b est configuré pour convertir la donnée 17 dans un format adéquat pour le réseau 15 et, grâce à une table de correspondance initialisée à la configuration, pour récupérer le label ou les labels du réseau 15 correspondant à l'identifiant associé à la donnée 17. La trame de données Arinc ainsi formée est ensuite avantageusement fournie à l'étage d'interfaçage 5c vers le réseau 15, qui effectue l'accès physique au bus utilisé par le réseau 15 en respectant le protocole de communication.
Dans le cas d'une réception de données par le composant 1 en provenance de l'environnement, l'étage d'interfaçage 5c vers le réseau 15 récupère la trame de données Arinc et la fournit à l'étage de liaison 5b entre les étages d'interfaçage 5a et 5c. L'étage de liaison 5b extrait la donnée utile de la trame et, grâce à la table de correspondance entre les identifiants des données et les labels du réseau, effectue une requête d'écriture 16 de l'identifiant correspondant. L'étage d'interfaçage 5a avec le superviseur 2 transmet cette requête au superviseur 2 qui permet l'écriture de la donnée 17 dans la base de données 6.
Dans la variante représentée à la figure 6, le composant 1 selon l'invention comporte deux modules réseau 50 et 51 , permettant îa mise en place d'une passerelle entre deux réseaux 54 et 55 afin d'échanger des données dans l'environnement. Dans l'exemple considéré, le réseau 54 est un réseau utilisant la norme AFDX et le réseau 55 est un réseau de type TCP/IP à 100 Mbps.
Dans l'exemple de la figure 6, le superviseur 2 s'active automatiquement à la mise sous tension du composant 1. Le superviseur 2 a également accès, dans cet exemple, à un registre de contrôle 32, contenant notamment des informations sur l'état du composant 1 et des rapports d'erreur sur des requêtes précédentes.
Dans l'exemple considéré, le composant 1 comporte la base de données 6 et la table de configuration 7. Dans la variante de la figure 1, la base de données 6 et la table de configuration 7 sont déportées à un autre endroit de l'environnement, et sont reliées au composant 1 par le biais d'interfaces dédiées.
L'écriture d'une donnée 17 dans la base de données 6 est décrite en référence aux figures 7A à 7C.
Comme représenté à la figure 7A, le superviseur 2 reçoit une requête d'écriture 33 en provenance d'un module de communication, non représenté, qui a au préalable préparé la donnée à écrire. Le superviseur 2 est configuré pour vérifier îa validité de la requête par le biais de l'identifiant associé à la donnée 17, en fonction de la table de configuration 7, non représentée.
Dans l'exemple décrit, la requête est valide et le superviseur 2 notifie le module dont provient la donnée 17 que l'accès est autorisé par une notification 35, comme représenté à la figure 7B. Le module effectue alors le transfert de la donnée 17 vers la base de données 6. Au cours de ce transfert, la donnée 17 est encapsulée, comme décrit précédemment.
Comme représenté à la figure 7C, la donnée encapsulée 17a est écrite dans la base de données 6. Le superviseur 2 notifie au registre de contrôle d'erreurs 32 une éventuelle erreur de transfert par une notification 36.
La lecture d'une donnée 17 dans la base de données 6 est décrite en référence aux figures 8A à 8C.
Comme représenté à la figure 8A, lorsque le superviseur 2 reçoit une requête de lecture 34 provenant d'un module de communication, non représenté, il vérifie la
validité de la requête, comme dans le cas d'une requête d'écriture, en fonction de la table de configuration 7, non représentée.
Dans l'exemple décrit, la requête est valide et le superviseur 2 notifie le module dont provient la requête 34 que l'accès est autorisé par une notification 35, comme représenté à la figure 8B. Le superviseur effectue également le transfert de la donnée 17 vers le module de communication, en vérifiant l'intégrité de la donnée.
En fin de transfert, comme représenté à la figure 8C, le superviseur peut envoyer, sur demande exprimée par le biais d'un paramètre de la table de configuration, une notification 36 de statut au module dont provient la requête, en fonction de la table de configuration 7, afin de lui notifier la fin du transfert ou une erreur potentielle lors de celui- ci. La donnée 17 est alors prête à être utilisée par le module de communication.
Comme représenté à la figure 9, deux composants 1 et 60 selon l'invention peuvent être groupés pour former un ensemble 100 de composants. Les composants 1 et 60 comportent chacun, dans l'exemple décrit, un module réseau 5 et 65, reliés par le biais d'un réseau 15 de Γ environnement extérieur utilisant la norme AFDX.
Le composant 1 comporte également un module processeur 3 relié par un bus de communication 13a à un processeur 13 de l'environnement, par exemple un ordinateur fonctionnant sous le système d'exploitation Windows. Le composant 60 comporte en outre un module entrée/sortie 64 comportant deux voies d'entrée et deux voies de sortie vers des entrées/sorties physiques 14 de Γ environnement.
Après une requête d'écriture provenant du module processeur 3 du composant 1, une donnée peut être écrite dans la base de données 6 par le superviseur 2 du composant 1. En fonction de la table de configuration 7, le superviseur 2 envoie une notification signalant l'écriture de la donnée au module réseau 5 du composant 1, qui est configuré pour récupérer la donnée et la transmettre sur le réseau 15.
Le module réseau 65 du second composant 60 récupère la donnée, dans l'exemple décrit, et demande au superviseur 62 de l'écrire dans la base de données 66 associée au composant 60. Le superviseur 62 envoie une notification au module entrée/sortie 64 qui peut récupérer la donnée et la transformer pour la transmettre sur une sortie 14 de l'environnement, comme décrit précédemment.
Dans la variante représentée à la figure 10, les trois composants 1, 60 et 70 selon l'invention comportent chacun un module de distribution 46, 47, 48.
Les modules de distribution 46, 47, 48 comportent, dans l'exemple considéré, un étage d'interfaçage avec une connexion réseau 115 de l'environnement extérieur, relié à un concentrateur. Les modules de distribution 46, 47, 48 comportent en outre un étage d'interfaçage avec les superviseurs respectifs 2, 62 et 72 des composants 1, 60 et 70, et un étage de liaison entre ces deux étages d'interfaçage, permettant la gestion du protocole de communication et la transmission des requêtes à l'étage d'interfaçage avec les superviseurs 2, 62 et 72.
Comme représenté à la figure 10, les trois composants 1, 60 et 70 sont reliés par leur module de distribution 46, 47, 48 afin de former un ensemble 110 de composants selon l'invention. L'étage d'interfaçage des modules avec la connexion réseau 115 de l 'environnement permet de réaliser la connexion physique entre les différents composants.
Le concentrateur 115 reliant entre eux les modules de distribution 46, 47, 48 des composants 1 , 60 et 70 utilise, dans l'exemple décrit, un support physique Ethernet redondé.
Dans l'exemple considéré, le composant 1 comporte en outre un module entrée/sortie 4. Le composant 60 comporte un module processeur 63, un module entrée/sortie 64 et un module réseau 65. Le composant 70 comporte un module processeur 73 et un module réseau 75.
Un des composants de l'ensemble 110, le composant 60 dans l'exemple illustré, est avantageusement configuré pour contrôler la synchronisation des dates de tous les composants par le biais d'une base de temps 68 partagée entre tous les composants. Les données contenues dans la base de données associée à un composant de l'ensemble 110 sont avantageusement configurées pour être accessibles par tous les composants, notamment par le biais de paramètres contenus dans la table de configuration 7.
Chaque composant 1 , 60, 70 de l'ensemble 110 est avantageusement configuré pour émettre une donnée, après une requête d'écriture, en direction d'un autre composant de l'ensemble, configuré pour écrire cette donnée dans la base de données. Dans l'exemple décrit, le composant 70 reçoit une donnée provenant de son module processeur 73, et la redistribue au module processeur 63 du composant 60, qui va l'utiliser pour l'application à laquelle il est relié, et au module entrée/sortie 4 du composant 1 , qui va la rediriger vers une sortie physique de l'environnement.
Les différentes requêtes d'écriture ou de lecture reçues par les différents composants 1 , 60, 70 peuvent être ordonnées, en fonction de leur ordre d'arrivée et suivant un ordre de priorité défini dans la table de configuration de chaque composant. Les composants 1, 60, 70 de l'ensemble 110 peuvent ainsi prendre tour à tour la main dans l 'ensemble pour répondre aux requêtes leur étant adressées.
Un exemple de distribution d'une donnée 17 dans un ensemble 110 comportant deux composants 1 et 60 selon l'invention est illustré aux figures 1 1 A à 11G.
Après qu'une donnée encapsulée 17a a été écrite dans la base de données 6 associée au composant 1 de l'ensemble 110, comme décrit précédemment en référence aux figures 7A à 7C, le superviseur 2 du composant 1 envoie une notification 37, si demandée par le biais d'un paramètre dédié de la table de configuration 7, aux modules de communication 3, 4 et 46 du composant 1 pour les prévenir qu'une donnée 17 a été écrite dans la base de données 6, comme représenté à la figure 11 A. Dans l'exemple décrit, le composant 1 comporte, en outre du module de distribution 46, un module processeur 3 et un module entrée/sortie 4.
Le module de distribution 46 étant configuré, dans l'exemple décrit, pour distribuer la donnée 17 dès son écriture, le superviseur 2 envoie une requête d'écriture 34 au composant consommateur via le lien de distribution 46, comme représenté à la figure 11B. Dans une étape représentée à la figure 11C, la donnée encapsulée 17a est transférée de la base de données 6 au module de distribution 46,
Comme représenté à la figure 1 1D, le module de distribution 46 du composant 1 envoie la donnée encapsulée 17a sur le concentrateur 1 15 vers le module de distribution 47 de l'autre composant 60 de l'ensemble 110, Dans l'exemple décrit, le superviseur 62 du composant 60 étant apte à recevoir la donnée 17 selon son identifiant, le module de distribution 47 du composant 60 envoie ainsi une requête d'écriture 33 de la donnée 17 au superviseur 62, comme représenté à la figure 1 1E.
La donnée encapsulée 17a est écrite dans la base de données 66 associée au composant 60 dans une étape illustrée à la figure 1 1F. Le superviseur 62 envoie une notification 36 de statut au module de distribution 46, en fonction de la table de configuration 67 associée au composant 60, non représentée, afin de lui notifier la fin de l'écriture de la donnée 17 dans la base de données 66 ou une erreur potentielle lors de celle-ci.
Le superviseur 62 du composant 60 est avantageusement configuré pour envoyer une notification 37, si demandé par le biais d'un paramètre de la table de configuration 7, aux autres modules de communication du composant 60, un module processeur 63 et un module entrée/sortie 64 dans l'exemple décrit, pour les prévenir qu'une donnée 17 a été écrite dans la base de données 6 et est ainsi disponible, comme représenté à la figure 11 G.
Dans la variante d'ensemble de composants selon l'invention représentée à la figure 12, l'ensemble 120 comporte trois composants 1 , 60 et 70, reliés entre eux par leur module de distribution 46, 47, et 48, tous trois connectés au concentrateur 115 de l'environnement extérieur, un support physique Ethernet redondé dans l'exemple considéré.
Le composant 1 comporte en outre un module processeur 3 relié par un bus de communication 13a à un processeur 13 de l'environnement, qui est un ordinateur fonctionnant sous le système d'exploitation VxWorks 5.5 dans l'exemple décrit. Le composant 60 comporte un module processeur 63 relié par un bus de communication 69a à un processeur 69 de l'environnement, qui est un ordinateur fonctionnant sous le système d'exploitation Linux dans l'exemple décrit. Le composant 70 comporte un module processeur 73 relié par un bus de communication 79a à un processeur 79 de l'environnement, qui est un ordinateur fonctionnant sous le système d'exploitation Windows XP dans l'exemple décrit.
Chaque superviseur 2, 62, 72 de chaque composant 1, 60, 70 constituant l'ensemble 120 est avantageusement interfacé avec le processeur 13, 69, 79 correspondant, par le biais des modules processeur 3, 63, 73 reliés au concentrateur 1 15 grâce aux modules de distribution 46, 47, 48.
Cette variante permet de disposer d'une architecture distribuée d'ordinateurs, appelée « cluster » en anglais, dans laquelle chaque application hébergée par chaque processeur 13, 69, 79 accède aisément à des données locales, contenues dans les bases de données 6, 66 ou 76 des composants 1, 60, 70, quel que soit le système d'exploitation du processeur concerné et son emplacement dans l'environnement.
Dans la variante d'ensemble de composants selon l'invention représentée à la figure 13, l'ensemble 130 comporte deux composants 1 et 60, reliés entre eux par leur module de distribution 46, 47, tous deux connectés au concentrateur 115 de
l'environnement extérieur, un support physique Ethernet redondé dans l'exemple considéré.
Le composant 1 comporte en outre, dans l'exemple décrit, un module processeur 3 relié par un bus de communication 13a à un processeur 13 de l'environnement, qui est un ordinateur fonctionnant sous le système d'exploitation Vx Works 5.5. Dans l'exemple considéré, le composant 60 comporte un module entrée/sortie 64 relié à des entrées et sorties physiques discrètes 14 de l'environnement, et un module réseau 65, relié à un réseau 15 de l'environnement, utilisant la norme Arinc 429.
Le processeur 13 peut ainsi gérer les entrées/sorties physiques 14 et le réseau 15 à distance, par le biais des modules de distribution 46, 47 et de lecture et d'écriture de données dans les bases de données 6, 66, comme décrit précédemment.
L'invention n'est pas limitée aux exemples illustrés. Les particularités des exemples illustrés peuvent se combiner au sein de variantes non illustrées.
Toutes les combinaisons de modules de communication 3, 4, 5 sont possibles. Par exemple, le composant 1 selon l'invention peut comporter plusieurs modules entrée/sortie et plusieurs modules réseau, ce qui permet de disposer d'un rack d'entrées/sorties différentes, pouvant transférer leurs données dans l'environnement extérieur par le biais de différents réseaux.
Le composant 1 selon l'invention peut être présenté avec un ensemble de certifications pour répondre aux exigences de certification des applications critiques, telles que 1 ' aéronautique ou 1 a défense .
L'expression « comportant un » est synonyme de « comprenant au moins un », sauf lorsque le contraire est spécifié.