Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

...

Generell besteht die Möglichkeit den Treiber in einem Interrupt-Mode zu betreiben. Neben der Aktivierung des Interrupt-Mode im Treiber muss dafür über die xChannelRegisterNotification-Funktion eine Callback-Routine angemeldet werden. Möglich ist dies für verschiedene Arten von Events. Dabei liefern die Callback-Routine selbst keine Daten aus. Sie "informiert" nur über das Eintreten eines Events. Nach dem Registrieren des Events ist also nach wie vor beispielsweise die xChannelIORead- oder xChannelIOWrite-Funktion erforderlich um Prozessdaten zu handeln.


Notifikation für I/O

Um die Notifikations zu verstehen, ist es es zunächst erforderlich über einige Dinge des DPM zu sprechen. Generell ist das DPM in verschiedene Bereiche aufgeteilt. Einer der wichtigsten ist hierbei die Proessdaten-Area für Eingangs- und Ausgangs-Daten. Der Bereich ist durch einen Handshake-Mechnismus geschützt welcher den Zugriff auf das Prozessdaten-Image zwischen Host/Applikations-Seite und Firmware/Gerät-Seite steuert. Die Applikation darf nur auf das Prozess-Image zugreifen, wenn der Handshake-Token auf der Host-Seite liegt. Die Applikation sollte dies also vor einem Zugriffsversuch überprüfen. In den xChannelIORead- bzw. xChannelIOWrite-Funktion ist dies bereits implementiert. Bei der Verwendung dieser Funktionen tut dies der Treiber also bereits selbst. Nach dem Zugriff auf das Prozess-Image toggelt der Treiber den Handshake an die Geräteseite. Die Firmware wird die Prozessdaten von/auf einen internen Datenpuffer kopieren und toggelt seinerseits das Handshake wieder an die Host-Seite zurück.