Перейти к содержанию
    

Mass Storage Device

Делаю Mass Storage устройство на связке USBN + ATmega128.

В данный момент прописываю SCSI-команды (SPC-3 и SBC-2). Устройство нормально определяется, появляется дисковый накопитель. Основные команды (необходимые для энумерации) уже прписаны. Среди прочих, есть команда 23h, про которую в спецификации SBC-2 написано, что она определяется производителем (но производителем чего?).

Для работы устройства Винда подставляет стандартные драйвера usbstor.sys, disk.sys и PartMgr.sys, как и для прочих дисковых устройств.

Мониторил "нормальную" USB-флешку, там эта команда тоже присутствует, есть на неё некий ответ.

Может кто-нибудь подсказать, что это за команда 23h? И что нужно отвечать?

Может дадите ссылочку на спецификацию.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

/* Table 2 - Reduced Block Command set, rbc-r10a.pdf */

#define RBC_TEST_UNIT_READY 0x00

#define RBC_REQUEST_SENSE 0x03

#define RBC_INQUIRY 0x12

#define RBC_MODE_SELECT 0x15

#define RBC_MODE_SENSE 0x1A

#define RBC_START_STOP_UNIT 0x1B

#define RBC_PREVENT_ALLOW_REMOVAL 0x1E

#define RBC_023 0x23 // CMD_READ_LONG

#define RBC_READ_CAPACITY 0x25

#define RBC_READ_10 0x28

#define RBC_WRITE_10 0x2A

#define RBC_VERIFY 0x2F

 

Эта ? Я ее просто откидываю, т.е. генерю STALL.

И без нее работает.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

в UFI спецификации это команда READ FORMATS CAPACITY.

исходя из мониторинга стандартной флешки в данном случае аналогична команде в UFI-спецификации. + на форуме usb.org встретил аналогичное описание команды. Так и сделал. Вроде проблем нет.

 

Кстати, а какой драйвер используется с Твоим устройством, если оно использует RBC? В винде начиная с 2000, вроде бы, нет стандартного драйвера для RBC-устройства.

 

У меня стоит задача сделать устройство использующее стандартные драйвера винды, поэтому использую SBC-2.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Кстати, а какой драйвер используется с Твоим устройством, если оно использует RBC? В винде начиная с 2000, вроде бы, нет стандартного драйвера для RBC-устройства.

 

У меня стоит задача сделать устройство использующее стандартные драйвера винды, поэтому использую SBC-2.

 

Так RBC это же подмножество команд из UFI.

Драйвера используются стандартные масс-cторадж из винды.

 

Сам кусок взят из заголовочного файла масс-сторадж аппноты для AT91SAM7.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Присоединяйтесь к обсуждению

Вы можете написать сейчас и зарегистрироваться позже. Если у вас есть аккаунт, авторизуйтесь, чтобы опубликовать от имени своего аккаунта.

Гость
Ответить в этой теме...

×   Вставлено с форматированием.   Вставить как обычный текст

  Разрешено использовать не более 75 эмодзи.

×   Ваша ссылка была автоматически встроена.   Отображать как обычную ссылку

×   Ваш предыдущий контент был восстановлен.   Очистить редактор

×   Вы не можете вставлять изображения напрямую. Загружайте или вставляйте изображения по ссылке.

×
×
  • Создать...