Gli interrupt non mascherabili sono interruzioni che non si possono in alcun modo disabilitare. In altre parole, in presenza di una richiesta di interrupt non mascherabile il µP è costretto ad abbandonare in ogni caso il normale flusso di esecuzione per servire l'interrupt. Per questo motivo gli interrupt non mascherabili sono spesso usati per gestire situazioni di emergenza come un calo di tensione improvviso o altre condizioni che richiedono una risposta immediata da parte del µP,
Nello Z80 l'interrupt non mascherabile viene innescato quando sul piedino NMI (Not Maskable Interrupt) del componente arriva un impulso negativo (attivo a livello basso). Dopo aver ricevuto in tal modo una richiesta di interrupt non mascherabile, lo Z80 porta a termine l'esecuzione dell'istruzione corrente ed effettua una chiamata automatica a una routine di gestione dell'interrupt non mascherabile all'indirizzo (fisso) 0066h in memoria.
All'arrivo di una richiesta di interrupt non mascherabile lo Z80:
Il ritorno al programma interrotto non avviene con una RET, ma con la particolare istruzione RETN dove la "N" indica trattarsi del ritorno da una routine di gestione di un'interrupt non mascherabile. La RETN ripristina il program counter e gli interrupt mascherabili e torna all'istruzione successiva a quella in cui si era verificato l'interrupt.
Spesso, per evitare che la routine di servizio dell' interruzione occupi un' area di memoria utile per altri scopi, conviene collocare la routine in un'altra zona della memoria e inserire nella locazione 066H una semplice istruzione di salto (JUMP).
La figura qui sotto mostra un semplice circuito basato su un comparatore per inviare una richiesta di interrupt non mascherabile allo Z80 nel caso in cui la tensione di alimentazione scenda al di sotto di una soglia prefissata:
La corrispondente routine di servizio dell'interrupt potrebbe per esempio attivare una segnalazione di allarme per segnalare la situazione di emergenza oppure potrebbe salvare il contenuto dei registri interni e della RAM su un supporto di memoria non volatile.
Sito realizzato in base al
template offerto da
http://www.graphixmania.it