Настройка USB сим сканера

         

Управление Шиной и Устройством


Сервисы Управления Шиной и Устройством позволяют клиенту стать главным клиентом на USB, и как главный клиент, корректировать число времен передачи бита в кадре на этой шине. Главный клиент может явно отказаться от статуса главного, или статус главного клиента будет автоматически освобожден, когда устройство, содержащее вызванный интерфейс сброшено или отсоединено. Может иметься более одного главного клиента на USB(????There can be at most one master client on a USB.). Новый главный клиент будет предоставлен специальный главный handle, который нужно использовать при корректировке SOF.

Главный клиент может добавлять или вычитать одно время передачи бита в текущем кадре USB. Клиент должен сослаться на интерфейс, идентифицирующий корректируемый USB и разрешить статус главного клиента, которое будет утверждено.(The client must reference an interface identifying the USB being adjusted and allowing the client’s master status to be validated.) Настройка SOF происходит, если только чаще, чем каждые 6 мс имеются неопределенные результаты(Adjusting SOF more frequently than once every 6 ms has undefined results.



Управление Скоростью Перепада


Downstream порты концентратора должны поддерживать, и низко скоростные и полно скоростные скорости перепада. Полно скоростные сигналы определяют время повышения/падение 4-20 нс. Время повышение/падение при низкой скорости должно быть внутри диапазона 75-300 нс. Скорость перепада на downstream порте должна быть выбираемая, основана на том, было ли downstream устройство обнаружено как полно скоростное или низко скоростное. Корневой порт концентратора всегда использует полно скоростную передачу сигналов, и буферы вывода всегда функционируют с полно скоростными скоростями перепада.



Управление Состоянием


USBDI должен предоставить механизм для получения и очистки состояния устройства основанного на, устройстве, интерфейсе, или базисе канала.(The USBDI must provide a mechanism for obtaining and clearing device-based status, on a device, interface, or pipe basis.)



Управление Состоянием Интерфейса


Клиенты USBD должны быть способны установить определенный интерфейс к любому устанавливаемому состоянию канала. Установка состояния интерфейса приводит к переходу всех каналов этого интерфейса, в это состояние. Дополнительно, все каналы в интерфейсе могут быть сброшены или прерваны.



Управление Состоянием Канала


Состояние канала USBD имеет два компонента:

Состояние Хоста

"Отраженное" состояния конечной точки

Всякий раз, когда сообщено состояние канала, будет определено значение обоих компонент. Состояние канала, отраженное от конечной точки - результат нахождения конечной точки в специфическом состоянии. (The pipe status reflected from the endpoint is the result of the endpoint being in a particular state.) Клиент USBD управляет состоянием канала как сообщено USBD.(The USBD client manages the pipe state as reported by the USBD.) Для любого состояния канала, отраженного от конечной точки, клиент должен также взаимодействовать с конечной точкой, чтобы изменить состояние.(For any pipe state reflected from the endpoint, the client must also interact with the endpoint to change the state.)

USBD канал находится в точно одной из следующей состоянии:

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



Остановленный.  Произошла ошибка в канале. Это состояние может также быть результатом отражения сигнала соответствующей остановленной конечной точки на устройстве.

Idle. Канал больше не будет принимать IRPs. Конечная точка должна также быть в состоянии idle.

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

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

Сброс канала. IRPs канала прерываются. Хоста переводится в активное состояние. Если отраженное состояние конечной точки должно быть изменено, оно должно явно управляться клиентом USBD.



Управление Стратегией Канала


USBDI должен позволить клиенту устанавливать и очищать стратегию для индивидуального канала или для всего интерфейса. Любой IRPs, выданные клиентом до успешной установки стратегии отклоняются USBD.



Управление USB через Механизмы USBD


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



Уровни Передачи Сигналов


Таблица 7-1 подводит итог уровней передачи сигналов USB. Уровни передачи сигналов описаны ниже в этом разделе и в следующих разделах.

Таблица 7-1.  Уровни Передачи Сигналов

Состояние шины

Уровни Передачи сигналов

From Originating Driver

В Приемник

Дифференциальная “1”

(D+) - (D-) >  200 мВ и D+ или D- > VSE (min.)

Дифференциальный “0”

(D+) - (D-) < -200 мВ и D+ или D- > VSE (min.)

Данные J Состояние:

Низкая скорость

Высокая скорость

 

Дифференциальный “0”

Дифференциальная “1”

Данные K Состояние:

Низкая скорость

Высокая скорость

 

Дифференциальная “1”

Дифференциальный “0”

Idle Состояние:

Низкая скорость

Высокая скорость

Дифференциальный “0” и D- > VSE (max.)  и D+ < VSE (min.)

Дифференциальная “1”  и D+ > VSE (max.)  и D- < VSE (min.)

Resume Состояние:

Низкая скорость

Высокая скорость

Дифференциальная “1”  и D+ > VSE (max.)  и D- < VSE (min.)

Дифференциальный “0”  и D- > VSE (max.)  и D+ < VSE (min.)

Начало пакета (SOP)

Линии данных переключаются от Idle к K Состоянию

Конец пакета (EOP)

D+ и D- < VSE (min) в течении 2 времен передачи бита1 далее следует Idle состояние в течении 1 времен передачи бита

D+ и D- < VSE(min)  ³ 1 времени передачи бита2

далее следует J Состояние

Разъединение  (Только вверх по иерархии)

(не важно)

D+ и D- < VSE(max) ³ 2.5 mс

Соединение (Только вверх по иерархии)

(не важно)

D+ или  D- > VSE(max)  ³ 2.5 mс

Сброс (Только вниз по иерархии)

D+ и D- < VSE for ³10 мс

D+ и D- < VSE (min) ³ 2.5 mс

(должен быть распознан внутри 5.5 mс)3

        Примечание 1:  Ширина EOP определена во временах передачи бита связанных со скоростью передачи.

        Примечание 2:  Ширина EOP определена во временах передачи бита связанных с типом устройства, получающего EOP.

        Примечание 3:  Эти времена относятся к активному устройству, которое не в подвешенном состоянии.


Состояния данных J и K  - два логических уровня, используемые для передачи дифференциальных данные в системе. Дифференциальная передача сигналов измеряется от точки, где строка данных сообщает о пересечении. (Differential signaling is measured from the point where the data line signals cross over.) Дифференциальная передача сигналов данных не иметь отношение к уровню, в котором накладываются сигналы, пока это происходит внутри основного диапазона режима.(Differential data signaling is not concerned with the level at which the signals cross, as long as it is within the common mode range.) Когда шина не в дифференциальном режиме передачи сигналов, линии данных должны быть вне VSE переключения порогового диапазона, чтобы быть допустимыми, как в неактивном так и в активном состояниях.(When the bus is not in the differential signaling mode, the data lines have to be outside the VSE switching threshold range to be valid, as in the idle и resume states.) Следует обратить внимание, что остановленное и возабновленное состояния логически эквивалентны соответственно J и K состояниям.

Таблица 7-1 показывает J и K состояния для полно скоростного режима инвертированного из такого же низко скоростного режима. (Таблица 7-1 shows the J и K states for a full speed to be inverted from those of low speed.)  Значение данных, простоя и возобновления передачи сигналов установлено типом устройства, которое присоединяется к порту. Если полно скоростное устройство присоединено к порту, то сегмент USB сети использует полно скоростные соглашения передачи сигналов (и быстро повышаются и понижаются времена) (и fast rise и fall times) даже если данные, посылаются по линиям данных - со скоростью низко скоростной передачи данных. Соглашения низко скоростных передач сигналов, показанные в Таблица 7-1 (плюс медленное повышение и понижение времен) используются только между низко скоростным устройством и портом, к которому оно присоединено. Метод определения типа устройства, и следовательно используемое соглашение передачи сигналов, описаны в следующем разделе.


USBD Pipe Mechanisms(Механизмы Канала USBD)


Эта часть USBDI предлагает клиентам самое высокое быстродействие, при самых низких непроизводительных затратах на возможные сервисы при передачи данных.(This part of the USBDI offers clients the highest-speed, lowest overhead data transfer services possible.) Более высокая эффективность достигнута, перенесением некоторых обязанностей по управлению канала с USBD на клиента. В результате, механизмы канала реализованы на больее примитивном уровне, чем сервисы передачи данных, предоставляемые механизмами команды USBD.  Механизмы Канала не позволяют доступ к создаваемому по умолчанию каналу устройства.

Передачи по каналу USBD доступны только после того, как и устройство и конфигурация USB завершились успешно.  Во время конфигурирования устройства, USBD запрашивает ресурсы, требуемые, для поддержания всех каналов устройства в конфигурации. Клиентам позволяют изменить конфигурацию, ограничивая тем, является ли определенный интерфейс или канал idle.(Clients are allowed to modify the configuration, constrained by whether the specified interface or pipe is idle.)

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

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



Успешные Транзакции Данных


На Рисунке 8-16 показан случай успешного завершения двух транзакций. Для передатчика данных, это означает, что он переключает свой бит последовательности после получения ACK. Приемник переключает свой бит последовательности только, если он получает пакет достоверных данных, и  PID пакета данных соответствуют биту последовательности приемника.

В течение каждой транзакции, приемник сравнивает бит последовательности передатчика (закодированный в PID пакета данных как DATA0 или DATA1) со своим битом последовательности. Если данные не могут быть приняты, приемник должен выдать NAK. Если данные могут быть приняты, и бит последовательности приемника соответствует бита последовательности PID, то данные принимаются. Биты последовательности могут изменяться, только если пакет данных был передан. Двухфазные транзакции, в которых нет пакета данных, оставляют биты последовательности передатчика и приемника неизмененными.

Рисунок 8-16.  Последовательные Транзакции



Установка Адреса


Этот запрос устанавливает адрес устройства для всех будущих обращений к устройству.

bmRequestType

bRequest

wValue

wIndex

wLength

Данные

00000000B

SET_ADDRESS

Адрес Устройства

Нуль

Нуль

Нет

Поле wValue определяет адрес устройства используемый во всех последующих обращениях.

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

Стадия следующая после начального пакета установки имеет тот же самый адрес устройства как пакет установки(Stages after the initial setup packet assume the same device address as the setup packet.) Устройство USB не изменяет адрес устройства, пока стадия состояния этого запроса не завершена успешно. Обратите внимание, что в этом различие между этим запросом и всеми другими запросами. Для всех других запросов, обозначенная операция должна быть завершена до стадии состояния.



Установка Дескриптора


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

bmRequestType

bRequest

wValue

wIndex

wLength

Данные

00000000B

SET_DESCRIPTOR

Тип Дескриптора и Индекс Дескриптора

Языковой ID (обратитесь к Разделу 9.6.5)

Длина Дескриптора

Дескриптор

Поле wValue определяет, что тип дескриптора расположен в старшем байте и индекс дескриптора в младшем байте (обратитесь к Таблице 9-4). Поле wIndex определяет Языковой ID для строковых дескрипторов или сброшен в нуль для других дескрипторов. Поле wLength определяет число байтов, которые передаются от хоста к устройству.


Этот запрос переписывает дескриптор концентратора.

BmRequestType

bRequest

wValue

wIndex

wLength

Data

00100000B

SET_DESCRIPTOR

Тип и Индекс Дескриптора

Нуль

Длина Дескриптора

Дескриптор

 

Запрос SetDescriptor к дескриптору класса концентратора, придерживается той же самой модели в эксплуатации как такой же стандартный запрос SetDescriptor (обратитесь к Главе 9). Стандартный дескриптор концентратора имеет нулевой типом дескриптора. Требуется чтобы во всех концентраторах был реализован один дескриптор концентратора, с нулевым дескрипторным индексом.

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

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

Концентраторы, которые не поддерживают этот запрос, отвечают stall.



Установка Дескрипторов


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



Установка Интерфейса


Этот запрос позволяет хосту выбирать альтернативные установки для определенного интерфейса.

bmRequestType

bRequest

wValue

wIndex

wLength

Данные

00000001B

SET_INTERFACE

Альтернативная Установка

Интерфейс

Нуль

Нет

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



Установка Конфигурации


Этот запрос устанавливает конфигурацию устройства.

bmRequestType

bRequest

wValue

wIndex

wLength

Данные

00000000B

SET_CONFIGURATION

Значение Конфигурации

Нуль

Нуль

Нет

Поле wValue определяет требуемую конфигурацию. Это значение должно быть нулем или соответствовать значению конфигурации из дескриптора конфигурации. Если это значение нуль, устройство помещается в несконфигурированное состояние.



Установка Возможностей


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

bmRequestType

bRequest

wValue

wIndex

wLength

Данные

00000000B

00000001B

00000010B

SET_FEATURE

Выбор возможностей

Нуль

Интерфейс

Конечная точка

Нуль

Нет

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

Обратитесь к Разделу 9.4 для, определение тех значений выбора возможностей которые  определены для каждого получателя. Запрос SetFeature который ссылается на возможность, которая не может быть установлена, или которая не существует, вызовет останов (A SetFeature request that references a feature that cannot be set or that does not exist causes a stall.)



Установка Возможности Концентратора


Этот запрос устанавливает значение, сообщенное в состоянии концентратора.

BmRequestType

bRequest

wValue

wIndex

wLength

Данные

10100000B

SET_FEATURE

Селектор Возможности

Нуль

Нуль

Нет

Установка возможности разрешает эту возможности; обратитесь к Таблица 11-13 для определения селектора возможности. Индикаторы Изменения не могут быть подтверждены, используя этот запрос.



Установка Возможности Порта


Этот запрос устанавливает значение, сообщенное в состоянии порта.

BmRequestType

bRequest

wValue

wIndex

wLength

Данные

10100011B

set_ feature

Селектор Возможности

Порт

Нуль

Нет

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

Установка возможности разрешает эту возможность; обратитесь к определению селектора возможности. Индикаторы Изменения не могут быть подтверждены, используя этот запрос.

Установка возможности PORT_SUSPEND вызывает прекращение трафика шины на этом порте и, следовательно подвешивает устройство. Установка возможности сброса (PORT_RESET) заставляет концентратор выдавать сброс на тот порт. Когда сигнал сброса завершится, концентратор устанавливает индикатор изменения C_PORT_RESET и немедленно разблокировывает порту.  Обратитесь к Разделу 11.6.2 для полного обсуждения поведения хоста создавшего сброс.

[1]

If, for example, the insertion status changes twice before system software has cleared the changed condition, hub hardware will be “setting” an already-set bit (i.e., the bit will remain set).  However, the hub will transfer the change bit only once when the host controller requests a data transfer to the Status Change endpoint.  System software is responsible for determining state change history in such a case.



Установление Альтернативных Установок


USBDI должен предоставить механизм, чтобы изменить альтернативные установки для определенного интерфейса. В результате, handles канала для предыдущей установки отменяются, а новые handles канала для интерфейса устанавливаются. Чтобы этого запрос успшно завершился, интерфейс должен быть неактивен; то есть, все каналы в интерфейсе должны быть в idle состоянии.



Установление Конфигурации


Конфигурирование программного обеспечения запрашивает конфигурацию,  передавая буфер, содержащий дескриптор конфигурации к USBD. USBD запрашивает ресурсы для конечных точек в конфигурации, и если все запросы ресурсов успешны, USBD устанавливает конфигурацию устройства и возвращает handles интерфейса с соответствующими handles канала для всех активных конечных точек. Значения по умолчанию используются во всех альтернативных установках для интерфейсов и для MaxPacketSize для конечных точек. Эти значения по умолчанию могут впоследствии изменяться.

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



Установление Максимального Размера Пакета для Канала


USBDI должен предоставить механизм, для изменения характеристик передачи канала.  USBD корректирует запрошенные ресурсы и устанавливает текущий максимальный размер полезной нагрузки данных транзакции шины для определенного канале. Этот сервис может применяться только к каналу, который был создан,  установлением конфигурации и который в настоящее время idle.



Устранение Неисправностей Контроллера Концентратора


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

Таблица 11-3.  Типы Ошибок в Пакете

Поле

Ошибка

Действие

PID

проверка PID, вставка бит

Игнорирование пакета

Address

Вставка бит, CRC адреса

Игнорирование маркера

Data

Вставка бит, CRC данных

Отбрасывание данных



Устранение Неисправностей Повторителя


Концентраторы должны быть способны обнаружить и устранить условия, которые оставляют их ждущими неопределенное время конца пакета, или  оставляющие входную шину в другом состояние чем состояние idle в конце кадра, то есть, SOP без EOP. Имеются два таких условия неисправности концентратора: потеря активности и babble.  Потеря активности (LOA) характеризуется обнаружением начала пакета (SOP), сопровождаемый недостатком активности на шине (шина увязшая в idle или состоянии K) и отсутствием конца пакета (EOP) в конце кадра. Babble характеризуется SOP, сопровождаемым присутствием активности на шине, продолжающей прошлый окончившийся кадр.(Babble is characterized by SOP followed by the presence of bus activity continuing past the end of a frame.) Концентраторы не имеют никакое понятие о распределенной пропускной способности и должны полагаться на таймер кадра при обнаружении условия babble и LOA. Механизм восстановления требует, чтобы концентраторы проследили синхронизацию кадра хоста и восстановились перед началом следующего кадра.

Устранение неисправностей концентратора функционирует только в направлении вверх по иерархии. Хост ответственен за обнаружение и устранение собственных ошибок направленных вниз по иерархии. Устранение неисправностей повторителя концентратора должно встретить следующие требования:

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

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

При условиях не-неисправности, эти требования выполняются средствами концентратора, получающего EOP с каждым пакетом, и не имеющего никакого трафика шины происходят прошлый окончившийся кадр.(and having no bus traffic occur past the end of a frame. ) Перед описанием того, как концентраторы реализуют устранение неисправностей, будет описано кадр концентратора.



Устройства USB


устройства USB:

Концентраторы, которые обеспечивают дополнительное присоединение узлов(points) USB

Функции, которые обеспечивают возможности системы; например, ISDN соединение, цифровой джойстик или колонки

Устройства USB представляют стандарт интерфейса USB в следующих терминах:

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

Ответ на стандартные операции USB типа конфигурирование и сброс

Стандартная возможность описания информации

Дополнительная информация относительно устройств USB может быть найдена в Разделе 4.8 и в Главе 9, Устройства USB.


Устройства USB разделены на следующие классы устройств  концентратор, устройство ввода позиций(locator), или текстовое устройство. Класс устройств типа концентратор состоит из особенных устройств USB, которые обеспечивают присоединение дополнительных USB точек (обратитесь к Главе 11). USB devices are required to carry information for self-identification and generic configuration. They are also required at all times to display behavior consistent with defined USB device states.




Логический состав физического устройства USB показан на Рисунке 5-4:

Интерфейс шины USB

Логическое устройство USB

Функция

Физические устройства USB обеспечивают хост дополнительными функциональными возможностями. Широко изменяются типы функциональных возможностей, обеспечиваемых  устройствами USB(The types of functionality provided by USB devices vary widely). Однако, все логические устройства USB представляют тот же самый базисный интерфейс на хост.( However, all USB logical devices present the same basic interface to the host) Это позволяет хосту управлять тем же самым способом соответствующими аспектами USB в различных видах устройств USB( This allows the host to manage the USB-relevant aspects of different USB devices in the same manner).

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

Для более детального рассмотрения устройства  USB, обратитесь к Главе 9, Каркас(Framework) Устройства USB.

Рисунок 5-4. Состав Физического Устройства



Устройство


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

Все устройства USB имеют нулевую конечную точку, используемую созданным по умолчанию каналом. Максимальный размер пакета нулевой конечной точки устройства описан в дескрипторе устройства. Особенности конфигурации конечной точки и интерфейса(ов) описаны в дескрипторе конфигурации. Конфигурация и интерфейс(ы) не содержатся в дескрипторе конечной точки для нулевой конечной точки.  Отличные от максимального размера пакета, характеристики нулевой конечной точки определяются этой спецификацией и одинаковы для всех  устройств USB.

Поле bNumConfigurations содержит количество конфигураций, поддерживаемых устройством.

Смещение

Поле

Размер

Значение

Описание

0

bLength

1

Number

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

1

bDescriptorType

1

Constant

Тип дескриптора DEVICE

2

bcdUSB

2

BCD

Число Характеризующее Версию Спецификации USB Представленной в Двоично-кодированном Десятичном виде ( Т.е., 2.10 это 0x210).  Это поле определяет версию Спецификации USB, с которой согласованы устройство и дескрипторы.

4

bDeviceClass

1

Class

Код Класса (назначенный USB).

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

Если это поле имеет значение между 1 и 0xFE, устройство поддерживает различные спецификации класса на различных интерфейсах, и интерфейсы не могут функционировать независимо.  Это значение характеризует определение класса, используемое для составных интерфейсов.  (Например, устройство CD-ROM с интерфейсами звука и цифровых данных, которые требуют управления передачей вынуть CD или начать его вращение.)

Если в этом поле значение 0xFF, класс устройства - определен продавцом.

<
Смещение

Поле

Размер

Значение

Описание

5

bDeviceSubClass

1

SubClass

Код Подкласса (назначенный USB).

Эти коды определены значением поля bDeviceClass.

Если поле bDeviceClass сброшено в 0, это поле должно также быть сброшено в 0.

If the bDeviceClass Если поле не установлено к 0xFF, все значения зарезервированы для назначения USB.

6

bDeviceProtocol

1

Protocol

Код Протокола (назначенный USB).  Эти коды определены значением полей bDeviceClass

и bDeviceSubClass. Если устройство поддерживает протоколы  определенные классом основанные на устройстве в противоположность основанных на интерфейсе, этот код идентифицирует протоколы, которые устройство использует как определено спецификацией класса устройства(If a device supports class-specific protocols on a device basis as opposed to an interface basis, this code identifies the protocols that the device uses as defined by the specification of the device class.)

Если это поле сброшено в 0, устройство не использует протоколы определенные классом основанные на устройстве.  Однако, оно может использовать протоколы определенные классом основанные на интерфейсе.

Если значение этого поля 0xFF, устройство использует протокол определяемый продавцом основанный на устройстве.

7

bMaxPacketSize0

1

Number

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

8

idVendor

2

ID

ID продавца ( назначенный USB)

10

idProduct

2

ID

 ID изделия (назначенный изготовителем)

12

bcdDevice

2

BCD

Число характеризующее версию Устройства в двоичнокодированном десятичном виде

14

iManufacturer

1

Index

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

15

iProduct

1

Index

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

16

iSerialNumber

1

Index

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

17

bNumConfigurations

1

Number

Число возможных конфигураций


Уведомления о Событии


Клиенты USBD получают несколько видов уведомлений о событии от ряда источников:

Завершение действия, инициализированного клиентом.

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

Данные событий могут быть внедрены устройствами в потоки.

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



Видимые Состояния Устройства


Этот раздел описывает состояния устройства USB, которые являются внешне видимыми (см. Рисунок 9-1).  Обратите внимание: устройства USB выполняют операцию сброса в ответ на запрос Сброса upstream порта от хоста. Когда передача сигналов сброса завершена, устройство USB считается сброшенным.

Рисунок 9-1.  Диаграмма Состояний Устройства

Таблица 9-1.  Видимые Состояния Устройства

Присоединенное

Под напряжением

По умол-чанию

Адрессованное

Сконфигу-рированное

Подвешенное

Состояние

Нет

--

--

--

--

--

Устройство не присоединено к USB.  Другие атрибуты не важны.

Да

Нет

--

--

--

--

Устройство присоединено к USB, но не включено. Другие атрибуты не важны.

Да

Да

Нет

--

--

--

Устройство присоединено к USB и включено, но не сброшено.

Да

Да

Да

Нет

--

--

Устройство присоединено к USB, включено и было сброшено, но не был назначен уникальный адрес. Устройство отвечает на заданный по умолчанию адресе.

Да

Да

Да

Да

Нет

--

Устройство присоединено к USB, включено, было сброшено, и уникальный адрес устройства назначен. Устройство не сконфигурировано.

Да

Да

Да

Да

Да

Нет

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

Да

Да

Да

Да

Да

Да

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



Восстановление Пропускной Способности Шины


Пропускная способность USB и доступ к шине предоставляются на основании вычисленных для самого плохого случая времени передачи по шине и требуемых времен отклика. Однако, из-за ограничений заложеных в различных типах передач и того факта, что  вклад вставок бита во время шины вычисляется как константа, но зависит от данные, будет часто оставаться время шины, в каждом кадре времени от того кадра времени передачи, которое было вычислено.(However, due to the constraints placed on different transfer types and the fact that the bit stuffing bus time contribution is calculated as a constant but is data dependent, there will frequently be bus time remaining in each frame time versus what the frame transmission time was calculated to be.) Чтобы поддерживать наиболее эффективное использование пропускной способности шины,  передачи  управление и bulk являются кандидатами, которые необходимо поместить в шину как только время шины становится доступным. Как именно хост контроллер это поддерживает, зависит от его реализации. Хост контроллер может принимать во внимание типы передач задержанных IRPs и реализации специфическое знание об оставшемся кадре времени, чтобы снова использовать исправленную пропускную способность(A host controller can take into account the transfer types of pending IRPs and implementation specific knowledge of remaining frame time to reuse reclaimed bandwidth.)



Возобновление


Операция  возобновления может быть осуществлена, только если устройство находящееся в подвешенном состоянии, получает не-останавливающий(non-idle) сигнала по шине, или оно может сообщить системе о возобновленной операции, если оно имеет возможность удаленного пробуждения. Передача сигнала возобновленного состояния, используется хостом или устройством с удаленным пробуждением, чтобы разбудить систему. Концентраторы играют важную роль в распространении и порождении передачи сигналов возобновления. Далее описывается иерархическая структура общей глобальной последовательности возобновления. Полное описание последовательности возобновления, специальные случаи, вызванные выборочным подвешиванием, и роль концентратора приведены в Разделе 11.5.

Хост может сообщить о возобновлении в любое время после того, как он перевел шину в подвешенный режим. Он должен послать сигнал возобновления по крайней мере за 20 мс и затем закончить передачу сигнала возобновления стандартным низко скоростным EOP (два низко скоростных времени передачи бита SE0, сопровождаемых переходом к остановленному состоянию).(two low speed bit times of SE0 followed by a transition to the idle state). 20 мс передача сигнала возобновления обеспечивает, пробуждение всех устройства в сети, которые могут видеть сигнал возобновления. EOP разрушит связь, установленную передачей сигнала возобновления и подготовит концентраторы к нормальной операции. После возобновления шины, хост должен начать посылать трафик по шине (по крайней мере SOF маркер) внутри 3 мс, чтобы удержать систему от возвращения в подвешенное состояние.

Устройство с возможностью удаленного пробуждения должно ждать по крайней мере 5 мс, после того как шина перешла в остановленное состоянии, перед посылкой сигнала удаленного пробуждения для возобновления. Это позволяет концентраторам перейти в подвешенное состояние и подготовиться к распространению передачи сигналов возобновления.(This allows the hubs to get into their suspend state and prepare for propagating resume signaling.) Пробуждение удаленного устройства должно продержать передачу сигналов  возобновления по крайней мере 10 мс и не более, чем 15 мс. В конце передачи сигналов возобновления, устройство переводит линии данных в состояние высокого импеданса. 


Upstream концентратор пробудившегося удаленного устройства распространит сигнал возобновления к корневому порту и всем работающим downstream портам, включая порт, который первоначально сообщил о возобновлении. Концентратор должен начать эту перепередачу сигнала возобновления не позднее 50 ms после получения оригинала возобновления.(The hub must begin this rebroadcast of the resume signaling within 50 ms of receiving the original resume.) Сигнал возобновления будет распространен этим способом вверх по иерархии, пока не достигнет хоста (или подвешенного порта концентратора - обратитесь к Разделу 11.5.2.1) который отразит возобновление вниз по иерархии к доступным портам, как в любом другом концентраторе (The resume signal will propagate in this manner upstream until it reaches the host  which will reflect the resume downstream on its enabled ports, as in any other hub.) Тем временем, концентраторы, которые передали возобновление на хост, пробуждаются в течении 10 мс. После задержки в 1 мс, они изменяют направление передачи в своем корневом порте от вверх по иерархии к вниз по иерархии и отражают состояние сигнала на корневом порте на свои работающие downstream порты. (After a 1 ms delay, they reverse the direction of connectivity in their root port from upstream to downstream and reflect the signal state on the root port onto their enabled downstream ports.) Это предоставляет хосту возможность управлять передачей сигнала возобновления, которая затем продолжает как описано выше.

Соединение и разъединение порта, может также заставлять действующий концентратор посылать сигнал возобновления и пробудить систему.  Обратитесь к Разделу 11.5 для большее детального ознакомления.

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

Обратитесь к Разделу 7.2.3 для ознакомления с описанием управления мощностью во время подвешивания и возобновления.


Возобновление и Таймер Кадра Концентратора


Когда концентратор переходит из suspended к активному состоянию, таймер кадра не работает, и EOF схемотехника выделения тактового сигнала концентратора не будет работать, пока не будет получен первый SOF. Для предотвращения babbling лежащего ниже по иерархии устройства на недавно возобновленном сегменте шины из блокировки шины,  необходимо не позволить концентраторам распространять трафик вверх по иерархии, в то время как концентратор находится в активном состоянии, пока не будет запущен таймер кадра концентратора(To prevent a babbling downstream device on a recently resumed bus segment from locking up the bus it is necessary to prevent hubs from propagating upstream traffic while the hub is in the awake state until the hub’s frame timer has started.) Это достигается, переходом конечного автомата повторителя концентратора к состоянию WFSOF после появления возобновления. В то время как повторитель концентратора находится в состоянии WFSOF, игнорируется любой трафик вверх по иерархии.  Конечный автомат повторителя остается в состоянии WFSOF, пока не обнаружен SOF, тогда он переходит к состоянию WFEOP. Трафик вниз по иерархии не затрагивает состояние таймера кадра. Чтобы предотвратить бесполезные истечения времен ожидания,  рекомендуется, чтобы хост не посылал никаких пакетов, адресованных устройствам на только что возобновленном сегменте шины, пока хост не выдаст по крайней мере один маркер SOF к недавно восстановленному концентратору или концентраторам. Это условие гарантируется на основании того факта, что концентратор не сообщает об обнаружении возобновления на хост в течении 3.0 мс после того, как завершена последовательность возобновления.



Возобновление Связности(Resume Connectivity)


Концентраторы проявляют различное поведения связности в направленнии вверх и вниз по иерархии возобновления сигнализация.(Hubs exhibit differing connectivity behaviors for upstream and downstream directed resume signaling.) Концентратор, который находится в подвешенном состоянии, отражает сигнализацию возобновления от корневого порта ко всем разблокированным downstream портам. Рисунок 11-3 иллюстрирует связность возобновления концентратора вверх и вниз по иерархии.

Рисунок 11-3.  Resume Connectivity

Если концентратор находится в подвешенном состоянии и обнаруживает сигнализацию возобновления из downstream порта, концентратор отражает эту сигнализацию вверх по иерархии к корню и также к всем разблокированным downstream портам, включая порт, который инициализировал последовательность возобновления. Сигнализация Возобновления не отражается к заблокированным портам. Детальное обсуждение связности возобновления представлено в Разделе 11.5



Временные характеристики Передачи Сигналов Концентратора(Hub Signaling Timings)


Распространение полно скоростного, дифференциального сигнала данных через концентратор показано на Рисунок 7-19.  Передача сигналов вниз по иерархии измеряется без соединенного с портом кабеля и с емкостной нагрузкой 50 пФ. Общая задержка через кабель и электронику концентратора должна быть максимум 70 нс.  Если концентратор имеет стандартный съемный кабель USB, то задержка через электронику концентратора должна быть максимумом 40 нс, чтобы учесть самый плохой случай с задержкой в кабеле 30 нс. Задержка через этот концентратор измеряется в двух направлениях и в верх и вниз по иерархии как показано на Рисунок 7-19B, от пересечения линии данных во входном порте к пересечению линии данных в порте выхода.

Рисунок 7-19.  Задержка Распространения Полно Скоростных Дифференциальных Сигналов в Концентраторе

Задержка распространения низко скоростных дифференциальных сигналов измеряется в том же самом режиме что и при полно скоростной передачи сигналов. Максимальная низко скоростная задержка концентратора составляет 300 нс. Здесь учитывается задержку распространения более медленного низко скоростного буфера и повышение и понижение времен.

Когда концентратор работает как повторитель, он должно воспроизвести полученный сигнал точно такой же на своих выводах. Это означает, что для дифференциальных сигналов, задержки распространения переход от J к K состоянию должны быть примерно равны задержкам перехода от K к J состоянию. Максимальное различие, допускаемое между этими двумя задержками (как измерено на  Рисунок 7-19) для концентратора и кабеля составляет ±3.0 нс. Точно так же различие в задержке между любыми двумя от J к K или от K к J переходам через концентратор должно быть меньше чем ±1.0 нс.

Исключение в этом случаю - это перекос, который может быть внесен при переходе в SOP от состояния idle к состоянию K (обратитесь к Разделу  7.1.4.2).(An exception to this case is the skew that can be introduced in the SOP idle to K state transition). В этом случае, в задержку к противоположному порту включается время, дающее возможность выходному буферу.(In this case, the delay to the opposite port includes the time to enable the output buffer.)  Однако, задержки должны быть близко согласованы с нормальной задержкой концентратора, и максимальное дополнительное различие задержки от нормального перехода от J к K составляет от -3.0 нс до +5.0 нс. Это ограничивает максимальное искажение первого бита в пакете.  ( Обратите внимание: Это искажение перехода SOP влияет на следующий перехода от K к J состоянию, и первый бит поля sync не должен использоваться для синхронизации приемника к потоку данных.)


EOP должен распространяться через концентратор таким же образом как дифференциальная передача сигналов. Задержка распространения при восприятии SE0 должна быть не меньше чем наибольшая задержка перехода от J к K или от K к J дифференциальных данных (чтобы избежать усечения последнего информационного бита в пакете) но не, большей 15 нс чем наибольшая дифференциальная задержка в полно скоростном и 200 нс в низко скоростном режиме(чтобы предотвратить ошибочное вставление бита в конец пакета). Задержки EOP показаны на Рисунок 7-20.

Так как смысловые уровни для состояния SE0 не в средней точке колебания сигнала, ширина состояния асимметричного 0 будет изменяться, поскольку оно проходит через каждый концентратор. (Since the sense levels for the SE0 state are not at the midpoint of the signal swing, the width of the single-ended 0 state will be changed as it passes through each hub.) Концентратор не может изменить длину полно скоростного состояния асимметричные 0  больше чем (15 нс как по разному измеряются  задержки EOP- и EOP + (см. Рисунок 7-20).( A hub may not change the length of a full speed single-ended 0 state by more than ±15 ns as measured by the difference of the EOP- and EOP+ delays.) Асимметричный 0 из низко скоростного устройства имеют длинное повышение и понижение времен и подвержен большему перекосу, но эти условия существуют только на кабеле от низко скоростного устройства до порта, с которым оно соединено. С этого времени, при передачи сигналов используется полно скоростные буфера и их более быстрое повышение и понижение времени. Асимметричный 0 от низко скоростного устройства не может быть изменен больше чем ±300 нс, поскольку он проходит через концентратор, с которым соединено устройство. В этот раз учитывается некоторое создаваемое сигналом условие в низко скоростном порте, что уменьшает чувствительность до шума.( This time allows for some signal conditioning in the low speed port to reduce its sensitivity to noise.)



Рисунок 7-20.  Временные характеристики EOP


Временные/Электрические Характеристики Шины


Таблица 7-4.  Электрические Характеристики DC

Parameter

Symbol

Conditions (Notes 1,2)

Min.

Max.

Unit

Supply Voltage:

Powered (Host or Hub) Port

VBUS

4.75

5.25

V

Bus-powered Hub Port

VBUS

4.40

5.25

V

Supply Current:

Powered Host/Hub Port (out)

ICCPRT

500

mA

Bus-powered Hub Port (out)

ICCUPT

100

mA

High Power Function (in)

ICCHPF

500

mA

Low Power Function (in)

ICCLPF

100

mA

Unconfig. Function/Hub (in)

ICCINIT

100

mA

Suspended Device

ICCS

500

mA

Leakage Current:

Hi-Z State Data Line Leakage

ILO

0 V< VIN<3.3 V

-10

+10

mA

Input Levels:

Differential Input Sensitivity

VDI

|(D+)-(D-)|, и Рисунок 7-4

0.2

V

Differential Common Mode Range

VCM

Includes VDI  range

0.8

2.5

V

Single Ended Receiver Threshold

VSE

0.8

2.0

V

Output Levels:

Static Output Low

VOL

RL of 1.5 kW to 3.6 V

0.3

V

Static Output High

VOH

RL of 15 kW to GND

2.8

3.6

V

Capacitance:

Transceiver Capacitance

CIN

Pin to GND

20

pF

Downstream Hub Port Bypass Capacitance

CHPB

Vbus to GND   (tantalum)

120

mF

Root Port Bypass Capacitance

CRPB

Vbus to GND    Note 9

1.0

10.0

mF

Terminations:

Bus Pull-up Resistor on Root Port

RPU

(1.5 kW ± 5%)

1.425

1.575

kW

Bus Pull-down Resistor on Downstream Port

RPD

(15 kW ± 5%)

14.25

15.75

kW

Cable Impedance and Timing:

Cable Impedance (Full Speed)

ZO

(45 W ±15%)

38.75

51.75

W

Cable Delay (one way)

TCBL

Рисунок 7-21

30

ns

<
Таблица 7-5.  Электрические Характеристики Полно Скоростных Источников

Parameter

Symbol

Conditions (Notes 1,2,3)

Min.

Max.

Unit

Driver Characteristics:

Transition Time:

   Rise Time

   Fall Time

TR

TF

Note 5, 6 and Рисунок 7-16

CL =   50 pF

CL =   50 pF

4

4

20

20

ns

ns

Rise / Fall Time Matching

TRFM

(TR/TF)

90

110

%

Output Signal Crossover Voltage

VCRS

1.3

2.0

V

Driver Output Resistance

ZDRV

Steady State Drive

28

43

W

Data Source Timings:

Full Speed Data Rate

TDRATE

Ave. Bit Rate

(12 Mb/s ± 0.25%)

11.97

12.03

Mbs

Frame Interval

TFRAME

1.0 ms ± 0.05%

0.9995

1.0005

ms

Source Differential Driver Jitter

   To Next Transition

   For Paired Transitions

TDJ1

TDJ2

Note 7, 8 and Рисунок 7-29

-3.5

-4.0

3.5

4.0

ns

ns

Source EOP Width

TEOPT

Note 8 and Рисунок 7-30

160

175

ns

Differential to EOP transition Skew

TDEOP

Note 8 and Рисунок 7-30

-2

5

ns

Receiver Data Jitter Tolerance

   To Next Transition

   For Paired Transitions

TJR1

TJR2

Note 8 and Рисунок 7-31

-18.5

-9

18.5

9

ns

ns

EOP Width at receiver

   Must reject as EOP

   Must accept as EOP

TEOPR1

TEOPR2

Note 8 and Рисунок 7-30

40

82

ns

ns





Таблица 7-6. Электрические Характеристики Низко Скоростных Источников

Parameter

Symbol

Conditions (Notes 1,2,4)

Min.

Max.

Unit

Driver Characteristics:

Transition Time:

   Rise Time

   Fall Time

TR

TF

Note 5, 6 and Рисунок 7-16

CL =   50 pF

CL = 350 pF

CL =   50 pF

CL = 350 pF

75

75

300

300

ns

ns

ns

ns

Rise/Fall Time Matching

TRFM

(TR/TF)

80

120

%

Output Signal Crossover Voltage

VCRS

1.3

2.0

V

Data Source Timings:

Low Speed Data Rate

TDRATE

Ave. Bit Rate

(1.5 Mb/s ± 1.5%)

1.4775

1.5225

Mbs

Source Differential Driver Jitter

 Host (Downstream):

   To Next Transition

   For Paired Transitions

 Function (Upstream):

   To Next Transition

   For Paired Transitions

TDDJ1

TDDJ2

TUDJ1

TUDJ2

Note 7, 8 and Рисунок 7-29

-75

-45

-95

-150

75

45

95

150

ns

ns

ns

ns

Source EOP Width

TEOPT

Note 8 and Рисунок 7-30

1.25

1.50

ms

Differential to EOP transition Skew

TDEOP

Note 8 and Рисунок 7-30

-40

100

ns

Receiver Data Jitter Tolerance

 At Host (Upstream):

   To Next Transition

   For Paired Transitions

At Function (Downstream):

   To Next Transition

   For Paired Transitions

TUJR1

TUJR2

TDJR1

TDJR2

Note 8 and Рисунок 7-31

-152

-200

-75

-45

152

200

75

45

ns

ns

ns

ns

EOP Width at receiver

   Must reject as EOP

   Must accept

TEOPR1

TEOPR2

Note 8 and Рисунок 7-30

330

675

ns

ns

<






Таблица 7-7. Электрические Характеристики Концентратора/Повторителя

Parameter

Symbol

Conditions (Note 2)

Min.

Max.

Unit

Hub Characteristics

 (Full Speed):

Driver Characteristics

  (Refer to Таблица 7-5)

Root port and Downstream ports configured as Full Speed

Hub Differential Data Delay

    (with cable)

    (without cable)

THDD1

THDD2

Note 3, 7, 8

and Рисунок 7-32

70

40

ns

ns

Hub Differential Driver Jitter   (including cable)

   To Next Transition

   For Paired Transitions

THDJ1

THDJ2

Note 3, 7, 8

and Рисунок 7-32

-3

-1

3

1

ns

ns

Data bit width distortion after SOP

TSOP

Note 3, 8 and Рисунок 7-32

-5

3

Hub EOP Delay Relative to tHDD

TEOPD

Note 3, 8 and Рисунок 7-33

0

15

ns

Hub EOP Output Width Skew

THESK

Note 3, 8 and Рисунок 7-33

-15

15

ns

Hub Timings  (Low Speed):

Driver Characteristics

  (Refer to Таблица 7-6)

Downstream ports configured as Low Speed

Hub Differential Data Delay

TLHDD

Note 4, 7, 8

and Рисунок 7-32

300

ns

Hub Differential Driver Jitter    (including cable)

Downstream:

   To Next Transition

   For Paired Transitions

Upstream:

   To Next Transition

   For Paired Transitions

TLDHJ1

TLDHJ2

TLUHJ1

TLUHJ2

Note 4, 7, 8

and Рисунок 7-32

-45

-15

-45

-45

45

15

45

45

ns

ns

ns

ns

Data bit width distortion after SOP

TSOP

Note 4, 8 and Рисунок 7-32

-60

45

Hub EOP Delay Relative to tHDD

TLEOPD

Note 4, 8 and Рисунок 7-33

0

200

ns

Hub EOP Output Width Skew

TLHESK

Note 4, 8 and Рисунок 7-33

-300

+300

ns

<


Note 1:     All voltages measured from the local ground potential, unless otherwise specified.

Note 2:     All timings use a capacitive load (CL) to ground of 50 pF, unless otherwise specified.

Note 3:     Full Speed timings have a 1.5 kW pull-up to 2.8 V on the D+ data line.

Note 4:     Low Speed timings have a 1.5 kW pull-up to 2.8 V on the D- data line.

Note 5:     Measured from 10% to 90% of the data signal.

Note 6:     The rising and falling edges should be smoothly transitioning (monotonic).

Note 7:     Timing difference between the differential data signals.

Note 8:     Measured at crossover point of differential data signals.

Note 9:     The maximum load specification is the maximum effective capacitive load allowed that meets the target hub VBUS droop of 330 mV.






Время Оборота Шины


Хост и функция USB должны отслеживать, сколько времени прошло от момента, завершения посылки передатчиком пакета, до начала получения им пакета обратно. Это время упоминается как время оборота шины и замеряется таймером оборота шины путем передачи пакетов. Таймер запускается при изменении строба EOP с SE0 на IDLE и останавливается при обнаружении изменения с IDLE на K SOP. Устройство и хост должны иметь таймер оборота.  Время оборота шины устройства определяется как наибольшая задержка кругового пути плюс максимальная задержка ответа устройства (обратитесь к Разделу 7.1.14). Устройства USB не могут приостанавливаться ранее чем через 16 времен передачи бита после окончания предыдущего EOP, и они должны приостанавливаться через 18 времен передачи бита. Если хост хочет указывать возникновение ошибки с помощью приостановки, он должен ждать по крайней мере 18 времен передачи бита перед выдачей следующей маркера, для обеспечения, приостановки всех устройств лежащих ниже по иерархии.

Как показано на Рисунок 8-20, устройство использует свой таймер оборота шины между маркером и данными или данными и фазами квитирования. Хост использует свой таймер между фазами данных и квитированием или фазами данных и маркером.

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

Рисунок 8-20.   Использование Таймера  Оборота Шины



Время обращения/Межпакетная Задержка в Шине (Bus Turnaround Time/Interpacket Delay)


Новое устройство не может начать управлять шиной, пока предыдущее устройство не завершило последовательность EOP и не отключило драйверы. Это дает уверенность, что не будет позволено новому устройству управлять шиной, пока оно не обнаружит, что шина находится в состоянии J после SE0 в EOP по крайней мере в течении двух времен передачи бита. Эти минимальные два времени передачи бита относятся ко всем устройствам, включая передачи пакета хоста туда и обратно.(This minimum of two bit times applies to all devices, including back to back host packet transmissions.) 

Если функция, как ожидается, пошлет ответ на передачу хоста, ответ должен быть замечен на upstream конце кабеля внутри 7.5 времен передачи бита, возвращением  шины в состояние J после EOP как замечено на upstream конце кабеля.(If a function is expected to provide a response to a host transmission, the response must  be seen on the upstream end of the cable within 7.5 bit times of the bus returning to the J state after the EOP as seen on the upstream end of its cable.) Максимальное время обращения к шине для функции или концентратора не включая кабель - 6.5 времен передачи бита.  (The maximum bus turnaround time for a function or hub without an integrated cable is 6.5 bit times.) Это максимальное время обращения к шине не допускает прерывание приема данных полно скоростным агентом после 16 времен передачи бита на ответ в максимальной глубине топологии (обратитесь к Разделу 7.1.16).(This maximum bus turnaround time prevents a full speed receiving agent from timing out after 16 bit times on a response in a maximum depth topology). Однако, эти времена относятся, и к полно скоростным и низко скоростным устройствам.

Максимальная задержка хостом ответа, на пакет данных посланный функцией (если квитирование требуется), составляет 7.5 времен передачи бита, измеряемые на штырьках порта хоста.(The maximum delay a host has to respond to a data packet sent by a function (if a handshake is required) is 7.5 bit times, measured at the host’s port pins.) Нет никакой максимальной задержки между пакетами в отдельных транзакциях.



Вставка бит


Чтобы гарантировать правильные переходы сигнала, вставка бит использована передающим устройством при посылки пакета в USB (см. Рисунок 7-13 и Рисунок 7-14). 0 вставляется, после каждых шести последовательно идущих 1 в потоке данных прежде, чем данные закодированы NRZI , чтобы вынудить переход в потоке данных NRZI. Это дает приемнику логический переход данных по крайней мере, каждые семь времен передачи бита, что гарантирует прикрепление данных и синхроимпульсов.(This gives the receiver logic a data transition at least once every seven bit times to guarantee the data and clock lock.) Приемник должен декодировать NRZI данные, распознавать заполненные биты, и отбрасывать их. Вставка бит разрешена, начиная с Sync Шаблона и в течение всей передачи. "Единица" в данных, которая заканчивает Шаблон Sync,  считается первой в последовательности данных. (The data “one” that ends the Sync Pattern is counted as the first one in a sequence.) Вставка бит осуществляется всегда, без исключения. Если по правилам требуется вставка бита, нулевой бит будет вставлен, даже если это - последний бит, т.е. бит перед сигналом конец-пакета (EOP).

Рисунок 7-13.  Вставка бит

Рисунок 7-14.  Блок-схема Вставки бита



Выборочное Подвешивание


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

Любое устройство не-концентратор может быть приостановлено таким образом. Любой концентратор, не входящий в группу остающихся устройств соединяющихся с хостом также может быть приостановлен, отключением порта, к которому он присоединен. Устройства, которые выборочно приостановлены, могут все еще предупредить систему передачей сигналов удаленного пробуждения, хотя процесс немного различен. Описание подвешенного состояния порта может быть найдено в Разделе 11.2.3, и выборочное подвешивание описано далее в Разделе 11.5.2.



Выборочное Подвешивание и Возобновление


Выборочный подвешенное и возобновление обеспечивается переводом одного устройства или сегмента шины в состояние с малой мощностью. Выборочное подвешивание полагается на способность концентратора, выборочно подвесить индивидуальные порты через запрос SetPortFeature (PORT_SUSPEND), который помещает порт на концентраторе (упоминаемый как заблокированный концентратором) в подвешенное состояние(см. Рисунок 11-4 и Рисунок 11-5 с диаграммами состояний). В suspend состоянии порт предотвращен от распространения любых действий шины (за исключением запроса сброса порта) вниз по иерархии, и порт может только отражать вверх по иерархии изменения состояния шины через биты состояния концентратора; то есть, активный концентратор не может распространять трафик вверх по иерархии от приостановленного порта до корневого порта. Концентратор должен также обеспечить, чтобы порт, к которому обращаются через запрос подвешивания порта не был подвешен в середине транзакции пакета. В ответ на подвешивание порта, все устройства находящиеся ниже по иерархии связанные с портом переходят в подвешивание после не видения действий шины в течении 3.0 мс, в то время как шина находилась в состоянии idle. Запрос подвешивания порта понимается только активным концентратором. Если хост хочет посылать запрос к приостановленному концентратору, он должен сначала пробудить концентратор и затем выдавать желаемый запрос.



Выборочное Возобновление на Активном Концентраторе(Selective Resume to an Awake Hub)


На Рисунок 11-13 показаны сигналы между устройством и активным концентратором (Концентратор Y). Если порт концентратора выборочно приостановлен, и концентратор находится в активном состоянии, то концентратор должен предотвратить любое действие шины на приостановленном порте, чтобы это не отразилось на других неблокированных портах концентратора, поскольку эти порты могут транспортировать трафик шины. Кроме того, возобновление на Порте B не должно распространиться к другим приостановленным портам (например на Порт C). Сплошная линия представляет предел распространения сигнала возобновления, который останавливается в Порте B Концентратора Y. Сигнал возобновления может происходить или от запроса хоста к непосредственно заново разблокированному(re-enadle) порту концентратора (возобновление вниз по иерархии) или из устройства на приостановленном сегменте шины (возобновление вверх по иерархии ).

Рисунок 11-13.  Сигнал Выборочного Возобновления на Активном Концентраторе

Возобновление вверх по иерархии может быть вызвано переходом шины на приостановленном порте от idle к возобновлению (возобновление работы устройства), от idle к SE0 (отсоединением устройства) или от SE0 к idle (присоединением устройства). Концентратор Y, по Порту B должен отразить состояние возобновления в пределах 50 mс после получения возобновления, сообщая  удаленно пробуждаемому устройству (Устройство B), что было обнаружено возобновление. Если переход на Порте B был не от idle к возобновлению (J к K), Порт B не отражает никакой сигнал вниз по иерархии, но продолжает поддерживать буферы вывода в состоянии Hi-Z. В этом последнем случае скрываются события соединения и разъединения.

Получение сигнала возобновления Портом B Концентратора Y заставляет происходить следующую последовательность событий.

1.       Концентратор Y, Порт B отражает сигнал возобновления вниз по иерархии в течении 50 mс от обнаружения возобновления.

2.       Концентратор Y поддерживает сигнал возобновления вниз по иерархии по крайней мере 20 мс.


3.       В конце 20 мс, концентратор завершает возобновление с низко скоростным EOP (В это время через порт начинает передаваться трафик вниз по иерархии.)

4.       По прошествию 3.0 мс после конца EOP, устанавливается прерывание в контроллере концентратора.

Концентратор ответственен за поддержание всех временных параметров  возобновления. Хосту не нужно следит за любым временем и он может опрашивать концентратор через запрос GetPortStatus для определения, что произошло событие возобновления. Так как концентратор обрабатывает выборочные возобновления автономно, хост не будет напрямую получать сигнал в случае выборочного возобновления, которое исходит не от хоста. Это необходимо хосту, чтобы опросить лежащие ниже по иерархии концентраторы (как часть опроса состояния) для определения, что завершено выборочное событие возобновления. Задержка в 3.0 мс между концом сигнала возобновления и установкой бита прерывания гарантирует, что не произойдет никакой трафик пакета с недавно возобновленного устройства, пока недавно возобновленные устройства не имели время, для синхронизации своих таймеров кадра с SOF; однако, устройства лежащие ниже по иерархии будут видеть трафик и маркеры SOF, не специально адресованные им. Когда возобновление вызвано устройством лежащим ниже по иерархии,  хост опрашивается в течение конца выборочного возобновления как часть опроса состояния. Концентратор должен также обеспечить, чтобы порт не был разблокирован(re-enabled) в середине транзакции пакета.

Выборочное возобновление вниз по иерархии может также быть вызвано с помощью запроса ClearPortFeature (PORT_SUSPEND); Этот запрос заставляет заблокированный порт выдавать сигнал возобновления на шину  по крайней мере 20 мс, сопровождая его низко скоростным EOP. Как при устройстве вызвавшем возобновление, бит прерывания в контроллере концентратора, сигнализирующий конец возобновления, не должен быть установлен в течении 3.0 мс после конца низко скоростного EOP. Хост должен опросить бит прерывания концентратора для определения, когда завершилось возобновление.  Таблица 11-7 подводит итог поведения активного концентратора в присутствии возникновения сигнала возобновления исходящего от нижних уровней иерархии.



Таблица 11-7.  Поведение Активного Концентратора в Течении Возобновления

Состояние Порта и Тип Сигнала

Ответ Вызвавшего Возобновление Порта

 Ответ Соседнего Разблокированного Порта

Ответ Соседнего Заблокированного Порта

Ответ Соседнего Подвешенного Порта

Порт Приостановлен, получено возобновление (K)

Отражает K вниз по иерархии от вызвавшего порта. Вызывается пробуждение порта. Устанавливаются биты состояния и прерывания.

Ничего не делать

Ничего не делать

Ничего не делать

Порт разблокирован, заблокирован или приостановлен и получено разъединение

Устанавливается разъединение, блокирование порта и изменяются биты состояния. Устанавливается прерывание.

Ничего не делать

Ничего не делать

Ничего не делать

Порт Заблокирован и получено соединение

Устанавливается соединение порта, и изменяются биты состояния. Устанавливается прерывание.

Ничего не делать

Ничего не делать

Ничего не делать


Выборочное Возобновление в Подвешенном Концентраторе


Это возможно для хоста, чтобы подвесить порт концентратора и затем подвесить весь концентратор. В этом случае, изменяется связь концентратора, если только концентратор вводит suspend состояние. (It is possible for the host to suspend a hub port and then suspend the entire hub.  In this case, the hub’s connectivity changes once the hub enters the suspended state.) Рисунок 11-14 иллюстрирует инициализацию связи устройства для подвешенных портов на подвешенном концентраторе. Устройство B может выдавать сигналы, соединения, разъединения, или возобновления на Порт B Концентратора Y. В ответе, Концентратор Y должен преобразовать этот сигнал в (J к K) переход, независимо от того, что устройство B посылает сигнал вверх по иерархии. Концентратор выдает состояние возобновления на корневой порт и на другие неблокированные downstream порты (Порт A). Концентратор Y должен вводить в Порте B возобновленное состояние , если Устройство B перевело шину в возобновленное состояние. Если Порт B обнаруживает событие соединения или разъединения, концентратор не выдает сигнал возобновления порта вниз по иерархии, но поддерживает буферы вывода порта в состоянии Hi-Z.(If Port B detects a connect or disconnect event, the hub does not drive a resume downstream to the signaling port, but maintains the  port’s output buffers in the Hi-Z state.)

Рисунок 11-14.  Вызванное Устройством Возобновление для Подвешенного Концентратора

Таблица 11-8.   Поведение Подвешенного Концентратора в Течении Возобновления

Состояние Порта и Тип Сигнала

Ответ Вызвавшего Возобновление Порта

 Ответ Соседнего Разблокированного Порта

Ответ Соседнего Заблокированного Порта

Ответ Соседнего Подвешенного Порта

Порт не блокирован, получено возобновление (K)

Отражается возобновление вверх и вниз по иерархии. Биты состояния не устанавливаются

Сигнал возобновляет передачу вниз по иерархии

Ничего не делать

Ничего не делать

Порт заблокирован , получено возобновление (K)

Ничего не делать

Ничего не делать

Ничего не делать

Ничего не делать

Порт Подвешен, получено возобновление (K)

Отражается K вверх по иерархии по корневому порту и вниз по иерархии по вызвавшему порту

Signal resume downstream

Ничего не делать

Ничего не делать

Порт не блокирован, заблокирован или подвешен и получено разъединение

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

Signal resume downstream

Ничего не делать

Ничего не делать

Порт заблокирован и получено соединение

Отражается возобновление вверх по иерархии. Начинается пробуждение концентратора. Устанавливаются биты состояния соединения порта и изменений, устанавливается прерывание

Signal resume downstream

Ничего не делать

Ничего не делать

<
Вызванные хостом сигналы для подвешенных концентраторов,  показаны на Рисунок 11-15.  Пробуждение устройства на нижней строке подвешенных концентраторов - это много шаговая процедура, которая описана ниже.

1.       Хост выводит Порт B Концентратора X из подвешивания, выдавая запрос возобновления порта на концентратор. В ответ на запрос возобновления, Концентратор X инициализирует сигнал возобновления, вводя по крайней мере 20 мс сигнал K, за которым следует низко скоростной EOP выдаваемый по Порт B.( followed by a low speed EOP out its Port B.)  Концентратор Y видит сигнал возобновления и начинает процесс пробуждения. EOP указывает, что последовательность возобновления завершена. В 3.0 мс от EOP выданного Концентратором X, устанавливается бит состояния завершения возобновления в контроллере Концентратора X, указывая, что последовательность возобновления завершена. В конце этой стадии порт B Концентратора X  находится в неблокированном состоянии, и Концентратор Y активен.

2.       Следующий шаг перевод Порта B Концентратора Y из состояния ожидания в неблокированное состояние. Процедура идентична описанному в предыдущем шаге за исключением того, что запрос выдан к Порт B Концентратора Y, вместо Концентратора X.  В конце этого шага, Порт B Концентратора Y не блокирован, и устройство B получило сигнал возобновления и активно. В это время хост может связываться с Устройством B. Эта стратегия возобновления разрешает шине быть последовательно подвешенной при разрешении любому устройству на подвешенном сегменте активизировать шину. Она также разрешает вложенным концентраторам активизироваться на одном уровне одновременно.(It also permits nested hubs to be awakened one tier at a time.)



Рисунок 11-15.  Вызываемое Хостом Возобновление Через Подвешенные Концентраторы


Вычисление Размеров Буфера в Функциях / Программном Обеспечении


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

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

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



Вычисление Времен Транзакции Шины (Calculating Bus Transaction Times)


Когда программное обеспечение системы USB позволяет создавать новый канал шины, необходимо вычислить, сколько времени шины потребуется для данной транзакции. Это время шины основывается на сообщенных максимальных размерах пакета информации, для конечной точки, непроизводительных затратах протокола запроса специфического типа транзакции, непроизводительных затратах из-за передачи сигналов с наложением вставляемых бит, запросов меж-пакетного распределения времени в соответствии с протоколом, распределение времени между транзакциями, и т.д.(That bus time is based on the maximum packet size information reported for an endpoint, the protocol overhead for the specific transaction type request, the overhead due to signaling imposed bit-stuffing, inter-packet timings required by the protocol, inter?transaction timings, etc.) Эти вычисления требуются, чтобы гарантировать, что доступное время в кадре не будет превышено. Следующие уравнения, используются, чтобы определить время транзакции шины:

KEY

Data_bc                             Счетчик байтов полезной нагрузки данных

Host_Delay                       Время, требуемое хосту, чтобы подготовиться к или оправиться от передачи; специфическая реализация хост контроллера

Floor()                                Целая часть параметра

Hub_LS_Setup                Время, предоставленное хост контроллером концентраторам, для предоставления возможности низко скоростным портам; Измерена как задержка от конца PRE PID до началу низко скоростного SYNC; минимум 4 времени полно скоростных передачи бита.(The time provided by the host controller for hubs to enable low speed ports;  Measured as the delay from end of PRE PID to start of low speed SYNC; minimum of 4 full speed bit times.)

BitStuffTime                      Функция, которая вычисляет теоретическое дополнительное время, требуемое из-за вставки битов в передаче сигналов; самый плохой случай(1.1667*8*Data_bc)

Полно скоростной (Вход)

          Не-изохронная Передача (Включая Квитирование)


           = 9107 + (83.54 * Floor(3.167 + BitStuffTime(Data_bc))) + Host_Delay

          Изохронная Передача (Без Квитирования)

           = 7268 + (83.54 * Floor(3.167 + BitStuffTime(Data_bc))) + Host_Delay

Полно скоростной (Выход)

          Не-изохронная Передача (Включая Квитирование)

           = 9107 + (83.54 * Floor(3.167 + BitStuffTime(Data_bc))) + Host_Delay

          Изохронная Передача (Без Квитирования)

           = 6265 + (83.54 * Floor(3.167 + BitStuffTime(Data_bc))) + Host_Delay

Низко скоростной (Вход)

 = 64060 + (2 * Hub_LS_Setup) +

(676.67 * Floor(3.167 + BitStuffTime(Data_bc))) + Host_Delay

Низко скоростной (Выход)

 = 64107 + (2 * Hub_LS_Setup) +

(667.0 * Floor(3.167 + BitStuffTime(Data_bc))) + Host_Delay

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

Фактическое время шины, полученное для данной транзакции будет почти всегда меньше чем расчетное поскольку непроизводительные затраты вставки бита зависят от данных.  Самый плохой случай вставки бита вычислен как 1.1667 разы,  необработанное время(1.1667 times the raw time) (то есть, в уравнениях  в функции BitStuffTime Data_bc умножается на 8*1.1667). Это означает, что будет почти всегда иметься время, неиспользуемое на шине (подлежащее специальным шаблонам данных) в конце концов регулярно планируемые транзакции завершаться.(This means that there will almost always be time unused on the bus (subject to data pattern specifics) after all regularly scheduled transactions have completed.) Помещая все транзакции bulk/управления в конец кадра, время вставки бит может быть вычислено как меньшее чем в самом плохом случае. Это более агрессивное вычисление приходит ценой наличия некоторых сбойных транзакций в передачах bulk/управления в данном кадре появляющихся время от времени из-за превышения кадра времени, когда достаточно предыдущих транзакций, потребуется самый плохой случая вставки бита. (This more aggressive calculation comes at the cost of having some bulk/control transfer’s transaction fail in a given frame every once in a while due to exceeding the frame time when enough of the previous transactions require worst case bit stuffing.) Сбойная транзакция может быть повторена,это будет редко случаться в текущих произвольных шаблонах  данных, и может приводить к лучшей оценке распределения времени для передач изохронных и прерываний.(The failed transaction can be retried, will seldom happen given random data patterns, and can result in a better allocation estimate for isochronous and interrupt transfer times.) В любом случае, время шина выделенное в следствии меньшего количества вставок битов может многократно использоваться как обсуждено в Разделе 5.9.5.

Термин Host_Delay в уравнениях зависит от хост контроллера и системы и учитывает дополнительное время, которое может потребоваться хост контроллеру из-за задержек в получении доступа к памяти или других зависящих от реализации проблем. (The Host_Delay term in the equations is host controller and system dependent and allows for additional time a host controller may require due to delays in gaining access to memory or other implementation dependencies.) Этот термин включен в реализацию этих уравнений,  используя функции Ограничение на Управление Передачей, обеспеченные интерфейсом HCD (This term is incorporated into an implementation of these equations by using the Transfer Constraint Management functions provided by the HCD interface.) Эти уравнения это типичная реализация комбинации программного обеспечения USBD и HCD, работающих вместе. Результаты этих вычислений используются, чтобы определить, может ли передача или создаваемый канала поддерживаться в данной конфигурации USB.


Высоко мощные подключенные к шине функции 


Функция определена как высоко мощная, если при полном включении она потребляет более одной и максимум пяти модульных нагрузок из кабеля USB. Высоко мощная функция требует организации переключения мощности.  Сначала необходимо в уменьшить мощность до состояния меньшее чем одной модульной нагрузки. В перечне времени шины, общие требования по мощности получены и сравниваются с доступным запасом мощности. Если существует достаточно мощности в запасе мощности, остаток от функции может быть подключен. Если недостаточно доступной мощности, остаток от функции не подключается, и посылается клиенту предупреждающее сообщение об ограничении на мощность. Высоко мощная функция показана на Рисунке 7-26. Электроника функции была разбита на разделы в два раздела; контроллер функции содержащий минимальное количество схем, необходимой разрешить переномерование и планирование мощности. Остаток от функции постоянно находится в  блоке функции.  Высоко мощные функции должны быть способны к работе при мало мощном (одна модульная нагрузка) режиме со входным напряжением таким низким как 4.40 V, так, чтобы она работала даже когда подключена к питающемуся от шины концентратору.  Они должны также быть способны к работе в полной мощности (до пяти модульных нагрузок) со входным Vbus напряжением 4.75 V, измеряемого на upstream разъеме конца кабеля.

Рисунок 7-26.  Высоко Мощная, Питающаяся от Шины Функция



Взаимосвязь Клиентского Программного Обеспечения и Функций


Даже при том, что физическая и логическая топологии USB отражают общедоступнный характер(shared nature) шины, клиентское программное обеспечение (КПО) управляющее интерфейсом функции USB видит только тот интерфейс(ы), который представляет для него интерес. Клиентское программное обеспечение функций USB должно использовать программного обеспечения програмных интерфейсов USB, чтобы управлять своими функциями, в противоположность непосредственному управлению своими функциями через память или доступ Ввода-Вывода как в других шинах (например, PCI, EISA, PCMCIA, и т.д.)(Client software for USB functions must use USB software programming interfaces to manipulate their functions as opposed to directly manipulating their functions via memory or I/O accesses as with other buses). В течение операции, клиентское программное обеспечение должно быть независимым от других устройств, которые могут быть подсоединены к USB. Это позволяет проектировщику устройства и клиентского программного обеспечения сосредотачиваться на подробностях проекта взаимодействия аппаратных средств / программного обеспечения. Рисунок 5-7 иллюстрирует вид проектировщика устройства на взаимодействие клиентского программного обеспечения и функций USB в отношении логической топологии USB изображенной на Рисунке 5-6

 

Рисунок 5-7. Взаимосвязь Клиентского Программного Обеспечения и Функций



WIndex


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



WLength


Это поле определяет длину данных, перемещенных в течение второй фаза передачи управления. Направление передачи данных (от хоста на устройство или от устройства на хост) отражено в бите Направления поля bRequestType. Если это поле - нуль, нет фаз передачи данных.



WValue


Содержание этого поля изменяется согласно запросу. Оно используется, чтобы передать параметр специфическому устройству  при запросе.(It is used to pass a parameter to the device specific to the request.)



Задержка в Кабеле


Одновременно допустим только один переход данных в кабеле USB. Полно скоростной край сигнала должен произойти, распространиться к далекому концу кабеля, возвратиться, и уложиться внутри одного времени передачи полно скоростного бита.(A full speed signal edge has to transition, propagate to the far end of the cable, return, and settle within one full speed bit time.) Следовательно, максимально разрешенная задержка в кабеле 30 нс. Независимо от скорости в кабеле, максимальная длина кабеля - 5.0 метров для полно скоростных устройств и 3.0 метра для низко скоростных устройств Максимальная односторонняя задержка данных на кабеле измеряется как показано  Рисунок 7-21.

Рисунок 7-21. Задержка в Кабеле



Задержки Повышения Мощности и Сброса (Power Bringup and Reset Delays)


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

Рисунок 11-16 показывает случай, где устройство соединено с концентратором на порт которого подана мощностью. Имеются две задержки, которые должны быть учтены. Dt1 - время, требуемое для переключение порта концентратора, к рабочему состоянию. Dt2 - время, требуемое для стабилизации внутренней мощности устройства.( Dt2 is the time required for the device’s internal power rail to stabilize.) Если устройство было подключено в порт не-переключающийся или уже переключенный, то необходимо рассмотреть только Dt2. Dt1 - функция типа переключателя порта концентратора, и этот параметр может считаться командой контроллера концентратора.( Dt1 is a function of the type of hub port switch, and this parameter may be read via a hub controller command.) Dt2 должен быть меньше чем 100 мс во всех реализациях концентратора и устройства. Необходимо определить верхнее ограничение для самого плохого случая Dt2, так как оно определяется устройством и не может быть сообщено, пока не будет подано питание и не завершится последовательность сброса.

Рисунок 11-16.  Времена включения питания

As Рисунок 11-16 показывает, что возможно обнаружить присоединение устройства прежде, чем стабилизируется внутренняя мощность. Нужно гарантировать минимум 10 мс, в течение которых стабилизируется внутренняя мощность и будет утвержден сброс(reset is asserted). Следовательно, сброс не может быть утвержден немедленно после того, как устройство присоединено, но необходимо подождать истечения Dt2. Если концентратор осуществляет переключение мощности, должно истечь Dt1 + Dt2 , прежде, чем будет применен сброс.

Устройства USB должны включать мощность на так, чтобы они не управляли D+ или D- (за исключением с присоединенных к питанию резисторов) в течение процесса сброса. Это требуется для того, чтобы лежащий выше по иерархии концентратор смог управлять сбросом вниз по иерархии и быть уверенным, что лежащее ниже в иерархии устройство будет видеть сигнал сброса.



Запас Снижения Напряжения Voltage Drop Budget


Запас снижения напряжения определяется из:

Напряжение, обеспеченное хостом или включенными портами концентратора  4.75 V - 5.25 V.

Питающиеся от шины концентраторы могут иметь максимальное снижение 350 мВ в своих кабельных разъемах, где они присоединяются к источнику мощности на своих выходных коннекторах порта, где они обеспечивают источник мощности.(Bus-powered hubs can have a maximum drop of 350 mV from their cable plug where they attach to a source of power to their output port connectors where they supply a source of power.)

Все концентраторы и функции должны быть способны предоставить информацию о конфигурации при напряжением в 4.40 В на концах коннекторов своих кабелей upstream. Только мало мощные функции должны быть способными быть полностью работоспособны при этом минимальном напряжении.

Функции, потребляющие более чем одну модульную нагрузку должны эксплуатировать с минимальным входным напряжением 4.75 В на концах коннекторов своих upstream кабелей.

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

Рисунок 7-28.  Самый плохой Случая Топологии Снижения Напряжения

Эти требования устанавливают строгие ограничения на кабель и коннектор IR снижения (обратитесь к Разделу 6.4) и снижениям переключателя порта. Однако, они должны быть достижимы при существующих технологиях за приемлемую стоимость.



Запросы


Все запросы относящиеся к классу должны быть определены.



Запросы определенные классом


Класс концентратора определяет запросы, на которые должны отвечать все концентраторы.

Таблица 11-11.  Запросы Класса Концентратора

Запрос

bmRequestType

bRequest

wValue

wIndex

wLength

Данные

ClearHubFeature

00100000B

CLEAR_ FEATURE

Селектор Возможности

Нуль

Нуль

Нет

ClearPortFeature

00100011B

CLEAR_ FEATURE

Селектор Возможности

Порт

Нуль

Нет

GetBusState

10100011B

get_ state

Нуль

Порт

Один

Состояние Порта Шины

GetHubDescriptor

10100000B

get_DESCRIPTOR

Тип и Индекс Дескриптора

Нуль или языковой ID

Длина Дескриптора

Дескриптор

GetHubStatus

10100000B

GET_ STATUS

Нуль

Нуль

Четыре

Индикаторы Состояния Концентратора и Изменений

GetPortStatus

10100011B

GET_ STATUS

Нуль

Порт

Четыре

Индикаторы Состояния Порт и Изменений

SetHubDescriptor

00100000B

SET_DESCRIPTOR

Тип и Индекс Дескриптора

Нуль или языковой ID

Длина Дескриптора

Дескриптор

SetHubFeature

00100000B

set_ feature

Селектор Возможности

Нуль

Нуль

Нет

SetPortFeature

00100011B

set_ feature

Селектор Возможности

Порт

Нуль

Нет

Таблица 11-12.  Коды Запроса Класса Концентратора

bRequest

Значение

get_ status

0

clear_ feature

1

get_state

2

set_ feature

3

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

4-5

get_descriptor

6

set_descriptor

7

Следующее селекторы возможности допустимы для класса концентратора. См. GetHubStatus и GetPortStatus для описания возможностей.

Таблица 11-13.  Селекторы Возможности Класса Концентратора

 

Получатель

Значение

c_hub_local_power

Концентратор

0

c_hub_over_current

Концентратор

1

port_connection

Порт

0

port_enable

Порт

1

port_suspend

Порт

2

port_over_current

Порт

3

port_reset

Порт

4

port_power

Порт

8

port_low_speed

Порт

9

c_port_connection

Порт

16

c_port_enable

Порт

17

c_port_suspend

Порт

18

c_port_over_current

Порт

19

c_port_reset

Порт

20



Запросы Стандартного Устройства


Этот раздел описывает запросы стандартного устройства, определенные для всех устройств USB (обратитесь к Таблице 9-2).

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

Таблица 9-2. Запросы Стандартного Устройства

bmRequestType

bRequest

wValue

wIndex

wLength

Данные

00000000B

00000001B

00000010B

CLEAR_FEATURE

Выбор Возможностей

Нуль

Интерфейс

Конечная точка

Нуль

Нет

10000000B

GET_CONFIGURATION

Нуль

Нуль

Один

Значение Конфигурации

10000000B

GET_DESCRIPTOR

Тип Дескриптора и Индекс Дескриптора

Нуль или Языковой ID

Длина Дескриптора

Дескриптор

10000001B

GET_INTERFACE

Нуль

Интерфейс

Один

Альтернативный Интерфейс

10000000B

10000001B

10000010B

GET_STATUS

Нуль

Нуль

Интерфейс

Конечная точка

Два

Состояние Устройства, Интерфейса, или Конечной точки

00000000B

SET_ADDRESS

Адрес Устройства

Нуль

Нуль

Нет

00000000B

SET_CONFIGURATION

Значение Конфигурации

Нуль

Нуль

Нет

00000000B

SET_DESCRIPTOR

Тип Дескриптора и Индекс Дескриптора

Нуль или Языковой ID

Длина Дескриптора

Дескриптор

00000000B

00000001B

00000010B

SET_FEATURE

Выбор Возможностей

Нуль

Интерфейс

Конечная точка

Нуль

Нет

00000001B

SET_INTERFACE

Альтернативная Установка

Интерфейс

Нуль

Нет

10000010B

synch_frame

Нуль

Конечная точка

Два

Номер Кадра


Таблица 9-3.  Стандартные Коды Запроса

bRequest

Значение

GET_STATUS

0

CLEAR_FEATURE

1

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

2

SET_FEATURE

3

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

4

SET_ADDRESS

5

GET_DESCRIPTOR

6

SET_DESCRIPTOR

7

GET_CONFIGURATION

8

SET_CONFIGURATION

9

GET_INTERFACE

10

SET_INTERFACE

11

synch_frame

12

<
Таблица 9-4.  Типы Дескриптора

Типы Дескриптора

Значение

DEVICE

1

CONFIGURATION

2

STRING

3

INTERFACE

4

ENDPOINT

5

Выбор возможностей используются при разблокировании или установки возможностей, типа удаленного пробуждения, специфики устройства, интерфейса или конечной точки (Feature selectors are used when enabling or setting features, such as remote wakeup, specific to a device, interface or endpoint.)  Значения для выбора возможностей представлены ниже.

Выбор возможностей

Получатель

Значение

device_remote_wakeup

Устройство

1

endpoint_stall

Конечная точка

0

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


Запросы Устройства USB


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

Смещение

Поле

Размер

Значение

Описание

0

bmRequestType

1

Растр

(Bit-map)

Характеристики запроса

D7           Данные о направлении  xfer

               

0 = От хоста к устройству

               

1 = От устройства к хосту

D6..5      Тип

               

0 = Стандарт

               

1 = Класс

               

2 = Продавец

               

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

D4..0      Получатель

               

0 = Устройство

               

1 = Интерфейс

               

2 = Конечная точка

               

3 = Другой

               

4..31 = Зарезервированы

1

bRequest

1

Значение

Специфический запрос (обратитесь к Таблице 9-2)

2

wValue

2

Значение

Поле размером в слово, которое изменяется согласно запросу

4

wIndex

2

Индекс или Смещение

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

6

wLength

2

Значение Счетчика

Число передаваемых байтов, если имеются фазы данных



Звуковая Связываемость


Когда вышеупомянутое действие применяется к звуковым потокам данных, процесс адаптации скорости заменен преобразованием скорости выборки, которое является специализированной формой адаптации скорости. Вместо управления при ошибке(Instead of error control), используется некоторая форма интерполяции выборки , чтобы согласовать входящие и исходящие скорости выборки. В зависимости от используемых методов интерполяции, звуковое качество (искажение, отношение сигнал/шум, и т.д.) преобразования может значительно изменяться. Обычно, более высокое качество требует больших затрат мощности.