Стандарт usb 2.0 описание. Последовательная универсальная шина USB (Universal Serial Bus)

31.08.2023

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

Все транзакции (обмены) с устройствами USB состоят из двух-трех пакетов, типовые последовательности пакетов в транзакциях приведены на рис. 1. Каждая транзакция планируется и начинается по инициативе хост-контроллера, который посылает пакет-маркер транзакции (token packet). Маркер транзакции описывает тип и направление передачи, адрес выбранного устройства USB и номер конечной точки. Адресуемое маркером устройство распознает свой адрес и готовится к обмену. Источник данных, определенный маркером, передает пакет данных. На этом этапе транзакции, относящиеся к изохронным передачам, завершаются — здесь нет подтверждения приема пакетов. Для остальных типов передач работает механизм подтверждения, обеспечивающий гарантированную доставку данных. Форматы пакетов приведены на рис. 2, типы пакетов — в таблице. Во всех полях пакетов, кроме поля CRC, данные передаются младшим битом вперед (на временных диаграммах младший бит изображается слева). Пакет начинается с синхропоследовательности Sync и завершается признаком конца — EOP. Тип пакета определяется полем PID. Назначение остальных полей раскрывается далее. Длина полей Sync и EOP указана для передач на FS/LS, для высокоскоростных передач поле Sync удлинено до 32 битовых интервалов, а EOP до 8 (в пакетах SOF поле EOP имеет длину 40 бит).

Все принимаемые пакеты проверяются на наличие ошибок, что позволяют принятые форматы пакета и некоторые соглашения:

  • пакет начинается с синхронизирующей последовательности, за которой следует его идентификатор PID (Packet Identificator). За идентификатором следует его инверсная копия — Check. Несовпадение двух копий считается признаком ошибки;
  • тело пакета (все поля пакета, исключая PID и признак EOP) защищается CRCкодом: 5-битным для пакетов-маркеров, 16-битным — для пакетов данных. Несовпадение CRC с ожидаемым значением считается признаком ошибки;
  • пакет завершается специальным сигналом EOP; если в пакете оказывается не целое число байт, он считается ошибочным. Ложный EOP, даже на границе байта, не позволит принять пакет из-за практически неизбежной в данной ситуации ошибки по CRC-контролю;
  • на физический уровень (в шину) данные пакета передаются с использованием вставки бит (bit stuffing, после шести единичных бит вставляется нолик), что предотвращает потерю битовой синхронизации при монотонном сигнале. Прием более шести единичных бит подряд считается ошибкой (на HS — признаком конца кадра).

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

Для обнаружения отсутствия ответа партнера на пакет каждое устройство имеет счетчик тайм-аута, который прерывает ожидание ответа по истечении некоторого времени. В USB имеется ограничение на время оборота по шине (roundtrip time): время от конца EOP сформированного пакета до получения начала ответного пакета. Для конечного устройства (и хост-контроллера) нормируется максимальная задержка ответа (response time) от конца увиденного EOP до введения им начала пакета. Для хабов нормируется задержка трансляции пакетов, для кабелей — задержка распространения сигналов. Счетчик тайм-аута должен учитывать максимальную задержку, возможную для допустимой конфигурации шины: до 5 промежуточных хабов, до 5 метров каждый кабель. Допустимое значение тайм-аута, выражаемое в битовых интервалах (bt), зависит от скорости:

  • для скоростей FS/LS задержка, вводимая одним кабельным сегментом, по сравнению с битовым интервалом (bt) невелика. Исходя из этого в USB 1.0 для расчета допустимых задержек принимается следующая модель. На каждый кабельный сегмент отводится допустимая задержка 30 нс, на хаб — 40 нс. Таким образом, пять промежуточных хабов со своими кабелями вносят во время двойного оборота задержку 700 нс, что на FS соответствует примерно 8,5 bt. Для FS-устройства задержка ответа не должна превышать 6,5 bt (а с учетом его кабеля — 7,5 bt). Исходя из этого спецификация предписывает передатчикам на FS использовать счетчик тайм-аута на 16-18 bt;
  • на скорости HS задержка в кабельном сегменте много больше битового интервала, и в USB 2.0 модель расчета несколько иная. Здесь на каждый кабельный сегмент отводится по 26 нс, а на хаб — по 4 нс плюс 36 bt. Таким образом, двукратное прохождение 6 кабельных сегментов (2×6×26 = 312 нс ≈ 150 bt) и пять хабов (2×5×4 = 40 нс ≈ 19 bt плюс 2×5×36 = 360 bt) занимает до 529 bt. Задержка ответа устройства допустима до 192 bt, а полная задержка с учетом кабелей и хабов будет до 721 bt. Исходя из этого спецификация предписывает передатчикам на HS использовать счетчик тайм-аута на 736-816 bt.

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

Для подтверждений приема, управления потоком и сигнализации ошибок используются пакеты квитирования (handshake packets). Из этих пакетов хост-контроллер может посылать устройству только пакет ACK, подтверждающий безошибочный прием пакета данных. Устройство для ответа хосту использует следующие пакеты квитирования:

ACK — подтверждение (положительное) успешного выполнения транзакции вывода или управления;
NAK — отрицательное подтверждение, является признаком неготовности устройства к выполнению данной транзакции (нет данных для передачи хосту, отсутствует место в буфере для приема, не завершена операция управления). Это является нормальным ответом, о котором не узнает никто, кроме хост-контроллера, вынужденного повторить данную транзакцию позже. В транзакциях ввода ответ NAK устройство дает вместо пакета данных, если они не готовы;
STALL — сообщение о серьезной ошибке, которое означает, что без специального программного вмешательства работа с данной конечной точкой становится невозможной. Этот ответ доводится до сведения и драйвера USBD, отменяющего дальнейшие транзакции с этой точкой, и до клиентского драйвера, от которого и ожидается программное вмешательство, разблокирующее точку. В управляющих транзакциях (Control) ответ STALL означает невыполнимость данного запроса; разблокирования точки при этом не требуется.

Управление потоком при выводе данных, основанное только на возможности ответа NAK в случае неготовности устройства, весьма неэффективно расходует пропускную способность шины: чтобы убедиться в неготовности устройства, по шине впустую передается большой пакет данных. В USB 2.0 этой неприятности в транзакциях Bulk-OUT и Control избегают, применив протокол проб (Ping Protocol). Хост может опросить готовность устройства к приему пакета максимального размера, послав ему маркер-пробник PING. На этот маркер устройство может ответить подтверждением ACK (при готовности) или NAK (если не способно принять пакет максимального размера). Отрицательный ответ заставит хост повторить пробу позже, положительный разрешит ему выполнить транзакцию вывода данных. На транзакцию вывода после положительного ответа на пробу ответы устройства более разнообразны:

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

Высокоскоростное устройство в дескрипторах конечных точек сообщает о возможной интенсивности посылок NAK: поле bInterval для конечных точек типа Bulk и Control указывает число микрокадров, приходящееся на один NAK (0 означает, что устройство никогда не ответит NAK’ом на транзакцию вывода).

Передачи массивов, прерываний и управления обеспечивают надежную доставку данных. После успешного приема пакета приемник данных посылает подтверждение — пакет квитирования ACK. Если приемник данных обнаружил ошибку, пакет игнорируется и никакого ответа на него не посылается. Источник данных считает, что очередной пакет передан успешно, когда получает от приемника подтверждение ACK. Если подтверждение не приходит, то в следующей транзакции источник повторяет посылку того же пакета. Однако пакет подтверждения может быть потерян из-за помехи; чтобы в этом случае повторная посылка пакета приемником не воспринималась как следующая порция данных, пакеты данных нумеруются. Нумерация ведется по модулю 2 (1-битный номер): пакеты делятся на четные (с идентификатором DATA0) и нечетные (DATA1). Для каждой конечной точки (кроме изохронных) у хоста и в устройстве имеются биты-переключатели (Toggle Bit), их начальные состояния тем или иным способом согласуются. В транзакциях IN и OUT передаются и ожидаются пакеты данных с идентификаторами DATA0 или DATA1, соответствующими текущему состоянию этих бит. Приемник данных переключает свой бит в случае безошибочного приема данных с ожидаемым идентификатором, источник данных — по приему подтверждения. Если приемник получает безошибочный пакет с неожидаемым идентификатором, он посылает подтверждение ACK, но данные пакета игнорирует, поскольку этот пакет — повторная посылка уже принятых данных.

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

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

Транзакции изохронного вывода состоят из двух пакетов, посылаемых хост-контроллером, — маркера OUT и пакета данных DATA. В транзакции ввода хост посылает маркер IN, на который устройство отвечает пакетом данных, возможно, и с нулевой длиной поля данных (если нет готовых данных). Любой другой ответ устройства (как и «молчание») хостом расценивается как ошибка, приводящая к остановке данного канала.

При изохронном обмене имеется контроль достоверности (отбрасывание пакетов с ошибками) и целостности данных (обнаружение факта пропажи пакета). Контроль целостности основан на строгой детерминированности темпа обмена — в соответствии со своим дескриптором точка ожидает транзакцию с периодом 2bInterval-1 микрокадров. Для обычной изохронной конечной точки в микрокадре возможна лишь одна транзакция, и ошибка при приеме пакета выражается в отсутствии принятых данных в микрокадре, в котором они ожидаются. Таким образом, нумерация пакетов (переключатель Toggle Bit) не требуется. Полноскоростные устройства и хостконтроллеры должны посылать пакеты только типа DATA01. Для широкополосных изохронных конечных точек (USB 2.0) в каждом микрокадре возможна передача до трех пакетов данных. Любой из этих пакетов может потеряться, и для обнаружения этой ситуации требуется нумерация пакетов внутри микрокадра. Для этой нумерации введено два новых типа пакетов данных: DATA2 и MDATA. Многообразие типов пакетов кроме нумерации позволяет еще и информировать партнера по связи о своих планах на данный микрокадр. В транзакциях IN идентификатором пакета устройство указывает, сколько еще пакетов оно собирается выдать в том же микрокадре, что позволяет хосту не делать лишних попыток ввода. Так, если в микрокадре передается один пакет, то это будет DATA0; если два — последовательность будет DATA1, DATA0; три — DATA2, DATA1, DATA0. В транзакциях OUT для вывода не последнего пакета в микрокадре используется пакет MDATA (More Data), а идентификатор последнего пакета показывает, сколько было до него передано пакетов. Так, при одной транзакции вывода используется пакет DATA0, при двух — последовательность MDATA, DATA1, при трех — MDATA, MDATA, DATA2. Во всех транзакциях, кроме последней в микрокадре, должны использоваться пакеты максимального размера. Отметим, что между широкополосными транзакциями в микрокадре могут вклиниваться другие транзакции.

В конце 2008 года. Как и можно было ожидать, новый стандарт увеличил пропускную способность, хотя прирост не такой значительный, как 40-кратное увеличение скорости при переходе от USB 1.1 на USB 2.0. В любом случае, 10-кратное повышение пропускной способности можно приветствовать. USB 3.0 поддерживает максимальную скорость передачи 5 Гбит/с. Пропускная способность почти в два раза превышает современный стандарт Serial ATA (3 Гбит/с с учётом передачи информации избыточности).

Логотип USB 3.0

Каждый энтузиаст подтвердит, что интерфейс USB 2.0 является основным «узким местом» современных компьютеров и ноутбуков, поскольку его пиковая «чистая» пропускная способность составляет от 30 до 35 Мбайт/с. Но у современных 3,5″жёстких дисков для настольных ПК скорость передачи уже превысила 100 Мбайт/с (появляются и 2,5″ модели для ноутбуков, приближающиеся к данному уровню). Скоростные твёрдотельные накопители успешно превзошли порог 200 Мбайт/с. А 5 Гбит/с (или 5120 Мбит/с) соответствует 640 Мбайт/с.

Мы не думаем, что в обозримом будущем жёсткие диски приблизятся к уровню 600 Мбайт/с, но следующие поколения твёрдотельных накопителей могут превысить это число уже через несколько лет. Увеличение пропускной способности становится всё более важным, поскольку количество информации увеличивается, соответственно, растёт и время её резервирования. Чем быстрее работает хранилище, тем меньше будет время резервирования, тем проще будет сделать «окна» в расписании резервирования.

Таблица сравнения скоростных характеристик USB 1.0 – 3.0

Цифровые видеокамеры сегодня могут записывать и хранить гигабайты видеоданных. Доля HD-видеокамер увеличивается, а им требуются более ёмкие и быстрые хранилища для записи большого количества данных. Если использовать USB 2.0, то на передачу нескольких десятков гигабайт видеоданных на компьютер для монтажа потребуется значительное время. USB Implementers Forum считает, что пропускная способность останется принципиально важной, и USB 3.0 будет достаточно для всех потребительских устройств на протяжении ближайших пяти лет.

Кодирование 8/10 бит

Чтобы гарантировать надёжную передачу данных интерфейс USB 3.0 использует кодирование 8/10 бит, знакомое нам, например, по Serial ATA. Один байт (8 бит) передаётся с помощью 10-битного кодирования, что улучшает надёжность передачи в ущерб пропускной способности. Поэтому переход с битов на байты осуществляется с соотношением 10:1 вместо 8:1.

Сравнение пропускной способности USB 1.x – 3.0 и конкурентов

Режимы энергосбережения

Конечно, основной целью интерфейса USB 3.0 является повышение доступной пропускной способности , однако новый стандарт эффективно оптимизирует энергопотребление . Интерфейс USB 2.0 постоянно опрашивает доступность устройств, на что расходуется энергия. Напротив, у USB 3.0 есть четыре состояния подключения, названные U0-U3. Состояние подключения U0 соответствует активной передаче данных, а U3 погружает устройство в «сон».

Если подключение бездействует, то в состоянии U1 будут отключены возможности приёма и передачи данных. Состояние U2 идёт ещё на шаг дальше, отключая внутренние тактовые импульсы. Соответственно, подключённые устройства могут переходить в состояние 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 2.0.

Новые кабели, разъёмы, цветовое кодирование

Стандарт USB 3.0 обратно совместим с USB 2.0 , то есть вилки кажутся такими же, как и обычные вилки типа A. Контакты USB 2.0 остались на прежнем месте, но в глубине разъёма теперь располагаются пять новых контактов. Это означает, что вам нужно полностью вставлять вилку USB 3.0 в порт USB 3.0, чтобы удостовериться в режиме работы USB 3.0, для которого требуются дополнительные контакты. Иначе вы получите скорость USB 2.0. USB Implementers Forum рекомендует производителям использовать цветовое кодирование Pantone 300C на внутренней части разъёма.

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

USB 3.0 не использует волоконную оптику , поскольку она слишком дорога для массового рынка. Поэтому перед нами старый добрый медный кабель. Однако теперь у него будет девять, а не четыре провода. Передача данных осуществляется по четырём из пяти дополнительных проводов в дифференциальном режиме (SDP–Shielded Differential Pair). Одна пара проводов отвечает за приём информации, другая – за передачу. Принцип работы похож на Serial ATA, при этом устройства получают полную пропускную способность в обоих направлениях. Пятый провод – «земля».

USB (Universal Serial Bus - «универсальная последовательная шина») - последовательный интерфейс передачи данных для среднескоростных и низкоскоростных периферийных устройств. Для подключения используется 4-х проводный кабель, при этом два провода используются для приёма и передачи данных, а 2 провода - для питания периферийного устройства. Благодаря встроенным линиям питания USB позволяет подключать периферийные устройства без собственного источника питания.

Основные сведения о USB

Кабель USB состоит из 4 медных проводников - 2 проводника питания и 2 проводника данных в витой паре, и заземленной оплётки (экрана). Кабели USB имеют физически разные наконечники «к устройству» и «к хосту». Возможна реализация USB устройства без кабеля, со встроенным в корпус наконечником «к хосту». Возможно и неразъёмное встраивание кабеля в устройство (например, USB-клавиатура, Web-камера, USB-мышь) , хотя стандарт запрещает это для устройств full и high speed.

Шина USB строго ориентирована, т. е. имеет понятие «главное устройство» (хост, он же USB контроллер, обычно встроен в микросхему южного моста на материнской плате) и «периферийные устройства».

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

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

На логическом уровне устройство USB поддерживает транзакции приема и передачи данных. Каждый пакет каждой транзакции содержит в себе номер оконечной точки (endpoint) на устройстве. При подключении устройства драйверы в ядре ОС читают с устройства список оконечных точек и создают управляющие структуры данных для общения с каждой оконечной точкой устройства. Совокупность оконечной точки и структур данных в ядре ОС называется каналом (pipe) .

Оконечные точки , а значит, и каналы, относятся к одному из 4 классов:

  • поточный (bulk),
  • управляющий (control),
  • изохронный (isoch),
  • прерывание (interrupt).

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

Управляющий канал предназначен для обмена с устройством короткими пакетами «вопрос-ответ». Любое устройство имеет управляющий канал 0, который позволяет программному обеспечению ОС прочитать краткую информацию об устройстве, в том числе коды производителя и модели, используемые для выбора драйвера, и список других оконечных точек.

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

Изохронный канал позволяет доставлять пакеты без гарантии доставки и без ответов/подтверждений, но с гарантированной скоростью доставки в N пакетов на один период шины (1 КГц у low и full speed, 8 КГц у high speed). Используется для передачи аудио- и видеоинформации.

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

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

Активной стороной шины всегда является контроллер, передача пакета данных от устройства к контроллеру реализована как короткий вопрос контроллера и длинный, содержащий данные, ответ устройства. Расписание движения пакетов для каждого периода шины создается совместным усилием аппаратуры контроллера и ПО драйвера, для этого многие контроллеры используют Прямой доступ к памяти DMA (Direct Memory Access ) - режим обмена данными между устройствами или же между устройством и основной памятью, без участия Центрального Процессора (ЦП). В результате скорость передачи увеличивается, так как данные не пересылаются в ЦП и обратно.

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


Технические характеристики USB

Возможности, достоинства и недостантки USB:

  • Высокая скорость обмена (full-speed signaling bit rate) - 12 Мб/с;
  • Максимальная длина кабеля для высокой скорости обмена - 5 м;
  • Низкая скорость обмена (low-speed signaling bit rate) - 1.5 Мб/с;
  • Максимальная длина кабеля для низкой скорости обмена - 3 м;
  • Максимум подключенных устройств (включая размножители) - 127;
  • Возможно подключение устройств с различными скоростями обмена;
  • Не нужно устанавливать дополнительных элементов, таких как терминаторы;
  • Напряжение питания для периферийных устройств - 5 В;
  • Максимальный ток потребления на одно устройство - 500 mA.

Сигналы USB передаются по двум проводам экранированного 4-хпроводного кабеля.

Распайка разъема USB 1.0 и USB 2.0

Тип А Тип В
Вилка
(на кабеле)
Розетка
(на компьютере)
Вилка
(на кабеле)
Розетка
(на периферийном
устройстве)

Названия и функциональные назначения выводов USB 1.0 и USB 2.0

Data (передача данных) 4 GND Ground (корпус)

Недостатки USB 2.0

Хоть максимальная скорость передачи данных USB 2.0 составляет 480 Мбит/с (60 Мбайт/с), в реальной жизни достичь таких скоростей нереально (~33,5 Мбайт/сек на практике). Это объясняется большими задержками шины USB между запросом на передачу данных и собственно началом передачи. Например, шина FireWire , хотя и обладает меньшей пиковой пропускной способностью 400 Мбит/с, что на 80 Мбит/с (10 Мбайт/с) меньше, чем у USB 2.0, в реальности позволяет обеспечить бо́льшую пропускную способность для обмена данными с жёсткими дисками и другими устройствами хранения информации. В связи с этим разнообразные мобильные накопители уже давно «упираются» в недостаточную практическую пропускную способность USB 2.0.

Сегодняшняя статья будет посвящена, как уже видно из названия, обсуждению основ интерфейса 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 3.0 отличается от USB 2.0, иногда хотят понять какая версия или какой тип USB разъема имеется у них на компьютере, что за динозавр такой USB 1.0 и так далее. Давайте немного углубимся в эту тему.

Стандарт USB появился еще в середине 90х годов. Расшифровывается USB вот как – универсальная последовательная шина (Universal Serial Bus) . Этот стандарт был разработан специально для коммуникации периферийных устройств с компьютером, и сейчас занимает лидирующие позиции среди всех типов коммуникационных интерфейсов. Это и неудивительно. Сейчас сложно себе представить хоть какой-то девайс без USB разъема, хоть эти разъемы и различаются по типам.

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

На сегодняшний день существует достаточно большое количество типов USB разъемов. Какие-то больше распространены, какие-то меньше. В общем, давай на них взглянем.

USB type- A – один из самых распространенных типов USB разъемов. Вы могли видеть его на вашем , на , на блоке зарядного устройства и не только. Имеет множество применений. С его помощью можно подсоединять мышки и клавиатуры к компьютеру (или другому устройству), флешки, внешние накопители, смартфоны и так далее. Этот список можно еще долго продолжать, если пораскинуть мозгами.

USB type- B – разъем используется в основном для того, чтобы подключить к компьютеру принтер либо другие периферийные устройства. Получил намного меньшее распространение, нежели USB type-A.

Mini USB был весьма распространен на мобильных устройствах до появления Micro USB. Сейчас встречается очень редко, но все же можно его встретить еще на некоторых старых устройствах. У меня на портативной аудиоколонке разъем Mini USB принимает электроэнергию для зарядки аккумулятора. Колонку эту покупал лет 5 назад (живучая оказалась).

Micro USB сейчас используется на смартфонах и мобильных телефонах почти всех производителей. Этот USB разъем обрел невероятную популярность среди мобильных устройств. Однако постепенно его позиции занимает USB Type-C.

Версия USB 1.0 – археологические раскопки

Прапрапрадед стандарта USB – USB 1.0 появился на свет холодным ноябрем 1995 года. Но родился он немного недоношенным и большой популярности не обрел. А вот его младший брат USB 1.1, появившийся на свет тремя годами позже, был более жизнеспособным экземпляром и смог привлечь к себе достаточно внимания.

Что касается технической части, то скорость передачи данных была небольшой, но по меркам тех времен этой скорости было более чем достаточно. Скорость составляла до 12 Мбит/с и это в режиме высокой пропускной способности.

Отличия разъемов USB 2.0 и USB 3.0

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

Теоретически скорость передачи данных стандарта USB 3.0 примерно в 10 раз выше, чем у USB 2.0 (5 Гбит/с против 480 Мбит/с). Но на практике скорость обмена информацией между устройствами часто бывает ограничена самими устройствами. Хотя в целом, USB 3.0 все же выигрывает.

Технические отличия

Хоть стандарты USB 2.0 и USB 3.0 и обратносовместимы, но, тем не менее, они имеют некоторые технические отличия. USB 2.0 имеет 4 контакта – 2 для питания устройств и 2 для передачи данных. Эти 4 контакты были сохранены и в стандарте USB 3.0. Но кроме них были добавлены еще 4 контакта, которые нужны для высокой скорости передачи данных и более быстрой зарядки устройств. К слову, USB 3.0 может работать с силой тока до 1 Ампера.

В итоге шнур стандарта USB 3.0 стал толще, и его длина не превышает теперь 3 метра (в USB 2.0 максимальная длина достигала 5 метров). Зато вы сможете зарядить свой смартфон намного быстрее, даже если вы подсоедините несколько смартфонов в один разъем через разветвитель.

Естественно производители позаботились о визуальных отличиях. Можно не искать упаковку от материнской платы, чтобы посмотреть какие стандарты USB она поддерживает. И не нужно для этого лезть в настройки компьютера или в диспетчер устройств. Достаточно просто взглянуть на цвет вашего разъема. Разъем USB 3.0 почти всегда синего цвета. Очень редко он бывает еще красного цвета. В то время как USB 2.0 практически всегда черного цвета.

Так что теперь с одного меткого взгляда вы сможете определить у вас USB 2.0 или USB 3.0 на ноутбуке.

На этом, наверное, можно заканчивать разговор о том, чем отличается USB 2.0 от USB 3.0.

Вывод

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

И что самое интересное, о чем я забыл упомянуть в статье, это то, что типы разъемов могут комбинироваться следующим образом. Вы можете встретить полноразмерный разъем USB type-A и полноразмерный USB type-B, в то же время существует (но редко встречается) micro USB type-A и micro USB type-B (очень распространен). USB type-A может работать по протоколу USB 2.0, а может по протоколу USB 3.0. В общем при желании можно и запутаться.

А если вас беспокоит вопрос, с какими разъемами лучше выбрать себе ноутбук USB 2.0 или USB 3.0, то вообще не парьтесь. Сейчас все современные ноутбуки и компьютеры оснащены и тем и тем типом USB. Например, у меня на ноутбуке два разъема USB 2.0 и один разъем USB 3.0. И все три разъема типа USB type-A.

Вот такие они – USB!

Вы дочитали до самого конца?

Была ли эта статья полезной?

Да Нет

Что именно вам не понравилось? Статья была неполной или неправдивой?
Напишите в клмментариях и мы обещаем исправиться!