3 votos

8051 nivel de prioridad de interrupción significado

Estoy trabajando con P89V51RD2 que es un micro-controlador 80C51. Tiene ocho fuentes de interrupción y cuatro niveles de prioridad.

Snapshot from datasheet of p89v51rd2 uC

En la tabla anterior, hay una columna Prioridad de servicio que suena como Prioridad fija servicio de interrupción. Y luego están dos bits para ajustar prioridad de interrupciones individuales( Prioridad de interrupción ), lo que hace 4 niveles.

No pude encontrar la explicación de Bits de prioridad en la ficha técnica. ¿Cuál es exactamente el propósito de estos bits de prioridad?

3voto

Bernd Puntos 61

En esta MCU, los niveles de prioridad de interrupción permiten asignar cada fuente de interrupción de dispositivo a uno de los cuatro grupos de prioridad de interrupción. Los dispositivos que generan interrupciones en un grupo de prioridad superior son capaces de provocar una interrupción aunque la MCU ya esté procesando una interrupción en un grupo de prioridad inferior.

El nivel de Prioridad de Servicio dentro de un grupo en particular se utiliza para determinar qué dispositivo tendrá la primera oportunidad de interrumpir la MCU cuando más de un dispositivo en el mismo grupo están afirmando una solicitud de interrupción habilitada al mismo tiempo. Las interrupciones dentro de un grupo se procesan en serie en el orden de Servicio hasta que se completan todas las interrupciones en ese grupo.

Cuando finalice el procesamiento de interrupciones dentro de un grupo de prioridad superior, se permitirá reanudar el procesamiento de interrupciones dentro de un grupo de prioridad inferior. Si se producen nuevas interrupciones de un grupo de prioridad inferior mientras se está procesando un grupo de prioridad superior, éstas tendrán que esperar hasta que finalice el grupo superior. Si se está procesando un grupo de prioridad inferior y se producen interrupciones en un grupo de prioridad superior, se suspende el procesamiento del grupo inferior para poder procesar el grupo de prioridad superior.

El estado de contexto para cualquier interrupción suspendida se mantiene en la pila para la ubicación del contador de programa de forma similar a como se mantiene el contador de programa para el programa de la línea principal cuando se produce una interrupción. Cualquier registro común en uso, como A, B o DPTR, necesita también ser guardado en la pila si son a su vez utilizados por la rutina de servicio de interrupción de mayor prioridad. Lo mismo ocurriría con los registros R0-R7 si se utiliza un modo de banco único/compartido para los registros. La arquitectura 8051 tiene cuatro bancos de registros y a veces ciertos bancos se asignan para el uso de interrupciones en ciertos niveles de prioridad. Esto puede ahorrar un montón de pila extra empuja y salta cuando una interrupción de alta prioridad tiene que procesar en un período muy corto de tiempo.

Los niveles de interrupción de mayor prioridad se utilizan normalmente para rutinas de servicio de tiempo extremadamente crítico en las que la latencia debe mantenerse al mínimo absoluto. Además, las interrupciones de mayor prioridad suelen ser las que se codifican con menor tiempo de ejecución, aunque no siempre es así.

i-Ciencias.com

I-Ciencias es una comunidad de estudiantes y amantes de la ciencia en la que puedes resolver tus problemas y dudas.
Puedes consultar las preguntas de otros usuarios, hacer tus propias preguntas o resolver las de los demás.

Powered by:

X