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
- 195422 просмотра
Новые записи в блогах
- Устранение дребезга контактов на основе вертикальных счетчиков
- Диагностика 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
15 недель 6 дней назад
8 лет 22 недели назад
8 лет 38 недель назад
8 лет 48 недель назад
8 лет 49 недель назад
9 лет 5 недель назад
9 лет 30 недель назад
9 лет 31 неделя назад
9 лет 34 недели назад
9 лет 45 недель назад