- •Цели создания usb Шины
- •Таксономия областей применения
- •Технические характеристики
- •Концентраторы
- •Функции
- •Электрические параметры
- •Механические параметры
- •Разводка питания
- •Управление питанием
- •Протокол Шины
- •Распределение пропускной способности usb шины
- •Уровень Протокола Порядок Следования Бит
- •Поле sync
- •Форматы Поля Пакета
- •Поле Идентификатора Пакета
- •Поля адреса
- •Поле адреса
- •Поле Конечной Точки
- •Поле Номера Кадра
- •Поле Данных
- •Циклический Контроль по Избыточности
- •Crc маркеров
- •Пакеты Начала Кадра
- •Пакеты Данных
- •Пакеты Квитирования
- •Ответы Квитирования
- •Ответ Функции на Входные(in) Транзакции
- •Ответ Хоста на in Транзакции
- •Ответ Функции на out Транзакцию
- •Ответ Функции на Транзакцию setup
- •Форматы Транзакции
- •Bulk Транзакции
- •Передачи Управления
- •Сообщение Результатов Состояния(Reporting Status Results)
- •Транзакции Прерывания
- •Изохронные(iso)Транзакции
- •Помехоустойчивость
- •Обнаружение ошибок
- •Обработка ошибок
- •Синхронизация Переключения Данных и Повторная Передача
- •Инициализация Маркером setup
- •Успешные Транзакции Данных
- •Данные Разрушены или Не Приняты
- •Разрушенное Квитирование ack
Концентраторы
Концентраторы - это ключевой элемент в 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.