Vous ne pouvez vraiment pas faire de choix ici sans déterminer la couche PHY, mais quelques idées:
Si le système est vraiment connecté en guirlande comme dessiné, mettez chaque appareil dans l'ordre. Programme d'usine à "l'adresse de diffusion" si le PHY en a une (comme I2C). Ensuite, demandez à chaque appareil de choisir une adresse et d'envoyer cette adresse au périphérique suivant au fur et à mesure qu'il se déplace le long de la chaîne.
Si vous utilisez des UID 8 bits, vous obtenez des points bonus, du moins de ma part, si vous épelez quelque chose de comique en ASCII avec les adresses:
Maître: "Hé appareil 1, choisissez une adresse «Appareil 1:« M », hé appareil 2 choisissez une adresse Appareil 2:« y »Appareil 3:« B »Appareil 4:« o »Appareil 5:« s »Appareil 6:« s »Appareil 7: Appareil« S » 8: "u" Device 9: "c" Device 10: "k" Device 11: "s"
Alternativement, si votre conception a un nombre fixe de périphériques: j'ai eu une conception qui utilisait un fond de panier qui a permis de brancher jusqu'à 4 cartes. Ce que j'ai fini par faire quoi placer un expanseur GPIO basé sur I2C sur le fond de panier (en fait, c'était un IC de contrôle de ventilateur dont j'avais besoin de toute façon, j'en ai choisi un avec une interface I2C et quelques GPIO dessus ).
J'ai acheminé un GPIO à travers chaque connecteur de bord de carte vers la broche de réinitialisation du DSP sur chaque carte enfichable. Tous les DSP ont été programmés en usine sur 1 adresse. Le contrôleur système a sorti les emplacements de la réinitialisation 1 à la fois, une commande I2C a été envoyée, si quelque chose ACKé, il a été supposé que l'emplacement était rempli et une commande a été envoyée pour qu'il change son adresse I2C en un UID pour cet emplacement. Cela a été fait pour chaque slot avec un délai de réponse raisonnable.
S'il s'agit d'un bus partagé capable de lancer des transferts esclaves, c'est-à-dire multi-maître. Il suffit que le périphérique esclave confirme le contrôle du bus et demande au maître une adresse, le maître lui donne simplement la prochaine adresse en ligne, pensez DHCP. Mêmes points bonus que ci-dessus.
Si le PHY est un seul maître et que vous avez un nombre complètement inconnu de périphériques ... connectez-vous en guirlande à un GPIO et utilisez-le pour contrôler s'ils répondent à une adresse programmée en usine? Ensuite, lorsque l'esclave obtient son adresse, il désaffirme le périphérique suivant en ligne? De cette façon, vous n'avez besoin que de 2 broches GPIO par appareil et 1 pour le maître et vous pouvez monter les appareils un à la fois. Doit fonctionner je pense.
Quoi qu'il en soit, honnêtement, toutes les spéculations jusqu'à ce que vous choisissiez un PHY et que vous puissiez nous en dire plus sur la façon dont le système global est connecté.