Modelado de fallas para sistemas embebidos

10

Tengo un circuito de sensor inalámbrico con un microcontrolador y un transceptor módulo , algunos sensores integrados con I²C interfaz, un puerto UART y los componentes discretos necesarios.

Esta placa está diseñada para eliminar la energía de un panel solar (PV), con una batería LiPo y un cargador de derivación . Esto permite que el sensor sea autoalimentado y que funcione por un tiempo indefinido, lo que requiere el menor mantenimiento posible.

Me gustaría explorar las posibles fallas que pueden ocurrir en un sistema como este, y esto puede deberse al envejecimiento, a la violación de las especificaciones ambientales (temperatura, humedad, etc.) o al mantenimiento incorrecto (no a problemas de diseño / errores) ), con el fin de maximizar su vida útil de operación.

El entorno en el que opera el nodo sensor es un edificio, pegado al techo o las paredes. Así que las temperaturas extremas o la lluvia no son consideradas.

Lo que encontré son algunas fallas que trato de resumir:

  • Componente roto - > abierto \ cortocircuito
  • Sensor defectuoso - > valores de salida incorrectos (pero, ¿qué tan incorrectos?)
  • Aislamiento defectuoso debido al polvo \ agua - > mayor fuga
  • Temperatura fuera de rango - > ???

¿Cómo puedo estimar cómo va a fallar el nodo del sensor y por qué?

    
pregunta clabacchio

5 respuestas

7

Hay demasiados grados de libertad para comprender "todas" las posibles fallas. Sin embargo, existen técnicas para identificar y mitigar las fallas al principio del ciclo de diseño (es decir, antes de la publicación general).

Actividades en tiempo de diseño (pre-hardware)

La revisión por pares es siempre una excelente manera de encontrar errores. Haga que otra persona analice su diseño y prepárese para defenderse contra sus preguntas (¡o reconozca que encontraron un error y corríjalo!) No hay sustituto para el escrutinio, y los ojos frescos a menudo ven cosas que los cansados no pueden ver. Esto funciona tanto para el hardware como para el software: los esquemas se pueden revisar tan fácilmente como el código fuente.

Para el hardware, como han dicho otros, un DFMEA ( Modo de falla de diseño y análisis de efectos ) es una buena recomendación . Para cada componente, pregúntese "qué sucede si se produce un cortocircuito" y "qué sucede si se abre el circuito" y realice un registro de su análisis. Para los circuitos integrados, también imagine lo que sucede si las patillas adyacentes están cortocircuitadas entre sí (puentes de soldadura, etc.)

Para el firmware, herramientas de análisis de código estático (MISRA, pelusa, etc.) se pueden usar para revelar errores ocultos en el codigo Cosas como los punteros flotantes y la igualdad en lugar de comparar (= vs ==) son elementos comunes que estas herramientas no se perderán.

Una teoría de operación escrita también es muy útil, tanto para el hardware como para el software. Una teoría de la operación debería describir en un nivel bastante alto cómo funciona el sistema, cómo funcionan las protecciones, la secuenciación, etc. Simplemente poner en palabras cómo debe fluir la lógica a menudo lleva a que uno se dé cuenta de que algunos casos pueden haberse perdido ("Um, waitasec, ¿qué pasa con esta condición? ")

Pruebas de nivel de prototipo

Una vez que tenga el hardware en la mano, es hora de ponerse a "trabajar".

Después de realizar todo el análisis teórico, es crucial caracterizar con precisión cómo funciona el dispositivo dentro de las especificaciones. Esto se conoce comúnmente como prueba de validación o calificación. Todos los extremos permisibles necesitan ser probados.

Otra actividad importante de calificación es el análisis de estrés de componentes. Cada parte se evalúa en función de su voltaje / corriente / temperatura máxima, en una condición operativa definida. Para garantizar la robustez, se debe aplicar una directriz de reducción adecuada (no exceda el 80% de la tensión, el 70% de la potencia, etc.)

Una vez que sepa cómo están las cosas en condiciones normales, puede comenzar a especular sobre anomalías externas o múltiples anomalías, como la que describe. Nuevamente, el modelo DFMEA (qué sucede si X ocurre) es un buen enfoque. Piense en cualquier cosa posible que un usuario pueda hacer con la unidad: salidas cortas, atar las señales, derramar agua sobre ella, probarlas y ver qué sucede.

Una prueba HALT ( prueba de vida altamente acelerada ) también es útil para este tipo de sistemas. La unidad se coloca en una cámara ambiental y se ejercita de temperatura mínima a máxima, entrada y salida mínima y máxima, con vibración. Esto encontrará todo tipo de problemas, tanto eléctricos como mecánicos.

Este también es un buen momento para hacer algunas pruebas de fuzz integradas: ejercite todas las entradas más allá de los rangos esperados , envíen información a través de UARTs / I2C, etc. para encontrar agujeros en la lógica. (Por ejemplo, las rutinas I2C de bit banged son conocidas por bloquear el bus).

La prueba de contienda es una buena manera de demostrar robustez. Desactive las funciones de protección, como sobretemperatura, sobrecarga, etc. y aplique tensión hasta que algo se rompa. Lleve la unidad a la temperatura más alta posible hasta que algo falle o se produzca un comportamiento errático. Sobrecarga la unidad hasta que falle el tren motriz. Si algún parámetro falla solo ligeramente por encima de las condiciones más desfavorables, es posible que sea una revisión de la marginalidad y algunas consideraciones de diseño.

También puede tomar el enfoque de siguiente nivel y probar físicamente algunas de sus conclusiones de DFMEA; en realidad, haga los cortos y los abre y pin-cortos y vea qué explota.

Lecturas adicionales

Mi fondo está en la conversión de poder. Tenemos un estándar de la industria llamado IPC-9592A que es un esfuerzo por estandarizar cómo deben calificarse los productos en términos De qué pruebas y cómo deben hacerse. Muchos de los tipos de pruebas y metodologías a las que se hace referencia en este documento podrían usarse fácilmente en otras disciplinas eléctricas.

    
respondido por el Adam Lawrence
6

Con varios dispositivos en la interfaz I2C, tiene la posibilidad de que el problema de "idiota" parlotee cuando un dispositivo falla, acapara el I2C y elimina todas las demás transmisiones I2C.

La prueba de remojo combinada con la prueba ambiental proporcionaría una forma diferente de análisis de fallas. El uso de componentes marginales, temperaturas máximas / mínimas / fluctuantes, diferentes humedades, fuentes de alimentación sucias, entornos ruidosos de radiofrecuencia, etc. durante un período de tiempo simula un período mucho más largo de uso normal. El sistema tendrá fallas reales y se pueden calcular las tasas de falla.

    
respondido por el spearson
3

El error más probable es errores de firmware. Todo lo que he hecho ha tenido algunos.

Asegúrese de tener un temporizador de vigilancia habilitado y exija que se realicen todas las funciones críticas antes de "acariciar al perro". Me gusta establecer una bandera en la interrupción del temporizador y usarla para borrar el watchdog en el bucle principal.

Pruebe también la recuperación del firmware durante los ciclos de reinicio.

Dado que el inicio es cuando ocurren muchas fallas, me gusta encender un relé, luego escribir un script rápido para apagar y encender, esperar a que la radio indique la activación, repetir. Luego haz esto durante 10000 ciclos o menos.

    
respondido por el markrages
2

Algunos obvios:

  • Fallo de la batería. Posiblemente la pérdida de electrolito que conduce a la contaminación de la electrónica
  • Sobretensión del sistema fotovoltaico
  • ¿Se está moviendo o cerca de la maquinaria? Luego choque / vibración
  • Pérdida de comunicación debido al entorno externo (lluvia / nieve que absorbe la señal, etc.).

Si está realizando una FMEA, primero debe considerar qué tan crítico es el sistema antes de poder decidir qué constituye una falla.

    
respondido por el lyndon
2

Me sorprende que nadie haya mencionado Pruebas de vida aceleradas y Highly Accelerated Life Testing .

Una de las herramientas importantes que tiene a su disposición es que por cada 10 grados centígrados de aumento de temperatura, la confiabilidad promedio se reduce en un 50 por ciento. Puede tener una idea de la vida útil de su producto probándolo a una temperatura mucho mayor. No tiene que probar los componentes más allá de su temperatura nominal para aprovechar esto.

    
respondido por el Rocketmagnet

Lea otras preguntas en las etiquetas