Tengo un circuito de sensor inalámbrico con un microcontrolador y un módulo transceptor de 2,4 GHz , algunos sensores integrados con interfaz I²C, un puerto UART y los componentes discretos necesarios.
Esta placa está diseñada para eliminar energía de un panel solar (PV), con una batería LiPo y un cargador de derivación . Esto permite que el sensor se autoalimente y funcione por 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 que pueden deberse al envejecimiento, la violación de las especificaciones ambientales (temperatura, humedad, etc.) o un mantenimiento incorrecto (no problemas de diseño / errores), en Para 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. Por lo tanto, no se consideran las temperaturas extremas o la lluvia.
Se me ocurrieron algunas fallas que trato de resumir:
- Componente roto -> abierto \ cortocircuito
- Sensor defectuoso -> valores de salida incorrectos (pero ¿qué tan incorrecto?)
- Defecto de aislamiento debido al polvo \ agua -> aumento de fugas
- Temperatura fuera de rango -> ???
¿Cómo puedo estimar cómo va a fallar el nodo sensor y por qué?
fuente
Respuestas:
Hay demasiados grados de libertad para comprender "todas" las posibles fallas. Sin embargo, existen técnicas para identificar y mitigar fallas al principio del ciclo de diseño (es decir, antes de la publicación general).
Actividades de tiempo de diseño (pre-hardware)
La revisión por pares siempre es una excelente manera de encontrar errores. Pídale a alguien que analice su diseño y prepárese para defenderse de sus preguntas (¡o reconozca que encontraron un error y lo arreglan!) No hay sustituto para el escrutinio, y los ojos frescos a menudo ven cosas que los cansados no pueden ver. Esto funciona tanto para hardware como para 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 esto se corta" y "qué sucede si esto se abre en circuito abierto", y anote su análisis. Para los circuitos integrados, también imagine lo que sucede si los pines adyacentes están en cortocircuito entre sí (puentes de soldadura, etc.)
Para el firmware, se pueden usar herramientas de análisis de código estático (MISRA, lint, etc.) para revelar errores ocultos en el código. Cosas como punteros flotantes y igualdad en lugar de comparar (= vs ==) son 'oopsies' comunes que estas herramientas no se perderán.
Una teoría escrita de la operación también es muy útil, tanto para hardware como para 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 secuencia, etc. Simplemente expresando cómo debe fluir la lógica a menudo lleva a uno a darse cuenta de que algunos casos pueden haberse pasado por alto ("Um, waitasec, ¿qué pasa con esta condición? ")
Prueba 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 permitidos deben ser probados.
Otra actividad de calificación importante es el análisis de estrés de componentes. Cada parte se evalúa frente a su voltaje / corriente / temperatura máximos, en una condición operativa definida. Para garantizar la robustez, se debe aplicar una pauta de reducción adecuada (no exceda el 80% del voltaje, el 70% de la potencia, etc.)
Solo una vez que sepa cómo están las cosas en condiciones normales puede comenzar a especular sobre anormalidades externas o múltiples anormalidades como las que está describiendo. Una vez más, el modelo DFMEA (qué sucede si sucede X) es un buen enfoque. Piense en cualquier cosa posible que un usuario pueda hacer a la unidad: salidas cortas, unir señales, derramar agua sobre ella, pruébelas y vea 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 ejerce 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 incrustadas : ejercite todas las entradas más allá de sus rangos esperados, envíe galimatías a través de UART / I2C, etc. para encontrar agujeros en la lógica. (Las rutinas de I2C con golpes de bits son conocidas por bloquear el bus, por ejemplo).
La prueba de conflictos 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 algún comportamiento errático. Sobrecargue la unidad hasta que falle el tren motriz. Si algún parámetro falla solo ligeramente por encima de las condiciones del peor de los casos, es una indicación de marginalidad y es posible que deba revisarse alguna consideración de diseño.
También puede adoptar el enfoque del siguiente nivel y probar físicamente algunas de sus conclusiones de DFMEA: en realidad, haga los cortos y las aperturas y los cortos y vea qué explota.
Otras lecturas
Mi experiencia es en conversión de energía. Tenemos un estándar de la industria llamado IPC-9592A que es un esfuerzo para estandarizar cómo se deben calificar los productos en términos de qué pruebas y cómo se deben hacer. Muchos de los tipos de pruebas y metodologías mencionadas en este documento podrían utilizarse fácilmente en otras disciplinas eléctricas.
fuente
Con múltiples dispositivos en la interfaz I2C, tiene la posibilidad del problema de "balbuceo idiota" en el que un dispositivo falla, acapara el I2C y mata todas las demás transmisiones I2C.
Las pruebas de remojo combinadas con las pruebas ambientales proporcionarían 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 RF, 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 fallas.
fuente
La falla más probable son los errores de firmware. Todo lo que he hecho ha tenido algunos.
Asegúrese de tener un temporizador de vigilancia habilitado y requiera que todas las funciones repetidas críticas sucedan 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 su recuperación de firmware durante los ciclos de reinicio.
Dado que el inicio es cuando se producen muchas fallas, me gusta encender un relé, luego escribir un script rápido para encender y apagar, esperar a que la radio indique que se ha despertado y repetir. Luego haga esto durante 10000 ciclos más o menos.
fuente
Algunos obvios:
Si está haciendo un FMEA, primero debe considerar cuán crítico es el sistema antes de poder decidir qué constituye una falla.
fuente
Me sorprende que nadie haya mencionado las Pruebas de vida aceleradas y las Pruebas de vida altamente aceleradas .
Una de las herramientas importantes que tiene a su disposición es que por cada aumento de temperatura de 10 grados centígrados, la confiabilidad promedio disminuye en un 50 por ciento. Puede hacerse una idea de la vida útil de su producto probándolo a una temperatura muy elevada. No tiene que probar los componentes más allá de su temperatura nominal para aprovechar esto.
fuente