Hardware Reference
In-Depth Information
werden. Nach erfolgreicher Ausführung dieses Requests muss das Gerät ein short
packet in den Bulk-IN Endpoint schreiben, falls das noch nicht geschehen ist, um
das Ende der Übertragung zu signalisieren. Dazu muss es gegebenenfalls warten, bis
diese Operation möglich ist. Ein short packet kann 0 Datenbytes enthalten oder
jede Anzahl von Datenbytes bis wMaxPacketSize-1. Damit muss es mindestens
1 Byte kürzer sein als die maximale Paketgröße, die der Endpoint aufnehmen kann
[USBTMC: 3.3, 10. Regel]. Der Host muss mit einem CHECK_ABORT_BULK_IN_
STATUS Request laufend überprüfen, ob der Bulk-IN Endpoint leer ist.
STATUS_FAILED
Sofern kein Transfer über den Bulk-IN Endpoint im Gange ist und der Endpoint
leer ist, wird dieser Status gemeldet.
STATUS_TRANSFER_NOT_IN_PROGRESS
Für diesen Status kann es folgende Gründe geben:
1. Das bTag des laufenden Transfers stimmt nicht mit dem bTag des Requests über-
ein. In diesem Fall wird als bTag das Tag des laufenden Transfers zurückgemeldet.
2.EsistzwarkeinTransferimGange,aberderBulk-INEndpointistnichtleer.Als
bTag wird das Tag des letzten laufenden Transfers gemeldet.
;******************************************************************************
; USBTMC Request: INITIATE_ABORT_BULK_IN
;******************************************************************************
; Reference: USBTMC Chapter 4.2.1.4
INITIATE_ABORT_BULK_IN
movlw controlINlow+1
movwf FSR0L
movlw controlINhigh
movwf FSR0H
movff BULKIN_TAG,POSTDEC0 ;second byte is the bTag of the transfer
; transfer in progress?
movlw 0x00
cpfseq BULKIN_PROGRESS
bra IABI_TestTag
bra IABI_TestProgress
; tags matching?
IABI_TestTag
movlw BULKIN_TAG
cpfseq wValueLOW ;the bTag value associated with the transfer to abort
bra IABI_NoProgress
bra IABI_Success
; endpoint empty?
IABI_TestProgress
movlw 0x00
cpfseq BULKIN_CONTENT
bra
IABI_NoProgress
bra
IABI_Fail
Search WWH ::




Custom Search