Что такое хост контроллер
Перейти к содержимому

Что такое хост контроллер

25.2. Хост-контроллеры

Хост-контроллер (HC) управляет передачей пакетов по шине. Использовались кадры в 1 миллисекунду. В начале каждого кадра хост-контроллер генерирует пакет начала кадра (SOF — Start of Frame).

Пакет SOF используется для синхронизации начала кадра и отслеживания количества кадров. Пакеты передаются с каждым кадром, как от хоста к устройству (исходящие), так и от устройства к хосту (входящие). Передачи всегда инициируются хостом (запрошенные передачи). В силу этого может быть только один хост на шине USB. Каждая передача пакета имеет период статуса, в котором сторона, принимающая данные, может возвратить ACK (подтверждение приема), NAK (повтор), STALL (условная ошибка) или ничего (потерянный период данных, недоступное устройсто или отсоединение). Раздел 8.5 Спецификации USB детально описывает пакеты. На шине USB могут произойти четыре различных типа передач: управляющая, основная, прерывание и изохронная. Типы передач и их характеристики описаны ниже (подраздел `Каналы’).

Передачи больших объемов данных между устройством на шине USB и драйвером устройства делятся на множество пакетов хост-контроллером или драйвером HC.

Запросы устройства (управляющие передачи) к конечных точкам, используемым по умолчанию, являются специальными. Они состоят из двух или трех фаз: SETUP, DATA (oпциональная) и STATUS. Начтроечный пакет посылается устройству. Если есть фаза данных, то направление пакетов (или пакета) данных дается в настроечном пакете. Направление в фазе статуса противоположно направлению во время фазы данных. или IN если не было фазы данных. Оборудование хост-контроллера также дает регистры с текущим статусом корневых портов и изменений, которые случились с момента последнего сброса регистра изменения статуса. Доступ к этим регистрам дается через виртуализированных разветвитель, как и предполагается по спецификации USB [ 2]. Виртуальный разветвитель должен работать вместе с классом устройств-разветвителей, который описывается в 11 главе той спецификации. Он должен давать канал, испольщуемый по умолчанию, через который запросы устройств могут ему посылаться. Он возвращает набор дескрипторов, стандартных и специфичных для класса разветвителя. Он должен также давать канал прерываний, который сообщает об изменениях, произошедших на его портах. На данный момент для хост-контроллеров существуют две спецификации: Universal Host Controller Interface (UHCI; Intel) и Open Host Controller Interface (OHCI; Compaq, Microsoft, National Semiconductor). Спецификация UHCI разработана для уменьшения аппаратной сложности, требуя от драйвера хост-контроллера поддержки полного распределения передач для каждого кадра. Контроллеры типа OHCI гораздо более независимы, и дают более абстрактный интерфейс, выполняя много работы самостоятельно.

25.2.1. UHCI

Хост-контроллер UHCI отслеживает список кадров с 1024 указателями на структуры данных, соответствующих отдельному фрейму. Он понимает два различных типа данных: описатели передач (TD — transfer descriptor) и начала очереди (QH — queue heads). Каждый TD представляет пакет, связывающий от или в конечную точку устройства. QH имеют смысл для объединения TD (и QH) вместе.

Каждая передача состоит из одного или большего количества пакетов. Драйвер UHCI разделяет большие объемы передач на множество пакетов. Для каждой передачи, за исключением изохронных передач, формируется QH. Для каждого типа передачи эти QH объединяютсяв QH для этого типа. Изохронные передачи выпоняются в первую очередь из-за фиксированных требований к устойчивости и непосредственно ссылается по указателю на список кадров. Последний изохронный TD ссылается на QH для передачи прерываний для этого кадра. Все QH для передач прерываний указывают на QH для управляюших передач, которые, в свою очередь, указывают на QH для основных передач. Следующая диаграмма дает графическое представление этого:

Это приводит к следующему сценарию, запускаемому в каждом кадре. После получения указателя на текущий кадр из списка кадров контроллер сначала выполняет TD для всех изохронных пакетов в этом кадре. Последний из этих TD ссылается на QH для передач прерываний для этого кадра. Хост-контроллер затем спускается от этого QH к QH для отдельных передач прерываний. После завершения работы этой очереди QH для прерванных передач будет отсылать контроллер на QH для всех управляющих передач. Он будет выполнять все подочереди, здесь запланированные, за которыми следуют все передачи, поставленные в очередь в массовые QH. Для облегчения обработки законченных или завершившися неудачно передач аппаратурой генерирубтся различные типы прерываний в конце каждого кадра. В последнем TD для передачи бит Interrupt-On Completion (прерывание при завершении) устанавливается драйвером HC для вызова прерывания после окончания передачи. Прерывание ошибки устанавливается, если TD достиг своего максимального количества ошибок. Если в TD установлен бит обнаружения короткого пакета, и передается пакет, размером меньшим, чем установлено, устанавливается это прерывание для оповещения драйвера контроллера о завершении передачи. Задачей драйвера хост-контроллера является нахождение того, какая передача была завершена или выдача ошибки. При вызове прерывания вспомогательная подпрограмма найдет все завершенные передачи и вызовет их подпрограммы.

Более детальное описание находится в спецификации на UHCI.

25.2.2. OHCI

Программирование хост-контроллера OHCI гораздо проще. Контроллер полагает, что имеется набор конечных точек, и заботится о планировании приоритетов и порядке следования типов передач в кадре. Основной структурой данных, используемой хост-контроллером, является описатель конечной точки (Endpoint Descriptor — ED), которому назначается очередь описателей передач (Transfer Descriptors — TD). ED хранит максимальный размер пакета, разрешенный для конечной точки, а аппаратура контроллера выполняет разбиение на пакеты. Указатели на буферы данных обновляются после каждой передачи, и когда начальный и конечный указатели совпадут, TD отбрасывается в очередь выполненного. Четыре типа конечных точек имеют свои собственные очереди. Управляющие и обычные конечные точки ставятся каждая в свою собственную очередь. ED прерываний ставятся в очередь в дерево, с уровнем в дереве, задающим частоту, с которой они выполняются.

framelist interruptisochronous control bulk

Распределение, выполняемое хост-контроллером в каждом кадре, имеет следующий вид. Контроллер сначала выполняет очереди непериодичного управления и обычную очередь, до момента времени, устанавливаемого драйвером HC. Затем выполняются прерванные передачи для этого количества кадров, используя младшие пять бит номера кадра в качестве индекса в уровне 0 дерева прерываний ED. В конце этого дерева подключаются изохронные ED и они выполняются последовательно. Изохронные TD содержат номер первого кадра, с которого должна начаться передача. После выполнения всех периодических передач, снова обрабатываются управляющая и обычная очереди. Периодически вызывается подпрограмма обслуживания прерываний для обработки очереди выполненного и вызова соответствующих функций для каждой передачи и перепланирования изохронных конечных точек и прерываний.

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

  • Информация о настройке устройства
  • Каналы коммуникаций с устройством
  • Распознавание, подключение и отключение от устройства.
Prev Home Next
Устройства USB Up Информация об устройстве USB

Хост-контроллер

HBA (англ. Host Bus Adapter ) — в компьютерном аппаратном обеспечении устройство, соединяющее компьютер с накопителями (устройствами хранения информации).

Термин впервые начал использоваться при подсоединении устройств с использованием Fibre Channel и ESCON, сетевая карта) и остальные, в которых есть элемент, обеспечивающий передачу данных через специальное устройство.

См. также

Wikimedia Foundation . 2010 .

Смотреть что такое «Хост-контроллер» в других словарях:

  • USB — Символ USB USB (ю эс би, англ. Universal Serial Bus «универсальная последовательная шина») последовательный интерфейс передачи данных для среднескоростных и низкоскоростных периферийных … Википедия
  • Pegasos — Компьютер, построенный на основе материнской платы Pegasos II Pegasos материнская плата на базе процессора PowerPC G3/G4, имеет 3 слота PCI … Википедия
  • Пегасос — Компьютер, построенный на основе материнской платы Pegasos II Pegasos материнская плата на базе процессора /PCI, 1 слот Ethernet (1Гбит и 10/100Мбит), DDR, AC97 совместимый звук и контроллер Firewire. В духе современных для загрузки системы… … Википедия
  • AMD Fusion — Информация в этой статье или некоторых её разделах устарела. Вы можете помочь проекту, обновив её и убрав после этого данный шаблон … Википедия
  • Звуковая плата — Creative Labs Sound Blaster Live! Звуковая плата AdLib … Википедия
  • RDC Semiconductor — У этого термина существуют и другие значения, см. RDC. RDC Semiconductor Co., Ltd. (коротко RDC) тайваньская компания, основанная в 1997 году. Компания специализируется на выпуске 16/32 битных микропроцессоров и микроконтроллеров с ядром… … Википедия
  • Звуковая карта — Звуковая плата Creative Labs Sound Blaster Live! … Википедия
  • Музыкальная плата — Звуковая плата Creative Labs Sound Blaster Live! Дешевая звуковая плата C media с оптическим входом и выходом Звуковая плата (также называемая звуковая карта или музыкальная плата) (англ. sound card) это плата, которая позволяет работать со… … Википедия
  • FICON — (Fibre Connection) последовательный канал передачи данных, основанный на ANSI стандарте Fibre Channel, введённом международным комитетом IT стандартов INCITS. Впервые был использован в генерациях G5, G6 серверов IBM S/390. FICON реализует… … Википедия
  • USB Attached SCSI — компьютерный интерфейс для высокоскоростного обмена с USB устройствами хранения, таких как жесткие диски, твердотельные диски и флэш накопители . UAS зависит от протокола USB, и использует стандартные набора команд SCSI. Предназначен для… … Википедия
  • Обратная связь: Техподдержка, Реклама на сайте
  • �� Путешествия

Экспорт словарей на сайты, сделанные на PHP,
WordPress, MODx.

  • Пометить текст и поделитьсяИскать в этом же словареИскать синонимы
  • Искать во всех словарях
  • Искать в переводах
  • Искать в ИнтернетеИскать в этой же категории

Хост-контроллер

Общие сведения об USB-шине У любого компьютера, выпущенного в последнее время, вы обязательно обнаружите либо на лицевой панели, либо на задней стенке разъем USB. Шина USB (Universal Serial Bus) первоначально была разработана для обеспечения легкого подключения компьютера к телефонным линиям и расширения числа портов. Первая версия стандарта (версия 1.0) была выпущена в январе 1996 года. Сейчас в основном используется версия 1.1. Стандарт USB 1.1 вполне удовлетворяет всем требованиям при работе с низко-скоростными устройствами, вроде мышей и клавиатур, и даже с устройствами, работающими на средних скоростях, вроде Ethernet-адаптеров (10 Mbit/sec) или устройств бытовой электроники (таких, как цифровые камеры и MP3-плейеры), которые пересылают только несколько мегабайт данных. Но если на периферийное устройство или в обратном направлении необходимо пересылать большие объемы информации (примеры — жесткие диски, видеокамеры высокого разрешения, или одновременное использование нескольких сетевых адаптеров стандарта 100BaseT), то скорости, обеспечиваемые USB 1.1, уже недостаточны. Поэтому в 1999 году была разработана версия 2.0 стандарта USB, обеспечивающая более высокие скорости обмена данными. Современные компьютеры обычно имеют контроллер USB-шины, установленный на материнской плате. Для USB версии 1.1 было разработано два типа таких контроллеров, отличающихся интерфейсом взаимодействия с USB-устройствами: OHCI (Open Host Controller Interface) фирмы Compaq и UHCI (Universal Host Controller Interface) фирмы Intel. Оба типа имеют примерно одинаковые возможности и USB-устройства работают с обоими типами контроллеров. Аппаратная часть UHCI-контроллеров проще, а значит, они дешевле, но зато требуют более сложных драйверов, что увеличивает нагрузку на процессор. Версия 2.0 стандарта USB использует улучшенный вариант интерфейса — EHCI (Enhanced Host Controller Interface). Стандарт USB предусматривает строгую иерархию устройств, управляемых основным хостом, и использование протокола master/slave для управления подключаемыми устройствами. На один USB-разъем могут быть последовательно подключены до 127 устройств. Но непосредственно подключать одно устройство к другому нельзя, поскольку питание таких устройств осуществляется по той же шине. Поэтому для подключения дополнительных устройств используются специальные хабы, обеспечивающие снабжение этих устройств необходимой энергией. В результате USB-устройства образуют как бы дерево, каждая не конечная вершина которого является хабом. Поскольку любой обмен данными инициируется только хостом, и периферийные устройства не могут начать взаимодействие, исключена возможность коллизий, вследствие чего снижается стоимость устройств. Правда, такое решение приводит к некоторому снижению производительности. В результате USB-устройства версии 1.1 могут работать в двух режимах: так называемом low speed, обеспечивающем скорость передачи данных до 1.5 Mбит/сек, и full speed, в котором скорость передачи данных может составлять 12 Мбит/сек. Это только теоретический предел, а реально производительность шины даже в идеальных условиях не превышает 8,5 Мбит/сек., а в среднем составляет около 2 Мбит/сек. Интерфейс EHCI, используемый в устройствах версии 2, обеспечивает режим работы high speed, для которого скорость передачи данных может достигать 480 Мбит/сек. Для того чтобы USB-устройства могли обмениваться данными с такой скоростью, и хост-контроллер и само устройство должны соответствовать стандарту USB 2.0 и обеспечивать работу с интерфейсом EHCI. Однако хост-контроллеры 2.0 успешно работают с устройствами версии 1.1. И наоборот, вполне можно подключать устройства USB 2.0 к хосту (и к хабам) версии USB 1.1 и они будут прекрасно работать, но со скоростью не более 12, а не 480 Мбит/сек. В настоящее время разработан широкий спектр устройств, подключаемых по шине USB. Это клавиатуры, мыши, джойстики, игровые приставки, сканеры, модемы, принтеры, цифровые камеры, устройства хранения информации – дисководы гибких и жестких дисков, дисководы Zip, LS120 и CD-ROM. Очень перспективный и интересный класс таких устройств образуют накопители на основе Flash-памяти [1]. Физическая среда Шина USB, обладает полосой пропускания 1,5 или 12 Мбит/с. USB-кабель состоит из 4 проводников: — два провода формируют витую пару, применяемую в дифференциальных передачах данных; — остальные два представляют собой линии питания и заземления устройств, не имеющих собственного питания 5 В постоянного напряжения. USB стандарт предполагает два вида кабеля и два варианта разъемов. High-speed (высокоскоростные) кабели, для связи 12Mb в секунду, лучше экранированы, чем их менее дорогие 1.5 Mb заменители. Каждый кабель имеет «А» разъем на одной стороне и «B» на другой. Рисунок 1 показывает как «А» разъемы подсоединяются к исходящему, а «В» к нисходящему. Таким образом два типа физически различны и невозможно подключить их неправильно. Рис 1. USB топологоия «подключение звездой» USB шина позволяет подключать до 127 устройств. Использование такого количества устройств возможно при многоуровневом каскадировании. Наглядно это объясняет следующий рисунок: Это первая архитектурная особенность шины USB: ее логическая топология — многоуровневая звезда. Самым верхним уровнем является корневой концентратор, который обычно совмещается с USB контроллером. Если функции контроллера понятны, то концентратор — устройство для периферийных интерфейсов не привычное. В данном случае его функция такая же, что и концентраторов сетей передачи данных — добавление новых портов для подключения большего числа устройств. Ничего большего, чем просто разветвитель. К корневому концентратору могут быть подключены либо устройства, либо еще концентраторы, для увеличения числа доступных портов. Допускается организация до пяти уровней. Концентратор может быть выполнен в виде отдельного устройства, либо быть встроенным в какое-то другое. С этой точки зрения устройства подключаемые к USB можно подразделить на функциональные устройства, т.е. те которые выполняют какую-то конкретную функцию и не берут на себя никаких дополнительных задач (например, мыши) устройства-концентраторы в чистом виде выполняющие только функцию разветвления, и совмещенные (комбинированные) устройства, т.е. имеющие в своем составе концентратор, расширяющие набор портов и позволяющие подключать другие устройства (в качестве наиболее часто встречающихся примеров можно назвать мониторы, позволяющие по USB осуществлять настройку параметров, и обычно имеющих еще несколько дополнительных портов, для подключения других устройств или клавиатуры, с разъемами для подключения мышей). Надо обратить внимание, на то, что на пятом уровне комбинированное устройство использоваться не может. Кроме того отдельно стоит упомянуть о хосте, являющемся скорее программно-аппаратным комплексом, нежели просто устройством. Физическая топология шины — звезда Это объясняется тем, что каждый концентратор обеспечивает прозрачно для хоста соединение с устройством. Отношения клиентского программного обеспечения и USB устройств: в отличие от привычных старых интерфейсов, где взаимодействие можно было (и нужно) осуществлять обращаясь к устройству по конкретным физическим адресам памяти и портам ввода вывода, USB предоставляет для взаимодействия программный интерфейс и только его, позволяя клиентскому ПО существовать в отрыве от конкретного подключенного к шине устройства и его конфигурации. Для клиентской программы USB — это лишь набор функций. Хост, как уже было сказано ранее, программно-аппаратный комплекс. В обязанности хоста входит:

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

Аппаратной частью является хост-контроллер — посредник между хостом и устройствами на шине. Программные функции (перечисление устройств и их конфигурирование, управление энергопотреблением, процессами передачи, устройствами на шине и самой шиной) возложены на операционную систему. Первой популярной операционной системой, в которой поддержка USB реализована была в полном объеме стала Windows 98 Second Edition. Некоторые устройства могут быть работоспособными и под более ранними версиями (98 без SE, и изредка 95), но далеко не все и не всегда. Концентратор (хаб). Позволяет множественные подключения к одному порту, создавая дополнительные порты. Каждый хаб имеет один восходящий порт, предназначенный для подключения к имеющемуся в наличии свободному порту, и несколько нисходящих, к которым могут быть подключены или снова концентраторы, или конечные устройства, либо совмещенные устройства. Хаб должен следить за подключением и отключением устройств, уведомляя хост об изменениях, управлять питанием портов. В концентраторе стандарта USB 2.0 можно выделить 3 функциональных блока: контроллер, повторитель, транслятор транзакций. Контроллер отвечает за соединения с хостом. Понятие повторитель в USB несколько отличается от принятого в сетях передачи данных. Его обязанность — соединять входной и какой-то нужный из выходных портов. Транслятор транзакций появился лишь в USB 2.0 и нужен, как всегда, из соображений совместимости с предыдущими версиями. Вкратце его суть в том, что бы обеспечивать максимальную скорость соединения с хостом. Подключенное к высокоскоростному (USB 2.0) порту старое медленное (USB 1.1) устройство съедало бы значительную часть времени, а следовательно и полезной пропускной способности шины, ведя обмен с хостом на низкой скорости (почему так происходит мы выясним позже при рассмотрении механизма обмена данными хост-устройство). Как метод борьбы транслятор транзакций буферизирует поступающий с медленного порта кадр, а затем на максимальной скорости передает его хосту, или же буферизирует получаемый на максимальной скорости кадр от хоста, передавая его затем устройству на меньшей, приемлемой для него скорости. Помимо разветвления и трансляции транзакций хаб должен осуществлять конфигурирование портов и слежение за корректным функционированием подключенных к ним устройств. Нужно сказать также, что при использовании старых и новых концентраторов вместе возможно создание неоптимальных с точки зрения производительности конфигураций. Для того что бы избежать создания узких мест в своей цепи, подключайте низкоскоростные устройства к низкоскоростным хабам, которые в свою очередь делайте последними уровнями ветвления и не подключайте их в середину высокоскоростной цепочки.

Взаимодействие хост-контроллера USB и устройств USB (ликбез).

Взаимодействие хост-контроллера USB и устройств USB (ликбез).

Хост-контроллер USB (рис.1) в чипсете обычно интегрируется с корневым хабом (root hub), обеспечивающим одну или несколько точек подключения называемых портами. Контроллер USB, входящий в состав чипсетов многих современных системных плат, обычно (как минимум) имеет встроенный двухпортовый хаб.

Распределение пропускной способности шины между подключенными устройствами планируется хост-контроллером и реализуется им с помощью посылки маркеров. Шина позволяет подключать, конфигурировать, использовать и отключать устройства во время работы хоста и самих устройств – динамическое (или «горячее») подключение и отключение.

Хост-контроллер USB выполняет следующие функции:

— обнаружение подключения и отсоединения устройств USB;

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

— управление потоками данных;

— сбор информации о состоянии и статистики;

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

Рис. 1. Пример блок-схемы хост-контроллера USB.

Системное программное обеспечение ( C ПО) хост-контроллера USB управляет взаимодействием между устройствами и их программным обеспечением функционирующим на хост- компьютере обеспечивая следующие функции:

— асинхронные передачи данных;

— нумерация и конфигурация устройств;

— изохронные передачи данных;

— информация об управлении устройствами и шиной.

По возможности, СПО USB в этих областях использует существующее системное ПО хост-компьютера – например, Advanced Power Management (АРМ) для управления энергопотреблением устройств USB и др.. USB имеет развитую систему управления энергопотреблением. Хост-компьютер может иметь собственную систему управления энергопотреблением (power management system), к которой логически подключается и одноименная система USB. Программное обеспечение USB взаимодействует с этой системой, поддерживая такие системные события, как приостанов (SUSPEND) или восстановление (RESUME). Кроме того, устройства USB могут сами являться источниками событий, отрабатываемых системой управления энергопотреблением.

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

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

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

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

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

— тип обмена (управление, сплошной, изохронный и прерывания;

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

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

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

По каналу между хост-контроллером и конечной точкой устройства могут передаваться две разновидности информации — потоки (stream) и сообщения (message).

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

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

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

В USB в отличие от других шинных архитектур концентраторы передают пакеты от корня без полного их получения, что обеспечивается возможность «горячего» подключения устройств без отключения системы. Можно подключить новое устройство или концентратор, или наоборот, отключить ставшее ненужным оборудование без необходимости перезагрузки системы. При обнаружении на шине нового устройства концентратор оповещает об этом корневой концентратор. Затем система опрашивает вновь подключенное устройство о возможностях и потребностях и конфигурирует его. Вдобавок при этом загружаются необходимые драйверы, так что новым устройством можно пользоваться немедленно. Таким образом USB поддерживает подключение и отключение устройств в процессе работы. Конфигурация устройств шины является постоянным процессом, отслеживающим динамические изменения физической топологии (рис.2). Все устройства USB подключаются через порты хабов. Хабы определяют подключение и отключение устройств к своим портам и сообщают состояние портов в ответ на запрос от контроллера. Хост разрешает работу порта и адресуется к устройству через канал управления, используя нулевой адрес – USB Default Address. Все устройства адресуются этим адресом при начальном подключении или после сброса.

Хост определяет, является новое подключенное устройство хабом или периферийным устройством, и назначает ему уникальный адрес USB. Хост устанавливает с этим устройством канал управления (control pipe), используя назначенный адрес и нулевой номер точки назначения. Если новое устройство является хабом, хост определяет подключенные к нему устройства, назначает им адреса и устанавливает каналы. Если новое устройство USB является периферийным устройством, уведомление о подключении передается диспетчером USB заинтересованному программному обеспечению.

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

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *