USB MSD. Часть 3. USB класс накопителей данных (перевод)
- переводы |
- USB |
- MSD |
- Mass Storage Device
Поддержка в персональных компьютерах
Большинство операционных систем имеет в своём составе драйверы для работы с накопителями данных.
Windows
Windows 2000 и более новые операционные системы имеют в своём составе драйвер для USB накопителей, использующих BBB и CBI протоколы передачи. Операционная система загружает драйвер USB накопителя данных (usbstor.sys), когда в описателе нового устройства объявляется его принадлежность к поддерживаемому подклассу ("bInterfaceSubClass") накопителей данных. Usbstor.sys обслуживает обмен между низкоуровневым драйвером шины USB и драйвером класса накопителей данных. Операционная система назначает буквы дискам устройства и отображает их в окне "My Computer". Накопители данных не нуждаются в специальных INF-файлах, определяющих драйвер. В случае устройства из поддерживаемого операционной системой подкласса, который принадлежит классу накопителей, за загрузку драйвера отвечает файл "usbstor.inf".
Драйвер накопителей данных в Windows XP поддерживает устройства, принадлежащие подклассам ("bInterfaceSubClass") 0x02, 0x05, и 0x06. Поддержка для устройств с несколькими логическими накопителями (LUN) впервые появилась в Windows 2000 SP3.
Пользователи с правами администратора могут запускать приложения, которые используют для управления аппаратурой SCSI-команды, передающиеся через функцию API "IOCTL_SCSI_PASS_THROUGH". Для этого надо открыть устройство вызовом функции "CreateFile" с параметром доступа ("dwDesiredAccess") "GENERIC_READ" и "GENERIC_WRITE".
Одним из возможных непонятных вопросов, относящихся к работе накопителей данных в операционной системе Windows, является автозапуск. Эта опция позволяет операционной системе запускать программы, показывать видео или проводить другие действия сразу после появления сменного накопителя в системе. Для поддержки автозапуска на USB-диске должен находиться файл "autorun.inf", обозначающий запускаемое приложение (и, возможно, само приложение). Для операционных систем Windows, предшествующих XP SP2, в ответ на SCSI-команду "INQUIRY" диск должен сообщать о наличии несъёмного носителя. Подробнее о команде "INQUIRY" можно прочитать в части 6.
Linux
В Linux есть два драйвера, поддерживающих работу с USB-накопителями данных. Драйвер "usb-storage" (Linux/drivers/usb/storage) поддерживает высокопроизводительную работу с широкой гаммой устройств. Драйвер "ub" (Linux/drivers/block/ub.c) нацелен на надёжность, но работает медленнее и с меньшей номенклатурой устройств. "ub" драйвер поддерживает только BBB-протокол и блоковые устройства прямого дуступа (PDT = 0x00 - direct access block device), не пытается подстроиться под несовместимые устройства, использует свой собственный стек SCSI и ждёт завершения обработки каждого USB-запроса (USB request block - URB), прежде чем начать новый.
- блог пользователя teap0t
- 130191 просмотр
Новые записи в блогах
- Устранение дребезга контактов на основе вертикальных счетчиков
- Диагностика 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
2 недели 17 часов назад
2 недели 1 день назад
5 недель 6 дней назад
7 недель 18 часов назад
5 лет 45 недель назад
6 лет 8 недель назад
6 лет 18 недель назад
6 лет 20 недель назад
6 лет 28 недель назад
7 лет 2 дня назад