Hardware Reference
In-Depth Information
des Registerinhalts. In Bit 6 wird für diese Art der Abfrage das MSS-Bit übermittelt.
Wenn diese Methode gewählt wird, hat das MAV-Bit im Status Byte Register immer
den Wert 1, weil als Folge des Abfragebefehls *STB? natürlich eine Antwort in den
Ausgangspuffer des Geräts eingetragen wird. Daher ist diese Methode unsinnig,
wenn der Host über sein Anwendungsprogramm feststellen will, ob eine Antwort
auf ein gerätespezifisches Abfragekommando erzeugt worden ist. Zur Verdeutli-
chung ein Beispiel: Es soll mit dem Kommando VOLT? eine Spannung von einem
Voltmeter gelesen werden. Wenn der Anwender jetzt die Kommandofolge
*VOLT?;*STB? an das Gerät senden würde, um über das Status Byte Register fest-
stellen zu wollen, ob das MAV-Bit auf 1 gesetzt ist und somit die gemessene Span-
nung abholbereit ist, dann wird in jedem Fall das MAV-Bit auf 1 gesetzt sein, auch
ohne Antwort auf das Kommando VOLT?, weil zumindest eine Antwort auf das
Kommando *STB? erzeugt worden ist. Somit ist diese Methode ungeeignet, um Fra-
gen und Antworten zu synchronisieren. Unter anderem deswegen gibt es bei
USB488 eine Art Entsprechung zum Serial Poll von IEEE 488.1. Man kann über die
Control Pipe der USB-Schnittstelle mit dem bRequest 128 (READ_STATUS_BYTE)
das Status Byte Register abfragen. Wenn diese Methode gewählt wird, dann wird in
Bit 6 anstelle des MSS-Bits grundsätzlich das RQS-Bit übermittelt. Wie auf diese
Abfrage geantwortet wird, hängt davon ab, ob das Gerät einen Interrupt-In End-
point hat. Geräte ohne Interrupt-IN Endpoint melden den Inhalt des Status Byte
Registers als Antwort auf READ_STATUS_BYTE zurück, wobei das RQS-Bit immer
den Wert 0 haben muss (USB488: 4.3.1.1 und Tabelle 12). Diese Konfiguration der
Hardware würde einer IEC-Bus-Schnittstelle entsprechen, die nicht über die
Schnittstellenfunktion „Service Request“ verfügt (SR 0). Sofern ein Interrupt-IN
Endpoint im Gerät vorhanden ist, erfolgt die Übertragung des Status Byte Register-
inhalts über den Interrupt-IN Endpoint, und zwar genau so, wie es bei einem Serial
Poll unter IEEE 488.1 bzw. IEEE 488.2 geschehen würde (USB488: 3.4.2 und Tabelle
7). Das RQS-Bit hat dann seinen wahren Wert. Nachdem das Gerät über den Inter-
rupt-IN Endpoint den Inhalt des Status Byte Registers übertragen hat, beendet es
die READ_STATUS_BYTE-Anforderung, indem es über die Control Pipe anstelle
des Status Byte-Registerinhalts den Wert 0x00 überträgt (USB488: 4.3.1.2 und
Tabelle13).EsgibtnocheineletzteweitereMöglichkeit,andenInhaltdesStatus
Byte Registers heranzukommen und zwar in Verbindung mit dem USB488-Gegen-
stück zum Service Request des IEC-Bus. Wenn ein Gerät mit USB488-Schnittstelle
den Interrupt-IN Endpoint benutzt, um eine Bedienungsanforderung anzumelden,
dann überträgt es mit dieser Anforderung automatisch auch den aktuellen Inhalt
desStatusByteRegisters(USB488:3.4.1und Tabelle 6). Diese letzte Möglichkeit ist
zugleich die effektivste Methode, das Status Byte Register abzufragen, wenn dem
Gerät gestattet wird, Bedienungsanforderungen zu senden (siehe auch Abschnitt
10.3).
Search WWH ::




Custom Search