Алгоритм - Учебный центр

Версия сайта для слабовидящих
Заполните форму ниже! Мы вам перезвоним!

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


Взаимодействие хост-контроллера 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. Все устройства адресуются этим адресом при начальном подключении или после сброса.

 

Рис. 2.

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

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


Лицензия