Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Скачиваний:
21
Добавлен:
16.04.2013
Размер:
604.16 Кб
Скачать

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

Концентраторы - это ключевой элемент в PnP(Plug&Play) архитектуре USB. Рисунок 2 показывает типичный концентратор. Хаб вUSBвыполняет функции коммутации сигналов и раздачи питающего напряжения, а также отслеживает состояние подключенных к нему устройств, уведомляя хост об изменениях. Концентраторы - это монтажные сосредоточители и они дают возможности присоединения к USB шине множества функций и других хабов. Точки присоединения упоминаются как порты. Каждый концентратор разветвляет одиночную точку присоединения в множество точек присоединения. Архитектура поддерживает конкатенацию множества концентраторов.

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

Концентратор состоит из двух частей: Контроллер Концентратора и Повторитель Концентратора. Повторитель - управляемый протоколом переключатель между upstream и downstream портами. Он также имеет аппаратную поддержку сброса и приостановки / возобновления передачи сигналов. Контроллер содержит регистры для взаимодействия с хабом. Доступ к этим регистрам осуществляется по специальным командам обращения к хабу. Эти команды позволяют конфигурировать хаб, управлять нисходящими портами и наблюдать их состояние.Состояние каждого порта идентифицируется контроллером хаба с помощью отдельных регистров. Кроме того, имеется общий регистр, биты которого отражают факт изменения состояния каждого порта (фиксируемый во времени EOP). Это позволяет хост-контроллеру быстро опрашивать состояние хаба, а в случае обнаружения изменений специальными транзакциями уточнять состояние.

Рисунок 2.Типичный Концентратор(hub)

Рисунок 3 иллюстрирует, как концентраторы обеспечивают связь в настольной компьютерной системе.

Рисунок 3 . Концентраторы в Настольной Компьютерной Системе

Рисунок 3 иллюстрирует, как концентраторы обеспечивают связь в настольной компьютерной системе.

Состояния Порта Концентратора

Нисходящие (downstream) порты хабов могут находиться в следующих состояниях:

1.Выключенное питание(Powered off): Это состояние поддерживается только для портов, которые имеют переключение мощности. Переходы порта к состоянию powered off происходят, когда концентратор получает запрос ClearPortFeature(PORT_POWER), или когда концентратор обнаруживает на корневом порте сигнал сброса. Порт в powered off состоянии не обеспечивает никакую мощность вниз по иерархии и буфера выходных сигналов помещены в Hi-Z состояние. Порт в powered off состоянии игнорирует всякое действие направленное вверх по иерархии шины по этому порту.

2.Разъединение(Disconnected): Downstream порт концентратора, обеспечивающего переключение мощности, переходит от powered off в disconnected состояние, когда мощность подается на порт через запрос SetPortFeature(PORT_POWER). Если концентратор не поддерживает переключение мощности, он переходит в состояние disconnected после подачи питания или получения по корневому порту сброса. В состоянии disconnected, порт не может распространять любые сигналы в направлении вверх или вниз по иерархии. Однако, порт может обнаружить событие соединения (conn_det), которое устанавливает поле состояния в контроллере концентратора и вызывает переход состояния порта к disabled состоянию.

Conn_det утвержден, если downstream порт находится в disconnect состоянии и в течении 2.5 мс обнаруживается на шине непрерывнй не SE0 сигнал. Когда conn_det утвержден впервые, состояние шины idle может быть изменено или низко или полно скоростным устройством, и может быть или DIFF0 или DIFF1. Концентратор автоматически определяет тип устройства (низко или полно скоростное) по тому тянется ли D+ или D- вверх. Определение скорости устройства завершается перед переходами концентратора к disabled состоянию.

3.Заблокированное состояние(Disabled): Порт переходит в disabled состояние из состояния disconnected, когда он обнаруживает событие соединения (conn_det). Это требует того, чтобы на порт сначала было подано питание, если концентратор поддерживает переключение мощности. Порт в disabled состоянии может только распространять направленные вниз по иерархии сигналы, являющиеся результатом запроса SetPortFeature (RESET); во все другое время, буферы вывода порта находятся в Hi-Z состоянии. В направлении вверх по иерархии, порт в состоянии disabled не распространяет никакие сигналы через концентратор к корневому порту, когда концентратор активен. Однако, некоторые события, типа разъединение, заставит распространяться сигналы возобновления вверх по иерархии к корневому порту, если концентратор находится в suspended состоянии. Событие разъединения (disc_det) заставит порт возвращаться к disconnect состоянию и установит поле состояния в контроллере концентратора. Disc_det утвержден всякий раз, когда порт обнаруживает в течении 2.5 мс непрерывный SE0, когда порт не распространяет downstream трафик. Прежде, чем событие разъединения может быть установлено концентратором, приостановленный концентратор должен сначала пробудиться.

4. Разблокированное(Enabled): Порт переходит к enabled состоянию после получения запроса SetPortFeature (PORT_ENABLE) или SetPortFeature (PORT_RESET). В enabled состоянии порт распространяет все сигналы вниз по иерархии, трафик полно скоростных пакетов и сигнал сброса; распространяет трафик низко скоростных пакетов вниз по иерархии, когда предшествует PID преамбула. В состоянии enabled, порт распространяет все сигналы вверх по иерархии, включая полно и низко скоростные пакеты и сигналы продолжения. Порт переходит в disabled состояние, если он получает запрос ClearPortFeature (PORT_ENABLE) или если происходит ошибка кадра (fr_error). Хост может выдать запрос ClearPortFeature (PORT_ENABLE) в любое время, и концентратор должен ответить, немедленно помещая порт в состоянии disabled. Порт в enabled состоянии будет переходить к disconnected состоянию, если происходит обнаружение разъединения.

5. Приостановленное (Suspended): Концентратор выборочно приостанавливает все устройства downstream порта, когда он получает запрос SetPortFeature (PORT_SUSPEND). Этот запрос не должен приводить к прекращению распространения транзакции на середине в уже приостановленном порте; то есть, текущая транзакция должна завершиться прежде, чем порт вводится в приостановленное состояние. Поведение порта в приостановленное состоянии разное(в отношении передачи сигналов) в зависимости от того является ли хаб активным или самостоятельно подвешен. Если концентратор активен, то сигналы вверх и вниз по иерархии через порт не распространяются. Однако, если концентратор приостановлен, то переход от idle к возобновлению работы, или от idle к SE0 на порте отражается на все другие не заблокированные порты. Это поведение дает возможность приостановить последовательно множество концентраторов и все еще иметь устройство, способное пробудить всю шину.

Если концентратор приостановлен, и действие шины происходит на приостановленном порте, сначала пробуждается концентратор. Согласование запроса возобновления с портом позволяет установить поле состояния в концентраторе. В ответ хост опрашивает концентратор, чтобы считать изменения в поле состояния, которые произошли при возобновлении порта. Порт концентратора переходит в enabled состояние, когда возобновление завершено.Событие разъединения по отношению к подвешенному концентратору вызывает переход состояния концентратора к состоянию disconnected и устанавливает поле состояния контроллера концентратора, чтобы указать, что произошло разъединение. Не возможно поместить порт из режима disconnected непосредственно в suspended, так как порт никогда не выходит из состоянияdisconnected.

Соседние файлы в папке OUT