Hardware Reference
In-Depth Information
Bedeutung der Bits im Status Byte Register
DIO 1 bis DIO 4 und DIO 8
Diese Bits sind zur freien Verfügung des Geräteherstellers, sie sollen jedoch einer
der beiden Datenstrukturen entsprechen, die in IEEE 488.2 in den Abschnitten
11.4.2 und 11.4.3 beschrieben sind [IEEE-488.2: 11.2.1.3].
MAV
„Message Available“ (Nachricht verfügbar) zeigt an, ob eine Nachricht im Aus-
gangspuffer (in diesem Fall Bulk-IN Endpoint der USB-Schnittstelle) des Geräts
enthalten ist oder nicht. Der Host sollte den Bulk-IN Endpoint nur lesen, wenn
MAV auf 1 gesetzt ist. Das Bit muss bereits auf 1 gesetzt sein, bevor das Gerät vom
Host die Nachricht REQUEST_DEV_DEP_MSG_IN empfangen hat. Das Bit muss
1 bleiben, bis kein Byte mehr über den Bulk-IN Endpoint gesendet werden soll, das
zum aktuellen Transfer gehört. [USB488: 4.3.1.3]. Die Auswertung dieses Bits berei-
tet Probleme, wenn der Befehl *STB? in einer Reihe mit mehreren anderen Fern-
steuerbefehlen ausgegeben wird, die Antworten an den Host versenden wollen. Im
Beispielprojekt wird MAV erst auf 1 gesetzt, wenn der Parser alle Befehle bearbeitet
hat und damit alle Antworten erzeugt worden sind [IEEE488.2: 6.1.10.2.1]. Somit
würde MAV mit 0 gemeldet werden, obwohl Antworten erzeugt worden sind. Des-
wegen sollte *STB? nicht verwendet werden, um das MAV-Bit abzufragen, sondern
stattdessen die Methoden gewählt werden, die in Abschnitt 10.3 beschrieben sind.
MSS
„Master Summary Status“ wird auf 1 gesetzt, wenn das Gerät mindestens einen
Grund dazu hat, eine Bedienung durch den Host anzufordern. Die logische Ver-
knüpfung zur Erzeugung des MSS-Bits ist in Abschnitt 11.2.9 dargestellt. Zur
Erzeugung des MSS-Bits werden die Bits des Status Bytes mit den korrespondieren-
den Bits des Service Request Enable Registers (SRE) verknüpft. Das MSS-Bit wird
nur gemeldet, wenn das Status Byte mit dem Kommando *STB? abgefragt wird.
Dieses Bit hat im Status Byte dieselbe Position wie das RQS-Bit.
RQS
„Request Service“ wird auf 1 gesetzt, wenn das Gerät infolge eines auf 1 gesetzten
MSS-Bits eine Bedienungsanforderung an den Host abgegeben hat. Für ein Gerät
mit USB488-Schnittstelle bedeutet das, dass es ein Interrupt-IN Paket in den Inter-
rupt-IN Endpoint eintragen muss, mit dem eine Bedienungsanforderung gemeldet
wird. Entsprechend der Vorschrift in USB488, Abschnitt 3.4.1, muss daraufhin das
RQS-Bit wieder zu 0 gelöscht werden. Der Grund für dieses Vorgehen ist, dass sonst
permanent Bedienungsanforderungen an den Host gesendet werden würden, für
die es keine neuen Gründe gibt. RQS wird also nur einmal kurz auf 1 gesetzt, um
gleich wieder zu 0 gelöscht zu werden, nachdem das Interrupt-IN Paket erzeugt
Search WWH ::




Custom Search