· Снабжениеподключенных устройств электропитанием
Аппаратнойчастью является хост контроллер - посредник между хостом и устройствами нашине.
Программныефункции (перечисление устройств и их кон
фигурирование, управлениеэнергопотреблением, процессами передачи, устройствами на шине и самой шиной)возложены на операционную систему. Первой популярной операционной системой, вкоторой поддержка USB реализована была в полном объеме стала Windows 98 SecondEdition. Некоторые устройства могут быть работоспособными и под более раннимиверсиями (98 без SE, и изредка 95), но далеко не все и не всегда.Концентратор(хаб). Позволяетмножественные подключения к одному порту, создавая дополнительные порты. Каждыйхаб имеет один восходящий порт, предназначенный для подключения к имеющемуся вналичии свободному порту, и несколько нисходящих, к которым могут бытьподключены или снова концентраторы, или конечные устройства, либо совмещенныеустройства.
Хабдолжен следить за подключением и отключением устройств, уведомляя хост обизменениях, управлять питанием портов. В концентраторе стандарта USB 2.0 можновыделить 3 функциональных блока: контроллер, повторитель, транслятортранзакций. Контроллер отвечает за соединения с хостом. Понятие повторитель вUSB несколько отличается от принятого в сетях передачи данных. Его обязанность- соединять входной и какой-то нужный из выходных портов. Транслятор транзакцийпоявился лишь в USB 2.0 и нужен, как всегда, из соображений совместимости спредыдущими версиями. Вкратце его суть в том, что бы обеспечивать максимальнуюскорость соед
инения с хостом. Подключенное к высокоскоростному (USB2.0) порту старое медленное (USB 1.1) устройство съедало бы значительную частьвремени, а следовательно и полезной пропускной способности шины, ведя обмен схостом на низкой скорости (почему так происходит мы выясним позже прирассмотрении механизма обмена данными хост-устройство). Как метод борьбытранслятор транзакций буферизирует поступающий с медленного порта кадр, а затемна максимальной скорости передает его хосту, или же буферизирует получаемый намаксимальной скорости кадр от хоста, передавая его затем устройству на меньшей,приемлемой для него скорости. Помимо разветвления и трансляции транзакций хабдолжен осуществлять конфигурирование портов и слежение за корректнымфункционированием подключенных к ним устройств. Нужно сказать также, что прииспользовании старых и новых концентраторов вместе возможно созданиенеоптимальных с точки зрения производительности конфигураций. Для того что быизбежать создания узких мест в своей цепи, подключайте низкоскоростныеустройства к низкоскоростным хабам, которые в свою очередь делайте последнимиуровнями ветвления и не подключайте их в середину высокоскоростной цепочки.Функциональноеустройство. С точкизрения USB, устройство - это набор конечных точек с которыми возможен обменданными. Число и функции точек зависят от устройства и выполняемых им функций,и определяются при производстве. В обязательном порядке присутствует точка сномером 0 - для контроля состояния устройства и управления им. До осуществленияконфигурирования устройства через точку 0 остальные каналы не доступны. Каждаяконечная точка устройства описывается следующими параметрами:
· Частотойобращения к шине и требованиями к задержкам
· Необходимойполосой пропускания
· Номером конечно
йточки· Требованиями кобработке ошибок
· Максимальнымразмером кадра который может быть принят или послан.
· Типомподдерживаемой передачи данных
· Направлениемосуществления передачи между конечной точной и хостом.
Длянизкоскоростных (low-speed) устройств возможно существование до двухдополнительных точек; для full-speed устройств их число ограничивается лишьвозможностями протокола и может достигать 15-ти для ввода и 15-ти для вывода.
Вообщеконечная точка - это конец логического канала данных между хостом иустройством. В свою очередь канал - это логическое соединение между хостом иустройством. Так как конечных точек у устройства предусматривается несколько,то это означает, что обмен данными между хост-контроллером и устройством нашине может проихсодить по нескольким каналам, так называемый многоканальныйрежим. Полоса пропускания шины делиться между всеми установленными каналами. Враспоряжение шина USB может предоставить каналы следующих типов:
· Каналысообщений. Являютсядвунаправленными каналами и служат, не трудно сообразить, для передачисообщений, имеющих строго определенный в спецификации формат, необходимый дляобеспечения надежной идентификации и передачи команд. Возникает канал приотсылке хостом запроса в устройства, и управляет передачей только хост. Каналысообщений используется для передач только управляющего типа (что такое смотримниже).
· Потоковыеканалы. Являютсяоднонаправленными. В отличие от четко определенных сообщений не имеютопределенного закрепленного в стандарте формата, что означает возможностьпередачи данных любого вида. Эти
передачи могут контролироваться нетолько хостом, но и устройством. Используется для передач данных типапрерывание, групповая пересылка, изохронная (смотрим ниже). В спецификации взависимости от типа передаваемых данных, предъявляемых требований к скоростиобработки, задержки доставки и т.п. определены следующие типы передач.· Управляющиепередачи.Используются для конфигурирования устройств во время подключения и выполнениядругих специфических функций над устройством, включая организацию новыхканалов.
· Прерывания. Используются для спонтанных, ногарантированных передач с гарантированными скоростями и задержками.Используются обычно для передачи введенных данных от клавиатуры или сведений обизменении положения указателя мыши, в устройствах обратной связи, и.т.д
· Групповаяпересылка.Используется для гарантированной передачи данных больших объемов безпредьявленных требований к скоростям и задержкам. Занимает под себя всюсвободную пропускную способность шины. В любой момент доступная полоса можетбыть урезана при необходимости осуществления передач других видов с болеевысоким приоритетом, или добавлена, при освобождении другими устройствами.Обычно такие передачи используется между принтерами, сканерами, накопителями идр.
· Изохроннаяпередачи.Используются для потоковых передач данных в реальном времени. Резервируютопределенную полосу пропускания шины, гарантируют определенные величинызадержек доставки, но не гарантируют доставку (в случае обнаружения ошибкиповторной передачи не происходит. Передачи этого вида используются для передачиаудио и видео трафика.
Обменданными может осуществляться в трех скоростных режимах:
· Low Speed.Низкоскоростной режим. Ско
рость передачи составляет 1.5 Мбит/с.· Full Speed.Полноскоростной режим. Скорость передачи 12 Мбит/с.
· High Speed.Высокоскоростной режим. Появился лишь в спецификации 2.0. Скорость передачи 480Мбит/с.
Информацияпо шине передается пакетами. Всего их определено 4 вида:
· Маркерныепакеты.
o In - информируютUSB устройство, что хост хочет читать данные из устройства
o Out -информирует USB устройство, что хост хочет передавать данные в устройство
o Setup -используются для обозначения начала управляющего типа передачи данных
o SOF -пакеты началакадра (Start of Frame Packets)
· Пакеты данных.
o Существуют дватипа пакетов данных - DATA0, DATA1 , каждый из которых способен содержать до1024 байтов данных. У высокоскоростных устройств для пакетов данных определеныдва других PID-a: DATA2 и MDATA.
· Пакетыподтверждения.
o ACK -подтверждение того, что пакет был успешно принят
o NAK -информирует, что устройство в данный момент не может принимать либо отправлятьданные. А в Interrupt транзакциях сообщает хосту, что устройство не имеет новыхданных для передачи.
o STALL -указывает, что устройство неспособно передавать или получать данные и требуетсявмешательство хоста.