He tenido la oportunidad de ser desarrollador de software durante años y ahora trabajo como ingeniero electrónico.
Cualquier sistema con complejidad viene con errores y errores. Tanto los microcontroladores como los circuitos integrados tienen sus ventajas y desventajas en función de sus áreas de uso.
Para proyectos a pequeña escala, los circuitos integrados son más rápidos, más baratos y más confiables que los microcontroladores. Para proyectos a gran escala con millones de entradas, análisis y lógicas de comparación, seguramente los microcontroladores tienen la ventaja sobre los circuitos integrados.
Todo el software falla en algún momento, incluso el código sin errores es propenso a modificaciones porque se guarda en una ROM, lo que resulta en errores lógicos (por ejemplo, pérdidas de memoria) que son difíciles de detectar pero que a veces terminan en una catástrofe.
Para los sistemas basados en software a prueba de balas de fallas en aplicaciones críticas (como sistemas de grado militar o sistemas de salvamento como sistemas de control de trenes), se implementan y desarrollan conceptos de "seguridad a prueba de fallas".
Los sistemas a prueba de fallas vuelven a un estado seguro en caso de que ocurra un error excepcional. Por lo general, dos procesadores ejecutan el mismo código, comparan los resultados de cada instrucción y, si son iguales, la instrucción se ejecuta. De lo contrario, el sistema usa relés eléctricos físicos para volver a un estado seguro.
Los sistemas basados en software a prueba de fallas se utilizan en sistemas de enclavamiento de trenes y ATP (Protección automática de trenes).
Diseñar el mismo sistema complejo con Ics es un gran dolor de cabeza para cualquier ingeniero. ¡Y es por eso que el software fue diseñado desde el día 1!