¿Por qué necesitamos una interrupción en un sistema integrado?

Suponga que alguien quiere tomar píldoras cada hora hasta que el pastillero esté vacío. La píldora y la toma de píldoras son realmente importantes.

Ahora, tú tienes dos opciones

  1. Esa persona puede sentarse sobre un reloj y tomar la píldora a tiempo. Esto tiene un efecto secundario en las rutinas diarias.
  2. configure una alarma para que suene cada hora o poco antes según su conveniencia para que pueda tomar la píldora sin perderse sus otras rutinas diarias.

Ves el punto aquí. Ayuda a esa persona a preocuparse menos por un evento externo y una búsqueda efectiva del tiempo.

Pero una interrupción no se limita a un evento externo. También puede servir al propósito interno.

Un ejemplo es que no toma agua hasta que obtiene la interrupción “sed” de su cuerpo. Y debe tomar el agua o simplemente reconocer la interrupción para continuar sin tomar agua.

Para un micro es igual que el anterior. O elige encuestas que consumen muchos recursos y no son 100 o efectivas, o interrumpe cuando el controlador de interrupciones supervisa, lo que no consumirá muchos recursos como lo haría el método de encuesta.

Ejemplo de uso de interrupción,

  1. Botón de parada de emergencia en una planta de energía nuclear, que podría cortar la energía al reactor
  2. su CA que obtiene los datos IR por aire y cada bit es importante para ensamblar y encontrar qué botón presionó en el control remoto de CA
  3. unidad de análisis de sangre en el laboratorio donde el sensor está leyendo el nivel del virus del VIH e informa a su micro para que tome los datos para analizar
  4. Su teléfono móvil, para ahorrar energía de la batería, el teléfono tiene que entrar en algún modo de ahorro de energía. Y cuando tocas un botón o pantalla específicos, tu teléfono cobra vida.
  5. y muchos más. ni siquiera podemos imaginar cuántos dispositivos alimentados integrados funcionan a nuestro alrededor hoy.

Inicialmente, la gente solía usar la técnica de sondeo en lugar de interrupciones.

En las encuestas, imagine un escenario en tiempo real. Usted es el jefe de una organización y su deber es atender las consultas y problemas de todos.

Ahora imagine una situación en la que tiene 10 empleados. Ahora, de acuerdo con la lógica de sondeo, debe dirigirse a cada empleado y preguntar “Cualquier consulta / trabajo”; en caso afirmativo, ordénelo de otra manera: pase al siguiente; De lo contrario, solo conoce al próximo empleado.

Tampoco repita este proceso para cada empleado en orden cíclico del 1 al 10 una y otra vez. Déjame saber la cantidad de fatiga que sufres y la pérdida de tiempo. También hay situaciones en las que después de conocer al empleado n. ° 2, se mueve y, luego, el n. ° 2 tiene algunas consultas. Tendría que esperar su turno. Y tendrá que perder el tiempo preguntando a 9 empleados antes de asistir a algo importante. Este es un proceso muy malo.

Ahora imagina un jefe más inteligente. Se sienta en su cabina trabajando en su trabajo y le dice a cada empleado que “interrumpa” su trabajo cuando se necesitan cosas. Como resultado, el jefe puede hacer un trabajo importante y solo ayudar cuando sea necesario. También se pueden manejar cosas como la interrupción de prioridad.

Esta es la razón por la cual las interrupciones son una parte muy importante de los sistemas integrados. Aprender sistemas embebidos se vuelve muy simple cuando comienzas a comparar con escenarios del mundo real.

Una interrupción es una señal al procesador emitida por hardware o software que indica un evento que requiere atención inmediata. Cada vez que se produce una interrupción, el controlador completa la ejecución de la instrucción actual e inicia la ejecución de una rutina de servicio de interrupción (ISR) o un controlador de interrupción . ISR le dice al procesador o controlador qué hacer cuando ocurre la interrupción. Las interrupciones pueden ser interrupciones de hardware o interrupciones de software.

En el diseño actual en el que estoy trabajando hay interrupciones para:

  1. Manejo de todos los datos seriales entrantes. Las interrupciones se utilizan para administrar spi, i2c, entrada y salida en serie. ¿Por qué? Porque es un desperdicio de recursos de la CPU hacerlo de otra manera. Estos son eventos lentos que provocan interrupciones cuando se procesan los datos.
  2. Generando formas de onda de modulación. Esencialmente, se escribe un dac de forma regular para crear una forma de onda. La base regular tiene que ser cronometrada con mucha precisión y es bastante frecuente. Entonces se usa una interrupción del temporizador.
  3. Watchdog interrumpe para activar la ejecución del código antes de reiniciar en caso de que ocurra un problema.
  4. Demodulación: tenemos que muestrear una forma de onda exterior a intervalos muy precisos. Una vez más se usa una interrupción del temporizador. Esto es necesario (lo mismo para la modulación) para eliminar el jitter tanto como sea posible)
  5. Despertar, interrumpir. Para ahorrar energía, el sistema pasa al modo de suspensión. La única forma de reanudar las operaciones es despertarlo con una interrupción.
  6. Algunos eventos externos deben procesarse muy rápidamente, por lo que es preferible tener una interrupción en esa línea a la encuesta.
  7. En algunos sistemas operativos utilizados en sistemas integrados, el cambio de tareas se puede realizar mediante una interrupción del temporizador.

Los sistemas integrados tienen principalmente restricciones basadas en tiempo real.

Déjame explicarte con un ejemplo.

Si hay un incendio repentino en cualquier punto, el sensor cerca de ese punto debe enviar inmediatamente una señal al sistema integrado. No solo eso, el sistema integrado debe priorizar dichas señales deteniendo sus propios procesos y ejecutando los procesos que toman medidas contra incendios , como informar a una persona de seguridad o activar chorros de agua cerca de él, etc.

Ahora imagínense, el sistema embebido está ocupado procesando cierta información y existe un gran incendio. El sensor está haciendo su trabajo de enviar señal, pero el sistema integrado no lo está recibiendo porque ya está involucrado en algún otro proceso. En este caso, el fuego puede extenderse en poco tiempo y causar grandes pérdidas a cualquier empresa o industria.

Entonces, esta es la razón por la cual se requieren interrupciones en un sistema embebido.

Espero que hayas entendido esta explicación no técnica.

En los sistemas embebidos, debe tratar principalmente con sensores, ahora comprendamos un ejemplo.

Hoy en día, los sistemas operativos son multitarea y se basan en procesos, por lo tanto, si desea realizar un proyecto en el que se esté monitoreando continuamente algo y si sucede algo si tiene que hacer un trabajo como si la temperatura está por encima del nivel, debe dejar de calentar para deje de calentar tiene que generar interrupción y una vez que se genere, el sistema operativo dará prioridad a la interrupción y dejará de calentar.

En su mayoría, la tarea relacionada con el sensor se realizará mediante interrupciones.

En general, debería ser posible evitar el uso de una interrupción mediante el uso de sondeos sincrónicos de dispositivos de E / S, pero esto requiere el uso de ciclos de reloj regulares, que en ciertas aplicaciones pueden ralentizar la aplicación más de lo deseado y pueden requerir más hardware del práctico por razones de tamaño y potencia. Entonces, si el tiempo y la velocidad son esenciales, y las señales probadas son asíncronas, lo que significa que pueden ocurrir en momentos no programados o aleatorios, entonces un sistema de interrupción puede ser el camino a seguir.

More Interesting

Dado un sistema integrado que tiene múltiples CPU, ¿cómo podemos diseñar un sistema para la comunicación entre procesadores?

Completé mi postgrado en sistemas integrados en 2015. ¿Alguien puede sugerirme si unirse al programa HCL LEAP tiene alguna ventaja?

¿Hay alguna startup que trabaje en dominios de telecomunicaciones / semiconductores / embebidos en la región de Delhi / NCR? Si los hay, ¿dónde puedo obtener una lista de ellos?

¿Qué es el temporizador de vigilancia en el sistema integrado?

¿Qué es la tecnología verde?

Tanto IoT como los sistemas integrados utilizan el mismo concepto básico, entonces ¿por qué IoT está recibiendo tanta publicidad? ¿Se acabaron los días de los sistemas integrados?

Quiero entrar en robótica y sistemas embebidos. Tengo muy poca idea sobre la programación (solo programación básica de arduino). ¿Como empiezo?

¿Cuál es la diferencia entre AVR y ARM?

¿Qué proyecto de demostración puedo implementar para aprender a programar usando el bus CAN?

¿Hay algo como el campo de código libre pero para sistemas integrados?

¿Dónde comienza un principiante con conocimientos mínimos de programación y microcontroladores a aprender sobre los sistemas integrados?

¿Cuál es una buena placa MCU para la práctica de programación a nivel de sistema?

¿Qué campo y universidad serían aplicables según mi perfil mencionado a continuación?

¿Es el BeagleBone una buena plataforma para aprender Embedded C?

¿Me pueden ayudar a aprender las características de un sistema integrado?