FR2965374A1 - Communication maitre-esclave sur bus unifilaire entre un circuit maitre et au moins deux circuits esclaves - Google Patents

Communication maitre-esclave sur bus unifilaire entre un circuit maitre et au moins deux circuits esclaves Download PDF

Info

Publication number
FR2965374A1
FR2965374A1 FR1057754A FR1057754A FR2965374A1 FR 2965374 A1 FR2965374 A1 FR 2965374A1 FR 1057754 A FR1057754 A FR 1057754A FR 1057754 A FR1057754 A FR 1057754A FR 2965374 A1 FR2965374 A1 FR 2965374A1
Authority
FR
France
Prior art keywords
slave
circuit
circuits
bus
master
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
Application number
FR1057754A
Other languages
English (en)
Other versions
FR2965374B1 (fr
Inventor
Francois Tailliet
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
STMicroelectronics Rousset SAS
Original Assignee
STMicroelectronics Rousset SAS
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by STMicroelectronics Rousset SAS filed Critical STMicroelectronics Rousset SAS
Priority to FR1057754A priority Critical patent/FR2965374B1/fr
Priority to US13/243,385 priority patent/US8874816B2/en
Priority to US13/253,376 priority patent/US8892798B2/en
Publication of FR2965374A1 publication Critical patent/FR2965374A1/fr
Application granted granted Critical
Publication of FR2965374B1 publication Critical patent/FR2965374B1/fr
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/38Information transfer, e.g. on bus
    • G06F13/42Bus transfer protocol, e.g. handshake; Synchronisation
    • G06F13/4282Bus transfer protocol, e.g. handshake; Synchronisation on a serial bus, e.g. I2C bus, SPI bus
    • G06F13/4295Bus transfer protocol, e.g. handshake; Synchronisation on a serial bus, e.g. I2C bus, SPI bus using an embedded synchronisation
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/14Handling requests for interconnection or transfer
    • G06F13/36Handling requests for interconnection or transfer for access to common bus or bus system
    • G06F13/362Handling requests for interconnection or transfer for access to common bus or bus system with centralised access control
    • G06F13/364Handling requests for interconnection or transfer for access to common bus or bus system with centralised access control using independent requests or grants, e.g. using separated request and grant lines

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)

Abstract

L'invention concerne un procédé de transmission sur bus série, entre un circuit maître et deux circuits esclaves, dans lequel chaque circuit esclave conditionne la transmission d'un premier de deux états binaires à l'absence d'une transmission du second état binaire par l'autre circuit esclave.

Description

B10603 - 10-RO-301 1 COMMUNICATION MAÎTRE-ESCLAVE SUR BUS UNIFILAIRE ENTRE UN CIRCUIT MAÎTRE ET AU MOINS DEUX CIRCUITS ESCLAVES
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) et, selon un protocole où la vitesse de transmission dépend des états des bits transmis. L'invention s'applique, par exemple, à des trans-10 missions sur bus unifilaire véhiculant à la fois des données et un signal de synchronisation. 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 15 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 20 exploitant un bus à drain ouvert (ou collecteur ouvert). Qu'il s'agisse de protocoles sur bus unifilaire (par exemple, un B10603 - 10-RO-301
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. Dans un protocole sur bus unifilaire, un seul conducteur de communication (en plus d'une référence commune ou masse) est utilisé. Le signal transmis sur ce bus sert à la fois de signal de synchronisation et de données (et le cas échéant d'alimentation du récepteur). Une limitation d'un tel protocole est qu'il est 20 généralement monocanal. 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 25 ouvert). Un autre objet d'un mode de réalisation de la présente invention est de permettre à des 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 30 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 dont la durée dépend de l'état du bit. Un autre objet d'un mode de réalisation de la présente 35 invention est de proposer une solution permettant une B10603 - 10-RO-301
3 communication simultanée entre un circuit maître et deux circuits esclaves. Un autre objet d'un mode de réalisation de la présente invention est de proposer un protocole bi-canal sur bus 5 unifilaire. Pour atteindre tout ou partie de ces objets ainsi que d'autres, il est prévu un procédé de transmission sur bus série, entre un circuit maître et deux circuits esclaves, dans lequel chaque circuit esclave conditionne la transmission d'un premier 10 de deux états binaires à l'absence d'une transmission du second état binaire par l'autre circuit esclave. Selon un mode de réalisation de la présente invention, les deux états binaires sont codés par des durées entre deux impulsions de forçage du bus à un niveau différent de son niveau 15 de repos. Selon un mode de réalisation de la présente invention, une communication est initialisée par les étapes suivantes : les deux circuits esclaves transmettent en même temps des bits ayant des états identiques d'identifiants qui leurs 20 sont associés, un seul des circuits esclaves transmettant les bits dont l'état est différent de l'identifiant de l'autre circuit esclave ; les deux circuits esclaves transmettent en même temps des bits ayant des états identiques d'inverses de ces 25 identifiants qui leurs sont associés, un seul des circuits esclaves transmettant les bits dont l'état est différent de l'inverse de l'identifiant de l'autre circuit esclave ; et chaque circuit esclave exploite les combinaisons présentes sur le bus pour déterminer un ordre de communication 30 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 d'une commande spécifique sur le bus.
B10603 - 10-RO-301
4 Selon un mode de réalisation de la présente invention, ladite commande est précédée de 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, 5 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, 10 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, chaque circuit esclave transmet, au circuit maître, son 15 identifiant en guise d'adresse. 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. 20 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 : 25 la figure 1 représente, partiellement et sous forme de blocs, deux circuits susceptibles de communiquer selon un protocole maître-esclave sur un bus unifilaire ; la figure 2 est un schéma bloc partiel d'un système de communication maître-esclave selon un mode de réalisation de la 30 présente invention ; la figure 3 est un chronogramme illustrant un protocole de communication du type auquel s'applique le mode de réalisation de la figure 2 ; les figures 4A, 4B, 4C et 4D sont des chronogrammes 35 agrandis par rapport à la figure 3, illustrant une tentative de B10603 - 10-RO-301
communication entre plusieurs esclaves et un même maître dans le système de la figure 2 avec le protocole de la figure 3 ; les figures 5A, 5B, 5C et 5D sont des chronogrammes illustrant une communication entre un circuit maître et 5 plusieurs circuits esclaves dans le système de la figure 3 ; la figure 6 est un schéma bloc fonctionnel illustrant des étapes mises en oeuvre pour initier une communication entre un circuit maître et plusieurs circuits esclaves dans le système de la figure 3 ; les figures 7A, 7B, 7C et 7D sont d'autres chrono-grammes illustrant le fonctionnement du système de transmission ; et les figures 8A, 8B, 8C et 8D sont encore d'autres chronogrammes illustrant le fonctionnement du système de 15 transmission. Description détaillée 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 20 réalisation exposés seront décrits. En particulier, l'exploitation faite des données dans chacun des circuits communiquant n'a pas été détaillée, les modes de réalisation décrits étant compatibles avec les utilisations usuelles de ces données. De plus, le codage des signaux à transmettre par les 25 différents circuits communiquant n'a pas non plus été détaillé, l'invention étant là encore compatible avec des circuits usuels de codage de tels signaux. La figure 1 est un schéma bloc partiel d'un mode de réalisation d'un système de communication sur bus unifilaire. 30 Dans l'exemple de la figure 1, un circuit 1, considéré arbitrairement comme un circuit maître, est susceptible de communiquer selon un protocole unifilaire SW avec un circuit distant 2. Les circuits 1 et 2 sont reliés par un fil 3 constituant le bus unifilaire et partagent le même potentiel de 35 référence (liaison 4 - masse GND).
B10603 - 10-RO-301
6 Chaque circuit 1, 2 comporte, par exemple, un circuit d'émission (SEND) 12, respectivement 22, et un circuit de réception (DET) 14, respectivement 24. Pour une communication du circuit 1 vers le circuit 2, le circuit 1 impose un signal SM sur le bus. Pour une communication du circuit 2 vers le circuit 1, le circuit 2 impose un signal SS sur le bus. Le circuit qui provoque la transmission impose l'horloge sur le bus. Pour simplifier, on a schématisé en figure 1 les signaux SM et SS comme provenant respectivement des circuits 12 et 22 et on considère que les circuits 14 et 24 ne voient que l'état du signal S présent sur le bus. Par ailleurs, les circuits 1 et 2 comportent d'autres éléments, notamment d'exploitation des signaux transmis. Indépendamment de la communication, le circuit maître 1 alimente généralement le circuit esclave 2 comme cela est illustré en figure 1 où seul le circuit maître reçoit un potentiel d'alimentation Vdd. Le circuit esclave 2 tire son alimentation d'une régulation du signal S dont le niveau de repos, généralement imposé par le circuit 1, est à un niveau haut VH.
Au repos, le fil 3 du bus est 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 (par exemple, la masse) par les différents dispositifs communiquant. Le protocole de communication fixe différentes conditions 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. Le débit de la transmission est fixé par un signal d'horloge au rythme duquel le circuit émetteur module l'amplitude du signal présent sur le bus. Le niveau de repos du bus reste toutefois fixé par le circuit maître. Ce système fonctionne correctement à condition que le 35 circuit maître soit capable d'adresser un seul circuit esclave à B10603 - 10-RO-301
7 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 5 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 10 ê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. L'invention sera décrite par la suite en faisant plus 15 particulièrement référence à un bus unifilaire. 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 20 différente selon l'état de ce bit. La figure 2 représente, schématiquement et partiel- lement, un bus série unifilaire 3 et ses connexions à un circuit maître 1 et à deux circuits esclaves 2 et 2'. Chaque circuit 1, 2, 2' comporte un interrupteur 13, 23 ou 23' reliant à la masse 25 une borne, respectivement 15, 25 ou 25', destinée à être connectée au bus 3. Par ailleurs, comme déjà mentionné, le conducteur 3 est, au repos, tiré au potentiel Vdd, par exemple par un élément résistif R. En pratique, les interrupteurs 13, 23 et 23' sont le plus souvent réalisés sous la forme de 30 transistors MOS à canal N, c'est pourquoi on fait référence à un bus série à drain ouvert (ou collecteur ouvert). L'interrupteur 13 du circuit maître 1 est commandé par son circuit d'émission 12 (non représenté en figure 2). Les interrupteurs 23 et 23' des circuits 2 et 2' sont respectivement commandés par les circuits 35 d'émission 24 et 24' (SEND). Comme déjà illustré en relation B10603 - 10-RO-301
8 avec la figure 1, les bornes 25 et 25' sont en outre reliées en entrée de détecteurs 24 et 24' (DET) permettant à chaque circuit esclave de décoder les signaux présents sur le bus. La représentation de la figure 2 est partielle et d'autres circuits, en particulier de traitement des données transmises et à transmettre, équipent les dispositifs maître et esclave. La figure 3 est un chronogramme illustrant le fonctionnement d'un bus unifilaire à drain ouvert (ou collecteur ouvert), dans lequel la vitesse de communication dépend des états respectifs des bits transmis. Cette figure représente l'allure du bus durant une trame de communication. Dès l'allumage du circuit maître, celui-ci alimente le bus (instant ON) à un niveau haut (proche de la tension d'alimentation Vdd). La transmission s'effectue en commutant le bus au niveau bas (fermeture des interrupteurs 13, 23, 23'), de préférence pendant des durées brèves. Le choix de durées brèves selon ce protocole vise à préserver l'alimentation des circuits esclaves sans requérir d'éléments capacitifs de valeur trop importante du côté de ces circuits esclaves.
Lorsque le circuit maître souhaite initier une transmission, il place le bus au niveau bas pour avertir (réveiller) le circuit esclave branché sur le bus. L'impulsion d'initialisation (S) est suivie d'un plateau au niveau haut qui se termine à l'impulsion au niveau bas suivante. Ce plateau indique une durée de référence (tref) qui permet au circuit esclave de paramétrer un compteur qu'il contient et les durées respectives représentatives des transmissions de 0 et de 1 qui vont suivre. La transmission d'un bit à l'état 1 correspond à maintenir le bus à l'état haut pendant une première durée T1 entre deux impulsions à l'état bas. La transmission d'un état 0 correspond à maintenir le bus à l'état haut pendant une durée TO différente (inférieure dans l'exemple de la figure 3). Le premier octet comporte généralement sept bits d'adresse du circuit esclave auquel le circuit maître souhaite s'adresser suivi d'un bit d'instruction traduisant, par exemple quand il B10603 - 10-RO-301
9 est à l'état 1, une demande de lecture (read) d'informations dans le circuit esclave. A la fin de chaque octet, le circuit maître libère le bus, ce qui permet aux circuits esclaves d'accuser réception (Ack slave) par la transmission d'un bit représentant un état O. La fin d'une transmission est détectée par l'absence d'impulsion au niveau haut pendant une durée (timeout) supérieure à la durée de référence. Dans l'exemple de la figure 3 où l'esclave transmet des données au circuit maître, le circuit maître accuse réception (Ack master) à chaque fin d'octet reçu. 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 2, on suppose que les deux circuits esclaves 2 et 2' partagent la même adresse et ne sont donc, lorsqu'ils sont raccordés au bus, pas identifiables individuellement 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.
Les figures 4A, 4B, 4C et 4D sont des chronogrammes illustrant ce qui se produirait en adressant simultanément deux circuits esclaves par un même circuit maître dans le système de la figure 2. Pour simplifier la représentation des figures 4A à 4B, on a supposé une variante de protocole selon laquelle l'accusé réception n'est pas présent. Cela ne change rien au B10603 - 10-RO-301
10 fonctionnement qui va être décrit. S'il existe, l'accusé réception s'intercale simplement dans la transmission. La figure 4A est un exemple d'allure du signal SM montrant la dernière impulsion MP à l'état bas d'un envoi par le maître (par exemple le dernier bit d'un octet). La figure 4B illustre un exemple de réponse SS1 du premier circuit esclave en supposant l'émission d'un 0 (impulsion S1P - "0" from slave 1). La figure 4C illustre un exemple de réponse simultané 10 SS2 du circuit esclave en supposant l'émission d'un 1 (impulsion S2P - "1" from slave 2). La figure 4D illustre le résultat obtenu sur le bus (signal S) et montre, que l'intervalle de temps entre les deux impulsions S1P et S2P conduit à une erreur d'interprétation par 15 le circuit maître. Il n'y a que si les deux circuits esclaves répondent par des messages identiques que ceux-ci peuvent être correctement décodés par le circuit maître. Selon l'importance du décalage temporel entre un bit à l'état 1 et un bit à l'état 0, cela peut soit fausser complètement la synchronisation, soit 20 faire croire au circuit maître l'émission de deux 0 successifs mais dans tous les cas la détection est faussée. Les figures 5A, 5B, 5C et 5D sont des chronogrammes illustrant un premier mode de réalisation d'un procédé de partage d'un bus unifilaire. Ces figures représentent des 25 exemples d'allure respectivement du signal SM, des signaux SS1 et SS2 et du signal S résultant sur le bus. Comme dans le cas des figures 4A à 4D, on suppose une dernière impulsion MP (Last pulse from master), suivie d'un début de communication par les circuits esclaves et les éventuels accusés de réception n'ont 30 pas été représentés. Selon ce mode de réalisation, chaque circuit esclave surveille le bus avant de le forcer par une impulsion provenant de son circuit de commande. Si l'un des circuits esclaves positionne un 0 sur le bus (impulsion S1P - "0" from slave 1, 35 figure 5B), l'autre circuit s'abstient de placer une impulsion B10603 - 10-RO-301
11 s'il doit émettre un état 1 (Nothing from slave 2, figure 5C). Côté bus, il en résulte une impulsion indicatrice uniquement d'un 0 qui est donc interprétable et, surtout, qui ne rompt pas la synchronisation.
Si les deux circuits esclaves doivent émettre un 0, ils n'ont pas le temps de détecter que l'autre en a déjà émis un et les deux circuits forcent le bus à 0. Toutefois, dans la mesure où il s'agit d'un forçage simultané, cela ne provoque pas de désynchronisation, ni d'erreur de détection.
De même, si les deux circuits doivent émettre un 1, le forçage du bus, à l'issue de la durée T1, intervient en même temps et respecte le protocole. Le signal résultant sur le bus S n'est pas directement interprétable par le circuit maître. En effet, d'une part celui- ci ne sait pas de quel circuit esclave vient l'information. D'autre part, s'il lit un état 0, il ne sait pas si les deux circuits esclaves ont émis le même état. Ce n'est que s'il lit un état 1 qu'il sait que les deux circuits ont émis le même état.
Pour discriminer une telle incertitude, chaque circuit esclave émet, à la suite d'une transmission de données (par exemple après chaque octet ou groupe d'octets), la même donnée complémentée à 1 (l'inverse des états). Un décodage logique permettrait au circuit maître de connaître par paires, les états successifs des bits transmis. Toutefois, il reste incapable de reconstituer les mots car il ne peut pas identifier de quel circuit esclave provient chaque bit. La figure 6 est un organigramme simplifié illustrant un mode d'identification, par un circuit maître, de deux circuits esclaves partageant la même adresse. Dans une première étape optionnelle (bloc 41, SEND SA), le circuit maître M envoie, sur le bus, l'adresse correspondant aux deux circuits esclaves. Cette adresse (bloc 42, SA) présente sur le bus est détectée par les circuits esclaves S1 et S2, ce qui provoque leur réveil (blocs 43 et 43', B10603 - 10-RO-301
12 WUP) ou leur activation. En pratique, cette adresse peut correspondre à celle d'un port du bus sur lequel peuvent être connectés un ou deux circuits esclaves. Le circuit maître envoie ensuite une commande de 5 demande d'identifiant (bloc 44, GET UID). Dans le mode de réalisation simplifié où seuls deux 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. 10 Du point de vue de la trame de communication, le circuit maître initie comme précédemment une communication à l'aide d'un bit de démarrage S, puis envoie l'adresse de l'esclave. Le protocole peut être ici modifié par rapport à un processus tel que décrit en relation avec la figure 3 dans la 15 mesure où le bit, indicateur d'une demande d'écriture ou de lecture d'informations dans le circuit esclave, n'est pas nécessaire pour la phase d'identification. De préférence, le circuit maître attend un bit d'accusé réception même s'il n'est capable d'identifier quel est celui des circuits esclaves qui 20 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. 25 Chaque circuit S1, S2 cherche ensuite à envoyer 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 30 l'adresse AD. Un tel identifiant est, par exemple, mémorisé en mémoire non volatile à la fabrication du circuit esclave. Cet envoi est effectué en respectant la règle édictée en relation avec les figures 5A à 5D, c'est-à-dire qu'un état 1 n'est pas transmis si l'autre circuit a déjà transmis un état O. 35 Du point de vue du bus, l'envoi des deux identifiants se traduit B10603 - 10-RO-301
13 par une combinaison de type ET de ces identifiants. En effet, si le bit courant d'un des identifiants est un état 1 alors que l'autre est à l'état 0, le bus voit un O. Si les deux bits sont à l'état 0, le bus voit un O. Si les deux bits sont à l'état 1, le bus voit un 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 combinaison 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 é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 cherche à envoyer (bloc 48 et 48'), toujours selon la même règle, 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 non inversés, le circuit maître peut envoyer un accusé réception (bloc 50, ACK). Les circuits esclaves 2 et 2' mémorisent la 25 combinaison des identifiants inversés. Chaque circuit esclave, connaissant son propre 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 30 bloc 51' DECOD UID1) l'identifiant de l'autre circuit esclave. Le circuit maître ne connaît toujours ni l'un ni 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 35 détermination (blocs 52 et 52', CHECK RULE) du circuit esclave B10603 - 10-RO-301
14 auquel est attribué une adresse donnée, ou plus généralement un 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 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 successivement l'adresse ADD1 qu'il mémorise (bloc 55, STORE ADD1) 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, en 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.
B10603 - 10-RO-301
15 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 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 20 identifiants et de leurs inverses, bit à bit. Ainsi, on réduit 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 25 déterminé. Les circuits esclaves s'étant identifiés mutuellement, chacun est capable, en appliquant la règle partagée, de savoir si la communication lui est destinée ou pas. Pour éviter une désynchronisation des circuits, notamment dans le cas où les compteurs temporels des circuits 30 esclavess ne sont pas parfaitement calés les uns sur les autres, la fenêtre temporelle pendant laquelle les circuits de réception prennent en compte une impulsion comme correspondant à un même état tient, de préférence, compte des tolérances maximales dans les décalages temporels entre les différentes compteurs.
B10603 - 10-RO-301
16 Les figures 7A, 7B, 7C et 7D et les figures 8A, 8B, 8C et 8D sont des chronogrammes illustrant cette adaptation des fenêtres temporelles des détecteurs. Ces figures sont des représentations d'exemples de signaux similaires à ceux des figures 5A à 5D. Dans l'exemple des figures 7A à 7D, les impulsions d'état 0 des deux circuits esclaves sont légèrement décalées et se chevauchent. Dans l'exemple des figures 8A à 8D, les impulsions 10 d'état 0 des deux circuits esclaves sont suffisamment décalées pour être disjointes. La fenêtre de prise en compte de l'état 0 est choisie en fonction des tolérances à prévoir pour le système. De préférence, chaque circuit maître ou esclave 15 redémarre ou réinitialise son compteur temporel à l'issue de la dernière impulsion de la fenêtre de détection et non après sa propre génération d'impulsion, de façon à éviter une désynchronisation progressive. Divers modes de réalisation ont été décrits, diverses 20 variantes et modifications apparaîtront à l'homme de l'art. En particulier, la mise en oeuvre pratique de l'invention est à la portée de l'homme du métier à partir des indications fonctionnelles données ci-dessus et en utilisant des circuits programmables en eux-mêmes usuels.

Claims (11)

  1. REVENDICATIONS1. Procédé de transmission sur bus série, entre un circuit maître (1, M) et deux circuits esclaves (2, 2' ; S1, S2), dans lequel chaque circuit esclave conditionne la transmission d'un premier (1) de deux états binaires à l'absence d'une transmission du second état binaire (0) par l'autre circuit esclave.
  2. 2. Procédé selon la revendication 1, dans lequel les deux états binaires sont codés par des durées entre deux impulsions de forçage du bus à un niveau différent de son niveau de repos.
  3. 3. Procédé selon la revendication 1 ou 2, dans lequel une communication est initialisée par les étapes suivantes : les deux circuits esclaves (2, 2' ; S1, S2) transmettent en même temps des bits ayant des états identiques d'identifiants (UID1, UID2) qui leurs sont associés, un seul des circuits esclaves transmettant les bits dont l'état est différent de l'identifiant de l'autre circuit esclave ; les deux circuits esclaves transmettent en même temps des bits ayant des états identiques d'inverses de ces identifiants (NUID1, NUID2) qui leurs sont associés, un seul des circuits esclaves transmettant les bits dont l'état est différent de l'inverse de l'identifiant de l'autre circuit esclave ; et chaque circuit esclave exploite les combinaisons 25 présentes sur le bus pour déterminer un ordre de communication entre les deux circuits.
  4. 4. Procédé selon l'une quelconque des revendications 1 à 3, 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 30 le bus.
  5. 5. Procédé selon la revendication 3, dans lequel ladite commande (GET UID) est précédée de l'envoi, par le circuit maître (M), d'une adresse (SA) commune aux deux circuits esclaves (2, 2' ; S1, S2).B10603 - 10-RO-301 18
  6. 6. Procédé selon l'une quelconque des revendications 1 à 5, dans lequel chaque circuit esclave (2, 2' ; S1, S2) détermine une relation entre son propre identifiant (UID1, UID2) et celui de l'autre circuit esclave.
  7. 7. Procédé selon la revendication 6, dans lequel la relation entre les identifiants (UID1, UID2) est une relation d'ordre.
  8. 8. Procédé selon l'une quelconque des revendications 1 à 7, dans lequel chaque circuit esclave (2, 2' ; 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 esclaves.
  9. 9. Procédé selon l'une quelconque des revendications 1 à 7, dans lequel chaque circuit esclave (2, 2' ; S1, S2) transmet, au circuit maître (1 ; M), son identifiant (UID1, UID2) en guise d'adresse.
  10. 10. Circuit électronique (1, 2, 2' ; 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.
  11. 11. Système de transmission maître-esclave entre un maître (1 ; M) et deux esclaves (2, 2' ; S1, S2), comportant des circuits selon la revendication 10.
FR1057754A 2010-09-27 2010-09-27 Communication maitre-esclave sur bus unifilaire entre un circuit maitre et au moins deux circuits esclaves Expired - Fee Related FR2965374B1 (fr)

Priority Applications (3)

Application Number Priority Date Filing Date Title
FR1057754A FR2965374B1 (fr) 2010-09-27 2010-09-27 Communication maitre-esclave sur bus unifilaire entre un circuit maitre et au moins deux circuits esclaves
US13/243,385 US8874816B2 (en) 2010-09-27 2011-09-23 Resolving address conflicts for master-slave communications over a single-wire bus between a master circuit and at least two slave circuits
US13/253,376 US8892798B2 (en) 2010-09-27 2011-10-05 Identification, by a master circuit, of two slave circuits connected to a same bus

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
FR1057754A FR2965374B1 (fr) 2010-09-27 2010-09-27 Communication maitre-esclave sur bus unifilaire entre un circuit maitre et au moins deux circuits esclaves

Publications (2)

Publication Number Publication Date
FR2965374A1 true FR2965374A1 (fr) 2012-03-30
FR2965374B1 FR2965374B1 (fr) 2013-06-21

Family

ID=43899585

Family Applications (1)

Application Number Title Priority Date Filing Date
FR1057754A Expired - Fee Related FR2965374B1 (fr) 2010-09-27 2010-09-27 Communication maitre-esclave sur bus unifilaire entre un circuit maitre et au moins deux circuits esclaves

Country Status (2)

Country Link
US (1) US8874816B2 (fr)
FR (1) FR2965374B1 (fr)

Families Citing this family (15)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8775707B2 (en) * 2010-12-02 2014-07-08 Blackberry Limited Single wire bus system
US10175894B1 (en) * 2014-12-30 2019-01-08 EMC IP Holding Company LLC Method for populating a cache index on a deduplicated storage system
US10248677B1 (en) 2014-12-30 2019-04-02 EMC IP Holding Company LLC Scaling an SSD index on a deduplicated storage system
US10289307B1 (en) 2014-12-30 2019-05-14 EMC IP Holding Company LLC Method for handling block errors on a deduplicated storage system
US11113237B1 (en) 2014-12-30 2021-09-07 EMC IP Holding Company LLC Solid state cache index for a deduplicate storage system
US10204002B1 (en) 2014-12-30 2019-02-12 EMC IP Holding Company LLC Method for maintaining a cache index on a deduplicated storage system
US10503717B1 (en) 2014-12-30 2019-12-10 EMC IP Holding Company LLC Method for locating data on a deduplicated storage system using a SSD cache index
US9946677B2 (en) 2015-02-12 2018-04-17 Atmel Corporation Managing single-wire communications
US10353845B2 (en) 2015-02-12 2019-07-16 Atmel Corporation Adaptive speed single-wire communications
DE102015121288A1 (de) * 2015-12-07 2017-06-08 Eaton Electrical Ip Gmbh & Co. Kg Busanordnung und Verfahren zum Betreiben einer Busanordnung
DE102016103928A1 (de) * 2016-03-04 2017-09-07 Eaton Electrical Ip Gmbh & Co. Kg Busanordnung und Verfahren zum Betreiben einer Busanordnung
US10698468B2 (en) * 2017-08-30 2020-06-30 Lsis Co., Ltd. Device and method for changing setting value of electric power equipment
WO2020149855A1 (fr) 2019-01-18 2020-07-23 Hewlett-Packard Development Company, L.P. Circuits de cartouche d'impression
US10805262B1 (en) * 2019-06-10 2020-10-13 Banner Engineering Corp. Modbus system having actual and virtual slave addresses and slave sensors
JP7215381B2 (ja) * 2019-09-20 2023-01-31 トヨタ自動車株式会社 制御装置及び通信方法

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS60182245A (ja) * 1984-02-29 1985-09-17 Ricoh Co Ltd 入出力装置

Family Cites Families (13)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5483518A (en) * 1992-06-17 1996-01-09 Texas Instruments Incorporated Addressable shadow port and protocol for serial bus networks
US5404460A (en) * 1994-01-28 1995-04-04 Vlsi Technology, Inc. Method for configuring multiple identical serial I/O devices to unique addresses through a serial bus
US7099970B1 (en) * 2001-04-03 2006-08-29 Electronic Label Technology, Inc. Apparatus and method to enhance a one-wire bus
US6912606B2 (en) * 2001-06-08 2005-06-28 Sycamore Networks, Inc. Generic serial bus architecture
US6928501B2 (en) * 2001-10-15 2005-08-09 Silicon Laboratories, Inc. Serial device daisy chaining method and apparatus
US6799235B2 (en) * 2002-01-02 2004-09-28 Intel Corporation Daisy chain latency reduction
US7065593B2 (en) * 2003-12-17 2006-06-20 Tellabs Petaluma, Inc. Centralized, double bandwidth, directional, shared bus communication system architecture
JP2006129235A (ja) * 2004-10-29 2006-05-18 Tokyo Electron Device Ltd ネットワークシステム、マスターデバイス、スレーブデバイス、ネットワークシステムの立ち上げ制御方法。
US7631110B2 (en) * 2006-05-03 2009-12-08 Standard Microsystems Corporation Address assignment through device ID broadcast
TWI363274B (en) * 2007-03-19 2012-05-01 Hon Hai Prec Ind Co Ltd Uart interface communicating circuit
US7565470B2 (en) * 2007-12-04 2009-07-21 Holylite Microelectronics Corp. Serial bus device with address assignment by master device
US7707339B2 (en) * 2007-12-18 2010-04-27 Freescale Semiconductor, Inc. Data arbitration on a bus to determine an extreme value
US8205017B2 (en) * 2009-11-17 2012-06-19 Aptina Imaging Corporation Systems and methods for addressing and synchronizing multiple devices

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS60182245A (ja) * 1984-02-29 1985-09-17 Ricoh Co Ltd 入出力装置

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
ANONYMOUS: "The I2C-BUS SPECIFICATION", PHILIPS SEMICONDUCTORS,, no. VERSION 2.1, 1 January 2000 (2000-01-01), pages 1 - 46, XP002590803, Retrieved from the Internet <URL:http://www.nxp.com/acrobat_download2/literature/9398/39340011.pdf> [retrieved on 20100707] *

Also Published As

Publication number Publication date
FR2965374B1 (fr) 2013-06-21
US8874816B2 (en) 2014-10-28
US20120102248A1 (en) 2012-04-26

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
EP2312452B1 (fr) Protocole de communication sur bus unifilaire
FR3001594A1 (fr) Procede, dispositif et programme d&#39;ordinateur pour une transmission numerique de messages
FR3017223A1 (fr) Station de systeme de bus et procede pour ameliorer la qualite d&#39;emission dans le systeme de bus
FR2885710A1 (fr) Selection d&#39;adresse pour bus i2c
FR2963519A1 (fr) Protocole de communication sur bus unifilaire
FR3017760A1 (fr) Station de participants d&#39;un systeme de bus et procede pour augmenter le debit de donnees dans le systeme de bus
FR3009633A1 (fr) Communication sur bus i2c
EP0889429B1 (fr) Lecteur de cartes à puces à protocole de transmission rapide
EP2134026A1 (fr) Procédé de transmission de données à haut débit et dispositif(s) correspondant(s)
EP2368192B1 (fr) Transmission sur bus i2c
FR2988949A1 (fr) Dispositif de communication et procede de programmation ou de correction d&#39;erreur d&#39;un ou plusieurs participants du dispositif de communication
JP4856090B2 (ja) バス通信システム
FR2988934A1 (fr) Dispositif de communication et procede de programmation ou de correction d&#39;erreur d&#39;un ou plusieurs participants du dispositif de communication
FR3093198A1 (fr) Transmission de données liées sur bus I2C
FR2865333A1 (fr) Procede de detection automatique du debit d&#39;un reseau, notamment de type bus can, et de configuration au debit detecte par analyse de transitions, dispositif correspondant
FR2910207A1 (fr) Dispositif de communication pour la communication selon une regle de communication entre principal et esclave
FR2965373A1 (fr) Identification, par un circuit maitre, de deux circuits esclaves connectes sur un meme bus
FR3020543A1 (fr) Procede de gestion de la communication entre deux dispositifs mutuellement connectes par un lien serie, par exemple un protocole d&#39;interface serie point a point
WO2016166657A1 (fr) Reseau de communication
EP1612985B1 (fr) Communication bidirectionelle
EP1426843B1 (fr) Réseau local industriel ou domestique
FR3066667B1 (fr) &#34; procede et systeme de transmission serie de donnees &#34;
CN108141357B (zh) 用于在网络中生成秘密的电路装置

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