FR 3097987 A1 20210101 FR 1906951 A 20190626 Description Titre de l'invention : PROCEDE D'ADRESSAGE D'UN CIRCUIT INTEGRE SUR UN BUS ET DISPOSITIF CORRESPONDANT [0001] Des modes de mise en oeuvre et de réalisation de l'invention concernent des circuits intégrés reliés à un bus, notamment au moins un circuit intégré esclave et un circuit intégré maître reliés par un bus PC, et plus particulièrement l'adressage de ces circuits esclaves sur le bus. [0002] Le bus PC (« Inter Integrated Circuit ») est une norme bien connue de commu- nication inter-circuits-intégrés série. [0003] La figure I représente les signaux d'un exemple de communication réalisée sur un bus I2C. [0004] Le bus PC comporte deux fils, une ligne de données série SDA et une ligne d'horloge série SCL, qui transmettent des informations entre les circuits intégrés connectés au bus I2C. Chaque circuit intégré esclave est reconnu par une adresse d'esclave unique (qu'il s'agisse par exemple d'un microcontrôleur, d'une mémoire ou d'une interface clavier) et peut fonctionner comme un émetteur et/ou un récepteur, selon la fonction du circuit intégré. [0005] L'adresse d'esclave unique est attribuée en général au circuit intégré esclave lors de sa fabrication. [0006] En plus des émetteurs et des récepteurs, les circuits intégrés peuvent également être considérés comme maîtres ou esclaves lors de la transmission de données. Un circuit intégré maître est le dispositif qui déclenche un transfert de données sur le bus et génère les signaux d'horloge pour permettre cc transfert. À ce moment-là, tout circuit intégré adressé est considéré comme un esclave. [0007] La ligne SDA est une ligne bidirectionnelle, les données à communiquer via le bus PC sont matérialisées par des signaux pouvant avoir un niveau HAUT ou un niveau BAS. [0008] Pendant une transmission de données, le signal de la ligne SDA doit être stable pendant la période HAUTE du signal d'horloge. L'état HAUT ou BAS de la ligne de données SDA ne peut changer que lorsque le signal d'horloge sur la ligne SCL est BAS. [0009] Toutes les transactions commencent par une condition de départ « START » STT et se terminent par une condition de fin « STOP» STP. Une transition HAUT vers BAS sur la ligne SDA alors que SCL est HAUT, définit une condition de départ STT. Une transition BAS vers HAUT sur la ligne SDA alors que SCL est HAUT, définit une condition de fin STP. 2 [0010] Sur la ligne SDA, les niveaux HAUT et BAS du signal représentent respectivement les valeurs logiques « 1 » et « 0 ». [0011] Les transferts de données suivent le format représenté par la figure 1. Après la condition de départ STT, une adresse esclave SLADR est envoyée. Cette adresse est codée sur 7 bits suivis d'un huitième bit de direction R! un « zéro » indique une transmission de données (ou écriture) W, un « un » indique une demande de réception de données (ou lecture) R. [0012] Les données DATA1, DATA2 sont transmises par octet (soit 8 bits) sur la ligne SDA. Le nombre d'octets qui peut être transmis par transfert est illimité. Chaque octet doit être suivi d'un bit de confirmation ACK. Par convention, les données DATAI, DATA2 sont transférées avec le bit de poids fort MSB en première position. [0013] La confirmation a lieu après chaque octet. Le bit de confirmation ACK permet au récepteur de signaler à l'émetteur que l'octet a été reçu avec succès et qu'un autre octet peut être envoyé. [0014] Un transfert de données se termine toujours par une condition de fin STP générée par le maître. [0015] Cependant, l'adresse d'esclave unique peut être commune à plusieurs circuits intégrés, par exemple lorsque les circuits intégrés esclaves sont fournis par des fabricants différents, créant un conflit d'adresse, le circuit intégré maître recevant en réponse à un message comportant une adresse d'esclave plusieurs messages. [0016] Selon d'autres utilisations du bus, l'adresse esclave unique attribuée par le fabricant du circuit intégré esclave n'est pas adaptée à la mise en oeuvre du bus. Il est alors nécessaire de modifier cette adresse de sorte que des instructions mis en oeuvre par le circuit intégré maître identifiant un circuit intégré spécifique, par exemple un clavier, porte une adresse esclave prédéfinie. 100171 Actuellement, les circuits intégrés incorporent des ports d'entrée/sortie connus par l'homme du métier sous l'acronyme anglo-saxon GPIO « General Purpose Input/ Output » pour configurer l'adresse unique esclave. 100181 Cependant, des ports sont utilisés exclusivement ou temporairement pour l'adressage dudit circuit intégré esclave au détriment d'autres fonctionnalités ou limitant desdits ports. Si des ports additionnels sont nécessaires pour d'autres fonctionnalités, il est nécessaire de rajouter des ports augmentant d'autant la surface de silicium du circuit intégré esclave et sa consommation. 100191 Une autre solution connue consiste, lors de la fabrication du circuit, à assigner une adresse prédéterminée fournie par l'utilisateur du circuit. 100201 Cependant, cela complexifie la fabrication du circuit. 100211 11 existe ainsi un besoin de simplifier l'adressage d'un circuit intégré esclave sans 3 utiliser des ports et en offrant une flexibilité accrue dans l'adressage dudit circuit. [0022] Selon des modes de mises en oeuvre et de réalisation, il est avantageusement proposé de s'appuyer sur un standard de communication pour changer l'adresse esclave unique sans utiliser des ressources physiques (« Hardware » en anglais) du circuit intégré esclave. [0023] Selon un aspect, il est proposé un procédé d'adressage d'au moins un circuit intégré esclave connecté sur un bus, ledit au moins un circuit esclave ayant une adresse par défaut sur le bus, le procédé comprenant au sein dudit au moins un circuit intégré esclave un remplacement de l'adresse par défaut par une adresse de remplacement à la réception d'un message d'adressage véhiculé sur le bus et contenant ladite adresse de remplacement. [0024] Le changement de l'adresse par défaut est avantageusement effectué par la réception du message d'adressage interprétable par une interface de communication du circuit intégré esclave sans mise en oeuvre de ressource physique supplémentaire (« Hardware ») du circuit intégré esclave. [0025] Selon un mode de mise en oeuvre, le bus est un bus PC, et le message d'adressage est émis par un circuit intégré maître connecté sur le bus. [0026] Selon un autre mode de mise en oeuvre, ledit au moins un circuit intégré esclave comporte également une deuxième adresse unique, et le message d'adressage comporte ladite deuxième adresse de sorte que le circuit intégré esclave s'identifie comme étant le destinataire dudit message d'adressage. [0027] Seul le circuit intégré esclave désigné par la deuxième adresse unique contenue dans le message d'adressage est configuré pour effectuer le remplacement de son adresse par défaut par l'adresse de remplacement. [0028] La deuxième adresse unique est une adresse étendue du circuit intégré esclave. [0029] Contrairement à l'adresse par défaut, cette adresse n'est pas reconnue par le bus. [0030] Selon encore un autre mode de mise en oeuvre, plusieurs circuits intégrés esclaves sont connectés sur le bus, et le message d'adressage comporte en outre une indication interprétable par lesdits circuits esclaves, seul le circuit intégré esclave désigné par la deuxième adresse contenue dans le message d'adressage effectuant le remplacement de son adresse par défaut par l'adresse de remplacement. [0031] Selon encore un autre mode de mise en oeuvre, le remplacement de l'adresse par défaut par l'adresse de remplacement comprend un stockage de l'adresse de remplacement dans un moyen de mémoire non volatil du circuit intégré esclave, et lors de chaque redémarrage ultérieur du circuit esclave, le circuit intégré esclave lit le contenu dudit moyen de mémoire définissant son adresse par défaut sur le bus. [0032] A chaque démarrage ultérieur au remplacement de l'adresse par défaut par l'adresse de remplacement, le circuit intégré esclave est identifié sur le bus par l'adresse de rem- placement. [0033] Selon un autre mode de mise en oeuvre, le remplacement de l'adresse par défaut par l'adresse remplacement comprend un stockage de l'adresse de remplacement dans un moyen de mémoire volatil du circuit intégré esclave, et lors de chaque redémarrage ultérieur du circuit intégré esclave, le circuit intégré maître réémet ledit message d'adressage. [0034] Selon un autre aspect, il est proposé un dispositif, comprenant au moins un circuit intégré esclave connecté sur un bus, ledit au moins un circuit esclave ayant une adresse par défaut sur le bus, le dispositif étant configuré pour remplacer l'adresse par défaut au sein dudit au moins un circuit intégré esclave par une adresse de remplacement à la réception d'un message d'adressage véhiculé sur le bus et contenant ladite adresse de remplacement. [0035] Selon un mode de réalisation, le dispositif comprend en outre un circuit intégré maître connecté sur le bus, le bus étant un bus PC, le circuit maître étant configuré pour émettre le message d'adressage. [0036] Selon un autre mode de réalisation, le circuit intégré esclave possède également une deuxième adresse unique, et le message d'adressage comporte ladite deuxième adresse de sorte que le circuit intégré esclave soit configuré pour s'identifier comme étant le destinataire dudit message d'adressage. [0037] Selon encore un autre mode de réalisation, le dispositif comporte plusieurs circuits intégrés esclaves connectés sur le bus, et le message d'adressage comporte en outre une indication interprétable par lesdits circuits intégré esclaves, seul le circuit intégré esclave désigné par la deuxième adresse contenue dans le message d'adressage étant configuré pour effectuer le remplacement de son adresse par défaut par l'adresse de remplacement. [0038] Selon encore un autre mode de réalisation, le circuit intégré esclave comprend un moyen de mémoire non volatile configuré pour stocker l'adresse de remplacement de sorte que lors de chaque redémarrage ultérieur du circuit intégré esclave, le circuit intégré esclave soit configuré pour lire le contenu dudit moyen de mémoire définissant son adresse par défaut sur le bus. [0039] Selon encore un autre mode de réalisation, le circuit intégré esclave comprend un moyen de mémoire volatile configuré pour stocker l'adresse de remplacement, le circuit intégré maître étant configuré pour réémettre ledit message d'adressage lors de chaque redémarrage ultérieur du circuit intégré esclave. [0040] D'autres avantages et caractéristiques de l'invention apparaîtront à l'examen de la description détaillée de modes de réalisation, nullement limitatifs, et des dessins annexés sur lesquels : [0041] [fig.1] précédemment décrite, représente les signaux d'un exemple de commu- nication réalisée sur un bus I2C ; [0042] [fig.2] [0043] [fig.3] [0044] [fig.4] illustrent différents modes de réalisation et de mise en oeuvre de l'invention. [0045] On se réfère à la figure 2 qui représente un exemple d'un premier mode de réalisation d'un dispositif 1 comportant un circuit intégré esclave 2 connecté sur un bus 3. [0046] Le dispositif 1 comprend en outre un circuit intégré maître 4 connecté sur le bus 3. [0047] Le circuit intégré maître 4 est identifié sur le bus 3 par une adresse ADD4. [0048] Le bus 3 est par exemple un bus 12C. [0049] Le dispositif 1 peut comprendre un deuxième circuit intégré esclave S configure pour communiquer avec le bus 3. [0050] Le deuxième circuit intégré esclave S peut être d'architecture identique au circuit intégré esclave 2 ou d'architecture différente. [0051] On suppose par la suite que le deuxième circuit intégré esclave 5 est d'architecture identique au circuit intégré esclave 2. [0052] Le circuit intégré esclave 2 comprend une interface de communication 6 contigu& pour communiquer avec le bus 3, une unité de traitement 7 et un moyen de mémoire non volatile 8 reliés entre eux par un bus interne 9. [0053] Le moyen de mémoire non volatile 8 est par exemple une mémoire flash. [0054] L'interface de communication 6 comprend un module de communication 10 relié d'une part à la ligne de données série SDA et à la ligne d'horloge série SCL du bus 3, et, d'autre part à un moyen de mémoire volatile 11, par exemple une mémoire RAM. [0055] L'interface de communication 6 comprend en outre un registre d'initialisation 12. [0056] La mémoire volatile 11 et le registre d'initialisation 12 sont reliés au bus interne 9. [0057] Le registre d'initialisation 12 contient une adresse par défaut ADDI et une deuxième adresse unique ADD2 (adresse étendue) données par le fabricant du circuit 1. [0058] L'adresse par défaut ADDI permet au circuit intégré maître 4 d'identifier le circuit intégré esclave 2 sur le bus 3. [0059] Comme les circuits intégrés esclaves 2 et 5 ont une architecture identique, on suppose que l'adresse par défaut du deuxième circuit 5 est identique à celle du circuit intégré esclave 2 de sorte que les deux circuits 2 et 5 sont identifiés sur le bus 3 par la même adresse ADDI, et que le deuxième circuit 5 comporte une deuxième adresse unique ADD21 différente de la deuxième adresse unique ADD2 du circuit esclave intégré 2. [0060] Comme les deux circuits intégrés 2 et 5 comportent la même adresse ADDI sur le bus, les deux circuits 2 et 5 créent un conflit d'adressage sur le bus 3. [0061] 11 est alors nécessaire de modifier l'adresse par défaut d'au moins l'un des circuits intégrés esclaves 2 et 5. 6 [0062] Par la suite, on se propose de remplacer l'adresse par défaut du circuit intégré esclave 2. [0063] Le dispositif d'adresse 1 est configuré pour remplacer l'adresse par défaut ADD1 au sein du circuit intégré esclave 2 par une adresse de remplacement ADD3 à la réception d'un message d'adressage MESS véhiculé sur le bus 3 et contenant ladite adresse de remplacement ADD3. [0064] Le circuit intégré maître 4 est configuré pour émettre le message d'adressage MESS. [0065] Le message d'adressage MESS comporte en outre une indication IND interprétable par les circuits intégrés esclaves 2 et 5, et des instructions INST de remplacement de l'adresse par défaut ADD1 par l'adresse ADD3 sur le bus 3. [0066] Le message d'adressage MESS comporte en outre la deuxième adresse ADD2 de sorte que le circuit intégré esclave 2 s'identifie comme étant le destinataire dudit message d'adressage. [0067] Seul le circuit intégré esclave 2 désigné par la deuxième adresse ADD2 contenue dans le message d'adressage MESS est configuré pour effectuer le remplacement de son adresse par défaut ADD1 par l'adresse de remplacement ADD3. [0068] Le moyen de mémoire non volatile 8 est configuré pour stocker l'adresse de rem- placement ADD3 de sorte que lors de chaque redémarrage ultérieur du circuit intégré esclave 2, le circuit intégré esclave 2 lit le contenu dudit moyen de mémoire définissant son adresse par défaut ADD1 sur le bus. [0069] A chaque redémarrage, l'unité de traitement 7 lit le contenu du moyen de mémoire non volatile 8. Si le moyen 8 contient l'adresse ADD3, l'unité de traitement 7 recopie l'adresse ADD3 dans la mémoire volatile 11. L'adresse ADD3 est utilisée par le module de communication 10 pour identifier le circuit intégré esclave 2 sur le bus. [0070] Dans ce qui suit, les mêmes références alpha-numériques désignent les mêmes éléments. [0071] On se réfère à la figure 3 qui représente un exemple d'un deuxième mode de réa- lisation du dispositif 1. [0072] On retrouve les circuits intégrés esclaves 2 et 5, et le circuit intégré maître 4 reliés au bus 3. [0073] Ce mode de réalisation diffère du premier mode de réalisation illustré à la figure 1 en ce que le circuit intégré esclave 2 ne comprend pas de moyen de mémoire non volatile. [0074] Le moyen de mémoire volatile 11 est configuré pour stocker l'adresse de rem- placement ADD3. [0075] Le circuit intégré maître 4 est configuré pour réémettre le message d'adressage MESS lors de chaque redémarrage ultérieur du circuit intégré esclave 2. [0076] Le message d'adressage MESS comprend en outre l'adresse ADD4 du circuit intégré maître 4. 7 [0077] On se réfère à la figure 4 qui illustre un exemple de mise en oeuvre du dispositif 1. [0078] Dans une première étape 20, le circuit intégré maître 4 émet la condition de départ STT suivi de l'indication IND interprétable par les circuits intégrés esclaves 2 et 5. Dans le cas du bus 12C, il s'agit d'un appel général représenté par un octet dont tous les bits sont égaux au niveau bas «O ». [0079] A la réception de bits de confirmation ACK émis par les circuits intégrés esclaves 2 et 5 capables d'interpréter l'indication IND, le circuit intégré maître 4 émet un octet comprenant son adresse ADD4 codée sur sept bits et un bit de niveau haut « 1 » (étape 21). [0080] Si un circuit intégré esclave n'est pas capable d'interpréter l' indication IND, il ne renvoie pas de bit de confirmation ACK. [0081] Dans ce cas il ne peut pas modifier son adresse par défaut. [0082] A la réception de bits de confirmation ACK émis par les circuits intégrés esclaves 2 et 5, le circuit intégré maître 4 émet un octet comprenant les instructions INST (étape 22). [0083] A la réception de bits de confirmation ACK émis par les circuits intégrés esclaves 2 et 5, le circuit intégré maître 4 émet un octet comprenant la deuxième adresse unique ADD2 codé sur plusieurs bits (étape 23). [0084] Si l'adresse ADD2 est codée sur plus de huit bits, le circuit intégré maître 4 divise l'adresse ADD2 en plusieurs octets, chaque octet étant émis après la réception d'un bit de confirmation émis par les circuits intégrés esclaves 2 et 5. [0085] Puis à la réception de bits de confirmation ACK émis par les circuits intégrés esclaves 2 et 5, le circuit intégré maître 4 émet un octet comprenant l'adresse de remplacement ADD3 codé sur un octet (étape 24). [0086] Puis à la réception de bits de confirmation ACK émis par les circuits intégrés esclaves 2 et 5, le circuit intégré maître 4 émet la condition de fin STP (étape 25). [0087] Le message MESS est stocké dans la mémoire volatile 11 de chaque circuit intégré esclave 2, 5 au fur et à mesure de sa réception. [0088] A la réception de la condition de fin STP, l'unité de traitement 7 de chaque circuit intégré esclave 2, 5 exécute le message MESS stocké dans la mémoire volatile 11 (étape 26). [0089] Comme le circuit intégré esclave 2 comporte la deuxième adresse unique ADD2, l'unité de traitement 7 stocke l'adresse ADD3 dans le moyen de mémoire non volatile 8. [0090] Lorsque le circuit intégré esclave 2 ne comporte pas de moyen de mémoire non volatile, l'unité de traitement 7 stocke l'adresse ADD3 dans le moyen de mémoire volatile 11. [0091] Dans ce cas, à chaque démarrage du circuit intégré esclave 2, le circuit intégré maître 8 4 est informé du démarrage du circuit 2 par le bus 3 et réémet le message d'adressage MESS. [0092] En variante, les adresses ADD1 et ADD3 peuvent être codées sur dix bits selon le standard 12C, l'adresse comportant un premier octet comportant le code 11110 sur les cinq premiers bits suivant des deux bits de poids fort de l'adresse et un deuxième octet comportant les huit bits suivant de l'adresse. [0093] En variante, le message d'adressage MESS peut comprendre en outre un code de contrôle de l'intégrité des données envoyées de sorte que le circuit intégré maître émetteur du message d'adressage MESS puisse s'assurer que le circuit intégré esclave destinataire du message d'adressage a reçu le message d'adressage MESS. [0094] Bien entendu, bien que dans ce qui précède, le bus 3 est de type PC, le procédé d'adressage s'applique également sur tout bus apte à faire transiter un appel général (« general call ») interprétable par des circuits intégrés esclaves connectés audit bus. 9 [Revendication 1] [Revendication 2] [Revendication 3] [Revendication 4] [Revendication 5] [Revendication 6] [Revendication 7] REVENDICATIONSProcédé d'adressage d'au moins un circuit intégré esclave (2) connecté sur un bus (3), ledit au moins un circuit esclave ayant une adresse par défaut (ADD1) sur le bus, le procédé comprenant au sein dudit au moins un circuit intégré esclave un remplacement de l'adresse par défaut par une adresse de remplacement (ADD3) àla réception d'un message d'adressage (MESS) véhiculé sur le bus et contenant ladite adresse de remplacement. Procédé selon la revendication I. dans lequel le bus est un bus 12C, et le message d'adressage est émis par un circuit intégré maître (4) connecté sur le bus. Procédé selon l'une des revendications précédentes, dans lequel ledit au moins un circuit intégré esclave (2) comporte également une deuxième adresse unique (ADD2), et le message d'adressage (MESS) comporte ladite deuxième adresse de sorte que le circuit intégré esclave s'identifie comme étant le destinataire dudit message d'adressage. Procédé selon l'une des revendications précédentes, dans lequel plusieurs circuits intégrés esclaves (2, 5) sont connectés sur le bus (3), et le message d'adressage (MESS) comporte en outre une indication (11,4D) interprétable par lesdits circuits esclaves, seul le circuit intégré esclave désigné par la deuxième adresse (ADD2) contenue dans le message d'adressage effectuant le remplacement de son adresse par défaut (ADD1) par l'adresse de remplacement (ADD3). Procédé selon l'une des revendications précédentes, dans lequel le remplacement de l'adresse par défaut (ADD1) par l'adresse de remplacement (ADD3) comprend un stockage de l'adresse de remplacement dans un moyen de mémoire non volatil (8) du circuit intégré esclave (2), et lors de chaque redémarrage ultérieur du circuit esclave, le circuit intégré esclave lit le contenu dudit moyen de mémoire définissant son adresse par défaut sur le bus. Procédé selon l'une des revendications 1 à 4, dans lequel le remplacement de l'adresse par défaut (ADD1) par l'adresse remplacement (ADD3) comprend un stockage de l'adresse de remplacement dans un moyen de mémoire volatil (11) du circuit intégré esclave (2), et lors de chaque redémarrage ultérieur du circuit intégré esclave, le circuit intégré maître réémet ledit message d'adressage. Dispositif, comprenant au moins un circuit intégré esclave (2) connecté 10 [Revendication 8] [Revendication 9] [Revendication 10] [Revendication 11] [Revendication 12] sur un bus (3), ledit au moins un circuit esclave ayant une adresse par défaut (ADD1) sur le bus, le dispositif étant configure pour remplacer l'adresse par défaut au sein dudit au moins un circuit intégré esclave par une adresse de remplacement (ADD3) à la réception d'un message d'adressage (MESS) véhiculé sur le bus et contenant ladite adresse de remplacement. Dispositif selon la revendication 7, comprenant en outre un circuit intégré maître (4) connecté sur le bus, le bus étant un bus PC, le circuit maître étant configuré pour émettre le message d'adressage. Dispositif selon l'une des revendications 7 à 8, dans lequel ledit au moins un circuit intégré esclave (2) possède également une deuxième adresse unique (ADD2), et le message d'adressage (MESS) comporte ladite deuxième adresse de sorte que le circuit intégré esclave soit configuré pour identifier comme étant le destinataire dudit message d'adressage. Dispositif selon l'une des revendications 7 à 9, comportant plusieurs circuits intégrés esclaves (2, 5) connectés sur le bus (3), et le message d'adressage (MESS) comporte en outre une indication (IND) interprétable par lesdits circuits intégré esclaves, seul le circuit intégré esclave désigné par la deuxième adresse (ADD2) contenue dans le message d'adressage étant configuré pour effectuer le remplacement de son adresse par défaut par l'adresse de remplacement (ADD3). Dispositif selon l'une des revendications 7 à 10, dans lequel le circuit intégré esclave (2) comprend un moyen de mémoire non volatile (8) configuré pour stocker l'adresse de remplacement (ADD3) de sorte que lors de chaque redémarrage ultérieur du circuit intégré esclave, le circuit intégré esclave soit configuré pour lire le contenu dudit moyen de mémoire définissant son adresse par défaut sur le bus. Dispositif selon l'une des revendications 7 à 10, dans lequel le circuit intégré esclave (2) comprend un moyen de mémoire volatile (11) configuré pour stocker l'adresse de remplacement (ADD3), le circuit intégré maître étant configuré pour réémettre ledit message d'adressage lors de chaque redémarrage ultérieur du circuit intégré esclave.