FR 2787652 A1 20000623 FR 9816023 A 19981218 DISPOSITIF D'ACQUISITION D'ETATS LOGIQUES DE MULTIPLES CAPTEURS L'invention concerne un dispositif d'acquisition d'états logiques de multiples capteurs fonctionnant en tout ou rien. L'application principale, mais non exclusive, de l'invention est la détection de dysfonctionnements dans toutes les parties d'un aéronef et I'indication de ces dysfonctionnements à un endroit visible par le pilote de l'aéronef. Classiquement, on avait l'habitude de relier un capteur fonctionnant en tout ou rien, c'est-à-dire en pratique un interrupteur électrique, à un voyant lumineux dont la couleur par exemple rouge, orange ou verte représentait le niveau de gravité du dysfonctionnement. Avec la croissance de la complexité de fonctionnement des aéronefs, il devient nécessaire de disposer de plusieurs dizaines de voyants d'alarme et on a souhaité remplacer tous ces voyants par une seule console de visualisation affichant sur un écran une indication sur la nature du dysfonctionnement seulement lorsqu'un dysfonctionnement est constaté. La couleur de l'affichage correspond encore au niveau de gravité du dysfonctionnement. Il est souhaitable que cette console soit utilisable dans toutes sortes d'aéronefs et elle doit donc pouvoir s'adapter à différents nombres et différents types de capteurs de dysfonctionnements. Les capteurs étant des interrupteurs (détecteur d'ouverture de porte, détecteur de position d'organes mobiles; etc...) une solution classique consiste alors à établir un signal logique représentant l'état ouvert ou fermé de chaque interrupteur et à transmettre cet état logique à une des entrées multiples d'un multiplexeur. Ce multiplexeur est adressé séquentiellement et transmet à sa sortie, à un instant donné, I'état logique ouvert ou fermé de l'interrupteur qui est adressé à cet instant. Les informations en sortie du multiplexeur sont gérées par un contrôleur pour afficher des indications en cas de détection de dysfonctionnement par un capteur. Si un interrupteur est ouvert, I'état logique à la sortie du multiplexeur sera par exemple l'état zéro; s'il est fermé ce sera l'état "1" (l'inverse est possible aussi). L'interrupteur est en général ouvert au repos, fermé en cas de détection de dysfonctionnement (pour des raisons de réduction de la consommation au repos). Le multiplexeur est constitué de portes logiques adressables disposées entre les entrées et la sortie. Ceci nécessite, en amont du multiplexeur logique, que I'interrupteur soit relié entre deux niveaux de tension, par l'intermédiaire d'une résistance de tirage, de sorte que le potentiel du point de jonction entre l'interrupteur et la résistance passe d'un niveau de potentiel à l'autre selon que l'interrupteur est ouvert ou fermé. L'un des niveaux de potentiel correspond à un état logique haut, l'autre à un état logique bas. La l0 résistance de tirage peut être une résistance de tirage vers le haut ("pull-up resistor") ou vers le bas ("pull-down resistor"). Le point de jonction de l'interrupteur et de sa résistance de tirage est relié à un comparateur à seuil qui bascule dans un sens ou un autre selon que l'interrupteur est ouvert ou fermé, et la sortie du comparateur est reliée à une entrée du multiplexeur. Une des difficultés de réalisation vient du manque de fiabilité de détection de l'état ouvert ou fermé de l'interrupteur en amont du multiplexeur. Cette détection dépend en effet: - de la valeur de la résistance de tirage, - de la résistance propre du contact de l'interrupteur, - du potentiel d'alimentation de l'ensemble interrupteur plus résistance de tirage, - des variations de ces valeurs avec la température, etc... Typiquement, dans un avion ou un hélicoptère, on peut utiliser comme niveau de potentiel bas la masse électrique générale de l'avion et comme niveau de potentiel haut l'alimentation électrique générale continue de l'avion, par exemple à 28 volts. Mais cette alimentation n'est pas stable. Elle varie dans le temps, elle est sujette à des surtensions, à des microcoupures, à la mise en service ou non de batteries de secours, etc... Les cahiers de charge imposent par exemple que pour une valeur nominale de 28 volts, les appareils fonctionnent correctement même si la tension descend à 16 volts ou monte à 36 volts. La résistance de tirage dépend du type de capteur: certains nécessitent une résistance assez faible, par exemple parce que le capteur est en série avec un voyant lumineux local; d'autres utilisent une résistance plus importante pour limiter la consommation d'énergie. La résistance de contact de l'interrupteur varie avec son vieillissement: encrassement des contacts, usure. Or le potentiel appliqué à I'entrée du comparateur à seuil, dans l'état fermé de l'interrupteur, dépend du rapport entre la valeur de résistance de l'interrupteur proprement dit et la valeur de la résistance de tirage. Pour ces raisons et pour d'autres encore, il n'est pas facile de régler individuellement le ou les seuils des comparateurs pour être certain que l'état logique transmis par le comparateur corresponde à un état ouvert ou fermé de l'interrupteur. Par ailleurs, il serait souhaitable d'avoir non seulement une information sur l'état ouvert ou fermé de l'interrupteur, mais aussi une information sur le fait que cette information n'est pas fiable et ne devrait pas être prise en compte (par exemple du fait du vieillissement d'un capteur: une information de panne, impliquant la nécessité d'un remplacement, serait souhaitable). Il en serait de même d'ailleurs d'une information sur une panne de circuiterie (panne de comparateur, de multiplexeur, de connexion, etc...) entre le capteur et le contrôleur d'écran de visualisation. De plus, il est souhaitable d'avoir un système d'acquisition le plus souple et le plus universel possible, permettant de nombreuses configurations de détection de dysfonctionnements par simple programmation de paramètres internes au système, avec un minimum de modifications des cartes électroniques pour passer d'une application à une autre. Enfin, bien sûr, les contraintes de coût, d'encombrement et de poids sont un élément important à prendre en considération, ainsi que les possibilités de test fréquent du système, surtout pour des applications aéronautiques. L'invention propose donc un système d'acquisition d'états logiques de multiples capteurs fonctionnant en tout ou rien, dans lequel chaque capteur est constitué par un interrupteur relié en série avec une résistance de tirage entre une masse et un potentiel d'alimentation, ce système étant caractérisé en ce que le point de jonction d'un capteur et de la résistance correspondante est relié à une entrée correspondante d'un multiplexeur analogique, une tension représentative du potentiel d'alimentation étant également reliée à une entrée spécifique du multiplexeur, la sortie du multiplexeur étant reliée à un convertisseur analogique- numérique, le multiplexeur et le convertisseur étant contrôlés par un automate de calcul qui génère périodiquement et séquentiellement toutes les adresses d'entrée du multiplexeur, lit et stocke les valeurs numériques correspondantes en sortie du convertisseur pour chaque adresse, détermine une valeur numérique de tension d'alimentation, détermine pour chaque adresse correspondant à un capteur la position de la valeur numérique lue O pour cette adresse par rapport à au moins une valeur de seuil respective liée à cette adresse, cette position représentant l'état logique du capteur, des moyens étant prévus pour modifier la valeur de seuil en fonction de la valeur numérique déterminée pour la tension d'alimentation. On peut souhaiter détecter non seulement l'état ouvert ou fermé du capteur mais aussi une plage d'incertitude pour laquelle l'état doit être considéré comme indéterminé (signe de panne du capteur ou d'une partie de la chaîne de détection de l'état du capteur). Dans ce cas, la position de la valeur numérique correspondant à l'adresse d'un capteur est comparée à deux seuils, I'état indéterminé correspondant à une valeur comprise entre les deux seuils. Chacun de ces seuils peut être modifié en fonction de la valeur numérique attribuée à la tension d'alimentation par le système. Si le système d'acquisition est utilisé pour l'affichage de dysfonctionnements sur un écran de visualisation, on n'affichera pas d'indication si l'interrupteur est en position de repos (état ouvert en général), on affichera une information d'alarme spécifique du capteur concerné en cas d'état inverse (interrupteur fermé), et une information de panne en cas d'état incertain. Les valeurs de seuil pour un capteur déterminé et pour une valeur normale de tension d'alimentation sont stockées de préférence dans une mémoire programmable de l'automate. Les valeurs de seuil utilisées dans la comparaison sont calculées pour chaque capteur en fonction de la valeur numérique courante déterminée par le système pour la tension d'alimentation des capteurs (en général une tension pour tous les capteurs, mais s'il y avait plusieurs tensions d'alimentation, chaque tension serait appliquée à une entrée respective du multiplexeur analogique pour être mesurée). La variation des tensions de seuil en fonction de la tension d'alimentation peut suivre une loi quelconque, programmée à l'intérieur de I'automate, mais en général une variation proportionnelle sera suffisante. La valeur numérique de tension d'alimentation utilisée pour modifier les seuils sera de préférence une valeur filtrée plutôt que la valeur instantanée lue au cours d'une séquence de lecture et d'analyse des tensions analogiques issues des capteurs. Ceci permet d'éviter les perturbations (donc les fausses alarmes par exemple) dues à des microcoupures d'alimentation ou à des surtensions parasites très brèves non significatives. En pratique, I'automate de calcul comprend un séquenceur commandant en synchronisme l'adressage du multiplexeur, le convertisseur analogique-numérique, et une mémoire de stockage des valeurs fournies par le convertisseur, et un microcontrôleur programmé capable d'adresser la mémoire de stockage pour en extraire les informations stockées par le séquenceur, de traiter ces informations, et de fournir des informations résultant de ce traitement et représentant l'état de chacun des capteurs. D'autres caractéristiques et avantages de l'invention apparaîtront à la lecture de la description détaillée qui suit et qui est faite en référence aux dessins annexés dans lesquels la figure unique représente le principe général du système d'acquisition selon l'invention. L'invention sera décrite dans le cas d'un système d'affichage des dysfonctionnements d'une installation complexe (aéronef, navire, centrale électrique, usine etc...) dans laquelle de nombreux capteurs fonctionnant en tout ou rien sont répartis aux endroits nécessitant une surveillance et sont reliés à un équipement central de mesure et d'affichage. L'invention est cependant applicable aussi lorsque l'état des capteurs est destiné à être utilisé directement sans être affiché (utilisation pour déclencher une action de correction de dysfonctionnement par exemple). A titre d'exemple, les capteurs fonctionnant en tout ou rien sont des détecteurs d'ouverture de porte, des interrupteurs de fin de course, des contacteurs à flotteur etc. Les capteurs fonctionnant en tout ou rien sont reliés chacun à une entrée respective d'un multiplexeur analogique MUX. Par multiplexeur analogique, on entend un multiplexeur qui, lorsqu'une de ses entrées est sélectionnée, transmet sur sa sortie le niveau de tension analogique présent sur cette entrée. Un seul capteur K est représenté sur la figure 1 pour simplifier la représentation. Le multiplexeur MUX est représenté en un seul étage à seize entrées, mais il peut avoir plus de seize entrées et il peut être organisé en plusieurs étages en cascade, les sorties de plusieurs multiplexeurs d'un étage étant reliées aux entrées d'un multiplexeur d'un l0 étage suivant. Les capteurs sont connectés chacun en série avec une résistance de tirage respective R, I'ensemble en série étant relié entre une masse électrique générale M (en principe la même pour tous les capteurs) et un potentiel d'alimentation générale continu VA. Dans le cas d'un avion ou un hélicoptère par exemple on peut utiliser comme potentiel d'alimentation le câble d'alimentation à 28 volts continu qui dessert les différentes parties de l'avion ou l'hélicoptère. La résistance R est dite résistance de tirage car, lorsque l'interrupteur K est ouvert, elle tire le point de jonction de l'interrupteur et de la résistance vers le potentiel auquel elle est connectée par ailleurs. Si la résistance de tirage est connectée au potentiel d'alimentation VA supposé positif, c'est une résistance de tirage vers le haut ("pull-up résistor"); si elle est connectée à la masse M, c'est une résistance de tirage vers le bas ("pull-down resistor"). L'interrupteur K est de préférence ouvert au repos, fermé en cas de dysfonctionnement, mais on comprendra que l'inverse est également possible. Le potentiel d'alimentation VA est relié à une entrée spécifique du multiplexeur analogique de sorte qu'on pourra transmettre ce potentiel à la sortie du multiplexeur en vue de le mesurer. S'il y a plusieurs potentiels d'alimentation différents pour différents groupes de capteurs on prévoira une entrée spécifique pour chacun de ces potentiels. Si on le souhaite on pourra appliquer à l'entrée du multiplexeur, plutôt que la tension d'alimentation VA elle-même, une tension représentative de VA, telle qu'une fraction de cette tension obtenue par l'intermédiaire d'un pont diviseur. Les autres entrées du multiplexeur sont reliées chacune à un capteur respectif, c'est-à-dire plus précisément au point de jonction de l'interrupteur et de la résistance de tirage correspondant à ce capteur. Les résistances de tirage peuvent être localisées chacune à l'endroit d'un capteur ou être regroupées dans l'équipement central qui traite les informations issues des capteurs et qui affiche les alarmes. Cependant, pour des raisons qu'on expliquera plus loin, on peut prévoir que deux entrées du multiplexeur sont réservées pour recevoir chacune un potentiel de référence VR1 et VR2, précis et indépendants des variations de la tension d'alimentation, de la température, etc. Le potentiel VR1 est un potentiel bas pouvant représenter une extrémité d'une plage de conversion analogique-numérique; le potentiel VR2 est un potentiel haut représentant une autre extrémité de cette plage. La sortie du multiplexeur MUX est reliée à l'entrée d'un convertisseur analogique-numérique CAN, actionné en synchronisme avec le multiplexeur pour fournir périodiquement une série de valeurs numériques correspondant aux tensions analogiques présentes sur chacune des entrées du multiplexeur. Les adresses d'entrée du multiplexeur, correspondant chacune à un capteur K respectif ou à une des tensions VA, VR1, VR2, sont donc explorées successivement et l'exploration est renouvelée périodiquement. La périodicité peut être par exemple de 30 millisecondes. Un amplificateur à gain contrôlé peut être inséré entre la sortie du multiplexeur et l'entrée du convertisseur. Multiplexeur et convertisseur sont commandés par un automate de calcul programmable dont la fonction est d'obtenir une information sur l'état de chacun des capteurs à partir des valeurs numériques fournies par le convertisseur et à partir d'autres valeurs numériques (des valeurs de seuil) enregistrées dans une mémoire programmable. L'automate de calcul peut être programmable non seulement pour stocker des valeurs de seuil désirées mais aussi dans certains cas pour déterminer les calculs à faire. Le schéma synoptique de l'automate de calcul, c'est-à-dire des circuits de traitements des informations numériques issues du convertisseur analogique-numérique CAN, est visible sur la partie droite de la figure, dans le cadre pointillé référencé CAL. L'automate de calcul peut être composé de deux parties principales: - un séquenceur de conversion proprement dit, SEQ, qui contrôle le multiplexeur MUX et le convertisseur CAN et qui stocke dans une mémoire numérique volatile (registres) TAB toutes les valeurs numériques de tensions analogiques présentes sur les entrées du multiplexeur, chacune à une adresse qui correspond à une adresse d'entrée du multiplexeur, donc à une adresse correspondante de capteur (ou, pour les entrées de multiplexeur non reliées à un capteur, une adresse correspondant à une des l0 tensions d'alimentation VA, VR1, ou VR2); - et un microcontrôleur, c'est-à-dire un microprocesseur MP avec ses mémoires de travail volatiles (RAM), ses mémoires de données non volatiles programmables (EPROM) et ses mémoires mortes de programmes (ROM ou EPROM); ce microcontrôleur utilise la mémoire TAB remplie par le séquenceur comme périphérique et il est capable par conséquent de lire et traiter ensuite les valeurs numériques stockées dans cette mémoire TAB. Un circuit de synchronisation commun SYNC pilote le microprocesseur et le séquenceur SEQ pour les faire travailler en correspondance l'un avec l'autre. Le microprocesseur MP a également pour organe périphérique un contrôleur d'écran de visualisation (CTRL) qui commande l'affichage des informations désirées sur un écran SCR. Les informations désirées peuvent être des informations détaillées sur les capteurs, ou bien, dans l'application aéronautique envisagée ici, seulement des informations sur l'état des capteurs qui représentent un dysfonctionnement détecté (alarme ou panne). Le fonctionnement du système est le suivant. Chaque capteur K fournit à l'entrée du multiplexeur une tension analogique dépendant de l'état ouvert ou fermé du capteur; et dans l'état fermé, cette tension dépend de la valeur de la résistance de tirage, de la tension d'alimentation, de l'état plus ou moins défectueux du contact de l'interrupteur, et de l'état plus ou moins défectueux de la ligne qui le relie au multiplexeur. Au cours d'une séquence d'exploration de toutes les adresses d'entrée du multiplexeur, le séquenceur SEQ stocke dans la mémoire TAB qui lui est associée, toutes les valeurs numériques représentant les tensions analogiques d'entrée du multiplexeur, y compris celles qui représentent le potentiel d'alimentation VA et les potentiels de référence VR1 et VR2. Pendant que le séquenceur commence une deuxième séquence d'exploration et de stockage, le microcontrôleur traite les valeurs numériques stockées au cours de la première séquence. La mémoire TAB est donc organisée de manière à fonctionner en mode "double page": une page réservée à l'enregistrement pendant que l'autre est réservée à la lecture, les fonctions des pages étant inversées à chaque nouvelle séquence. Les valeurs numériques correspondant aux potentiels de référence bas VR1 et haut VR2 sont comparées à des valeurs théoriques et, s'il y a un écart, cet écart représente une erreur de conversion. Cette erreur est utilisée pour corriger ensuite toutes les valeurs numériques stockées par le convertisseur analogique-numérique. La correction est par exemple une fonction d'interpolation linéaire entre l'erreur sur la valeur basse VR1 et l'erreur sur la valeur haute VR2. Les programmes de correction sont stockés dans les mémoires mortes du microcontrôleur. La valeur numérique correspondant à la tension d'alimentation VA, éventuellement corrigée de l'erreur de conversion, est traitée par filtrage (essentiellement un filtrage anti-repliement), en fonction des valeurs mesurées dans les séquences précédentes, pour lisser les variations de VA et éliminer les valeurs aberrantes dues à des microcoupures ou surtensions parasites. La valeur numérique ainsi filtrée est stockée à une adresse spécifique de la mémoire de travail du microcontrôleur, et elle sert ensuite de valeur représentative de la tension VA pour le traitement des valeurs de tension numérisées issues des capteurs au cours de la séquence en cours d'analyse. Plus précisément, la valeur numérique de VA est utilisée pour calculer des nouvelles valeurs de seuil (seuil haut et seuil bas) correspondant à chaque capteur, à partir d'une table de valeurs de seuils théoriques enregistrée (pour une application donnée) dans une mémoire non-volatile (de préférence dans une mémoire reprogrammable EPROM). Les valeurs de seuil recalculées sont stockées par le microcontrôleur dans sa mémoire de travail. Elles serviront pour la séquence d'analyse en cours et seront modifiées si nécessaire dans les séquences suivantes. Le calcul de seuil modifié se fait selon un programme de calcul enregistré dans la mémoire morte de programme du microcontrôleur. La solution la plus simple consiste à rendre les seuils proportionnels à la tension d'alimentation VA, c'est-à-dire à multiplier la tension de seuil nominale enregistrée par le rapport entre la valeur de tension d'alimentation déterminée ci-dessus et la valeur nominale de cette tension d'alimentation. D'autres règles de calcul plus sophistiquées seraient bien entendu possibles (variations linéaires, variations logarithmiques, etc.). Le microcontrôleur compare chaque valeur numérique d'entrée, correspondant à une adresse de capteur déterminée, au seuil haut et au seuil bas recalculé pour cette adresse. Selon que la valeur est au-dessous du seuil bas, au-dessus du seuil haut, ou entre les deux seuils, il fournit alors une indication correspondant à un état fermé (en supposant que l'interrupteur est connecté à la masse avec une résistance de tirage vers le haut comme à la figure 1), un état ouvert, ou un état indéterminé représentant une panne du capteur ou du système d'acquisition. Cette information, pour chaque capteur, est une information brute, fournie telle quelle à la sortie du microcontrôleur. Dans le cas d'un système d'affichage de pannes, le programme de contrôle (celui du microcontrôleur, ou éventuellement celui d'un microprocesseur de plus haut niveau qui recevrait les informations brutes du microcontrôleur) affiche une indication explicite pour l'utilisateur sur l'écran SCR. Le programme peut prévoir toutes sortes de traitements plus sophistiqués des informations reçues: mémorisation et affichage en permanence de toutes les détections correspondant à des alarmes et à des pannes, suppression de cet affichage par action manuelle de l'utilisateur, affichage d'informations corrélant les indications de plusieurs capteurs, etc. Ceci dépend bien entendu des applications envisagées. L'invention a été décrite en supposant que les interrupteurs fonctionnant en tout ou rien sont des contacteurs mécaniques. On comprendra qu'elle est aisément transposable au cas o les capteurs sont des cellules photoélectriques fonctionnant également en tout ou rien. REVENDICATIONS R E V E N D I C A T I 0 N S 1. Système d'acquisition d'états logiques de multiples capteurs fonctionnant en tout ou rien, dans lequel chaque capteur (K) est constitué par un interrupteur relié en série avec une résistance de tirage (R) entre une masse et un potentiel d'alimentation (VA), ce système étant caractérisé en ce que le point de jonction de l'interrupteur et de la résistance correspondantes est relié à une entrée correspondante d'un multiplexeur o analogique (MUX), une tension représentative du potentiel d'alimentation étant également reliée à une entrée spécifique du multiplexeur, la sortie du multiplexeur étant reliée à un convertisseur analogique-numérique (CAN), le multiplexeur et le convertisseur étant contrôlés par un automate de calcul qui génère périodiquement et séquentiellement toutes les adresses d'entrée du multiplexeur, lit et stocke les valeurs numériques correspondantes en sortie du convertisseur pour chaque adresse, détermine une valeur numérique de tension d'alimentation, détermine, pour chaque adresse correspondant à un capteur, la position de la valeur numérique lue pour cette adresse par rapport à au moins une valeur de seuil respective liée à cette adresse, cette position représentant l'état logique du capteur, et des moyens étant prévus dans l'automate de calcul pour modifier la valeur de seuil en fonction de la valeur numérique déterminée pour la tension d'alimentation. 2. Système d'acquisition selon la revendication 1, caractérisé en ce que la position de la valeur numérique lue pour une adresse de capteur est déterminée par rapport à un seuil bas et un seuil haut pour fournir une indication d'état fermé, état ouvert, et état indéterminé du capteur. 3. Système d'acquisition selon l'une des revendications 1 et 2, caractérisé en ce que le calcul de la valeur de seuil modifiée est un calcul proportionnel à partir d'une valeur de seuil nominale enregistrée pour un capteur déterminé et du rapport entre la valeur déterminée pour la tension d'alimentation et une valeur nominale de tension d'alimentation. 4. Système selon l'une des revendications 1 à 3, caractérisé en ce que la détermination de la valeur de tension d'alimentation se fait par filtrage à partir d'une valeur numérique instantanée lue au cours d'une séquence d'exploration du multiplexeur et des valeurs déterminées précédemment, pour lisser les variations de tension d'alimentation et éliminer les valeurs aberrantes. 5. Système selon l'une des revendications 1 à 4, caractérisé en ce qu'un potentiel de référence bas VR1 et un potentiel de référence haut VR2 sont appliqués chacun à une entrée respective du multiplexeur, en ce que l'automate de calcul détermine une erreur de conversion par comparaison entre une valeur numérique en sortie du convertisseur pour chacune de ces entrées et une valeur théorique correspondant à ces potentiels, et en ce que l'automate calcule à partir de cette erreur une correction à effectuer pour chacune des valeurs numériques fournies par le convertisseur avant de déterminer la position de ces valeurs numériques par rapport aux seuils. 6. Système selon l'une des revendications 1 à 5, caractérisé en ce que l'automate de calcul comprend un séquenceur (SEQ) commandant en synchronisme l'adressage du multiplexeur (MUX), le convertisseur analogique-numérique (CAN) et une mémoire (TAB) de stockage des valeurs fournies par le convertisseur, et un microcontrôleur programmé (MP, RAM, ROM, EPROM) capable d'adresser la mémoire de stockage (TAB) pour en extraire les informations stockées par le séquenceur en vue de leur traitement, et apte à fournir les informations résultant de ce traitement et représentant l'état de chacun des capteurs.