Спецификация USB.Rev1.0

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


Downstream порт концентратора может быть в одном из четырех или пяти возможных состояний и должен охватывать такие возможности как обнаружение соединения/разъединения, разблокированние/блокирование порта, подвешивание/возобновление, сброс, и, необязательно, переключение мощности. Концентраторы должны поддерживать независимые конечные автоматы порта на  базисе работоспособности downstream порта.(Hubs must support independent port state machines on a per downstream port basis.) Рисунок 11-4 иллюстрирует состояния порта не поддерживающего переключение мощности, а Рисунок 11-5 показывает состояния  порта поддерживающего переключение мощности. Состояния порта концентратора применяется только к downstream портам.

Рисунок 11-4.  Состояния Порта Концентратора Не Поддерживающего Переключение Мощности

Рисунок 11-5. Состояния Порта Концентратора Поддерживающего Переключение Мощности

Каждое из состояний описано ниже.

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

В разъединении(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 состоянию.

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

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





Подвешенное(Suspended): Концентратор выборочно подвешивает все устройства downstream порта, когда он получает запрос SetPortFeature (PORT_SUSPEND). Этот запрос не должен заставить уже приостановленный порт прекращать распространять транзакцию на середине; то есть, текущая транзакция должна завершиться прежде, чем порт вводится в suspended состояние. Порт проявляет различное поведение связности подвешивания в зависимости от того, является ли концентратор активным или самостоятельно подвешен.( A port displays different suspend connectivity behavior depending on whether the hub is awake or is itself suspended.) Если концентратор активен, нет вверх и вниз по иерархии связи которая может распространяться через порт.( If the hub is awake, no upstream or downstream connectivity can propagate through the port.) Однако, если концентратор подвешен,то переход от idle к возобновлению, или от idle к SE0 на порте отражается на все другие не-disabled порты как переход от idle к возобновлению. Это поведение делает возможным подвесить последовательно множество концентраторов и все еще иметь устройство в нижней части способное пробудить всю шину.

Если концентратор подвешен, и действие шины происходит на подвешенном порте, сначала пробуждается концентратор. Согласование запроса возобновления с портом заставляет установить поле состояния в концентраторе. В ответе, хост опрашивает концентратор, чтобы считать изменения и  определения в поле состояния, которые произошли при возобновлении порта. Порт концентратора переходит в enabled состояние, когда возобновление завершено. Подробно сигналы порта концентратора для выборочного возобновления описаны в Разделе Ошибка! Источник ссылки не найден..

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



Таблица 11- 1 подводит итог поведения порта концентратора в различных состояниях порта для различных типов сигналов. Поведение Концентратора в течение сигналов возобновления, когда концентратор непосредственно находится в suspend состоянии, составляет специальный случай, и обсуждается в Разделе 11.5.2.1.

Таблица 11-1.  Реакция Порта на Сигналы

Сигнал\Состояние

Powered-off

Disconnected

Disabled

Enabled

Suspended

Сброс на корневом порте (концентратор с переключением мощности)

Остаться в Powered-off

Перейти в Powered off

Перейти в Powered off

Перейти в Powered off

Перейти в Powered off

Сбросьте на корневом порте (концентратор без переключения мощности)

N.A.

Перейти в Disconnected

Перейти в Disconnected

Перейти в Disconnected

Перейти в Disconnected

ClearPortFeature(port_power)(концентратор с переключением мощности)

Остаться в Powered-off

Перейти в Powered off

Перейти в Powered off

Перейти в Powered off

Перейти в Powered off

SetPortFeature(port_power)(концентратор с переключением мощности)

Перейти в Disconnected

N.A.

N.A.

N.A.

N.A.

Запрос SetPortFeature (port_reset)

Остаться в Powered off

Перейти в Enabled

Перейти в Enabled

Остаться в Enabled

Перейти в Enabled

Запрос SetPortFeature (port_enable)

Игнорируется

Игнорируется

Перейти в Enabled

Остаться в Enabled

Игнорируется

Запрос ClearPortFeature (port_enable)

Игнорируется

Игнорируется

Остаться в Disabled

Перейти в Disabled

Игнорируется

Трафик пакетов вниз по иерархии (Концентратор активен)

Не распространять

Не распространять

Не распространять

Передать трафик

Не распространять

Трафик пакета вверх по иерархии (концентратор активен)

Не распространять

Не распространять

Не распространять

Передать трафик

Установить поле состояния, не  распространять

Запрос SetPortFeature (port_suspend)

Игнорируется

Игнорируется

Игнорируется

Перейти в Suspend

Игнорируется

Запрос ClearPortFeature (port_suspend)

Игнорируется

Игнорируется

Игнорируется

Игнорируется

Перейти в Resume

Обнаружено разъединение

Игнорируется

Игнорируется

Перейти в Disconnected

Перейти в Disconnected

Перейти в Disconnected

Событие Соединения

Игнорируется

Перейти в Disabled

N.A.

N.A.

N.A.


Содержание раздела