FR2965373A1 - Identification, par un circuit maitre, de deux circuits esclaves connectes sur un meme bus - Google Patents
Identification, par un circuit maitre, de deux circuits esclaves connectes sur un meme bus Download PDFInfo
- Publication number
- FR2965373A1 FR2965373A1 FR1057752A FR1057752A FR2965373A1 FR 2965373 A1 FR2965373 A1 FR 2965373A1 FR 1057752 A FR1057752 A FR 1057752A FR 1057752 A FR1057752 A FR 1057752A FR 2965373 A1 FR2965373 A1 FR 2965373A1
- Authority
- FR
- France
- Prior art keywords
- slave
- circuit
- master
- bus
- circuits
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Granted
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F13/00—Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
- G06F13/38—Information transfer, e.g. on bus
- G06F13/42—Bus transfer protocol, e.g. handshake; Synchronisation
- G06F13/4282—Bus transfer protocol, e.g. handshake; Synchronisation on a serial bus, e.g. I2C bus, SPI bus
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/06—Addressing a physical block of locations, e.g. base addressing, module addressing, memory dedication
- G06F12/0646—Configuration or reconfiguration
- G06F12/0653—Configuration or reconfiguration with centralised address assignment
- G06F12/0661—Configuration or reconfiguration with centralised address assignment and decentralised selection
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Small-Scale Networks (AREA)
- Mobile Radio Communication Systems (AREA)
Abstract
L'invention concerne un procédé de communication entre un circuit maître et deux circuits esclaves sur un bus série dans lequel : les deux circuits esclaves transmettent en même temps des identifiants (UID1, UID2) qui leurs sont associés ; les deux circuits esclaves transmettent en même temps l inverse (NUID1, NUID2) de ces identifiants ; et chaque circuit esclave exploite les combinaisons présentes sur le bus pour déterminer un ordre de communication entre les deux circuits.
Description
B10602 - 10-RO-292 1 IDENTIFICATION, PAR UN CIRCUIT MAÎTRE, DE DEUX CIRCUITS ESCLAVES CONNECTÉS SUR UN MÊME BUS Domaine de l'invention La présente invention concerne les transmissions électroniques et, plus particulièrement, la transmission de données numériques dans un système maître-esclave. L'invention s'applique plus particulièrement aux communications sur un bus, dit à drain ouvert ou à collecteur ouvert (selon la technologie MOS ou bipolaire), selon un protocole où la vitesse de transmission est indépendante des états des bits transmis. L'invention s'applique, par exemple, à des trans- missions sur bus bifilaire véhiculant des données et un signal de synchronisation, par exemple de type I2C. Exposé de l'art antérieur Dans un bus à drain ouvert (ou collecteur ouvert), le conducteur de données du bus est, au repos, à un potentiel différent de la masse (généralement un potentiel positif). Les données sont codées, puis transmises en tirant le bus à la masse selon un codage préétabli permettant au récepteur de décoder les données. On connaît de nombreux protocoles de communication exploitant un bus à drain ouvert (ou collecteur ouvert). Qu'il s'agisse de protocoles sur bus unifilaire (par exemple, un B10602 - 10-RO-292
2 protocole connu sous la dénomination SWP) ou sur bus multifilaire (par exemple, des protocoles bifilaire de type I2C), lorsque plusieurs circuits esclaves sont connectés sur un même bus et sont susceptibles de communiquer avec un même circuit maître, le circuit maître doit envoyer sur le bus une adresse ou un identifiant du circuit esclave permettant à celui-ci de se reconnaître et de répondre. Les autres circuits esclaves ne se reconnaissant pas d'après l'adresse restent muets.
Dans les systèmes usuels, il est donc nécessaire que le circuit maître connaisse les adresses des différents circuits esclaves, faute de quoi plusieurs circuits esclaves sont susceptibles de répondre en même temps, ce qui rend la transmission ininterprétable.
Résumé Un objet d'un mode de réalisation de la présente invention est de pallier tout ou partie des inconvénients des systèmes de communication sur bus à drain ouvert (ou collecteur ouvert).
Un autre objet d'un mode de réalisation de la présente invention est de permettre à deux circuits esclaves de s'identifier auprès d'un circuit maître. Un autre objet d'un mode de réalisation de la présente invention est de proposer une solution plus particulièrement destinée à des protocoles de communication dans lesquels des bits sont transmis sur des périodes de durées indépendantes des états respectifs des bits. Un autre objet d'un mode de réalisation de la présente invention est de proposer une solution permettant une communication simultanée entre un circuit maître et deux circuits esclaves. Pour atteindre tout ou partie de ces objets ainsi que d'autres, il est prévu un procédé de communication entre un circuit maître et deux circuits esclaves sur un bus série dans lequel : B10602 - 10-RO-292
3 les deux circuits esclaves transmettent en même temps des identifiants qui leurs sont associés ; les deux circuits esclaves transmettent en même temps l'inverse de ces identifiants ; et chaque circuit esclave exploite les combinaisons présentes sur le bus pour déterminer un ordre de communication entre les deux circuits. Selon un mode de réalisation de la présente invention, le circuit maître déclenche les étapes précédentes par l'envoi 10 d'une commande spécifique sur le bus. Selon un mode de réalisation de la présente invention, ladite commande est précédée par l'envoi, par le circuit maître d'une adresse commune aux deux circuits esclaves. Selon un mode de réalisation de la présente invention, 15 chaque circuit esclave détermine une relation entre son propre identifiant et celui de l'autre circuit esclave. Selon un mode de réalisation de la présente invention, la relation entre les identifiants est une relation d'ordre. Selon un mode de réalisation de la présente invention, 20 chaque circuit esclave transmet, au circuit maître, une adresse le concernant, l'ordre de transmission étant fixé par la relation entre les identifiants respectifs des circuits esclaves. Selon un mode de réalisation de la présente invention, 25 chaque circuit esclave transmet, au circuit maître, son identifiant en guise d'adresse. Selon un mode de réalisation de la présente invention, le bus est un bus à drain ouvert (ou collecteur ouvert) dans lequel un bit est transmis sur une période de durée indépendante 30 de l'état du bit. On prévoit également un circuit électronique de transmission sur bus série. On prévoit également un système de transmission maître-esclave entre un maître et deux esclaves.
B10602 - 10-RO-292
4 Brève description des dessins Ces objets, caractéristiques et avantages, ainsi que d'autres seront exposés en détail dans la description suivante de modes de réalisation particuliers faite à titre non-limitatif en relation avec les figures jointes parmi lesquelles : la figure 1 représente, partiellement et sous forme de blocs, deux circuits susceptibles de communiquer dans un protocole maître-esclave de type I2C ; les figures 2A, 2B, 2C et 2D illustrent une communi-10 cation entre les deux circuits de la figure 1 ; la figure 3 représente, de façon schématique et sous forme de blocs, un exemple de système de communication selon un mode de réalisation de la présente invention ; la figure 4 illustre une trame de communication 15 usuelle selon le protocole I2C ; la figure 5 représente, de façon très schématique, le conducteur de données d'un bus à drain ouvert (ou collecteur ouvert) et ses connexions dans un système du type de celui de la figure 3 ; 20 la figure 6 illustre, de façon très schématique et sous forme de blocs, un mode de réalisation du procédé d'identification de circuits esclaves par un circuit maître selon un mode de réalisation de la présente invention ; la figure 7 illustre une trame selon le procédé de la 25 figure 6 ; et la figure 8 est un chronogramme illustrant un exemple de protocole de communication auquel s'applique la présente invention. Description détaillée 30 De mêmes éléments ont été désignés par de mêmes références aux différentes figures. Par souci de clarté, seuls les étapes et éléments utiles à la compréhension des modes de réalisation exposés seront décrits. En particulier, l'exploitation faite des données dans chacun des circuits 35 communiquant n'a pas été détaillée, les modes de réalisation B10602 - 10-RO-292
décrits étant compatibles avec les utilisations usuelles de ces données. De plus, le codage des signaux à transmettre par les différents circuits communiquant n'a pas non plus été détaillé, l'invention étant là encore compatible avec des circuits usuels 5 de codage de tels signaux. Les modes de réalisation feront par la suite référence à une communication exploitant les fonctionnalités d'un protocole connu sous la dénomination I2C. L'invention s'applique toutefois plus généralement à tout protocole de communication utilisant au moins un fil de transmission de données dans un protocole à drain ouvert (ou collecteur ouvert), et dans lequel les durées des périodes sur lesquelles sont transmis les bits sont indépendantes de leurs états (la transmission d'un 1 occupe la même durée que la transmission d'un 0).
La figure 1 est un schéma bloc d'un mode de réalisation d'un système de communication entre un dispositif maître 1 et un dispositif esclave 3 selon le protocole I2C. Dans l'exemple de la figure 1, le circuit 1 est un circuit maître (MD) et est susceptible de communiquer, par un bus I2C, avec un ou plusieurs dispositifs esclaves 3 (SD). Les différents circuits du système peuvent être alimentés indépendamment les uns des autres ou, comme cela est représenté, par un bus d'alimentation susceptible de véhiculer au moins un potentiel d'alimentation VDD et un potentiel de référence (GND), par exemple la masse. Chaque circuit 1, 3 comporte, par exemple, un circuit d'émission (SEND) 11, 31 et un circuit de réception (DEI) 12, 32. Les circuits 1 et 3 sont reliés l'un à l'autre par le bus I2C ainsi que par les deux fils VDD et GND du bus d'alimentation. Un premier fil 42 du bus I2C véhicule un signal d'horloge (SCL) entre deux bornes CK des circuits 1 et 3. Typiquement, ce signal d'horloge est imposé par le circuit maître 1. Un deuxième fil 44 du bus I2C véhicule les données (SDA) entre les deux circuits. Le bus I2C est bidirectionnel.
B10602 - 10-RO-292
6 Les figures 2A, 2B, 2C et 2D sont des chronogrammes illustrant un exemple de transmission d'un mot de données (typiquement un octet) du circuit maître vers le circuit esclave 3.
Pour clarifier la description, les figures 2A, 2B, 2C et 2D représentent l'allure de signaux correspondant respectivement au signal (SDAM) positionné par le circuit d'émission 11 du circuit maître sur le fil 44, au signal d'horloge (SCL) imposé par le circuit maître, au signal (SDAS) positionné par le circuit 31 sur le fil 44, et au niveau (SDA) résultant de ce fil. Malgré la représentation simplifiée de la figure 1, on considère que les circuits de réception respectifs 12 et 32 des circuits 1 et 3 observent l'état du fil 44 indépendamment des niveaux imposés SDAM et SDAS par leurs circuits d'émission 11 et 31. De même, pour simplifier, on néglige les chutes de tension par rapport au potentiel d'alimentation et on considère que les niveaux haut correspondent à la tension VDD et que les niveaux bas correspondent à la masse.
Au repos, les deux fils 42 et 44 du bus I2C sont au niveau haut. C'est ce qui caractérise un bus dit à drain ouvert (ou collecteur ouvert) où le bus est tiré à la tension d'alimentation et est ensuite forcé à un état inférieur (dans cet exemple, la masse) par les différents dispositifs communiquant. En supposant que le circuit veuille transmettre une trame de données au circuit 3, il prend le contrôle du bus en imposant un niveau bas sur le signal SDA (instant t1) alors que le signal SDL reste au niveau haut. Cette condition de départ (Start) est détectée par le circuit esclave 3 connecté sur le bus. Une fois cette condition de départ effectuée, le circuit 1 génère le signal d'horloge SCL. Puis, le circuit 1 impose un niveau 1 ou 0 sur le fil 44 (signaux SDAM et SDA) en fonction du premier bit D7 de l'octet à transmettre. Ce positionnement du fil 44 doit intervenir avant le front montant du signal B10602 - 10-RO-292
7 d'horloge (instant t2) qui valide la donnée transmise. Lorsque le signal SCL revient au niveau bas (instant t3), le circuit maître peut imposer le niveau correspondant à l'état du bit suivant D6 sur le fil 44, et ainsi de suite. Une fois le dernier bit DO transmis, le circuit maître place le signal SDAM au niveau haut, pour surveiller l'arrivée d'un accusé réception. Son circuit de détection 12 surveille en même temps l'état réel du fil 44. Pour indiquer une réception correcte, le circuit esclave 3 impose un niveau bas (figure 2C) sur le fil 44 (signaux SDAS et SDA). Le circuit maître vérifie l'état du fil 44 au front montant (instant t4) du signal SCL qui suit son positionnement à l'état haut du signal SDAM. Si le fil 44 est au niveau bas (comme illustré en figure 2), cela signifie une transmission réussie. Dans le cas contraire, le circuit maître peut réémettre la donnée (une condition de départ (Start) doit pour cela être émise sur le bus I2C). Une fin de transmission (libération du bus) s'effectue par le circuit maître en commutant le signal SDA au niveau haut alors que le signal SCL est également au niveau haut (instant t5). Une fois cette condition d'arrêt (Stop) effectuée, le bus I2C est libre pour démarrer une autre trame I2C. Il peut s'agir, par exemple, d'une transmission du circuit 3 vers le circuit 1. Le protocole de communication I2C fixe différentes conditions additionnelles dans la transmission selon qu'elle concerne une adresse, une donnée, une écriture ou une lecture dans le circuit esclave, etc. En particulier, une adresse est généralement prévue lorsque plusieurs circuits esclaves sont susceptibles d'être connectés sur le même bus.
La figure 3 représente, de façon très schématique et sous forme de blocs, un exemple de système de transmission maître-esclave dans lequel un circuit maître 1 est susceptible de communiquer avec deux circuits esclaves 3 (S1) et 3' (S2), et le cas échéant avec encore d'autres circuits esclaves, connectés sur le bus I2C. Pour simplifier la représentation de la figure B10602 - 10-RO-292
8 3, on a considéré que les circuits esclaves étaient alimentés séparément et individuellement les uns par rapport aux autres. La figure 4 représente de façon très schématique une trame T de transmission habituelle selon le protocole I2C. Suite au bit de démarrage (S en figure 4), le circuit maître positionne sur le bus I2C l'adresse d'un circuit esclave (Slave address). Généralement, cette adresse est sur un ou deux octets mais toute autre configuration peut convenir. L'adresse est suivie d'un bit R/W indiquant au circuit esclave concerné si le maître souhaite écrire ou récupérer des données dans celui-ci. Ce bit R/W est suivi d'un bit d'accusé réception A positionné par le circuit esclave concerné (symbolisé avec des hachures pour faire ressortir qu'il provient du circuit esclave). Puis, le circuit maître envoie des octets de données D1,..., Dn, chacune suivie d'un accusé réception de la part du circuit esclave. On suppose ici l'envoi de données du maître vers l'esclave. Dans le cas d'une récupération de données, le circuit esclave envoie les données et le circuit maître accuse réception à la fin de chaque octet. La transmission se termine par le bit d'arrêt P.
Ce système fonctionne correctement à condition que le circuit maître soit capable d'adresser un seul circuit esclave à un instant donné. En effet, dans le cas contraire, deux circuits esclaves se considèrent adressés, ce qui engendre un conflit sur le bus.
Or, dans certaines applications, des circuits esclaves sont susceptibles d'être connectés au bus alors que le circuit maître n'en connaît pas l'adresse. Un exemple d'application concerne le cas de dispositifs électroniques dans lesquels deux circuits esclaves sont susceptibles d'être connectés sur un même bus série et doivent être accessibles par un circuit maître. C'est le cas, par exemple, d'un système dans lequel plusieurs batteries d'alimentation d'un dispositif électronique sont susceptibles d'être connectées sur un même bus pour authentification.
B10602 - 10-RO-292
9 L'invention sera décrite par la suite en faisant plus particulièrement référence à un bus I2C. On notera toutefois qu'elle s'applique plus généralement à toute communication entre un circuit maître et plusieurs circuits esclaves sur un bus série de type à drain ouvert (ou collecteur ouvert), dans lequel la période de transmission d'un bit est identique quel que soit l'état de ce bit. La figure 5 représente schématiquement et partiellement un bus série 44 (par exemple le conducteur SDA d'un bus I2C) et ses connexions à un circuit maître 1 et à deux circuits esclaves 3 et 3'. Chaque circuit 1, 3, 3' comporte un interrupteur 14, 34 ou 34' reliant à la masse une borne, respectivement 15, 35 ou 35', destinée à être connectée au bus 44. Par ailleurs, comme déjà mentionné, le conducteur 44 est, au repos, tiré au potentiel VDD, par exemple par un élément résistif R. En pratique, les interrupteurs 14, 34 et 34' sont le plus souvent réalisés sous la forme de transistors MOS à canal N, c'est pourquoi on fait référence à un bus série à drain ouvert (ou collecteur ouvert). L'interrupteur 14 du circuit maître 1 est commandé par son circuit d'émission 11 (non représenté en figure 5). Les interrupteurs 34 et 34' des circuits 3 et 3' sont respectivement commandés par les circuits d'émission 31 et 31' (SEND). Comme déjà illustré en relation avec la figure 1, les bornes 35 et 35' sont en outre reliées en entrée de détecteurs 32 et 32' (DET) permettant à chaque circuit esclave de décoder les signaux présents sur le bus. La représentation de la figure 5 est partielle et d'autres circuits, en particulier de traitement des données transmises et à transmettre, équipent les dispositifs maître et esclaves.
Pour être capable de communiquer avec les deux circuits esclaves, le circuit maître 1 a besoin de les identifier afin de leur adresser les trames qui les concernent respectivement. Dans le mode de réalisation de la figure 5, on suppose 35 que les deux circuits esclaves 3 et 3' partagent la même adresse B10602 - 10-RO-292
10 et ne sont donc, lorsqu'ils sont raccordés au bus, pas identifiables par le circuit maître. Par exemple, il s'agit de deux batteries différentes qui ont besoin d'être authentifiées par le circuit maître. Il peut également s'agir d'autres consommables de type cartouches d'encre connectées à un même bus. Plus généralement, ce mode de réalisation s'applique dès que deux circuits esclaves sont susceptibles d'être connectés sur le bus en étant adressés au moyen d'une même adresse par le circuit maître.
Dans un mode de réalisation simplifié où seul deux circuits esclaves sont connectés sur le bus, cela revient à pouvoir connecter, sur ce bus, deux circuits esclaves sans adresse. La figure 6 est un organigramme simplifié illustrant 15 un mode d'identification par un circuit maître de deux circuits esclaves partageant la même adresse. La figure 7 illustre un exemple de trame de communication correspondant à ce processus d'identification. Dans une première étape optionnelle (bloc 41, SEND 20 SA), le circuit maître M envoie, sur le bus, l'adresse correspondant aux deux circuits esclaves. Cette adresse (bloc 42, SA) présente esclaves S1 et S2, sur le bus est détectée par les circuits ce qui provoque leur réveil (blocs 43 et 43', 25 WUP) ou correspondre connectés un Le leur ou deux circuits esclaves. à circuit maître envoie ensuite une commande de activation. En pratique, cette adresse peut celle d'un port du bus sur lequel peuvent être demande d'identifiant (bloc 44, GET UID). Dans le mode de réalisation simplifié où seuls deux 30 esclaves sont connectés sur le bus, les étapes 41 et 42 peuvent être omises et l'envoi de la commande 44 provoque le réveil des deux circuits esclaves connectés sur le bus. Comme l'illustre la figure 7, du point de vue de la trame de communication, le circuit maître initie comme 35 précédemment une communication à l'aide d'un bit de démarrage S, B10602 - 10-RO-292
11 puis envoie l'adresse de l'esclave. Le protocole peut être ici modifié par rapport à un processus I2C classique dans la mesure où le bit R/W n'est, pour la phase d'identification, pas nécessaire. De préférence, le circuit maître attend un bit d'accusé réception A, même s'il n'est pas capable d'identifier quel est celui des circuits esclaves qui l'a émis. Cela le renseigne au moins sur le fait que ces circuits esclaves ont eu le temps d'être activés. Le circuit maître envoie ensuite la commande GET UID et détecte un accusé réception correspondant, provenant là encore de l'un ou l'autre ou des deux circuits esclaves. Chaque circuit S1, S2 envoie ensuite sur le bus un identifiant unique le concernant (bloc 45, UID1 et bloc 45', UID2). Cet identifiant est unique en ce sens qu'il doit permettre de distinguer le circuit esclave de tout autre circuit esclave susceptible d'être connecté sur le port accessible par l'adresse AD. Un tel identifiant est, par exemple, mémorisé en mémoire non volatile à la fabrication du circuit esclave. Dans l'exemple de la figure 7, on suppose que l'identifiant est sur huit octets (BO à B7). Du point de vue du bus I2C, l'envoi des deux identifiants se traduit par une combinaison de type ET (AND) de ces identifiants. En effet, si le bit courant d'un des identifiants est un état 1, c'est-à-dire le niveau haut VDD, l'interrupteur 34 ou 34' correspondant reste ouvert. Si le bit courant est un état 0, la commutation de l'interrupteur 34 ou 34' force l'état du bus à la masse. Par conséquent, le 0 l'emporte sur le 1. On notera que l'affectation d'une valeur 0 ou 1 du bit de l'identifiant par rapport au potentiel haut ou bas est une convention, la combinaison opérée sur le bus de façon automatique revenant donc, selon la convention adoptée, à un ET ou à un OU logique. Cette addition bit à bit des identifiants ne sert à rien au circuit maître. Il peut toutefois le cas échéant envoyer un bit d'accusé réception (bloc 47, ACK). Cela permet, le cas B10602 - 10-RO-292
12 échéant de synchroniser la transmission. Par contre, chaque circuit esclave reçoit la combinaison UID1*UID2 et la mémorise. Puis, chaque circuit esclave S1 et S2 envoie (bloc 48 et 48') l'inverse NUID1, respectivement NUID2, de son identifiant. Il en résulte sur le bus une combinaison logique de type NON-OU (ou NON-ET selon le codage) des identifiants (bloc 49, NUID1*NUID2). De façon similaire à la transmission des identifiants 10 non inversés, le circuit maître peut envoyer un accusé réception (bloc 50, ACK). Les circuits esclaves 3 et 3' mémorisent la combinaison des identifiants inversés. Chaque circuit esclave, connaissant son propre 15 identifiant, la combinaison de cet identifiant avec les identifiants de l'autre circuit esclave et la combinaison des inverses respectifs de ces identifiants, décode (bloc 51, DECOD UID2 et bloc 51' DECOD UID1) l'identifiant de l'autre circuit esclave. Le circuit maître ne connaît toujours ni l'un ni 20 l'autre des identifiants. Toutefois, chaque circuit esclave connait l'identifiant de l'autre. Il est alors possible de mettre en oeuvre une règle de détermination (blocs 52 et 52', CHECK RULE) du circuit esclave auquel est attribué une adresse donnée, ou plus généralement un 25 ordre de communication entre les deux circuits esclaves. Dans l'exemple de la figure 6, le protocole de communication fixe une règle selon laquelle le circuit esclave possédant l'identifiant de valeur la plus petite (par exemple le circuit S1) transmet en premier son adresse (bloc 53, ADD1) au 30 circuit maître. Le circuit esclave S2 se place en attente (bloc 54, WAIT) pour transmettre son adresse (bloc 53', ADD2) au circuit maître. Il détecte par exemple l'accusé réception de la première adresse par le circuit maître. Par conséquent, le circuit maître reçoit succes-35 sivement l'adresse ADD1 qu'il mémorise (bloc 55, STORE ADD1) B10602 - 10-RO-292
13 puis l'adresse ADD2 qu'il mémorise (bloc 56, STORE ADD2). Une fois cette phase d'initialisation effectuée, le circuit maître est en mesure d'envoyer des messages, soit au circuit esclave S1, soit au circuit esclave S2.
On veillera à ce que les adresses ADD1 et ADD2 soient différentes l'une de l'autre. Par exemple, on prévoit une attribution dynamique basée sur une convention établie en tenant compte de l'ordre entre les identifiants UID. Les adresses peuvent également être envoyées par le circuit maître et prises en compte par les circuits esclaves selon la convention établie. Selon un autre exemple de réalisation, c'est tout l'identifiant UID1 et UID2 qui est transmis au circuit maître. Cette transmission peut s'effectuer successivement par chaque circuit esclave ou de façon alternée, un octet sur deux, à direction du circuit maître. Selon une variante de réalisation, les octets d'identifiant sont envoyés successivement et de façon alternée par chaque esclave. On peut ainsi prévoir que le bit d'accusé réception soit envoyé par les circuits esclaves et non par le circuit maître. Ce dernier peut toutefois vérifier le comportement individuel de chaque circuit esclave en surveillant qu'à l'issue de chaque transmission d'octet, un bit d'accusé réception soit bien présent sur le bus. Selon encore un autre exemple, l'adresse correspond simplement à un bit 0 ou 1 dans la mesure où il suffit au circuit maître d'être capable de distinguer, lors de l'envoi de ses trames, si celles-ci sont destinées à l'un deux circuits esclaves. Si d'autres circuits esclaves sont susceptibles d'être connectés au bus, ce bit supplémentaire vient compléter l'adresse SA ou en remplacer un bit. Le décodage par chacun des circuits esclaves de l'identifiant de l'autre (blocs 51 et 51' ) peut être effectué à la fin de la réception des combinaisons 46 et 49 ou, en variante, au fur et à mesure si chaque circuit esclave transmet B10602 - 10-RO-292
14 successivement un octet de son identifiant et le même octet inversé. Dans ce cas, le décodage est plus rapide. Selon une autre variante, le décodage est arrêté dès qu'un bit diffère dans les identifiants transmis par les circuits esclaves. Cela suffit pour appliquer une règle fixant lequel des circuits envoie en premier une réponse au circuit maître. On peut aussi prévoir d'alterner la transmission des identifiants et de leurs inverses, bit à bit. Ainsi, on réduit 10 au minimum l'espace de stockage nécessaire. Selon encore une autre variante, aucune adresse n'est transmise au circuit maître et celui-ci se contente de communiquer avec les deux circuits esclaves dans un ordre déterminé. Les circuits esclaves s'étant identifiés 15 mutuellement, chacun est capable, en appliquant la règle partagée, de savoir si la communication lui est destinée ou pas. Un avantage des modes de réalisation qui ont été décrits est qu'ils permettent la communication simultanée et symétrique entre un maître et deux esclaves, alors même que ces 20 deux esclaves partagent une même adresse sur le bus à l'origine. Cela peut trouver un intérêt par exemple dans des applications de traitement en temps réel, de gestion d'alarme, etc. Un autre avantage est de permettre la communication, 25 entre un circuit maître et deux circuits esclaves, sans contrainte d'adresse au niveau des circuits esclaves. La figure 8 est un chronogramme illustrant un autre exemple de protocole de communication auquel peuvent s'appliquer les modes de réalisation décrits. 30 Il s'agit d'un protocole de communication sur bus unifilaire dans lequel le signal de synchronisation est émis en même temps que les données (et le cas échéant que le signal d'alimentation). Comme dans les modes de réalisations précédents, le 35 bus (signal SW) est au repos dans un état haut VH.
B10602 - 10-RO-292
15 Toutefois, à la différence des protocoles décrit ci-dessus, les interrupteurs de modulation du bus, contenus dans les circuits maître et esclaves, ne tirent pas le bus à la masse, mais à un niveau VL inférieur au niveau VH. Pour trans- mettre des données, le circuit concerné module le signal SW en amplitude entre les deux niveaux VH et VL. Dans l'exemple représenté, une transmission initiée par le circuit maître est initialisée par un bit de démarrage START dans lequel le signal SW est forcé (instant t5) au niveau VL. Cela initialise les circuits esclaves et les prépare à recevoir des données. Le circuit maître module le niveau du signal SW au rythme d'un signal d'horloge qui fixe le débit de la transmission. La transmission d'un bit au niveau 0 s'effectue, par exemple, avec une impulsion de niveau VL d'une durée inférieure à la demi- période du signal d'horloge (dans l'exemple représenté, un quart de la période T) alors qu'un niveau 1 est codé avec une impulsion de niveau VL de durée supérieure à la demi-période de ce signal (par exemple trois quarts de la période T). Les circuits esclaves détectent la variation d'amplitude et la durée correspondante des impulsions haute et basse pour déterminer la valeur des bits transmis. Une fin de transmission (généralement la fin d'une trame) est codée par le circuit émetteur sous la forme d'un état haut (libération du bus) pendant une durée supérieure à la période T.
Les modes de réalisation du procédé d'identification qui ont été décrits ci-dessus s'appliquent à un tel bus de communication dans la mesure où la transmission d'un 0 se retrouve également prioritaire sur le bus par rapport à la transmission d'un état 1. Une interprétation de l'état du bus permet aux circuits esclaves de déterminer la relation d'ordre qui lie leurs identifiants et qui fixe l'ordre des communications ultérieures. Divers modes de réalisation ont été décrits, diverses variantes et modifications apparaîtront à l'homme de l'art. En particulier, les modes de réalisation qui ont été décrits B10602 - 10-RO-292
16 s'appliquent plus généralement à tout bus de communication série dans lequel le bus est, au repos, placé à un potentiel différent de la masse, que ce potentiel soit positif ou négatif, pourvu que chaque bit soit transmis sur une période identique quel que soit son état. De plus, la mise en oeuvre pratique des modes de réalisation qui ont été décrits est à la portée de l'homme du métier à partir des indications fonctionnelles données ci-dessus et en utilisant les circuits usuels équipant des circuits esclaves. Dans le cas où les circuits sont équipés de microcontrôleurs programmables, les modes de réalisation décrits peuvent être mis en oeuvre sur des systèmes existants qu'il suffit de reprogrammer.
Claims (10)
- REVENDICATIONS1. Procédé de communication entre un circuit maître (1, M) et deux circuits esclaves (3, 3' ; S1, S2) sur un bus série (I2C ; 44) dans lequel : les deux circuits esclaves transmettent en même temps des identifiants (UID1, UID2) qui leurs sont associés ; les deux circuits esclaves transmettent en même temps l'inverse (NUID1, NUID2) de ces identifiants ; et chaque circuit esclave exploite les combinaisons présentes sur le bus pour déterminer un ordre de communication 10 entre les deux circuits.
- 2. Procédé selon la revendication 1, dans lequel le circuit maître (1 ; M) déclenche les étapes précédentes par l'envoi d'une commande spécifique (GET UID) sur le bus.
- 3. Procédé selon la revendication 2, dans lequel 15 ladite commande (GET UID) est précédée par l'envoi, par le circuit maître (M) d'une adresse (Slave address) commune aux deux circuits esclaves (3, 3' ; S1, S2).
- 4. Procédé selon l'une quelconque des revendications 1 à 3, dans lequel chaque circuit esclave (3, 3' ; S1, S2) 20 détermine une relation entre son propre identifiant (UID1, UID2) et celui de l'autre circuit esclave.
- 5. Procédé selon la revendication 4, dans lequel la relation entre les identifiants (UID1, UID2) est une relation d'ordre. 25
- 6. Procédé selon l'une quelconque des revendications 1 à 5, dans lequel chaque circuit esclave (3, 3' ; S1, S2) transmet, au circuit maître (1 ; M), une adresse (ADD1, ADD2) le concernant, l'ordre de transmission étant fixé par la relation entre les identifiants respectifs (UID1, UID2) des circuits 30 esclaves.
- 7. Procédé selon l'une quelconque des revendications 1 à 5, dans lequel chaque circuit esclave (3, 3' ; S1, S2) transmet, au circuit maître (1 ; M), son identifiant (UID1, UID2) en guise d'adresse.B10602 - 10-RO-292 18
- 8. Procédé selon l'une quelconque des revendications précédentes, dans lequel le bus est un bus à drain ouvert (ou collecteur ouvert) dans lequel un bit est transmis sur une période de durée indépendante de l'état du bit.
- 9. Circuit électronique (1, 3, 3' ; M, S1, S2) de transmission sur bus série, comportant des moyens adaptés à la mise en oeuvre du procédé selon l'une quelconque des revendications précédentes.
- 10. Système de transmission maître-esclave entre un maître (1 ; M) et deux esclaves (3, 3' ; S1, S2), comportant des circuits selon la revendication 9.
Priority Applications (1)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| FR1057752A FR2965373B1 (fr) | 2010-09-27 | 2010-09-27 | Identification, par un circuit maitre, de deux circuits esclaves connectes sur un meme bus |
Applications Claiming Priority (1)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| FR1057752A FR2965373B1 (fr) | 2010-09-27 | 2010-09-27 | Identification, par un circuit maitre, de deux circuits esclaves connectes sur un meme bus |
Publications (2)
| Publication Number | Publication Date |
|---|---|
| FR2965373A1 true FR2965373A1 (fr) | 2012-03-30 |
| FR2965373B1 FR2965373B1 (fr) | 2012-10-12 |
Family
ID=43896619
Family Applications (1)
| Application Number | Title | Priority Date | Filing Date |
|---|---|---|---|
| FR1057752A Expired - Fee Related FR2965373B1 (fr) | 2010-09-27 | 2010-09-27 | Identification, par un circuit maitre, de deux circuits esclaves connectes sur un meme bus |
Country Status (1)
| Country | Link |
|---|---|
| FR (1) | FR2965373B1 (fr) |
Citations (2)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| US6009479A (en) * | 1995-02-17 | 1999-12-28 | Dell Usa, L.P. | System and method for assigning unique addresses to agents on a system management bus |
| US20070026716A1 (en) * | 2005-07-29 | 2007-02-01 | Jun Zhang | Data transmission interface system and method for electronic component |
-
2010
- 2010-09-27 FR FR1057752A patent/FR2965373B1/fr not_active Expired - Fee Related
Patent Citations (2)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| US6009479A (en) * | 1995-02-17 | 1999-12-28 | Dell Usa, L.P. | System and method for assigning unique addresses to agents on a system management bus |
| US20070026716A1 (en) * | 2005-07-29 | 2007-02-01 | Jun Zhang | Data transmission interface system and method for electronic component |
Also Published As
| Publication number | Publication date |
|---|---|
| FR2965373B1 (fr) | 2012-10-12 |
Similar Documents
| Publication | Publication Date | Title |
|---|---|---|
| FR2965374A1 (fr) | Communication maitre-esclave sur bus unifilaire entre un circuit maitre et au moins deux circuits esclaves | |
| US8892798B2 (en) | Identification, by a master circuit, of two slave circuits connected to a same bus | |
| EP2146287B1 (fr) | Interface entre un bus bifilaire et un bus unifilaire | |
| FR2963449A1 (fr) | Conversion d'un bus bifilaire en bus unifilaire | |
| EP2312452A2 (fr) | Protocole de communication sur bus unifilaire | |
| FR2885710A1 (fr) | Selection d'adresse pour bus i2c | |
| KR101068936B1 (ko) | 버스 연결을 통한 랜덤 액세스를 위한 방법 및 데이터 구조 | |
| TWI537742B (zh) | 具控制器區域網路匯流排模組及自動速度偵測之微控制器及用於初始化微控制器中之控制器區域網路模組之方法 | |
| FR3009633A1 (fr) | Communication sur bus i2c | |
| FR2967510A1 (fr) | Conversion de protocole de communication sur bus unifilaire | |
| FR2988949A1 (fr) | Dispositif de communication et procede de programmation ou de correction d'erreur d'un ou plusieurs participants du dispositif de communication | |
| EP0889429B1 (fr) | Lecteur de cartes à puces à protocole de transmission rapide | |
| FR3097987A1 (fr) | Procede d’adressage d’un circuit integre sur un bus et dispositif correspondant | |
| FR3017760A1 (fr) | Station de participants d'un systeme de bus et procede pour augmenter le debit de donnees dans le systeme de bus | |
| FR2965373A1 (fr) | Identification, par un circuit maitre, de deux circuits esclaves connectes sur un meme bus | |
| FR2823396A1 (fr) | Procede d'emission-reception de donnees et equipement d'emission-reception de donnees | |
| EP0519770A1 (fr) | Procédé et système de transmission de messages entre une borne de contrôle et des bornes commandées | |
| EP0666199B1 (fr) | Système électronique de véhicule automobile avec circuit d'interface entre deux bus différents | |
| WO2005008970A2 (fr) | Procede et dispositif de transmission de donnees | |
| FR3093198A1 (fr) | Transmission de données liées sur bus I2C | |
| FR3055504A1 (fr) | Procede de controle de la charge d'une passerelle de concentration de donnees pour un reseau de communication sans fil | |
| FR3066667B1 (fr) | " procede et systeme de transmission serie de donnees " | |
| EP1426843B1 (fr) | Réseau local industriel ou domestique | |
| FR2890507A1 (fr) | Procede de commande de la vitesse de communication sur un bus lin. | |
| FR2963450A1 (fr) | Message d'interruption sur bus i2c |
Legal Events
| Date | Code | Title | Description |
|---|---|---|---|
| PLFP | Fee payment |
Year of fee payment: 7 |
|
| PLFP | Fee payment |
Year of fee payment: 8 |
|
| PLFP | Fee payment |
Year of fee payment: 9 |
|
| PLFP | Fee payment |
Year of fee payment: 10 |
|
| ST | Notification of lapse |
Effective date: 20210505 |