Che cosa significa edge trigger e level triggered?


35

Sto studiando l'architettura a microprocessore 8085 e la parola edge innescata e innescata dal livello mi confondono molto. Qualcuno può spiegarmelo con le parole di laico?

Mentre studiavo gli interrupt dell'8085 chiamati RST 7.5, RST 6.5, RST 5.5 e TRAP mi sono imbattuto in queste parole e mi hanno confuso. Qui ho allegato un link al documento da cui stavo leggendo e ho citato i miei schemi di confusione.

nel documento RST 7.5 -> Edge triggered RST 5.5 -> Level triggered. TRAP -> Edge attivato e Level attivato. (perché? fa differenza?).

il link del documento


Questo non è un pdf.
Starblue,

si, è link al documento pdf. ho apportato le modifiche corrette.
trapaank

Risposte:


34

Non ho letto davvero il tuo documento, ma posso capire perché sei confuso. Ma è davvero un concetto molto semplice. Lasciatemi spiegare.

Trigger: questo significa rendere attivo un circuito. Rendere attivo un circuito significa consentire al circuito di prendere input e dare output. Come per esempio supponiamo che abbiamo un infradito. Quando il circuito non viene attivato, anche se si forniscono alcuni dati di input, non cambierà i dati memorizzati all'interno del flip-flop né cambierà l'uscita Q o Q '. Ora ci sono fondamentalmente due tipi di trigger. L'innesco è dato sotto forma di impulso di clock o segnale di gate. A seconda del tipo di meccanismo di innesco utilizzato, il circuito diventerà attivo in specifici stati dell'impulso di clock.

  1. Trigger di livello: nel trigger di livello il circuito diventerà attivo quando l'impulso di gate o clock si trova su un livello particolare. Questo livello è deciso dal designer. Possiamo avere un trigger di livello negativo in cui il circuito è attivo quando il segnale di clock è basso o un trigger di livello positivo in cui il circuito è attivo quando il segnale di orologio è alto.

  2. Edge Triggering: nel edge trigger il circuito diventa attivo sul fronte negativo o positivo del segnale di clock. Ad esempio, se il circuito è innescato dal fronte positivo, prenderà l'ingresso esattamente nel momento in cui il segnale di clock passa da basso ad alto. Allo stesso modo l'ingresso viene preso esattamente nel momento in cui il segnale di clock passa da alto a basso in innesco del fronte negativo. Ma tieni presente che dopo l'input, può essere elaborato in ogni momento fino a quando viene inserito l'input successivo.

Questa è la descrizione generale dei meccanismi di innesco e quelli si applicano anche agli interrupt 8085.


bene .. per quanto riguarda il trigger dei bordi, di solito devi avere i dati stabili per un breve periodo di tempo almeno per un determinato periodo di tempo prima del bordo (consulta le schede tecniche) e mantienili stabili per un certo periodo di tempo (consulta le schede tecniche) ma questi tempi sono generalmente piuttosto brevi.
JustJeff

capisco cosa volevi spiegare, ma un'altra domanda che ho menzionato è che in 8085 TRAP è sia edge trigger sia level trigger (vedi il documento). Quindi qual è la funzionalità in un caso del genere quando il circuito è sensibile al livello e attivato dal fronte.
trapaank

In quel caso vuole che anche il limite superi un certo livello. Quindi abbiamo bisogno di qualcosa come il fronte di salita e il livello> 3V
Steven Goldade,

7

Su un 8085, TRAP è un interrupt non mascherabile normalmente utilizzato per gestire errori come un'interruzione di corrente.

Se fosse attivato dal livello, il suo codice non potrebbe mai essere eseguito perché è un interrupt non mascherabile. Il gestore inizierà l'esecuzione quando diventerà attivo, ma sarebbe comunque attivo, quindi il gestore inizierà l'esecuzione, ma sarebbe comunque attivo, quindi il gestore inizierà l'esecuzione, ecc., Ecc. Pertanto deve essere attivato dal fronte .

Tuttavia, il trigger dei bordi è un problema quando la linea potrebbe presentare anomalie. I glitch possono far sì che il gestore venga invocato più volte mentre la linea non funziona. È un grosso problema con TRAP poiché non è mascherabile e si traduce in un RST.

Come compromesso, il TRAP funziona come se fosse attivato dal livello, tranne per il fatto che è riconosciuto solo quando è stato basso dall'ultima volta che è stato riconosciuto. Ciò garantisce che il gestore TRAP venga richiamato una sola volta.

Questo è ciò che intendono per "fronte attivato e livello attivato".


2

* Trigger * significa rendere attivo un circuito. Nel trigger di livello il circuito diventerà attivo quando l'impulso di gate o clock si trova su un livello particolare. Nel bordo innescando il circuito si attiva in negativo o fronte positivo del segnale di clock.


3
Questo è praticamente ciò che è stato detto sopra.
Brian Carlton,

-1

Golaž e vsz lo affermano bene:

È esattamente quello che dice.

Se è impostato l'interruzione di fronte, l'ISR verrà attivato solo sul fronte di discesa / salita di un impulso. Mentre se è impostato un interrupt sensibile al livello (come dici tu), l'ISR verrà attivato ogni volta che c'è un segnale di livello basso / alto sul pin corrispondente.

In breve, l'interruzione di fronte viene attivata solo sui cambi di fronte, mentre l'interruzione di livello viene attivata fino a quando l'impulso è basso o alto.

Quindi, se si dispone di interrupt di basso livello impostato, l'MCU continuerà a eseguire l'ISR fino a quando il pin è basso.

Cioè, lascerà e reinserirà l'ISR più e più volte, a condizione che il pin sia basso.

La mia impressione è che nessuno abbia veramente risposto a cosa significhi essere innescati sia dal livello che dal limite. E nemmeno io.

La risposta di D Krueger spiega correttamente cosa significa innescare sia il livello che il limite. (Almeno, la sua risposta mi sembra corretta, anche se non ho familiarità con l'8085.) La risposta di Golaz e vsz presuppone che l'interrupt sia mascherato. Non sono ancora sicuro di come "tranne che è riconosciuto solo quando è stato basso dall'ultima volta che è stato riconosciuto." differisce dall'essere innescato dal limite, tuttavia.


Grazie per la risposta, ma penso che OP sia passato a qualcos'altro e probabilmente abbia moglie e figli da quando la domanda è stata posta e la risposta 5 anni fa. Perché invece non provi a rispondere a nuove domande?
MaximGi

3
@MaximGi: non sono d'accordo. Non c'è niente di sbagliato nel rispondere a vecchie domande, i forum non sono destinati solo ai poster ma anche ad altri che finiscono qui quando cercano le risposte alla stessa domanda da soli. Le nuove risposte devono semplicemente aggiungere ulteriori informazioni a quelle già esistenti.
Mister Mystère,

1
@MisterMystère Non ho mai detto che ci fosse qualcosa di sbagliato nel rispondere a vecchie domande. Ma questa risposta tardiva non aggiunge alcun contenuto utile, alla domanda è già stata data una risposta corretta. Inoltre, l'ultima affermazione è falsa e contraria alle regole.
MaximGi

@MaximGi A un esame più attento, vedo che hai ragione: la mia ultima affermazione è stata falsa. L'ho corretto. La mia citazione da Golaz e vsz può essere utile per i nuovi utenti che non hanno familiarità con il significato di bordo o sensibile al livello da soli.
Josiah Yoder,
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.