Hardware Reference
In-Depth Information
worden ist. In der Firmware des Geräts könnte das Löschen zu 0 des RQS-Bits z. B.
erfolgen, wenn die erfolgreiche Übermittlung des Interrupt-IN-Pakets gemeldet
worden ist. Der Inhalt des Status Byte Registers ist Bestandteil dieses Pakets, daher
wird der Host beim Auswerten dieses Pakets das RQS-Bit als auf 1 gesetzt vorfin-
den, obwohl es im Gerät selbst bereits wieder zu 0 gelöscht worden ist. Hier ergibt
sich folgerichtig die Frage, wie man das RQS-Bit wieder auf 1 setzen kann, um eine
neue Bedienungsanforderung zu melden. Die Regeln dazu wurden unter IEEE
488.2, Abschnitt 11.3.3.1 (New Reason for Service), festgeschrieben:
Ein Gerät soll eine neue Bedienungsanforderung erzeugen, wenn:
1. ein Bit im Status Byte Register sich von 0 zu 1 ändert, während das korrespon-
dierende Bit im Service Request Enable Register 1 ist.
2. ein Bit im Service Request Enable Register sich von 0 zu 1 ändert, während das
korrespondierende Bit im Status Byte 1 ist.
3. sich ein Bit im Status Byte Register und das korrespondierende Bit im Service
Request Enable Register gleichzeitig von 0 auf 1 ändern.
Aufgrund der vielfältigen Möglichkeiten, die sich zur Erzeugung der Bedienungsan-
forderung ergeben, enthält der zitierte Abschnitt noch folgende Empfehlung für die
Entwickler von Anwendungsprogrammen: Das Applikationsprogramm des Hosts
sollte niemals annehmen, dass eine Bedienungsanforderung des Geräts einen neuen
Grund dafür anzeigt, sondern dass lediglich die Möglichkeit für einen neuen Grund
besteht. Im Applikationsprogramm sollte das Status Byte Register ausgewertet wer-
den, um zu ermitteln, ob es wirklich so ist. Die Ermittlung eines neuen Grundes für
eine Bedienungsanforderung (new reason for service) ist eine Aufgabe, die für alle
Geräte mit USBTMC-USB488-Schnittstelle prinzipiell gelöst werden muss, unab-
hängig vom verwendeten Mikrocontroller. Deswegen soll hier zunächst ein univer-
selles Verfahren entworfen werden, das danach auf den verwendeten Mikrocontrol-
ler PIC18F4550 übertragen wird.
Wenn ein Zustandswechsel innerhalb der Register STB oder SRE detektiert werden
soll, muss jedes Mal, wenn ein Registerinhalt in STB oder SRE verändert werden
soll, der Inhalt vor dieser Änderung mit dem neu einzutragenden Inhalt verglichen
werden. Dazu sollen die Hilfsregister STBp und SREp eingeführt werden. Immer
wennneueWerteinSTBoderSREeingeschriebenwerdenmüssen,wirdderaktu-
elle Inhalt der beiden Register in die jeweiligen Hilfsregister STBp oder SREp
kopiert und konserviert dort den alten Registerinhalt. Nachdem dann STB oder
SRE aktualisiert wurden, kann der neue Inhalt mit dem alten Inhalt verglichen wer-
den, indem STB mit STBp oder SRE mit SREp verglichen wird. Entsprechend der
Bedingungen zur Erzeugung der Ausgangsvariablen RQS gibt es für jede Bit-Posi-
Search WWH ::




Custom Search