5 votos

Ayuda con identificación de dispositivo en una cadena

Así que estoy trabajando en un nuevo proyecto en el que estoy tratando de identificar los dispositivos en un circuito cerrado en el protocolo de "red" de este tipo. Estoy tratando de determinar cuántos dispositivos hay y el identificador único de cada dispositivo. Probablemente voy a tener una eprom o algo similar para almacenar el identificador único. La pregunta que yo tendría para el foro sería: es una cadena de margarita la mejor manera de identificar los dispositivos? (como se muestra a continuación)

alt text

Yo estaba pensando yo podría intentar también la ruta individual de las líneas de control para los dispositivos pero no necesariamente saben cómo es el total de dispositivos hay. Me va a ser capaz de conectar el dispositivo final de vuelta a la línea de retorno (físicamente mediante un puente y se identificaron aquí por el punto azul).

Así que, de nuevo, mi pregunta es: ¿hay una manera mejor de hacer esto?

Gracias!

4voto

letronje Puntos 128

Sería de gran ayuda para saber qué capa física (phy) que está utilizando. Pero, he aquí algo de información general:

Si usted está usando I2C, el autobús debe ser algo como esto:

(tomado de societyofrobots.com)

En tiempo de ejecución, puede detectar las direcciones I2C por la exploración del bus mediante el envío de una condición de INICIO para cada dirección y el control de un ACK.

Si usted está utilizando el SPI, se necesita un chip select línea por dispositivo. Si se ejecuta fuera de los pines, usted podría usar algún tipo de multiplexor. Usted puede ser capaz de escanear el autobús, mediante la afirmación de cada chip, seleccione la línea en la vuelta y tratando de comunicarse.

3voto

Es posible que desee buscar en LIN ( http://en.wikipedia.org/wiki/Local_Interconnect_Network ) que puedes utilizar algo llamado SNPD para detectar y asignar direcciones de los nodos en tiempo de ejecución. Hay tres métodos presentados en el artículo de la Wikipedia, y cualquier iba a funcionar, pero algunos son aparentemente patentado, así que ten cuidado.

El LIN de protocolo en sí es bastante simple de ciencia ficción basada en el protocolo con algunas características de fiabilidad, pero el SNPD técnicas pueden ser aplicadas a cualquier transferencia de datos serial.

2voto

hunterp Puntos 139

Si usted no tiene que hacer demasiado rápido hablando vistazo a Dallas Uno de los Hilos de su autobús.

1 cable ( y una implícita de la tierra)

direccionable, un descuento de 250 por bus, routeable, y la interfaz de los dispositivos son muy baratos.

Realmente útil como un bus de administración del sistema, porque es tan prescindibles. Tengo una familia de sistemas que utilizan 1-wire para la gestión del sistema y el descubrimiento del dispositivo, entonces algo más (como) jindi para las comunicaciones.

Yo sinceramente recomiendo algo con un meta-protocolo, de modo que pueden cambiar las cosas después.

2voto

dragonmantank Puntos 5316

Enviar un comando para que el primer dispositivo para que envíe su dirección, seguido por un contador (cero) Cada dispositivo de lectura en el comando de salida y la de comando.

Luego de leer en el mostrador, incremento, y la salida del contador.

Luego de leer en cualquiera de las anteriores direcciones y enviarlos.

A continuación, envíe su dirección.

Como cada dispositivo recibe el comando, se agrega su dirección para la respuesta.

Si los dispositivos están numeradas 1, 2, 3, entonces la respuesta resultante será:

DISCOVER CMD
COUNT = 3
ADDRESS 1
ADDRESS 2
ADDRESS 3

2voto

Jon Ericson Puntos 9703

Realmente no se puede incluso hacer una elección sin la determinación de la capa física (PHY), pero algunas ideas:

Si el sistema realmente se encadenan como se dibuja a continuación, llevar hasta cada uno de los dispositivos en orden. Fábrica de programa a la "dirección de difusión" si el PHY tiene uno (como I2C). A continuación, sólo tiene cada dispositivo de elegir una dirección y enviar a esa dirección con el siguiente dispositivo a medida que se mueve hacia abajo en la cadena.

Si el uso de 8bit Uidos, usted obtendrá puntos de bonificación, por lo menos de mí, si escribes algo cómico en ASCII con las direcciones:

Maestro: "Hey, dispositivo 1, elija una dirección" Equipo 1: "M", hey dispositivo 2 elija una dirección Dispositivo 2: "y" Dispositivo 3: "B" Dispositivo 4: "oh" Dispositivo 5: "s" El dispositivo 6: "s" Dispositivo De 7: "S" Dispositivo de 8: la "u" Dispositivo 9: "c" Dispositivo 10: "k" Dispositivo 11: "s"

Alternativamente, si su diseño tiene un número fijo de dispositivos: yo tenía un diseño que utiliza un chasis que permite hasta 4 tarjetas para estar conectado. Lo que terminé haciendo lo que la colocación de un I2C basado GPIO expansor en el plano posterior (en realidad era un fan control IC necesitaba de todos modos, yo sólo tomé una y la interfaz I2C y algunos de los GPIOs).

Me hizo pasar a una GPIO a través de cada borde de la tarjeta del conector del pin reset de la DSP en cada enchufe de la tarjeta. Todos los DSPs de fábrica programado para el 1 de dirección. El controlador del sistema trajo las ranuras de restablecimiento de 1 a la vez, un I2C comando fue enviado, si algo ACKed se suponía que la ranura fue poblada y un comando fue enviado para que cambie su dirección I2C para un UID para que la ranura. Esto se hizo para cada ranura con un razonable tiempo de respuesta.

Si su un bus compartido que capaz de esclavo de iniciar las transferencias, también conocido como multi-maestro. Sólo tiene el dispositivo esclavo ejercer el control del autobús y preguntar al maestro de la dirección, el maestro sólo le da la siguiente dirección en línea, creo DHCP. Mismos puntos de bonificación como el anterior.

Si el PHY es maestro y tiene un completo desconocido número de dispositivos....conexión en cadena de un GPIO a través de ellos y el uso que para el control de si responden a una programados de fábrica dirección? Luego, cuando el esclavo obtiene su dirección, de-afirma el siguiente dispositivo en línea? De esta manera usted sólo necesita 2 pines GPIO por dispositivo y 1 para el maestro y usted puede traer los dispositivos de una en una. Debería funcionar, creo.

De todos modos, la honestidad a toda especulación hasta que se elija un PHY y puede decirnos más acerca de cómo el sistema en su conjunto está conectado.

i-Ciencias.com

I-Ciencias es una comunidad de estudiantes y amantes de la ciencia en la que puedes resolver tus problemas y dudas.
Puedes consultar las preguntas de otros usuarios, hacer tus propias preguntas o resolver las de los demás.

Powered by:

X