Cómo firmwares comunicar a los dispositivos electrónicos para llevar a cabo sus operaciones?

StackOverflow https://stackoverflow.com/questions/1761334

  •  21-09-2019
  •  | 
  •  

Pregunta

Casi todos los dispositivos electrónicos viene con firmwares. Sé que se almacena en la memoria ROM (Read Only Memory) lo que se hace no volátil (sin fuente de energía necesaria para mantener el contenido de conseguir borrado Como RAM)

Lo que yo quiero saber es "¿Cómo se comunican los firmwares para los dispositivos electrónicos para llevar a cabo sus operaciones?" Digamos que hay un pequeño rodillo .. En la prensa de un botón, la forma en que hace que se mueva? Por favor alguien puede explicar lo que se encuentra detrás, para que esto ocurra .. Creo que puede requerir un poco breve explicación para relajarse ella ..

También lo es el lenguaje más popular utilizado para la codificación de firmware?

¿Fue útil?

Solución

hardware moderno como el que describes tiene un programa almacenado en la ROM y un microordenador para todo uso (CPU) que ejecuta ese programa.

La CPU lee la información de la ROM mediante el establecimiento de direcciones en su bus de direcciones y luego pedir la ROM de decir que el valor almacenado en esa ubicación. Hay algo así como un pulso de lectura siendo elevada (en una línea separada) para contar la ROM para que el valor accesible sobre las líneas del bus de datos. Eso, en pocas palabras, es la lectura.

Para obtener el hardware para hacer algo, la CPU ejecuta básicamente una especie de operación de escritura. Se pone un valor, que es sólo un montón de bits si desea verlo de esa manera, en el bus de direcciones para seleccionar un determinado dispositivo y tal vez la función en ese dispositivo, entonces se plantea otra línea de señal que dice "escribir!" El dispositivo que reconoce su dirección en el bus de direcciones responde a esa señal al aceptar los datos del bus de datos y luego realizando cualquiera que sea su función. Típicamente, uno de los bits del bus de datos se conectará en el dispositivo de salida a una etapa final de potencia, es decir, un transistor más fuerte que los que se utilizan sólo para el cálculo, y que el transistor se conectará algún dispositivo eléctrico para corriente suficiente para hacer que se mueva / resplandor / lo que sea.

, dispositivos baratos Tiny se codifican en lenguaje ensamblador para ahorrar costes de ROM; en cantidades industriales, incluso pequeñas cantidades de memoria pueden afectar el precio. El lenguaje ensamblador es específico de la CPU; algunos chips llamados "8051", "6502" y "Atmel (u otra cosa)" son muy populares. dispositivos más grandes con necesidades más complejas pueden tener su firmware escrito en C o un dialecto parecido a C, lo que hace que la programación de un poco más fácil que el ensamblador. Los desafió incluso ejecutar código C ++. Compilado, por supuesto.

Otros consejos

En la mayoría de los sistemas no son direcciones de memoria especiales que se utilizan para I / O. La lectura y la escritura en tales direcciones ejecuta alguna función en lugar de simplemente mover datos alrededor. En los sistemas x86 también hay instrucciones especiales de E / S IN y OUT para eso.

El caso más simple se llama paralelo E / S generales (GPIO), donde se puede leer o escribir datos directamente desde / a las patillas eléctricas externas en el dispositivo. Hay varias direcciones de memoria, llamados registros, donde se puede leer datos desde el puerto (tensión de cerca de 0 = 0, la tensión de alimentación cerca = 1), donde se puede escribir datos en el puerto, y donde se puede definir si un alfiler en particular es de entrada (el bit correspondiente es típicamente 0) o la salida (el bit es 1). Cada microcontrolador tiene GPIO.

Así que en su ejemplo el botón podría estar conectado a un pin configurado como entrada, que podía percibir el software. Es Esto se hace normalmente cada 10 ms y sólo reaccionará si tiene un valor estable durante varias lecturas, esto se llama supresión de rebotes. A continuación, se escribiría un 1 a parte de la producción, que a través de algún transistor para la amplificación podría comandar el motor. Si detecta que se suelta el interruptor podría apagar el motor de nuevo escribiendo un 0. Y así sucesivamente, este programa se ejecutará hasta que apaga el dispositivo.

Hay un montón de otros dispositivos de E / S para otros fines con típicamente cientos de registros para el control de ellos. Si quieres ver más que usted podría mirar en la hoja de datos de algún microcontrolador. Por ejemplo, aquí es la hoja de datos de ATtiny4 / 5/9/10 , una muy pequeña controlador de la familia Atmel AVR.

Hoy en día la mayoría de firmware está escrito en C, a excepción de los dispositivos más pequeños y por un poco de código especial para el manejo de las renovaciones y las interrupciones, que está escrito en lenguaje ensamblador.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top