40 votos

¿Qué significa "edge triggered" y "level triggered"?

Estoy estudiando la arquitectura del microprocesador 8085 y la palabra edge triggered y level triggered me confunde mucho. Puede alguien explicarme en palabras de laico?

Mientras estudiaba las interrupciones del 8085 llamadas RST 7.5, RST 6.5, RST 5.5 y TRAP me encontré con estas palabras y me confundieron. Aquí he adjuntado un enlace de documento del que estaba leyendo y he mencionado mis diagramas de confusión.

en el documento RST 7.5 -> Activación de bordes RST 5.5 -> Disparo por nivel. TRAP -> Activación por flancos y activación por niveles. (¿por qué? ¿hay alguna diferencia?).

el enlace del documento

37voto

Adam Wright Puntos 31715

No he leído tu documento realmente, pero puedo entender que estés confundido. Pero es un concepto muy simple realmente. Déjeme explicarle.

Disparo: Esto significa hacer un circuito activo. Hacer un circuito activo significa permitir que el circuito tome la entrada y dé la salida. Por ejemplo, supongamos que tenemos un flip-flop. Cuando el circuito no se activa, incluso si usted da algunos datos de entrada, no cambiará los datos almacenados dentro del flip-flop ni cambiará la salida Q o Q'. Ahora hay básicamente dos tipos de disparo. El triggering se da en forma de pulso de reloj o de señal de gating. Dependiendo del tipo de mecanismo de disparo utilizado, el circuito se activará en estados específicos del pulso de reloj.

  1. Disparo de nivel: En el caso de la activación por nivel, el circuito se activa cuando el pulso de compuerta o de reloj está en un nivel determinado. Este nivel lo decide el diseñador. Podemos tener un disparo de nivel negativo en el que el circuito se activa cuando la señal de reloj es baja o un disparo de nivel positivo en el que el circuito se activa cuando la señal de reloj es alta.

  2. Activación de bordes: En la activación por flancos el circuito se activa en el flanco negativo o positivo de la señal de reloj. Por ejemplo, si el circuito se activa por el flanco positivo, tomará la entrada exactamente en el momento en que la señal de reloj pase de baja a alta. Del mismo modo, la entrada se toma exactamente en el momento en que la señal de reloj pasa de alta a baja en el disparo de flanco negativo. Pero hay que tener en cuenta que después de la entrada, se puede procesar todo el tiempo hasta que se tome la siguiente entrada.

Esta es la descripción general de los mecanismos de disparo y estos también se aplican a las interrupciones del 8085.

7voto

Ryan Singer Puntos 38

En un 8085, TRAP es una interrupción no enmascarable que se utiliza normalmente para manejar errores como un fallo de alimentación.

Si se activara por niveles, su código nunca podría ejecutarse porque es una interrupción no enmascarable. El manejador comenzaría a ejecutarse cuando se activara, pero seguiría activo, por lo que el manejador comenzaría a ejecutarse, pero seguiría activo, por lo que el manejador comenzaría a ejecutarse, etc., etc. Por lo tanto, tiene que ser activado por el borde.

Sin embargo, la activación de bordes es un problema cuando la línea puede tener fallos. Los fallos pueden hacer que el manejador sea invocado varias veces mientras la línea se tambalea. Es un problema muy grande con TRAP ya que no es enmascarable y resulta en un RST.

Como compromiso, el TRAP funciona como si se activara por nivel, excepto que sólo se reconoce cuando ha estado bajo desde la última vez que se reconoció. Eso asegura que el manejador de TRAP sólo se invoca una vez.

Esto es lo que se entiende por "activación por flancos y activación por niveles".

2voto

Jeff Racine Puntos 41

* Activación de * significa hacer un circuito activo. En nivel de activación el circuito se activará cuando el impulso de compuerta o de reloj esté en un nivel determinado. En activación de bordes el circuito se activa en el flanco negativo o positivo de la señal de reloj.

0voto

user70092 Puntos 21

Golaž y vsz lo exprese bien:

Es exactamente lo que dice.

Si la interrupción de borde está activada, el ISR sólo se disparará en el flanco ascendente o descendente de un pulso. Mientras que si la interrupción sensible al nivel (como como dices), el ISR se disparará cada vez que haya una señal de señal de nivel bajo/alto en el pin correspondiente.

En resumen, la interrupción de borde se dispara sólo en los bordes cambiantes, mientras que las interrupciones de nivel se disparan siempre que el pulso sea bajo o alto.

Por lo tanto, si tiene una interrupción de bajo nivel establecida, la MCU seguirá ejecutando el ISR mientras el pin esté bajo.

Es decir, saldrá y volverá a entrar en el ISR una y otra vez, siempre que el pin esté bajo.

Mi impresión es que nadie ha respondido realmente a lo que significa ser a la vez nivelado y bordeado. Y yo tampoco lo he hecho.

Respuesta de D Krueger explica correctamente lo que significa que se active el nivel y el borde. (Al menos, su respuesta me parece correcta, aunque no estoy familiarizado con el 8085). La respuesta de Golaz y vsz asume que la interrupción está enmascarada. Sin embargo, todavía no estoy seguro de la diferencia entre "excepto que sólo se reconoce cuando ha estado baja desde la última vez que se reconoció" y ser activada por flancos.

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