USB MSD. Часть 3. USB класс накопителей данных (перевод)
- переводы |
- USB |
- MSD |
- Mass Storage Device
[* Несколько слов о книге и авторе. Здесь представлен перевод третьей части книги Йена Акселсона (Jan Axelson) "USB Mаss Storаge - Designing аnd prоgrаmming dеviсеs and еmbeddеd hosts".
Я КАТЕГОРИЧЕСКИ НЕ РЕКОМЕНДУЮ ЭТУ КНИГУ И ЭТОГО АВТОРА.
Есть, знаете ли, некоторая категория технических писателей, которые паразитируют на человеческой неосведомлённости. Таким, с позволения, "писателем" является, скажем, В.Д.Разевиг, специализирующийся на переводах справочных систем к различным программным пакетам. В условиях тотальной неграмотности населения переводы являются очень нужным делом (я и сам ими грешу). Но перевод должен сопровождаться хотя бы упоминанием источника знаний. г. Разевиг такой чепухой не затрудняется. Подобным же непотребством занимается и Акселсон, но он не ворует чужие хелпы, а списывает документы, относящиеся к стандарту USB, и обзывает их чем-то вроде "Полное руководство по шине USB ("USB cоmplеte"). Я выяснил этот печальный факт уже после того как выполнил основную работу по переводу и начал уточнять непонятные моменты в тексте стандарта. Тогда-то и выяснилась вся горечь катаклизма: плагиат чистой воды, буквально ничего своего. Он даже не утруждался стилевыми правками. То-то я удивлялся скучности и невыразительности его изложения. Переводить ещё и стандарт я уже не стал. Извините.
Непонятно, конечно, куда смотрела USB-IF (при западной-то любви ко всякого рода правам и копирайтам), но то, что это не первая такая книга, попавшая мне в руки, может говорить о некой системе. Возможно это способ дать заработать участникам рабочих групп или что-либо подобное. Но от этого не легче.
Вывод: не тратьте время на этого прохиндея, читайте сам стандарт.]
USB MSD Часть 3
USB класс накопителей данных (перевод)
Перевод teap0t<caxapa.ru> v1.100 10-Aug-2014
Данная глава описывает класс накопителей данных и представляет код для устройства, который демонстрирует обмен между управляющей системой и устройством. [* - не, не демонстрирует, так как книжный "код" является прямым переводом структур USB и SCSI из таблиц на естественном языке в исходники на языке Си. Если вы не можете сделать такой перевод сами, то поищите книгу в сети. ]
Общие требования
В добавление к совместимости со спецификацией USB 2.0 накопитель данных должен соответствовать требованиям класса "накопитель данных", включающих как требования к аппаратной совместимости, так и поддержке программных протоколов.
Спецификации
Класс "накопитель данных" обращается к нескольким документам. "Обзор спецификаций" (Specification Overview) и "Передача неструктурированных данных" (Bulk-Only Transport) касаются почти всех устройств. Документ "Требования к загрузочным накопителям" (Bootability) относится только к устройствам, с которых может запускаться операционная система. Два дополнительных документа - "Control/Bulk/Interrupt (CBI) обмен" и "Спецификация команд UFI" касаются только некоторых приводов гибких дисков.
Кроме того, накопители должны поддерживать стандартные наборы командных блоков для обмена данными, управления устройством и чтения информации о состоянии. Командные блоки подробно описываются в части 6.
Блоковая логическая адресация
Адреса чтения и записи данных накопителя задаются в формате блоковой логической адресации (Logical Block Address - LBA), описанной в части 1. Все USB накопители должны поддерживать доступ к данным в этом формате.
Запросы накопителей данных
В протоколе передачи неструктурированных данных (bulk-only) определены два управляющих запроса. "Bulk Only Mass Storage Reset" (Сброс накопителя данных) предписывает устройству быть готовым к приёму нового командного блока. "Get Max LUN" запрашивает наибольший номер поддерживаемого устройством логического накопителя. В операционной системе Windows каждому логическому накопителю или разделу соответствует своя буква диска. Устройство с единственным логическим накопителем должно возвращать ноль или переходить в состояние останова (stall). Устройство с двумя логическими накопителями "LUN 0" и "LUN 1" возвращает "1". Максимальное значение - "15". Весь остальной обмен идёт через передачу неструктурированных данных (bulk).
В CBI-протоколе (control/bulk/interrupt) определён один управляющий запрос - "принять зависящую от устройства команду" (Accept Device-Specific Command - ADSC). На этапе пересылки данных передаётся собственно команда. Устройство может использовать обмен по прерыванию для сообщения о завершении предписаных действий.
Центральная система может использовать управляющие передачи для выведения оконечных точек из состояния блокировки (halt), для чего следует послать устройству стандартный управляющий USB запрос "Clear Feature (ENDPOINT_HALT)".
- блог пользователя teap0t
- 136514 просмотров
Новые записи в блогах
- Устранение дребезга контактов на основе вертикальных счетчиков
- Диагностика 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
4 дня 1 час назад
4 дня 8 часов назад
4 дня 23 часа назад
4 дня 23 часа назад
5 дней 23 часа назад
6 дней 1 час назад
6 дней 4 часа назад
6 дней 14 часов назад
1 неделя 19 часов назад
1 неделя 3 дня назад