USB MSD. Часть 3. USB класс накопителей данных (перевод)
- переводы |
- USB |
- MSD |
- Mass Storage Device
Описатели оконечных точек
Каждая оконечная точка, упомянутая в описателе интерфейса, имеет свой собственный описатель. Нулевая оконечная точка собственного описателя не имеет, так как должна присутствовать в каждом устройстве. Максимальный размер пакета для неё указывается в описателе устройства, а все остальные параметры определены в спецификации USB.
В таблице 3-4 приведены поля описателя оконечной точки. Накопитель данных, использующий BBB-протокол, должен иметь два таких описателя. Ниже приводится более подробное описание каждого поля и особенности его использования в накопителях данных.
0 | bLength | Длина описателя в байтах |
1 | bDescriptorType | Тип описателя ("ENDPOINT") |
2 | bEndpointAddress | Номер и направление оконечной точки |
3 | bmAttributes | Поддерживаемые типы передачи. Для "Bulk" устанавливается в 0x02 |
4 | wMaxPacketSize | Максимальный поддерживаемый размер пакета |
6 | bInterval | Максимальная интенсивность "NAK" для высокоскоростных принимающих (OUT) оконечных точек |
-
bLength
Длина описателя в байтах. Всегда равна 0x07.
-
bDescriptorType
Константа, соответствующая типу описателя. Для оконечной точки ("ENDPOINT") равна 0x05.
-
bEndpointAddress
Направление передачи и номер оконечной точки.
Бит 7 указывает направление передачи: 0 = приём (Out), 1 = передача (In).[* В протоколе USB используется хост-центричное наименование сигналов, то есть, если мастер выдаёт данные периферийному устройству, он работает на выход (OUT) и на другом конце линии оконечная точка типа OUT занимается приёмом этих данных.]
Биты 6..4 не используются и должны быть равны нулю.
Биты 3..0 содержат номер, который может принимать любое поддерживаемое аппаратурой устройства значение в диапазоне от "1" до "15".Например, интерфейс может использовать оконечную точку номер "1" в режиме приёма (0x01) и оконечную точку номер "1" в режиме передачи (0x81) или оконечную точку "2" в режиме приёма (0x02) и оконечную точку "3" в режиме передачи (0x83).
-
bmAttributes
Биты 7..2 не используются и должны быть установлены в нуль.
Биты 1..0 сообщают тип обмена, поддерживаемого оконечной точкой. Для неструктурированных данных (bulk) следует установить в 0x02. -
wMaxPacketSize
Биты 10..0 слова содержат число байт, которое оконечная точка способна принять за одну транзакцию.
Допустимые значения зависят от скорости и типа обмена:- полноскоростные (full-speed) "bulk" оконечные точки могут работать с пакетами размером в 8, 16, 32 и 64 байта. Для лучшей производительности следует выбирать значение 64 байта (0x0040), так как меньшие значения могут приводить к тому, что некоторые хосты не будут распределять более одной транзакции за фрейм;
- высокоскоростные (high speed) устройства работают только с пакетами длиной 512 байт (0x0200).
-
bInterval
Хост игнорирует значение этого поля для всех оконечных точек, кроме высокоскоростных (high-speed) работающих в режиме приёма (OUT). Для этих последних данное поле указывает наибольшую интенсивность ответов "NAK". Данное поле относится к ситуации когда устройство, принявшее пакет, возвратило подтверждение "ACK" и у хоста есть ещё данные. Возвращая "ACK", устройство сообщает о возможности продолжать приём (в противном случае оно возвратило бы "NYET"). Если новый пакет прибыл, но по каким-либо причинам устройство не может его принять, оконечная точка возвращает "NAK". "bInterval" говорит, что оконечная точка рассчитывает возвращать "NAK" не чаще чем один раз за время, определяемое данным полем. Значение находится в диапазоне от 1 до 255 микрофреймов. Нулевое значение говорит о том, что оконечная точка не собирается возвращать "NAK" сразу после "ACK".
- блог пользователя teap0t
- 133095 просмотров
Новые записи в блогах
- Устранение дребезга контактов на основе вертикальных счетчиков
- Диагностика 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
16 часов 35 минут назад
23 часа 33 минуты назад
23 часа 42 минуты назад
2 дня 18 часов назад
3 дня 21 час назад
4 дня 2 часа назад
4 дня 9 часов назад
4 дня 18 часов назад
5 дней 20 часов назад
6 дней 2 часа назад