Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
ВМиС / ВМиС / Лекции для студентов.docx
Скачиваний:
175
Добавлен:
24.02.2016
Размер:
790.23 Кб
Скачать

Интерфейс usb, типы передачи, режимы передачи usb-кадра.

Шина USB USB (Universal Serial Bus — универсальная последовательная шина) является промышленным стандартом расширения архитектуры PC, ориентированным на интеграцию с телефонией и устройствами бытовой электроники. Версия 1.0 была опубликована в январе 1996 года. Архитектура USB определяется следующими критериями: * Легко реализуемое расширение периферии PC. * Дешевое решение, поддерживающее скорость передачи до 12 Мбит/с. * Полная поддержка в реальном времени передачи аудио-и (сжатых) видеоданных. * Гибкость протокола смешанной передачи изохронных данных и асинхронных сообщений. * Интеграция с выпускаемыми устройствами. ^ Доступность в PC всех конфигураций и размеров. * Обеспечение стандартного интерфейса, способного быстро завоевать рынок. * Создание новых классов устройств, расширяющих PC. С точки зрения конечного пользователя, привлекательны следующие черты USB: ^ Простота кабельной системы и подключений. * Скрытие подробностей электрического подключения отконечного пользователя.  *Самоидентифицирующиеся ПУ, автоматическая связьустройств с драйверами и конфигурирование.  * Возможность динамического подключения и конфигури-рования ПУ.  С середины 1996 года выпускаются PC со встроенным кон-троллером USB, реализуемым чипсетом. Ожидается появ-ление модемов, клавиатур, сканеров, динамиков и другихустройств ввода/вывода с поддержкой USB, а также мони-торов с USB-адаптерами - они будут играть роль хабов дляподключения других устройств.  7.1.1. Структура USB USB обеспечивает одновременный обмен данными междухост-компьютером и множеством периферийных устройств(ПУ). Распределение пропускной способности шины междуПУ планируется хостом и реализуется им с помощью по-сылки маркеров. Шина позволяет подключать, конфигури-ровать, использовать и отключать устройства во время ра-боты хоста и самих устройств.  Ниже приводится авторский вариант перевода терминовиз спецификации "Universal Serial Bus Specification. Revi-sion I.O.January 15, 1996", опубликованной Compaq, DEC,IBM, Intel, Microsoft, NEC и Northern Telecom. Более под-робную и оперативную информацию можно найти по ад-ресу: http://www.usb.org.  Устройства (Device) USB могут являться хабами, функция-ми или их комбинацией. ^ Хаб (Hub) обеспечивает дополни-тельные точки подключения устройств к шине. Функции(Function) USB предоставляют системе дополнительные воз-можности, например подключение к ISDN, цифровой джой-стик, акустические колонки с цифровым интерфейсом и т. п.Устройство USB должно иметь интерфейс USB, обеспечи-вающий полную поддержку протокола USB, выполнениестандартных операций (конфигурирование и сброс) и пре-доставление информации, описывающей устройство. Многие устройства, подключаемые к USB, имеют в своем соста-ве и хаб, и функции. Работой всей системы USB управляетхост-контроллер (Host Controller), являющийся программно-аппаратной подсистемой хост-компьютера.  ^ Физическое соединение устройств осуществляется по топо-логии многоярусной звезды. Центром каждой звезды явля-ется хаб, каждый кабельный сегмент соединяет две точки -хаб с другим хабом или с функцией. В системе имеется один(и только один) хост-контроллер,расположенный в верши-не пирамиды устройств и хабов. Хост-контроллер интегри-руется с корневым хабом (Root Hub), обеспечивающим однуили несколько точек подключения - портов. КонтроллерUSB, входящий в состав чипсетов, обычно имеет встроен-ный двухпортовый хаб. Логически устройство, подключен-ное к любому хабу USB и сконфигурированное (см. ниже),может рассматриваться как непосредственно подключенноек хост-контроллеру.  Функции представляют собой устройства, способные пере-давать или принимать данные или управляющую информа-цию по шине. Типично функции представляют собой отдель-ные ПУ с кабелем, подключаемым к порту хаба. Физическив одном корпусе может быть несколько функций со встро-енным хабом, обеспечивающим их подключение к одномупорту. Эти комбинированные устройства для хоста являют-ся хабами с постоянно подключенными устройствами-функ-циями.  Каждая функция предоставляет конфигурационную инфор-мацию, описывающую возможности ПУ и требования к ре-сурсам. Перед использованием функция должна быть скон-фигурирована хостом - ей должна быть выделена полоса вканале и выбраны опции конфигурации.  Примерами функций являются:  ^ Указатели - мышь, планшет, световое перо.^ Устройства ввода - клавиатура или сканер.  ^ Устройство вывода - принтер, звуковые колонки (циф-ровые).  т Телефонный адаптер ISDN.  Хаб - ключевой элемент системы РпР в архитектуре USB.Хаб является кабельным концентратором. Точки подключе-ния называются портамихаба. Каждый хаб преобразует однуточку подключения в их множество. Архитектура допускаетсоединение нескольких хабов.  У каждого хаба имеется один восходящий порт (UpstreamPort}, предназначенный для подключения к хосту или хабуверхнего уровня. Остальные порты являются нисходящими(Downstream Ports), предназначенными для подключенияфункций или хабов нижнего уровня. Хаб может распознатьподключение устройств к портам или отключение от них иуправлять подачей питания на их сегменты. Каждый из пор-тов может быть разрешен или запрещен и сконфигурированна полную или ограниченную скорость обмена. Хаб обеспе-чивает изоляцию сегментов с низкой скоростью от высоко-скоростных.  Хабы могут управлять подачей питания на нисходящие пор-ты; предусматривается установка ограничения на ток, по-требляемый каждым портом.  ^ Система USB разделяется на три уровня с определеннымиправилами взаимодействия. Устройство USB содержит ин-терфейсную часть, часть устройства и функциональнуючасть. Хост тоже делится на три части - интерфейсную, си-стемную и ПО устройства. Каждая часть отвечает только заопределенный круг задач, логическое и реальное взаимодей-ствие между ними иллюстрирует рис. 7.1.  В рассматриваемую структуру входят следующие элементы:  ^ ^ Физическое устройство USB - устройство на шине, вы-полняющее функции, интересующие конечного пользо-вателя.  ^ Client SW - ПО, соответствующее конкретному устрой-ству, исполняемое на хост-компьютере. Может являтьсясоставной частью ОС или специальным продуктом.  ^ USB System SW - системная поддержка USB, независи-мая от конкретных устройств и клиентского ПО.  ^ ^ USB Host Controller - аппаратные и программные сред-ства для подключения устройств USB к хост-компьютеру.  Физический интерфейс Стандарт USB определяет электрические и механические спе-цификации шины.  Информационные сигналы и питающее напряжение 5 В пе-редаются по четырехпроводному кабелю. Используется диф-ференциальный способ передачи сигналов D+ и D- по двумпроводам. Уровни сигналов передатчиков в статическомрежиме должны быть ниже 0,3 В (низкий уровень) или выше2,8 В (высокий уровень). Приемники выдерживают входноенапряжение в пределах - 0,5...+3,8 В. Передатчики должныуметь переходить в высокоимпедансное состояние для дву-направленной полудуплексной передачи по одной паре про-водов.  Передача по двум проводам в USB не ограничивается диф-ференциальными сигналами. Кроме дифференциальногоприемника каждое устройство имеет линейные приемникисигналов D+ и D-, а передатчики этих линий управляютсяиндивидуально. Это позволяет различать более двух состоя-  ний линии, используемых для организации аппаратного ин-терфейса. Состояния ^ DiffO и Diff1 определяются по разно-сти потенциалов на линиях D+ и D- более 200 мВ приусловии, что на одной из них потенциал выше порога сраба-тывания VSE. Состояние, при котором на обоих входах D+ иD- присутствует низкий уровень, называется линейным ну-лем (SEO - Single-Ended Zero). Интерфейс определяет следу-ющие состояния:  йа ^ DataJ State и Data К State - состояния передаваемогобита (или просто J и К), определяются через состоянияDiffO и Diff1.  ^ Idle State - пауза на шине.  ^ Resume State - сигнал "пробуждения" для вывода устрой-ства из "спящего" режима.  ^ ^ Start of Packet (SOP) - начало пакета (переход из Idle Stateв К).  т End of Packet (EOP) - конец пакета.^ Disconnect - устройство отключено от порта.^ Connect - устройство подключено к порту.^ Reset - сброс устройства.  Состояния определяются сочетаниями дифференциальныхи линейных сигналов; для полной и низкой скоростей со-стояния DiffO и Diff1 имеют противоположное назначение.В декодировании состояний Disconnect, Connect и Reset учи-тывается время нахождения линий (более 2,5 мс) в опреде-ленных состояниях.  Шина имеет два режима передачи. ^ Полная скорость передачисигналов USB составляет 12 Мбит/с, низкая - 1,5 Мбит/с. Дляполной скорости используется экранированная витая парас импедансом 90 Ом и длиной сегмента до 5 м, для низкой -невитой неэкранированньгй кабель до 3 м. Низкоскоростныекабели и устройства дешевле высокоскоростных. Одна и таже система может одновременно использовать оба режима;  переключение для устройств осуществляется прозрачно.Низкая скорость предназначена для работы с небольшимколичеством ПУ, не требующих высокой скорости.  Скорость, используемая устройством, подключенным к кон-кретному порту, определяется хабом по уровням сигналовна линиях D+ и D-, смещаемых нагрузочными резисторамиR2 приемопередатчиков (см. рис. 7.2 и 7.3).  Сигналы синхронизации кодируются вместе с данными пометоду NRZI (Non Return to Zero Invert), его работу иллюст-рирует рис. 7.4. Каждому пакету предшествует поле синх-ронизации SYNC, позволяющее приемнику настроиться начастоту передатчика.  Кабель также имеет линии VBus и GND для передачи питающегонапряжения 5 В к устройствам. Сечение проводников выби-рается в соответствии с длиной сегмента для обеспечения га-рантированного уровня сигнала и питающего напряжения.  Рис. 7.4. Кодирование данных по методу NRZI Стандарт определяет два типа разъемов (см. табл. 7.1 ирис. 7.5). 

Контакт

Цепь

Контакт

Цепь

1 

VBus

3 

D+ 

2 

D- 

4 

GND




Разъемы типа "А" применяются для подключения к хабам(Upstream Connector). Вилки устанавливаются на кабелях, неотсоединяемых от устройств (например, клавиатура, мышьи т. п.). Гнезда устанавливаются на нисходящих портах(Downstream Port) хабов. 

^ Разъемы типа "В" (Downstream Connector) устанавливаютсяна устройствах, от которых соединительный кабель можетотсоединяться (принтеры и сканеры). Ответная часть (вилка)устанавливается на соединительном кабеле, противополож-ный конец которого имеет вилку типа "А". 

Разъемы типов "А" и "В" различаются механически(рис. 7.5), что исключает недопустимые петлевые соедине-ния портов хабов. Четырехконтактные разъемы имеют клю-чи, исключающие неправильное присоединение. Конструк-ция разъемов обеспечивает позднее соединение и раннееотсоединение сигнальных цепей по сравнению с питающи-ми. Для распознавания разъема USB на корпусе устройстваставится стандартное символическое обозначение. 



Рис. 7.5. Гнезда USB: а - типа "А", б - типа "В",в - символическое обозначение

Питание устройств USB возможно от кабеля (Bus-PoweredDevices) или от собственного блока питания (Self-Powered 

Devices). Хост обеспечивает питанием непосредственно под-ключенные к нему ПУ. Каждый хаб, в свою очередь, обеспе-чивает питание устройств, подключенных к его нисходящимпортам. При некоторых ограничениях топологии допуска-ется применение хабов, питающихся от шины. На рис. 7.6приведен пример схемы соединения устройств USB. Здеськлавиатура, перо и мышь могут питаться от шины. 



^ Модель передачи данных

Каждое устройство USB представляет собой набор незави-симых конечных точек (Endpoint), с которыми хост-контрол-лер обменивается информацией. Конечные точки описыва-ются следующими параметрами: 

^ требуемой частотой доступа к шине и допустимыми за-держками обслуживания; 

^ требуемой полосой пропускания канала; 

^ номером точки; 

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

^ максимальными размерами передаваемых и принимаемыхпакетов; 

^ типом обмена; 

^ направлением обмена (для сплошного и изохронного об-менов). 

Каждое устройство обязательно имеет конечную точку с но-мером 0, используемую для инициализации, общего управ-ления и опроса его состояния. Эта точка всегда сконфи-гурирована при включении питания и подключенииустройства к шине. Оно поддерживает передачи типа "управ-ление" (см. далее). 

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

^ Каналом {Pipe) в USB называется модель передачи данныхмежду хост-контроллером и конечной точкой (Endpoint) ус-тройства. Имеются два типа каналов: потоки (Stream) и со-общения (Message). Поток доставляет данные от одного концаканала к другому, он всегда однонаправленный. Один и тотже номер конечной точки может использоваться для двухпоточных каналов - ввода и вывода. Поток может реализо-вывать следующие типы обмена: сплошной, изохронный ипрерывания. Доставка всегда идет в порядке "первым во-шел - первым вышел" (FIFO); с точки зрения USB, данныепотока неструктурированы. Сообщения имеют формат, опре-деленный спецификацией USB. Хост посылает запрос к ко-нечной точке, после которого передается (принимается) па-кет сообщения, за которым следует пакет с информациейсостояния конечной точки. Последующее сообщение нор-мально не может быть послано до обработки предыдущего,но при отработке ошибок возможен сброс необслуженныхсообщений. Двухсторонний обмен сообщениями адресуетсяк одной и той же конечной точке. Для доставки сообщенийиспользуется только обмен типа "управление". 

С каналами связаны характеристики, соответствующие конеч-ной точке (полоса пропускания, тип сервиса, размер буфера 

и т. п.). Каналы организуются при конфигурировании уст-ройств USB. Для каждого включенного устройства существуетканал сообщений(Control Pipe 0), по которому передаетсяинформация конфигурирования, управления и состояния. 

^ Типы передачи данных

USB поддерживает как однонаправленные, так и двунаправ-ленные режимы связи. Передача данных производится меж-ду ПО хоста и конечной точкой устройства. Устройство мо-жет иметь несколько конечных точек, связь с каждой из них(канал) устанавливается независимо. 

Архитектура USB допускает четыре базовых типа передачиданных: 

^ Управляющие посылки (Control Transfers), используемые дляконфигурирования во время подключения и в процессеработы для управления устройствами. Протокол обеспе-чивает гарантированную доставку данных. Длина поляданных управляющей посылки не превышает 64 байт наполной скорости и 8 байт на низкой. 

^ Сплошные передачи (Bulk Data Transfers) сравнительнобольших пакетов без жестких требований ко времени до-ставки. Передачи занимают всю свободную полосу про-пускания шины. Пакеты имеют поле данных разме-ром 8, 16, 32 или 64 байт. Приоритет этих передач самыйнизкий, они могут приостанавливаться при большой за-грузке шины. Допускаются только на полной скоростипередачи. 

йй ^ Прерывания (Interrupt) - короткие (до 64 байт на полнойскорости, до 8 байт на низкой) передачи типа вводимыхсимволов или координат. Прерывания имеют спонтанныйхарактер и должны обслуживаться не медленнее, чем тоготребует устройство. Предел времени обслуживания уста-навливается в диапазоне 1-255 мс для полной скоростии 10-255 мс - для низкой. 

^ Изохронные передачи (Isochronous Transfers) - непрерыв-ные передачи в реальном времени, занимающие предва-рительно согласованную часть пропускной способностишины и имеющие заданную задержку доставки. В случае 

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

Полоса пропускания шины делится между всеми установ-ленными каналами. Выделенная полоса закрепляется за ка-налом, и если установление нового канала требует такойполосы, которая не вписывается в уже существующее рас-пределение, запрос на выделение канала отвергается. 

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

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

Протокол

Все обмены (транзакции) по USB состоят из трех пакетов.Каждая транзакция планируется и начинается по инициати-ве контроллера, который посылает пакет-маркер {TokenPacket). Он описывает тип и направление передачи, адрес ус-тройства USB и номер конечной точки. В каждой транзак-ции возможен обмен только между адресуемым устройством(его конечной точкой) и хостом. Адресуемое маркером уст-ройство распознает свой адрес и готовится к обмену. Источ-ник данных (определенный маркером) передает пакет данных(или уведомление об отсутствии данных, предназначенных дляпередачи). После успешного приема пакета приемник данныхпосылает пакет подтверждения (Handshake Packet). 

Планирование транзакций обеспечивает управление поточ-ными каналами. На аппаратном уровне использование от- 

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

^ Устойчивость к ошибкам обеспечивают следующие свойстваUSB: 

^ Высокое качество сигналов, достигаемое благодаря диф-ференциальным приемникам/передатчикам и экраниро-ванным кабелям. 

^ Защита полей управления и данных CRC-кодами. 

^ Обнаружение подключения и отключения устройств иконфигурирование ресурсов на системном уровне. 

^ Самовосстановление протокола с тайм-аутом при потерепакетов. 

^ Управление потоком для обеспечения изохронности иуправления аппаратными буферами. 

^ Независимость функций от неудачных обменов с други-ми функциями. 

Для обнаружения ошибок передачи каждый пакет имеет кон-трольные поля CRC-кодов, позволяющие обнаруживать всеодиночные и двойные битовые ошибки. Аппаратные сред-ства обнаруживают ошибки передачи, а контроллер автома-тически производит трехкратную попытку передачи. Еслиповторы безуспешны, сообщение об ошибке передается кли-ентскому ПО. 

^ Форматы пакетов

Байты передаются по шине последовательно, начиная с млад-шего бита. Все посылки организованы в пакеты. Каждыйпакет начинается с поля синхронизации Sync, которое пред-ставляется последовательностью состояний KJKJKJKK (коди-рованную по NRZI), следующую после состояния Idle. По-следние два бита (КК) являются маркером начала пакета SOP,используемым для идентификации первого бита идентифи-катора пакета PID. Идентификатор пакета является 4-бит- ным полем PID[3:0], идентифицирующим тип пакета(табл. 7.2), за которым в качестве контрольных следуют теже 4 бита, но инвертированные. 

Тип PID 

Имя PID 

PID[3:0] 

Содержимое и назначение 

Token 

OUT 

0001 

Адрес функции и номер конечнойточки - маркер транзакции функ-ции 

Token 

IN 

1001 

Адрес функции и номер конечнойточки - маркер транзакции хоста 

Token 

SOF 

0101 

Маркер начала кадра 

Token 

SETUP 

1101 

Адрес функции и номер конечнойточки - маркер транзакции с управ-ляющей точкой 

Data 

DataODatal

00111011

Пакеты данных с четными нечетным PID чередуютсядля точной идентификации под-тверждений 

Handshake

Ack 

0010 

Подтверждение безошибочногоприема пакета 

Handshake

NAK 

1010 

Приемник не сумел принять илипередатчик не сумел передатьданные. Может использоваться дляуправления потоком данных(неготовность). В транзакциях пре-рываний является признакомотсутствия необслуженных преры-ваний 

Handshake

STALL 

1110 

Конечная точка требует вмеша-тельства хоста 

Special 

PRE 

1100 

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

В пакетах-маркерах ^ IN, SETUP и OUTследующими являютсяадресные поля: 7-битный адрес функции и 4-битный адресконечной точки. Они позволяют адресовать до 127 функцийUSB (нулевой адрес используется для конфигурирования)и по 16 конечных точек в каждой функции.  В пакете SOF имеется 11-битное поле номера кадра (FrameNumber Field),последовательно (циклически) увеличиваемоедля очередного кадра.  ^ Поле данных может иметь размер от 0 до 1023 целых байт.Размер поля зависит от типа передачи и согласуется приустановлении канала.  Поле СКС-кола присутствует во всех маркерах и пакетах дан-ных, оно защищает все поля пакета, исключая PID. CRC длямаркеров (5 бит) и данных (11 бит) подсчитываются по раз-ным формулам.  Каждая транзакция инициируется хост-контроллером посыл-кой маркера и завершается пакетом квитирования. После-довательность пакетов в транзакциях иллюстрирует рис. 7.7.  Хост-контроллер организует обмены с устройствами согласносвоему плану распределения ресурсов. Контроллер цикли-чески (с периодом 1 мс) формирует кадры (Frames), в кото-рые укладываются все запланированные транзакции. Каж-дый кадр начинается с посылки маркера SOF (Start Of Frame),который является синхронизирующим сигналом для всехустройств, включая хабы. В конце каждого кадра выделяет-ся интервал времени EOF (End Of Frame), на время которогохабы запрещают передачу по направлению к контроллеру.Каждый кадр имеет свой номер. Хост-контроллер опериру-ет 32-битным счетчиком, но в маркере SOF передает толькомладшие 11 бит. Номер кадра увеличивается (циклически)во время EOF. Хост планирует загрузку кадров так, чтобы вних всегда находилось место для транзакций управления ипрерывания. Свободное время кадров может заполнятьсясплошными передачами (Bulk Transfers).  Рис. 7.8. Поток кадров USB Для изохронной передачи важна синхронизация устройств иконтроллера. Есть три варианта:  ^ синхронизация внутреннего генератора устройства с мар-керами SOF;  ^ подстройка частоты кадров под частоту устройства;  ^ согласование скорости передачи (приема) устройства счастотой кадров.  Подстройка частоты кадров контроллера возможна, есте-ственно, под частоту внутренней синхронизации только од-ного устройства. Подстройка осуществляется через механизмобратной связи, который позволяет изменять период кадрав пределах ±1 битового интервала.  ^ 7.1.2. Системное конфигурирование USB поддерживает динамическое подключение и отключе-ние устройств. Нумерация устройств шины является посто-янным процессом, отслеживающим изменения физическойтопологии.  Все устройства подключаются через порты хабов. Хабыопределяют подключение и отключение устройств к своимпортам и сообщают состояние портов при запросе от кон-троллера. Хост разрешает работу порта и адресуется к уст-ройству через канал управления, используя нулевой адрес -USB Default Address. При начальном подключении или пос-ле сброса все устройства адресуются именно так.  Хост определяет, является новое подключенное устройствохабом или функцией, и назначает ему уникальный адрес USB.Хост создает канал управления (Control Pipe) с этим устрой-ством, используя назначенный адрес и нулевой номер точкиназначения.  Если новое устройство является хабом, хост определяет под-ключенные к нему устройства, назначает им адреса и уста- навливает каналы. Если новое устройство является функ-цией, уведомление о подключении передается диспетчеромUSB заинтересованному ПО.  Когда устройство отключается, хаб автоматически запреща-ет соответствующий порт и сообщает об отключении кон-троллеру, который удаляет сведения о данном устройстве извсех структур данных. Если отключается хаб, процесс уда-ления выполняется для всех подключенных к нему устройств.Если отключается функция, уведомление посылается заин-тересованному ПО.  ^ Нумерация устройств, подключенных к шине (BusEnumeration), осуществляется динамически по мере их под-ключения (или включения их питания) без какого-либо вме-шательства пользователя или клиентского ПО. Процедуранумерации выполняется следующим образом:  1. Хаб, к которому подключилось устройство, информиру-ет хост о смене состояния своего порта ответом на опроссостояния. С этого момента устройство переходит в со-стояние Attached (подключено), а порт, к которому оноподключилось, в состояние Disabled.  2. Хост уточняет состояние порта.  3. Узнав порт, к которому подключилось новое устройство,хост дает команду сброса и разрешения порта.  4. Хаб формирует сигнал Reset для данного порта (10 мс)и переводит его в состояние Enabled. Подключенноеустройство может потреблять от шины ток питаниядо 100 мА. Устройство переходит в состояние Powered (пи-тание подано), все его регистры переводятся в исходноесостояние, и оно отзывается на обращение по нулевомуадресу.  5. Пока устройство не получит уникальный адрес, оно до-ступно по дежурному каналу, по которому хост-контрол-лер определяет максимально допустимый размер поляданных пакета.  6. Хост сообщает устройству его уникальный адрес, и онопереводится в состояние Addressed (адресовано).  7. Хост считывает конфигурацию устройства, включая за-явленный потребляемый ток от шины. Считывание мо-жет затянуться на несколько кадров.  8. Исходя из полученной информации, хост конфигуриру-ет все имеющиеся конечные точки данного устройства,которое переводится в состояние Configured (сконфигу-рировано). Теперь хаб позволяет устройству потреблятьот шины полный ток, заявленный в конфигурации. Уст-ройство готово.  Когда устройство отключается от шины, хаб уведомляет обэтом хост и работа порта запрещается, а хост обновляет своютекущую топологическую информацию.  ^ 7.1.3. Устройства USB - функции и хабы Возможности шины USB позволяют использовать ее дляподключения разнообразных устройств. Не касаясь "полез-ных" свойств ПУ, остановимся на их интерфейсной части,связанной с шиной USB. Все устройства должны поддержи-вать набор общих операций, перечисленных ниже.  ^ Динамическое подключение и отключение. Эти события от-слеживаются хабом, который сообщает о них хост-контрол-леру и выполняет сброс подключенного устройства. Устрой-ство после сигнала сброса должно отзываться на нулевойадрес, при этом оно не сконфигурировано и не приостанов-лено. После назначения адреса, за которое отвечает хост-кон-троллер, устройство должно отзываться только на свой уни-кальный адрес.  Конфигурирование устройств, выполняемое хостом, являет-ся необходимым для их использования. Для конфигуриро-вания обычно используется информация, считанная изсамого устройства. Устройство может иметь множество ин-терфейсов, каждому из которых соответствует собственнаяконечная точка, представляющая хосту функцию устройства.Интерфейс в конфигурации может иметь альтернативныенаборы характеристик; смена наборов поддерживается про-токолом. Для поддержки адаптивных драйверов дескрипто-ры устройств и интерфейсов имеют поля класса, подклассаи протокола.  ^ Передача данных возможна посредством одного из четырехтипов передач (см. выше). Для конечных точек, допускаю-щих разные типы передач, после конфигурирования досту-пен только один из них.  ^ Управление энергопотреблением является весьма развитойфункцией USB. Для устройств, питающихся от шины, мощ-ность ограничена. Любое устройство при подключении недолжно потреблять от шины ток, превышающий 100 мА.Рабочий ток (не более 500 мА) заявляется в конфигурации,и если хаб не сможет обеспечить устройству заявленный ток,оно не конфигурируется и, следовательно, не может бытьиспользовано.  Устройство USB должно поддерживать приостановку(Suspended Mode), в котором его потребляемый ток не пре-вышает 500 мкА. Устройство должно автоматически приос-танавливаться при прекращении активности шины.  Возможность удаленного пробуждения (Remote Wakeup) по-зволяет приостановленному устройству подать сигнал хост-компьютеру, который тоже может находиться в приостанов-ленном состоянии. Возможность удаленного пробужденияописывается в конфигурации устройства. При конфигури-ровании эта функция может быть запрещена.  Хаб в USB выполняет коммутацию сигналов и выдачу пи-тающего напряжения, а также отслеживает состояние под-ключенных к нему устройств, уведомляя хост об изменени-ях. Хаб состоит из двух частей - контроллера (Hub Controller)и повторителя (Hub Repeater). Повторитель представляетсобой управляемый ключ, соединяющий выходной порт совходным. Он имеет средства поддержки сброса и приоста-новки передачи сигналов. Контроллер содержит регистры длявзаимодействия с хостом. Доступ к регистрам осуществля-ется по специфическим командам обращения к хабу. Коман-ды позволяют конфигурировать хаб, управлять нисходящи-ми портами и наблюдать их состояние.  ^ Нисходящие (Downstream) порты хабов могут находиться вследующих состояниях:  ^ Powered (^(питание отключено) - на порт не подаетсяпитание (возможно только для хабов, коммутирующих питание). Выходные буферы переводятся в высокоимпе-дансное состояние, входные сигналы игнорируются.  ^ Disconnected (отсоединен) - порт не передает сигналы нив одном направлении, но способен обнаружить подключе-ние устройства (по отсутствию состояния SEO в течение2,5 мкс). Тогда порт переходит в состояние Disabled, а поуровням входных сигналов {DiffO или Diff1 в состоянииIdle) он определяет скорость подключенного устройства.  s^ Disabled (запрещен) - порт передает только сигнал сбро-са (по команде от контроллера), сигналы от порта (кро-ме обнаружения отключения) не воспринимаются. Пообнаружении отключения (2,5 мкс состояния SEO) портпереходит в состояние Disconnect, а если отключение об-наружено "спящим" хабом, контроллеру будет послансигнал Resume.  ш Enabled (разрешен) - порт передает сигналы в обоих на-правлениях. По команде контроллера или по обнаруже-нии ошибки кадра порт переходит в состояние Disabled,а по обнаружении отключения - в состояние Disconnect.  ^ Suspended (приостановлен) - порт передает сигнал пере-вода в состояние останова ("спящий" режим). Если хабнаходится в активном состоянии, сигналы через порт непропускаются ни в одном направлении. Однако "спящий"хаб воспринимает сигналы смены состояния незапрещен-ных портов, подавая "пробуждающие" сигналы от акти-визировавшегося устройства даже через цепочку "спя-щих" хабов.  Состояние каждого порта идентифицируется контроллеромхаба с помощью отдельных регистров. Имеется общий ре-гистр, биты которого отражают факт изменения состояниякаждого порта (фиксируемый во время EOF). Это позволяетхост-контроллеру быстро узнать состояние хаба, а в случаеобнаружения изменений специальными транзакциями уточ-нить состояние.  7.1.4. Хост-контроллер Хост-компьютер общается с устройствами через контроллер.Хост имеет следующие обязанности:  ^ обнаружение подключения и отсоединения устройствUSB;  ^ манипулирование потоком управления между устройства-ми и хостом;  ^ управление потоками данных;  ^ сбор статистики;  ^ обеспечение энергосбережения подключенными ПУ.  Системное ПО контроллера управляет взаимодействием меж-ду устройствами и их ПО, функционирующим на хост-ком-пьютере, для согласования:  ^ нумерации и конфигурации устройств;  ^ изохронных передач данных;  ^ асинхронных передач данных;  ^ управления энергопотреблением;  ^ информации об управлении устройствами и шиной.  По возможности ПО USB использует существующее систем-ное ПО хост-компьютера - например, Advanced PowerManagement для управления энергопотреблением.