Brevet FR3071938A1 — publié le 20190405

B16242FR - 16-R0-0296 1 DETECTION D'UNE CONDITION TEMPORELLE SUR UN BUS BIFILAIRE Domaine La présente demande concerne de manière générale les circuits électroniques, et plus particulièrement les circuits susceptibles d'être connectés à un bus bifilaire I2C. Exposé de l'art antérieur Un bus I2C est un bus bifilaire normalisé comportant deux conducteurs respectivement destinés à transmettre des données en série et un signal de synchronisation. Un bus SMB ou SMBus (System Management Bus) est un bus I2C particulier qui prévoit, en outre, la détection d'une condition temporelle sur la durée d'état bas du signal de synchronisation. Plus particulièrement, la norme SMB prévoit de détecter si le signal de synchronisation reste à l'état bas plus longtemps qu'une durée donnée. Résumé Un mode de réalisation de la présente description pallie tout ou partie des inconvénients des procédés et/ou des circuits existants de détection d'une condition temporelle sur la durée d'état bas du signal de synchronisation d'un bus I2C, en particulier d'un bus SMB. Un autre mode de réalisation concerne plus particulièrement la détection d'une condition temporelle sur la durée d'état bas du signal de synchronisation d'un bus I2C, en B16242FR - 16-R0-0296 2 particulier d'un bus SMB, lors de la transmission d'un octet sur ce bus. Un autre mode de réalisation s'affranchit des dispersions de fabrication d'un circuit vérifiant une condition temporelle sur la durée d'état bas du signal de synchronisation d'un bus I2C, plus particulièrement d'un bus SMB. Ainsi, un mode de réalisation prévoit un procédé dans lequel une valeur représentative d'une durée d'état bas d'un signal de synchronisation d'un bus est comparée à un seuil stocké en mémoire, ladite valeur représentant, lors d'une première comparaison, la plus longue durée des états bas dudit signal. Selon un mode de réalisation, lors de la première comparaison, ladite valeur représente la plus longue durée des états bas dudit signal ayant eu lieu avant ladite première comparaison. Selon un mode de réalisation, la première comparaison est effectuée après la lecture du seuil dans la mémoire, ladite lecture étant effectuée de manière synchronisée avec le signal de synchronisation. Selon un mode de réalisation, la mémoire est une mémoire non volatile. Selon un mode de réalisation, le seuil stocké en mémoire est déterminé lors d'une phase d'étalonnage. Selon un mode de réalisation, le bus est un bus I2C, par exemple un bus SMB. Selon un mode de réalisation, le seuil est représentatif d'une durée comprise entre 25 et 35 ms. Selon un mode de réalisation, le seuil est lu dans la mémoire pendant une première transmission d'un octet sur le bus après la mise en fonctionnement dudit bus. Selon un mode de réalisation, la première comparaison est effectuée avant un instant où un accusé de réception dudit octet devrait être émis sur ledit bus. Selon un mode de réalisation, la première comparaison est effectuée entre la transmission du dernier bit dudit octet et ledit instant. B16242FR - 16-R0-0296 3 Un autre mode de réalisation prévoit un dispositif adapté à la mise en oeuvre du procédé susmentionné. Selon un mode de réalisation, le dispositif comprend un oscillateur et un compteur configuré pour compter un nombre de périodes de l'oscillateur pendant la durée de chaque état bas dudit signal, ladite valeur étant déterminée à partir du nombre de périodes comptées pour chaque état bas. Selon un mode de réalisation, après chaque état bas dudit signal précédant la première comparaison, ladite valeur est mise à jour avec le nombre de périodes comptées pendant l'état bas si ledit nombre est supérieur à ladite valeur. Selon un mode de réalisation, la mémoire, l'oscillateur et le compteur mettent également en oeuvre une fonction de détection de présence. Selon un mode de réalisation, la mémoire est une mémoire de type EEPROM, l'oscillateur et le compteur faisant partie d'un circuit d'écriture dans ladite mémoire. Brève description des dessins Ces 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 est une représentation schématique, sous forme de blocs, d'un système électronique comportant des circuits connectés à un bus I2C ; la figure 2 représente des chronogrammes illustrant, de façon très schématique, une communication selon le protocole I2C entre deux circuits du système électronique de la figure 1 ; la figure 3 est un organigramme illustrant un mode de réalisation d'un procédé de détection d'une condition temporelle sur la durée d'état bas d'un signal de synchronisation du bus de la figure 1 ; et la figure 4 est un organigramme illustrant un mode de réalisation plus détaillé du procédé de la figure 3. B16242FR - 16-R0-0296 4 Description détaillée De mêmes éléments ont été désignés par de mêmes références dans les différentes figures. Par souci de clarté, seuls les éléments utiles à la compréhension des modes de réalisation décrits ont été représentés et sont détaillés. En particulier, le fonctionnement d'un bus SMB n'a pas été décrit en détail, les modes de réalisation décrits étant compatibles avec le fonctionnement usuel des bus SMB. De plus, le fonctionnement des dispositifs ou circuits connectés à un bus SMB n'a pas été décrit, les modes de réalisation décrits étant compatibles avec les dispositifs ou circuits usuels destinés à être connectés à un bus SMB. Dans la suite de la description, on appelle bus SMB, un bus conforme à la norme SMBus intitulée "System Management Bus", publiée le 20 décembre 2014 et disponible à l'adresse http://smbus.org/specs/SMBus 3 0 20141220.pdf. La figure 1 est une représentation schématique, sous forme de blocs, d'un système électronique comportant des circuits 1, 3, 5 connectés à un bus I2C 7. Le bus 7 comporte un conducteur 9 de transmission d'un signal binaire de données SDA, et un conducteur 11 de transmission d'un signal binaire de synchronisation SCL. Chaque circuit 1, 3, 5 est relié aux conducteurs 9 et 11. Chaque circuit 1, 3, 5 est en outre relié à un conducteur 13 mis à un potentiel de référence, typiquement la masse GND. Les circuits 1, 3, 5 et autres circuits connectés au bus I2C ou appartenant au dispositif électronique peuvent être alimentés sous une même tension ou sous des tensions différentes. Par exemple, les circuits 1, 3 et 5 sont connectés à un conducteur 15 mis à un potentiel d'alimentation Vdd positif par rapport à la masse GND. Les conducteurs 9 et 11 sont individuellement reliés par des résistances de tirage (pull-up) Rp au conducteur 15. Ainsi, au repos, les signaux SDA et SCL sont à un potentiel proche du potentiel Vdd représentant un des deux états binaires (état haut) des signaux SDA et SCL, l'autre état binaire (état bas) des signaux SDA et SCL étant représenté par le potentiel de masse GND. B16242FR - 16-R0-0296 Le protocole I2C prévoit que, pour une transmission sur le bus 7, un des circuits, par exemple le circuit 1, fait fonction de dispositif maître (MD) et impose le signal de synchronisation SCL. Les autres circuits, par exemple 3 et 5, connectés au bus ont alors le statut d'esclave (SD) pour recevoir les données transmises par le circuit 1. Ces données peuvent être à destination de plusieurs circuits esclaves ou d'un seul d'entre eux. Un même circuit peut tantôt avoir la fonction de maître et tantôt la fonction d'esclave en fonction du sens de communication. La figure 2 représente des chronogrammes illustrant, de façon très schématique, une communication selon le protocole I2C entre deux circuits du système électronique de la figure 1. Ces chronogrammes, tracés sans respect d'échelle, représentent des exemples d'allure du signal SCL et du signal SDA. Le protocole I2C définit une condition START de début de communication par une commutation du signal SDA vers l'état bas (instant to) alors que le signal SCL est à l'état haut. Cette commutation est provoquée par celui des circuits qui prend le statut de maître pour la communication. Les différents circuits esclaves surveillent les états respectifs des signaux SCL et SDA et détectent la condition START indiquant qu'une communication va débuter. Le circuit maître, ici 1, transmet ensuite un premier octet. Pour cela, après voir commuté le signal SCL au niveau bas à un instant t1 postérieur à l'instant to, le circuit maître 1 impose l'état du signal SDA à un instant t2 postérieur à l'instant tl, en fonction de l'état du premier bit B7 de l'octet à transmettre, puis relâche le signal SCL à l'état haut à un instant t3 postérieur à l'instant t2. L'état du signal SDA est lu par les circuits esclaves, ici 3 et 5, à l'instant t3, lors du front montant suivant du signal SCL. Lorsque le signal SCL revient à l'état bas, à un instant t4 postérieur à l'instant t3, le circuit maître 1 continue l'opération avec les bits suivants B6, B5 ... BO, jusqu'à transmission de l'octet complet. Le plus souvent, le premier octet envoyé par le circuit maître 1 comporte sept bits d'adresse identifiant le circuit destinataire, suivi d'un bit B16242FR - 16-R0-0296 6 indicateur de l'opération (lecture-écriture) souhaitée par le circuit maître. Les différents circuits esclaves détectent les données transmises et, notamment, déterminent à partir du premier octet constituant l'adresse du destinataire, si le ou les octets suivants leurs sont destinés. A la fin du dernier bit BO (instant t5) du premier octet, alors que le circuit maître impose le signal SCL à l'état bas, il relâche le signal SDA à l'état haut. Le circuit esclave identifié par l'adresse transmise, par exemple le circuit 3, accuse réception (ACK) de l'octet transmis en commutant le signal SDA à l'état bas à un instant t6 postérieur à l'instant t5. Cet état bas du signal SDA est détecté par le circuit maître 1 au front montant suivant du signal SCL, à un instant t7 postérieur à l'instant t6. Quand le signal SCL repasse à l'état bas, à un instant t8 postérieur à l'instant t7, le circuit maître 1 peut transmettre l'octet suivant et ainsi de suite jusqu'à la fin de la communication. Une fois le ou les octets suivants transmis, un accusé de réception ACK ayant été reçu du circuit esclave 3 après la transmission de chaque octet, le circuit maître 1 impose une condition d'arrêt STOP en relâchant le signal SDA à l'état haut (instant t9) alors que le signal SCL est à l'état haut. Les différents circuits esclaves 3 et 5 qui surveillent les signaux SCL et SDA détectent la condition STOP indiquant que la communication est terminée. Les circuits 1, 3 et 5 connectés au bus se placent alors dans un état d'attente d'une nouvelle communication, autrement dit d'une nouvelle condition START. Par exemple, chaque circuit 1, 3, 5 comprend une interface de lecture/écriture sur le bus 7 qui est alors mise dans cet état d'attente d'une nouvelle condition START. Dans le cas (non représenté en figure 2) où aucun circuit esclave n'accuse réception après la transmission d'un octet par le circuit maître, le signal SDA reste à l'état haut après la transmission du dernier bit de l'octet. Le circuit maître 1 détecte l'absence d'accusé de réception ACK lors du front montant suivant du signal SCL. Il peut alors émettre une nouvelle B16242FR - 16-R0-0296 7 condition START, aussi appelée condition RESTART, ou une condition STOP. Le protocole SMB prévoit, en plus du fonctionnement décrit ci-dessus, de détecter quand le signal SCL reste bloqué à l'état bas plus longtemps qu'une durée maximale donnée DMAX identique pour tous les circuits connectés au bus. Cette durée DMAX est comprise entre 25 et 35 ms, par exemple 30 ms, et est représentée à titre illustratif entre des instants t10 et t11 en figure 2. Pour vérifier que la durée de chaque état bas du signal SCL reste inférieure à une durée DMAX choisie, on prévoit que chaque circuit connecté au bus comprenne un circuit adapté à fournir, pour chaque état bas du signal SCL, une valeur représentative de la durée de cet état bas qui est ensuite comparée à un seuil représentatif de la durée DMAX. Par exemple, la durée d'un état bas du signal SCL peut être représentée par un nombre de périodes d'un oscillateur comptées pendant la durée de cet état bas, ce nombre étant ensuite comparé au nombre de périodes de l'oscillateur correspondant à la durée DMAX, c'est-à-dire au seuil représentatif de la durée DMAX. On pourrait prévoir que, pour une durée DMAX choisie, le seuil représentatif de la durée DMAX soit identique pour plusieurs circuits. Par exemple, chacun de ces circuits pourrait comprendre un registre dont le contenu serait initialisé pour contenir le seuil. Le seuil serait alors disponible dès la mise sous tension du circuit. Toutefois, en raison des dispersions de fabrication entre des circuits identiques, la valeur représentative d'une même durée d'état bas du signal SCL pourrait être différente d'un circuit à un autre. Il pourrait en résulter qu'un circuit détecte que la durée de cet état bas du signal SCL excède la durée DMAX choisie alors qu'un autre circuit, pourtant identique, ne le détecte pas. On propose donc d'étalonner le seuil TIMEOUT pour chaque circuit de manière à tenir compte des dispersions de fabrication entre des circuits identiques, ce seuil étalonné étant ensuite stocké dans une mémoire non volatile du circuit. On pourrait B16242FR - 16-R0-0296 8 prévoir que le seuil étalonné stocké en mémoire soit lu dès la mise sous tension du circuit mais cela nécessiterait un dispositif de lecture spécifique et un signal de synchronisation propre à ce dispositif de lecture. Dans les modes de réalisation décrits ci-dessous, on prévoit une phase d'initialisation pendant laquelle le seuil représentatif de la durée DMAX est lu en mémoire non volatile, cette phase d'initialisation étant mise en oeuvre dans chaque circuit connecté au bus. La phase d'initialisation débute en même temps que débute la transmission d'un octet sur le bus et se termine avant le moment où devrait être généré l'accusé de réception ACK de cet octet. Autrement dit, cette phase d'initialisation s'effectue pendant la transmission de cet octet. La phase d'initialisation est plus particulièrement mise en oeuvre lors de la transmission du premier octet sur le bus après la mise sous tension des circuits connectés au bus. A titre d'exemple, le début de la phase d'initialisation correspond à la détection de la condition START indiquant le début d'une communication et la phase d'initialisation est effectuée pendant la transmission du premier octet de cette communication. Dans la phase d'initialisation, le seuil représentatif de la durée DMAX est lu en mémoire en synchronisme avec le signal SCL, en même temps qu'une valeur représentative de la plus longue durée d'état bas du signal SCL est déterminée. A la fin de la phase d'initialisation, si la valeur déterminée est supérieure au seuil lu, au moins l'un des états bas du signal SCL a duré plus longtemps que la durée DMAX. Chaque circuit se place alors dans le même état que s'il avait reçu une condition STOP, par exemple en réinitialisant son interface de lecture/écriture sur le bus, et le circuit devant générer l'accusé de réception ACK de l'octet transmis pendant la phase d'initialisation ne générera pas d'accusé de réception ACK pour cet octet. Ainsi, la vérification du fait qu'une durée d'état bas du signal SCL a excédé la durée seuil DMAX est réalisée alors que les premières durées d'état bas du signal SCL ont été mesurées avant la lecture du seuil représentatif de cette durée DMAX. Cela permet de simplifier la B16242FR - 16-R0-0296 9 lecture du seuil en mémoire, cette lecture pouvant alors être effectuée en synchronisme avec le signal SCL, de la même façon qu'une lecture classique d'une donnée en mémoire. En pratique, la transmission d'un octet sur le bus peut être interrompue si une nouvelle condition START est émise avant le moment où l'accusé de réception ACK de cet octet devrait être généré. Dans ce cas, si une phase d'initialisation est en cours, celle-ci est interrompue et annulée, et nouvelle phase d'initialisation est mise en oeuvre lors de la transmission suivante d'un octet sur le bus. On tire ici profit du fait que, pendant la transmission d'un octet, de préférence le premier octet transmis après la mise sous tension des circuits connectés au bus, si au moins un état bas du signal SCL pendant cette transmission dure plus longtemps que la durée DMAX, cela n'a pas d'influence, en particulier pour le circuit maître, avant le moment où doit être généré l'accusé de réception ACK de l'octet transmis. On tire également profit du fait que la lecture en mémoire du seuil représentatif de la durée DMAX, en synchronisme avec le signal SCL, est terminée avant le moment où l'accusé de réception ACK de cet octet devrait être généré. De nombreux circuits destinés à être connectés à un bus SMB comprennent déjà une mémoire non volatile, par exemple de type EEPROM, et un circuit de lecture de cette mémoire synchronisé sur le signal SCL. On tire alors profit du fait que le seuil représentatif de la durée DMAX peut être stocké dans cette mémoire existante et être lu par le circuit de lecture de cette mémoire, sans recourir à un circuit de lecture spécifique. Un exemple particulier de circuits comprenant une mémoire non volatile, par exemple de type EEPROM, et un dispositif de lecture de cette mémoire sont les circuits mettant en oeuvre une fonction de détection de présence, cette fonction étant généralement désignée par le sigle SPD de l'anglais "Serial Presence Detect". Cette fonction est par exemple mise en oeuvre pour les circuits mémoires de type DRAM (Dynamic Random Access Memory) en prévoyant une mémoire EEPROM dans laquelle sont stockées des informations sur B16242FR - 16-R0-0296 le fonctionnement de la mémoire DRAM, par exemple des informations sur le temps d'accès à cette mémoire DRAM. La figure 3 est un organigramme illustrant un mode de réalisation d'un procédé de détection d'une condition temporelle sur la durée d'état bas du signal de synchronisation du bus de la figure 1, le procédé étant par exemple mis en oeuvre par chacun des circuits 1, 3 et 5 connectés au bus. Le procédé débute par une phase d'initialisation 303 durant laquelle un seuil TIMEOUT représentatif de la durée DMAX est lu en mémoire à une étape 305 (READ TIMEOUT) effectuée en parallèle d'étapes 307, 309, 311, 313, 315 et 317 de détermination d'une valeur représentative de la plus longue durée d'état bas du signal SCL pendant la phase d'initialisation 303. Comme indiqué précédemment, cette phase d'initialisation débute en même temps que débute la transmission d'un octet sur le bus, par exemple le premier octet transmis après la mise sous tension des circuits connectés au bus. Dans la phase d'initialisation 303, une valeur VALUE est initialisée, par exemple à zéro, à une étape 307 (INIT VALUE) réalisée avant le premier état bas du signal SCL suivant le début de cette phase d'initialisation 303 (entre les instants tO et tl en figure 2). L'étape 307 est suivie d'une étape 309 (SCL LOW?) de détection du passage du signal SCL à l'état bas. Quand le signal SCL passe à l'état bas (sortie Y du bloc 309), une valeur DSCL représentative de la durée de cet état bas est déterminée à une étape 311 (DETERMINE DSCL) suivante. L'étape 311 est suivie d'une étape 313 (DscL>VALUE?) où la valeur Dsci, est comparée à la valeur VALUE. Si la valeur Dsci, est supérieure à la valeur VALUE (sortie Y du bloc 313), la valeur VALUE est mise à jour avec la valeur Dsci, à une étape suivante 315 (VALUE = DSCL), avant une étape 317 (END INITIALIZATION?). Sinon (sortie N du bloc 313), l'étape 313 est directement suivie de l'étape 317. L'étape 317 consiste à vérifier si la phase d'initialisation est terminée. Si la phase d'initialisation 303 n'est pas terminée (sortie N du bloc 317), les étapes 309, 311, 313, 317 et le cas échéant 315 sont effectuées de nouveau. Ainsi, B16242FR - 16-R0-0296 11 pendant la phase d'initialisation, la boucle comportant les étapes 309, 311, 313, 315 et 317 est effectuée une fois pour chaque période du signal SCL. Si la phase d'initialisation 303 est terminée (sortie Y du bloc 317), la valeur VALUE est comparée au seuil TIMEOUT lors d'une étape 319 suivante (VALUE>TIMEOUT?). Selon un mode de réalisation, la phase d'initialisation 303 se termine au huitième front montant du signal SCL suivant le début de la phase d'initialisation 303. Dans une variante de réalisation, la phase d'initialisation 303 se termine à un front montant donné du signal SCL pour lequel on sait que la lecture du seuil représentatif de la durée DMAX est terminée, ce front montant donné étant antérieur au huitième front montant du signal SCL suivant le début de la phase d'initialisation 303. Lors de la première comparaison 319, la valeur VALUE représente la plus longue durée d'état bas du signal SCL pendant la phase d'initialisation 303. Dans le cas où la phase d'initialisation 303 se termine au huitième front montant du signal SCL suivant le début de la phase d'initialisation 303, cette première comparaison 319 est par exemple effectuée avant le front descendant du signal SCL suivant ce huitième front montant, de sorte que le résultat de cette première comparaison 319 est connu avant le moment où l'accusé de réception ACK de l'octet transmis pendant la phase d'initialisation devrait être généré (instant t6 en figure 2). Dans le cas où la phase d'initialisation 303 se termine à un front montant donné du signal SCL antérieur au huitième front montant du signal SCL suivant le début de cette phase d'initialisation, la première comparaison 319 est par exemple effectuée entre ce front montant donné et le front descendant suivant du signal SCL. Si à l'étape 319 la valeur VALUE est supérieure au seuil TIMEOUT (sortie Y du bloc 319), au moins un état bas du signal SCL pendant la phase d'initialisation 303 a duré plus longtemps que la durée DMAX. A une étape 321 (RESET) suivante, le circuit mettant en oeuvre le procédé se place alors dans le même état que s'il avait reçu une condition STOP. Sinon (sortie N du bloc 319), dans le mode de réalisation illustré en figure 3, ce circuit B16242FR - 16-R0-0296 12 vérifie si chaque état bas suivant du signal SCL dure plus longtemps que la durée DMAX. Pour cela, le passage du signal SCL à l'état bas est détecté lors d'une étape 309' (SCL LOW?) consécutive à l'étape 319, et, quand le signal SCL passe à l'état bas (sortie Y du bloc 309'), la valeur Dsci, de cet état bas est déterminée à une étape 311' (DETERMINE DscL) suivante, l'étape 311' étant par exemple identique à l'étape 311. La valeur VALUE est ensuite mise à jour avec la valeur DscL, à une étape 315' (VALUE=DSCL) avant d'effectuer de nouveau l'étape 319 où la valeur VALUE représente désormais la durée du dernier état bas du signal SCL. Dans une variante de réalisation, l'étape 315' est remplacée par une étape de comparaison du seuil TIMEOUT directement avec la valeur Dsci, déterminée à l'étape 311' précédente. Si la valeur Dsci, est supérieure au seuil TIMEOUT, l'étape suivante est l'étape 321, sinon, l'étape suivante est l'étape 309'. Dans une autre variante de réalisation, une étape similaire ou identique à l'étape 313 est prévue entre les étapes 311' et 315' de sorte que la valeur VALUE est mise à jour avec la dernière valeur Dsci, uniquement si cette valeur Dsci, représente la plus longue durée des états bas du signal SCL ayant déjà eu lieu. Dans une autre variante de réalisation, la phase d'initialisation 303 est effectuée pour chaque octet transmis sur le bus. De préférence, chaque phase d'initialisation se termine alors au huitième front montant suivant le début de cette phase d'initialisation. En outre, dans cette variante, on prévoit de préférence que la phase d'initialisation 303 comprenne deux étapes supplémentaires. La première de ces deux étapes supplémentaires est par exemple effectuée entre les étapes 317 et 319 et consiste à modifier l'état d'un drapeau pour indiquer que le seuil a été lu. La deuxième de ces deux étapes supplémentaires est par exemple effectuée juste avant l'étape 305 (branche de droite en figure 3) et consiste à vérifier l'état du drapeau, de sorte que, si le drapeau indique que le seuil TIMEOUT a déjà été lu lors d'une B16242FR - 16-R0-0296 13 phase d'initialisation 303 précédente, l'étape 305 n'est pas effectuée. Ainsi, le seuil TIMEOUT ne sera lu qu'une fois, lors d'une première phase d'initialisation 303, ce qui permet de limiter les accès en lecture à la mémoire où est stockée le seuil TIMEOUT, donc de réduire la consommation électrique du circuit mettant en oeuvre les phases d'initialisation 303. De préférence, la première phase d'initialisation lors de laquelle est lu le seuil TIMEOUT débute avec la détection d'une condition START. On tire alors profit du fait que la lecture du seuil TIMEOUT en mémoire est effectuée pendant la transmission de l'octet constitué de l'adresse identifiant le circuit destinataire et du bit indicateur de l'opération (lecture-écriture) souhaitée, ce qui permet d'éviter que le seuil soit lu en mémoire en même temps qu'une donnée à transmettre sur le bus. A titre d'exemple, le drapeau correspond à un bit dont un premier état binaire indique que le seuil TIMEOUT n'a pas encore été lu, et dont le deuxième binaire indique que le seuil TIMEOUT a déjà été lu. Bien que cela n'ait pas été représenté en figure 3, si une nouvelle condition START est émise pendant une phase d'initialisation 303, comme cela a été indiqué précédemment, cette phase d'initialisation est interrompue et annulée, et une nouvelle phase d'initialisation 303 est mise en oeuvre lors de la transmission suivante d'un octet. Dans la suite de la description, on considère le cas où chaque circuit mettant en oeuvre le procédé de la figure 3 comprend un oscillateur et un compteur synchronisé sur cet oscillateur, la période du signal fourni par l'oscillateur étant inférieure à celle du signal SCL du bus auquel le circuit est destiné à être connecté. Pour chaque état bas du signal SCL, la valeur Dsci, correspond alors au nombre de périodes de cet oscillateur comptées pendant cet état bas. Le seuil TIMEOUT étalonné du circuit est déterminé au moyen de l'oscillateur et du compteur de ce circuit, en comptant le nombre de périodes de cet oscillateur pendant la durée DMAX. Le seuil TIMEOUT étalonné est alors égal au nombre de périodes comptées pendant la durée DMAX, c'est-à-dire au contenu du compteur à la fin de la durée DMAX, et est enregistré dans la B16242FR - 16-R0-0296 14 mémoire du circuit. Cette phase d'étalonnage est mise en oeuvre, avec la même durée DMAX, pour chaque circuit destiné à être connecté à un même bus. La figure 4 est un organigramme illustrant un mode de réalisation plus détaillé du procédé de la figure 3, par exemple mis en oeuvre avec une mémoire de type EEPROM. Le procédé de la figure 4 comprend des étapes déjà décrites en relation avec la figure 3, désignées par les mêmes références, qui ne seront pas décrites à nouveau. Dans ce mode de réalisation, l'étape 305 de lecture du seuil TIMEOUT en mémoire, ici une mémoire non volatile de type EEPROM, est suivie d'une étape 501 (RegATIMEOUT) d'écriture du seuil TIMEOUT dans un premier registre RegA. La durée d'un état bas du signal SCL est représentée par le nombre de périodes d'un oscillateur comptées par un compteur C associé à l'oscillateur, par exemple l'oscillateur et le compteur d'un circuit d'écriture dans la mémoire EEPROM. Par rapport à la figure 3, l'étape 311 est remplacée par des étapes équivalentes 503, 505 et 507. A l'étape 503, immédiatement après qu'un état bas du signal SCL soit détecté (sortie Y du bloc 309), le compteur C est initialisé à zéro (C=0), puis, à l'étape suivante 505 (INC C), le compteur C est incrémenté une fois, en synchronisme avec l'oscillateur. Après l'étape 505, l'étape 507 (SCL HIGH?) consiste à vérifier si le signal SCL est passé à l'état haut. Si ce n'est pas le cas (sortie N du bloc 507), le signal SCL est toujours à l'état bas et l'étape 505 d'incrémentation du compteur est effectuée de nouveau. Sinon (sortie Y du bloc 507), le signal SCL est à l'état haut et le contenu du compteur C représente alors la durée du dernier état bas du signal SCL. De manière similaire, l'étape 311' (figure 3) est remplacée par des étapes équivalentes 503', 505' et 507', les étapes 503', 505' et 507' étant respectivement identiques aux étapes 503, 505 et 507. En outre, dans ce mode de réalisation, la valeur VALUE décrite en relation avec la figure 3 correspond au contenu d'un deuxième registre RegB. L'étape 307 (figure 3) est donc remplacée par une étape 509 (RegB=0) équivalente d'initialisation du B16242FR - 16-R0-0296 registre RegB, et l'étape 313 est remplacée par une étape 511 (C>RegB?) équivalente de comparaison du contenu du compteur C avec celui du registre RegB. A l'étape 511, si le contenu du compteur C est supérieur à celui du registre RegB (sortie Y du bloc 511), le registre RegB est mis à jour avec le contenu du compteur C à l'étape 513 suivante (RegB=C). De manière similaire, l'étape 315' (figure 3) est remplacée par une étape équivalente 513' identique à l'étape 513. En outre, l'étape 319 de comparaison de la valeur VALUE avec le seuil TIMEOUT est remplacée par une étape 515 (RegB>RegA?) équivalente de comparaison du contenu du registre RegB avec celui du registre RegA. Une étape 517 (i=0) d'initialisation à zéro d'une variable de boucle i est effectuée au début de la phase d'initialisation 303, par exemple juste avant l'étape 509 comme c'est le cas ici, étant entendu que cette étape 517 peut être réalisée en parallèle de l'étape 509 ou juste après l'étape 509. A chaque détection d'un front montant du signal SCL (sortie Y du bloc 507), la variable de boucle i est incrémentée lors d'une étape 519 (i=i+1), par exemple effectuée entre les étapes 507 et 511. Dans ce mode de réalisation, la phase d'initialisation 303 se termine au huitième front montant du signal SCL suivant le début de cette phase d'initialisation. L'étape 317 est alors remplacée par une étape 521 (i=8?) équivalente consistant à vérifier si la variable i est égal à 8, c'est-à-dire si ce huitième front montant du signal SCL vient d'avoir lieu, ce qui marque la fin de la phase d'initialisation 303. Ainsi, lors de la première comparaison 515 après la phase d'initialisation 303, on compare bien une valeur VALUE représentative de la plus longue durée d'état bas et stockée dans le registre RegB avec le seuil TIMEOUT lu en mémoire et stocké dans le registre RegA. Les variantes de réalisation décrites en relation avec la figure 3 sont transposables au mode de réalisation décrit en relation avec la figure 4. B16242FR - 16-R0-0296 16 Des modes de réalisation particuliers ont été décrits. Diverses variantes et modifications apparaîtront à l'homme de l'art. En particulier, le système électronique de la figure 1 peut comporter un nombre de circuits différent de ce qui est représenté dans cette figure. Les circuits adaptés à mettre en oeuvre le procédé des figures 3 et 4 ne se limitent pas aux circuits comprenant un mémoire non volatile de type EEPROM et son circuit de lecture, l'homme du métier étant en mesure de concevoir, à partir de la description faite ci-dessus, d'autres circuits adaptés à mettre en oeuvre ce procédé. L'homme du métier est également en mesure d'adapter le nombre d'étapes, l'ordre des étapes et/ou les étapes du procédé des figures 3 et 4. Par exemple, l'étape 503 d'initialisation du compteur C peut être effectuée avant l'étape 309, entre l'étape 501 et l'étape 309 lorsque la phase d'initialisation 303 n'est pas terminée (branche N du bloc 501). En outre, le procédé et la phase d'étalonnage décrits précédemment peuvent également être adaptés au cas où la durée de chaque état bas du signal SCL est représentée par une valeur déterminée avec un décompteur plutôt qu'avec un compteur, et, plus généralement, au cas où les durées sont représentées autrement que par des nombres de périodes d'oscillateurs, REVENDICATIONS1. Procédé dans lequel une valeur (VALUE, DscL) représentative d'une durée d'état bas d'un signal de synchronisation (SCL) d'un bus (7) est comparée à un seuil (TIMEOUT) stocké en mémoire, ladite valeur représentant, lors d'une première comparaison (319, 515), la plus longue durée des états bas dudit signal. 2. Procédé selon la revendication 1, dans lequel, lors de la première comparaison (319, 515), ladite valeur (VALUE) représente la plus longue durée des états bas dudit signal (SCL) ayant eu lieu avant ladite première comparaison. 3. Procédé selon la revendication 1 ou 2, dans lequel la première comparaison (319, 515) est effectuée après la lecture du seuil dans la mémoire, ladite lecture étant effectuée de manière synchronisée avec le signal de synchronisation (SCL). 4. Procédé selon l'une quelconque des revendications 1 à 3, dans lequel la mémoire est une mémoire non volatile. 5. Procédé selon l'une quelconque des revendications 1 à 4, dans lequel le seuil (TIMEOUT) stocké en mémoire est déterminé lors d'une phase d'étalonnage. 6. Procédé selon l'une quelconque des revendications 1 à 5, dans lequel le bus (7) est un bus I2C, par exemple un bus SMB. 7. Procédé selon la revendication 6, dans lequel le seuil (TIMEOUT) est représentatif d'une durée comprise entre 25 et 35 ms. 8. Procédé selon la revendication 6 ou 7, dans lequel le seuil (TIMEOUT) est lu dans la mémoire pendant une première transmission d'un octet sur le bus (7) après la mise en fonctionnement dudit bus. 9. Procédé selon la revendication 8, dans lequel la première comparaison (319, 515) est effectuée avant un instant (t6) où un accusé de réception (A.CK) dudit octet devrait être émis sur ledit bus. B16242FR - 16-R0-0296 18 10. Procédé selon la revendication 9, dans lequel la première comparaison (319, 515) est effectuée entre la transmission du dernier bit (BO) dudit octet et ledit instant (t6) 11. Dispositif adapté à la mise en oeuvre du procédé selon l'une quelconque des revendications 1 à 10. 12. Dispositif selon la revendication 11 comprenant un oscillateur et un compteur (C) configuré pour compter un nombre (DSCL) de périodes de l'oscillateur pendant la durée de chaque état bas dudit signal (SCL), ladite valeur (VALUE) étant déterminée à partir du nombre de périodes comptées pour chaque état bas. 13. Dispositif selon la revendication 12, dans lequel, après chaque état bas dudit signal (SCL) précédant la première comparaison (319, 515), ladite valeur (VALUE) est mise à jour avec le nombre (DscL) de périodes comptées pendant l'état bas si ledit nombre est supérieur à ladite valeur. 14. Dispositif selon l'une quelconque des revendications 12 à 13, dans lequel la mémoire, l'oscillateur et le compteur (C) mettent également en oeuvre une fonction de détection de présence. 15. Dispositif selon l'une quelconque des revendications 12 à 14, dans lequel la mémoire est une mémoire de type EEPROM, l'oscillateur et le compteur (C) faisant partie d'un circuit d'écriture dans ladite mémoire.