Пользователь
0,0
рейтинг
22 января 2013 в 17:56

100 ватт по USB или как работает Power Delivery из песочницы

Почитав вот этот пост и сопутствующую ему дискуссию, я решил попробовать внести ясность в то, что такое USB Power Delivery и как это работает на самом деле. К сожалению у меня сложилось впечатление, что большинство участников дискуссии воспринимают 100 ватт по USB слишком буквально, и не до конца понимают что за этим стоит на уровне схематики и протоколов.

Итак, кратко – основные пункты:

  • USB PD определяет 5 стандартных профилей по электропитанию – до 5V@2А, до 12V@1.5А, до 12V@3А, до 12-20V@3А и до 12-20V@4.75-5А
  • Кабели и порты для Power Delivery сертифицируются и имеют дополнительные пины в разьеме
  • Тип кабеля и его соответствие профилю определяются автоматически через дополнительные пины и определение типа USB коннектора (микро, стандарт, A, B и т.д.)
  • Обычные USB кабели (не Power Delivery) сертифицируются только по первому профилю до 5V@2A
  • При подключении распределяются роли, между тем кто дает ток (Source / Источник ) и кто потребляет (Sink / Приемник)
  • Источник и Приемник обмениваются сообщениями по специальному протоколу, который работает параллельно традиционному USB
  • В качестве физического носителя протокол использует пару – VBus / GND. Именно поэтому Power Delivery не зависит от основного USB протокола и обратно совместим с USB 2.0 и 3.0
  • Используя сообщения, источник и приемник могут в любой момент времени меняться ролями, изменять силу тока и/или напряжение, уходить в спячку или просыпаться, и т.д.
  • По желанию устройства могут поддерживать управление PD через традиционные USB запросы, дескрипторы и т.д.

Под катом — детали.

О кобелях Про кабели


USB Power Delivery работает с шестью типами коннекторов:



Соответственно попарно допустимы следующие виды соединений
  1. USB 3.0 PD Standard-A <-> USB 3.0 PD Standard-B plug
  2. USB 3.0 PD Standard-A <-> USB 3.0 PD Micro-B plug
  3. USB 3.0 PD Micro-A <-> USB 3.0 PD Micro-B plug
  4. USB 3.0 PD Micro-A <-> USB 3.0 PD Standard-B plug
  5. USB 2.0 PD Standard-A <-> USB 2.0 PD Standard-B plug
  6. USB 2.0 PD Standard-A <-> USB 2.0 PD Micro-B plug
  7. USB 2.0 PD Micro-A <-> USB 2.0 PD Micro-B plug
  8. USB 2.0 PD Micro-A <-> USB 2.0 PD Standard-B plug

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

Про порты


После сертификации USB PD порты маркируются следующим образом:



Данное лого информирует о версии USB (2.0 или 3.0 SuperSpeed), а также о профилях электропитания которые поддерживает данный порт. Значение ”I” означает потребляемый профиль, необходимый для полноценного функционирования устройства, а значение «О» то какой профиль порт может предоставить. Примеры маркировки портов:

  • Первый порт поддерживает USB2. Он может давать питание по Профилю 1 ( 2A@5V) и использует Профиль 3 ( 5V@2A или 12V@3A) для полноценного функционирования. Например порт для планшета или нетбука.
  • Второй порт поддерживает USB2. Он может давать питание по Профилю 2 (2A@5V или 12V@1.5A) и использует Профиль 4 ( 5V@2A или 12V@3A или 20V@3A) для полноценного функционирования. Например порт для ноутбука или лаптопа.
  • Третий порт поддерживает USB3. Он только дает питание по Профилю 1 (5V@2A). Сам он по VBus не запитывается. Например порт десктопа, монитора, телевизора, и т.д.
  • Четвертый порт поддерживает USB3. Как и в первом примере он может давать питание по Профилю 1 (5V@2A) и сам требует питание по Профилю 3 для полноценного функционирования (5V@2A или 12V@3A). Пример придумайте сами :)

Физический канал


USB PD определяет принципиальную схему физической организации соединения посредством кабеля следующим образом:



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

В качестве алгоритмов для определения разряженной батареи предлагаются следующее. Если одна из сторон выставляет сопротивление в 1кОм между экраном и землей, это свидетельствует о том что ее батарея разряжена. В такой ситуации другая сторона берет на себя роль источника и начинает отдавать минимальные 5В, чтобы дать через VBus питание противной стороне и начать обмен сообщениями по протоколу USB PD.

Как уже упоминалось ранее, для обмена сообщениями USB PD протокол использует линию VBus. Ниже приведена блок-схема, определяющая ключевые функциональные элементы передатчика:



И соответственно такая же блок-схема для приемника:



Сериализированная кодировка 4b5b и декодировка 5b4b подразумевает что все данные по шине, кроме преамбулы пакета, передаются пятибитными последовательностями в соответствии c таблицей кодировки, определяемой стандартом. Каждая такая последовательность кодирует либо одну из 16 цифр (0x00..0x0F), либо сигналы начала / синхронизации / сброса и конца пакета. Таким образом передача одного байта занимает 10 бит, 16-битного слова – 20 бит и 32-битного двойного слова – 40 бит и т.д.

Логический канал


USB PD протокол основывается на последовательных парах типа запрос-ответ. Запросы и ответы пересылаются с использованием пакетов. Пакеты состоят из преамбулы (фаза подготовки к передаче), начала пакета SOP (три сигнала Sync-1 и завершающий Sync-2 в кодировке 4b5b), заголовок, 0..N байт полезной нагрузки, контрольной суммы (CRC-32) и сигнала конца пакета (одиночный сигнал EOP):



Как было упомянуто выше, преамбула не кодируется в 4b5b. SOP, CRC и EOP кодируются 4b5b на физическом уровне, заголовок и полезная нагрузка кодируются на уровне логического протокола.
Сброс шины производится путем посылки трех сигналов RST1 и завершающего сигнала RST2, в соответствии с кодировкой 4b5b.

Протокол


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



Заголовок сообщения имеет фиксированную длину 16 бит и состоит из следующих полей:


Сообщения бывают двух видов – управляющие (control) и информационные (data).

Управляющие сообщения

Контрольные сообщения состоят только из заголовка и CRC. Количество объектов данных для таких сообщений всегда устанавливается в 0. Типы управляющих сообщений USB PD представлены в таблице ниже:


Отдельно следует упомянуть что поля вида tSourceActivity, tSinkRequest и т.д. — это константы, значения которых глобально заданы самой спецификацией в отдельной главе. Сделано это потому что они определялись опытным путем в результате прототипирования, и найденные оптимальные значения просто подставили в отдельную главу, чтобы не рыскать по всей спецификации.

Информационные сообщения

Данный вид сообщений предназначен для получения детальной информации об источнике или приемнике, а также для передачи запрашиваемых характеристик электропитания – сила тока, напряжение и т.д. Информационные сообщения всегда содержат ненулевое значение в поле ”Number of Data Objects”.

Спецификация определяет четыре вида информационных сообщений:

  • Power Data Object (PDO) – используется для описания характеристик порта источника или требований приемника
  • Request Data Object (RDO) – используется портом приемника для установки соглашения по характеристикам электропитания
  • BIST (Built In Self Test) Data Object (BDO) – используется для тестирования подключения на соответствие требованиям спецификации для физического соединения
  • Vendor Data Object (VDO) – используется для передачи нестандартной, дополнительной или иной проприетарной информации определяемой производителем оборудования и выходящей за рамки спецификации USB PD.

Виды информационных сообщений кодируются в поле ”Message Type” заголовка сообщения следующим образом:


Сообщение о характеристиках

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


Сообщения о характеристиках передаются:
  • От источника к приемнику через определенный временной интервал, при непосредственном подключении кабеля. Источник должен продолжать посылать сообщения на протяжении одной минуты после подключения до тех пор пока не будет установлено успешное соглашение по электропитанию, либо приемник не вернет RDO с флагом Capability Mismatch – несоответствие характеристик.
  • От источника к приемнику с целью принудительного переустановления соглашения по электропитанию или смены характеристик.
  • В ответ на управляющие сообщения Get_Source_Cap или Get_Sink_Cap

Каждый объект PDO должен характеризовать отдельный элемент электропитания, входящего в состав устройства на максимально допустимых для него значениях напряжения. Например, встроенная батарея 2.8-4.1V, стационарный блок питания 12V и т.д. Все элементы электропитания должны поддерживать как минимум 5V и соответственно каждый источник должет иметь хотя бы один PDO соответствующий профилю с характеристиками 5V.

PDO соответствующий элементу с постоянным типом электропитания 5V всегда должен идти первым в цепочке объектов.

Структура объекта PDO:


Для каждого типа электропитания предлагаются различные характеристики.

Постоянный тип электропитания, напряжение постоянное. Источник должен иметь хотя бы один такой элемент:


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


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


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


Сообщение о запросе

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

Данный запрос имеет два типа, в зависимости от адресуемого типа элемента электропитания, переданного в сообщении о характеристиках источника. Для запросов к элементу электропитания постоянного или вариативного типа, либо батареи поля ”Operating Current / Power” и ”Total Current / Prog Voltage” интерпретируются одним путем, а для запросов к элементу программируемого типа – другим путем, так как в этом случае запрашивается и напряжение, и сила тока.

Структура объекта RDO:


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

Взаимодействие с традиционным USB


Как уже было упомянуто выше, Power Delivery – это самостоятельная подсистема, которая функционирует параллельно и независимо от канонического USB. Тем не менее, в случаях когда устройства реализуют оба протокола – и USB и Power Delivery, спецификация рекомендует реализацию т.н. System Policy Manager или SPM, компонента который может контролировать оборудование USB PD посредством традиционных запросов USB.



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

  • Power Delivery Capability Descriptor, является составной частью BOS дескриптора и сообщает о том поддерживает ли устройство зарядку батареи через USB, поддерживает ли оно стандарт USB PD, может ли оно выступать источником питания, и может ли оно быть приемником. Кроме того данный дескриптор содержит информацию о количестве портов-источников, портов-приемников и версии поддерживаемых спецификаций USB Battery Charging и Power Delivery.
  • Battery Info Capability Descriptor, требуется для всех устройств заявивших батарею в качестве одного из элементов электропитания. Содержит информацию о названии, серийном номере и производителе батареи, ее емкости, а также о пороговых значениях тока в заряженном и разряженом состоянии.
  • PD Consumer Port Capability Descriptor, требуется для всех устройств которые заявили поддержку хотя бы одно порта-приемника. Содержит информацию о поддержке стандартов Power Delivery и Battery Charging, минимальное и максимальное напряжение, операционную мощность, максимальную пиковую мощность и максимальное время, которое оно может эту пиковую мощность потреблять
  • PD Provider Port Capability Descriptor, требуется для всех устройств которые заявили поддержку хотя бы одного порта-источника питания. Содержит информацию о поддержке стандартов Power Delivery и Battery Charging, а так же список всех PDO объектов, характеризующих элементы электропитания доступных устройству.
  • PD Power Requirement Descriptor, требуется для всех устройств-приемников поддерживающих USB PD. Каждое устройство должно возвращать хотя бы один такой дескриптор в составе дескриптора конфигурации. Этот дескриптор должен идти сразу после первого дескриптора интерфейса. В случае когда их несколько, он должен идти после каждого первого дескриптора интерфейса функции, если используется IAD, или в случае композитного устройства без IAD, непосредственно после каждого дескриптора интерфейса, и до endpoint дескрипторов.

Для управления USB Power Delivery через запросы USB, в случае если устройство поддерживает Power Delivery класс, спецификация предлагает команды, которые могут использоваться для передачи PD запросов и объектов посредством USB, то есть через шину данных. Сводная таблица дана ниже:


Заключение


Надеюсь что данным постом я подогрел интерес публики к USB Power Delivery. Скромно замечу, что автор имеет непосредственное отношение к данной спецификации, поэтому готов ответить на любые вопросы по Power Delivery в частности и USB в общем.

С уважением.
@stpark
карма
235,0
рейтинг 0,0
Реклама помогает поддерживать и развивать наши сервисы

Подробнее
Реклама

Самое читаемое

Комментарии (35)

  • +9
    Неужели обозначения image считаются понятными?
    Т.е. я, обычный, пользователь, взглянув на эти «3 z 1», однозначно пойму, к какому концу какая цифра относится и что с ними можно делать?
    • +1
      Совершенно справедливый вопрос. Эти обозначения предназначены для сертификации, а не для конечного пользователя. Для пользователя обобщенные иконки USB PD выглядят вот так:
      • 0
        А мощность питание на этих иконках как различается?
        • +1
          Ну очевидно, никак :) Попробую упростить, порты после сертификации маркируются вышеприведенными обозначениями. Однако конечному пользователю не нужно заботиться о соответствии кабелей профилям и наоборот.

          Кабели, предназначенные для USB Power Delivery, как сказано в посте, имеют дополнительные пины. Эти пины, вместе с типом коннектора, используются для определения электрических характеристик кабеля, включая профиль электропитания и максимальные токи. Например для микро USB коннектора установлен лимит в 60W, независимо от жырности проводов, и т.д.

          Кабели не предназначенные для PD все равно будут работать на минимальном профиле.

          Конечному пользователю нужно только знать — совместим ли данный порт или кабель с Power Delivery или нет. Для этого нужны обобщенные иконки. Все остальное делает логика. В спецификации есть четкие электрические и блок-схемы, как детектировать тип кабеля и его соответствие установленным профилям.

          Надеюсь что ответил на ваш вопрос.
        • 0
          А мощность питания будет закрытой маркетинговой информацией — так же, как сейчас тип матрицы в ноутбуке :).
          • 0
            А я думал, что наоборот. Будет как гонка мегагерцев — гонка ватт.
            «Новый ноутбук с ещё большей мощностью питания на USB!»
            Разгон питания USB до 120 Ватт без пяльника!!!
          • 0
            Я видел материнки у которых как фича было заявлено, что могут отдавать в USB порт больше 0.5А и при выключенном компьютере.
            • –1
              Хм… торсионные поля? Энергия вакуума? :D
              • 0
                Не из розетки ;) БП включен, сам компьютер не включен.
                • 0
                  Нет БП выключен, в обычном понимании. Просто подключен к сети 220V и подаёт питание по линии 5V VSB.
            • 0
              у USB 3.0 по спецификации на выходе 0.9А
      • 0
        Кстати, если читать дословно «После сертификации USB PD порты маркируются следующим образом», то получается, что маркируются не для сертификации, а после, именно для потребителя.
        • +1
          Я думаю что логика простая — если кому-то интересны характеристики, то по маркировке человек разберется. Если нет, то достаточно знать что порт или кабель поддерживает USB PD.
    • НЛО прилетело и опубликовало эту надпись здесь
      • 0
        Можно совать даже если надписи разные. Если конекторы механически подходят, то гарантировано ничего плохого не случится (за исключением втыкания usb в ethernet порт). Будет работать по минимальному поддерживаемому обоими сторонами стандарту. Ну или просто не будет работать.
        • 0
          Последний раз, когда я этому совету последовал, выяснилось, что разъёмы надо тыкать «чёрными к центру» и никак не наоборот, иначе мамка погорит.
          • 0
            Ну так сколько лет прошло уже. Кое-чему проектировщики научились. Хотя маркировки плохие — с первого взгляда плохо будет сопоставляться, сколько времени займет зарядка устройства (прожжорливость которого обычно известна) от данного порта через данный кабель.
            • +1
              У меня есть только один вопрос: почему до сих пор нельзя «тыкать любой стороной»?
  • +1
    Блин, ну и навалили вариантов…

    Сделали бы один вариант 24V/2-5A и все, а то и 48V/2A.
    А там уж пускай 48В конвертируют во что нужно.
    • +1
      Ага и каждое устройство, которому надо 5 Вольт, будет стоить в 3 раза дороже из-за импульсного преобразователя внутри, не говоря уже о габаритах. Суть нововведений — как раз-таки избавить устройства от преобразователей.

      Меня другое волнует: не будет ли вирусов, которые будут жечь мелкие устройства, подавая на них 20V@5А?
      • 0
        Стандартные 5В-то в любом случае остаются. А в мощных устройствах, который будут 12В жрать — в любом случае DCDC стоит.
      • +1
        А можно ли на уровне системы такое сделать? Насколько я понял, это все на железном уровне, не?
        • 0
          Не обязательно. На n900 народ сильно заморачивался с usb host mode и там научились программно и независимо переключать порт в режимы master/slave и потребление питания/подача питания. Автоматика не работала т.к. nokia не осилила написать драйвер и в итоге не подключила 5ый проводник в разъеме к нужному пину чипа.
          Причем, если я правильно понял переписку, usb там контролируется двумя отдельными чипами, функции которых частично перекрываются.
  • 0
    Лично Я жду дуплексного использования (как сейчас на некоторый 2.5" внешних HDD) — чтобы записать устройства до 200W (например мощный Alienware и не только)
  • +1
    > «токи до 100 ватт»

    Мощность, прошу прощения. И вопрос по делу: какое сечение проводов рекомендуется под те 100 Вт, при токах в 5А? Понятно, что есть 1кв.мм. на 10А для меди (а у американцев опять свой взгляд на вещи), но есть ли официальные требования для сертификации?
    • 0
      Задался тем же вопросом (про сечение проводов). Одно дело 5В / 2А, а другое 20В / 5А.
      А вообще, лично мне бы, этот стандарт очень пригодился: тогда через USB можно будет питать куда более мощные усилители звука. Львиная доля «TDAшек» использует напряжение от 12 до 18-20В и потребление у них 2-5А. Ведь не всегда хочется лезть к АТХ блоку за питанием.
      • 0
        На 100 Вт вообще многое повесить можно, включая львиную долю ноутбуков. Другое дело, что в шести подстандартах могут запутаться даже сами производители, не говоря уже о потребителях.

        «The nice thing about standards is that you have so many to choose from. » — Эндрю Танненбаум, автор Minix
        • 0
          Как по мне, самые оптимальные: 5V@2А, 12V@3А и 12-20V@4.75-5А.
    • +5
      Сечение проводов в спецификации не указывается. Есть требования по падению напряжения (по земле 375mV и по VBus 625mV), сопротивлению в контактах (30mO) которые кабель должен обеспечивать и по температуре — допустимая температура на всем протяжении соединения, включая контакты, не должна превышать 30 градусов цельсия при комнатной температуре 25.

      Пример, если считать однометровый кабель с стандартным A и микро B коннекторами по третьему профилю (3A):
      1. По земле:
      a. Сопротивление кабеля — Rcable(GND) = V / I = 375mV / 3A = 125mΩ
      b. Макс. сопротивление в контактах 30mΩ x два коннектора = 60mΩ
      c. Общее допустимое сопротивление провода — 125mΩ — 60 mΩ = 65mΩ
      2. По VBus:
      a. Сопротивление кабеля — 625mV / 3 = 208mΩ
      b. Сопротивление контактов — 30mΩ * 2 = 60mΩ
      c. Общее допустимое сопротивление провода — 208mΩ — 60mΩ = 148mΩ

      Теперь лезем например в AWG и выбираем по сопротивлению подходящие провода. В данном случае для метрового провода нам подойдет для земли нумер 22 (52.94mΩ на метр) а для VBus подойдет номер 26 (134mΩ на метр). Если метраж увеличивается, то соответственно пересчитываем.

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



      Надеюсь что ответил на ваш вопрос.
      • +1
        Полная сатисфакция.
      • 0
        Спасибо, тема раскрыта.
  • 0
    Я только приспособился в USB 3.0, как выходит этот стандарт. Снова покупать контроллер с портами. Что дальше? USB LAN?

    P.S. вообще тенденция радует, конечно.
    • 0
      Ну лично я вообще третий USB не особо радушно воспринял и не нашел ему достойного применения. Ну разве что питание для колонок от него брал: помех меньше было :)
      • 0
        Я через 3.0 внешний HDD подключаю — разница ощутима
  • 0
    Очень познавательно! Спасибо.

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