Realmente no puedes hacer una elección aquí sin determinar la capa PHY pero algunas ideas:
Si el sistema realmente está encadenado como se dibuja, entonces active cada dispositivo en orden. Programa de fábrica a la "dirección de transmisión" si la PHY tiene una (como I2C). Luego, simplemente haga que cada dispositivo elija una dirección y envíe esa dirección al siguiente dispositivo a medida que se desplaza por la cadena.
Si usa los UID de 8 bits, obtendrá puntos de bonificación, al menos de mi parte, si escribe algo cómico en ASCII con las direcciones:
Maestro: "Oye, dispositivo 1, elige una dirección"
Dispositivo 1: "M", hey dispositivo 2 elige una dirección
Dispositivo 2: "y"
Dispositivo 3: "B"
Dispositivo 4: "o"
Dispositivo 5: "s"
Dispositivo 6: "s"
Dispositivo 7: "S"
Dispositivo 8: "u"
Dispositivo 9: "c"
Dispositivo 10: "k"
Dispositivo 11: "s"
Alternativamente, si su diseño tiene un número fijo de dispositivos: tenía un diseño que usaba un backplane que permitía la conexión de hasta 4 tarjetas. Lo que terminé haciendo fue colocar un expansor GPIO basado en I2C en el backplane (en realidad era un IC de control de ventilador que necesitaba de todos modos, simplemente elegí uno con una interfaz I2C y algunos GPIOs en él).
Enruté un GPIO a través de cada conector de borde de tarjeta al pin de reinicio del DSP en cada tarjeta enchufable. Todos los DSPs fueron programados de fábrica a 1 dirección. El controlador del sistema hizo que las ranuras salieran del reinicio 1 a la vez, se envió un comando I2C, si algo ACKed se asumió, se llenó la ranura y se envió un comando para que cambie su dirección I2C a un UID para esa ranura. Esto se hizo para cada espacio con un tiempo de respuesta razonable.
Si es un bus compartido que es capaz de iniciar transferencias de esclavos, también conocido como multi-master. Simplemente haga que el dispositivo esclavo asuma el control del bus y pida al maestro una dirección, el maestro le da la siguiente dirección en línea, piense en DHCP. Los mismos puntos de bonificación que arriba.
Si la PHY es maestra única y usted tiene un número de dispositivos completamente desconocido ... ¿conecte un GPIO en serie a través de ellos y úselo para controlar si responden a una dirección programada de fábrica? Entonces, cuando el esclavo obtiene su dirección, ¿anula el siguiente dispositivo en línea? De esta manera, solo necesita 2 pines GPIO por dispositivo y 1 para el maestro y puede activar los dispositivos uno por uno. Debería trabajar, creo.
De todos modos, honestamente, toda la especulación hasta que elija un PHY y nos puede decir más acerca de cómo está conectado el sistema en general.