19
OPTOIO-PCIe16
ULTRA
© 2017 by Messcomp Datentechnik GmbH
DV01
19
OPTOIO-PCIe16
ULTRA
© 2017 by Messcomp Datentechnik GmbH
EV04
19
19
wasco
®
wasco
®
5.7.1 Edge detection
In order to detect rising edges at the optocoupler inputs, each single input
provides an edge detection with connectable interrupt function. For this
purpose, a 32-bit interrupt register (OPTOINIF) is provided which makes
available one bit per input channel for edge detection. As soon as the card
detects a rising edge, the respective bit is set in register OPTOINIF. If at
least one of the enabled bits is set, this will be passed over a line to the
interrupt controller.
The interrupt function is enabled by writing the 32bit register
OPTOINFe. Each single bit represents one input. As shown in the table
port addresses (chapter 11.1) the respective bit indicates activation of the
interrupt function with a 1 and deactivation with a 0. So, if the bit is 0, the
corresponding bit in the register OPTOINIF will be set on a rising edge,
but it will not be considered when the interrupt is triggered.
All of the interrupt channels are deactivated in default state.
After the interrupt has been triggered, the source must be determined in
the relevant interrupt service routine by reading the register OPTOINIF.
Then the bit has to be cleared by setting the source channel bit in the
register OPTOINFr. After the card has executed the reset command, the
bit is reset automatically.
5.7.1 Flankenerkennung
Um steigende Flanken an den Optokopplereingängen zu erkennen,
besitzt jeder einzelne Eingang eine Flankenerkennung mit zuschaltbarer
Interruptfunktion. Dafür wird ein 32bit Interruptregister (OPTOINIF) bereit-
gestellt, welches für jeden Eingangskanal ein Bit zur Flankenerkennung
zur Verfügung stellt. Sobald an einem Eingang eine steigende Flanke
durch die Karte erkannt wird, wird das jeweilige Bit im Register OPTOINIF
gesetzt. Ist mindestens eines der freigeschalteten Bits gesetzt, wird dies
über eine Leitung an den Interruptcontroller weitergeleitet.
Das Freischalten der Interruptfunktion erfolgt durch das Beschreiben des
32bit Registers OPTOINFe. Dabei repräsentiert jedes einzelne Bit einen
Eingang. Wie aus der Tabelle Portadressen (Kapitel 11.1) zu entnehmen
ist, bedeutet eine 1 im jeweiligen Bit eine Aktivierung und eine 0 eine
Deaktivierung der Interruptfunktion. Steht im Bit also z.B. eine 0, so wird
bei einer steigenden Flanke im Register OPTOINIF zwar das entspre-
chende Bit gesetzt, jedoch wird dieses Bit bei der Interruptauslösung nicht
berücksichtigt.
Im Defaultzustand sind alle Interruptkanäle deaktiviert.
Nach dem ausgelösten Interrupt muss in der entsprechenden Interrupt-
Service-Routine durch das Einlesen des Registers OPTOINIF die Quelle
ermittelt und anschließend das Bit gelöscht werden, indem das zum
Quellenkanal gehörige Bit im Register OPTOINFr gesetzt wird. Nachdem
die Karte den Resetbefehl duchgeführt hat, wird das Bit automatisch
zurückgesetzt.