62
WITIO-PCIe192
ULTRA
© 2018 by Messcomp Datentechnik GmbH
DV0101
62
WITIO-PCIe192
ULTRA
© 2018 by Messcomp Datentechnik GmbH
EV0103
62
62
wasco
®
wasco
®
The interrupt controller is used to process the single interrupts from the
various possible sources. It can enable single interrupt sources or can
detect the sources of triggered interrupts.
The 32 bit register INTCON is the Central Unit as shown in fig 12.1. Here
all possible interrupt sources (partially already processed) are merged.
If an interrupt is triggered, e.g. by an edge on a digital input, this is passed to
the first bit in the register INTCON. Whenever the register value of INTCON
is nonzero (one or more interrupts are applied) this will be forwarded to
INT. Thus, INT represents a type of gate register. The interrupt will be for-
warded to the PC when the board‘s interrupt function is enabled (INTe =
1) and the register is reset. The interrupt line to the PC is blocked for any
further interrupts when an interrupt has been triggered. To enable again
the line, the source has to be determined and the trigger serviced. During
this time it is possible to trigger further interrupts from other sources on the
board (e.g. by other egde inputs or timers), but they will not be forwarded
to the PC. When an interrupt trigger is serviced and the respective source
is enabled again, the respective bit in register INTCON will be set to 0 au-
tomatically. All of the interrupt triggers being serviced and reset (INT = 0),
the register INT can be cleared by setting the first bit in the INTr register
and another interrupt can be forwarded to the PC.
12. Interrupt Controller
INTCON (32-Bit-Register)
INT
Int
INT
e
INTr
INTCON[2]
DIN Änderungserkennung
reserviert
reserviert
reserviert
INTCON[4]
INTCON[5]
INTCON[6]
0
1
2
3
4
5
6
31
. . . .
Zählerinterrupt
Timerinterrupt
IC-Interrupt
INTCON[3]
DIN Flankenerkennung
7
Um die einzelnen Interrupts aus den verschiedenen möglichen Quellen
zu verarbeiten, wird der interne Interruptcontroller verwendet. Über ihn
können einzelne Interruptquellen freigegeben oder die Quellen ausgelöster
Interrupts identifiziert werden.
Wie Abb. 11.1 zeigt, stellt das 32Bit-Register INTCON die Zentraleinheit
dar. Hier werden alle möglichen Interruptquellen (teilweise schon aufbe-
reitet) zusammengeführt.
Wird ein Interrupt z.B. durch eine Flanke an einem Optokopplereingang
ausgelöst, wird dieser an das erste Bit im INTCON-Register weitergeleitet.
Sobald der Registerwert von INTCON ungleich 0 ist (ein oder mehrere
Interrupts liegen an), wird dieser an INT weitergeleitet. INT stellt dabei eine
Art Torregister dar. Ist die Interruptfunktion der Karte aktiviert (INTe = 1) und
das Register zurückgesetzt, so wird der Interrupt an den PC weitergegeben.
Wurde der Interrupt ausgelöst, wird die Interruptleitung zum PC für weitere
Interrupts gesperrt. Bevor diese wieder freigegeben werden kann, muss
die Quelle bestimmt und der Auslöser behoben werden. Während dieser
Zeit können zwar weitere Interrupts von anderen Quellen auf der Karte
ausgelöst werden (z.B. durch andere Flankeneingänge oder Timer), jedoch
werden diese nicht an den PC weitergeleitet. Wird ein Interruptauslöser
bearbeitet und die jeweilige Quelle wieder freigegeben, wird das jeweilige
12. Interruptcontroller
Abb. 12.1
Bit im Register INTCON auto-
matisch auf 0 gesetzt. Sind alle
Interruptauslöser bearbeitet
und zurückgesetzt (INT = 0),
kann das Register INT durch
das Setzen des ersten Bits im
Register INTr gelöscht werden
und ein weiterer Interrupt kann
an den PC geschickt werden.
INTCON (32-Bit-Register)
INT
Int
INT
e
INTr
INTCON[2]
DIN Änderungserkennung
reserviert
reserviert
reserviert
INTCON[4]
INTCON[5]
INTCON[6]
0
1
2
3
4
5
6
31
. . . .
Zählerinterrupt
Timerinterrupt
IC-Interrupt
INTCON[3]
DIN Flankenerkennung
7
Fig. 12.1