Spinpoint M9TU-USB 3.0 Product Manual REV 1.0
73
USB INTERFACE AND USB COMMANDS
6.4
Bulk-Only Transport
N2 Product transfer data by USB Mass Storage Class Bulk Only Transport Specification.
6.4.1 Functional Characteristics
6.4.1.1
Bulk-Only Mass Storage Reset (Class-Specific request)
This request is used to reset the mass storage device and its associated interface. This class-specific request
shall ready the device for the next CBW from the host.
The host shall send this request via the default pipe to the device. The device shall preserve the value of its bulk
data toggle bits and endpoint STALL conditions despite the Bulk-Only Mass Storage Reset.
The device shall NAK the status stage of the device request until the Bulk-Only Mass Storage Reset is complete.
To issue the Bulk-Only Mass Storage Reset the host shall issue a device request on the default pipe of:
•
bmRequestType
: Class, Interface, host to device
•
bRequest
field set to 255 (FFh)
•
wValue
field set to 0
•
wIndex
field set to the
interface number
•
wLength
field set to 0
6.4.1.2
Get Max LUN (Class-Specific request)
The device
may
implement several logical units that share common device characteristics. The host uses
bCBWLUN
to designate which logical unit of the device is the destination of the CBW. The Get Max LUN
device request is used to determine the number of logical units supported by the device. Logical Unit Numbers
on the device shall be numbered contiguously starting from LUN 0 to a maximum LUN of 15 (Fh).
To issue a Get Max LUN device request, the host shall issue a device request on the default pipe of:
•
bmRequestType
: Class, Interface, device to host
•
bRequest
field set to 254 (FEh)
•
wValue
field set to 0
•
wIndex
field set to the
interface number
•
wLength
field set to 1
The device shall return one byte of data that contains the maximum LUN supported by the device. For example,
if the device supports four LUNs then the LUNs would be numbered from 0 to 3 and the return value would be 3.
If no LUN is associated with the device, the value returned shall be 0. The host shall not send a command block
wrapper (CBW) to a non-existing LUN.
Devices that do not support multiple LUNs
may
STALL this command.
6.4.1.3
Host/Device Packet Transfer Order
The host shall send the CBW before the associated Data-Out, and the device shall send Data-In after the
associated CBW and before the associated CSW. The host
may
request Data-In or CSW before sending the
associated CBW.
If the
dCBWDataTransferLength
is zero, the device and the host shall transfer no data between the CBW and
the associated CSW.
6.4.1.4
Command Queuing
The host shall not transfer a CBW to the device until the host has received the CSW for any outstanding CBW.
If the host issues two consecutive CBWs without an intervening CSW or reset, the device response to the
second CBW is indeterminate.
6.4.1.5
Bi-Directional Command Protocol
This specification does not provide for bi-directional data transfer in a single command.