Студентам > Курсовые > Шина USB
Шина USBСтраница: 2/2
В
пакетах-маркерах IN, SETUP и OUT следующими являются адресные поля: 7-битный
адрес функции и 4-битный адрес конечной точки. Они позволяют адресовать до
127 функций USB (нулевой адрес используется для конфигурирования) и по 16
конечных точек в каждой функции.
В
пакете SOF имеется 11-битное поле номера кадра (Frame Number Field), последовательно
(циклически) увеличиваемое для очередного кадра.
Поле
данных может иметь размер от 0 до 1023 целых байт. Размер поля зависит от
типа передачи и согласуется при установлении канала.
Поле
СКС-кола присутствует во всех маркерах и пакетах данных, оно защищает все
поля пакета, исключая PID. CRC для маркеров (5 бит) и данных (11 бит) подсчитываются
по разным формулам.
Каждая
транзакция инициируется хост-контроллером посылкой маркера и завершается пакетом
квитирования. Последовательность пакетов в транзакциях иллюстрирует рис. 7.7.
Хост-контроллер
организует обмены с устройствами согласно своему плану распределения ресурсов.
Контроллер циклически (с периодом 1 мс) формирует кадры (Frames), в которые
укладываются все запланированные транзакции. Каждый кадр начинается с посылки
маркера SOF (Start Of Frame), который является синхронизирующим сигналом для
всех устройств, включая хабы. В конце каждого кадра выделяется интервал времени
EOF (End Of Frame), на время которого хабы запрещают передачу по направлению
к контроллеру. Каждый кадр имеет свой номер. Хост-контроллер оперирует 32-битным
счетчиком, но в маркере SOF передает только младшие 11 бит. Номер кадра увеличивается
(циклически) во время EOF. Хост планирует загрузку кадров так, чтобы в них
всегда находилось место для транзакций управления и прерывания. Свободное
время кадров может заполняться сплошными передачами (Bulk Transfers).
Рис.
7.8. Поток кадров USB
Для
изохронной передачи важна синхронизация устройств и контроллера. Есть три
варианта:
*
синхронизация внутреннего генератора устройства с маркерами SOF;
*
подстройка частоты кадров под частоту устройства;
*
согласование скорости передачи (приема) устройства с частотой кадров.
Подстройка
частоты кадров контроллера возможна, естественно, под частоту внутренней синхронизации
только одного устройства. Подстройка осуществляется через механизм обратной
связи, который позволяет изменять период кадра в пределах ±1 битового интервала.
8. Системное
конфигурирование
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 (сконфигурировано).
Теперь хаб позволяет устройству потреблять от шины полный ток, заявленный
в конфигурации. Устройство готово.
Когда
устройство отключается от шины, хаб уведомляет об этом хост и работа порта
запрещается, а хост обновляет свою текущую топологическую информацию.
9. Устройства 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). Это позволяет
хост-контроллеру быстро узнать состояние хаба, а в случае
обнаружения изменений специальными транзакциями уточнить состояние.
10. Хост-контроллер
Хост-компьютер
общается с устройствами через контроллер.Хост имеет следующие
обязанности:
*
обнаружение подключения и отсоединения устройств USB;
*
манипулирование потоком управления между устройствами и хостом;
*
управление потоками данных;
*
сбор статистики;
*
обеспечение энергосбережения подключенными ПУ.
Системное
ПО контроллера управляет взаимодействием между устройствами и их ПО, функционирующим
на хост-компьютере, для согласования:
*
нумерации и конфигурации устройств;
*
изохронных передач данных;
*
асинхронных передач данных;
*
управления энергопотреблением;
*
информации об управлении устройствами и шиной.
По
возможности ПО USB использует существующее системное
ПО
хост-компьютера - например, Advanced Power Management для управления
энергопотреблением.
Список использованной литературы
Интерфейсы
персонального компьютера (электронное
издание).
- Propaganda Art's, 1999г.-
385с.
Copyright © Radioland. Все права защищены. Дата публикации: 2004-09-01 (0 Прочтено) |