¿Cómo se construye el software para máquinas como cajeros automáticos o televisores?

13

Como programador principiante, solo he trabajado con la programación de aplicaciones basadas en computadora, pero una pregunta me viene a la cabeza muy a menudo desde que empecé a programar y no puedo obtener una respuesta adecuada.

Las máquinas no actúan solas, ese es el trabajo del programador, él le dice qué hacer y cuándo hacerlo, pero mi curiosidad está debajo de las computadoras. Tomaré los ejemplos de un software de cajeros automáticos en esta publicación, pero tenga en cuenta que hay muchos otros, como una pantalla de lavadora, o un televisor, un teléfono móvil, lo que sea.

¿Cómo se construye exactamente el software para este tipo de máquinas? Me imagino que no puede ser idéntico a la programación basada en computadora. ¿Qué lenguaje usan para hacer que funcionen esas cosas y cómo se hace el trabajo? ¿Hay programadores especializados en este tipo de programación? ¿Cuál es el proceso de hacer que estas máquinas cobren vida?

    
pregunta Bugster 09.03.2012 - 22:24

4 respuestas

15

Se conoce como sistemas integrados o desarrollo de software integrado. Recomiendo este libro si desea saber más sobre el proceso general sin ir demasiado hacia una arquitectura . Incluso te da un sistema operativo en tiempo real para jugar.

La programación integrada es muy dependiente de la arquitectura. Normalmente trabaja bajo una respuesta seria, tamaño del programa, recuperación de errores y restricciones de costos. Por ejemplo, puede tener un z80 (procesador de 8 bits, están en todas partes) y quizás un par de kilobytes de memoria para jugar. Es posible que solo tenga una ROM para indicar al sistema qué hacer y cómo configurar el programa. También podría ser solo un par de kilobytes de tamaño. ¿Por qué tan poca memoria? Pues si fabricas 15 millones de los pequeños retoños; cada centavo se convierte en $ 150,000.

Yo sugeriría jugar con algo como Arduino o Scribbler Robots si quieres aprender más haciendo. En cuanto a los lenguajes, C, C ++ y Assembly son el conjunto típico, aunque se puede usar Java (y, de hecho, se diseñó originalmente para este dominio si se puede soportar ese pensamiento). Otros también podrían usarse definitivamente. Lisp y ML están siendo desplegados.

Aprende todo lo que puedas sobre arquitectura, porque como dije, la asignación de memoria y las operaciones a nivel de bits comienzan a ser realmente importantes.

    
respondido por el World Engineer 09.03.2012 - 22:44
5

Definitivamente hay un ángulo incrustado aquí. Pero en estos días se ven más y más plataformas avanzadas en lo que tradicionalmente se denominarían dispositivos integrados. Por ejemplo, los televisores LG y Samsung ahora tienen API y tiendas de aplicaciones. Los televisores de Sony ejecutarán Android.

    
respondido por el Wyatt Barnett 09.03.2012 - 22:31
4

He visto dos cajeros automáticos abiertos en Denver, Colorado. Ambos eran (entonces) los cajeros automáticos de Compass Bank, y ambos eran Windows XP en el caso endurecido. Pude preguntarle al técnico qué, específicamente, uno de ellos corrió, y él dijo algo como "XP Embedded".

Por lo tanto, apuesto a que la programación de cajeros automáticos es menos como la programación integrada en estos días, y más como el desarrollo estándar de Windows.

    
respondido por el Bruce Ediger 10.03.2012 - 01:01
3

Estos tipos de dispositivos se programan usando programación integrada . Este es un tipo de programación de muy bajo nivel que trata en gran medida con la lógica y las puertas.

Si está interesado en aprender sobre la programación integrada, le recomendaría que busque arduino .

    
respondido por el CFL_Jeff 09.03.2012 - 22:28

Lea otras preguntas en las etiquetas