Помощь - Поиск - Пользователи - Календарь
Полная версия этой страницы: Mass Storage Device
Форум разработчиков электроники ELECTRONIX.ru > Интерфейсы > Форумы по интерфейсам > RS232/LPT/USB/PCMCIA/FireWire
drka
Делаю Mass Storage устройство на связке USBN + ATmega128.
В данный момент прописываю SCSI-команды (SPC-3 и SBC-2). Устройство нормально определяется, появляется дисковый накопитель. Основные команды (необходимые для энумерации) уже прписаны. Среди прочих, есть команда 23h, про которую в спецификации SBC-2 написано, что она определяется производителем (но производителем чего?).
Для работы устройства Винда подставляет стандартные драйвера usbstor.sys, disk.sys и PartMgr.sys, как и для прочих дисковых устройств.
Мониторил "нормальную" USB-флешку, там эта команда тоже присутствует, есть на неё некий ответ.
Может кто-нибудь подсказать, что это за команда 23h? И что нужно отвечать?
Может дадите ссылочку на спецификацию.
lazycamel
/* 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.
И без нее работает.
drka
в UFI спецификации это команда READ FORMATS CAPACITY.
исходя из мониторинга стандартной флешки в данном случае аналогична команде в UFI-спецификации. + на форуме usb.org встретил аналогичное описание команды. Так и сделал. Вроде проблем нет.

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

У меня стоит задача сделать устройство использующее стандартные драйвера винды, поэтому использую SBC-2.
lazycamel
Цитата(drka @ Nov 24 2005, 21:01) *
Кстати, а какой драйвер используется с Твоим устройством, если оно использует RBC? В винде начиная с 2000, вроде бы, нет стандартного драйвера для RBC-устройства.

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


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

Сам кусок взят из заголовочного файла масс-сторадж аппноты для AT91SAM7.
Для просмотра полной версии этой страницы, пожалуйста, пройдите по ссылке.
Invision Power Board © 2001-2025 Invision Power Services, Inc.