Brevet FR3104756A1 — publié le 20210618

L’invention concerne une architecture de bus « One-Wire » bidirectionnel implémenté sur un composant programmable, ledit bus étant disposé entre un premier élément C 1 et un deuxième élément C 2 ayant une ligne commune L T de transmission des informations entre le premier élément C 1 et le deuxième élément C 2 . Figure pour l’abrégé : Fig.3 Bus monofil ou « One-Wire » L’invention concerne un bus de communication bidirectionnel où les signaux sont transmis sur une ligne de communication unique, les signaux étant plus particulièrement des signaux dits « discrets ». Un signal discret est défini dans la présente invention comme un signal numérique véhiculant des signaux de commande, ou une information d’état, ayant une fréquence qui varie faiblement. Les fréquences sont en général inférieures à 100Hz. Les informations de commandes et d’états au sein d’équipements de communication s’appuient souvent sur de nombreux signaux binaires de fréquence lente, nommés “discrets”. Le transport de cet ensemble de discrets, tout au long des différentes cartes électroniques d’un équipement, se fait à travers des connecteurs d’interfaces et des filtres adaptés aux contraintes électromagnétiques. Le nombre important de discrets peut vite devenir un problème du fait du nombre important de broches des connecteurs et de la quantité de filtres nécessaires à la réalisation du dispositif. Généralement, il n’est pas possible d’agir sur les interfaces externes de l’équipement. Une solution consiste donc à agir sur les interfaces internes qui peuvent être optimisées en mettant en série l’ensemble des discrets sur un bus comportant un unique fil. Dans la littérature ce type de bus est souvent appelé « One-Wire ». Il existe plusieurs exemples de réalisation de bus de type « One-Wire » dans l’art antérieur. Le bus One-Wire et le bus « connexion monofil » ou SWP (Single Wire Protocol) permettent de connecter des composants avec seulement un fil de données et un fil à la masse. La figure 1 illustre un exemple classique d’interconnexions parallèles de n discrets au travers de deux cartes électroniques C 1 , C 2 . Entre les deux cartes, il est nécessaire d’utiliser N lignes de transmission des signaux N 1 ,.., N N . La figure 2 illustre un exemple d’interconnexions avec une concentration de N discrets sur une unique ligne de transmission L T des signaux entre les deux cartes électroniques C 1 , C 2 . La demande de brevet WO98017025 décrit un système de communication entre deux organes électriques ou électroniques dans lequel on fait circuler, de façon bidirectionnelle simultanée et sur un conducteur unique (L), des informations logiques binaires ayant alternativement un niveau haut et un niveau bas. La demande de brevet WO2004010664 décrit un système permettant de faire communiquer plusieurs périphériques sur un bus monofil ou « One-Wire ». Dans cette architecture, les entrées/sorties ne sont pas standards. Il est nécessaire de réaliser une mesure de tension et une mesure de courant et d’utiliser un protocole de niveau supérieur pour segmenter les échanges entre N périphériques, avec N supérieur à 2, les échanges étant limités par construction à deux périphériques. La demande de brevet EP 717527 divulgue une architecture qui fait appel à une commutation de seuils pilotée par l’émetteur et à un récepteur différentiel. Cette solution présente notamment l’inconvénient majeur de considérer les valeurs seuils de transistors Mosfet canaux N et P comme des valeurs fixes sans dispersion. Malgré les avantages apportés par les architectures des bus « One-Wire » selon l’art antérieur, il existe encore des exigences mal ou non satisfaites, parmi lesquelles : L’électronique qui pilote le bus iXo doit utiliser des entrées/sorties, I/O, standards associées à un réseau purement passif et doit pouvoir être instanciée dans un composant programmable de type circuit logique programmable CPLD (Complex Programmable Logic Device) ou FPGA (Field Programmable Gate Array), L’électronique à chaque extrémité du bus iXo doit être symétrique, Le bus doit être full-duplex, Le débit à chaque extrémité du bus doit pouvoir être différent (pas de synchronisation des émetteurs) et atteindre un minimum de 10Mbit/s. De plus, l’utilisation de bus doit converger vers une réduction de la surface des circuits imprimés, une réduction de la consommation en comparaison des architectures classiques de type « One-Wire » et permettre un accroissement de la sécurité face à une intrusion visant à capturer ou perturber l’état des discrets. Un des objectifs de la présente invention est de proposer une connexion monofil permettant de pallier un ou plusieurs des inconvénients de l’art antérieur cités. L’invention concerne une architecture de bus « One-Wire » bidirectionnel implémenté sur un composant programmable, ledit bus étant disposé entre un premier élément C 1 et un deuxième élément C 2 caractérisé en ce qu’il comporte au moins les éléments suivants : - Une première extrémité du premier élément C 1 en émission d’un premier signal TX1 et une première extrémité du deuxième élément C 2 en émission d’un deuxième signal TX2, une deuxième extrémité du premier élément C 1 en réception d’un premier signal RX1 et une deuxième extrémité du deuxième élément C 2 en réception d’un deuxième signal RX2, - Une ligne commune L T de transmission des informations entre le premier élément C 1 et le deuxième élément C 2 , - Une première extrémité est reliée à un premier amplificateur A 1 dont la sortie est reliée à une résistance R et aussi par une ligne de retour L R à un deuxième amplificateur A 2 ayant une sortie A 23 reliée à une porte XOR A 6 , - Un premier comparateur A 3 et un deuxième comparateur A 4 dont une entrée est reliée à la ligne commune L T via une ligne L I après la résistance R, - Le comparateur A 3 reçoit sur une première entrée A 31 le signal TX2 et sur une deuxième entrée A 32 une première valeur de tension de référence V1, - Le comparateur A 4 reçoit sur une première entrée A 41 le signal TX2 et sur une deuxième entrée A 42 une deuxième valeur de tension de référence V2, - La sortie A 33 du comparateur A 3 et la sortie A 43 du comparateur A 4 sont transmises à un dispositif A 5 configuré pour inverser la recopie du signal émis lorsque la tension sur le bus est dans la plage [V1, V2] afin de fournir un signal transmis sur une entrée d’un dispositif A 6 adapté à inverser la réplique RTX1 du signal émis par le premier buffer A 1 qui est reçu sur une première entrée A 61 et transmise par le deuxième buffer A 2 qui reçoit aussi le signal de rebouclage TX1,TX2, et génère le signal RX2, RX1. Le dispositif A 5 est, par exemple, un circuit OU suivi d'un inverseur à sa sortie, et le dispositif A 6 est, par exemple un circuit OU exclusif. L’architecture peut comporter un filtre F 3 positionné entre la sortie du comparateur A 3 et une première entrée du circuit A 5 , et un filtre F 4 positionné entre la sortie du comparateur A 4 et une deuxième entrée du circuit A5, les paramètres du filtre étant choisis afin de minimiser les effets parasites générés par les phénomènes de réflexion et de commutation sur le bus monofil. La valeur de tension de référence V1 est égale à VDD/2+∆v et la valeur de V2 est égale à VDD/2-∆v. La valeur ∆v est choisie, par exemple, dans la plage [5%, 20%] de la valeur de VDD. Les signaux sont des signaux discrets de fréquence inférieure à 100 HZ véhiculant des informations d’état ou de commande. Le composant programmable est, par exemple, un composant avec plusieurs portes programmables FPGA, Field Programmable Gate Array. Le composant programmable est, par exemple, un circuit logique programmable complexe CPLD. La résistance R est intégrée dans le composant programmable. D’autres caractéristiques, détails et avantages de l’invention ressortiront à la lecture de la description faite en référence aux dessins annexés donnés à titre d’exemple illustratif et nullement limitatif et qui représentent, respectivement : une illustration de l’art antérieur, un exemple de réalisation de l’art antérieur utilisant une ligne unique de transmission, une illustration du principe de fonctionnement du bus selon l’invention, un détail de l’architecture d’une extrémité du bus selon l’invention, un chronogramme de l’interface de bus selon l’invention, un exemple de structure interne d’un filtre passe-bas, un moyen permettant de sécuriser le bus selon l’invention. La figure 3 illustre un schéma de principe de l’architecture du bus iXo selon l’invention. Le bus s’interface entre un premier organe électrique ou électronique, tel qu’une première carte C 1 qui va recevoir un nombre N de discrets et un deuxième organe électrique ou électronique, tel qu’une carte C 2 qui reçoit N discrets. Au niveau de la première carte C 1 , les N discrets S 1 ,.., S N , sont multiplexés au sein d’un multiplexeur M 1 avant d’être transmis séquentiellement vers une première extrémité en émission 101 du bus. Symétriquement, les N discrets en émission S’ 1 ,.., S’ N , sont multiplexés au sein d’un multiplexeur M 2 avant d’être transmis séquentiellement vers une première extrémité en émission 201 du bus, au niveau de la carte C 2 . En sortie, de la première carte C 1 , au niveau de la deuxième extrémité en réception 102, le signal est démultiplexé par M 3 pour retrouver N discrets et au niveau de la deuxième extrémité en réception 202, de la deuxième carte C 2 , le signal est démultiplexé par M 4 pour retrouver N signaux discrets. En sortie de ces multiplexeurs, M 3 , M 4 , les N discrets seront traités séquentiellement par le bus selon l’invention. TX1 est l’émission de la première extrémité 101 de la carte C 1 vers le bus iXo, TX2 est l’émission de la première extrémité 201 de la carte C 2 vers le bus iXo. RX1 est la réception du bus iXo depuis la première extrémité 201 et RX2 est la réception du bus iXo depuis la première extrémité 101. TX1, TX2, RX1 et RX2 sont des signaux binaires. RX1 reproduit le signal binaire de TX2 et de même RX2 reproduit le signal binaire de TX1. Tous les échanges s’effectuent via le bus iXo composé d’une unique ligne de communication L T . Une résistance R1 et une résistance R2, avec R1=R2=R sont positionnées en sortie des cartes électroniques C 1 , C 2 . Le fonctionnement du bus selon l’invention est décrit ci-après. L’état haut et l’état bas des signaux binaires sont respectivement associés aux tensions d’alimentations VDD et GND. Les blocs fonctionnels « Extraction Rx1 » et « Extraction Rx2 » détaillés à la figure 4 mesurent la tension présente sur le bus iXo. Les courants I1 et I2 sont négligeables. La figure 4 illustre un détail d’une extrémité du bus selon l’invention. Les deux extrémités du bus étant symétriques, le détail est donné pour une seule extrémité en utilisant RXi et TXi, avec i=1 ou i=2. Les modules détaillés ci-après sont implémentés, par exemple, sur un composant programmable de type FPGA (Field Programmable Gate Array). Un premier buffer A 1 relié à la première extrémité émet le signal binaire TX1 de la première extrémité sur le bus iXo. La sortie du buffer est reliée à une résistance R avant transmission du signal sur la ligne unique de transmission L T . Un deuxième buffer A 2 est utilisé pour fournir en interne au composant programmable une réplique RTX1 du signal TX1 émis par le premier buffer A 1 , via sa sortie A 2 3 . Une entrée A 2 1 du deuxième buffer A 2 est reliée à la ligne unique L T par une ligne de retour L R . Un premier comparateur A 3 relié à la ligne unique L T reliant les deux cartes via une ligne L I reçoit la valeur de la tension du bus Vixo sur une entrée A 31 et une valeur de référence V 1 = VDD/2 + ∆v sur la deuxième entrée A 32 . Il délivre en sortie A 33 un état haut lorsque la tension du bus iXo est supérieure à VDD/2 + ∆v. Un deuxième comparateur A 4 relié à la ligne unique via la ligne L I reçoit la valeur de la tension du bus Vixo sur une première entrée A 41 et une valeur de référence V 2 =VDD/2 - ∆v sur la deuxième entrée A 42 . Il délivre en sortie A 43 un état haut lorsque la tension du bus iXo est inférieure à VDD/2 - ∆v. La valeur ∆v est, par exemple, choisie dans la plage [5%, 20%] de la valeur de VDD et généralement égale à 10%. Un dispositif A 5 , par exemple une porte NOR A 5 (circuit OU suivi d'un inverseur à sa sortie) est positionné après le premier comparateur A 3 et le deuxième comparateur A 4 . Ce dispositif a notamment pour fonction d’inverser la recopie du signal émis lorsque la tension sur le bus iXo est dans la plage VDD/2 ± ∆V. La porte NOR dans cet exemple reçoit sur ses deux entrées A 51 et A 52 l’état des sorties A 33 et A 43 de ces deux comparateurs et délivre un état haut A 44 lorsque la tension sur le bus iXo est dans la plage VDD/2 ± ∆V. La sortie A 53 de la porte NOR est reliée à un dispositif A 6 . Un dispositif A 6 a pour fonction d’inverser la réplique RTX1 du signal émis par le premier buffer A 1 qui est reçu sur une première entrée A 61 et transmise par le deuxième buffer A 2 lorsque la tension sur le bus iXo est dans la plage VDD/2 ± ∆V, entrée A 62 . Ce dispositif est par exemple une porte XOR (circuit OU exclusif). La tension du bus Vixo dépend des signaux binaires TX1 et TX2. Si TX1 et TX2 sont à l’état haut, alors les points E 1 et E 2 sont égaux à VDD. Les points E 1 et E 2 correspondent aux sorties des cartes C 1 et C 2 qui communiquent par la voie unique. Il n’y a pas de courant dans les résistances R et la tension Vixo est égale à VDD. Dans ce cas, l’extraction de RX1 et RX2 est simple, RX1 et RX2 sont à l’état haut. Si TX1 et TX2 sont à l’état bas alors E 1 et E 2 sont égaux à GND. Il n’y a pas de courant dans les résistances R et la tension Vixo est égale à GND. Dans ce cas, l’extraction de RX1 et RX2 est simple, RX1 et RX2 sont à l’état bas. Si TX1 est égal au complément à 1 de TX2 alors deux cas sont possibles : E 1 est égal à VDD et E 2 est égal à GND. Les deux résistances R forment un pont diviseur et la tension Vixo est égale à VDD/2, E 1 est égal à GND et E 2 est égal à VDD. Les deux résistances R forment un pont diviseur et la tension Vixo est égale à VDD/2. Ces deux derniers cas indiquent que si TX1 est égal au complément à 1 de TX2 alors, en l’état, il n’est pas possible pour les blocs fonctionnels « Extraction RX1 » et « Extraction RX2 » de discriminer l’émetteur TXi générant l’état haut comme celui générant l’état bas. La figure 5 représente un exemple de chronogramme des différents signaux de l’interface de bus selon l’invention. La première extrémité a été choisie pour l’exemple. L’entrée A 1 1 de A 1 correspond à TX1, la sortie A 2 3 de A 2 est la réplique de TX1 et la sortie A 6 3 de A 6 correspond à RX1 lui-même étant la reproduction de l’émetteur distant TX2. L’entrée de RX1 est égal à l’addition en base deux des sorties A 2 3 , A 5 3 , de A 2 et de A 5 , ce qui est équivalent au complément à 1 de A 2 lorsque A 5 est égal à 1. La sortie A 5 3 correspond à l’état des sorties A 43 , A 53 des comparateurs A 4 et A 3 . Le changement simultané des états des émetteurs TX1 et TX2 peut être à l’origine de l’apparition de parasites de commutation sur le bus iXo. L’occurrence de ces parasites est accrue si les états binaires de TX1 et TX2 sont opposés. De façon à atténuer, voire éliminer ces parasites de commutation, la structure de filtre peut comporter un filtre adapté. La figure 6 illustre un exemple de structure de filtre pouvant être utilisé. Deux filtres passe-bas numériques F 3 et F 4 suppriment les éventuels parasites de commutation qui peuvent apparaître sur les sorties des récepteurs différentiels A 3 et A 4 . Un filtre Fi= F 3 , F 4 comporte une porte 60 sur l’entrée du filtre, un compteur 61, une porte 62 positionnée entre le compteur et une bascule 63, positionnée en sortie de filtre. Le filtre a notamment pour fonction principale de vérifier que le signal d’entrée reste stable pendant un temps au moins égal à 2 n x t clk. tclk est la période de l’horloge appliquée au filtre. La sortie A 3 3 , A 43 , d’un comparateur A 3 et A 4 est reliée à un filtre F 3 et F 4 . Les sorties des deux filtres F 3 et F 4 sont connectées à la porte NOR A 5 . La commande RAZ du compteur, active à l’état haut, force à l’état binaire bas toutes les sorties du compteur. La commande EN de la bascule, active à l’état haut, recopie l’état binaire de l’entrée du filtre sur la sortie de filtre. Cette commande a deux sources : L’entrée INIT de la porte 62, active à l’état haut, et qui place le filtre en mode « bypass ». Cette initialisation permet d’avoir le même état binaire sur l’entrée et sur la sortie du filtre à la mise sous tension de la carte électronique qui porte le bus iXo, La sortie Q n du compteur reliée à la porte 62, active à l’état haut, qui mémorise l’état binaire de l’entrée du filtre sur sa sortie. Si l’entrée du filtre F 3 , F 4 change d’état, alors la remise à zéro (RAZ) du compteur devient inactive et l’état des sorties Q 0 à Q p du compteur évolue au rythme de l’horloge CLK. Deux cas peuvent se produire : L’entrée du filtre change à nouveau d’état avant que Q n passe à l’état binaire haut. Le changement d’état est considéré comme un parasite et la commande RAZ devient active; L’entrée du filtre ne change pas d’état et Q n passe à l’état binaire haut. Le changement d’état est considéré comme valide et l’état binaire de l’entrée du filtre est recopié sur la sortie de filtre. La constante de temps de filtre est égale à 2 n x t clk , t clk étant la période de l’horloge CLK. La sortie Qi du compteur est choisie en fonction de la constante de temps du filtre. Le choix de la sortie du compteur est ajustable en fonction de la structure et en fonction des parasites. Les tensions VDD/2 + ∆v et VDD/2 - ∆v peuvent être réalisées, soit par deux régulateurs, soit par un pont de résistances connecté entre les alimentations VDD et GND. Ce pont est purement statique et peut être réalisé avec des résistances dont les valeurs sont choisies de façon telle que le courant consommé soit quasiment nul. La figure 7 illustre un exemple d’implémentation sécuritaire dans lequel aucun élément électrique n’est accessible de l’extérieur. Le bus peut être enfoui dans un circuit imprimé multicouches comprenant une couche externe 71, deux plans de masse 72, une couche interne 73, dans lequel l’unique piste L T du bus est enfouie, la connexion se faisant par un via 74. Dans cette configuration, tous les éléments de l’interface au bus selon l’invention sont enfouis, à l’exception de la résistance R qui peut être soudée sur la couche externe du composant. Selon un autre mode de réalisation, lorsque le composant programmable possède une résistance interne, elle pourra être utilisée pour la résistance R. Le composant programmable est par exemple un composant programmable CPLD avec des entrées/sorties standards. Ceci améliore la sécurité face aux intrusions ainsi que l’intégrité de signal de l’électronique de chaque extrémité du bus. En comparaison des dispositifs connus de l’art antérieur, le bus selon l’invention présente notamment l’avantage de pouvoir être implémenté dans un composant programmable de type CPLD ou FPGA avec une connexion au bus iXo via des I/O standards, d’offrir deux extrémités symétriques sans notion de maître esclave et d’avoir une intensité nulle ou quasi-nulle pour les courants I1 et I2. Architecture de bus « One-Wire » bidirectionnel implémenté sur un composant programmable, ledit bus étant disposé entre un premier élément C 1 et un deuxième élément C 2 caractérisé en ce qu’il comporte au moins les éléments suivants : - Une première extrémité (101) du premier élément en émission d’un premier signal TX1 et une première extrémité (201) du deuxième élément C 2 en émission d’un deuxième signal TX2, une deuxième extrémité (102) du premier élément en réception d’un premier signal RX1 et une deuxième extrémité (202) du deuxième élément C 2 en réception d’un deuxième signal RX2, - Une ligne commune L T de transmission des informations entre le premier élément C 1 et le deuxième élément C 2 , - Une première extrémité (101, 102) est reliée à un premier amplificateur A 1 dont la sortie est reliée à une résistance R et aussi par une ligne de retour L R à un deuxième amplificateur A 2 ayant une sortie A 23 reliée à une porte XOR A 6 , - Un premier comparateur A 3 et un deuxième comparateur A 4 dont une entrée est reliée à la ligne commune L T via une ligne L I après la résistance R, - Le comparateur A 3 reçoit sur une première entrée A 31 le signal TX2 et sur une deuxième entrée A 32 une première valeur de tension de référence V1, - Le comparateur A 4 reçoit sur une première entrée A 41 le signal TX2 et sur une deuxième entrée A 42 une deuxième valeur de tension de référence V2, - La sortie A 33 du comparateur A 3 et la sortie A 43 du comparateur A 4 sont transmises à un dispositif A 5 configuré pour inverser la recopie du signal émis lorsque la tension sur le bus est dans la plage [V1, V2] afin de fournir un signal transmis sur une entrée d’un dispositif A 6 adapté à inverser la réplique RTX1 du signal émis par le premier buffer A 1 qui est reçu sur une première entrée A 61 et transmise par le deuxième buffer A 2 qui reçoit aussi le signal de rebouclage TX1,TX2, et génère le signal RX2, RX1. Architecture selon la revendication 1 caractérisée en ce que le dispositif A 5 est un circuit OU suivi d’un inverseur et le dispositif A 6 est un OU exclusif. Architecture selon l’une des revendications 1 ou 2 caractérisée en ce qu’elle comporte un filtre F 3 positionné entre la sortie du comparateur A 3 et une première entrée A 51 de la porte A 5 , un filtre F 4 positionné entre la sortie du comparateur A 4 et une deuxième entrée A 52 de la porte A 5 , les paramètres des filtres étant choisis afin de minimiser les effets parasites générés par les portes. Architecture selon l’une des revendications 1 à 3 caractérisée en ce que la valeur de tension de référence V1 est égale à VDD/2+∆v et V2 est égale à VDD/2-∆v. Architecture selon la revendication 4 caractérisée en ce que la valeur ∆v est choisie dans la plage [5%, 20%] de la valeur de VDD. Architecture selon l’une des revendications 1 à 4 caractérisée en ce que les signaux sont des signaux discrets de fréquence inférieure à 100 HZ véhiculant une information d’état ou de commande. Architecture selon l’une des revendications 1 à 6 caractérisée en ce que le composant programmable est un composant avec plusieurs portes programmables FPGA, Field Programmable Gate Array. Architecture selon l’une des revendications 1 à 6 caractérisée en ce que le composant programmable est un circuit logique programmable complexe CPLD. Architecture selon l’une des revendications 7 ou 8 caractérisée en ce que la résistance R est intégrée dans le composant programmable.