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:
Загрузка...


Если поле bDeviceClass имеет значение 0, то каждый интерфейс устройства имеет собственное описание класса и все имеющиеся интерфейсы работают независимо. Для этого случая поле bDeviceSubClass должно иметь значение 0.

Значения в поле bDeviceProtocol имеют смысл, похожий на смысл значений в поле bDeviceClass: 0 – описание протокола будет задано в описании интерфейса, 1…0FEh – протокол стандартизован организацией USB-IF, 0FFh – протокол определяет производитель.

2.3.2. Дескриптор конфигурации.
В представленной ниже таблице 1.6 отражена только информация о конфигурации, на самом деле при запросе описания конфигурации устройство выдает описания запрошенной конфигурации и всех входящих в неё интерфейсов и точек. Получение отдельных описаний и точек не предусмотрено. Общая длина этого списка указывается в поле wTotalLength. Количество интерфейсов для данной конфигурации содержится в поле bNumInterface, по значению в данном поле можно судить, сколько описаний интерфейсов следует далее. Поле bConfigurationValue содержит номер текущей конфигурации, это значение используется стандартным требованием SET_CONFIGURATION и должно быть больше нуля. Поле iConfiguration содержит индекс строкового дескриптора, описывающего данную конфигурацию, значение в данном поле является необязательным, и при отсутствии строкового дескриптора равно 0. Поле bmAttributes отражает атрибуты, присущие данной конфигурации, а именно: наличие собственного источника питания устройства и возможность сообщения устройством о выходе из режима «сна» при внешнем воздействии. В поле bMaxPower указывается максимальный потребляемый ток при использовании в качестве источника внутреннего питания шины USB.

Таблица 1.6.

Дескриптор конфигурации

Offset

Поле

Размер

Значение

Описание

0

bLength

Byte

09h

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

1

bDescriptorType

Byte

02h

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

2

wTotalLength

Word

xxxxh

Полный размер описания конфигурации, включая описания всех интерфейсов и точек




























Продолжение Таблицы 1.6.

4

bNumInterface

Byte

xxh

Количество интерфейсов, в данной конфигурации. ^ Устройство должно поддерживать как минимум Bulk-Only Data Interface.

5

bConfigurationValue

Byte

xxh

Номер данной конфигурации. Данное значение используется требованием SET_CONFIGURATION

6

iConfiguration

Byte

xxh

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

7

bmAttributes

Byte

x0h

Битовое поле, характеризующее конфигурацию.

Распределение бит:

бит описание

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

(выстав. 1)

6 признак

наличия собст.

источн. питания

5 Remote Wakeup

4…0 зарезервировано

(сброс в ноль)

Для полного описания размещения битов в bmAttributes см. USB2.0 Specification

8

bMaxPower

Byte

xxh

Значение максимального потребляемого тока от шины USB (для устройства, не имеющего собственного источника питания). Значение, указываемое в этом поле, равно половине реального потребления, т.е. число 50 означает 100мА.



^ 2.3.3. Дескриптор интерфейса.

Устройство должно поддерживать как минимум один интерфейс, называемый здесь Bulk-Only Data Interface. Bulk-Only Data Interface использует три конечные точки.

Сложное mass storage устройство может поддерживать дополнительные интерфейсы, чтобы обеспечить дополнительные свойства, как аудио или видео возможности. Эта спецификация не описывает такие интерфейсы.

Значения в полях bInterfaceClass, bInterfaceSubClass, bInterfaceProtocol соответственно совпадают со значениями полей bDeviceClass, bDeviceSubClass, bDeviceProtocol в описании устройства. Отличие в том, что значение 0 для полей в описании интерфейса не используется и зарезервировано для будущего использования. Поля bInterfaceNumber и bAlternateSetting (табл.1.12) содержат номера текущего интерфейса и альтернативной установки; эти значения используются стандартным требованием SET_INTERFACE. Поле bNumEndpoints показывает, сколько дополнительных точек имеется в данной альтернативной установке. Значение в этом поле соответствует количеству описаний точек, следующих далее. Поле iInterface содержит индекс строкового дескриптора, а его значение, равное 0, является признаком отсутствия последнего.
Таблица 1.7.

Дескриптор интерфейса Bulk-Only Interface.

Offset

Поле

Размер

Значение

Описание

0

bLength

Byte

09h

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

1

bDescriptorType

Byte

04h

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

2

bInterfaceNumber

Byte

0xh

Номер данного интерфейса

3

bAlternateSetting

Byte

xxh

Номер альтернативной установки для интерфейса, указанного в предыдущем поле

4

bNumEndpoints

Byte

xxh

Количество точек для данной альтернативной установки в данном интерфейсе

5

bInterfaceClass

Byte

08h

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

6

bInterfaceSubClass

Byte

0xh

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

7

bInterfaceProtocol

Byte

50h

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

8

iInterface

Byte

xxh

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



^ 2.3.4. Дескриптор конечной точки.
Устройство должно поддерживать как минимум три конечных точки: управляющая (control), Bulk-In, Bulk-Out.

Таблица 1.8.

Дескриптор Bulk-In Endpoint.

Offset

Поле

Размер

Значение

Описание

0

bLength

Byte

07h

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

1

bDescriptorType

Byte

05h

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

2

bEndpointAdress

Byte

8xh

Битовое поле адреса точки. Распределение бит:

бит описание

3…0 номер конечной

точки

6…4 зарезервировано,

выставлено в 0

7 1 = In

3

bmAttributes

Byte

02h

Битовое поле, характеризующее точку.

4

wMaxPacketSize

Word

00xxh

Битовое поле, характеризующее размер пакета, передаваемых данных. Максимальный размер пакета должен быть 8, 16, 32 или 64 байтов (08h,10h,20h,40h)

6

bInterval

Byte

00h

Интервал готовности точки к обмену данными

Каждое USB устройство определяет управляющую конечную точку (Control Endpoint) – нулевая конечная точка (Endpoint 0). Это точка по умолчанию и не нуждается в дескрипторе

Bulk-In Endpoint используется для передачи данных и статуса от устройства к хосту (см. табл.1.8).

Bulk-Out Endpoint используется для передачи команд и данных от хоста к устройству (см. табл.1.9).

Таблица 1.9.

Дескриптор Bulk-Out Endpoint.

Offset

Поле

Размер

Значение

Описание

0

bLength

Byte

07h

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

1

bDescriptorType

Byte

05h

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

2

bEndpointAdress

Byte

0xh

Адрес этой конечной точки на USB устройстве. Адрес расшифровывается так:

бит описание

3…0 номер конечной

точки

6…4 зарезервировано,

выставлено в 0

7 0 = Out

3

bmAttributes

Byte

02h

Битовое поле, характеризующее точку.




























Продолжение Таблицы 1.9.

4

wMaxPacketSize

Word

00xh

Битовое поле, характеризующее размер пакета, передаваемых данных. Максимальный размер пакета должен быть 8, 16, 32 или 64 байтов (08h,10h,20h,40h)

6

bInterval

Byte

00h

Интервал готовности точки к обмену данными


2.4. Протокол передачи Command/Data/Status.
^

2.4.1. Пересылка команды (Command Transport).



При пересылке команды команда пересылается от хоста к функции, используя bulk-out пересылку. Этот пакет команд определяется как Command Block Wrapper (CBW), и групповая пересылка данных (Bulk-Only Transport) должна начинаться с CBW.

CBW отсылается хостом как 31-байтный пакет, используя bulk-out передачу.

Все передачи CBW должны быть упорядочены с наименьшего значащего байта (байт 0) и храниться по принципу little endian ( Little Endian – метод хранения данных, при котором меньший значащий байт многобайтовой величины размещается по меньшему адресу).

Таблица 1.10.

Command Block Wrapper (CBW пакет)

Byte|bit

7

6

5

4

3

2

1

0

0-3

dCBWSignature

4-7

dCBWTag

8-11

(08h-0Bh)

dCBWDataTransferLength

12

(0Ch)

bmCBWFlags

13

(0Dh)

Зарезервировано (0)

bCBWLUN

14

(0Eh)

Зарезервировано (0)

bCBWCBLength

15-30

(0Fh-1Eh)

CBWCB


dCBWSignature:

Сигнатура, которая позволяет идентифицировать этот пакет данных как CBW. Это сигнатурное поле должно содержать значение 43425355h, указывающее что это CBW пакет.

dCBWTag:

Метка блока управления, посылаемая хостом. Устройство должно отразить содержимое этого поля обратно к хосту в поле dCSWTag сответствующего ему CSW (associated CSW). dCSWTag связывает (присоединяет, объединяет) CSW с соответствующим CBW.

dCBWDataTransferLength:

Количество байт данных, которые хост предполагает переслать в конечную точку с помощью Bulk-In или Bulk-Out (как указано в бите Направления (Direction), т.е. в бите, который указывает направление) во время выполнения этой команды. Если в этом поле ноль, то устройство и хост не будут передавать данные между CBW и связанным с ним CSW, и устройство проигнорирует значение бита Направления (Direction) в поле bmCBWFlags.

bmCBWFlags:

Биты этого поля обозначаются так:

Таблица 1.11.

Биты поля bmCBWFlags

бит 7

Направление (Direction) – устройство проигнорирует этот бит, если в поле dCBWDataTransferLength стоит ноль, иначе:

0 = Data-Out от хоста к устройству,

1 = Data-In от устройства к хосту.

бит 6

Устаревший (вышедший из употребления, obsolete). Хост должен выставить в этом бите ноль.

биты 5…0

Зарезервировано. Хост должен выставить в этих битах ноль.


bCBWLUN:

Устройство Logical Unit Number (LUN), к которому был послан блок управления. Для устройств, которые поддерживают составной (multiple) LUN, хост должен поместить в это поле LUN, к которому адресуется этот блок управления. Иначе, хост должен выставить в этом поле ноль.

bCBWCBLength:

Действительная длина CBWCB в байтах. Это определяет действительную длину блока управления. Единственные «законные» (legal) значения – от 1 до 16 (01h – 10h). Все остальные значения зарезервированы.

CBWCB:

Устройство вызывает работу блока управления. Устройство должно интерпретировать первые байты bCBWCBLength как блок управления (как определено командной установкой, идентифицированной полем bInterface SubClass). Если командная установка, выставленная с поддержкой устройства, использует блоки управления длиной меньше чем 16 (10h) байт, значимые байты будут переданы первыми, начиная с байта с начальным номером 15(Fh). Устройство проигнорирует содержимое поля CBWCB после байта с номером (15 + bCBWCBLength - 1). Это поле хранит блок команд, которые будут выполнены функцией. В это поле вводится команда, которую хост задает функции, чтобы та её выполнила (в нашем случае используются команды SCSI).

^ 2.4.2. Пересылка состояния (Status Transport).

Пересылка состояния используется для передачи результатов выполнения команд от функции к хосту, используя пересылку Bulk-In.

^

Пакет состояний определяется Command Status Wrapper (CSW) (табл.1.12). Bulk-Only Transport должен всегда заканчиваться CSW.




Таблица 1.12.

Command Status Wrapper (CSW пакет).

Byte|bit

7

6

5

4

3

2

1

0

0-3

dCSWSignature

4-7

dCSWTag

8-11

(8-Bh)

dCSWDataResidue

12

(Ch)

bCSWStatus


^

CSW посылается хосту в 13-ти байтном пакете, используя пересылку Bulk-in.


Все передачи CSW должны быть упорядочены с наименьшего значащего байта (байт 0) и храниться по принципу little endian.

dCSWSignature:

Сигнатура (подпись), которая позволяет идентифицировать пакет данных как CSW. В данном поле должно содержатся значение 53425355h (little endian), обозначающее CSW.

dCSWTag:

Устройство должно выставить в этом поле значение, полученное в поле dCBWTag от соответствующего CBW.

dCSWDataResidue:

Для Data-Out устройство должно сообщить в этом поле разницу между количеством данных ожидаемых, как указано в поле dCBWDataTransferLength , и действительным количеством данных, обработанных (обрабатываемых) устройством. Для Data-In устройство должно сообщить в поле dCSWDataResidue разницу между количеством данных ожидаемых, как указано в поле dCBWDataTransferLength, и действительным количеством соответствующих данных, посылаемых хостом. Поле dCSWDataResidue не должно превосходить значение посылаемое в поле dCBWDataTransferLength.

bCSWStatus:

Здесь отображается, насколько удачно была выполнена команда. Устройство должно выставить этот байт в ноль, если команда завершена успешно. Ненулевое значение покажет, что была совершена ошибка, в соответствии с таблицей 1.13.

Таблица 1.13.

Значения Command Block Status.

Значение

Описание

00h

Команда выполнена успешно

01h

Команда выполнена неудачно

02h

Phase Error

03h и 04h

Зарезервировано (Obsolete)

05h до FFh

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



^ 2.4.3. Передача данных (Data Transport).
Передача данных используется для пересылки данных между хостом и функцией. Например, с помощью команды Чтение/Запись (Read/Write) действительные данные посылаются с использованием передачи данных.

Передача данных состоит из множества транзакций шин (bus transaction).

Передача данных выполняется с помощью либо bulk-out передачи, либо bulk-in. В поле bmCBWFlags (CBW) значится, какой тип используется.

^ 2.4.4. Режимы передач данных.
Хост отображает ожидаемую передачу в CBW, используя бит Направления (Direction bit) и поле dCBWDataTransferLength. Устройство затем определяет действительное направление и длину передаваемых данных. Устройство реагирует (отвечает) передачей данных, и возвращает соответствующий (подходящий) CSW.

Передача управления (команды) (Command Transport).Хост должен отправлять каждый CBW , который содержит блок управления, к устройству посредством конечной точки Bulk-Out. CBW начинается с границы пакета и заканчивается передачей 31 байта.

Устройство должно отобразить успешную передачу CBW отсылая ACK. Если хост обнаруживает STALL в конечной точке Bulk-Out во время передачи управления (during command transport), то он должен отреагировать Reset Recovery.

Передача данных. Хост должен попытаться передать точное количество байт к или от хоста в зависимости от того, как определено в dCBWDataTransferLength и в бите Direction. Для того, чтобы сообщить об ошибке до того, как передача данных будет завершена и для того, чтобы увеличить сохранность данных, устройство может закончить команду путем задания STALL в той конечной точке, которая используется (конечная точка Bulk-In во время data in, конечная точка Bulk-Out во время data out).

Передача статуса. Устройство должно пересылать каждый CSW хосту через конечную точку Bulk-In. CSW показывает хосту степень выполнения команды, заданной соответствующей CBW.

^ 3. SCSI команды в пакете CBW.
При передаче CBW пакетов в качестве команд используются SCSI команды. Основные SCSI команды представлены в таблице 1.14.
Таблица 1.14.

Основные SCSI команды.

Команда


Код

Назначение

Inquiry

12h

Опрос типа устройства, уровня стандарта, идентификатора производителя, модели и т. п.

Read Capacity

25h

Определение емкости логического устройства

Read (6)


08h

Чтение данных с 6-байтным блоком дескриптора

Read (10)


10h

Чтение данных с 10-байтным блоком дескриптора

Request Sense

03h

Опрос уточненного состояния
















Продолжение Таблицы 1.14.

Mode Sence (6)

1Ah

Считывание параметров носителя с 6-байтным блоком дескриптора

Mode Sence (10)

5Ah

Считывание параметров носителя с 10-байтным блоком дескриптора

Write

OAh

Запись блоков данных, переданных ИУ


SCSI команды могут быть 6-ти байтными, 10-ти байтными и 12-ти байтными. Форматы команд представлены в табл. 1.15-1.17.

Таблица 1.15.

Формат 6-ти байтной команды.

byte|bit

7

6

5

4

3

2

1

0

0
^

Код операции


1
Номер логич. устройства

(MSB)

2

Логический адрес блока (если требуется)

(LSB)

3

4

Длина блока данных или параметров (если требуется)


5

Управляющий байт

1   2   3   4   5



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

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

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