Hardware Reference
In-Depth Information
IRP SETUP IN Control
Transaction Status Transaction
Der Host sendet eine SETUP Transaktion, das Gerät interpretiert aus den Daten,
was es zu tun hat und bestätigt die Ausführung mit einem leeren Datenpaket als IN
Control Status Transaktion. Auch diese Transaktionen kommen häufig vor.
5.8 Unbehandelte Control Transfers
Jede USB-Geräteschnittstelle muss damit rechnen, dass eine SETUP Transaktion
einen Request enthält, der vom angesprochenen Gerät nicht bearbeitet wird. Ein
Beispiel dafür ist der Request GET_OTHER_SPEED_CONFIGURATION_DES-
CRIPTOR [USB 2.0: 9.6.4].
Wenn ein Gerät keine unterschiedlichen Übertragungsgeschwindigkeiten unter-
stützt, dann kann es diesen Deskriptor nicht übermitteln. Die USB-2.0-Dokumen-
tation sieht vor, dass ein Gerät auf alle nicht unterstützten Requests mit einem
STALL reagiert [USB 2.0: 9.4]. Das bedeutet, dass anstatt der Übermittlung einer
IN Control Data-Transaktion oder einer IN Control Status-Transaktion, die
Datenübertragung für den Control Endpoint einfach gesperrt wird. Dazu sendet
das Gerät eine STALL-Information an den Host. Dieser Zustand wird als „Request
Error“ bezeichnet [USB 2.0: 9.2.4]. Die SoftwaredesGerätsmussalsoentspre-
chend reagieren und den Control OUT und Control IN Endpoint vom
PIC18F4550 sperren. Der Host erkennt diesen Zustand und weiß, dass der betref-
fende Request vom Gerät nicht unterstützt wird. Nachdem diese Transaktion been-
det wurde, muss das Gerät wieder in der Lage sein, den nächsten Control Transfer
abzuhandeln, also muss der Control Endpoint aus dem Halt-Zustand in den nor-
malen Betriebszustand zurückkehren. Dazu wird in der Beschreibung des
PIC18F4550 ausgeführt, dass diese Rückkehr automatisch erfolgt, wenn eine neue
SETUP Transaktion vom Host eintrifft [DS39632C: 17.4.1.2]. Die Praxis zeigt
jedoch, dass dieses nicht immer der Fall ist. Gelegentlich bricht nach einem STALL
die Kommunikation über den USB komplett zusammen und nur ein Reset der
Schnittstelle kann den PIC18F4550 dazu bringen, wieder auf den USB zu reagie-
ren. Das ist natürlich kein praktikables Verhalten und deswegen muss dieser Effekt
per Software umgangen werden. Wie eingangs erwähnt, ist es nützlich, sich die
Firmware des MCHPFSUSB v1.2 USB Framework von Microchip genauer anzuse-
hen. Hier findet sich sowohl eine Beschreibung als auch eine Lösung für das
beschriebene Problem. Sie ist nachstehend zitiert.
Search WWH ::




Custom Search