海量U盤傳輸協議的一點總結匯總
阿新 • • 發佈:2019-01-03
驅動型別劃分:
。
8~11DCBWDataTransferLength:表示這次CBW要傳送資料長度。
12 BmCBWFlags:表示本次CBW是讀資料還是寫資料。Bit7
代表傳輸方向, 0
表示主機輸出資料到裝置, 1
表示主機從 裝置輸入資料。
14 BBWCBLength:表示命令的長度。
CBWCB:表示本次命令內容。也即是SCSI命令。
由裝置執行的命令,由裝置解釋。
符合bInterfaceSubClass.中定義的命令規範。
當裝置從主機收到CBW塊以後,它會把SCSI命令從CBW中分離出來,然後根據要求執行,執行的結果又以CSW的形式發給主機
CBW是主機通過Bulk-Out端點向裝置傳送的命令塊包,在CBW中使用方向位和資料傳輸長度域指明期待的傳輸,CBW必須起始於包邊界,並且必須以31位元組的短包傳輸結束,相繼的資料包和CSW包必須開始於一個新的包邊界,所有的CBW包必須按低位元組在前的次序傳輸。
Operation Code:是SCSI命令操作程式碼。 Logical Block Address:邏輯塊地址,對U盤而言應是扇區。前面已經講過:通用海量儲存裝置是一個基於塊/扇區儲存的裝置,因此在SCSI中要提供這個引數是很顯然的。 transfer length:為要傳送的扇區數 SCSI中直接存取型別的儲存介質的傳輸命令有很多,如: INQUIRY:其操作碼為12H Test Unit Ready:其操作碼為00H Format Unit:其操作碼為04H .......
- USB (通用) USB
- HID (人機介面裝置 ) USB-HID
- USB Mass Storage (大容量儲存裝置 )USB Mass Storage
- 主機應當在傳送相應的資料之前傳送 CBW 。
- 裝置應當在收到 CBW 之後,傳送 CSW ( Command Status Wrapper )之前傳送資料。
- Bulk-Only傳輸協議
- CBW格式如下:
- CSW的格式如下:
Operation Code:是SCSI命令操作程式碼。 Logical Block Address:邏輯塊地址,對U盤而言應是扇區。前面已經講過:通用海量儲存裝置是一個基於塊/扇區儲存的裝置,因此在SCSI中要提供這個引數是很顯然的。 transfer length:為要傳送的扇區數 SCSI中直接存取型別的儲存介質的傳輸命令有很多,如: INQUIRY:其操作碼為12H Test Unit Ready:其操作碼為00H Format Unit:其操作碼為04H .......