USB MSD. Часть 6. Команды SCSI (перевод)
- переводы |
- USB |
- MSD |
- Mass Storage Device |
- AN3927
Пояснительные данные (SENSE DATA)
Столкнувшись с проблемами при исполнении команды или получив неизвестную команду, устройство заполняет структуру, содержащую подробную информацию о состоянии и устанавливает значение поля "bCSWStatus" (CSW) равным "0x01" (ошибка исполнения). Структура с информацией о состоянии называется пояснительными данными ("SENSE DATA") и передаётся с ответ на команду "REQUEST SENSE".
Пояснительные данные могут использоваться устройством для сообщения о событиях, требующих внимания хоста, таких как появление сменного носителя в устройстве. Для сообщения о событии устройство должно присвоить полю "SENSE KEY" значение "0x06" ("UNIT ATTENTION").
Содержимое структуры с пояснительными данными зависит от команды, типа устройства и состояния бита "DESC" в командном блоке запроса "REQUEST SENSE": "0" соответствует фиксированному формату, а "1" - переменному. Фиксированный формат использует для передачи данных о состоянии описанную в спецификации структуру, показанную в таблице 6-2. Структура переменного формата зависит от типа пересылаемой информации, будь то данные, связанные с конкретной командой, условия, касающиеся параметров исключения, или сведения, относящиеся к набору блоковых команд.
В сеансах обмена по аппаратному интерфейсу SCSI устройство возвращает коды состояния после каждой команды и состояние "CHECK CONDITION" указывает задатчику на шине SCSI на необходимость отправки запроса "REQUEST SENSE". При обмене через шину USB код состояния посылается в контейнере состояния (CSW).
Byte | Bit | Description |
0 | 7 |
VALID Устанавливается в "1", если поле "INFORMATION" содержит действительные данные |
6..0 |
RESPONSE CODE Для сведений о текущих ошибках устанавливается в "0x70". Для сведений об отложенных ошибках (для команд использующих кэширование) устанавливается в "0x71" |
|
1 | Выведен из употребления. | |
2 | 7..5 | Используются ленточными накопителями |
4 | Зарезервирован | |
3..0 |
SENSE KEY Содержит данные, классифицирующие ошибку |
|
3..6 |
INFORMATION Данные, зависящие от устройства или команды |
|
7 |
ADDITIONAL SENSE LENGTH Длина дополнительных пояснительных данных, следующих за данным полем, в байтах. 244 байта максимум |
|
8..11 |
COMMAND-SPECIFIC INFORMATION Данные, зависящие от команды |
|
12 |
ADDITIONAL SENSE CODE ("ASC") Код ошибки. Устанавливается в нуль, если не используется |
|
13 |
ADDITIONAL SENSE CODE QUALIFIER ("ASCQ") Расширенный код ошибки. Устанавливается в нуль, если не используется |
|
14 |
FIELD REPLACEABLE UNIT CODE Уточняет сбойный компонент. Устанавливается в нуль при отсутствии компонента для идентификации |
|
15 | 7 |
SKSV Если равен "1", то байты 15..17 содержат зависящие от "SENSE KEY" данные |
6..0 | Если SKSV равен "1", то поле содержит зависящие от "SENSE KEY" данные | |
16..17 | Если SKSV равен "1", то поле содержит зависящие от "SENSE KEY" данные | |
18..n |
Additional sense bytes (optional) Необязательные пояснительные данные, добавляемые производителем оборудования |
Некоторые значения поля "SENSE KEY"
S_NOT_READY | 0x02 | Не готов |
S_MEDIUM_ERROR | 0x03 | Ошибка носителя |
S_ILLEGAL_REQUEST | 0x05 | Некорректный запрос |
S_UNIT_ATTENTION | 0x06 | Устройство требует внимания |
Некоторые коды ошибок
ASC_PERIPHERAL_DEVICE_WRITE_FAULT | 0x03 | Ошибка записи переферийного устройства |
ASCQ_PERIPHERAL_DEVICE_WRITE_FAULT | 0x00 | |
ASC_UNRECOVERED_READ_ERROR | 0x11 | Невосстановимая ошибка чтения |
ASCQ_UNRECOVERED_READ_ERROR | 0x00 | |
ASC_LOGICAL_BLOCK_ADDRESS_OUT_OF_RANGE | 0x21 | Адрес вышел из допустимого диапазона |
ASCQ_LOGICAL_BLOCK_ADDRESS_OUT_OF_RANGE | 0x00 | |
ASC_WRITE_PROTECTED | 0x27 | Установлена защита от записи |
ASCQ_WRITE_PROTECTED | 0x00 | |
ASC_MEDIUM_NOT_PRESENT | 0x3a | Носитель отсутствует |
ASCQ_MEDIUM_NOT_PRESENT | 0x00 |
- блог пользователя teap0t
- 177316 просмотров
Новые записи в блогах
- Устранение дребезга контактов на основе вертикальных счетчиков
- Диагностика Imprecise Bus Faults в микроконтроллерах Cortex-M3/M4/M4F
- Self-powered камера
- Фоновый модулятор: беспроводная связь из ничего (перевод)
- Texas Instruments Analog Applications Journal SLYT612 "Снижение искажений в аналоговых КМОП ключах" (перевод)
- USB MSD. Часть 6. Команды SCSI (перевод)
- USB MSD. Часть 3. USB класс накопителей данных (перевод)
- Texas Instruments Application Report SBAA042 "Кодовые схемы, используемые в аналогово-цифровых преобразователях" (перевод)
- 10 принципов правильного интерфейса
- Релиз SDK на русский микропроцессор КРОЛИК
Recent comments
5 лет 19 недель назад
5 лет 34 недели назад
5 лет 45 недель назад
5 лет 46 недель назад
6 лет 2 недели назад
6 лет 26 недель назад
6 лет 28 недель назад
6 лет 31 неделя назад
6 лет 42 недели назад
7 лет 21 неделя назад