Usb upstream что это такое

Обновлено: 04.07.2024


Когда мы в SberDevices делаем новое устройство, работаем над его аппаратной частью, перед нами встаёт вопрос выбора интерфейсов. Важным моментом при выборе является их доступность и совместимость с другими устройствами.

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

Краткий обзор особенностей USB TYPE-C

Стандарты USB существуют много лет, развиваются и совершенствуются по мере увеличения технологических потребностей и возможностей. Несмотря на свою универсальность, которая следует из аббревиатуры, привычный USB перестал удовлетворять по объему своей функциональности. В частности, не может решить задачу по обеспечению питания многих современных устройств, потребление которых серьёзно увеличилось. Первая версия USB TYPE-C появилась в 2013 году. Помимо возможностей USB 2.0 и USB 3.0, USB-C стал поддерживать существенно более энергоёмкие профили питания, а также альтернативные режимы работы. В альтернативных режимах контакты разъёма используются для передачи данных высокоскоростных стандартов, таких как Display Port, Thunderbolt, HDMI, Mobile High-Definition Link (MHL). Недавно была опубликована новая реализация стандарта — USB4, которая также ориентируется на спецификацию USB-C.

Описание и назначение контактов разъёма

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

Рассмотрим группы сигналов USB-C соединителя:

Группа Цепи
Питание VBUS (4 контакта), GND (4 контакта)
USB 2.0 DP (2 контакта), DN (2 контакта)
USB 3.0 TX1+, TX1-, TX2+, TX2-, RX1+, RX1-, RX2+, RX2-
Конфигурационные контакты CC1, CC2
Дополнительные (Альтернативный режим) SBU1, SBU2

Видно, что под питание заложено 4 пары контактов. Это намекает на то, что через разъём стала возможна доставка существенно большей энергии для питания устройства. Через контакты питания возможна передача до 100 Ватт в нагрузку.

Профили питания доступные через USB TYPE-C:

USB 2.0 5 В 500 mA
USB 3.0/USB 3.1 5 В 900 mA
USB BC 1.2 5 В, до 1.5 А
USB Type-C Current 1.5A 5 В 1.5 A
USB Type-C Current 3.0A 5 В 3.0 A
USB Power Delivery до 20 В, до 5A

Режим питания зависит от того, какая функциональность USB-C используется. Появившиеся контакты CC позволяют установить требуемый режим питания и открывают некоторые дополнительные возможности, но об этом позже.

Чтобы иметь возможность использовать профиль питания с большим током, при установке соединения нужно воспользоваться конфигурационными контактами CC.

Конфигурационные контакты СС

С помощью конфигурационных контактов CC (Configuration channel) происходит подключение двух устройств, установка параметров соединения, профилей питания, а также информационный обмен протокола USB Power Delivery. Функционально CC1- и CC2-пины решают следующие задачи:


Источник (он же DFP) подтягивает линии CC к плюсу через резисторы Rp или использует источники тока. Потребитель (UFP) в свою очередь через резисторы Rd подтягивает линии CC к минусу.

Выставляя определённый номинал Rp (или создавая определённый ток на линии СС), host сообщает, какой ток для питания устройства он может обеспечить. Измеряя падение напряжения на Rd, потребитель понимает, какой Rp используется на противоположном конце и, следовательно, определяет ток питания, который может обеспечить host. Без использования USB Power Delivery по такой схеме возможно установить соединение c током до 3А с единственно возможным напряжением 5В.

Экономичный вариант реализации без USB PD

Как видно выше, спецификация USB-C поддерживает широкий спектр стандартов передачи данных и профилей электропитания, но это не означает, что разработчик обязан использовать всю функциональность. Минимальный набор USB TYPE-C может включать в себя USB 2.0 с контактами CC и единственным напряжением питания 5V. В такой конфигурации можно обеспечить потребителю до 15 Вт (5 В, 3А), что значительно больше, чем может дать стандартный порт USB 3.0 – 4,5 Вт (5В, 900 мА).

Чтобы реализовать логику подключения между DFP и UFP, можно использовать микросхему контроллера конфигурации CC, например, PTN5150. Этот вариант значительно проще и дешевле навороченных контроллеров, поддерживающих USB Power Delivery. Структурная схема выглядит так:


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

Микросхема имеет интерфейс I2C, с его помощью можно определить или изменить роль устройства (DFP, UFP, DRP).

Когда выбирается роль DFP, устройство предполагается как Power Source, для которого есть возможность выбрать 3 профиля питания. После выставления соответствующих бит в регистре управления, происходит подключение соответствующего источника тока на линию CC.

Ток на СС-линии Режим питания
80 uA 5V / 0.9 A
180 uA 5V / 1.5 A
330 uA 5V / 3 A

В случае определения микросхемы в качестве UFP, контакты CC подключаются через резистор 5,1 кОм на землю. Монитор измеряет падение напряжения на этом резисторе и в статусный регистр заносится текущий режим питания.

Также возможно установить роль Dual Role Power (DRP), в этом режиме микросхема последовательно изменяет состояние СС-контактов от “pull-up Rp” до “pull-down Rd” и обратно до тех пор, пока не будет установлено соединение. Соединение возможно только между одним источником (Power Source) и одним потребителем (Power Sink). Таким образом, когда микросхема находится в режиме DRP и монитор напряжения CC-контактов замечает понижение напряжения на противоположном конце (подключён “pull-down Rd”), устройство понимает, что подключено к Sink, и начинает играть роль Source. Такой режим полезен в том случае, когда заранее неизвестно, в каком режиме должно работать устройство.

Рассмотрим пример использования контроллера

Кроме описанных выше СС-пинов и I2C-шины стоит отдельно отметить контакты ID, CON_DET, PORT. Контакт ID отображает режим, в котором в данный момент находится контроллер. Когда устройство определило себя в качестве DFP, ID примет значение LOW. Контакт CON_DET находится в HIGH, когда соединение установлено, LOW — в обратном случае. Эти два логических сигнала будем использовать далее для включения (когда мы DFP) и отключения (UFP) питания подключённого устройства.

Port — это вход, которым задаётся начальный режим устройства после включения питания. В случае, когда используется “pull-up”, контроллер становится DFP, если “pull-down” — UFP. Если нога осталась «висеть в воздухе», будет использоваться режим Dual Role, и устройство будет ждать подключения, чтобы определиться со своей ролью. Это состояние может быть изменено позднее, после конфигурирования по I2C или изменения уровня напряжения на PORT. Таким образом можно управлять режимами работы без использования I2C.

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


Наша задача подавать питание на разъём USB-C только в том случае, когда к нам подключён UFP. ID в таком случае примет значение LOW, CON_DET — значение HIGH. Для того, чтобы открыть ключ высоким уровнем HIGH, надо реализовать функцию Y = CON_DET& (NOT ID). Таким образом, если снаружи подключён UFP, он от нас питается, если DFP, то напряжение на разъём не подаётся и не происходит конфликта двух источников.

В случае, если нет задачи менять роль устройства в процессе работы, а также не требуется определения ориентации кабеля, можно выполнить вариант проще, без микросхемы вообще. Допустим, ваше устройство играет строго одну роль — UFP/Power Sink, например, это флешка. В таком случае достаточно выводы СС1 и СС2 на разъёме подключить через 5,1 кОм на землю.
В случае, если ваше устройство играет только роль DFP/Power source и оно должно подключаться к устройству USB-C Dual Role, также можно обойтись резисторами. В этом случае подбираем номиналы в зависимости от напряжения источника, к которому подключаем резисторы.

Типы стандартов 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++

Как через USB обеспечивается питание периферийных устройств?

USB является аббревиатурой термина Universal Serial Bus, которая обозначает стандарт внешнего интерфейса для подключения периферийных устройств, таких как клавиатура, мышь или принтер, к персональному компьютеру. Периферийные устройства с USB интерфейсом делятся на два основных класса – «bus-powered» устройства, которые получают питание через USB интерфейс и «self-powered», которые используют собственный источник питания.

USB-хаб

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

USB-хаб с собственным питанием

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

USB-хаб с питанием по шине

Хабы класса «Bus-powered» получают питание от USB-хабов с собственным питанием через входной порт и потребляют ток силой до 100 миллиампер. Если USB устройство поддерживает режим сна USB Selective Suspend , в который оно переходит через некоторое время простоя, то оно должно снизить потребление тока до 2.5 миллиампер или даже меньше – до 0.5 миллиампер. Это зависит от того, как устройство сконфигурировано. Ограничение тока в 2.5 миллиампера соответствует устройствам, которые потребляют значительную электрическую мощность (выше 500 мА в рабочем режиме). Как правило, такие устройства поддерживают функцию удаленного включения «Remote Wakeup».

Напряжение

Напечатать страницу

Интерфейс USB (Universal Serial Bus - Универсальный Последовательный Интерфейс) предназначен для подключения периферийных устройств к персональному компьютеру. Позволяет производить обмен информацией с периферийными устройствами на трех скоростях (спецификация USB 2.0):

  • Низкая скорость (Low Speed - LS) - 1,5 Мбит/с;
  • Полная скорость (Full Speed - FS) - 12 Мбит/с;
  • Высокая скорость (High Speed - HS) - 480 Мбит/с

Для подключения периферийных устройств используется 4-жильный кабель: питание +5 В, сигнальные провода D+ и D-, общий провод. Интерфейс USB соединяет между собой хост (host) и устройства. Хост находится внутри персонального компьютера и управляет работой всего интерфейса. Для того, чтобы к одному порту USB можно было подключать более одного устройства, применяются хабы (hub - устройство, обеспечивающее подключение к интерфейсу других устройств). Корневой хаб (root hub) находится внутри компьютера и подключен непосредственно к хосту. В интерфейсе USB используется специальный термин "функция" - это логически законченное устройств, выполняющее какую-либо специфическую функцию. Топология интерфейса USB представляет собой набор из 7 уровней (tier): на первом уровне находится хост и корневой хаб, а на последнем - только функции. Устройство, в состав которого входит хаб и одна или несколько функций, называется составным (compaund device). Порт хаба или функции, подключаемый к хабу более высокого уровня, называется восходящим портом (upstream port), а порт хаба, подключаемый к хабу более низкого уровня или к функции называется нисходящим портом (downstream port). Все передачи данных по интерфейсу инициируются хостом. Данные передаются в виде пакетов. В интерфейсе USB используется несколько разновидностей пакетов:

Интерфейс USB

Таким образом каждая транзакция состоит из трех фаз: фаза передачи пакета-признака, фаза передачи данных и фаза согласования

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

  • Управляющая пересылка (control transfer) используется для конфигурации устройства, а также для других специфических для конкретного устройства целей
  • Потоковая пересылка (bulk transfer) используется для передачи относительно большого объема информации.
  • Пересылка с прерыванием (iterrupt transfer) используется для передачи относительно небольшого объема информации, для которого важна своевременная его пересылка. Имеет ограниченную длительность и повышенный приоритет относительно других типов пересылок
  • Изохронная пересылка (isochronous transfer) также называется потоковой пересылкой реального времени. Информация, передаваемая в такой пересылке, требует реального масштаба времени при ее создании, пересылке и приеме.

Потоковые пересылки характеризуются гарантированной безошибочной передачей данных между хостом и функцией посредством обнаружения ошибок при передаче и повторного запроса информации. Когда хост становится готовым принимать данные от функции, он в фазе передачи пакета-признака посылает функции IN-пакет. В ответ на это функция в фазе передачи данных передает хосту пакет с данными или, если она не может сделать этого, передает NAK- или STALL-пакет. NAK-пакет сообщает о временной неготовности функции передавать данные, а STALL-пакет сообщает о необходимости вмешательства хоста. Если хост успешно получил данные, то он в фазе согласования посылает функции ACK-пакет. В противном случае транзакция завершается.

Когда хост становится готовым передавать данные, он посылает функции OUT-пакет, сопровождаемый пакетом с данными. Если функция успешно получила данные, он отсылает хосту ACK-пакет, в противном случае отсылается NAK- или STALL-пакет.

Управляющие пересылки содержат не менее двух стадий: Setup-стадия и статусная стадия. Между ними может также располагаться стадия передачи данных. Setup-стадия используется для выполнения SETUP-транзакции, в процессе которой пересылается информация в управляющую КТ функции. SETUP-транзакция содержит SETUP-пакет, пакет с данным и пакет согласования. Если пакет с данными получен функцией успешно, то она отсылает хосту ACK-пакет. В противном случае транзакция завершается.

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

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

Изохронные транзакции содержат фазу передачи признака и фазу передачи данных, но не имеют фазы согласования. Хост отсылает IN- или OUT-признак, после чего в фазе передачи данных КТ (для IN-признака) или хост (для OUT-признака) пересылает данные. Изохронные транзакции не поддерживают фазу согласования и повторные посылки данных в случае возникновения ошибок.

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

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