Разъемами usb современных стандартов. Интерфейс USB: описание и основы устройств сопряжения

USB (Universal Serial Bus - универсальная последовательная шина) является промышленным стандартом расширения архитектуры PC, ориентированным на интеграцию с телефонией и устройствами бытовой электроники.

Приеимущества шины:

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

Возникновение USB сделало возможным создание USB Flash Drive (USB-накопитель).

История создания и развития интерфейса USB

Первая версия компьютерного интерфейс USB появилась 15 января 1996 года. Инициаторами проекта был альянс 7 крупных компаний производителей Intel, DEC, IBM, Northen Telecom, Compaq.

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

Это позволило бы подключать к ПК во время работы различные устройства ввода-вывода, с условием немедленного автоматического распознавания типа и модели подключённого устройства. Также, была поставлена цель, - избавиться от проблемы нехватки внутренних ресурсов прерываний системной шины.

Все эти задачи успешно были решены к концу 1996 года, а к весне 1997 года, стали появляться первые ПК, оборудованные разъёмами USB. Полная поддержка USB устройств была осуществлена только к концу 1998 года, в операционной системе Windows98, и только с этого этапа, началось особенно бурное развитие и выпуск периферийного оборудования, оснащённого этим интерфейсом.

По-настоящему массовое внедрение USB началось с широким распространением корпусов и системных плат форм-фактора ATX примерно в 1997-1998 годах. Не упустила шанс воспользоваться достижениями прогресса и компания Apple, представившая 6 мая 1998 года свой первый iMac, также оснащенный поддержкой USB.

Этот стандарт был рождён, в то время, когда уже существовал аналогичный последовательный интерфейс передачи данных, разработанный Apple Computer и имел название FireWare или IEE1394. USB - интерфейс был создан, как альтернатива IEE1394, и был призван не заменить его, а существовать параллельно уже существующему типу соединений.

Первая версия USB имела некоторые проблемы совместимости и содержала несколько ошибок в реализации. В итоге, в ноябре 1998 года вышла спецификаций USB 1.1.

Спецификация USB 2.0 была представлена в апреле 2000 года. Но до принятия ее в качестве стандарта прошло больше года. После этого началось массовое внедрение второй версии универсальной последовательной шины. Главным ее достоинством было 40-кратное увеличение скорости передачи данных. Но кроме этого были и другие нововведения. Так появились новые типы разъемов Mini-B и Micro-USB, добавилась поддержка технологии USB On-The-Go (позволяет USB-устройствам вести обмен данными между собой без участия USB-хоста), появилась возможность использования напряжения, подаваемого через USB, для зарядки подключенных устройств.

Принцип работы шины USB

USB обеспечивает обмен данными между хост-компьютером и множеством периферийных устройств (ПУ). Согласно спецификации USB, устройства (device) могут являться хабами, функциями или их комбинацией. Хаб (hub) только обеспечивает дополнительные точки подключения устройств к шине. Устройство-функция (function) USB предоставляет системе дополнительные функциональные возможности, например подключение к ISDN, цифровой джойстик, акустические колонки с цифровым интерфейсом и т. п. Комбинированное устройство (compound device), реализующее несколько функций, представляется как хаб с подключенными к нему несколькими устройствами.

Работой всей системы USB управляет хост-контроллер (host controller), являющийся программно-аппаратной подсистемой компьютера. Шина позволяет подключать, конфигурировать, использовать и отключать устройства во время работы хоста и самих устройств.

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

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

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

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

Передача данных происходит через специальные логические каналы. Каждому USB-устройству может быть выделено до 32 каналов (16 на прием и 16 на передачу). Каждый канал подключается к условно называемой "конечной точке". Конечная точка может либо принимать данные, либо передавать их, но не способна делать это одновременно. Группа конечных точек, необходимых для работы какой-либо функции, называется интерфейсом. Исключение составляет "нулевая" конечная точка, предназначающаяся для конфигурации устройства.

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

В отличие от шин расширения (ISA/EISA, PCI, PC Card), где программа взаимодействует с устройствами путем обращений по физическим адресам ячеек памяти, портов ввода-вывода, прерываниям и каналам DMA, взаимодействие приложений с устройствами USB выполняется только через программный интерфейс. Этот интерфейс, обеспечивающий независимость обращений к устройствам, предоставляется системным ПО контроллера USB.

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

Кодирование данных

Для передачи данных по шине используется дифференциальный способ передачи сигналов D+ и D- по двум проводам. Все данные кодируются с помощью метода, называемого NRZI with bit stuffing (NRZI - Non Return to Zero Invert, метод возврата к нулю с инвертированием единиц).

Вместо кодирования логических уровней как уровней напряжения USB определяет логический 0 как изменение напряжения, а логическую 1 как неизменение напряжения. Этот метод представляет собой модификацию обычного потенциального метода кодирования NRZ (Non Return to Zero, невозврат к нулю), когда для представления 1 и 0 используются потенциалы двух уровней, но в методе NRZI потенциал, используемый для кодирования текущего бита, зависит от потенциала, который использовался для кодирования предыдущего бита. Если текущий бит имеет значение 0, то текущий потенциал представляет собой инверсию потенциала предыдущего бита, независимо от его значения. Если же текущий бит имеет значение 1, то текущий потенциал повторяет предыдущий. Очевидно, что если данные содержат нули, то приемнику и передатчику достаточно легко поддерживать синхронизацию - уровень сигнала будет постоянно меняться. А вот если данные содержат длинную последовательность единиц, то уровень сигнала меняться те будет, и возможна рассинхронизация. Следовательно, для надежной передачи данных нужно исключить из кодов слишком длинные последовательности единиц. Это действие называется стаффинг (Bit stuffing): после каждых шести единиц автоматически добавляется 0.

Существует только три возможных байта с шестью последовательными единицами: 00111111, 01111110, 111111100.

Стаффинг может увеличить число передаваемых бит до 17%, но на практике эта величина значительно меньше. Для устройств, подключаемых к шине USB, кодирование происходит прозрачно: USB-контроллеры производят кодирование и декодирование автоматически.

Режимы работы шины

  • Low Speed поддерживается стандартами версии 1.1 и 2.0. Пиковая скорость передачи данных - 1.5 Мбит/с (187.5 Кбайт/с). Чаще всего применяется для HID-устройств (клавиатур, мышей, джойстиков).
  • Full Speed поддерживается стандартами версии 1.1 и 2.0. Пиковая скорость передачи данных - 12 Мбит/с (1.5 Мбайт/с). До выхода USB 2.0 был наиболее быстрым режимом работы.
  • Hi-Speed поддерживается стандартом версии 2.0 и 3.0. Пиковая скорость передачи данных - 480 Мбит/с (60 Мбайт/с).
  • Super-Speed поддерживается стандартом версии 3.0. Пиковая скорость передачи данных - 4.8 Гбит/с (600 Мбайт/с).

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

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

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

Информация по каналу передается в виде пакетов (Packet). Каждый пакет начинается с поля синхронизации SYNC (SYNChronization), за которым следует идентификатор пакета PID (Packet IDentifier).

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

Операция обмена данными между прикладной программой и шиной USВ выполняется путем передачи буферов памяти через следующие уровни: Уровень клиентского ПО в хосте:

  • обычно представляется драйвером устройства USB;
  • обеспечивает взаимодействие пользователя с операционной системой с одной стороны и системным драйвером с другой.

Уровень системного обеспечения USB в хосте (USBD, Universal Serial Bus Driver):

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

Хост-контроллер интерфейса шины USB (HCD, Host Controller Driver):

  • преобразует запросы ввода/вывода в структуры данных, по которым хост-контроллер выполняет физические транзакции;
  • работает с регистрами хост-контроллера.

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

  • буфер памяти, называемый клиентским буфером;
  • пакет запроса на в/в (IRP, Input/output Request Packet), указывающий тип необходимой операции.
  • IRP содержит только сведения о запросе (адрес и длина буфера в оперативной памяти). Непосредственно обработкой запроса занимается системный драйвер USB.

Уровень системного драйвера USB необходим для управления ресурсами USB. Он отвечает за выполнение следующих действий:

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

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

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

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

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

Хост-контроллер интерфейса шины USB формирует кадры. Кадры передаются последовательной передачей бит по методу NRZI.

Таким образом:

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


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

Спецификация шины определяет четыре различных типа передачи (transfer type) данных для конечных точек.

Управляющие передачи (Control Transfers) - используются хостом для конфигурирования устройства во время подключения, для управления устройством и получения статусной информации в процессе работы. Протокол обеспечивает гарантированную доставку таких посылок. Длина поля данных управляющей посылки не может превышать 64 байт на полной скорости и 8 байт на низкой. Для таких посылок хост гарантированно выделяет 10% полосы пропускания.

Передачи массивов данных (Bulk Data Transfers) - применяются при необходимости обеспечения гарантированной доставки данных от хоста к функции или от функции к хосту, но время доставки не ограничено. Taкая передача занимает всю доступную полосу пропускания шины. Пакеты имеют поле данных размером 8, 16, 32 или 64 байт. Приоритет у таких передач самый низкий, они могут приостанавливаться при большой загрузке шины. Допускаются только на полной скорости передачи. Такие посылки используются, например, принтерами или сканерами.

Передачи по прерываниям (Interrupt Transfers) - используются в том случае, когда требуется передавать одиночные пакеты данных небольшого размера. Каждый пакет требуется передать за ограниченное время. Операции передачи носят спонтанный характер и должны обслуживаться не медленнее, чем того требует устройство. Поле данных может содержать до 64 байт на полной скорости и до 8 байт на низкой. Предел времени обслуживания устанавливается в диапазоне 1-255 мс для полной скорости и 10-255 мс - для низкой. Такие передачи используются в устройствах ввода, таких как мышь и клавиатура.

Изохронные передачи (Isochronous Transfers) - применяются для обмена данными в "реальном времени", когда на каждом временном интервале требуется передавать строго определенное количество данных, но доставка информации не гарантирована (передача данных ведется без повторения при сбоях, допускается потеря пакетов). Такие передачи занимают предварительно согласованную часть пропускной способности шины и имеют заданную задержку доставки. Изохронные передачи обычно используются в мультимедийных устройствах для передачи аудио- и видеоданных, например, цифровая передача голоса. Изохронные передачи разделяются по способу синхронизации конечных точек - источников или получателей данных - с системой. Различают асинхронный, синхронный и адаптивный классы устройств, каждому из которых соответствует свой тип канала USB.

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

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

Выполнение этих правил гарантирует, что управляющим передачам всегда будет выделено не менее 10% пропускной способности шины USB. Если передача всех управляющих пакетов будет завершена до истечения выделенной для них доли интервала планирования, то оставшееся время будет использовано хостом для передач массивов данных.

Версии спецификации

Разработка спецификаций на шину USB производится в рамках международной некоммерческой организации USB Implementers Forum (USB-IF), объединяющей разработчиков и производителей оборудования с шиной USB.

С середины 1996 года выпускаются PC со встроенным контроллером USB, реализуемым чипсетом системной платы.

Первая версия спецификации USB 1.0 поддерживает два режима скорости передачи данных между устройством и компьютером:

  • Low Speed (1.5 Mbits/sec) , для таких устройств как мыши, клавиатуры и джойстики;
  • Full Speed (12 Mbits/ sec) , для модемов и сканеров.

Осенью 1998 года вышла версия 1.1 - в ней были устранены обнаруженные проблемы первой редакции.

Основные технические характеристики USB 1.1:

  • Достаточно высокая максимальная скорость обмена - до 12 Мбит/с.
  • Максимальная длина кабеля для высокой скорости обмена - 4,5 м.
  • Максимальное количество подключенных устройств (включая размножители) - до 127.
  • Возможно подключение устройств с различными скоростями обмена.
  • Не требуется использование дополнительных устройств и терминаторов.
  • Подается напряжение питания для периферийных устройств - 5 В.
  • Максимальный ток потребления на одно устройство - 500 mA.

Весной 2000 года опубликована спецификация USB 2.0, в которой предусмотрено 40-кратное повышение пропускной способности шины(до 480 Мбит/с в высокоскоростном режиме). Однако устройства USB 2.0 вышли на массовый рынок в 2002 года, когда новый интерфейс, наконец, смог утвердиться.

Вторая версия спецификации USB 2.0 позволяет использовать еще один режим High Speed (480 Mbit/sec) для таких устройств, как жесткие диски, CD-ROM, цифровые камеры. Пропускная способность 480 Мбит/с достаточная и для внешних накопителей, MP3-плееров, смартфонов и цифровых камер, которым требовалась передавать большое количество данных. Также спецификация USB 2.0 полностью поддерживает устройства, разработанные для первой версии. Контроллеры и хабы автоматически определяют версию спецификации, поддерживаемую устройством. Шина позволяет соединять до 127 устройств, удаленныех от компьютера на расстоянии до 25 м (с использованием промежуточных хабов).

После своего широкого внедрения USB 2.0 удалось полностью заменить последовательный и параллельный интерфейсы.

В настоящее время широко используются устройства, выполненные в соответствии со спецификацией USB 2.0.

USB 3.0

USB 3.0 поддерживает максимальную скорость передачи 5 Гбит/с.

Коннектор USB 3.0 типа А

Основной целью интерфейса USB 3.0 является повышение доступной пропускной способности, однако новый стандарт эффективно оптимизирует энергопотребление. У USB 3.0 есть четыре состояния подключения, названные U0-U3. Состояние подключения U0 соответствует активной передаче данных, а U3 погружает устройство в "сон". Если подключение бездействует, то в состоянии U1 будут отключены возможности приёма и передачи данных. Состояние U2 идёт ещё на шаг дальше, отключая внутренние тактовые импульсы.

Коннектор USB 3.0 типа В

Соответственно, подключённые устройства могут переходить в состояние U1 сразу же после завершения передачи данных, что, как предполагается, даст ощутимые преимущества по энергопотреблению, если сравнивать с USB 2.0.

Кроме разных состояний энергопотребления стандарт USB 3.0 отличается от USB 2.0 и более высоким поддерживаемым током. Если версия USB 2.0 предусматривала порог тока 500 мА, то в случае нового стандарта ограничение было сдвинуто до планки 900 мА. Ток при инициации соединения был увеличен с уровня 100 мА у USB 2.0 до 150 мА у USB 3.0. Оба параметра весьма важны для портативных жёстких дисков, которые обычно требуют чуть большие токи. Раньше проблему удавалось решить с помощью дополнительной вилки USB, получая питание от двух портов, но используя только один для передачи данных.

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

В отличие от громоздких дорогих шлейфов параллельных шин АТА и особенно шины SCSI с ее разнообразием разъемов и сложностью правил подключения, кабельное хозяйство USB простое и изящное.

Существует пять видов USB-разъемов :

Слева направо: micro USB, mini USB, B-type, A-type разъем, A-type коннектор

  • micro USB - используется в самых миниатюрных устройствах вроде плееров и мобильных телефонов;
  • mini USB - также часто обнаруживается на плеерах, мобильных телефонах, а заодно и на цифровых фотоаппаратах, КПК и тому подобных устройствах;
  • B-type - полноразмерный разъем, устанавливаемый в принтерах, сканерах и других устройствах, где размер не имеет очень принципиального значения;
  • A-type (приемник) - разъем, устанавливаемый в компьютерах (либо на удлинителях USB), куда подключается коннектор типа A-type;
  • A-type (вилка) - коннектор, подключаемый непосредственно к компьютеру в соответствующий разъем.

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

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

Кабель для поддержки полной скорости шины (full-speed) выполняется как витая пара, защищается экраном и может также использоваться для работы в режиме минимальной скорости (low-speed). Кабель для работы только на минимальной скорости (например, для подключения мыши) может быть любым и неэкранированным.

Литература

  1. Косцов А.,Косцов В.Железо ПК. Настольная книга пользователя. - М.: Мартин, 2006. - 480 с.

Сегодняшняя статья будет посвящена, как уже видно из названия, обсуждению основ интерфейса USB . Рассмотрим основные понятия, структуру интерфейса, разберемся, как происходит передача данных, а в ближайшем будущем реализуем все это на практике 😉 Короче, приступаем!

Существует ряд различных спецификаций USB . Началось все с USB 1.0 и USB 1.1 , затем интерфейс эволюционировал в USB 2.0 , относительно недавно появилась окончательная спецификация USB 3.0 . Но на данный момент наиболее распространенной является реализация USB 2. 0.

Ну и для начала основные моменты и характеристики. USB 2.0 поддерживает три режима работы:

  • High Speed – до 480 Мб/с
  • Full Speed – до 12 Мб/с
  • Low Speed – до 1.5 Мб/с

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

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

Давайте немного отвлечемся и поговорим о “железной части” интерфейса.

Существуют два типа коннекторов – Type A и Type B.

Как уже понятно из рисунка Type A всегда обращен к хосту. Именно такие разъемы мы видим на компьютерах и ноутбуках. Коннекторы Type B всегда относятся к подключаемым USB-устройствам. Кабель USB состоит из 4 проводов разных цветов. Ну, собственно, красный – это питание (+5 В), черный – земля, белый и зеленый предназначены для передачи данных.

Помимо изображенных на рисунке, существуют также другие варианты исполнения USB-коннекторов, например, mini-USB и другие, ну это вы и так знаете 😉

Наверно стоит немного коснуться способа передачи данных, но углубляться в это не будем) Итак, при передаче данных по шине USB используется принцип кодирования NRZI (без возврата к нулю с инверсией). Для передачи логической “1” необходимо повысить уровень линии D+ выше +2.8 В, а уровень линии D- надо понизить ниже +0.3 В. Для передачи нуля ситуация противоположная – (D- > 2.8 В) и (D+ < 0.3 В).

Отдельно стоит обсудить питание устройств USB . И тут также возможно несколько вариантов.

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

  • Low-power
  • High-power

Разница тут заключается в том, что low-power устройства не могут потреблять больше, чем 100 мА . А устройства high-power должны потреблять не более 100 мА лишь на этапе конфигурации. После того, как они сконфигурированы хостом их потребление может составлять до 500 мА .

Кроме того, устройства могут иметь свой собственный источник питания. В этом случае они могут получать до 100 мА от шины, а все остальное забирать у своего источника)

С этим вроде бы все, давайте потихоньку переходить к структуре передаваемых данных. Все-таки это представляет для нас наибольший интерес 😉

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

Каждый кадр включает в себя пакет , затем следуют транзакции для разных конечных точек, ну и завершается все это пакетом EOF (End Of Frame). Если говорить совсем точно, то EOF – это не совсем пакет в привычном понимании этого слова – это интервал времени, в течение которого обмен данными запрещен.

Каждая транзакция имеет следующий вид:

Первый пакет (его называют Token пакет ) содержит в себе информацию об адресе устройства USB , а также о номере конечной точки, которой предназначена эта транзакция. Кроме того, в этом пакете хранится информация о типе транзакции (какие бывают типы мы еще обсудим, но чуть позже =)). – с ним все понятно, это данные, которые передают хост, либо конечная точка (зависит от типа транзакции). Последний пакет – Status – предназначен для проверки успешности получения данных.

Уже очень много раз прозвучало слово “пакет” применительно к интерфейсу USB , так что пора разобраться что он из себя представляет. Начнем с пакета Token :

Пакеты Token бывают трех типов:

  • Setup

Вот к чему я это рассказал..) В зависимости от типа пакета значение поля PID в Token пакете может принимать следующие значения:

  • Token пакет типа OUT – PID = 0001
  • Token пакет типа IN – PID = 1001
  • Token пакет типа SETUP – PID = 1101
  • Token пакет типа SOF – PID = 0101

Переходим к следующей составной части пакета Token – поля Address и Endpoint – в них содержатся адрес USB устройства и номер конечной точки , которой предназначена транзакция .

Ну и поле CRC – это контрольная сумма, с этим понятно.

Тут есть еще один важный момент. PID включает в себя 4 бита, но при передаче они дополняются еще 4-мя битами, которые получаются путем инвертирования первых 4-ых бит.

Итак, на очереди – то есть пакет данных.

Тут все в принципе так же, как и в пакете Token , только вместо адреса устройства и номера конечной точки здесь у нас передаваемые данные.

Осталось нам рассмотреть Status пакеты и пакеты SOF :

Тут PID может принимать всего лишь два значения:

  • Пакет принят корректно – PID = 0010
  • Ошибка при приеме пакета – PID = 1010

И, наконец, пакеты:

Здесь видим новое поле Frame – оно содержит в себе номер передаваемого кадра.

Давайте в качестве примера рассмотрим процесс записи данных в USB-устройство. То есть рассмотрим пример структуры кадра записи.

Кадр, как вы помните состоит из транзакций и имеет следующий вид:

Что представляют из себя все эти транзакции? Сейчас разберемся! Транзакция SETUP :

Транзакция OUT :

Аналогично при чтении данных из USB-устройства кадр выглядит так:

Транзакцию SETUP мы уже видели, посмотрим на транзакцию IN 😉

Как видите, все эти транзакции имеют такую структуру, как мы обсуждали выше)

В общем, думаю достаточно на сегодня 😉 Довольно-таки длинная статья получилась, надеюсь в ближайшее время попробуем реализовать интерфейс USB на практике!

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

Это название довольно распространённое и с английского языка переводиться так – «универсальная последовательная шина».

Все USB разъёмы представлены тремя версиями.

Характерные особенности основных трёх версий USB разъёмов

Первая версия USB разъёмов (1.1). Её Характерной особенностью является очень маленькая скорость, при которой вся информация передаётся с большой задержкой.

Скорость передачи составляет 12 Мбит/с. Его основное предназначение – это применение для взаимосвязи устройств.

Вторая версия USB разъёмов (2.0).

Характеризуется скоростью передачи данных 480 Мбит/с. Это соответствует скорости в 48 Мбайт/с.

Основная часть всех современных технических приборов и устройств приспособлены к применению именно этой версии. Она наиболее популярна и известна, а поэтому пользуется спросом на рынке электротоваров.
Правда по причине множества факторов настоящая скорость этого стандарта не бывает больше 30 – 33 Мбайт/с.

Так как последние выпуски жёстких дисков, к примеру, SSD, разработаны для чтения информации со значительно большей скоростью (почти в 4 раза), то эта версия стандарта задерживает действие новых моделей накопителей.

В этом виден основной недостаток свойств разъёмов USB 2.0. Но несмотря на это определённые устройства вполне совместимы с этой версией разъёмов: мышки, клавиатуры, сканеры и принтеры.

Третья версия USB (3.0).

Данная версия характеризуется скоростью передачи информации – 5 Гбит/с – что считается достаточно высоким показателем.

Такая скорость соответствует 500 Мбайт/с.

Это намного выше показателей скорости винчестеров последнего поколения (150 – 170 Мбайт/с).

Разъёмы USB 3.0 для их распознавания специально маркируются синим цветом.

Совместимость интерфейсов

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

Определённое устройство, которое имеет соединение второй версии USB, а принимает соединение первой версии, может показать сообщение, в котором будет говориться о его возможности работать быстрее.

Потому что данная модель компьютера рассчитана на приём информации через вторую версию, скорость которой выше, чем первой.

То есть не будет использован весь потенциал скорости данного устройства.
Современные устройства, которые имеют разъёмы второй версии, могут быть подключены к третьей версии USB, а использование третьей версии относительно второй исключается, кроме USB 3.0 типа А.

Дополнительные контакты создают условия для увеличения скорости интерфейса – это есть особенностью последних моделей кабелей и устройств, имеющих разъёмы третьей версии USB.

Питание USB разъёмов

Мощность, на которую рассчитаны подключаемые устройства с разъёмами USB, составляет 2,5 Вт, а также 4,5 Вт (для третьей версии).

Исходя из этого, разъёмам USB всех версий необходимо напряжение 5 В. Ток до 0,5 А, а для третьей версии – 0,9 А .

Контакты USB 3.0.

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

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

Типы разъемов

Вторая и третья версии разъёмов различают по размерам: Mini USB (маленькие размеры), Micro USB (ещё меньшие размеры); а также по типам: А, В.

USB разъём 2.0 типа A.

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

Сечение разъёма имеет прямоугольную форму, что создаёт дополнительную защиту при подключении.

Его недостаток – это большой размер, а все современные устройства отличаются портативностью что и повлияло на разработку и выпуск разъёмов аналогичного типа, но меньшего размера.

USB 2.0 типа А был представлен в девяностых годах и на данный момент еще является наиболее используемым.

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

USB разъём версии 2.0 типа В.

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

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

Разъёмы данного типа не такие востребованные, как разъёмы типа А.

Квадратная и трапециевидная форма присуща всем разъёмам типа В.

К ним относятся и Mini и Micro.

Особенность сечения разъёмов типа «В» заключается в их квадратной форме, что отличает его от других типов.

Разъёмы Mini USB второй версии типа B.

Название разъёма такого типа говорит о том, что оно имеет очень маленькие размеры. И это не удивительно, потому что современный рынок всё больше предлагает миниатюрные товары.

Благодаря использованию персональных винчестеров, кардридеров, плееров и других маленьких устройств, разъёмы USB Mini, относящиеся к типу B, получили большую популярность.

Следует отметить ненадёжность таких разъёмов. При частом использовании он расшатывается.

А вот применение моделей разъёмов USB Mini типа A крайне ограничено.

Разъёмы Мicro USB 2.0 типа B.

Модели разъёмов Micro USB являются более совершенными относительно моделей Mini USB.

Данный тип разъёмов отличается невероятно маленькими размерами.

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

Разъём Мicro USB 2.0 типа «B» был признан по своим качествам единым для всеобщего применения для зарядки всех портативных устройств.

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

Но такое решение уже было принято в 2011 году всеми современными производителями, хотя разъём Мicro USB 2.0 типа «B» еще присутствует не на всех устройствах.

Разъёмы USB третьей версии типа A.

Разъёмы USB 3.0 имеют большую скорость для передачи информации за счёт дополнительных контактов.

При таких изменениях всё же сохранена совместимость обратной связи. Его применение налажено в компьютерах и ноутбуках последнего поколения.

Разъёмы USB третьей версии типа B.

Третья версия разъёмов USB типа «B» не подходят к подключению разъёмов USB второй версии.

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

Micro USB 3.0.

Современные внешние накопители, имеющие высокую скорость, а также диски типа SSD, в основном, все оснащены таким разъёмом, который характеризуется высокой скоростью обмена информацией.

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

Разъём удобный в использовании из-за своей компактности. Его предшественником считается разъем вида Micro USB.

Распиновка разъемов USB .

Основные отличия разъёмов Micro и Mini USB

На первый взгляд данные разъёмы очень похожи. И действительно, большая часть характерных особенностей основных параметров данных видов совпадает.

Но при внимательном осмотре можно заметить такие отличия:

  1. Разъём USB Mini имеет большие размеры относительно разъёма USB Micro.
  2. Наличие защёлок специального предназначения на задней стороне разъёмов USB Micro.

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

К единому стандарту производители устройств к сожалению, еще не пришли, и скорее всего не придут еще долго, ведь каждый тип разъема USB имеет свое назначение.

Наверняка, каждый пользователь компьютера слышал о таких понятиях, как USB порты версии 2.0 и 3.0. Но не все точно понимают что это. В этой статье я расскажу вам про USB 2.0 и 3.0: отличия, совместимость интерфейсов, а также о том, что это вообще такое.

Как понятно логически, версия USB 3.0 новее, чем 2.0, а, соответственно, она лучше. Давайте разберёмся, чем она лучше, и начнём с вопроса о том, откуда всё это пошло.

USB и его версии

USB расшифровывается как universal serial bus, и переводится на русский как универсальная последовательная шина. Универсальная – значит к ней можно подключить всё, что угодно, любое устройство. USB бывают разных версий, главное отличие которых в скорости работы.

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

Первые USB начали появляться с 1994 года. В 1996 году вышла версия 1.0, которая работала на мизерной скорости 1,5 Мбит/с. Затем в 2000-м вышла версия 2.0 со скорость работы 480 Мбит/с. Это вполне приемлемая скорость, которая позволила подключать разные оборудования к порту. В 2008 году вышла USB 3.0, работающая теоретически на скорости 5 Гбит/с.

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

USB 2.0 и 3.0: отличия

Наконец, рассмотрим USB 2.0 и 3.0: отличия этих портов друг от друга и сравним их. Вот признаки, по которым они различаются:

  • Визуально отличить USB 2.0 от 3.0 очень легко – разъёмы 3.0 окрашены в синий цвет.
  • Второе отличие, которое легко ощущается на практике – это скорость передачи. У версии 3.0 она значительно выше. Она может уступать заявленной теоретической скорости (5 Гбит/с), но всё равно остаётся выше версии 2.0.
  • Отличие USB 2.0 от 3.0 есть в силе тока. В ранней версии она была 500 мА, в новой достигает уже 900 мА. Таким образом, новыми USB можно питать большее количество мощных устройств.
  • В старой версии USB было 4 провода, в новой стало ещё на 4 больше. Таким образом, ещё одно отличие USB0 от 3.0 – второй имеет более толстый кабель. Это также ограничило максимальную длину кабеля 3.0 до 5 метров и сделало его более дорогим.
  • Windows XP не поддерживает USB 3.0, даже если физически оборудование компьютера на это способно, работать оно будет как 2.0. Только более старшие версии Windows способны работать с 3.0 полноценно.

Надежный и качественный СММ сайт https://doctorsmm.com / поможет Вам выгодно и недорого купить продвижение более чем в 9 социальных сетях. Здесь Вы найдете широкий спектр услуг с большими скидками и гарантиями на выполнение. Так, например, Вы можете приобрести лайки или подписчиков в Инстаграм и другие ресурсы на самых популярных социальных площадках интернета.

Совместимость USB 2.0 и 3.0

Если подключить устройство USB 2.0 в разъём 3.0, то работать оно будет на уровне 2.0. Если подключить устройство USB 3.0 к разъёму 2.0, то работать оно тоже будет на уровне 2.0. Таким образом, при совместимости этих интерфейсов, меньшая версия задаёт качество работы.

Устройства способны работать на других версиях USB, но они могут стать менее производительными.

Итак, подытожу. USB 2.0 и 3.0: отличия в первую очередь в качестве работы – более новая версия лучше, хоть и немного дороже. Современное оборудование выпускается с интерфейсом 3.0, поэтому приобретать компьютер целесообразно тоже с такой версией. Устройства разных версий совместимы друг с другом и работают приемлемо, хоть и производительность их падает.

USB (Universal Serial Bus) – универсальная последовательная шина. В стандарте на интерфейс USB заложено множество удобных для пользователя функций:

    «горячее» подключение и отключение устройств;

    питание периферии от хост-компьютера или разветвителя через интерфейсный кабель;

    малогабаритные надежные разъемы;

    возможность реализации гальванической развязки;

    поддержка Plug-and-Play;

    высокая скорость обмена данными.

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

Средой интерфейса является кабельная система (рис. 3.7) со стандартизированными разъемами нескольких видов и разветвителями (хабами). Хабы позволяют реализовывать топологию многоярусной звезды. Часто хабы используются для реализации гальванической развязки и питания оконечных устройств.

Рис. 3.7. Топология интерфейса USB: применяются разъемы типа «А»,

типа «В» и миниатюрные (обозначено буквой «М»)

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

Рис. 3.8. Гнезда USB: а – типа «А»; б – типа «В»; в – назначение

выводов разъема; г – символическое обозначение

Разъемы типа «В» устанавливаются на устройствах, от которых кабель может отсоединяться (принтеры и сканеры). Ответная часть (вилка) устанавливается на соединительном кабеле, противоположный конец которого имеет вилку типа «А». Мобильные устройства обычно комплектуются миниатюрным разъемом mini-USB. Функционально он аналогичен разъему типа «В».

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

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

Структура интерфейса USB обеспечивает одновременный обмен данными между хост-компьютером и несколькими периферийными устройствами. Распределение пропускной способности шины между ними планируется хост-компьютером и реализуется им с помощью посылки маркеров. Шина позволяет подключать, конфигурировать, использовать и отключать устройства во время работы хост-компьютера и самих устройств.

Стандарт USB определяет электрические и механические параметры среды передачи данных. Информационные сигналы и питающее напряжение 5 В передаются по четырехпроводному кабелю. Используется дифференциальный способ передачи сигналов D+ и D- по двум перевитым проводникам.

Уровни сигналов передатчиков в статическом режиме должны быть ниже 0,3 В (низкий уровень) или выше 2,8 В (высокий уровень). Приемники выдерживают входное напряжение в пределах 0,5...+3,8 В. Передатчики должны уметь переходить в высокоимпедансное состояние для двунаправленной полудуплексной передачи по одной паре проводов.

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

Состояния Diff0 и Diff1 определяются по разности потенциалов на линиях D+ и D- более 200 мВ при условии, что на одной из них потенциал выше порога срабатывания. Состояние, при котором на обоих входах D+ и D- присутствует низкий уровень, называется линейным нулем (SEO – Single-Ended Zero). Интерфейс определяет следующие состояния:

    Data J State и Data К State – состояния передаваемого бита (или просто J и К), определяются через состояния Diff0 Ddiff1;

    Idle State – пауза на шине;

    Resume State – сигнал «пробуждения» для вывода устройства из «спящего» режима;

    Start of Packet (SOP) – начало пакета (переход из Idle State в К);

    End of Packet (EOP) – конец пакета;

    Disconnect – устройство отключено от порта;

    Connect – устройство подключено к порту;

    Reset – сброс устройства.

Состояния определяются сочетаниями дифференциальных и линейных сигналов. В декодировании состояний Disconnect, Connect и Reset учитывается время нахождения линий (более 2,5 мс) в определенных состояниях. Шина обеспечивает две скорости передачи информации: полную скорость FS (full speed) – 12 Мбит/с и низкую скорость LS (Low Speed) – 1,5 Мбит/с. (В версии 2.0 определена еще и высокая скорость HS (High Speed) – 180 Мбит/с, которая позволяет существенно расширить круг устройств, подключаемых к шине).

Кабель USB содержит одну экранированную витую пару с импедансом 90 Ом для сигнальных цепей и одну неэкранированную – для подачи питания (+5 В); допустимая длина сегмента до 5 м. Для низкой скорости может использоваться неэкранированный кабель длиной до 3 м.

Скорость, используемая устройством, определяется по уровням сигналов на линиях D+ и D-, смещаемых нагрузочными резисторами приемопередатчиков (рис. 3.9).

Рис. 3.9. Кабельное хозяйство интерфейса USB

Полноскоростная линия связи (рис. 3.9, а) реализуется на экранированной витой паре. Полноскоростной трансивер оконечного устройства имеет резистор, «подтягивающий» линию D+ к напряжению питания, в отличие от низкоскоростного трансивера (рис. 3.9, б), у которого такой резистор подключен к линии D-. Проверяя состояние этих линий при инициализации, хост-компьютер или хаб определяет допустимые скорости передачи данных для оконечного устройства.

Сигналы синхронизации в линиях интерфейса USB кодируются вместе с данными по методу NRZI (Non Return to Zero Invert), его работу иллюстрирует рис. 3.10. Отсутствие длинных последовательностей одинаковых битов позволяет производить самосинхронизацию портов по перепадам сигналов.

Рис. 3.10. Кодирование информации методом NZRI

NZRI – метод без возврата к нулю с инвертированием для единиц. Этот метод представляет собой модификацию простого потенциального метода кодирования, когда для представления «1» и «0» используются потенциалы двух уровней.

В методе NRZI используются два уровня потенциала сигнала. При этом потенциал, используемый для кодирования текущего бита, зависит от потенциала, который использовался для кодирования предыдущего бита (так называемое «дифференциальное кодирование»).

Если текущий бит имеет значение «1», то текущий потенциал представляет собой инверсию потенциала предыдущего бита, независимо от его значения. Если же текущий бит имеет значение «0», то текущий потенциал повторяет предыдущий.

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

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

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

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

Конечные точки (по существу – программно-доступные регистры) описываются следующими параметрами:

    номером точки;

    типом обмена;

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

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

    частотой доступа к шине и допустимыми задержками обслуживания;

    полосой пропускания канала;

    алгоритмом обработки ошибок.

Каждое устройство обязательно имеет конечную точку с номером 0, используемую для инициализации и как регистры управления и состояния. Эта точка не требует инициализации и всегда доступна для обмена данными типа «управление». Оконечные устройства могут иметь дополнительные точки, реализующие обмен полезными данными. Низкоскоростные оконечные устройства содержат до двух дополнительных точек, полноскоростные – не более чем по 16 точек ввода и вывода.

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

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

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

Пересылка данных происходит в порядке «первым пришел – первым вышел». Механизмы конечных точек и моделей обмена очень удобны для разработчиков и программистов. Они позволяют структурировать адресное пространство и унифицировать программное обеспечение.

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

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

Стандарт USB определяет следующие типы передачи данных:

    Управляющие посылки, инициализация и управление оконечными устройствами. Поле данных не более 64 байт на полной скорости и 8 байт – на низкой. Обеспечивает гарантированную доставку данных.

    Сплошные потоки для больших пакетов без жестких требований ко времени доставки. Передачи занимают всю свободную пропускную способность интерфейса. Поле данных 8, 16, 32 или 64 байт. Они имеют самый низкий приоритет, могут приостанавливаться из-за нехватки производительности интерфейса. Допускаются только на полной скорости передачи.

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

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

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

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

Любой обмен данными в интерфейсе USB состоит из трех пакетов.

Первый пакет содержит адрес конечной точки и описание типа обмена данными. Его передает контроллер.

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

Третий пакет передает приемник. Пакет содержит подтверждение приема данных.

Форматы пакетов

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

В начале каждого пакета передается поле синхронизации, в это время все порты USB надежно синхронизируются с контроллером.

Затем передаются маркер начала пакета (2 бита), идентификатор пакета (4 бита), и еще раз он же, но в инверсном виде (табл. 3.2).

Таблица 3.2

Типы пакетов USB

Тип пакета

Идентифи-

катор пакета

Содержимое пакета

Маркер записи в оконечное устройство

Адрес устройства и номер конечной точки (маркер модели обмена)

Маркер чтения из оконечного

устройства

Маркер инициализации устройства (записи в управляющую конечную точку)

Маркер начала кадра

Маркер начала кадра

Пакеты данных четные и нечетные

Квитирование

Подтверждение верного

приема пакета

Квитирование

Ошибка обмена данными,

неготовность порта, нет

необслуженных прерываний

Квитирование

Прерывание

Системный

Переход на низкую скорость

В маркерах модели обмена – адрес устройства (7 бит) и адрес конечной точки (4 бита).

Отсюда те самые 127 устройств, поддерживаемые USB (нулевое устройство – системное).

В маркере начала кадра – поле номера кадра (11 бит).

В пакетах данных – сами данные (от 0 до 1023 байт).

В других пакетах поле данных отсутствует.

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

Каждый обмен данными инициируется хост-компьютером выдачей маркера и завершается пакетом квитирования (рис. 3.11).

Рис. 3.11. Последовательность передачи пакетов при обмене данными в USB

Маркер модели обмена передает хост-компьютер.

Данные передает оконечное устройство (модель «чтение из оконечного устройства») или хост-компьютер (в двух других случаях).

Пакет квитирования передает «принимающая сторона».

Хост-компьютер формирует кадр обмена данными со всеми устройствами, длящийся 1 мс. В каждом кадре происходят операции обмена данными по всем активным моделям обмена.

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

Маркер начала кадра содержит циклически наращиваемый сериальный номер. Он может использоваться оконечными устройствами для синхронизации или самотестирования.

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

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

  • Сергей Савенков

    какой то “куцый” обзор… как будто спешили куда то