Microcontrolador a prueba de fallas

#1
Buenas noches compañeros:

¿Cómo se hace para proteger al microcontrolador de una falla de software? Es decir, como tener la seguridad que en aplicaciones remotas, en caso de una falla el micro reinicie y no tenga que venir alguien a hacerlo.

¿Es conveniente en estos casos "resetear" externamente y de forma diaria el programa del micro para evitar cualquier "guindamiento"?

Saludos
 
#2
Hola.
Hay una utilidad para los casos de cuelgues o bucles infinitos llamado WatchDog el cual es un temporizador que se puede ajustar a 'n' tiempo dependiendo del tipo de microcontrolador que uses. Es necesario reiniciar este temporizador constantemente de lo contrario reiniciara el micro. Claro que esto ayuda al echo de haber realizado un programa con un lógica prácticamente perfecta sin dejar ningún detalle de lado.

Saludos.
 
#3
Buenas noches compañeros:

¿Cómo se hace para proteger al microcontrolador de una falla de software? Es decir, como tener la seguridad que en aplicaciones remotas, en caso de una falla el micro reinicie y no tenga que venir alguien a hacerlo.
Desafortunadamente la seguridad no existe... existen las pruebas exhaustivas que logran que tu programa sea cada vez mas confiable.... pero esas pruebas requieren tiempo, dinero y esfuerzo... y una vez que encuentras un error.. hay que actualizar el software de inmediato


¿Es conveniente en estos casos "resetear" externamente y de forma diaria el programa del micro para evitar cualquier "guindamiento"?

Saludos
NO... lo mejor... lo mas recomendable es nunca dejar de hacer pruebas y actualizar el software una vez encontrado un error...

Caso practico.. los satelites... no puedes mandar a un astronauta a presionarles el boton de reset... siempre se tiene un satelite corriendo las 24 horas en un laboratorio en la tierra, donde constantemente estan tratando de hacerlo fallar para despues subir el programa actualizado remotamente... y todos los satelites traen sistemas dobles y hasta triples... si algo falla automaticamente entra un sistema de respaldos... pero aun asi se han perdido muchos satelites sin causa aparente...
 
#6
Hay varias configuraciones posibles, he visto equipos con dos CPUs que se supervisaban mútuamente y si pasaba algo cualquiera de las dos cortaba. Eso me parece mas seguro que usar watchdog ya que el WD resetea y ya está, si el reset no funciona hemos palmado.
Los equipos que yo hacía tenían tres WD; dos internos uno de los cuales era un WD "normal" y el otro verificaba que el oscilador funcionaba, si fallaba el oscilador conectaba un oscilador interno y entraba en un "modo de apagar todo" además le puse un WD externo por si acaso.
En estos equipos lo mejor es buscar un micro IAP en el que puedas actualizar el soft "sin parar", lo último que hice funcionaba así; mientras estabas ejecutando la aplicación de control podías recibir el nuevo soft y flashearlo en otro lado de la rom, una vez recibido podías abandonar la ejecución del antiguo y seguir por el nuevo todo eso "sin parar" de controlar el sistema.
En lo último "serio" que hice había una funcionalidad extra: diferenciaba un reset interno de uno externo. Si era el interno era porque por ejemplo se había ido la corriente y entonces seguía ejecutando la aplicación. Si era el externo era porque alguien había pulsado reset y en ese caso se quedaba parado porque se supone que ha pasado algo grave, se supone que si sigues ejecutando la aplicación puede que se cuelgue de nuevo porque tenga un fallo grave.
De cualquier modo la seguridad completa no existe.
 
#7
¿Cómo se hace para proteger al microcontrolador de una falla de software?
Eso es imposible a menos que diseñes un circuito específico para dañar el microcontrolador físicamente, o en su defecto que el hardware este mal diseñado. Mal planteamiento de la pregunta.

Es decir, como tener la seguridad que en aplicaciones remotas, en caso de una falla el micro reinicie y no tenga que venir alguien a hacerlo.
Esta el watch dog en la mayoría de controladores para que en caso de que el programa se quede "colgado" se reinicie. Pero si quieres seguridad de que habrá un reinicio pon un reset automático temporizado. Al menos tienes la seguridad que en X tiempo se reiniciará. Estaciones meteorológicas en lugares remotos son el caso.

¿Es conveniente en estos casos "resetear" externamente y de forma diaria el programa del micro para evitar cualquier "guindamiento"?
La respuesta anterior es una solución. Pero definitivamente si quieres hacer algo seguro, deberás tener un sistema de detección de errores de forma continua, y con ésto me refiero que continuamente depures tus programas con la experiencia que obtengas del funcionamiento de campo de tu sistema.
 
Arriba