Brevet FR2828568A1 — publié le 20030214

La présente invention concerne les réseaux de communication, plus particulièrement un procédé d'identification de périphériques connectés à ce réseau après une réinitialisation du réseau, aussi bien que le dispositif pour mettre en oeuvre le procédé. Le bus IEEE1394, défini dans le document IEEE 1394-1995 Standard for a High Performance Serial Bus , est un bus série pour les transmissions numériques permettant la connexion de dispositifs appelés dans la suite périphériques. Chacun de ces périphériques interconnectés possède une adresse physique qui peut changer après un changement de configuration du réseau (connexion d'un nouveau périphérique au réseau, déconnexion d'un périphérique au réseau, etc. ) et une adresse statique appelée EUI-64 stockée de façon permanente en mémoire accessible en lecture par tout autre périphérique. Après tout changement de configuration du réseau, ce dernier procède automatiquement à une auto-reconfiguration (suite à une réinitialisation du bus appelée bus reset en anglais) qui implique une nouvelle numérotation des adresses physiques des périphériques présents sur le réseau. Cette nouvelle numérotation est simple puisque chaque périphérique est numéroté par un nombre distinct entre zéro et le nombre de périphériques présents sur le réseau. Chaque périphérique connaît à la fin du processus de reconfiguration sa propre adresse physique et le nombre de périphériques connectés au réseau. Cependant, selon le processus précédent de reconfiguration, les adresses physiques ne sont pas permanentes, si bien qu'un moyen d'identifier de manière unique et permanente un périphérique est d'utiliser l'adresse statique EUI-64 du périphérique correspondant. Cette adresse est unique, permanente et présente dans un registre bien spécifique de la ROM de configuration de chaque périphérique du réseau. Afin de communiquer avec les autres périphériques, un périphérique donné a donc besoin de lire les adresses statiques EUI-64 des périphériques environnants (considérés alors comme des périphériques cibles par le périphérique donné pour la lecture des identifiants) connectés au réseau IEEE1394. Il peut par la suite conserver en interne l'association entre l'adresse physique et l'adresse statique EUI-64 des périphériques avec lesquels il a déjà communiqué afin d'accélérer les futurs échanges d'informations avec ces différents périphériques. La figure 1 est un organigramme présentant un procédé de découverte du réseau environnant par un périphérique donné après la reconfiguration du réseau (suite à une réinitialisation du bus). La figure 1 présente un procédé, connu de l'homme du métier, de reconstruction d'une table d'association interne d'un périphérique donné donnant l'adresse statique EUt-64 de tous les autres périphériques connectés au réseau. On considère le procédé pour un périphérique quelconque du réseau envisagé. Ce périphérique va explorer le réseau pour trouver les adresses EUS 64 bits des périphériques environnants dont il connaît les adresses physiques puisque ces dernières vont de zéro au nombre de périphériques moins un. Le périphérique considéré va donc lire les adresses statiques EU (-64 des périphériques environnants (1-2) en partant du périphérique ayant l'adresse physique égale à zéro (1-1) et les associer en interne dans une table à l'adresse physique du périphérique cible considéré (1-3). Le périphérique considéré va ensuite passer au périphérique d'adresse physique immédiatement suivante (1-4) tant qu'il restera dans le réseau des périphériques pour lesquels il n'aura pas fait l'association (1-5). Le problème réside dans le fait que tous les périphériques du réseau vont utiliser le même algorithme avec le même ordre de parcours du réseau si bien que beaucoup de périphériques vont tenter en même temps de lire la ROM de configuration d'un même périphérique et en plus le même registre contenant l'adresse statique EUt-64 (cela correspond au phénomène de collision). La ROM d'un périphérique ne traite qu'une requête à la fois donc si le périphérique est occupé par une requête de lecture, les requêtes de lecture suivantes vont s'accumuler dans une à plusieurs piles, ce qui signifie qu'il peut y avoir des risques de débordement de ces piles et donc perte des requêtes de lecture. D'autre part, même si le périphérique possède des piles suffisamment grandes, vu que chaque périphérique possède un temps limité pour répondre à une requête, si le périphérique est surchargé par les requêtes, il peut excéder ce délai et donc ne pas être en mesure de répondre. L'objet de l'invention est de proposer des procédés de découverte topologique, c'est-à-dire d'identification des appareils connectés, pour un réseau IEEE1394, reposant sur des ordres de parcours des autres périphériques du réseau, distincts pour chaque périphérique considéré. Ainsi, la présente invention concerne un procédé d'identification des périphériques connectés à un réseau, où chaque périphérique est distingué par un identifiant unique permanent et par une adresse physique, et où chaque périphérique cherche à associer en interne l'adresse physique et l'identifiant pour chacun des périphériques connectés au réseau, caractérisé en ce que, l'ordre d'exploration des autres périphériques par un périphérique donné est fonction d'un paramètre propre du périphérique donné, l'ordre d'exploration sera ainsi différent pour chaque périphérique. Selon un perfectionnement, le paramètre physique propre à chaque périphérique du réseau est son adresse physique dans le réseau. Selon un perfectionnement, chaque périphérique connecté au réseau commence son exploration du réseau par lui-même, c'est à dire en se considérant comme le premier périphérique cible pour l'envoi de ses requêtes de lecture de l'identifiant. Selon un autre perfectionnement, l'exploration du réseau par chaque périphérique se fait selon l'ordre de la numérotation des adresses physiques des différents périphériques connectés au réseau. Selon une variante, l'exploration du réseau par chaque périphérique se fait selon un ordre aléatoire de la numérotation des adresses physiques des différents périphériques connectés au réseau. Selon un autre perfectionnement, chaque périphérique connecté au réseau envoie en parallèle plusieurs requêtes de lecture à des périphériques cibles différents, sans attendre la réponse d'un périphérique avant d'envoyer une requête au périphérique suivant. L'objet de la présente invention est aussi un dispositif qui a pour but d'être relié à un réseau de communication caractérisé en ce qu'il possède : - des moyens pour obtenir l'identifiant unique et permanent des périphériques connectés au réseau, suite à une réinitialisation ; - des moyens pour déterminer et conserver la topologie d'un réseau après une reconfiguration du réseau ; - des moyens pour établir une table d'association entre l'identifiant unique et permanent des périphériques connectés au réseau et leur adresse physique. D'autres caractéristiques et avantages de la présente invention apparaîtront à la lecture de la description de différents modes de réalisation, cette description étant faite avec référence aux dessins ci-annexés dans lesquels : La figure 1 est un organigramme représentant la découverte topologique d'un réseau selon l'art antérieur. Les figures 2 et 3 sont des organigrammes montrant différents modes de réalisation de la présente invention reposant sur l'ordre de parcours mais sans requête en parallèle. La figure 4 montre un organigramme d'un mode réalisation préférentiel de la présente invention reposant sur l'ordre de parcours et l'envoi de requêtes en parallèle. La figure 5 est un diagramme-bloc d'un périphérique capable de se connecter au réseau. On décrira maintenant avec référence à la figure 2 un mode de réalisation particulier d'un procédé de découverte topologique d'un réseau comprenant un ensemble de n périphériques reliés entre eux, où chaque périphérique est distingué par un identifiant unique permanent et par une adresse physique, et où chaque périphérique cherche à associer en interne l'adresse physique et l'identifiant pour chacun des périphériques connectés au réseau, caractérisé en ce que, l'exploration des autres périphériques par un périphérique donné est fonction de l'adresse physique du périphérique donné. La figure 2 est un organigramme présentant un procédé de découverte topologique d'un réseau IEEE1394 pour lequel l'identifiant unique et permanent de chaque périphérique est l'adresse statique EUt-64, et où l'exploration du réseau par chaque périphérique commence par lui-même et se fait selon l'ordre de la numérotation des adresses physiques des différents périphériques connectés au réseau. L'homme du métier peut bien sûr utiliser n'importe quel autre identifiant afin de désigner un périphérique donné ; l'utilisation de l'adresse statique EUI-64 n'est en aucun cas la seule possibilité d'identifier un périphérique, on peut aussi utiliser le numéro de série de la ROM de configuration de ce périphérique ou tout autre identifiant. On considère le procédé pour un périphérique quelconque du réseau envisagé. Ce périphérique va explorer le réseau pour trouver les adresses statiques EUI-64 des périphériques environnants dont il connaît les adresses physiques puisque ces dernières vont de zéro au nombre de périphériques moins un. Le périphérique considéré va donc lire l'adresse statique EUS64 du premier périphérique cible (2-2) c'est à dire de lui-même (2-1) et l'associer en interne dans une table à l'adresse physique du périphérique cible considéré (2-3). Le périphérique cible courant va ensuite devenir le périphérique d'adresse physique immédiatement suivante modulo le nombre de périphériques connectés au réseau (2-4) tant qu'il restera dans le réseau des périphériques pour lesquels il n'aura pas fait l'association (2-5). La présente invention limite le nombre de collisions et donc la surcharge des requêtes au niveau des ROM des périphériques cibles. En effet, le système de décalage instauré par l'emploi d'adresses physiques cibles initiales toutes distinctes les unes des autres et le passage au périphérique cible suivant par un incrément de une unité sur l'adresse physique du périphérique cible courant permettent de répartir équitablement les requêtes entre tous les périphériques présents sur le réseau. D'autre part, pour augmenter l'efficacité de la découverte du réseau, il serait intéressant qu'un périphérique donné puisse lancer plusieurs requêtes en parallèle à différents périphériques cibles (c'est à dire lancer plusieurs requête de lecture sans avoir à attendre la réponse des périphériques cibles) au lieu de le faire périphérique par périphérique. Cela n'est pas possible avec le procédé présenté dans la figure 2. Sur la figure 3, on a représenté une variante de la présente invention où l'exploration du réseau par chaque périphérique se fait selon un ordre aléatoire de la numérotation des adresses physiques des différents périphériques connectés au réseau. En effet, le mode de réalisation précédemment décrit reposait sur un ordre préétabli de parcours des différents périphériques du réseau alors que l'on peut considérer que chaque périphérique parcourt le réseau selon un ordre aléatoire propre. Cependant, chaque périphérique connecté au réseau commence toujours son exploration du réseau par lui-même, c'est à dire en se considérant comme le premier périphérique cible pour l'envoi de ses requêtes de lecture de l'identifiant. On considère le procédé pour un périphérique quelconque du réseau envisagé. Ce périphérique va explorer le réseau pour trouver les adresses statiques EUS64 des périphériques environnants dont il connaît les adresses physiques puisque ces dernières vont de zéro au nombre de périphériques moins un. Le périphérique considéré va donc lire l'adresse statique EUI-64 du premier périphérique cible (3-2) c'est à dire de lui-même (3-1) et l'associer en interne dans une table à l'adresse physique du périphérique cible considéré (3-3). Le périphérique considéré va ensuite marquer en interne, par exemple dans un tableau, le périphérique qu'il vient de traiter (3-4). Il change ensuite de périphérique cible courant : l'adresse physique du nouveau périphérique cible courant est choisie de manière aléatoire parmi les adresses physiques des périphériques n'ayant pas encore été associés (3-5) indiqués grâce au tableau par exemple. Tant qu'il restera dans le réseau des périphériques pour lesquels le périphérique considéré n'aura pas fait l'association (3-6), il reprendra les étapes à partir de la lecture de l'adresse statique EUI-64 pour le nouveau périphérique cible courant La variante de la présente invention présentée par la figure 3 limite le nombre de collisions et donc la surcharge des requêtes au niveau des ROM des périphériques cibles. En effet, si un grand nombre de périphériques est connecté au réseau, la probabilité que deux périphériques interrogent en même temps un même troisième dépend des fonctions aléatoires utilisées pour le choix des périphériques cibles. Si on choisit une fonction aléatoire différente pour chaque périphérique ou une même fonction aléatoire initialisée avec des valeurs différentes selon chaque périphérique, par exemple leur adresse physique, on limite alors la probabilité de collision. On peut alors imaginer que chaque périphérique possède un générateur aléatoire ou qu'il y a un générateur aléatoire commun à tous les périphériques qui va créer une liste, classée de manière aléatoire, des adresses physiques des différents périphériques, et que chaque périphérique va parcourir cette liste commune en commençant à des endroits différents, dans ce cas, on retrouve un ordre de parcours préétabli. Par exemple, un périphérique donné commence à parcourir le réseau à partir du périphérique cible d'adresse physique correspondant à l'élément dans la liste dont le numéro est sa propre adresse physique. La figure 4 est un organigramme qui présente une amélioration possible de la présente invention puisqu'elle permet aux différents périphériques du réseau de lancer dans un même laps de temps un certain nombre de requêtes de lecture en parallèle, c'est-à-dire qu'un périphérique donné n'a pas besoin d'attendre la réponse d'un périphérique cible pour envoyer une requête de lecture au périphérique cible suivant Il faut tout de même limiter le nombre de requêtes de lecture en parallèle possibles afin de ne pas surcharger le réseau. Le nombre maximal de requêtes de lecture en parallèle est par exemple une constante qui reflète les capacités de traitement du réseau lui-même, par exemple cette constante dépend de la taille des piles ou des mémoires tampons ; elle doit être fixée au début de la phase d'association (4-1). L'amélioration présentée par la figure 4 est apportée au principe exposé dans la figure 2 : l'exploration du réseau par chaque périphérique commence par lui-même (4-2) et se fait selon l'ordre de la numérotation des adresses physiques des différents périphériques connectés au réseau (4-5). Le périphérique considéré va donc envoyer en parallèle autant de requêtes de lecture qu'il est autorisé à le faire (4-3,4-6, 4-7), sans attendre les réponses des périphériques cibles auxquels il a envoyé ces requêtes pour passer au périphérique cible suivant. Comme pour l'invention présentée dans la figure 2, le passage d'un périphérique cible au périphérique cible suivant se fait par incrément de l'adresse physique du périphérique cible courant d'une unité modulo le nombre de périphériques connectés au réseau (4-5). Le périphérique considéré attend ensuite une réponse aux requêtes qu'il a précédemment envoyées (4-9). Si le périphérique reçoit un ordre de reconfiguration du réseau ou bus reset en anglais (4-10) alors le périphérique recommence l'exploration du réseau. Si le périphérique considéré reçoit une réponse contenant un identifiant tel que l'adresse statique EU 1-64 utilisée jusqu'à présent, alors il associe en interne l'adresse physique du périphérique qui lui a répondu et l'adresse statique EUI-64 reçue (4-12). Ensuite, tant que le nombre de périphériques interrogés par une requête est strictement inférieur au nombre de périphériques connectés au réseau (4-15), il lance une nouvelle requête de lecture au périphérique cible courant (4-13) et il incrémente l'adresse courante du périphérique cible (4-14). L'amélioration de la présente invention présentée dans la figure 4 possède les même avantages que le procédé présenté dans la figure 2 puisqu'elles reposent toutes les deux sur le même principe de décalage pour les adresses des périphériques cibles. Cela réduit donc le nombre de collisions et évite la surcharge des ROM de configuration des périphériques. De plus, la possibilité d'envoyer en parallèle plusieurs requêtes de lecture permet aux périphériques de réduire les temps d'attente des réponses à ces requêtes. En effet, si un périphérique est lent à répondre, il peut traiter la réponse d'un périphérique plus rapide qui a été interrogé après le plus lent et ainsi améliorer l'efficacité de l'exploration. On peut appliquer une méthode similaire à la deuxième variante de l'invention présentée sur la figure 3. En effet, la possibilité de lancer des requêtes de lecture en parallèle est indépendante de la façon dont on parcourt le réseau. Au lieu de le parcourir dans l'ordre de la numérotation des adresses physiques comme on le fait dans l'amélioration présentée dans la figure 4, on peut aussi le parcourir de manière aléatoire en utilisant le procédé décrit dans la figure 3. Par ailleurs, le procédé d'envoi de requêtes en parallèle s'applique également dans le cas où, comme dans l'art antérieur, chaque périphérique utilise le même ordre d'exploration. La figure 5 est un diagramme-bloc d'un périphérique 10. Ce périphérique est par exemple un lecteur optique de'DVD'. Le périphérique 10 est connecté au bus 1394 portant la référence 11 à travers une interface physique 12 et un circuit de liaison 13 ; ce dernier est relié à un bus parallèle interne 14 du périphérique 10. Un microprocesseur 15 ou un dispositif équivalent assure la gestion du périphérique, ce qui comprend un circuit pour gérer les entrées/sorties 16 et une mémoire 17. Ces trois derniers éléments sont aussi liés au bus parallèle 14. Typiquement, le microprocesseur prend en charge l'implémentation du procédé d'auto identification, les procédés de détermination de la topologie du réseau et les procédés pour établir les tables d'association. Les informations concernant la topologie après la réinitialisation et les tables d'associations sont conservées par exemple dans la mémoire 17. Il est bien entendu que des modifications peuvent être apportées au procédé pour sa mise en oeuvre, sans qu'elles sortent pour autant du cadre de la présente invention, tel qu'il est défini par les revendications. Selon les exemples donnés, chaque périphérique commence la lecture de l'identifiant par soi-même. Ceci n'est cependant pas obligatoire, d'autres solutions initiales peuvent être envisagées par l'homme du métier : décalage fixe par rapport à l'adresse physique du périphérique considéré par exemple. REVENDICATIONS 1-Procédé d'identification de périphériques connectés à un réseau, où chaque périphérique est distingué par un identifiant unique permanent et par une adresse physique, et où chaque périphérique cherche à associer en interne l'adresse physique et l'identifiant pour chacun des périphériques connectés au réseau, et comprenant les étapes suivantes : - une étape de lecture d'un identifiant ; - une étape d'association de l'identifiant et de l'adresse physique ; caractérisé en ce que, l'ordre d'exploration du réseau par un périphérique donné, c'est-à-dire l'ordre de lecture des identifiants des périphériques du réseau, est fonction d'un paramètre propre du périphérique. 2 - Procédé selon la revendication 1, caractérisé en ce que le paramètre physique propre à chaque périphérique du réseau est son adresse physique dans le réseau. 3 - Procédé selon la revendication 2, caractérisé en ce que chaque périphérique connecté au réseau commence son exploration du réseau par luimême, c'est à dire en considérant son adresse physique comme l'adresse physique du premier périphérique cible pour l'envoi de ses requêtes de lecture de l'identifiant (2-1 ; 3-1 ; 4-2). 4 - Procédé selon l'une quelconque des revendications 2 ou 3, caractérisé en ce que exploration du réseau par chaque périphérique se fait selon l'ordre de la numérotation des adresses physiques des différents périphériques connectés au réseau. 5 - Procédé selon les revendications 3 et 4, caractérisé en ce que, suite à une reconfiguration du réseau, chaque périphérique connecté au réseau effectue les étapes suivantes : a) initialiser l'adresse physique du périphérique cible courant avec l'adresse physique du périphérique considéré (2-1) ; b) lire l'identifiant du périphérique cible courant (2-2) ; c) associer localement l'adresse physique et l'identifiant du périphérique cible courant (2-3) ; d) changer de périphérique cible courant : le nouveau périphérique cible courant est le périphérique d'adresse physique immédiatement consécutive, modulo le nombre de périphériques connectés au réseau, à celle du périphérique cible courant précédent (2-4) ; e) répéter les étapes b), c) et d) tant que le nombre de périphériques distincts associés est strictement inférieur au nombre de périphériques connectés au réseau (2-5). 6-Procédé selon l'une quelconque des revendications 2 ou 3, caractérisé en ce que l'exploration du réseau par chaque périphérique se fait selon un ordre aléatoire de la numérotation des adresses physiques des différents périphériques connectés au réseau. 7 - Procédé selon les revendications 3 et 6, caractérisé en ce que, suite à une reconfiguration du réseau, chaque périphérique connecté au réseau effectue les étapes suivantes : a) initialiser l'adresse physique du périphérique cible courant avec l'adresse physique du périphérique considéré (3-1) ; b) lire l'identifiant du périphérique cible courant (3-2) ; c) associer localement l'adresse physique et l'identifiant du périphérique cible courant (3-3) ; d) marquer le périphérique comme ayant été associé (3-4) ; e) changer de périphérique cible courant : l'adresse physique du nouveau périphérique cible courant est choisie de manière aléatoire parmi les adresses physiques des périphériques n'ayant pas encore été associés (3-5) ; répéter les étapes b), c), d) et e) tant que le nombre de périphériques distincts associés est strictement inférieur au nombre de périphériques connectés au réseau (3-6). 8-Procédé selon l'une quelconque des revendications 1 à 3, caractérisé en ce que chaque périphérique connecté au réseau envoie en parallèle plusieurs requêtes de lecture à des périphériques cibles différents, sans attendre la réponse d'un périphérique avant d'envoyer une requête au périphérique suivant. 9-Procédé selon les revendications 4 et 8, caractérisé en ce que, suite à une reconfiguration du réseau, chaque périphérique connecté au réseau effectue les étapes suivantes : a) initialiser le nombre de requêtes de lecture en parallèle autorisées (4-1) ; b) initialiser l'adresse physique du périphérique cible courant avec l'adresse physique du périphérique considéré (4-2) ; c) lancer une requête de lecture d'identifiant au périphérique cible courant (4-4) ; d) changer de périphérique cible courant : le nouveau périphérique cible courant est le périphérique d'adresse physique immédiatement consécutive, modulo le nombre de périphériques connectés au réseau, à celle du périphérique cible courant précédent (4-5) ; e) répéter les étapes c) et d) tant que le nombre de requêtes de lecture en parallèle lancées est strictement inférieur au nombre de requête de lecture en parallèle autorisées (4-7) ; attendre une réponse aux requêtes précédemment envoyées (4-9) ; g) ayant reçu une réponse d'un périphérique cible, lire l'identifiant de ce périphérique cible (4-11) et effectuer les sous- étapes suivantes : 1. associer localement l'adresse physique et l'identifiant du périphérique cible ayant répondu (4-12) ; 2. lancer une requête de lecture d'identifiant au périphérique cible courant (4-13) ; 3. changer de périphérique cible courant : le nouveau périphérique cible courant est le périphérique d'adresse physique immédiatement consécutive, modulo le nombre de périphériques connectés au réseau, à celle du périphérique cible courant précédent (4-14) ; h) répéter l'étape g) contenant les sous-étapes g1), g2) et g3) tant que le nombre de périphériques distincts associés est strictement inférieur au nombre de périphériques connectés au réseau (4-15). 10 - Procédé selon les revendications 6 et 8, caractérisé en ce que, suite à une reconfiguration du réseau, chaque périphérique connecté au réseau effectue les étapes suivantes : a) initialiser le nombre de requêtes de lecture en parallèle autorisées ; b) initialiser l'adresse physique du périphérique cible courant avec l'adresse physique du périphérique considéré ; c) lancer une requête de lecture d'identifiant au périphérique cible courant ; d) marquer le périphérique cible courant comme ayant été interrogé par une requête de lecture ; e) changer de périphérique cible courant : l'adresse physique du nouveau périphérique cible courant est choisie de manière aléatoire parmi les adresses physiques des périphériques n'ayant pas encore été associés ; répéter les étapes c), d) et e) tant que le nombre de requêtes de lecture en parallèle lancées est strictement inférieur au nombre de requête de lecture en parallèle autorisées ; g) attendre une réponse aux requêtes précédemment envoyées ; h) ayant reçu une réponse d'un périphérique cible, lire l'identifiant de ce périphérique cible et effectuer les sous-étapes suivantes : 1. associer localement l'adresse physique et l'identifiant du périphérique cible ayant répondu ; 2. lancer une requête de lecture d'identifiant au périphérique cible courant ; 3. marquer le périphérique cible courant comme ayant été interrogé par une requête de lecture ; 4. changer de périphérique cible courant : l'adresse physique du nouveau périphérique cible courant est choisie de manière aléatoire parmi les adresses physiques des périphériques n'ayant pas encore été associés ; i) répéter l'étapes h) contenant les sous-étapes h1), h2), h3) et h4) tant que le nombre de périphériques distincts associés est strictement inférieur au nombre de périphériques connectés au réseau. 11 - Procédé selon l'une quelconque des revendications 1 à 10 caractérisé en ce que l'identifiant unique et permanent d'un périphérique est la valeur EUI-64 bits. 12-Dispositif (10) qui a pour but d'être relié à un réseau de communication caractérisé en ce qu'il possède : - des moyens (12,13, 15) pour obtenir un identifiant unique et permanent des périphériques connectés au réseau, suite à une réinitialisation ; - des moyens (15,17) pour établir une table d'association entre l'identifiant unique et permanent de chaque périphérique connecté au réseau et une adresse physique de ce périphérique.