Будь умным!


У вас вопросы?
У нас ответы:) SamZan.ru

ЛЕКЦІЯ 13 УНІВЕРСАЛЬНА ПОСЛІДОВНА ШИНА USB

Работа добавлена на сайт samzan.ru: 2015-07-10


ЛЕКЦІЯ №13.  УНІВЕРСАЛЬНА ПОСЛІДОВНА ШИНА USB.

USB (Universal Serial Bus универсальная последовательная шина) является промышленным стандартом расширения архитектуры PC, ориентированным на интеграцию с телефонией и устройствами бытовой электроники. Версия стандарта 1.0 была опубликована в 1996 году, большинство устройств поддерживают стандарт 1.1 (1998 г.), в нем были устранены обнаруженные проблемы первой редакции. В спецификации USB 2.0 радикально повышена пропускная способность шины. Первоначально (в версиях 1.0 и 1.1) шина обеспечивала две скорости передачи информации: полную скорость (Full Speed, FS) 12 Мбит/с и низкую скорость (Low Speed, LS) 1,5 Мбит/с. В версии 2.0 определена еще и высокая скорость (High Speed, HS) 480 Мбит/с, что позволяет существенно расширить круг устройств, подключаемых к шине. В одной и той же системе могут присутствовать и одновременно работать устройства со всеми тремя скоростями. Шина позволяет с использованием промежуточных хабов соединять устройства, удаленные от компьютера на расстояние до 30 м. Подробную и оперативную информацию по USB (на английском языке) можно найти на сайте http://www.usb.org. Разработку устройств, их классификацию и стандартизацию координирует организация USB-IF (USB Implemented Forum, Inc.).

 Архитектура USB.

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

  •  хост отвечает за конфигурирование всех устройств;
  •  хост управляет всеми обменами (транзакциями) на шине;
  •  обмен информацией возможен только между хостом (его памятью) и устройствами однорангового взаимодействия устройств шина USB не позволяет.

Ниже перечислены компоненты аппаратной части USB:

  •  Периферийные устройства USB выполняют полезные функции (USB-func- tions).

Хост-контроллер (host controller) обеспечивает связь шины с ядром компьютера. Хост-контроллер объединяется с корневым хабом (root hub), организующим точки подключения устройств USB. Существует 2 варианта хост- контроллеров USB 1.x универсальный (Universal Host Controller, UHC) и открытый (Open Host Controller, OHC). Оба варианта поддерживают скорости FS/LS; высокую скорость шины USB 2.0 (HS и только) поддерживает расширенный хост-контроллер (Enhanced Host Controller, ЕНС).

  •  Хабы USB (USB hubs) обеспечивают дополнительные точки подключения устройств.
  •  Кабели USB соединяют устройства с хабами.

Ниже перечислены компоненты программной части USB:

  •  Клиентское ПО (Client Software, CSw) это драйверы устройств USB, обеспечивающие доступ к устройствам со стороны прикладного ПО. Драйверы взаимодействуют с устройствами только через программный интерфейс с общим драйвером USB (USBD). Непосредственного обращения к каким-либо регистрам аппаратных средств драйверы устройств USB не выполняют.
  •  Драйвер USB (USB Driver, USBD) «заведует» всеми устройствами USB системы, их нумерацией, конфигурированием, предоставлением служб, распределением пропускной способности шины, мощности питания и т. п.
  •  Драйвер хост-контроллера (Host Controller Driver, HCD) преобразует запросы ввода-вывода в структуры данных, размещенные в коммуникационной области оперативной памяти, и обращается к регистрам хост-контроллера. Хост-контроллер выполняет физические транзакции, используя эти структуры данных.

Работой всех устройств шины USB управляет хост-контроллер  программно-аппаратная подсистема хост-компьютера. Хост-контроллер является интеллектуальным устройством шины PCI или составной частью «южного» хаба (моста) системной платы, интенсивно взаимодействующей с оперативной памятью.

Программная часть хоста в полном объеме реализуется операционной системой. До загрузки ОС может функционировать лишь усеченный фрагмент программной части USB, поддерживающий только те устройства, которые требуются для загрузки. В спецификации РС'2001 к BIOS выдвигается требование поддержки USB в такой мере, чтобы ОС могла загружаться с устройств USB. Современные версии BIOS обеспечивают возможность загрузки с устройств хранения, подключенных к USB: винчестеров, CD/DVD и флэш-карт. После загрузки системы эта «дозагрузочная» поддержка игнорируется система начинает работу с контроллером «с чистого листа», то есть со сброса и определения всех подключенных устройств.

В BIOS современных системных плат имеется поддержка традиционного интерфейса клавиатуры и мыши, подключаемых через контроллер 8042. В хост- контроллерах UHC и ОН С для этого имеются аппаратные средства, перехватывающие обращения к портам 60h и 64h пространства ввода/вывода (это порты контроллера 8042). При разрешенной эмуляции старых устройств (legacy input devices) по обращениям ПО к этим портам контроллер вызывает прерывание SMI (System Management Interrupt прерывание системного управления), обрабатывающееся в ПК на процессорах х86 в режиме SMM (System Management Mode режим системного управления) невидимо для обычных программ. Обработчик SMI, перехватывающий эти обращения, формирует последовательности действий, необходимые для их исполнения с помощью клавиатуры и/или мыши USB. В ОНС имеются специальные регистры, упрощающие задачу эмуляции.

Топология шины

Физическое устройство USB должно иметь интерфейс USB, обеспечивающий полную поддержку протокола USB, выполнение стандартных операций (конфигурирование и сброс) и предоставление информации, описывающей устройство. Физические устройства USB могут быть комбинированными (compound devices): включать в себя несколько устройств-функций, подключенных к внутреннему хабу, а также предоставлять своим внутренним хабом дополнительные внешние точки подключения.

Физическая топология USB многоярусная «звезда» (рис.1, а). Ее вершиной является хост-контроллер, объединенный с корневым хабом. Хаб является устройством-разветвителем; к тому же он может служить источником питания для подключенных к нему устройств. К каждому порту хаба может непосредственно подключаться периферийное устройство или промежуточный хаб; шина допускает до 5 уровней каскадирования хабов (не считая корневого). Поскольку комбинированные устройства содержат внутри себя хаб, их подключение к хабу 5-го уровня уже недопустимо. Каждый промежуточный хаб имеет несколько нисходящих (downstream) портов для подключения периферийных устройств (или нижележащих хабов) и один восходящий (upstream) порт для подключения к корневому хабу или нисходящему порту вышестоящего хаба.

Рисунок 1 – Различные  взгляды на отношенияв USB: а) физическая топология, б) логическая.

Логическая топология USB  «звезда». Хабы (включая корневой) создают иллюзию непосредственного подключения каждого логического устройства к хост- контроллеру (рис.1, б). В этой «звезде» устанавливаются сугубо подчиненные отношения по системе опроса-ответа: хост-контроллер по своей инициативе передает данные выбранному устройству или принимает их. Устройство по своей инициативе передавать данные не может; непосредственные передачи данных между устройствами невозможны. Устройство по своей инициативе может лишь сигнализировать о пробуждении (wakeup), для чего используется специальная сигнализация, но не передача данных.

Физический интерфейс USB прост и изящен. Конструкция кабелей и коннекторов USB (рис.2, а и б) не дает возможности ошибиться при подключении устройств. Для распознавания разъема USB на корпусе устройства ставится стандартное символическое обозначение (рис. 2, в). Гнезда типа А устанавливаются только на нисходящих портах хабов, вилки типа А на шнурах периферийных устройств или восходящих портов хабов. Гнезда и вилки типа В используются только для шнуров, отсоединяемых от периферийных устройств и восходящих портов хабов (от «мелких» устройств мышей, клавиатур и т. п. кабели, как правило, не отсоединяются). Для малогабаритных устройств имеются разъемы mini-B, а для поддержки расширения OTG  имеются вилки mini-A и розетки mini-AB. Хабы и устройства обеспечивают возможность «горячего» подключения и отключения с сигнализацией об этих событиях хосту.

Рисунок 2 – Конектор USB: а) вилка типа А, б) вилка типа В, в) символическое обозначение.

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

Логическое устройство USB представляет собой набор независимых конечных точек (Endpoint, ЕР), с которыми хост-контроллер (и клиентское ПО) обменивается информацией. Каждому логическому устройству USB (как функции, так и хабу) конфигурационная часть ПО хоста назначает свой адрес (1-127), уникальный на данной шине USB. Каждая конечная точка логического устройства идентифицируется своим номером (0-15) и направлением передачи (IN передача к хосту, OUT  от хоста). Точки IN4 и OUT4, к примеру, представляют собой разные конечные точки, с которыми могут общаться даже разные модули клиентского ПО. Набор конечных точек зависит от устройства, но всякое устройство USB обязательно имеет двунаправленную конечную точку 0 (ЕР0)> через которую осуществляется его общее управление. Для прикладных целей используются конечные точки с номерами 1...15 (1, 2 для низкоскоростных устройств). Адрес устройства, номер и направление конечной точки однозначно идентифицируют приемник или источник информации на данной шине при обмене хост-контроллера с устройствами USB. Каждая конечная точка имеет набор характеристик, описывающих поддерживаемый тип передачи данных (изохронные данные, массивы, прерывания, управляющие передачи, см. далее), размер пакета, требования к частоте обслуживания.

Устройство может решать несколько функциональных задач: например, привод CD-ROM может обеспечивать проигрывание аудиодисков и работать как устройство хранения данных. При этом в устройстве определяются интерфейс набор конечных точек, предназначенных для решения данной задачи, и правила их использования. Таким образом, каждое устройство должно предоставлять один или несколько интерфейсов. Наличие нескольких интерфейсов позволяет нескольким драйверам, каждый из которых обращается только к своему интерфейсу (представляющему часть устройства USB), работать с одним и тем же устройством USB. Каждый интерфейс может иметь один или несколько альтернативных вариантов (альтернативных установок alternate settings), из которых в данный момент активным может быть только один. Варианты различаются наборами (возможно, и характеристиками) используемых конечных точек.

Набор одновременно поддерживаемых интерфейсов составляет конфигурацию устройства. Устройство может иметь одну или несколько возможных конфигураций, из которых на этапе конфигурирования хоcт выбирает одну, делая ее активной. От выбранной конфигурации зависят доступная функциональность и зачастую потребляемая мощность. Пока устройству не назначен номер выбранной конфигурации, оно не может функционировать в прикладном смысле, и ток потребления от шины не должен превышать 100 мА. Хост выбирает конфигурацию, исходя из доступности всех ресурсов, затребованных данной конфигурацией, включая и ток потребления от шины.

 Модель передачи данных

Архитектура USB допускает четыре базовых типа передач данных между хостом и периферийными устройствами:

Изохронные передачи (isochronous transfers) потоковые передачи в реальном времени, занимающие предварительно согласованную часть пропускной способности шины с гарантированным временем задержки доставки. На полной скорости (FS) можно организовать один канал с полосой до 1,023 Мбайт/с (или два по 0,5 Мбайт/с), заняв 70 % доступной полосы (остаток можно занять и менее емкими каналами). На высокой скорости (HS) можно получить канал до 24 Мбайт/с (192 Мбит/с). Надежность доставки не гарантаруется в случае обнаружения ошибки изохронные данные не повторяются, недействительные пакеты игнорируются. Шина USB позволяет с помощью изохронных передач организовывать синхронные соединения между устройствами и прикладными программами. Изохронные передачи нужны для потоковых устройств: видеокамер, цифровых аудиоустройств (колонки USB, микрофон), устройств воспроизведения и записи аудио- и видеоданных (CD и DVD). Видеопоток (без компрессии) шина USB способна передавать только на высокой скорости.

  •  Прерывания (interrupts) передачи спонтанных сообщений, которые должны выполняться с задержкой не большей, чем требует устройство. Предел времени обслуживания устанавливается в диапазоне 10-255 мс для низкой и 1-255 мс для полной скорости. На высокой скорости можно заказать и 125 мкс. Доставка гарантирована, при случайных ошибках обмена выполняется повтор (правда, при этом время обслуживания увеличивается). Прерывания используются, например, при вводе символов с клавиатуры или передаче сообщений о перемещениях мыши. Прерываниями можно передавать данные и к устройству (как только устройство сигнализирует о потребности в данных, хост своевременно их передает). Размер сообщения может составлять 0-8 байт для низкой скорости, 0-64 байт для полной и 0-1024 байт для высокой скорости передачи.
  •  Передачи массивов данных (bulk data transfers) это передачи без каких-либо обязательств по своевременности доставки и по скорости. Передачи массивов могут занимать всю полосу пропускания шины, свободную от передач других типов. Приоритет этих передач самый низкий, они могут приостанавливаться при большой загрузке шины. Доставка гарантированная при случайной ошибке выполняется повтор. Передачи массивов уместны для обмена данными с принтерами, сканерами, устройствами хранения и т. п.
  •  Управляющие передачи (control transfers) используются для конфигурирования устройств во время их подключения и для управления устройствами в процессе работы. Протокол обеспечивает гарантированную доставку данных и подтверждение устройством успешности выполнения управляющей команды. Управляющая передача позволяет подать устройству команду (запрос, возможно, с дополнительными данными) и получить на него ответ (подтверждение или отказ от выполнения запроса и, возможно, данные). Только управляющие передачи на USB обеспечивают синхронизацию запросов и ответов; в остальных типах передач явной синхронизации потока ввода с потоком вывода нет.

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

Рисунок 3 – Отношение клиенского ПО(CSw) с интерфейсами устройств USB.

Запросы, пакеты и транзакции

Для передачи или приема данных клиентское ПО посылает каналу пакет запроса ввода-вывода (Input/Output Request, IRP) и ждет уведомления о завершении его отработки. Формат IRP определяется реализацией драйвера USBD в конкретной ОС. В IRP имеются только сведения о запросе (местоположение буфера передаваемых данных в оперативной памяти и длина передачи); от свойств конкретного текущего подключения (скорость, допустимый размер пакета) драйвер устройства абстрагируется. Отработкой запроса в виде транзакций на шине USB занимается драйвер USBD; он при необходимости длинные запросы разбивает на части (пакеты), пригодные для передачи за одну транзакцию. Транзакция на шине USB это последовательность обмена пакетами между хостом и ПУ, в ходе которой может быть передан или принят один пакет данных (возможны транзакции, в которых данные не передаются). Отработка запроса считается завершенной в случае успешного выполнения всех связанных с ним транзакций. «Временные трудности», встречающиеся при их выполнении (неготовность к обмену данными), до сведения клиентского драйвера не доводятся ему остается только ждать завершения обменов (или выхода по тайм-ауту). Однако устройство может сигнализировать о серьезных ошибках (ответом STALL), что приводит к аварийному завершению запроса; о последнем уведомляется клиентский драйвер. В этом случае отбрасываются и все последующие запросы к данному каналу. Возобновление работы с данным каналом возможно лишь после явного уведомления об обработке ошибочной ситуации, которое драйвер устройства делает с помощью специального запроса (тоже вызова USBD).

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

Кабели и разъемы

Кабель USB содержит две пары проводов: одну для сигнальных цепей (D+ и D-) и одну для схемной «земли» (GND) и питания +5 В (Vbus). Допустимая длина сегмента (кабеля от устройства до хаба) до 5 м. Ограничения на длину сегмента диктуются затуханием сигнала и вносимыми задержками. Максимальное удаление устройства от хост-контроллера составляет 30 м (5 хабов, 6 кабельных сегментов). Оно определяется задержкой, вносимой кабелями, промежуточными хабами и самими устройствами.

В кабеле USB 1.x используются витая пара проводов для сигнальных цепей и неперевитая пара для питания; требований к экранированию кабелей не выдвигалось. Для низкой скорости может применяться кабель с неперевитой парой сигнальных проводов (он тоньше и дешевле), но его длина не должна превышать 3 м.

В кабелях USB 2.0 обязателен экран и связанный с ним дополнительный проводник. Такой кабель пригоден для работы на любых скоростях, включая и HS (480 Мбит/с).

Разъемы USB сконструированы с учетом простоты подключения и отключения устройств. Для реализации «горячего» подключения разъемы обеспечивают более раннее соединение и более позднее отсоединение питающих цепей по отношению к сигнальным. В USB определено несколько типов разъемов:

  •  А. Гнезда (рис. 4, а) устанавливаются на нисходящих портах хабов, это стандартные порты подключения устройств. Вилки типа А устанавливаются на шнурах периферийных устройств или восходящих портов хабов.
  •  В. Разъемы этого типа используются для шнуров, отсоединяемых от периферийных устройств, и восходящих портов хабов (от «мелких» устройств мышей, клавиатур и т. п. кабели, как правило, не отсоединяются). На устройстве устанавливается гнездо (рис. 4, б), на кабеле вилка.

Рисунок 4 – Разъёмы USB: а) гнездо А,   б) гнездо В,  в) гнездо mini-B,   г)вилка mini,

д)   вилка mini-А, е) гнездо mini-АВ.

  •  Mini-B. Разъемы этого типа (рис. 17.5, в, г) используются для отсоединяемых шнуров малогабаритных устройств.
  •  Mini-A. Этот тип (рис. 4, д) введен в спецификации OTG , вилки используются для подключения к портам малогабаритных устройств с гнездом mini-AB.
  •  Mini-AB. Гнезда (рис.4, е) введены в спецификации OTG для портов двухролевых устройств, которые могут вести себя как хост (если в гнездо вставлена вилка mini-A) или как периферийное устройство (если в гнездо вставлена вилка mini-B).

Назначение выводов разъемов USB приведено в табл.1, нумерация контактов показана на рис. 4. Штырьковые разъемы, устанавливаемые на системной плате (рис.5), предназначены для кабелей-«выкидышей», которыми подключаются дополнительные разъемы USB, устанавливаемые на передней или задней стенках корпуса компьютера (иногда на боковых). На эти разъемы порты выводятся парами, причем у разных производителей подход к универсальности и защите от ошибочных подключений различен. Подключение «выкидыша», не подходящего к разъему, приводит к неработоспособности порта (к счастью, как правило, временной). Ошибка в подключении цепей GND и +5V может приводить к нагреванию кабелей и разъемов из-за короткого замыкания питающей цепи.

Рисунок 5 – Варианті USB на системной плате.

ВНИМАНИЕ

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

Таблица 1.

Цепь

Контакт стандартного разъема

Контакт мини-разъема

Vbus (+5 В)

1

1

D-

2

2

D+

3

3

GND

4

5

ID

-

4

Все кабели USB «прямые» в них соединяются одноименные цепи разъемов, кроме цепи ID, используемой для идентификации роли устройства в OTG. На вилке mini-A контакт 4 (ID) соединен с контактом 5 (GND), что заставляет порт, к которому подсоединена такая вилка, взять на себя роль нисходящего порта хаба. На вилке mini-B такого соединения нет.




1. Величайшие дворцы Флоренции
2. Израиль
3. Камчатский государственный университет имени Витуса Беринга УТВЕРЖДАЮ Зав
4. Lit june des drps blncs et une portefen~tre
5. М Вебер концепция социального действия и его типов
6. Корпоративные стандарты ресторанных сетей в России
7. Понятие анемии. 2.html
8. Остеохандроз и его профилактика
9. Реферат- Электроразведочная аппаратура
10. Республиканские правила аудиторской деятельности и международные стандарты аудита- сравнение
11. тема отсчета используется для описания движения.
12. аналіз SWOТаналіз це аналіз зовнішнього та внутрішнього середовища організації
13. Материальная культура Москвы XVI в
14. 34 Ауд
15. Введение 1 Постановка задачи 2 Формальная модель задачи 3 Спецификация основных процедур и функций 3
16. Реферат- Основные принципы тестирования
17. Менеджмент ~ылымыны~ даму кезе~дерін зерделеп сипаттама бері~із
18. летия 50 оф 90 52 10 02 57 97 90 Пирогова 8 оф 9 56 14 88 Космонавтов 36А ж-д кассы
19. Абсолютно все что нас окружает связано с вращением галактики и вселенной или основы строения мира
20. и внутреннеполитическая стабильность поддержка и понимание наших партнеров