REQUEST_SENSE
2026-08-14
本文链接为:http://www.usbzh.com/article/detail-1790.html ,欢迎转载,转载请附上本文链接。
REQUEST_SENSE(0x03)用于主机查询错误处理的。
当主机在处理命令时,SCSI 命令执行失败或 CBW 非法时,端点被 STALL,这样主机检测到STALL后,会发送ClearFeature命令清除端点的STALL,然后会下发REQUEST_SENSE命令,返回上次错误的信息给主机,这样主机就获取到了错误原因。
返回的数据长度为0x12,格式如下
Byte 0: 0x70 (Response Code)
Byte 1: 0x00
Byte 2: 0x04 (Sense Key = HARDWARE_ERROR)
Byte 3-6: 0x00000000
Byte 7: 0x0A (Additional Sense Length = 1-)后续数据长度
Byte 8-11: 0x00000000
Byte 12: 0x11 (ASC = UNRECOVERED_READ_ERROR)
Byte 13: 0x00 (ASCQ = 0)
Byte 14: 0x00
Byte 15-17: 0x000000
BYTE2的Sense key的值有
#define NO_SENSE 0
#define RECOVERED_ERROR 1
#define NOT_READY 2
#define MEDIUM_ERROR 3
#define HARDWARE_ERROR 4
#define ILLEGAL_REQUEST 5
#define UNIT_ATTENTION 6
#define DATA_PROTECT 7
#define BLANK_CHECK 8
#define VENDOR_SPECIFIC 9
#define COPY_ABORTED 10
#define ABORTED_COMMAND 11
#define VOLUME_OVERFLOW 13
#define MISCOMPARE 14
BYTE12的值有:
#define INVALID_CDB 0x20
#define INVALID_FIELED_IN_COMMAND 0x24
#define PARAMETER_LIST_LENGTH_ERROR 0x1A
#define INVALID_FIELD_IN_PARAMETER_LIST 0x26
#define ADDRESS_OUT_OF_RANGE 0x21
#define MEDIUM_NOT_PRESENT 0x3A
#define MEDIUM_HAVE_CHANGED 0x28
#define WRITE_PROTECTED 0x27
#define UNRECOVERED_READ_ERROR 0x11
#define WRITE_FAULT 0x03
如一个示例如下:
31 OUT 55 53 42 43 90 d5 ce 93 12 00 00 00 80 00 0c 03 00 00 00 12 00 00 00 00 00 00 00 00 00 00 00
18 IN 70 00 05 00 00 00 00 0c 00 00 00 00 21 00 00 00 00 00
13 IN 55 53 42 53 90 d5 ce 93 00 00 00 00 00
解析如下:
--------CBW---------
0x55, 0x53, 0x42, 0x43, 0x90, 0xD5, 0xCE, 0x93, 0x12, 0x00, 0x00, 0x00, 0x80, 0x00, 0x0C, 0x03, 0x00, 0x00, 0x00, 0x12, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
UNIT32 dCBWSignature:0x55, 0x53, 0x42, 0x43,
UNIT32 dCBWTag:0x90, 0xD5, 0xCE, 0x93,
UNIT32 dCBWDataTransferLength=18,(0x12, 0x00, 0x00, 0x00, )
UNIT8 bmCBWFlags=0x80, Response data to HOST(IN)
UNIT8 bCBWLUN=0x00,
UNIT8 bCBWCBLength=0x0C,
BYTE CBWCB[16]=0x03, 0x00, 0x00, 0x00, 0x12, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
UNIT8 REQUEST_SENSE 0x03,
UNIT8 length 0x12,
--------REQUEST_SENSE Response---------
70 00 05 00 00 00 00 0c 00 00 00 00 21 00 00 00 00 00
-----CSW------------
CSW OFFSET=49,0x55, 0x53, 0x42, 0x53, 0x90, 0xD5, 0xCE, 0x93, 0x00, 0x00, 0x00, 0x00, 0x00,
UNIT32 dCSWSignature:0x55, 0x53, 0x42, 0x53,
UNIT32 dCSWTag:0x90, 0xD5, 0xCE, 0x93,
UNIT32 dCSWDataResidue:0x00, 0x00, 0x00, 0x00,
UNIT8 bCSWStatus:0x00,
本文链接为:http://www.usbzh.com/article/detail-1790.html ,欢迎转载,转载请附上本文链接。
HID人机交互QQ群:564808376
UAC音频QQ群:218581009
UVC相机QQ群:331552032
BOT&UASP大容量存储QQ群:258159197
STC-USB单片机QQ群:315457461
USB技术交流QQ群2:580684376
USB技术交流QQ群:952873936 USB技术交流3:1031974172
USB大容量存储BOT





