Восходящий порт usb что это

Обновлено: 04.07.2024

Физические устройства на шине USB бывают трёх типов: хост-контроллер, хаб и конечное устройство.

Идём дальше. Что же вообще представляет собой логическое устройство USB (как хабы, так и функции)?

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

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

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

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

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

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

Типы стандартов USB и разница между ними

Вроде мы слышали, что USB 3.0 — это круче, чем USB 2.0. Но чем именно — знают не все. А тут еще появляются какие-то форматы Gen 1, Gen 2, маркировки Superspeed. Разбираемся, что значат все эти маркировки и чем они отличаются друг от друга. Спойлер: версий USB всего четыре.

USB 2.0

Когда-то было слово только USB 1.0. Сейчас это уже практически архаика, которую даже на старых устройствах почти не встретить. Еще 20 лет назад на смену первопроходцу USB 1.0 пришел улучшенный USB 2.0. Как и первая версия, эта спецификация использует два вида проводов. По витой паре идет передача данных, а по второму типу провода — питание устройства, от которого и идет передача информации. Но такой тип подключения подходил только для устройств с малым потреблением тока. Для принтеров и другой офисной техники использовались свои блоки питания.

USB версии 2.0 могут работать в трех режимах:

  • Low-speed, 10–1500 Кбит/c (клавиатуры, геймпады, мыши)
  • Full-speed, 0,5–12 Мбит/с (аудио и видеоустройства)
  • High-speed, 25–480 Мбит/с (видеоустройства, устройства для хранения данных)

USB 3.0

Стандарт USB 3.0 появился в 2008 году и до сих пор используется во многих устройствах. Скорость передачи данных выросла с 480 Мбит/с до 5 Гбит/с. Помимо скорости передачи данных, USB 3.0 отличается от версии 2.0 и силой тока. В отличие от более ранней версии, которая выдавала 500 мА, USB 3.0 способен отдавать до 4.5 Вт (5 В, 900 мА).

Новое поколение USB обратно совместима с предыдущими версиями. То есть USB 3.0 может работать и с разъемами USB 2.0 и даже 1.1. Но в этом случае буду ограничения по скорости. Подключив USB 3.0 к устройству с USB 2.0 скорость, вы получите не больше 480 Мбит/с — стандарт для версии 2.0. И наоборот, кабель 2.0 не станет более скоростным, если подключить его в устройство с USB 3.0. Это связано с количеством проводов, используемых в конкретной технологии. В версии USB 2.0 всего 4 провода, тогда как у USB 3.0 их 8.

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

USB 3.1

В 2013 году появляется версия USB 3.1 с максимальной заявленной скорость передачи данных до 10 Гбит/с, выходной мощностью до 100 Вт (20 В, 5 А). С появлением USB 3.1 произошла революция в маркировках всех стандартов. Но с ней мы разберемся чуть позже. А пока запомним главное: пропускная способность USB 3.1 увеличилась вдвое по сравнению с версией 3.0. И одновременно с обновленным стандартом появился и принципиально новый разъем — USB type-С. Он навсегда решил проблему неправильного подключения кабеля, так как стал симметричным и универсальным, и теперь все равно, какой стороной подключать провод к устройству.

USB 3.2

В 2017 году появилась информация о новой версии — USB 3.2. Она получила сразу два канала (больше проводов богу проводов) по 10 Гбит/с в каждую сторону и суммарную скорость в 20 Гбит/с. Стандарт USB 3.2 также обратно совместим с режимами USB 3.1, 3.0 и ниже. Поддерживается типом подключения USB-C на более современных гаджетах.

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

Версий разъемов USB несколько, и для каждого есть свое предназначение.

  • type-А — клавиатуры, флешки, мышии т. п.
  • type-B — офисная техника (принтеры, сканеры) и т. п.
  • mini type-B — кардридеры, модемы, цифровые камеры и т. п.
  • micro type-B — была наиболее распространенной в последние годы . Большинство смартфонов использовали именно этот тип подключения, пока не появился type-C. До сих пор остается довольно актуальным.
  • type-C — наиболее актуальный и перспективный разъем, полностью симметричный и двухсторонний. Появился одновременно со стандартом USB 3.1 и актуален для более поздних версий стандартов USB.


Superspeed, Gen или как разобраться в маркировках стандартов USB

Как только в типах стандартов появилась USB 3.1, привычная цифровая маркировка изменилась и здорово запуталась. Вполне понятный и простой USB 3.0 автоматически превратился в USB 3.1 Gen 1 и ему была присвоена маркировка SuperSpeed. А непосредственно сам USB 3.1 стал называться USB 3.1 Gen 2 с маркировкой SuperSpeed +.

Но и это уже потеряло свою актуальность с выходом стандарта USB 3.2. Он получил название USB 3.2 Gen 2×2 и маркировку SuperSpeed ++. В итоге маркировка всех предшествующих стандартов опять меняется. Теперь USB 3.0, она же USB 3.1 Gen 1, превращается задним числом в USB 3.2 Gen 1 с прежней маркировкой SuperSpeed. А USB 3.1, ставшая USB 3.1 Gen 2, тоже поднялась до USB 3.2 Gen 2. При этом конструктивно все стандарты остались прежними — изменяются только названия. Если вы уже запутались во всех этих цифрах и маркировках, таблица ниже поможет внести ясность в актуальных названиях.


Если еще более кратко, то сейчас опознать стандарты USB можно так:

USB 3.0 — это USB 3.2 Gen 1, он же Superspeed
USB 3.1 — это USB 3.2 Gen 2, он же Superspeed+
USB 3.2 — это USB 3.2 Gen 2x2, он же Superspeed++

День добрый, Geektimes! Все уже слышали про USB Type-C? Тот самый, который двухсторонний, быстрый-модный-молодёжный, заряжает новый макбук, делает волосы гладкими и шелковистыми и обещает стать новым стандартом подключения на следующие лет десять?


Так вот, во-первых, это тип разъёма, а не новый стандарт. Стандарт называется USB 3.1. Во-вторых, говорить нужно именно о новом стандарте USB, а Type-C лишь приятный бонус. Чтобы понять, в чём разница, что скрывается за USB 3.1, а что — за Type C, как заряжать от USB-кабеля целый ноутбук и что ещё можно сделать с новыми USB Type-C:

Коротко о главном

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

Не смотря на определённые преимущества USB-подключения перед PS/2, COM и LPT-портами, популярность пришла к нему не сразу. Взрывной рост USB испытал в начале двухтысячных: сначала к нему подключались камеры, сканеры и принтеры, затем флеш-накопители.

В 2001 году появились первые коммерческие реализации того USB, который нам привычен и понятен: версии 2.0. Им мы пользуемся вот уже 14-й год и устроен он сравнительно просто.

USB 2.0

Любой кабель USB версии 2.0 и ниже имеет внутри 4 медных проводника. По двум из них передаётся питание, по двум другим — данные. Кабели USB (по стандарту) строго ориентированы: один из концов должен подключаться к хосту (то есть системе, которая будет управлять соединением) и называется он Type-A, другой — к устройству, он называется Type-B. Разумеется, иногда в устройствах (таких, как флешки) кабеля нет вообще, разъём типа «к хосту» располагается прямо на плате.

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

Самый популярный разъём, которым все пользовались — USB Type-A классического размера: он расположен на флешках, USB-модемах, на концах проводов мышей и клавиатур. Чуть реже встречаются полноразмерные USB Type-B: обычно таким кабелем подключаются принтеры и сканеры. Мини-версия USB Type-B до сих пор часто используется в кардридерах, цифровых камерах, USB-хабах. Микро-версия Type-B стараниями европейских стандартизаторов стала де-факто самым популярным разъёмом в мире: все актуальные мобильники, смартфоны и планшеты (кроме продукции одной фруктовой компании) выпускаются именно с разъёмом USB Type-B Micro.


Ну а USB Type-A микро и миниформата наверное никто толком и не видел. Лично я навскидку не назову ни одного устройства с такими разъёмами. Даже фотографии пришлось из википедии доставать:




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

Номер контакта
4
3
2
1
Обозначение
GND
D+
D-
VBUS
Цвет провода
Чёрный
Зелёный
Белый
Красный

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

USB 3.0

Для улучшения характеристик стандарта была разработана новая спецификация USB 3.0, которая содержала следующие ключевые отличия:

Кроме того, появилось ещё 4 разъёма, электрически и механически совместимые с USB Type-A версии 2.0. Они позволяли как подключать USB 2.0-устройства к 3.0-хостам, так и 3.0-устройства к 2.0-хостам или по 2.0-кабелю, но с ограничением по питанию и скорости передачи данных.

USB 3.1

С осени 2013 года приняты спецификации на обновлённый стандарт USB 3.1, который и принёс нам разъём Type-C, передачу до 100 Вт питания и удвоение скорости передачи данных по сравнению с USB 3.0. Однако стоит отметить, что все три новшества — это лишь части одного нового стандарта, которые могут быть как применены все вместе (и тогда девайс или кабель получит сертификацию USB 3.1), либо по отдельности. Например, технически внутри Type-C кабеля можно организовать хоть USB 2.0 на четырёх проводах и двух парах контактов. К слову, такой «финт» провернула компания Nokia: её планшет Nokia N1 имеет разъём USB Type-C, но внутри используется обычный USB 2.0: со всеми ограничениями по питанию и скорости передачи данных.


USB 3.1, Type-C и питание

За возможности по передаче действительно серьёзных мощностей отвечает новый стандарт USB PD (Power Delivery). Согласно спецификациям, для сертификации USB PD устройство и кабель должны обеспечивать передачу тока с мощностью до 100 Ватт, причём в обе стороны (как к хосту, так и от него). При этом передача электроэнергии не должна мешать передаче данных.

Пока существует только два ноутбука, полностью поддерживающие USB Power Delivery: новый макбук и Chromebook Pixel.

Ну а потом, кто знает, может, будем дома вот такие розетки ставить?

USB Type-C и обратная совместимость

USB как стандарт силён своей обратной совместимостью. Найдите древнюю флешку на 16 мегабайт, поддерживающую только USB 1.1, вставьте её в порт 3.0 и работайте. Подключите современный HDD в разъём USB 2.0, и если ему хватит питания — всё заведётся, просто скорость будет ограничена. А если не хватит — существуют специальные переходники: они используют цепи питания ещё одного порта USB. Скорость не увеличится, но HDD будет работать.

Та же история и с USB 3.1 и разъёмом Type-C, с одной лишь поправкой: новый разъём геометрически никак не совместим со старыми. Впрочем, производители активно начали производство как проводов Type-A <=> Type-C, так и всевозможных переходников, адаптеров и разветвителей.

USB Type-C и туннелирование

Скорость передачи данных стандарта USB 3.1 позволяет не только подключать накопители и периферию, заряжать ноутбук от сети через Type-C-кабель, но и подключить, скажем… монитор. Одним проводом. И USB hub с несколькими 2.0-портами внутри монитора. 100 Вт питания, скорость, сравнимая с DisplayPort и HDMI, универсальный разъём и всего один проводок от ноутбука к монитору, блок питания которого и дисплей обеспечит электричеством, и ноутбук зарядит. Разве это не прекрасно?

Что сейчас есть на USB Type-C

Так как технология молодая, на USB 3.1 девайсов совсем немного. Устройств же с кабелем / разъёмом USB Type-C немногим больше, но всё равно недостаточно, чтобы Type-C стал таким же распространённым и естественным, как Micro-B, который есть у любого пользователя смартфона.

На персональных компьютерах Type-C ждать можно уже в 2016, но некоторые производители взяли и обновили линейку имеющихся материнских плат. Например, USB Type-C с полной поддержкой USB 3.1 есть на материнской плате MSI Z97A Gaming 6.



Не отстаёт и компания ASUS: материнские платы ASUS X99-A и ASUS Z97-A поддерживают USB 3.1, но, к сожалению, лишены разъёмов Type-C. Кроме того, анонсированы специальные платы расширения для тех, кому не хочется ни обновлять материнскую плату, ни отказываться от пары USB 3.1-портов.

Компания SanDisk не так давно представила 32 Гб флеш-накопитель с двумя разъёмами: классическим USB Type-A и USB Type-C:

Разумеется, не стоит забывать про недавний MacBook с пассивным охлаждением и всего одним разъёмом USB Type-C. Про его производительность и прочие прелести поговорим как-нибудь отдельно, а вот про разъём — сегодня. Apple отказалась как от своей «волшебной» зарядки MagSafe, так и от других разъёмов на корпусе, оставив один порт для питания, подключения периферии и внешних дисплеев. Разумеется, если вам мало одного разъёма, можно купить официальный переходник-разветвитель на HDMI, классический USB и разъём питания (всё тот же Type-C) за… 80 долларов. :) Остаётся надеяться, что Type-C придёт и на мобильные девайсы Apple (и на этом зоопарк с проводами для смартфонов закончится окончательно), хотя шансы на такой апдейт минимальные: зря что ли разрабатывали и патентовали Lightning?

Один из производителей периферии — LaCie — уже успел выпустить для нового макбука стильный внешний накопитель с поддержкой USB 3.1 Type-C. Цена у него, правда, совершенно яблочная, но что поделаешь – за новые технологии и надпись PORSCHE DESIGN надо платить.



Кроме Apple заигрывают с USB 3.1 Type-C и в компании Google: новый ChromeBook Pixel помимо интересных характеристик получил и соответствующий порт.

Ну и, разумеется, не стоит забывать про девайс от компании Nokia. Их планшет N1 получил разъём Type-C одним из первых, правда, без поддержки функций USB 3.1.

Итоги

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

Представьте мир через 5 лет? Куда не приди — всюду и зарядка есть, и разъём подходит, и спрашивать не надо. И фотоаппарат подключить легко, и телефон, и вообще всё-всё-всё… И только в бухгалтерии как пользовались дискетами, так и будут пользоваться.


Спасибо за внимание!


Появилось немного свободного времени, и я решил написать небольшую «внеплановую» статью.

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

Обмен данными по USB

Нужно помнить, что интерфейс USB предусматривает использование разветвлителей – хабов. Более того, допускается каскадное включение хабов. Следовательно, необходимо как-то идентифицировать конкретное USB устройство в «гирлянде» из хабов и USB устройств. Для этого каждому устройству присваивается адрес.

Здесь остановимся немного подробнее. Адрес кодируется 7 битами. Изначально (в момент подключения), устройство, грубо говоря, само себе назначает адрес 0. Этот адрес зарезервирован стандартом как раз для вновь подключаемых устройств. Далее, в процессе инициализации (об этом поговорим позже), хост присваивает устройству уникальный адрес отличный от 0, а адрес 0 «освобождается» для вновь подключаемых устройств.

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

Как мы уже выяснили, сразу после включения, устройство имеет особый, «нулевой» адрес. Каждое устройство, согласно стандарту, имеет «нулевую конечную точку» типа Control. Соответственно, сразу после подключения, хост может начинать обмениваться данными с новым устройством (адрес = 0, номер конечной точки = 0).

Рассмотрим, как происходит обмен данными.

Сам обмен осуществляется пакетами. Стандартом предусмотрено несколько типов пакетов. «Побайтно» мы пока разбирать пакеты не будем, но коснемся этого вопроса в практической части.

Дело в том, что часть работы по формированию и передаче пакетов (например, вопросы синхронизации, расчет контрольных сумм и т. д.) возьмет на себя USB периферия МК. Для тех, кто хочет сразу углубиться в биты и байты могу порекомендовать ознакомиться с разделом 8 официальной спецификации USB 2.0

Пока нам достаточно знать, что существуют «пакеты данных» и несколько типов «служебных пакетов».

USB и Plug and Play

Давайте рассмотрим, что с нашим устройством будет происходить дальше, после того как хост определил подключение нового устройства и готов начать обмен данными. Нам нужно ненадолго подняться на «высокий» уровень – уровень ОС.

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

Для того чтобы вся эта красота работала, стандартом USB предусмотрены некие общие требования для всех устройств:

1. Каждое устройство содержит «собственное описание» (дескриптор устройства).

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

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

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

Что будет, если служба не сможет найти «подходящий» драйвер для данного устройства знают все :)

Теперь возвращаемся на наш «низкий» уровень.

Начало работы с устройством. Стандартные заросы.

На практике, для чтения дескриптора устройства и первичной инициализации используются та самая «нулевая конечная точка». Есть несколько предусмотренных стандартом запросов (Standard Device Requests), которые должны обрабатываться всеми USB устройствами. Пока приведу несколько примеров таких запросов:

GET_DESCRIPTOR – запрос на получения дескриптора устройства. Данный запрос содержит дополнительную информацию о том, какой именно дескриптор должно вернуть (в устройстве «хранится» несколько разных дескрипторов, но об этом позже).

GET_CONFIGURATION – запрос на получение текущей конфигурации устройства.

SET_ADDRESS – данный запрос используется для присвоения устройству «нормального» (отличного от 0) адреса. Сам адрес содержится в запросе.

Нужно понимать, что запрос — это не более чем стандартизированная структура данных, которая содержит код запроса (bRequest) и дополнительные данные. Ответы на каждый из запросов тоже, естественно, стандартизированы.

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

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

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

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

Читайте также: