Redundancia para una transmisión de bus de datos

Voy a empezar un proyecto en mi universidad en unas semanas. Dado que es una colaboración entre mi Universidad y una empresa muy importante, no puedo decir demasiado sobre el proyecto en sí. Así que trato de dar aquí solo la cantidad necesaria de información que describe el problema. Espero poder describirlo lo suficientemente bien como para que sea comprensible para usted.

Problema: Un microcontrolador envía datos a través de un bus (puede ser RS485 o CAN. Esto aún no está especificado) a hasta 12 dispositivos:

Imagen 1

Hubo un poco de decepción con este diseño, porque a alguien involucrado en el proyecto no le gustó la solución presentada (algunas personas quieren cablear directamente el microcontrolador con cada dispositivo) debido a la redundancia . La razón detrás de este diseño es que podemos escribir e implementar un protocolo para transmitir datos a cada dispositivo. Eso es bueno y extremadamente eficiente, ya que puedo enviar datos a través de un paquete de información.

A algunas de mis universidades no les gusta esta solución debido a la falta de redundancia. Si por alguna razón el bus va a ser interrumpido (rotura de un cable, movimiento mecánico en el cable, etc...) algún dispositivo no puede obtener su información (que es vital para la vida del sistema) y realmente mucho de daño puede ocurrir. El peor de los casos es cuando se interrumpe la conexión entre el maestro y el primer dispositivo. Entonces todos los dispositivos se pierden. Este caso debe evitarse a toda costa.

Quiero evitar esto. Así que estaba pensando en una solución en la que haya al menos dos buses de comunicación para permitir la comunicación de los dispositivos en caso de que un bus ya no funcione. Así que tengo en mente el siguiente diseño:

Imagen 2

Pero tengo un problema: quiero enviar por cada línea la misma información. El dispositivo debe poder leer solo uno. Por lo tanto, ambas líneas deben fusionarse en un canal antes de que el dispositivo las lea.

Preguntas:

  1. ¿Es aceptable esta forma de redundancia? ¿O debería repensar mi diseño?
  2. ¿Tiene sentido fusionar ambas líneas en una antes de ingresar al dispositivo? ¿O debería tener el dispositivo al menos dos puertos RS485 o CAN separados y luego fusionar la información por software?

Respuestas (2)

Este es un tema muy amplio, conocido como "análisis de árbol de fallas", probablemente demasiado amplio para abordarlo aquí en nuestro formato de preguntas y respuestas.

La pregunta sobre su bus serie debe evaluarse en el contexto del sistema más grande. Debe considerar qué tipos de fallas son probables y el costo de mitigar cada tipo de falla. Debe tener en cuenta las fallas eléctricas dentro de los dispositivos maestro y esclavo, así como las fallas físicas en el cableado y los conectores.

A veces, la redundancia es la respuesta correcta; otras veces, es suficiente hacer que un subsistema haga una transición a un "estado seguro" (hasta que se puedan realizar las reparaciones) cuando se detecta una falla.

Existen varios enfoques industriales para hacer sistemas redundantes, generalmente todo se duplica, incluido el módulo principal de la CPU, el IO distribuido y, por supuesto, dos buses, la aplicación luego consiste en verificar o falsificar el sistema roto. Muchas empresas tienen su propia solución proietary. Puede buscar un ejemplo para el sistema redundante Siemnens, solo para información: https://www.youtube.com/watch?v=K3AXkW2Dp3M

Pero me gustaría informarle que hay dos tipos de estos sistemas complicados: a prueba de fallas y redundantes. Fail safe es un sistema que hace que la máquina/planta se detenga de manera segura, mientras que redundante hace que la máquina/planta continúe funcionando si se detecta una falla. Evidentemente el fail safe es mucho más fácil y menos costoso. Debe analizar lo que realmente quiere, ya que los sistemas redundantes se utilizan para plantas realmente serias como plantas de energía nuclear o sistemas de buques, etc.