Интерфейсы ПК

       

Поток кадров USB


Рисунок 7.8. Поток кадров USB

Для изохронной передачи

важна синхронизация устройств и контроллера. Есть три варианта:

синхронизация внутреннего генератора устройства с мар- керами SOF;

подстройка частоты кадров под частоту устройства;

согласование скорости передачи (приема) устройства с частотой кадров.

Подстройка частоты кадров контроллера возможна, есте- ственно, под частоту внутренней синхронизации только од- ного устройства. Подстройка осуществляется через механизм обратной связи, который позволяет изменять период кадра в пределах ±1 битового интервала.

7.1.2. Системное конфигурирование

USB поддерживает динамическое подключение и отключе- ние устройств. Нумерация устройств шины является посто- янным процессом, отслеживающим изменения физической топологии.

Все устройства подключаются через порты хабов. Хабы определяют подключение и отключение устройств к своим портам и сообщают состояние портов при запросе от кон- троллера. Хост разрешает работу порта и адресуется к уст- ройству через канал управления, используя нулевой адрес - USB Default Address. При начальном подключении или пос- ле сброса все устройства адресуются именно так.

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

Если новое устройство является хабом, хост определяет под- ключенные к нему устройства, назначает им адреса и уста-

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



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


Нумерация устройств,

подключенных к шине (Bus Enumeration), осуществляется динамически по мере их под- ключения (или включения их питания) без какого-либо вме- шательства пользователя или клиентского ПО. Процедура нумерации выполняется следующим образом:

1. Хаб, к которому подключилось устройство, информиру- ет хост о смене состояния своего порта ответом на опрос состояния. С этого момента устройство переходит в со- стояние Attached (подключено), а порт, к которому оно подключилось, в состояние Disabled.

2. Хост уточняет состояние порта.

3. Узнав порт, к которому подключилось новое устройство, хост дает команду сброса и разрешения порта.

4. Хаб формирует сигнал Reset для данного порта (10 мс) и переводит его в состояние Enabled.

Подключенное устройство может потреблять от шины ток питания до 100 мА. Устройство переходит в состояние Powered

(пи- тание подано), все его регистры переводятся в исходное состояние, и оно отзывается на обращение по нулевому адресу.

5. Пока устройство не получит уникальный адрес, оно до- ступно по дежурному каналу, по которому хост-контрол- лер определяет максимально допустимый размер поля данных пакета.

6. Хост сообщает устройству его уникальный адрес, и оно переводится в состояние Addressed (адресовано).

7. Хост считывает конфигурацию устройства, включая за- явленный потребляемый ток от шины. Считывание мо- жет затянуться на несколько кадров.

8. Исходя из полученной информации, хост конфигуриру- ет все имеющиеся конечные точки данного устройства, которое переводится в состояние Configured

(сконфигу- рировано). Теперь хаб позволяет устройству потреблять от шины полный ток, заявленный в конфигурации. Уст- ройство готово.

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

7.1.3. Устройства USB - функции и хабы

Возможности шины USB позволяют использовать ее для подключения разнообразных устройств. Не касаясь "полез- ных" свойств ПУ, остановимся на их интерфейсной части, связанной с шиной USB.


Все устройства должны поддержи- вать набор общих операций, перечисленных ниже.

Динамическое подключение и отключение. Эти события от- слеживаются хабом, который сообщает о них хост-контрол- леру и выполняет сброс подключенного устройства. Устрой- ство после сигнала сброса должно отзываться на нулевой адрес, при этом оно не сконфигурировано и не приостанов- лено. После назначения адреса, за которое отвечает хост-кон- троллер, устройство должно отзываться только на свой уни- кальный адрес.

Конфигурирование

устройств, выполняемое хостом, являет- ся необходимым для их использования. Для конфигуриро- вания обычно используется информация, считанная из самого устройства. Устройство может иметь множество ин- терфейсов, каждому из которых соответствует собственная конечная точка, представляющая хосту функцию устройства. Интерфейс в конфигурации может иметь альтернативные наборы характеристик; смена наборов поддерживается про- токолом. Для поддержки адаптивных драйверов дескрипто- ры устройств и интерфейсов имеют поля класса, подкласса и протокола.

Передача данных

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

Управление энергопотреблением является весьма развитой функцией USB. Для устройств, питающихся от шины, мощ- ность ограничена. Любое устройство при подключении не должно потреблять от шины ток, превышающий 100 мА. Рабочий ток (не более 500 мА) заявляется в конфигурации, и если хаб не сможет обеспечить устройству заявленный ток, оно не конфигурируется и, следовательно, не может быть использовано.

Устройство USB должно поддерживать приостановку (Suspended Mode), в котором его потребляемый ток не пре- вышает 500 мкА. Устройство должно автоматически приос- танавливаться при прекращении активности шины.

Возможность удаленного пробуждения (Remote Wakeup) по- зволяет приостановленному устройству подать сигнал хост- компьютеру, который тоже может находиться в приостанов- ленном состоянии.


Возможность удаленного пробуждения описывается в конфигурации устройства. При конфигури- ровании эта функция может быть запрещена.

Хаб в USB выполняет коммутацию сигналов и выдачу пи- тающего напряжения, а также отслеживает состояние под- ключенных к нему устройств, уведомляя хост об изменени- ях. Хаб состоит из двух частей - контроллера (Hub Controller) и повторителя (Hub Repeater). Повторитель

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

Нисходящие (Downstream) порты

хабов могут находиться в следующих состояниях:

Powered ((питание отключено) - на порт не подается питание (возможно только для хабов, коммутирующих

питание). Выходные буферы переводятся в высокоимпе- дансное состояние, входные сигналы игнорируются.

Disconnected (отсоединен) - порт не передает сигналы ни в одном направлении, но способен обнаружить подключе- ние устройства (по отсутствию состояния SEO в течение 2,5 мкс). Тогда порт переходит в состояние Disabled,

а по уровням входных сигналов {DiffO или Diff1 в состоянии Idle) он определяет скорость подключенного устройства.

s Disabled (запрещен) - порт передает только сигнал сбро- са (по команде от контроллера), сигналы от порта (кро- ме обнаружения отключения) не воспринимаются. По обнаружении отключения (2,5 мкс состояния SEO)

порт переходит в состояние Disconnect, а если отключение об- наружено "спящим" хабом, контроллеру будет послан сигнал Resume.

ш Enabled (разрешен) - порт передает сигналы в обоих на- правлениях. По команде контроллера или по обнаруже- нии ошибки кадра порт переходит в состояние Disabled, а по обнаружении отключения - в состояние Disconnect.

Suspended (приостановлен) - порт передает сигнал пере- вода в состояние останова ("спящий" режим).


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

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

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

Хост-компьютер общается с устройствами через контроллер. Хост имеет следующие обязанности:

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

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

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

сбор статистики;

обеспечение энергосбережения подключенными ПУ.

Системное ПО контроллера управляет взаимодействием меж- ду устройствами и их ПО, функционирующим на хост-ком- пьютере, для согласования:

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

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

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

управления энергопотреблением;

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

По возможности ПО USB использует существующее систем- ное ПО хост-компьютера - например, Advanced Power Management для управления энергопотреблением.

7.2. Шина IEEE 1394-FireWire

Стандарт для высокопроизводительной последовательной шины (High Performance Serial Bus), получивший офици- альное название IEEE 1394, был принят в 1995 году. Целью являлось создание шины, не уступающей современным стан- дартным параллельным шинам, при существенном удешев- лении и повышении удобства подключения (за счет перехо- да на последовательный интерфейс). Стандарт основан на шине FireWire, используемой Apple Computer в качестве де- шевой альтернативы SCSI в компьютерах Macintosh и PowerMac. Название FireWire ("огненный провод") теперь применяется и к реализациям IEEE 1394, оно сосуществует с кратким обозначением 1394.



Преимущества FireWire

перед другими последовательными шинами:

s? Многофункциональность: шина обеспечивает цифровую связь до 63 устройств без применения дополнительной аппаратуры (хабов). Устройства - цифровые камкодеры, сканеры, принтеры, камеры для видеоконференций, дис- ковые накопители - могут обмениваться данными не только с PC, но и между собой. FireWire по инициативе VESA позиционируется и для "домашних сетей".

Высокая скорость обмена и изохронные передачи позво- ляют даже на начальном уровне (100 Мбит/с) передавать одновременно два канала видео (30 кадров в секунду) широковещательного качества и стереоаудиосигнал с ка- чеством CD.

s§ Низкая цена компонентов и кабеля.

si Легкость установки и использования. FireWire расши- ряет систему РпР. Устройства автоматически распозна- ются и конфигурируются при включении/отключении. Питание от шины (ток до 1,5 А) позволяет ПУ общать- ся с системой даже при отключении их питания. Управ- лять шиной и другими устройствами могут не только PC, но и другие "интеллектуальные" устройства, напри- мер VCR.

7.2.1. Структура и взаимодействие устройств шины

Стандарт 1394 определяет две категории шин: кабельные шины и кросс-шины (Backplane). Под кросс-шинами

обычно подразумеваются параллельные интерфейсы, объединяющие внутренние подсистемы устройства, подключенного к кабелю 1394.

В отличие от USB, управляемой одним хост-контроллером, стандарт 1394 допускает соединение равноправных устройств в сеть. Сеть может состоять из множества шин, соединенных мостами. В пределах одной шины устройства объединяются соединительными кабелями без применения дополнительных устройств. Мосты представляют собой специальные интел- лектуальные устройства. Интерфейсная карта шины FireWire для PC представляет собой мост PCI - 1394. Мостами яв- ляются также соединения кабельной шины 1394 с кросс- шинами устройств, 16-битная адресация узлов сети допус-

кает до 63 устройств в каждой шине, адресуемых 6-битным полем идентификатора узла. 10-битное поле идентификато- ра шины допускает использование в системе до 1023 мос- тов, соединяющих шины разного типа.



Кабельная шина

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

ssi между любой парой узлов может быть не более 16 ка- бельных сегментов;

длина сегмента стандартного кабеля не должна превы- шать 4,5 м;

2Й суммарная длина кабеля не должна превышать 72 м (при- менение более качественного кабеля позволяет ослабить это ограничение).

Некоторые устройства могут иметь только один разъем, что ограничивает возможные варианты их местоположения. Стандарт допускает до 27 разъемов на одном устройстве.






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