DALI: manejo de múltiples respuestas desde el sistema DALI

0

Diseñé mis propios dispositivos DALI y ahora trato de construir un sistema DALI. Dado que mis engranajes DALI se basan en MSP430G2553, aproveché que el código ya está hecho para el tablero de demostración DALI de TI.

Código fuente
Nota de solicitud

Ahora mismo estoy trabajando solo con un maestro DALI y un esclavo DALI. La pregunta es, ¿cómo (o cómo debería) se comportará el sistema con más esclavos DALI?

Mi punto es ... Cómo manejar múltiples respuestas DALI, por ejemplo, ¿Después de emitir el comando QUERY STATUS? Supongo que todos los dispositivos en el sistema intentarán enviar su respuesta, sin saber que hay más esclavos tratando de comunicarse. ¿Cuál es la solución alternativa para este caso?

    
pregunta Rainy

1 respuesta

2

No hay ninguna "solución alternativa" para el caso de respuestas múltiples a la consulta, solo tiene que manejar todos los resultados posibles. DALI está diseñado para permitir colisiones que pueden ocurrir cuando varias marchas responden a la misma consulta, por lo que tiene que manejar esto en su software maestro. Los esclavos no deben intentar evitar las colisiones entre ellos, solo espere el tiempo requerido después de la consulta y responda (a menos que su respuesta sea un NO, que es Sin respuesta).

Hay varios casos que debe manejar en el software maestro cuando espera una respuesta:

  • No hay respuesta dentro del período de tiempo de espera. Todos los equipos que fueron abordados han respondido NO o no se han encendido.

  • Se produce una colisión cuando se superponen varias respuestas, lo que generalmente resulta en los errores de temporización de bits. Cuando solo tienes 2 o 3 engranajes respondiendo, el El caso habitual es que los bits bajos se superponen y se termina con acortado
    bits altos, significativamente menos que el tiempo de pulso mínimo.

  • Es posible pero raro que un equipo múltiple responda con el mismo Datos exactamente al mismo tiempo y no tienen errores de sincronización de bits. En En este caso no sabrías la diferencia entre la respuesta. siendo de una marcha o varias. Tal vez puedas diseñar el sistema para que no te importe.

  • También es posible pero raro tener varias respuestas alineadas para que no se producen errores de temporización de bits, pero la trama de respuesta es más larga que 8 bits. Algunos equipos realmente lo hacen por diseño si son una unidad de hardware con varias direcciones cortas lógicas, pero el requisito de la Edición 2 es que este tipo de diseño responda en este caso con un pulso bajo de longitud extendida. Debe tratar cualquiera de estos como una colisión, ya que también es un marco no válido en términos de lo que se permite como respuesta válida.

Como diseñador de equipo, se recomienda utilizar cierta aleatoriedad dentro de la ventana de tiempo de respuesta para que los casos raros ocurran lo menos posible. Se aclaró en la Edición 2 que no debe usar la prevención de colisiones para la respuesta.

Como diseñador de dispositivos de control, debe elegir sus consultas y modos de direccionamiento con cuidado para poder hacer frente a cuáles podrían ser las respuestas. Por ejemplo, si necesita los bits de QUERY STATUS de varias marchas, consultará cada uno utilizando su dirección corta (asignada anteriormente de forma única) a su vez, en lugar de usar difusión o grupo. Alternativamente, si solo desea conocer el estado de falla de la lámpara, un QUERY LAMP FAIL de transmisión tiene la ventaja de que solo la marcha cuya lámpara haya fallado responderá, por lo que puede diseñar su lógica para enfrentar un solo SÍ o una colisión. ya que eso te dice que al menos ha fallado una lámpara.

    
respondido por el Martin

Lea otras preguntas en las etiquetas