Logo GenDocs.ru

Поиск по сайту:  


Загрузка...

Дипломная работа - Мезонинный адаптер USB2.0 - файл 4 Раздел 1 - Специальный.doc


Загрузка...
Дипломная работа - Мезонинный адаптер USB2.0
скачать (2375.9 kb.)

Доступные файлы (43):

1 Оглавление.doc77kb.19.06.2007 05:20скачать
2 Введение.doc27kb.19.06.2007 04:56скачать
3 ТЗ.doc35kb.19.06.2007 04:57скачать
4 Раздел 1 - Специальный.doc1164kb.19.06.2007 04:57скачать
5 Технологическая часть.doc157kb.19.06.2007 05:03скачать
6 Себестоимость.doc123kb.19.06.2007 05:04скачать
7 ПЭБ.doc147kb.19.06.2007 05:06скачать
8 Заключение.doc27kb.19.06.2007 05:07скачать
9 Список используемых источников.doc35kb.19.06.2007 11:19скачать
диплом - что должно быть.txt1kb.21.01.2007 21:10скачать
Книжка дипломника - пустая.doc35kb.13.04.2007 18:32скачать
1.1. Физическая архитектура USB.vsd
1.2. Логическая архитектура USB.vsd
1.3. Кабель USB.vsd
1.8. Отличия между кадрами и микрокадрами.vsd
Спецификация сборочного чертежа.sch
Структурная схема алгоритма программы.vsd
диаграмма.bmp
диаграмма.JPG15kb.12.06.2007 17:22скачать
диаграмма себестоимости.xls17kb.12.06.2007 17:33скачать
рамка VISIO вертикальная.vsd
рамка VISIO горизонтальная.vsd
рамка WORD горизонтальная.doc20kb.04.06.2007 14:19скачать
01 мезонинный адаптер USB.vsd
02 выбор микроконтроллера USB2.0 HS.vsd
03 алгоритм работы программы.vsd
04 алгоритм ПСИ.vsd
05 технологическое оборудование.vsd
06 калькуляция себестоимости.doc53kb.19.06.2007 13:20скачать
01 мезонинный адаптер USB.pdf156kb.19.06.2007 13:22скачать
02 выбор микроконтроллера USB2.0 HS.pdf108kb.19.06.2007 13:22скачать
03 алгоритм работы программы.pdf77kb.19.06.2007 13:16скачать
04 алгоритм ПСИ.pdf70kb.19.06.2007 13:16скачать
05 технологическое оборудование.pdf129kb.19.06.2007 13:18скачать
06 калькуляция себестоимости.pdf124kb.19.06.2007 13:20скачать
топология.pcb
электрическая схема.sch
Приложение А - код программы.doc189kb.19.06.2007 12:32скачать
Приложение Б - ТИ.doc241kb.13.06.2007 13:31скачать
Приложение В - ПЭ3.sch
ТИ Приложение A - схема рабочего места контроля адаптера.vsd
рекомендации по работе над дипломом.doc124kb.02.04.2007 11:17скачать
речь.doc43kb.19.06.2007 20:53скачать

4 Раздел 1 - Специальный.doc

  1   2   3   4   5
Реклама MarketGid:
Загрузка...

Раздел I Поздеев К.А.

Раздел I. Специальная часть.

1. Описание интерфейса USB 2.0.
1.1. Введение.
Шина USB (Universal Serial Bus - универсальная последовательная шина) появилась по компьютерным меркам довольно давно - версия первого утвержденного варианта стандарта появилась 15 января 1996 года. Основная цель стандарта, поставленная перед его разработчиками - создать реальную возможность пользователям работать в режиме Plug&Play с периферийными устройствами. Это означает, что должно быть предусмотрено подключение устройства к работающему компьютеру, автоматическое распознавание его немедленно после подключения и последующей установки соответствующих драйверов. Кроме этого, желательно питание маломощных устройств подавать с самой шины. Скорость шины должна быть достаточной для подавляющего большинства периферийных устройств.
^





1.2. Цели создания USB шины.



Разработчики шины ориентировались на создание интерфейса, обладающего следующими свойствами:

  • легко реализуемое расширение периферии ПК;

  • дешевое решение, позволяющее передавать данные со скоростью до 12 Мбит/с (480 Мбит/с для USB 2.0);

  • полная поддержка в реальном времени голосовых, аудио- и видеопотоков;

  • гибкость протокола смешанной передачи изохронных данных и асин­хронных сообщений;

  • интеграция с выпускаемыми устройствами;

  • охват всевозможных конфигураций и конструкций ПК;

  • обеспечение стандартного интерфейса, способного быстро завоевать рынок;

  • создание новых классов устройств, расширяющих ПК.


Спецификация USB определяет следующие функциональные возможности интерфейса:

  • простота использования для конечного пользователя:

    • простота кабельной системы и подключений;

    • скрытие подробностей электрического подключения от конечного пользователя;

    • самоидентифицирующиеся устройства с автоматическим конфигури­рованием;

    • динамическое подключение и переконфигурирование периферийных устройств;

  • широкие возможности работы:

    • пропускная способность от нескольких Кбайт/с до нескольких Мбайт/с;

    • поддержка одновременно как изохронной, так и асинхронной переда­чи данных;

    • поддержка одновременных операций со многими устройствами (multiple connections);

    • поддержка до 127 устройств на шине;

    • передача разнообразных потоков данных и сообщений;

    • поддержка составных устройств (т. е. периферийное устройство, вы­полняющее несколько функций);

    • низкие накладные расходы передачи данных;

      • равномерная пропускная способность:

  • гарантированная пропускная способность и низкие задержки голосо­вых и аудиоданных;

  • возможность использования всей полосы пропускания;




  • гибкость:

  • поддержка разных размеров пакетов, которые позволяют настраивать функции буферизации устройств;

  • настраиваемое соотношение размера пакета и задержки данных;

  • управление потоком (flow control) данных на уровне протокола;

              • надежность:

  • контроль ошибок и восстановление на уровне протокола;

  • динамическое добавление и удаление устройств прозрачно для конечного пользователя;

  • поддержка идентификации неисправных устройств;

  • исключение неправильного соединения устройств;

                  • выгода для разработчиков:

  • простота реализации и внедрения;

  • объединение с архитектурой Plug and Play;

    • дешевая реализация:

  • дешевые каналы со скоростью работы до 1,5 Мбайт/с;

  • оптимизация для интеграции с периферией;

  • применимость для реализации дешевой периферии;

  • дешевые кабели и разъемы;

  • использование выгодных товарных технологий;

  • возможность простого обновления.


^

1.3. Технические характеристики.





  • Высоко – скоростной обмен HS (high speed) 480 Мбит/с

  • Максимальная длина кабеля для HS обмена 5 м

  • Полно – скоростной обмен FS (full-speed) 12 Мбит/с

  • Максимальная длина кабеля для FS обмена 5 м

  • Низко – скоростной обмен LS (low-speed) 1.5 Мбит/с

  • Максимальная длина кабеля для LS обмена 3 м

  • Максимальное количество подключенных устройств (включая хабы) - 127

  • Возможность подключения устройств с различными скоростями обмена

  • Напряжение питания для периферийных устройств 5 В

  • Максимальный ток потребления на одно устройство 500 мА


Конструкция разъемов для USB рассчитана на многократное сочленение/расчленение. В одной и той же системе могут присутствовать и одновременно работать устройства со всеми тремя скоростями. Шина позволяет соединять устройства, удаленные от компьютера на расстояние до 25 м (с использованием промежуточных хабов). Питание непосредственно от USB возможно только для устройств с малым энергопотреблением, таких как клавиатуры, мыши, джойстики и тому подобное.

^ 1.4. Описание архитектуры.
USB это шина, которая поддерживает обмен данными между хостом и большим количеством одновременно доступных периферийных устройств. Шина позволяет подключать периферийные устройства, использовать и отключать их, в то время как работают хост и другие периферийные устройства.

Первая архитектурная особенность шины USB: ее логическая топология - многоуровневая звезда (рис.2.1). Это объясняется тем, что каждый концентратор обеспечивает прозрачно для хоста соединение с устройством.

Самым верхним уровнем является корневой концентратор, который обычно совмещается с USB контроллером. Его функция такая же, что и концентраторов сетей передачи данных - добавление новых портов для подключения большего числа устройств. Ничего большего, чем просто разветвитель.

К корневому концентратору могут быть подключены либо устройства, либо еще концентраторы, для увеличения числа доступных портов. Допускается организация до семи уровней, включая хост. Концентратор может быть выполнен в виде отдельного устройства, либо быть встроенным в какое-то другое.

Необходимо заметить, что на последнем уровне комбинированное устройство использоваться не может. Кроме того, отдельно стоит упомянуть о хосте, являющимся скорее программно-аппаратным комплексом, нежели просто устройством.



Рис.1.1. Физическая архитектура USB.
Детали физической архитектуры скрыты от прикладных программ в ПО хоста, поэтому логическая архитектура выглядит как обычная звезда, центром которой является прикладное ПО, а вершинами – набор конечных точек (рис. 1.2).


Рис. 1.2. Логическая архитектура USB.
Хост, как уже было сказано, программно-аппаратный комплекс. В обязанности хоста входит:

  • слежение за подключением и отключением устройств;

  • организация управляющих потоков между USB-устройством и хостом;

  • организация потоков данных между USB-устройством и хостом;

  • контроль состояния устройств и ведение статистики активности;

  • снабжение подключенных устройств электропитанием.

Аппаратной частью является хост контроллер - посредник между хостом и устройствами на шине.

^ 1.5. Функциональное устройство.
С точки зрения USB, устройство - это набор конечных точек (endpoints), с которыми возможен обмен данными. Число и функции точек зависят от устройства и выполняемых им функций, и определяются при производстве. В обязательном порядке присутствует точка с номером 0 - для контроля состояния устройства и управления им. До осуществления конфигурирования устройства через точку 0 остальные каналы не доступны. Каждая конечная точка устройства описывается следующими параметрами:

  • Частотой обращения к шине и требованиями к задержкам;

  • Необходимой полосой пропускания;

  • Номером конечной точки;

  • Требованиями к обработке ошибок;

  • Максимальным размером кадра, который может быть принят или послан;

  • Типом поддерживаемой передачи данных;

  • Направлением осуществления передачи между конечной точной и хостом;

Для низкоскоростных (LS) устройств возможно существование до двух дополнительных точек; для FS и HS устройств их число ограничивается лишь возможностями протокола и может достигать 15-ти для ввода и 15-ти для вывода.

Вообще, конечная точка - это конец логического канала данных между хостом и устройством. В свою очередь канал - это логическое соединение между хостом и устройством. Так как конечных точек у устройства предусматривается несколько, то это означает, что обмен данными между хост-контроллером и устройством на шине может происходить по нескольким каналам, так называемый многоканальный режим. Полоса пропускания шины делится между всеми установленными каналами. В распоряжение шина USB может предоставить каналы следующих типов:

  • Каналы сообщений (message pipes). Являются двунаправленными каналами и служат для передачи сообщений, имеющих строго определенный в спецификации формат, необходимый для обеспечения надежной идентификации и передачи команд. Возникает канал при отсылке хостом запроса в устройства, и управляет передачей только хост. Каналы сообщений используются для передач только управляющего типа (см. ниже).

  • Потоковые каналы (stream pipes). Являются однонаправленными. В отличие от четко определенных сообщений не имеют определенного закрепленного в стандарте формата, что означает возможность передачи данных любого вида. Эти передачи могут контролироваться не только хостом, но и устройством. Используются для передач данных типа прерывание, групповая пересылка, изохронная (см. ниже).

В спецификации в зависимости от типа передаваемых данных, предъявляемых требований к скорости обработки, задержки доставки и т.п. определены следующие типы передач.

  • Управляющие передачи. Используются для конфигурирования устройств во время подключения и выполнения других специфических функций над устройством, включая организацию новых каналов.

  • Прерывания. Используются для спонтанных, но гарантированных передач с гарантированными скоростями и задержками. Используются обычно для передачи введенных данных от клавиатуры или сведений об изменении положения указателя мыши, в устройствах обратной связи, и т.д.

  • Групповая  пересылка. Используется для гарантированной передачи данных больших объемов без предъявленных требований к скоростям и задержкам. Занимает под себя всю свободную пропускную способность шины. В любой момент доступная полоса может быть урезана при необходимости осуществления передач других видов с более высоким приоритетом, или добавлена, при освобождении другими устройствами. Обычно такие передачи используются между принтерами, сканерами, накопителями и др.

  • Изохронная передача. Используется для потоковых передач данных в реальном времени. Резервируется определенная полоса пропускания шины, гарантируются определенные величины задержек доставки, но не гарантируется доставка (в случае обнаружения ошибки повторной передачи не происходит). Передачи этого вида используются для передачи аудио и видео трафика.



^

1.6. Электрические параметры.



В USB шине сигнал и мощность передаются по четырехпроводному кабелю, показанному на рис.1.3. Передача сигналов происходит по двум проводам и только от точки к точке.


Рис.1.3. кабель USB.
Цепи VBUS и GND служат для подведения питания к устройству. Обычно VBUS +5В от источника. Шина D+ предназначена для передачи данных по шине, а шина D- для приема данных.

Контроллеры USB и хабы обеспечивают возможности передачи данных таким образом, что высокоскоростные и полноскоростные данные могут передаваться на высокой скорости между хостом и хабом, но передача между хабом и устройством будет осуществляться на полной скорости или на низкой скорости.

Синхронизация передается закодированно наряду с данными. Синхронизация кодируется схемой - NRZI с заполнением бит, чтобы гарантировать правильную передачу. SYNC поле предшествует каждому пакету, чтобы позволить приемнику(ам) синхронизировать свои частоты восстанавливаемых бит.

^ 1.7. Пакеты в USB.
Для USB шины используются четыре типа пакетов. Пакет-маркер обозначает, какого типа транзакция начинается на шине; пакет данных включает в себя передаваемую структуру данных; пакеты статуса используются для информирования об успешно выполненной транзакции или ошибках, произошедших при передаче; пакеты начала кадра инициируются при генерации нового кадра на шине.

  • Маркерные пакеты (Token Packets)
    Существуют три типа маркерных пакетов:

    • In - информируют USB устройство, что ХОСТ хочет читать данные из устройства;

    • Out - информирует USB устройство, что ХОСТ хочет передавать данные в устройство;

    • Setup - используются для обозначения начала управляющего (Control Transfer) типа передачи данных;

Все маркерные пакеты имеют следующий формат:


SYNC

PID

ADDR

ENDP

CRC5

EOP

Рис.1.4. Маркерный пакет.


  • Пакеты данных (Data Packets)
    Существуют два типа пакетов данных, каждый из которых способен содержать до 1024 байтов данных:

    • DATA0;

    • DATA1;

У высокоскоростных устройств для пакетов данных определены два других PID-a: DATA2 и MDATA. Пакет данных имеет нижеследующий формат:


SYNC

PID

DATA

CRC16

EOP

Рис.1.5. Пакет данных.
Максимальная полезная загрузка составляет:

  • для LS устройств 8 байт;

  • для FS устройств 1023 байта;

  • для HS устройств 1024 байта;

Данные всегда посылаются целым числом байт. Данные CRC16 вычисляются только для поля данных в пакете и не включают PID, который имеет собственное поле проверки.


  • Пакеты подтверждения (Handshake Packets)
    Существуют три типа пакетов подтверждения, структура которых имеет только PID поле:

    • ACK - подтверждение того, что пакет был успешно принят;

    • NAK - информирует, что устройство в данный момент не может принимать либо отправлять данные. Также используется в Interrupt транзакциях для информирования Хоста, что устройство не имеет новых данных для передачи;

    • STALL - указывает, что устройство неспособно передавать или получать данные, и требуется вмешательство ХОСТа для снятий состояния останова;

Пакет подтверждения имеет нижеследующий формат:


SYNC

PID

EOP

Рис.1.6. Пакет подтверждения.


  • Пакеты начала кадра (Start of Frame Packets)
    SOF пакет состоит из 11-ти битного номера кадра и генерируется хостом каждую 1 мс ± 500 нс для полноскоростной шины и каждые 125 мкс ± 0.0625 мкс для высокоскоростной шины.
    Пакет начала кадра имеет нижеследующий формат:




SYNC

PID

Frame Number

CRC16

EOP

Рис.1.7. Пакет начала кадра.

Биты посылаются в шину в следующем порядке: LSB - первый, за ним следующий за LSB, и т.д. до заканчивающего MSB.




^ 1.8. Кадры и микрокадры в USB.

В USB существует два понятия: кадры и микрокадры (рис.1.8). При полноскоростной передаче данных выделяется кадр длительностью 1 мс. Индикатором данного кадра является Start Of Frame (SOF), который вырабатывается каждую 1 мс (с допустимыми отклонениями). При высокоскоростной передаче данных определено понятие микрокадр длительностью в 125 мкс. SOF пакеты генерируются хостом для полноскоростной передачи каждые 1 мс, а для высокоскоростной передачи генерируются после каждых следующих семи периодов по 125 мкс. Высокоскоростное устройство просматривает SOF пакеты с одним и тем же номером кадра восемь раз (каждые 125 мкс) в течение каждого 1 мс периода. Если необходимо, данное устройство может определять конкретный номер микрокадра, опознавая SOF, у которого другой номер кадра, а не такой как у предыдущего SOF. Следующие семь SOF с таким же номером кадра определяются как микрокадры с 1 по 7.


Рис.1.8. Отличия между кадрами и микрокадрами.
Микрокадр может содержать несколько транзакций. Для каждого типа передач определяется количество транзакций в пределах одного микрокадра. Для bulk-передачи частота шины и время микрокадра ограничивают максимальное количество успешных bulk транзакций в пределах микрокадра в количестве не более 13 транзакций при высокоскоростной передаче при 512 байт полезных данных.


1.9. Помехоустойчивость.



Имеются несколько атрибутов USB, которые способствуют помехоустойчивости:

  • дифференциальные приемники и передатчики, экранирование;

  • защита с помощью CRC полей управления и данных;

  • обнаружение присоединения и отсоединения и конфигурации ресурсов системы;

  • самовосстановление в протоколе, использующее блокировки времени для потерянных или испорченных пакетов;

  • каналы данных и управления создаются для обеспечения независимости от вредного взаимодействия между функциями;

  • поддержка обнаружения отказавших устройств;

Протокол необязательно учитывает обработку ошибок в аппаратных средствах или программном обеспечении. Аппаратная обработка включает в себя сообщение и повторение неудачных передач. Хост контроллер повторит передачу ошибочного данного три раза перед информированием клиентского программного обеспечения об ошибке. Клиентское программное обеспечение может реализовывать специфический способ восстановления.


^

1.10. Синхронизация переключения данных и повторная передача.



USB обеспечивает механизм гарантированной синхронизации последовательности данных между передатчиком и приемником при множестве транзакций. Этот механизм обеспечивает правильную интерпретацию и передатчиком и приемником фазы квитирования транзакции. Синхронизация достигается с помощью поля PID (DATA0 и DATA1) и отдельными перепадами в битовой последовательности данных. Приемник синхронизируется только тогда, когда он способен принять данные и получает пакет данных без ошибок с правильным PID данных. Передатчик синхронизируется только, когда он получает правильное квитирование ACK. Передатчик и приемник данных должны иметь синхронизированные в начале транзакции биты последовательности. Используемый механизм синхронизации зависит от типа транзакции.

^ 1.11. Классы оконечного устройства.
Так как USB интерфейс предназначен для большого количества устройств с разным назначением, то существует несколько классов с разными характеристиками и с разной пропускной способностью:

  • Audio class – устройство ввода аудио с поддержкой даже 24-бит;

  • Communication Device Class CDC ACM – представляет собой драйвер виртуального COM порта;

  • Imaging Class – устройства ввода изображения: Цифровой фотоаппарат или Сканер;

  • Mass Storage – устройство накопитель информации;

  • HID Сlass – предназначен для периферийных устройств ввода информации, таких как: манипулятор, клавиатура, джойстик;

  • Также существуют другие классы. За более подробной информацией обращаться по интернет адресу на сайт производителя: http://www.usb.org/developers/devclass_docs


Поскольку стоит задача разработки устройства Mass Storage Class, поэтому далее более подробно будет рассмотрен именно этот класс.

^ 1.11.1. Класс USB Mass Storage.

USB Mass Storage Class – это класс стандартов, применяемых в устройствах с большой памятью, которые подключаются к хосту и управляют приемом и передачей данных.


При передаче данных между хостом и функцией, используются четыре типа транзакций, определенных в USB. Существуют так называемые протокольные коды (protocol codes), которые устанавливают тип транзакции и то, как он используется.

Существует несколько классов USB Mass Storage:
  • ^

    USB Mass Storage Class Control/Bulk/Interrupt (CBI) Transport;

  • USB Mass Storage Class Bulk-Only Transport;


  • USB Mass Storage Class UFI Command Specification;

  • USB Mass Storage Class Bootability Specification;

  • USB Mass Storage Class Compliance Test Specification;


Но чаще всего используются:
  • ^

    USB Mass Storage Class Control/Bulk/Interrupt (CBI) Transport;

  • USB Mass Storage Class Bulk-Only Transport;



USB Mass Storage Class Control/Bulk/Interrupt (CBI) Transport – это протокол передачи данных, который использует передачу управления, групповую пересылку данных и передачу прерывания.

Как видно из названия, USB Mass Storage Class Bulk-Only Transport - это протокол передачи данных, в которой используется только групповая передача данных.

В USB Mass Storage существует такое понятие как дескрипторы. Определены четыре вида дескрипторов: дескриптор устройства, конфигурации, интерфейса и конечной точки. Дескрипторы несут информацию, необходимую для поддержки функционирования Plug&Play. Сами дескрипторы будут рассмотрены ниже. А сейчас рассмотрим два поля дескриптора интерфейса, несущих информацию о коде подкласса и коде протокола.

^ Подклассовый код.

Дескриптор интерфейса устройства USB Mass Storage включает поле bInterfaceSubClass. Это поле указывает стандартный протокол интерфейса класса Mass Storage. Значение поля bInterfaceSubClass должно быть одним из подклассовых кодов, которые изображены в таблице 1.1.

Коды подклассов важны, так как показывают формат команды, посылаемой хостом функции. Формат команды можно определить по значению команды передачи. В таблице приведены некоторые типы форматов команд.

Замечание: значение подклассового кода, используемого в поле bInterfaceSubClass, определяется стандартной спецификацией, которая характеризует протокол передачи и командный код системы (command code systems), переданный интерфейсом. Подклассовый код не определяет тип устройства хранения.
Таблица 1.1.

Подклассовые коды.

^ Подклассовый код

Command Block Specification

Комментарий

01h

Reduced Block Command (RBC) T10 Project 1240-D

Обычно, Flash устройство использует RBC. Впрочем, любое устройство Mass Storage может использовать RBC.

02h

^ SFF-8020i, MMC-2 (ATAPI)

Обычно, устройства CD/DVD используют SFF-8020i или MMC-2 для своего Mass Storage интерфейса.

03h

QIC-157

Обычно, устройство tape использует QIC-157.

04h

UFI

Обычно, устройство для гибких дисков (дисковод) (FDD).

05h

SFF-8070i

Обычно, FDD использует SFF-8070i. Впрочем, FDD устройство может быть в другом подклассе (например, RBC), и другие типы устройств хранения могут относиться к подклассу SFF-8070i.

06h

SCSI transparent command set

Команды SCSI

07h-FFh

Зарезервировано для использования в будущем





Протокольный код.

Дескриптор интерфейса устройств класса USB Mass Storage включает поле bInterfaceProtocol. Это поле обозначает транспортный протокол, используемый интерфейсом (табл.1.4).

Таблица 1.2.

Mass Storage транспортный протокол.

bInterfaceProtocol

Применение протокола

00h

Control/Bulk/Interrupt протокол

(с прерыванием по завершениею команды)

01h

Control/Bulk/Interrupt протокол

(без прерывания по завершению команды)

50h

Bulk-Only Transport

02h-4Fh

Зарезервировано

51h-FFh

Зарезервировано

Далее в качестве протокола передачи данных будет использоваться USB Mass Storage Class Bulk-Only Transport.
^ 2. Класс USB Mass Storage (Bulk-Only Transport).
2.1. Введение.
Групповая пересылка данных (Bulk-Only Transport)

Групповая пересылка может быть поделена на два типа, в зависимости от того, куда посылаются данные. Если данные посылаются от хост контроллера функции, используется пересылка bulk-out. Если данные были посланы от функции к хост контроллеру, то используется bulk-in.

Необходимо заметить, что для хоста, который в данный момент использует протокол Bulk-Only Transport, значение 0x50 должно вводиться в поле bInterfaceProtocol описания интерфейса (Interface Descriptor).
^ 2.2. Функциональные характеристики.
Классовые команды (Class Commands)

Это команды, которые определяются различными USB классами.

Когда USB Mass Storage Class Bulk-Only Transport используется как протокол передачи данных, то существует два типа команд (это классовые команды), которые должны поддерживаться. Классовые команды представлены в таблице 1.3.
Таблица 1.3.

Классовые команды.
Значение поля запроса
Команда
Значение команды

255 (0xFF)

Bulk-Only Mass Storage Reset

устанавливается (сбрасывает) интерфейс (resets the interface)

254 (0xFE)

Get Max LUN

Выдает количество логических элементов


При получении команды Bulk-Only Mass Storage Reset функция сбрасывает все интерфейсы, используемые в USB Mass Storage Class Bulk-Only Transport.

При получении команды Get Max LUN, функция возвращает наибольший номер логического элемента, который может быть использован. Например, если используется только один логический элемент, и в связи с тем, что нумерация элементов начинается с нуля, то хосту возвратится значение нуля.
Bulk-Only Mass Storage Reset (class-specific request) (запрос к определенному классу) используется, чтобы сбросить mass storage устройство и его соответствующий интерфейс. Этот запрос подготовит устройство для последующей пересылки CBW-пакета от хоста.

Хост должен послать запрос по каналу к устройству. Устройство должно сохранить значение переключающих бит групповых (bulk) данных и конечную точку STALL, несмотря на запрос Bulk-Only Mass Storage Reset.

Устройство должно выдавать NAK (информирует, что устройство в данный момент не может принимать либо отправлять данные), пока запрос Bulk-Only Mass Storage Reset не закончится.
Get Max LUN (class-specific request).

Устройство может применять некоторые логические устройства (элементы), которые используют общие характеристики устройства. Хост использует поле bCBWLUN CBW пакета (см. далее Command Block Wrapper (CBW)), чтобы установить, к какому логическому элементу направится пакет CBW. Запрос устройства Get Max LUN используется для определения количества логических элементов, поддерживаемых устройством. Нумерация логических элементов должна производиться, начиная с нуля. Максимальное значение, которое может принимать LUN, равно 15 (Fh).

После выдачи запроса от хоста устройству Get Max LUN, устройство должно возвратить один байт данных, который содержит максимальный LUN (максимальный номер логического устройства), поддерживаемого устройством. Например, если осуществляется поддержка четырех логических устройств, то они должны быть пронумерованы от 0 до 3, и возвращаемое значение будет 3. Если никакое логическое устройство не связано с устройством, возвращаемое значение будет 0. Хост не пошлет пакет CBW к несуществующему LUN.

Устройство, которое не поддерживает подключение нескольких логических устройств, может отреагировать на эту команду STALL.


Порядок пересылки пакетов хост/устройство.

Хост должен послать CBW пакет до отправки данных, а устройство должно переслать данные после CBW и перед CSW.

Если в поле dCBWDataTransferLength стоит 0, то это значит, что устройство и хост не передают данные между CBW пакетом и соответствующему ему CSW пакетом.


Command Queuing (команда организации очередей).

Хост не должен передавать CBW пакет устройству, пока не получит CSW пакет от выданного ранее CBW пакета. Если хост выдает два последовательных CBW пакета без промежуточного CSW пакета или сброса, то устройство, отвечающее (реагирующее) на второй CBW пакет, неопределено.

^ 2.3. Стандартные дескрипторы.
Дескриптор – это некоторое описание, в нашем случае – описание конкретного свойства устройства. Каждое USB устройство имеет подробное описание своих свойств, что необходимо для поддержки функционирования Plug&Play. Используя полученную информацию, хост способен определить драйвер, подходящий для устройства, режимы его работы и способы обмена информацией.

Считывание дескрипторов осуществляется требованием GET_DESCRIPTOR, в качестве которого используется код дескриптора из таблицы 1.4. Устройство может иметь несколько описаний одного типа, а может не иметь вообще.

Так, обязательными дескрипторами являются:

  • DEVICE (Устройство). Каждое USB устройство имеет один дескриптор устройства.

  • CONFIGURATION (Конфигурация). Каждое USB устройство имеет один дескриптор конфигурации (по умолчанию), который поддерживает как минимум один интерфейс.

  • ^ INTERFACE (Интерфейс). Устройство должно поддерживать по крайней мере один интерфейс, называемый здесь как Bulk-Only Data Interface. Некоторые устройства могут поддерживать дополнительные интерфейсы, чтобы обеспечить другие возможности.

  • ^ ENDPOINT (Конечная точка). Устройство должно поддерживать следующие конечные точки (в добавление к каналам (по умолчанию) (default pipe), которые необходимы во всех USB устройствах):

(а) конечная точка Bulk-In

(б) конечная точка Bulk-Out

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

Необязательным дескриптором является STRING:

  • ^ STRING (Строка). При запросе данного описания дополнительно передаются номер дескриптора и идентификатор языка возвращаемой строки. При отсутствии дескрипторов подобного типа все поля, содержащие указатели на строковые описания, должны быть сброшены в 0.

Таблица 1.4.

Типы стандартных дескрипторов.

Код

Тип описания.

0

Device (устройство)

1

Configuration (конфигурация)

2

String (строка)

3

Interface (интерфейс)

4

Зарезервировано

5

Endpoint (точка)

6

Device_Qualifier (устройство для другой скорости)

7

Other_speed_configuration (конфигурация для другой скорости)

8

Interface_power



^ 2.3.1. Дескриптор устройства.
Каждое USB устройство имеет один дескриптор устройства (согласно USB спецификации). Устройство должно определять класс устройства и подклассовые коды в дескрипторе интерфейса, а не в дескрипторе устройства.

Общее описание устройства показано в таблице 1.5. Данное описание дает представление о следующих параметрах:

  • спецификации USB (bcdUSB), поддерживаемой устройством;

  • классе (bDeviceClass, bDeviceSubClass), к которому относится устройство;

  • стандартизованном протоколе (bDeviceProtocol), используемом при работе;

  • производителе и продукте (idVendor, idProduct, bcdDevice).


Описание всегда имеет длину 18 байт. Поле bMaxPacketSize0 содержит информацию о контрольной точке и показывает максимально возможный размер пакета, передаваемого в фазе данных (в отличие от дополнительных точек, сведения о контрольной точке ограничены названным полем). Поле bNumConfiguration показывает количество конфигураций, поддерживаемых устройством (как минимум одна). Количество дескрипторов конфигурации соответствует заданному здесь числу. Информация в полях iManufacturer, iProduct, iSerialNumber не является обязательной, и если значения этих полей отличны от нуля, то содержат индекс строкового дескриптора, содержащего текстовую информацию соответственно о производителе, продукте и серийном номере устройства.

Формированием классов устройств и стандартизацией протоколов занимается организация USB-IF. Именно она определяет значения для полей bDeviceClass, bDeviceSubClass, bDeviceProtocol. Если поле bDeviceClass имеет значение 0FFh, то устройство относится к классу производителя, в таком случае набор поддерживаемых дополнительных требований определяется производителем (значение поля bDeviceSubClass может быть произвольным).

Когда значение поля bDeviceClass находится в диапазоне от 1 до 0FEh, это показывает, что устройство относится к некоторому стандартизованному классу и оно должно поддерживать определенный набор команд. В таком случае поля bDeviceSubClass и bDeviceProtocol дополняют предыдущее поле в соответствии с требованиями USB-IF.

Таблица 1.5.

Дескриптор устройства.

Offset

Поле

Размер

Значение

Описание

0

bLength

Byte

12h

Размер дескриптора в байтах

1

bDescriptorType

Byte

01h

Тип дескриптора, в данном случае DEVICE

2

bcdUSB

Word

xxxxh

Номер спецификации USB, поддерживаемой устройством, в двоично-десятичном виде

4

bDeviceClass

Byte

00h

Код класса (распределяется организацией USB-IF)

4

bDeviceSubClass

Byte

00h

Код подкласса (распределяется организацией USB-IF)

6

bDeviceProtocol

Byte

00h

Код протокола (распределяется организацией USB-IF)

7

bMaxPacketSize0

Byte

xxh

Максимальный размер пакета для контрольной точки. Допустимые значения: 8,16, 32, 64

8

idVendor

Word

xxxxh

Идентификационный код производителя (распределяется организацией USB-IF)

10

idProduct

Word

xxxxh

Идентификационный код продукта (распределяется организацией USB-IF)

12

bcdDevice

Word

xxxxh

Номер версии устройства в двоично- десятичном виде

14

iManufacturer

Byte

xxh

Индекс строки, описывающий производителя

15

iProduct

Byte

xxh

Индекс строки, описывающий продукт

16

iSerialNumber

Byte

xxh

Индекс строки, описывающей серийный номер устройства

17

bNumConfiguration

Byte

xxh

Количество конфигураций, поддерживаемых устройством
  1   2   3   4   5



Скачать файл (2375.9 kb.)

Поиск по сайту:  

© gendocs.ru
При копировании укажите ссылку.
обратиться к администрации
Рейтинг@Mail.ru