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

USB высокоскоростная последовательная магистраль для подключения периферийных устройств - Барбара Ханлон

.pdf
Скачиваний:
73
Добавлен:
24.05.2014
Размер:
256.85 Кб
Скачать

USB: Высокоскоростная

последовательная магистраль

для подключения

периферийных устройств

2

USB: Высокоскоростная

 

последовательная магистраль для

 

подключения периферийных

 

устройств

 

Содержание

 

Вступление .........................................................................................................................................................................

3

Переход к USB ..................................................................................................................................................................

3

Физическая среда USB .............................................................................................................................................

4

Быстродействие USB/устройств ....................................................................................................................

4

Физическая топология ............................................................................................................................................

4

Передача напряжения питания ......................................................................................................................

5

Кабельные разъемы....................................................................................................................................................

6

Логическая архитектура ........................................................................................................................................

6

Обмен информацией по шине USB ............................................................................................................

7

Уровень клиентского программного обеспечения .....................................................................

7

Уровень системного обеспечения USB ...................................................................................................

8

USB/драйвер ......................................................................................................................................................................

9

Драйвер контроллера хоста ...............................................................................................................................

9

Уровень хост/контроллера интерфейса шины USB ...................................................................

9

Уровень интерфейса шины USB ................................................................................................................

10

Уровень логического USB/устройства .................................................................................................

10

Функциональный уровень ...............................................................................................................................

10

Типы передачи данных .......................................................................................................................................

11

Приоритеты передач по шине USB .........................................................................................................

12

Развитие рынка USB/технологии ..............................................................................................................

13

Конкурирующие технологии .......................................................................................................................

13

Заключение ....................................................................................................................................................................

15

Справочная литература ......................................................................................................................................

15

ZyXEL Communications Corporation Московское представительство 117279, Москва, ул. Островитянова, 37а телефон: 42002334, 33603325 интернет: www.zyxel.ru

e0mail: support@zyxel.ru

Август, 1999 г.

по материалам журнала "Мир компьютерной автоматизации (МКА), номер 1 за 1999 год

3

Вступление

Универсальная последовательная шина USB (Universal Serial Bus) / это кабельная шина, обеспечивающая высокоскоростной обмен информацией между хост/системой

иразличными периферийными устройствами. Шина USB разрабатывалась как удобное и универсальное средство подключения периферийных устройств к настольным компьютерам без необходимости выключения питания с поддержкой установки и удаления периферийных модулей в процессе работы. В статье кратко описываются цели комитета по USB, дается введение в USB/стандарт и описание структуры физических кабелей и соединителей, физической

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

Шина USB была разработана консорциумом производителей телекоммуникационного и компьютерного оборудования, в число которых входили фирмы Compaq, DEC, IBM, Intel, Microsoft, NEC и Northern Telecom. Главная цель этих работ / обеспечить механизм взаимодействия компьютерных и телефонных систем.

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

Комитет по USB ставил перед собой следующие задачи:

представить архитектуру, обеспечивающую связь между настольными компьютерами и телефонными сетями;

разработать архитектуру,

действительно обеспечивающую простоту подключения и реконфигурации периферийных устройств;

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

Рисунок 1 0 Подключение периферийных устройств

Переход к USB

Несмотря на прекрасную проработку USB, производители настольных компьютеров не собираются тут же переключаться на эту технологию. Скорее, это будет поэтапный процесс, в ходе которого компьютеры будут одновременно оснащаться как USB/портом (или двумя USB/портами), так и традиционными интерфейсами ввода/вывода. Тем временем производители аппаратных и

4

программных средств успеют подготовиться к переходу на шину USB.

Хотя на сегодняшний день и существует несколько других конкурирующих архитектур ввода/ вывода, возможно, USB станет доминирующей технологией на рынке ввода/вывода настольных систем (см. врезку " Конкурирующие технологии ").

Низкоскоростные

устройства

Низкоскоростные устройства (как правило, это переключатели, мыши, джойстики и клавиатуры) передают данные со скоростью 1,5 Мбит/с. Стоимость таких устройств может быть достаточно низкой благодаря тому, что соединительные кабели могут быть неэкранированными.

Физическая среда USB

Шина USB, обладая полосой пропускания 1,5 или 12 Мбит/с, может одновременно поддерживать до 127 устройств, подключенных к одному кабелю с максимальной длиной 5 м. USB/кабель состоит из 4 проводников:

два провода формируют витую пару, применяемую в дифференциальных передачах данных;

остальные два представляют собой линии питания и заземления устройств, не имеющих собственного источника питания 5 В постоянного напряжения.

Быстродействие

USB%устройств

В соответствии со спецификацией шины USB периферийные устройства делятся на два основных типа:

низкоскоростные;

высокоскоростные.

Высокоскоростные

устройства

Высокоскоростные устройства / это устройства, передающие данные со скоростью 12 Мбит/с (например, видеоустройства, диски и сетевые адаптеры). Как и следует ожидать, устройства этого типа проектируются с учетом обеспечения высокой производительности, и поэтому поддержка повышенной скорости передачи данных обходится здесь дороже.

Физическая

топология

Архитектура USB поддерживает построение такой иерархической топологии, в которой "нижележащие" концентраторы и устройства подключаются к "вышележащим" по типу "звезда", при этом вдоль каждого пути может быть не более 5 концентраторов. На рисунке 2 показана структура этой иерархии. Концентраторы / это интеллектуальные устройства, которые работают не только как ретрансляторы и маршрутизаторы сигналов, но и обеспечивают некоторые основные функции управления [З].

Главный концентратор (в хост/ контроллере USB) представляет собой конечный пункт для всех USB/

5

портов системы. Обмен данными между главным концентратором и USB/устройством происходит в двух направлениях:

Вниз: информация передается от главного концентратора по сигнальным линиям через промежуточные концентраторы, пока не достигнет требуемого периферийного устройства.

Вверх: информация передается от периферийного устройства по сигнальным линиям через промежуточные концентраторы, пока не достигнет главного концентратора.

Рисунок 2 0 Топология подключений

Передача

напряжения

питания

Каждый USB/концентратор или периферийное устройство может запитываться либо от собственного источника питания, либо от шины. USB/устройства, в зависимости от способа получения питания, можно распределить по 5 категориям:

концентраторы с питанием от шины;

концентраторы с собственным питанием;

маломощные периферийные устройства с питанием от шины;

мощные периферийные устройства с питанием от шины;

периферийные устройства с собственным источником питания.

Напряжение постоянного тока подается от главного концентратора внизпо иерархии [4]. Максимальный ток, потребляемый каждым устройствомот шины, составляет 500 мА при напряжении 5 В, при этом пусковой токне может превышать 100 мА.

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

Для предотвращения отказов источников постоянного тока главный и все промежуточные концентраторы с собственным питанием должны иметь схемы защиты своих источников от перегрузки по току. Если какой/либо концентратор обнаруживает, что общий ток потребления нижележащими устройствами превышает 5 А, то он должен всех их обесточить и уведомить хост/ контроллер о возникшей ситуации [1].

6

Кабельные

разъемы

Некоторые USB/устройства (типа клавиатур, мышей и концентраторов) имеют свои собственные постоянно подключенные "входные" соединительные кабели. Другие же устройства (типа модемов, принтеров и сканеров) должны подключаться разъемными кабелями.

Рисунок 3 0 Возможные ошибки соединения

Комитет по USB поставил перед собой цель разработать механизм, предотвращающий ошибки соединений разъемными кабелями (см. рисунок 3) типа:

соединения выходного порта одного концентратора с выходным портом другого,

поскольку это приводит к образованию замкнутых контуров

в иерархии USB;

соединения входного порта одного устройства с входным портом другого, поскольку в этом случае оба устройства "изымаются" из иерархии.

Для предотвращения подобных соединений комитет по USB предложил оснащать съемные USB/ кабели различными разъемами:

на "входном" конце кабеля должен находиться разъем "Типа А" для подключения к выходному порту концентратора;

на "выходном" конце кабеля должен быть разъем "Типа В" для подключения его к входному порту USB/устройства.

Логическая

архитектура

На рисунке 4 показана логическая топология архитектуры USB. Хотя физически устройства подключаются к шине USB в многоуровневой звездообразной манере, детали этой физической иерархии скрыты от прикладных программ в системном ПО, и каждое логическое устройство представляется прикладной программе как некоторый набор

конечных точек подключения.

Рисунок 4 0 Логическая топология

7

Приложение ведет обмен информацией с каждой конечной точкой [1]. На рисунке 4 такое логическое соединение с каждой конечной точкой устройства представлено отрезком.

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

Обмен информацией по шине USB

Все операции по передаче данных по шине USB инициируются хостом. Периферийные USB/устройства сами начать обмен данными не могут. Они могут только реагировать на команды хоста [5]. Как только прикладная программа хоста затребует передачу информации, системные программы хоста инициируют ее независимо от направления пересылки данных: от

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

Как показано на рисунке 5, в обмене данными между хостом и периферийным USB/устройством задействовано 3 уровня программного обеспечения. Эти три уровня обеспечивают логический интерфейс между прикладной программой хоста и требуемым USB/ устройством.

Все операции по обмену данными между прикладной программой и шиной USB выполняются путем передачи буферов памяти через:

уровень клиентского программного обеспечения в хосте;

уровень системного обеспечения USB в хосте;

хост/контроллер интерфейса шины USB.

Уровень

клиентского

программного

обеспечения

Уровень клиентского программного обеспечения (рисунок 5) определяет тип передачи данных, необходимый для выполнения затребованной прикладной программой операции.

Рисунок 5 0 Логическая схема передачи информации по шине USB

8

После определения типа передачи данных этот уровень передает системному уровню следующее:

буфер памяти, называемый

клиентским буфером;

пакет запроса на ввод/вывод, указывающий тип необходимой операции ввода/вывода.

Уровень

системного обеспечения USB

Уровень системного обеспечения USB (рисунок 5) необходим для управления ресурсами шины USB [З]. Он выполняет:

распределение полосы пропускания шины USB;

назначение логических адресов устройств каждому физическому USB/устройству;

планирование обработки транзакций прерывания (interrupt transaction service).

Распределение полосы пропускания

В зависимости от требований к полосе пропускания, операции по пересылке данных по шине USB можно разделить на 3 категории [2]:

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

групповые передачи данных (большого объема), не требующие гарантированной минимальной полосы пропускания;

передачи управляющих сигналов с гарантированным выделением

10% полосы пропускания шины.

До установления каналов для изохронных передач и передач сигналов прерываний из хоста в конечную точку какого/либо устройства системное программное обеспечение USB должно сначала определить, может ли шина USB обеспечить минимальную требуемую полосу пропускания для данной точки.

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

Хранящееся в дескрипторе значение определяет, какая доля пропускной способности шины необходима для передачи информации в/от конечной точки. При этом, однако, не учитываются никакие накладные расходы. Для определения общей потребности для поддержки канала к каждой конечной точке системное обеспечение USB учитывает следующее:

число байтов данных;

тип передачи данных;

время восстановления хоста;

время заполнения битами;

уровень вложенности топологии.

Планирование процедуры прерывания

Программное обеспечение шины USB должно определять также частоту опроса каждой конечной

9

точки. Термин "передача прерываний" (который является одним из "официальных" определений типов передач, предложенных комитетом по USB) здесь несколько неверен. Шина USB не обеспечивает никакой поддержки прерываний (в том смысле, каком мы привыкли их понимать).

Транзакции на шине USB может запускать только хост. Он периодически опрашивает каждую конечную точку, которой может понадобиться обслуживание со стороны хоста (эти точки называются прерывающими конечными точками). Значение интервала опроса каждой такой точки хранится в ее дескрипторе. Сам дескриптор хранится в ЭСППЗУ того периферийного устройства, с которым идентифицируется данная конечная точка. Системные программы считывают значение интервала опроса во время процесса определения устройств при начальной инициализации системы.

Системное программное обеспечение USB

Хотя из рисунка 5 структура системного обеспечения USB не видна, на самом деле она состоит из "старшей" и "младшей" частей:

старшая часть / это драйвер USB;

младшая часть / это драйвер контроллера хоста.

USB%драйвер

Доступ к USB/устройствам клиентскому уровню хоста предоставляется драйвером в фазе конфигурирования шины USB. В нормальных условиях драйвер обеспечивает доступ к USB/ устройствам со стороны прикладных программ.

Когда клиентский уровень передает командные запросы (Instruction Request Packets) уровню системного обеспечения USB, USB/драйвер преобразует их в одну или несколько транзакций шины и затем передает получившийся перечень транзакций драйверу контроллера хоста.

Драйвер

контроллера

хоста

Драйвер контроллера хоста принимает от драйвера шины перечень транзакций и выполняет следующее:

планирует исполнение полученных транзакций, добавляя их к списку транзакций;

извлекает из списка очередную транзакцию и передает ее уровню хост/контроллера интерфейса шины USB;

отслеживает состояние каждой транзакции вплоть до ее завершения.

При выполнении всех связанных с командным пакетом транзакций системный уровень уведомляет об этом клиентский уровень.

Уровень хост% контроллера интерфейса шины USB

Уровень хост/контроллера интерфейса шины USB (рисунок 5) получает отдельные транзакции от драйвера контроллера хоста (в составе уровня системного обеспечения USB) и преобразует их

10

в соответствующую последовательность операций шины. В результате этого USB/ пакеты передаются вдоль всей физической иерархии концентраторов (показанных на рисунке 5 как один USB/кабель) до периферийного USB/устройства (на правой стороне рисунка 5).

Уровень интерфейса шины USB

Нижний уровень периферийного USB/устройства (рисунок 5) называется уровнем интерфейса шины USB. Он взаимодействует с интерфейсным уровнем шины USB на стороне хоста и передает пакеты данных от хоста периферийному устройству в формате, определяемом спецификацией USB. Затем он передает пакеты вверх уровню логического USB/устройства.

Уровень логического USB% устройства

Средний уровень периферийного USB/устройства (рисунок 5) называется уровнем логического USB/устройства. Каждое логическое USB/устройство представляется набором своих конечных точек, с которыми может взаимодействовать системный уровень USB/хоста.

Высокоскоростные устройства могут иметь до 16 входных и 16 выходных конечных точек.

Низкоскоростные устройства могут иметь не более 3 конечных точек.

Эти точки являются источниками и приемниками всех коммуникационных потоков между

хостом и периферийными USB/ устройствами. Каждая конечная точка имеет свой набор характеристик передачи информации [З]. В частности, для каждой конечной точки определены только одно направление и один тип передачи данных (см. врезку " Типы передачи данных ", содержащий описание всех четырех типов передачи данных, определенных спецификацией шины USB).

Функциональный

уровень

Самый верхний уровень периферийного USB/устройства (рисунок 5) называется функциональным уровнем. Этот уровень соответствует уровню клиентского обеспечения хост/ системы.

С точки зрения клиентского уровня, нижележащие уровни нужны для организации между ним и конечными точками прямых "каналов данных", которые идут вплоть до функционального уровня периферийного устройства.

Функциональный же уровень:

получает данные, посылаемые клиентским уровнем хоста из конечных точек каналов данных нижележащего уровня логического USB/устройства;

посылает данные клиентскому уровню хоста, направляя их в конечные точки каналов данных нижележащего уровня логического USB/устройства.

Упомянутые каналы данных организуются во время конфигурирования USB/устройства, в процессе, называемом процессом определения устройств (device enumeration). Каждый канал создает взаимосвязь между конечной точкой