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 zunächst erforderlich über einige Dinge des DPM zu kennen. Das DPM selbst ist in verschiedene Bereiche aufgeteilt. Einer der wichtigsten sind hierbei die Prozessdaten-Area jeweils für Eingangs- und Ausgangs-Daten. Der Bereich ist durch ein Handshake-Schema 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.

...