61
OPTOIO-PCIe32
ULTRA
© 2019 by Messcomp Datentechnik GmbH
DV02
61
OPTOIO-PCIe32
ULTRA
© 2019 by Messcomp Datentechnik GmbH
EV02
61
61
wasco
®
wasco
®
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 32-Bit-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
11. Interruptcontroller
Abb. 11.1
INTCON (32-Bit-Register)
INT
Int
INT
e
INTr
INTCON[0]
INTCON[1]
reserviert
reserviert
reserviert
INTCON[4]
INTCON[5]
INTCON[6]
0
1
2
3
4
5
6
31
. . . .
OPTOIN Flankenerkennung
OPTOIN Änderungserkennung
Zählerinterrupt
Timerinterrupt
IC-Interrupt
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.
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 11.1. Here
all possible interrupt sources (partially already processed) are merged.
If an interrupt is triggered, e.g. by an edge on an optocoupler 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 in-
terrupt will be forwarded 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 automatically. 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.
11. Interruptcontroller
Fig. 11.1
INTCON (32 Bit Register)
INT
Int
INT
e
INTr
INTCON[0]
INTCON[1]
reserved
reserved
reserved
INTCON[4]
INTCON[5]
INTCON[6]
0
1
2
3
4
5
6
31
. . . .
OPTOIN Edge Detection
OPTOIN Change Detection
Counter Interrupt
Timer Interrupt
IC Interrupt