Redundancia modular triple con voto mayoritario cuando falla un microcontrolador

2

En un sistema de votación por mayoría simple, la mayoría de los valores de entrada serán la salida, como se muestra a continuación.

Sin embargo, ¿cómo se manejan los escenarios en los que fallan uno o dos microcontroladores? Además, ¿cómo superamos el problema de tener entradas flotantes cuando un microcontrolador muere?

    
pregunta Olivier

3 respuestas

2

Las entradas flotantes son fáciles: usted desvía una línea con una resistencia de pull-up o pull-down (generalmente 10kOhm o menos). Por lo general, son una buena práctica: cubren situaciones en las que su microprocesador se reinicia, está en blanco, se está programando, etc. Básicamente, lo cubren en estados donde su software no se está ejecutando.

Supongamos que tiene una red que controla la habilitación de algún otro IC / dispositivo, y está activa en nivel alto. La colocación de una resistencia de 10k en esta red a GND sesgará esa red baja en ausencia de cualquier otro estímulo. Ahora, para encenderlo, las salidas de su microcontrolador dicen una señal lógica de 3.3 V para encenderlo. Esto gastará 330uA (prácticamente nada) para superar la resistencia, y el circuito funcionará como se diseñó.

Ahora, si estamos hablando de escenarios de fallas en los que un pin IO se ha bloqueado, o si ha sufrido un SEU (evento único, también conocido como bit flip) en un registro de datos de puerto de E / S, es mucho, mucho Es más difícil defenderse contra el exterior de un IC sin una puerta de votantes física, externa y por mayoría. Una resistencia de 10k desplegable no hará nada contra un pin de E / S MCU de baja impedancia que se ha trabado alto y puede generar 10s de miliamperios.

La protección de bloqueo generalmente se implementa con un LCL o un limitador de corriente de bloqueo. Esto puede ser tan simple como poner su circuito detrás de un IC de interruptor de alimentación que tiene un límite de límite de corriente programable, como un TI TPS2556. En el caso de un enclavamiento descendente, este IC limitará la corriente que puede fluir y posiblemente protegerá contra el daño permanente del hardware que se produce como resultado del calentamiento localizado durante un evento de enclavamiento. Las causas terrestres de enganche generalmente se deben a una sobretensión; Las causas orbitales se deben a partículas energéticas que imparten suficiente LET (transferencia de energía lineal) para desencadenar la condición de parásito SCR / latch-up. (Ver también: enlace )

La redundancia modular triple (TMR) lo protege contra fallas simples como muestra su tabla de verdad. Para escenarios de fallas múltiples, se vuelve muy complejo, y estos a menudo se consideran casos de fallas patológicas que se consideran estadísticamente poco probables de que no se gaste un esfuerzo adicional.

Supongo que podría extenderse más a la redundancia n-modular (por ejemplo, saltar a 5), pero le puedo decir que para las aplicaciones espaciales en las que he trabajado, nuestros diseños de sistema están bien con TMR. Tendría curiosidad por escuchar lo que tienes que requiere una confiabilidad más estricta.

    
respondido por el Krunal Desai
1

El supuesto general en los sistemas de seguridad y de diseño redundante es que solo se produce una falla.

En general, se supone (y se diseña) que las fallas son independientes, por lo que una sola falla no genera fallas adicionales (cascada de fallas). Por ejemplo, si un circuito se sobrecalienta, se dispara una protección térmica, en lugar de que el calor de ese circuito haga que falle otro circuito, etc.

En un sistema redundante como se describe, debe asumir que solo se produce una falla; esto significa que debe asegurarse (a través del diseño físico, el cableado, etc.) de que, por ejemplo, A y B no pueden actuar juntos. , o Q cortos a A etc.

La suposición general de falla es que el pin de la MCU no falla en Z alta, pero falla en un estado lógico incorrecto. En el caso de una Z alta, también se puede usar una R desplegable pasiva en las salidas (quizás implementada en la puerta mayoritaria). Tenga en cuenta que en el sistema redundante, una Z alta no será peor que un estado atascado.

    
respondido por el jp314
1

El problema con la pregunta es que las suposiciones son demasiado simplistas cuando se aplican a la realidad, que es esencialmente lo que estás preguntando, por lo que es una pregunta justa.

La lógica de la "tabla de verdad" anterior supone que existe una señal que declara la salida de un sistema como un 0 o un 1 que IT siempre considera válido. Esta solución se puede comparar con la de 1 o más sistemas para ver si también están de acuerdo con la validez.

En el caso simplista

  • Un solo fallo funciona según lo previsto.

  • Dos o la mayoría de las fallas hacen que los dos controladores defectuosos "ganen" sobre el controlador bueno y la salida es errónea. Este es el resultado lógico de la votación por mayoría *. Esto supone que la salida se puede representar como 0 o 1. (* y sucede en la política también :-))

En el mundo real, si esto es útil, es útil un medio independiente para detectar fallas. Los cables de estado de falla se pueden utilizar para modificar la votación.

En el caso de entradas flotantes u otros modos de falla, la respuesta es "lo que sea que te funcione". es decir, la situación variará de un caso a otro y, si puede detectar el estado flotante u otra condición demostrablemente errónea, puede adaptarse. Si no puedes, entonces no puedes.

Tenga en cuenta que si hay una señal flotante de un controlador (defectuoso) y los otros dos están bien, entonces el resultado de la votación será válido.

El muestreo de las señales se debe realizar de forma sincrónica (utilizando un muestreo cronometrado) si se deben evitar resultados erróneos durante las transiciones. Esto se aplica si se utilizan tres señales válidas o dos válidas más una no válida o flotante.

    
respondido por el Russell McMahon

Lea otras preguntas en las etiquetas