He tenido la oportunidad de ser un 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 según sus áreas de uso.
Para proyectos de pequeña escala, los IC 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, para asegurarse de que 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, ya que se guarda en una ROM, lo que genera 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 sistemas basados en software a prueba de balas de fallas en aplicaciones críticas (como sistemas militares de grado o de salvamento, como sistemas de control de trenes), se implementan y desarrollan los conceptos de "protección contra 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 utiliza relés eléctricos físicos para revertir a un estado seguro.
Los sistemas basados en software a prueba de fallas se utilizan en los sistemas de interbloqueo 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 primer día!