Pull to refresh
89.33
НТЦ Вулкан
Исследуем, разрабатываем, защищаем

Как начать использовать USB Type-C в своих разработках

Reading time13 min
Views44K

В современных embedded-устройствах используется огромное количество различных разъемов, таких как USB Type-B, miniUSB, microUSB и так далее. Все они отличаются форм-фактором, максимальной пропускной способностью и другими различными характеристиками. Самым верным решением в данной ситуации было бы минимизировать количество используемых разъемов и остановиться на каком-то одном, «едином» для большинства разработок. Наиболее перспективным выглядит использование разъема Type-C. В нем объединены невероятная пропускная способность с высокой мощностью питания. Такие производители, как Apple, Huawei, Sony уже внедряют разъем Type-C в свои разработки, постепенно отказываясь от использования «старых» разъемов. А чем embedded-разработчики хуже?


В данной статье мы приведем общую информацию, необходимую для практического применения Type-C. Наиболее полезной она будет для новичков в сфере embedded, но надеемся, что каждый найдет в ней что-то интересное.


Почему Type-C?


Если так получилось, что вы не доверяете выбору разработчиков таких интерфейсов, как USB4, Thunderbolt 3 (TBT3), DisplayPort 2.0 (DP) (все они работают через USB Type-C), то в Интернете достаточно много статей, описывающих различные преимущества разъема Type-C, более подробно можно почитать тут и тут. Мы же хотим представить вам небольшую, но полезную «шпаргалку», содержащую основные характеристики и примеры практического применения.


Далее будут приведены основные характеристики разъема Type-C, которые необходимо знать.


Структура разъема


В Type-C реализовано множество функций для различных пинов:



Рассмотрим их назначение:


VBUS – источник питания для устройства


Описание: существует множество различных режимов передачи питания: от 5 В – 500 мА (2,5 Вт) до 20 В – 5 А (100 Вт). Но просто так заставить устройство работать на питании 20 В не получится, к тому же это было бы небезопасно. Для согласования напряжения между устройством и источником, значение которого превышает 5 В, используется протокол Power Delivery (PD). Без использования данного протокола максимальная мощность, которую может выдать хост-устройство, составляет 15 Вт (5 В – 3 А). Этого вполне достаточно практически для любого embedded-устройства, но, к сожалению, данное значение мощности (15 Вт) зависит от конфигурации хост-устройства и не всегда может быть достигнуто.
Power Delivery (PD) – это стандарт, устанавливающий роли «источник/потребитель» между устройствами, а также оптимальный уровень мощности между ними. Более подробно про данный протокол можно прочитать в этой статье.


Характеристики:


  • максимальная мощность без использования протокола PD – 15 Вт (U = 5 В, I = 3 А);
  • максимальная мощность с использованием протокола PD – 100 Вт (U = 20 В, I = 5 A).

CC1/CC2 – Configuration Channel (CC)


Описание: именно эти пины отвечают за определение ориентации подключения кабеля. Также один из этих пинов, в зависимости от ориентации подключения кабеля, становится источником питания (Vconn) для внутренних интегральных схем подключаемого активного кабеля. Общение между устройствами по протоколу PD происходит по второму оставшемуся пину. Для более простых устройств, в которых не требуется использовать протокол PD, подключение определяется пассивным способом: за счет резистивного делителя, образовавшегося на данной линии между устройствами.


Характеристики:


  • напряжение питания на линии Vconn – 5 В;
  • максимальный ток на линии Vconn – 200 мА;
  • уровень сигнала на линии данных – 0–5 В;
  • частота изменения сигнала на линии данных – 400 кГц (по протоколу PD).

SBU1/SBU2 – Sideband Use (Auxiliary Signal Pins)


Описание: данные пины являются дополнительными для различных интерфейсов. Для таких интерфейсов, как USB2/3.2 данные пины не используются. Во время работы интерфейса USB4 по этим пинам происходит инициализация интерфейса и дополнительная настройка его работы, а также инициализация линий данных и их направления. Для интерфейса DP эти пины выполняют работу AUX-канала. В режиме аудиоадаптера один из них (в зависимости от ориентации подключения) используется в качестве аналогового сигнала микрофона, второй же используется в качестве аналоговой «земли».


Характеристики:


  • USB4 – используется последовательный порт (Serial Port) со скоростью работы 1 Мбит/c;
  • DisplayPort – используется передача данных со скоростью до 720 Мбит/c. Заблуждением является мнение, что звук передается по этому каналу, на самом деле аудиопакеты передаются вместе с видеопакетами по основному каналу передачи (TX1± TX2± RX1± RX2±). AUX-канал необходим для обмена служебными сообщениями между устройствами, например для процесса инициализации на линии и так далее;
  • Aудиоадаптер – используется аналоговый сигнал [-0,3–3,3 В].
  • USB2/3.2 – не используется;

D+/D- – Data (USB2.0)


Описание: стандартные линии данных для интерфейса USB 2.0. Сигналы симметрично повторяются на двух сторонах разъема для возможности работы с любой ориентацией кабеля. Для других интерфейсов, таких как USB3.2/USB4/TBT3/DP данные пины не используются. Таким образом, USB2.0 может работать параллельно с другими интерфейсами. В режиме аудиоадаптера эти пины используются в качестве правого и левого каналов аудиосигнала.


Характеристики:


  • USB 2.0 – используется передача данных со скоростью до 480 Мбит/c;
  • Aудиоадаптер – используется аналоговый сигнал [-3,0–3,0 В].
  • USB3.2/USB4/TBT3/DP – не используются;

TX1± TX2± RX1± RX2± – Data (USB3.2/USB4/TBT3/DP)


Описание: высокочастотные дифференциальные пары, необходимые для передачи данных. Для различных интерфейсов скорость передачи отличается. Для интерфейсов USB4/TBT3/DP имеется возможность настроить все линии для передачи данных в одном направлении (режим Simplex). Таким образом, скорость передачи данных увеличивается в два раза.


Характеристики:


  • USB3.2 Gen 1 / Gen 2 – используются только две линии из четырех (TX1/RX1 или TX2/RX2) в зависимости от ориентации разъема. Максимальная скорость передачи данных на каждой линии составляет 5 Гбит/c (Gen1) и 10 Гбит/c (Gen2) ;
  • USB3.2 Gen 2 x 2 – используются все четыре дифференциальные пары (TX1/RX1 и TX2/RX2).
    Вообще, в интерфейсах USB3.X достаточно много путаницы, более подробно о них можно почитать тут.
  • USB4/TBT3/DP – используются все четыре дифференциальные пары (TX1/RX1 и TX2/RX2). Максимальная скорость передачи данных на каждой линии составляет 20 Гбит/c. В итоге общая скорость передачи составляет 40 Гбит/c (в обе стороны) и 80 Гбит/с в дуплексном и симплексном режимах соответственно.
  • USB 2.0 – не используются;

Полезные ссылки


Ниже приведены ссылки на официальную документацию упомянутых стандартов:



Активные кабели



В спецификациях определение active cable (активный кабель) отличается. Так, в спецификации для протокола PD прописано, что активным считается тот кабель, который имеет поддержку SOP (Start of packet), то есть способен отвечать на запросы, отправленные ему протоколом PD, и сообщать свои характеристики (какие интерфейсы и варианты питания он способен поддерживать).


A cable with a USB Plug on each end at least one of which is a Cable Plug supporting SOP’, that also incorporates data bus signal conditioning circuits...

В соответствии со спецификацией на Type-C активным кабелем является тот, который имеет внутри себя различные повторители, необходимые для улучшения передаваемого сигнала.


Active cables are USB Full-Featured Type-C Cables that incorporate repeaters in the USB 3.2 data path. All active cables, regardless of length, are expected to comply with this specification, the USB 3.2...

Так как на данный момент по спецификации все кабели Type-C должны иметь электронную маркировку (Emark), то есть иметь поддержку SOP, правильнее будет считать активными кабелями только те, которые имеют различные ретаймеры и редрайверы.


ReTimer (ретаймер) и ReDriver (редрайвер) – микросхемы, установленные в линиях данных. Они обеспечивают улучшение проходящего сигнала. Ретаймеры и редрайверы могут устанавливаться на всем пути передачи сигнала: и в кабеле, и на печатных платах источника/получателя (если это необходимо).



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



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


  • USB2.0 (480 Мбит/c) ~ до 4 м;
  • USB3.2 Gen1 (10 Гбит/c) ~ 2 м;
  • USB3.2 Gen2 (20 Гбит/c) ~ 1 м;
  • USB4/TBT3 (40 Гбит/c) ~ 0.8 м.

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


Кабель Optically Isolated Active (OIA). За счет своей внутренней структуры данный кабель способен передавать данные на расстояние более чем 50 м, тем самым увеличивая границу использования таких интерфейсов, как USB3.2/TBT3. Этот кабель электрически изолирован между двумя штекерами и должен иметь поддержку SOP с каждой из сторон. Но нужно учитывать, что кабель передает данные только дифференциальных пар RX/TX, поэтому питание и интерфейс USB2.0 не поддерживаются данным интерфейсом. Также необходимо, чтобы каждый из двух подключаемых устройств имел поддержку Vconn для питания внутренних интегральных схем кабеля. Уже в этом году ожидается разработка OIA-кабелей для интерфейса USB4.


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


Обратная совместимость с разъемами предыдущего поколения. Для поддержки подключения устройств с Type-C к устройствам с разъемами предыдущего поколения существуют следующие типы кабелей:


  • кабели USB Type-C – USB3.1 Type-A / Type-B / Type micro-B;
  • кабели USB Type-C – USB2.0 Type-A / Type-B / Type mini-B / Type micro-B.

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


Основные отличия структуры штекера (plug) от разъема (receptacle):



  • На штекере дифференциальная пара USB2.0 (D+/D-) присутствует только на пинах A6–A7, на пинах B6–B7 – отсутствует. Это связано с тем, что дважды передавать один и тот же сигнал не требуется. В зависимости от ориентации кабеля пины A6–A7 на штекере будут соединяться с одной из двух пар пинов коннектора.
  • На штекере пины CC1/CC2 отсутствуют, но вместо них присутствуют пины CC (A5) и Vconn (B5). CC отвечает за ориентацию кабеля и передачу данных по протоколу PD. Vconn является источником питания для внутренних интегральных схем кабеля. Важно запомнить, что в отличие от всех остальных линий в кабеле пины Vconn не соединены между собой напрямую.

От слов к практике


Выбор разъема


Перед тем как выбрать разъем, необходимо определиться, передачу какого интерфейса необходимо поддерживать в своей разработке. На данный момент в embedded-разработке основными являются интерфейсы USB2/USB3, поэтому далее мы будем рассматривать именно их.


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


Большинство производителей предлагают широкий спектр различных разъемов. Рассмотрим основные параметры, на которые стоит обратить внимание.


Важно! Если устройство не является единичным и подразумевается последующий серийный выпуск, следует обратить внимание на такой параметр, как Part Status. Если он имеет статус Active, то данный разъем является активным и в ближайшее время будет поддерживаться производителем. Если же компонент имеет иной статус, есть вероятность, что в будущем купить такой разъем еще раз не получится.


Количество контактов


В зависимости от поддерживаемых интерфейсов разъем может иметь меньшее количество контактов. Так, если поддержка высокочастотных интерфейсов, работающих на RX/TX-линиях (USB3.2/USB4/TBT3/DP), не требуется, то можно выбрать разъемы с 16 контактами или меньше:


  • 24 контакта – поддерживаются все интерфейсы;
  • 16/14 контактов – поддерживаются только интерфейсы, которые не используют высокоскоростные дифференциальные пары (TX1± TX2± RX1± RX2±), например USB 2.0, PD и другие. Пример: CX90M-16P от Hirose Connector.

Способ установки разъема


Существуют различные способы установки разъема. Все они отличаются параметрами, мы рассмотрим только основные из них.


  • Тип установки разъема на печатную плату:


    • Surface Mount / поверхностный монтаж – разъем устанавливается на поверхность печатной платы. Пример: CX90B1-24P от Hirose Connector;
    • Board Cutout / вырез в печатной плате – под разъем вырезается место на печатной плате. Пример: CX90M-16P от Hirose Connector.

    Примеры в картинках

    Surface Mount / поверхностный монтаж



    Board Cutout / вырез в печатной плате





  • Ориентация разъема относительно печатной платы:


    • Right Angle / прямой угол – стандартный тип установки разъема под прямым углом к печатной плате. Пример: CX90B1-24P от Hirose Connector;
    • Vertical/вертикальный – разъем устанавливается перпендикулярно печатной плате. Пример: CX80B1-24P от Hirose Connector;
    • Vertical Right Angle / вертикальный под прямым углом – разъем устанавливается под прямым углом, но в вертикальном положении. Пример: KUSBX-SL-CS1N14-B от Kycon.

    Примеры в картинках

    Right Angle / прямой угол



    Vertical/вертикальный



    Vertical Right Angle / вертикальный под прямым углом





  • Тип установки контактов на печатную плату:


    • Поверхностный монтаж – все контакты разъема устанавливаются посредством поверхностного монтажа. Пример: 12401544E4#2A от Amphenol;
    • Выводной монтаж – все контакты устанавливаются с помощью выводного монтажа. Таких разъемов достаточно мало, все они имеют 16/14 контактов, то есть подходят для поддержки только интерфейса USB2.0. Пример: KUSBX-SL-CS1N14-B от Kycon;
    • Поверхностно-выводной монтаж – часть контактов устанавливается посредством поверхностного монтажа, остальные – с помощью выводного монтажа. За счет выводных контактов при ручном монтаже данный тип разъема легче точно спозиционировать. Пример: 632723300011 от Wurth Elektronik.

    Примеры в картинках

    Поверхностный монтаж контактов



    Выводной монтаж контактов



    Поверхностно-выводной монтаж





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


Тип разъема


Многие разъемы внешне сильно отличаются друг от друга, так как предназначены для работы в различных условиях. Многие из производимых разъемов имеют различные степени защиты (Ingress Protection), IP65, IPX2 и так далее. В связи с этими требованиями внешняя конструкция разъема достаточно специфическая, поэтому использовать его в стандартных тонкостенных корпусах затруднительно. Поэтому, если нет необходимости, рекомендуем использовать стандартные разъемы без каких-либо степеней защиты.


Примеры в картинках

Разъем со степенью защиты IPX7



Стандартный разъем



Внедрение в проект


В данной статье мы рассматриваем только UFP (Upstream Facing Port) Sink, то есть USB-устройства, которые не могут идентифицироваться при подключении как хост-устройство или источник питания. Более подробную информацию по UFP и разработке DFP (Downstream Facing Port) и Source-устройств (источник питания) можно найти в спецификациях, ссылки на которые были приведены выше.


Рассмотрим два варианта подключения:


  • только с поддержкой интерфейса USB2.0;
  • с поддержкой интерфейсов USB2/3.2.

Поддержка интерфейса USB2.0


Необходимо выполнить следующее:


  • К пинам A5/B5 (CC1/CC2) подключить резисторы (Rd resistor) с подтяжкой к «земле» номиналом 5,1 кОм ± 20 %, как показано на рисунке ниже. При подключении устройства к кабелю пара резисторов Rp–Rd образует делитель напряжения. Измеряя полученное напряжение, хост устанавливает, какой из CC-пинов подключился к хосту, тем самым определяет ориентацию кабеля. В связи с тем, что используется только USB 2.0, ориентация не имеет значения, поэтому на каждый из CC-пинов подключается резистор Rd. Если резистор Rd подключить только к одному из пинов, а другой оставить «в воздухе», то устройство будет работать только с определенной ориентацией кабеля. Резисторы Ra установлены внутри кабеля и имеют номинальное значение, отличное от Rd.



  • Соединить пины A6–B6 (D+) и A7–B7 (D-). Данный шаг необходим для успешной работы устройства с любой ориентацией кабеля.


  • Также у большинства разъемов Type-C присутствуют пины, соединенные с корпусом разъема (Shield). Их также рекомендуется подключить к «земле» через схему защиты. Размещать схему защиты необходимо как можно ближе к разъему. В зависимости от цели и характеристик устройств схема защиты может отличаться. Пример схемы защиты представлен ниже под спойлером.


  • RX1/TX1, RX2/TX2, SBU1/SBU2 не используются, подключать их не требуется.



Схема для интерфейса USB2.0

Печатная плата:


  • Для поддержки USB 2.0 достаточно двухсторонней печатной платы.
  • Параметры линий для USB 2.0:
    • дифференциальный импеданс – 90 Ом ± 10 %;
    • максимальная разница длины внутри парных линий – 1,1 мм;
    • максимальная длина дорожки на плате – 200 мм.

Пример трассировки разъема Type-C для интерфейса USB2.0

Пример трассировки разъема Type-C для интерфейса USB2.0 (разъем: 2129691-1 от TE Connectivity)



Поддержка интерфейсов USB2.0/USB3.2 Gen 1 / Gen 2


Необходимо выполнить следующее:


  • Соединить пины A6–B6(D+) и A7–B7(D-).

С пинами CC1/CC2 в данном примере все чуть сложнее. Если бы наше устройство поддерживало интерфейс USB 3.2 Gen 2x2, то было бы достаточно подтянуть пины СС1/CC2 к «земле» через резисторы Rd с номиналом 5,1 кОм. При любой ориентации кабеля все высокочастотные дифференциальные пары соединялись бы друг с другом.


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


  • Для решения данной проблемы можно использовать связку из двух микросхем:


    • микросхемы определения ориентации, подключаемой к пинам CC. Она необходима для определения ориентации подключаемого кабеля. Пример: TUSB320 от TI и PTN5150A от NXP;
    • мультиплексора 2 в 1 для USB 3. После того как микросхема определит ориентацию подключения, она напрямую или через микроконтроллер выставляет мультиплексор в режим, при котором дифференциальные линии устройства соединяются с активными дифференциальными линиями кабеля. Пример: CBTU02043 от NXP.

  • RX1/TX1 и RX2/TX2 подключить к мультиплексору.


  • Подключить схему защиты к контактам Shield.


  • SBU1/SBU2 не используются, подключать их не требуется.



Схема для интерфейса USB3.2 Gen2x2

Схема для интерфейса USB3.2 Gen1/Gen2

Печатная плата:


  • Для высокочастотных дифференциальных пар рекомендуем использовать минимум шестислойную печатную плату, при этом опорные слои необходимо полностью отводить под GND. Иначе при переходе линий между верхним и нижним слоями необходимо будет использовать для соединения опорных слоев конденсаторы (stitching capacitor) вместо простых переходных отверстий. Для уменьшения паразитных отростков (stub) рекомендуется подводить дорожки к разъему с выводными контактами с нижнего слоя (если разъем установлен на верхнем слое).
  • Параметры линий для USB3.2 Gen 1:
    • дифференциальный импеданс – 90 Ом ± 10 %;
    • максимальная разница длины внутри парных линий – 0,15 мм;
    • максимальная длина дорожки на плате – 200 мм;
    • AC coupling capacitors – 100нФ (рекомендуется корпус 0402).

Пример трассировки разъема Type-C для интерфейсов USB2.0/3.2

Четырехслойная печатная плата с использованием конденсаторов, соединяющих опорные слои (разъем: 2305018-2 от TE Connectivity)



Шестислойная печатная плата (С1, С2,R1 – shield), (632723300011 от Wurth Elektronik)



Заключение


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



Raccoon Security – специальная команда экспертов НТЦ «Вулкан» в области практической информационной безопасности, криптографии, схемотехники, обратной разработки и создания низкоуровневого программного обеспечения.

Tags:
Hubs:
+52
Comments57

Articles

Information

Website
ntc-vulkan.ru
Registered
Founded
Employees
101–200 employees
Location
Россия