Предыдущий уровень изложения текущего раздела   Текущий уровень изложения предыдущего раздела   Текущий уровень изложения следующего раздела   Первый уровень изложения следующего раздела   Уровень:


Шина USB

USB (Подробности)

Универсальная последовательная шина USB - внешний интерфейс ввода/вывода - это несомненное достижение в архитектуре ПК. Последовательные порты типа RS-232 обеспечивают скорость от 9.6Kbps до 115.2Kbps в зависимости от микросхемной логики асинхронного приемопередатчика UART (Universal Asynchronous Recive/Transmitter). Максимальная пропускная способность USB составляет 12Mbps, хотя фактически скорость передачи данных ближе к 8Mbps, включая 1Mbps-подканал для медленных устройств типа мышь и клавиатура. Этого вполне достаточно, чтобы обслужить потребности всех устройств от мыши до видеомагнитофонов, ISDN-адаптеров и сжатого видео MPEG. Использование низкоскоростных устройств позволяет перераспределить полосы частот и выделить больше пропускной способности тем устройствам, которые в этом нуждаются.
Достоинством USB являются как асинхронные, так и изосинхронные порты. Изосинхронные передачи видео и аудио данных имеют приоритет, гарантируя непрерывность потоков данных для приложений реального времени. USB позволяет включать до 127 устройств, связанных в звездообразную технологию: каждое устройство может содержать в себе USB-концентратор, к которому можно подсоединить дополнительные устройства.
Индустриальным стандартом контроллеров USB считается комплект Intel One-Stop-Shopping серий i8X930Ax/i8Х930Hx/i8X931Ax/i8X931Hx монтажа 64pin PQFP (Plastic Quad Flat Package), предназначенные для построения USB-концентраторов, USB-оконечных устройств и для изготовления USB-контроллеров для монитора.
Хотя USB медленнее, имея пропускную способность 12Mbps (1.5MBps), чем SCSI, она предлагает высокоскоростные и Plug-and-Play возможности для такой периферии, в которой традиционно используются последовательный, параллельный или специальный порт, например, клавиатура, мышь или монитор. USB также подходит для небольших периферийных устройств типа сканеров, в которых ранее применялись специализированные адаптеры или SCSI-контроллеры. Для периферии, не использующей SCSI-контроллеры, USB предлагает оборудование примерно в сто раз более быстрое, чем, например, традиционные последовательные порты с максимальной скоростью передачи 115Kbps. Параллельные порты со скоростью обмена 2Mbps работают примерно в шесть раз медленнее, чем USB. Вдобавок, один USB-порт может обслуживать до 126 периферийных устройств без каких-либо дополнительных компьютерных ресурсов, таких как IRQ. Сегодняшние последовательные или параллельные, порты для клавиатуры или монитора обычно могут обслужить только одно устройство. Более того, мало потребляющий USB-контроллер обеспечивает электропитание всех устройств, подключенных к его шине, уменьшив тем самым количество розеток на стене либо распределительных щитков (однако устройства, потребляющие относительно много энергии, такие как сканеры, нуждаются в дополнительных розетках).
USB также предоставляет так называемый режим hot swapping - возможность подсоединять и переключать внешние устройства без выключения компьютера. Такие устройства, как клавиатура или мышь с двухсторонним обменом, не могут сегодня переключаться в режиме hot swapping. USB-контроллер имеет один стандартный кабель для любых периферийных устройств, что обеспечивает легкость подключения и снижение стоимости систем. Если устройства поддерживают PnP, то необходимые драйверы устройств могут автоматически загружаться и выгружаться.
Топология шины USB представляет собой управляющий блок USB, концентраторы, кабели и функциональные устройства. Существует только один управляющий блок в любой системе USB. Интерфейсом для связи с ПК является управляющий контроллер, который может быть реализован в комбинации с аппаратными или аппаратно-программными средствами. Встроенный в управляющий блок корневой концентратор обеспечивает одну или несколько точек подключения.

Схема управления устройством USB
Внутренний уровень Внешний уровень
Клиентский
Драйвер 
Драйвер
USB
Драйвер
контроллера
Контроллер
USB
Концевой
концентратор
Устройство
USB
Драйвер
Управления
Программный уровень Аппаратный уровень

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

АрхитектураPnPUSB

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

Комбинированноеустройство

USB передает сигналы и электропитание по 4-х-жильному кабелю, который состоит из сегментов длиною не более 5m. Длина кабельного сегмента USB меняется в зависимости от сопротивления проводника, мощности устройства и гибкости кабеля. Сигналы передаются по двум проводам кабеля D+ и D- (DATA+ и DATA-), которые имеют волновое сопротивление Z=90. Провода Vbas (+5VDC) и GND предназначены для электропитания устройств (питание и земля соответственно). Номинальное напряжение для Vbas составляет +5V. Чтобы гарантировать оптимальную величину сигнала на входе и необходимое сопротивление, на каждом конце кабеля применяются оконечные устройства. Оконечные устройства также позволяют фиксировать подсоединение и отсоединение на каждом порту и различать высоко- и низкоскоростные устройства.

4-хжильныйкабель

В USB существует 2 режима передачи сигнала. Высокоскоростная передача сигнала составляет 12Mbps. Hизкоскоростной режим обеспечивает скорость 1.5Mbps и более сильную защиту от электромагнитных помех. Оба режима могут поддерживаться одновременно, в одной и той же системе USB в режиме переключения между передачами данных. Высокоскоростной режим необходим для работы с быстрыми устройствами IHVs (Independent Hardware Vendors), DVPDs (Digital Video Peripheral Devices), VCRs (Video Cassette Recorders), ISDN-периферией, принтерами, сканерами и т.д. Режим низкой скорости необходим для поддержки ограниченного числа устройств с узкой полосой пропускания, такими, как joystick, mouse, keyboard.
Все транзакции в шине могут включать в себя до 3 пакетов. Каждая транзакция начинается, когда управляющий контроллер посылает маркерный пакет (Token Packet) USB, описывающий тип и направление транзакции, адрес устройства и номер конечной точки. В данной транзакции данные передаются либо от управляющего блока к устройству, либо наоборот. Источник транзакции затем посылает пакет данных, или сигнализирует об отсутствии данных для передачи. Получатель, в общем случае, отвечает пакетом квинтования (HandShake Packet), который подтверждает передачу данных.
Данные в USB передаются по каналам. Существует 2 типа каналов: поток и сообщение. Потоковые данные не имеют определенной USB-структуры, в то время как у сообщений она есть. Кроме того, каналы связаны с полосой пропускания данных, типом передачи данных и характеристиками конечной точки, такими, как направленность и размер буфера. Каналы начинают свое существование, когда конфигурируется USB-структура. Только канал управления 0 существует всегда, как только устройство включено, для того, чтобы установить доступ к конфигурации устройства, статусу и управляющей информации.
Использование транзакций позволяет управлять потоками в каналах. На аппаратном уровне это предохраняет буферы от ситуации неполного завершения или перезагрузки с помощью NACK-квинтования, которое управляет скоростью данных. Механизм управления потоками позволяет создавать гибкие расписания, которые адаптируют параллельную обработку к смеси потоков данных разных типов. Так, многочисленные каналы с разнотипными данными обслуживаются за разные интервалы времени и с пакетами разных размеров. Сама же архитектура USB поддерживает 4 основные типа передачи данных:

Передачи управления. Они используются программным обеспечением USB для конфигурирования устройств, когда они впервые подсоединены. Отдельный драйвер может выбрать специфическое управление для обеспечения передачи данных без потерь.
Групповая пересылка. Обычно состоит из больших объемов данных, которые используются принтерами, сканерами или цифровыми камерами. Групповые данные - это последовательные данные, надежный обмен которых обеспечивается на уровне аппаратуры путем обнаружения ошибок в технических средствах и дополнительно активизирует перезагрузку ПК. Полоса пропускания, которую занимают групповые данные, должна быть доступна в любой момент времени и не занимается другими типами данных.
Передача прерываний. Небольшая порция данных, переданных в произвольный момент времени от периферийного устройства, называется прерыванием. Такие данные могут быть посланы устройством в любое время и передаются USB со скоростью, не меньшей, чем определено устройством. Прерывания обычно состоят из уведомления о событии, символов и адреса, которые организованы как 1 байт или более. Прерывания используются для поддержки низкоскоростных устройств протокола USB 1.5Mbps.
Изохронные передачи. Изохронные данные (непрерывные данные) создаются, передаются и используются в реальном времени. Согласованная по времени информация подразумевает устойчивую скорость, при которой изохронные данные принимаются и передаются. Изохронные данные должны доставляться с необходимой скоростью, чтобы сохранить согласование по времени, так как изохронные данные могут быть чувствительны к задержкам доставки. Изосинхронная порция представляет собой непрерывный поток и используется для передачи звука или видео. К передаче изосинхронных данных предъявляются очень высокие требования.
Типичный пример изохронных данных - аудио- или видеосигналы. Если скорость передачи этих потоков данных не сохраняется, то происходит нарушение синхронизации и получается искаженное восприятие. Даже если данные переданы с соответствующей скоростью, задержки в работе буферов могут вызвать искажения в протоколах типа Т.120 (телефонные аудиоконференции).
Потоки изохронных данных USB сосредоточены в определенной части полосы пропускания, чтобы обеспечить доставку данных с необходимой скоростью. USB сконструирована таким образом, чтобы максимально уменьшить задержку передачи изохронных данных.
USB выделяет полосу пропускания каналам в том случае, когда соединение произошло. Полоса пропускания распределяется среди каналов в соответствии со спецификой работы. Устройствам USB требуется буфер, и предполагается, что чем большую полосу пропускания занимает устройство, тем большего размера ему требуется буфер. Целью архитектуры USB является обеспечение времени обращения к буферу в пределах нескольких миллисекунд.
Полоса пропускания может распределяться по потокам данных, в результате чего достаточно широкий диапазон устройств может подключиться к шине USB. Кроме того, поддерживаются устройства с разными скоростями, в широком динамическом интервале (например, телефонные каналы от 1B+D до T1).
Распределение полосы пропускания в USB - блокирующее, то есть если размещение дополнительного канала ограничивает работу уже существующей полосы пропускания, дальнейшее назначение каналов будет отменено или блокировано. Когда канал закрыт, выделенная для него полоса пропускания освобождается и может быть переназначена на другой канал.
Процесс USB превращает физическую топологию в индивидуальные отношения между ПО клиента (находящимся в функциональном блоке) и функциональными устройствами. Этот процесс включает в себя операции согласования и конфигурации, и находится под контролем ПО управляющего блока USB, спрятанного в верхнем слое (ПО клиента). ПО клиента запрашивает службы USB о передаче данных в систему программного обеспечения (ПО USB).
Настройка вновь подсоединенных устройств не требует участия пользователя. В тоже время, поддержка USB изохронных передач превращает ПК в мощное средство коммуникации.
Для периферийных устройств серийно выпускается USB-контроллер 82930A, выполненный на базе микроконтроллера архитектуры MCS-251, который поддерживает как скоростные каналы со скоростью передачи 12Mbps, так и каналы со скоростью 1.5Mbps, синхронную, изосинхронную передачу данных и режимы управления мощностью, необходимые для устройств USB. Эти контроллеры разработаны для периферии и телефонных устройств, подключаемых через управляющий ПК.
Поскольку пропускная способность шины USB все же крайне мала для применения в высокоскоростных устройствах, то индустрия нуждалась в новых решениях, которые бы обеспечивали большую пропускную способность.