• Как работает USB. Интересное о USB

    К омпьютерный мир наконец-то объединился вокруг стандарта зарядки, после нескольких лет фирменных адаптеров и некрасивых стен развлетленных источников питания. Ну, вроде: Мы уже видим некоторую фрагментацию с точки зрения нового разъема USB Type-C , который в конечном итоге может заменить USB, а также то, что, к счастью, оказывается, недолгая одержимость Samsung была с множеством USB разъемов micro-B для своей линии Galaxy. Но помимо этого, и с очевидным исключением разъема Lightning от Apple, микро USB уничтожил склонность отрасли для пользовательских портов.

    Десять лет назад, вы всегда должны были убедиться, что у вас правильный источник питания для каждого из ваших гаджетов. Как правило, блоки питания бывали даже не маркированы. Сегодня вы можете зарядить свой телефон в доме вашего друга (приобрести зарядку и другие аксессуары можн на сайте https://itsell.ua в Украине, подключить для чтения электронных книг в любой компьютер, и загружать фотографии с цифровой камеры непосредственно к телевизору, все благодаря стандартизированным разъемам. На его месте, хотя, есть новая проблема: питание USB. Не все зарядные устройства USB, разъемы и кабели созданы равными. Вы, наверное, заметили, что некоторые зарядные устройства мощьнее, чем другие. Иногда, один USB-разъем на ноутбуке, казалось бы, более мощным, чем другой. На некоторых настольных ПК, даже когда они выключены, вы можете зарядить свой смартфон через гнездо USB. Оказывается, есть способ решить все это безумие – но для начала мы должны объяснить, как на самом деле работает питание USB.

    Есть в настоящее время четыре спецификации USB – USB 1.0, 2,0, 3,0, и 3,1 – в дополнение к новому разъему USB-C. Мы будем указать, где они существенно различаются, но по большей части, мы сосредоточимся на USB 3.0, так как это самый распространенный. В сети USB, есть один хост и одно устройство. Почти в каждом случае, ваш компьютер является хозяином, а ваш смартфон, планшет, или камера устройства. Питание всегда течет от хоста к устройству, хотя данные могут течь в обоих направлениях, например, при копировании файлов туда и обратно между вашим компьютером и телефоном.

    Хорошо, теперь цифры. USB 1.0 или 2.0 разъем имеет четыре контакта, и кабель USB имеет четыре провода. Внутренние контакты передают данные (D + и D-), а внешние контакты обеспечивают 5-вольтового источника питания. Порт USB 3.0 добавляет дополнительный ряд из пяти штифтов, так что USB 3.0-совместимые кабели имеют девять проводов. С точки зрения фактической мощности (миллиампер или мА), есть три вида USB-порта продиктованных текущей спецификации: стандартный порт downstream, порт зарядки downstream, а также специальный порт зарядки. Первые два можно найти на вашем компьютере (и должны быть помечены как таковые), и третий вид относится к “неразумным” зарядным устройствам стен.

    В спецификации USB 1.0 и 2.0, стандартный порт downstream способен выдавать до 500 мА (0,5А); с USB 3.0, он доходит до 900mA (0.9A). В процессе заряда и выделенные порты для зарядки обеспечивают до 1,500mA (1.5A). USB 3.1 имеют пропускную способность до 10 Гбит, что называется режим SuperSpeed +, в результате, это примерно эквивалентно с первого поколения Thunderbolt. Он также поддерживает мощность 1.5А и 3А по шине 5V.

    Разъем USB Type-C

    USB Type-C полностью другой разъем. Он универсальный; Вы можете поместить его в любом случае, и он будет работать, в отличие от USB или как разъем Lightning от Apple. USB-C также теоретически в два раза больше имеет пропускной способности в отличии от USB 3.0, и может выводить больше мощности. Apple, присоединился к USB Type-C с USB 3.1 на своем 12-дюймовом MacBook, и Google включил его на теперь в Chromebook Pixel . Кроме того, мы начинаем видеть его на телефонах, с первым из которых OnePlus 2 ; текущие популярные модели включают в себя Google Nexus 6P, OnePlus 3 , а также Samsung Galaxy версии 7 . Но также могут быть старшие версии с портами USB, которые поддерживают стандарт 3.1.

    Спецификация USB также позволяет порту “sleep-and-charge”, в котором USB-порты на компьютере, при выключении питания остаются активными. Возможно, вы заметили это на настольном компьютере, где всегда есть какое-то питание, протекающий через материнскую плату, некоторые ноутбуки также способны sleep-and-charge.

    Универсальное зарядное устройство

    Теперь, это то, что диктует спецификации. Но есть много USB-зарядных устройств, которые не соответствуют этим характеристикам – в основном левого производства или мировых гигантов. IPad использует зарядное устройство от Apple, например, обеспечивает 2.1A на 5В; Amazon’s Kindle Fire использует зарядное устройство выходы 1.8A; и многие автомобильные зарядные устройства могут выводить что-либо от 1A до 2.1A.

    Существует огромная разница, между обычными USB портами, рассчитанных на 500 мА, а также выделенных портов зарядки, которые варьируются вплоть до 3,000mA. Это приводит к важному вопросу: Если вы берете телефон, который поставляется вместе с зарядным устройством 900mA, и подключаете его к зарядному устройству 2,100mA IPAD, в качестве примера, может ли он взорваться ?

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

    Ответ в том, что возраст вашего устройства играет важную роль, диктуя и как быстро он может быть заряжен, и может ли он быть заряжен с помощью универсального зарядного устройства для всех. Еще в 2007 году, USB Implementers Forum выпустила Charging Specification батарей, которые стандартизированы как более быстрые способы зарядки USB – устройств, либо путем откачки больше ампера через порты USB на вашем компьютере, или с помощью настенного зарядного устройства. Вскоре после этого, USB устройства, реализованные по этой спецификации начали покупать.

    Если у вас есть современное устройство USB – на самом деле, практически любой смартфон, планшет, или камеры – вы должны иметь возможность для подключения к USB-порту высокой силы тока и наслаждаться более быстрой зарядкой. Если у вас есть старый продукт, тем не менее, он, вероятно, не будет работать с USB-портами, которые используют спецификации зарядной батареи. Он может работать только со старыми, оригинал (500мА) USB 1.0 и 2.0 портами ПК. В некоторых (более старых) случаях, USB устройства можно заряжать только с помощью компьютеров с определенными драйверами, но подобным компьютерам идет уже более десяти лет.

    Есть несколько других вещей, в которых надо быть в курсе. В то время как компьютеры могут иметь два вида USB-порта – стандартный downstream или зарядки – OEM downstream -производители не всегда маркируют их как таковые. В результате, вы можете иметь устройство, которое заряжает от одного порта на вашем ноутбуке, но не от другого. Это черта старых компьютеров, так как там, кажется, не причин использовать стандартные порты downstream, когда порты зарядки высокой силы тока доступны. Большинство производителей сейчас ставят маленький значок молнии над правильной зарядки портов на ноутбуках, а в некоторых случаях, эти порты могут даже остаться при закрытой крышке.

    Аналогичным образом, некоторые внешние устройства – жесткие диски 3,5-дюймовые, в первую очередь – требуют больше энергии, чем обычный порт USB может обеспечить. Вот почему они включают в себя два USB-порта, Y-кабель или внешний адаптер питания переменного тока.

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

    В настоящий момент один из самых популярных интерфейсов — это безусловно USB. Девайсов, которые его используют, просто огромное количество. Это и мышки, и клавиатуры, и принтеры, и сотовые телефоны, и много чего ещё. В отличии от стремительно исчезающего RS-232, USB встречается во всех современных компьютерах, ноутбуках, телефонах… так что, если мы хотим создавать действительно универсальные девайсы, придётся нам этот интерфейс изучать. Вот прямо сейчас и начнём, а заодно, по ходу изучения, попытаемся сами посоздавать каких-нибудь USB-девайсов.

    Итак, USB (universal serial bus) — универсальная последовательная шина . Большинство USB-устройств соответствуют спецификациям 1.1 и 2.0. В спецификации 1.1 определены две скорости передачи информации: LS (low speed) — низкая скорость, 1,5 Мбит/с и FS (full speed) — полная скорость, 12 Мбит/с. В редакции 2.0 к ним добавлена ещё и высокая скорость HS (high speed), 480 Мбит/с. Не так давно вышла ещё спецификация — 3.0, но устройства, поддерживающие этот стандарт, пока не очень распространены, поэтому и бог с ней.

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

    Хост-контроллер — это главный управляющий шиной USB . Именно он обеспечивает связь устройств, подключенных к шине, с компьютером (с ОС и с клиентским ПО). Любые сеансы обмена данными может начинать только хост-контроллер, остальные устройства молчат в тряпочку, пока хост-контроллер к ним не обратится.

    Контроллер взаимодействует с ОС через драйвер хост-контроллера (HCD — host controller driver) . Этот драйвер привязан к конкретной модели хост-контроллера. Только он знает какие данные, в какие регистры и в каком порядке пихать в хост-контроллер, а также откуда какие данные брать, чтобы хост-контроллер сделал то, чего от него хотят.

    Со стороны ОС шиной USB управляет ещё один драйвер — USBD (universal serial bus driver) . Ему совершенно пофиг, как там конкретно реализован хост-контроллер и где у него какие регистры (для этого есть HCD), USBD решает общие (неспецифические для конкретного хост-контроллера) вопросы: взаимодействие с клиентским ПО, нумерация устройств на шине, их конфигурирование, распределение питания и пропускной способности шины и так далее. Это, можно сказать, своеобразный диспетчер, который осуществляет общий контроль над шиной и её взаимодействие с внешним миром (с клиентским ПО).

    Хост-контроллер — птица гордая и пугливая, поэтому непосредственно ни с кем из подданных он не разговаривает. Для общения с подданными у него есть специальные помощники — хабы (их ещё иногда называют концентраторами).

    Хабы — это устройства, которые позволяют физически подключить устройства USB к шине. Они предоставляют порты для подключения, ретранслируют трафик от хост-контроллера к конечным устройствам и обратно, отслеживают состояние и физически управляют электропитанием портов. У хабов есть один восходящий (upstream) порт, — это тот порт, который подключен по направлению к хост-контроллеру, и несколько нисходящих (downstream) портов, — это порты, к которым подключаются конечные устройства. Хабы можно каскадировать, подключая к нисходящему порту хаба ещё один хаб. Самый главный хаб, интегрированный с хост-контроллером, называется корневым хабом (он же — корневой концентратор или root hub ).

    Другими словами можно сказать, что у хаба есть две основных задачи: 1) создать хост-контроллеру иллюзию, что он непосредственно разговаривает с подключенным к хабу устройством; 2) наблюдать за своим сегментом шины (за девайсами, подключенными к нисходящим портам), сообщать «наверх» обо всех изменениях и, если надо, — подключать и отключать питание портов.

    Конечные устройства — это все те полезные устройства, которые мы подключаем к шине USB (флэшки, принтеры, мышки и т.д.)

    Нужно сказать, что физические устройства и логические устройства — это не всегда одно и тоже . Существуют, например, такие конечные устройства (называемые составными — compound devices ), которые содержат внутри себя хаб, к которому подключено ещё несколько устройств. Несмотря на то, что в этом случае хаб и все, подключенные к нему устройства, запакованы в один корпус, с точки зрения логики шины это будут совершенно разные устройства.

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

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

    Логическое устройство представляет собой набор так называемых конечных точек (endpoints или просто EP) . Физически, конечные точки — это просто разные буферы в логическом устройстве USB, через которые происходит обмен данными с хостом. Логичный вопрос — а зачем нам иметь несколько буферов? Ну, просто потому что удобно для разных задач иметь разные буферы. Устройство же у нас может выполнять параллельно несколько разных задач. (Минимум две — отслеживать команды управления от хоста и делать что-то полезное.) У этих разных задач могут могут быть разные степени важности, требования к надёжности, своевременности и скорости доставки данных и, наконец, источники и потребители пересылаемой информации также могут быть разные (источником и потребителем полезной инфы обычно является клиентский драйвер, в то же время всякая управляющая инфа ему обычно нафиг не нужна).

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

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

    1. изохронные передачи (isochronous transfers). Они предназначены для передачи потоковых данных в реальном времени. Такие передачи гарантируют время доставки, но не гарантируют, что все данные будут доставлены. Если во время передачи происходит ошибка, то данные просто теряются. Кроме того, для передач такого типа должно быть предварительно согласовано, какую часть пропускной способности шины эта передача будет занимать. Изохронные передачи имеют наивысший приоритет и имеют право занять до 90% пропускной способности канала. Передачи этого типа используются, например, для видеокамер, или колонок. Никого ведь не устроит, если звук в колонках будет лагать. Лучше уж потерять часть данных, но слушать песню не рывками, а непрерывно.
    2. прерывания (interrupts). Этот тип предназначен для спонтанных небольших сообщений, но с гарантированным временем обслуживания и гарантированной доставкой. Примером может служить USB клавиатура. Мы можем нажать на кнопку в любой момент (может 3 часа не нажимали, а может так и заклацали клавой каждую секунду). Пока мы спим за компом — и передавать ничего не надо. Но как только мы всё же щелканули по кнопкам — будьте любезны, сообщите об этом куда следует и желательно побыстрее.
    3. передача массивов данных (bulk data transfers). Для этого типа нет никаких гарантий по скорости, единственное в чём можно быть уверенным — что данные дойдут в целости и сохранности (когда-нибудь, гы-гы). Такие передачи имеют самый низкий приоритет, но зато им ничего не надо согласововать, — сколько останется свободной от других типов передач ширины канала — столько они и займут. Не останется вообще — будут ждать, когда канал освободится. Такие передачи можно использовать для обмена данными с устройствами, которым некуда спешить, например, с принтерами. Представьте, что вы отправили на печать USB-принтеру фотку и одновременно слушаете музыку в USB-колонках. Согласитесь ли вы, чтобы фотка напечаталась на 3 секунды раньше, но при этом начал лагать звук в колонках? Вероятнее всего нет, так ведь. Пусть лучше данные принтеру передаются медленнее, но зато музыка играет непрерывно, без всяких дёрганий.
    4. управляющие передачи (control transfers). Это передачи типа запрос-ответ. С помощью них передаются комады управления устройствами. Тут важна не только безошибочная передача, но и получение ответа о результатах выполнения команды. Кроме того, поскольку эти передачи являются служебными, то им гарантировано 10% пропускной способности канала.

    Вернёмся к нашим конечным точкам. Для того, чтобы отличить одну точку от другой, — конечные точки, должны иметь уникальный номер. Но это не всё. Кроме номера, каждая конечная точка имеет ещё и направление. IN — если точка предназначена для передачи данных хосту, OUT — если точка предназначена для приёма данных от хоста. Точки с одинаковыми номерами, но с разными направлениями передачи данных — это разные с точки зрения логики шины конечные точки.

    Единственное исключение — конечная точка EP0. У неё вообще особый статус. Она является служебной и предназначена для общего управления устройством (конфигурирование, настройка и т.д.). Кроме того, эта конечная точка двунаправленная и она должна обязательно присутствовать в любом USB-устройстве.

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

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

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

    Поясню, что значит «обеспечивать связь с конечными точками». Для связи клиентского ПО с каждой активной конечной точкой хост создаёт коммуникационный канал (communication pipe ). Клиентское ПО, которое хочет пообщаться с конечной точкой, должно отправить к соответствующему каналу пакет запроса ввода/вывода (IRP — input/output request packet) и ждать уведомления о завершении его обработки. В IRP указывается только адрес буфера, куда надо складывать или откуда брать данные и длина передачи. Всё остальное за вас сделает хост и обслуживающие его драйвера (USBD и HCD)

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

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

    • USB PD определяет 5 стандартных профилей по электропитанию – до 5V@2А, до [email protected]А, до 12V@3А, до 12-20V@3А и до [email protected]А
    • Кабели и порты для 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 или [email protected]) и использует Профиль 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 Objec t (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 в общем.

    Интерфейс 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 испольуется несколько разновидностей пакетов:
    • пакет-признак (token paket ) описывает тип и направление передачи данных, адрес устройства и порядковый номер конечной точки (КТ - адресуемая часть USB-устройства); пакет-признаки бывают нескольких типов: IN , OUT , SOF , SETUP ;
    • пакет с данными (data packet ) содержит передаваемые данные;
    • пакет согласования (handshake packet ) предназначен для сообщения о результатах пересылки данных; пакеты согасования бывают нескольких типов: ACK , NAK , STALL .
    Таким образом каждая транзакция состоит из трех фаз: фаза передачи пакета-признака, фаза передачи данных и фаза согласования.
    В интерфейсе 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- транзакций, принцип передачи которых такой же, как и в потоковых пересылках. Все транзакции в стадии передачи данных должны производиться в одном направлении.
    В статусной стадии производится последняя транзакция, которая использует те же принципы, что и в потоковых пересылках. Направление этой транзакции противоположно тому, которое использовалось в стадии передачи данных. Статусная стадия служит для сообщения о результате выполнения SETUP-стадии и стадии передачи данных. Статусная информация всегда передается от функции к хосту. При управляющей записи (Control Write Transfer ) статусная информация передается в фазе передачи данных статусной стадии транзакции. При управляющем чтении (Control Read Transfer ) статусная информация возвращается в фазе согласовании статусной стадии транзакции, после того как хост отправит пакет данных нулевой длины в предыдущей фазе передачи данных.
    Пересылки с прерыванием могут содержать IN - или OUT -пересылки. При получении IN -пакета функция может вернуть пакет с данными, NAK -пакет или STALL -пакет. Если у функции нет информации, для которой требуется прерывание, то в фазе передачи данных функция возвращает NAK -пакет. Если работа КТ с прерыванием приостановлена, то функция возвращает STALL -пакет. При необходимости прерывания функция возвращает необходимую информацию в фазе передачи данных. Если хост успешно получил данные, то он посылает ACK -пакет. В противном случае согласующий пакет хостом не посылается.
    Изохронные транзакции содержат фазу передачи признака и фазу передачи данных , но не имеют фазы согласования . Хост отсылает IN - или OUT -признак, после чего в фазе передачи данных КТ (для IN -признака) или хост (для OUT -признака) пересылает данные. Изохронные транзакции не поддерживают фазу согласования и повторные посылки данных в случае возникновения ошибок.

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

    Фирма-производитель Наименование Описание

    Atmel
    AT43301 Контроллер LS/FS-хаба 1-4 с общим управлением питанием нисходящих портов.
    AT43312A Контроллер LS/FS-хаба 1-4 с индивидуальным управлением питанием нисходящих портов.
    AT43320A Микроконтроллер на ядре AVR. Имеет встроенные USB-функцию и хаб с 4 внешними нисходящими портами, работающие в LS/FS-режимах, 512 байт ОЗУ, 32х8 регистров общего назначения, 32 программируемых вывода, последовательный и SPI-интерфейсы. Функция имеет 3 КТ с буферами FIFO размером 8 байт. Для нисходящих портов хаба предусмотрено индивидуальное управление питанием.
    AT43321 Контроллер клавиатуры на ядре AVR. Имеет встроенные USB-функцию и хаб с 4 внешними нисходящими портами, работающие в LS/FS-режимах, 512 байт ОЗУ, 16 кбайт ПЗУ, 32х8 регистров общего назначения, 20 программируемых вывода, последовательный и SPI-интерфейсы. Функция имеет 3 КТ. Для нисходящих портов хаба предусмотрено индивидуальное управление питанием.
    AT43324

    Микроконтроллер на ядре AVR. Имеет встроенные USB-функцию и хаб с 2 внешними нисходящими портами, работающие в LS/FS-режимах, 512 байт ОЗУ, 16 кбайт ПЗУ, 32х8 регистров общего назначения, 34 программируемых вывода. Клавиатурная матрица может иметь размер 18х8. Контроллер имеет 4 выхода для подключения светодиодов. Функция имеет 3 КТ. Для нисходящих портов хаба предусмотрено индивидуальное управление питанием.

    AT43355 Микроконтроллер на ядре AVR. Имеет встроенные USB-функцию и хаб с 2 внешними нисходящими портами, работающие в LS/FS-режимах, 1 кбайт ОЗУ, 24 кбайт ПЗУ, 32х8 регистров общего назначения, 27 программируемых выводов, последовательный и SPI-интерфейсы, 12-канальный 10-разрядный АЦП. Функция имеет 1 управлющую КТ и 3 программируемых КТ с буферами FIFO размером 64/64/8 байт.
    Fairchild Semiconductor USB100 Контроллер манипуляторов (мышь, трекбол, джойстик). Поддерживает 2D/3D-мышь, джойстик с тремя потенциометрами, манипулятор с 16 кнопками.

    Intel
    8x931Ax Микроконтроллер с архитектурой MSC-51. Имеет встроенную USB-функцию, работающую в LS/FS-режимах, 256 байт ОЗУ, 0/8 кбайт ПЗУ, 8х4 регистра общего назначения, 32 программируемых вывода, последовательный интерфейс, интерфейс управления клавиатурой. Функция имеет 3 КТ с буферами FIFO размером 8/16/8 байт.
    8x931Hx Микроконтроллер с архитектурой MSC-51. Имеет встроенную USB-функцию и хаб с 4 внешними нисходящими портами, работающие в LS/FS-режимах, 256 байт ОЗУ, 0/8 кбайт ПЗУ, 8х4 регистра общего назначения, 32программируемых вывода, последовательный интерфейс, интерфейс управления клавиатурой. Функция имеет 3 КТ с буферами FIFO размером 8/16/8 байт.
    8x930Ax Микроконтроллер с архитектурой MSC-251. Имеет встроенную USB-функцию, работающую в LS/FS-режимах, 1024 байта ОЗУ, 0/8/16 кбайт ПЗУ, 40 регистров общего назначения, 32 программируемых вывода, последовательный интерфейс. Функция имеет 4(6) КТ с буферами FIFO размером 16/1024(256)/16(32)/16(32)/(32)/(16) байт.
    8x930Hx Микроконтроллер с архитектурой MSC-251. Имеет встроенную USB-функцию и хаб с 4 внешними нисходящими портами, работающие в LS/FS-режимах, 1024 байта ОЗУ, 0/8/16 кбайт ПЗУ, 40 регистров общего назначения, 32 программируемых вывода, последовательный интерфейс. Функция имеет 4 КТ с буферами FIFO размером 16/1024/16/16 байт.

    Microchip
    PIC16C745 Микроконтроллер с архитектурой PIC. Имеет встроенную USB-функцию, работающую в LS-режиме, 256 байт ОЗУ, 14336 байт ПЗУ, 22 программируемых вывода, последовательный интерфейс, 5-канальный 8-битный АЦП.
    PIC16C765 Микроконтроллер с архитектурой PIC. Имеет встроенную USB-функцию, работающую в LS-режиме, 256 байт ОЗУ, 14336 байт ПЗУ, 33 программируемых вывода, последовательный интерфейс, 8-канальный 8-битный АЦП.
    PIC18F2450 Микроконтроллер с архитектурой PIC. Имеет встроенную USB-функцию, работающую в LS/FS-режиме, 1536 байт ОЗУ, 16384 байт ПЗУ, 19 программируемых выводов, последовательный и SPI-интерфейсы, 5-канальный 10-битный АЦП. Функция имеет 8 КТ.
    PIC18F2550 Микроконтроллер с архитектурой PIC. Имеет встроенную USB-функцию, работающую в LS/FS-режиме, 1536 байт ОЗУ, 32768 байт ПЗУ, 19 программируемых выводов, последовательный, CAN- и SPI-интерфейсы, 5-канальный 10-битный АЦП. Функция имеет 8 КТ.
    PIC18F4450 Микроконтроллер с архитектурой PIC. Имеет встроенную USB-функцию, работающую в LS/FS-режиме, 1536 байт ОЗУ, 16384 байт ПЗУ, 34 программируемых вывода, последовательный, CAN- и SPI-интерфейсы, 8-канальный 10-битный АЦП. Функция имеет 8 КТ.
    PIC18F4550 Микроконтроллер с архитектурой PIC. Имеет встроенную USB-функцию, работающую в LS/FS-режиме, 1536 байт ОЗУ, 32768 байт ПЗУ, 34 программируемых вывода, последовательный, CAN- и SPI-интерфейсы, 8-канальный 10-битный АЦП. Функция имеет 8 КТ.
    Texas Instruments TUSB2036 Контроллер LS/FS-хаба 1-3 с индивидуальным управлением питанием нисходящих портов.

    Сегодня, пользователь ПК знает, что есть возможность подключить свои системы широкого спектра внешних устройств: не только принтеры и модемы, но и сканеры, видеокамеры, портативные запоминающие устройства, КПК и множество других периферийных устройств. Но в течение длительного времени любой, кто пытался сделать это, было затруднено отсутствием подходящих портов ввода / вывода.

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

    Долгое время единственным универсальным интерфейсом для ПК был SCSI, дорогой вариант оправданный только для высокой пропускной способности устройств. Для периферийных устройств как правило, требуется либо последовательный или параллельный порт, или используется фирменный интерфейс.
    Разработанные изначально для принтеров и модемов, последовательные и параллельные порты компьютера оставляют желать лучшего как общие цели интерфейса. Их скорость передачи данных низкая (максимальная 115Kbit/sec для последовательного порта, до 400KB/sec для параллельного интерфейса), и каждое устройство требует своего собственного аппаратного прерывания (IRQ), которое ограничивает количество возможных расширений. И не было никакой надежды на достижение подключения и работы с этими интерфейсами, это и является существенным, если присоединение периферийных устройств к ПК должно быть сделано так, что может быть достигнуто путем нетехнических пользователей.
    Необходимость средних скоростей, недорогого в подключении интерфейса, который может использоваться для подключения практически неограниченного числа устройств в конце концов признали, и нашли решение Universal Serial Bus — USB .
    Дизайн цели
    USB был разработан, чтобы позволить большому количеству (до 127) с низкой и средней скоростью периферийных устройств для установки на ПК, с максимальной скоростью передачи 12Mbit/sec . USB никогда не был предназначен для альтернативы SCSI порта, но всё же он намного быстрее, чем последовательный или параллельный порты.
    Особое внимание было уделено нуждам аудио и видео устройствам, для которых было предусмотрено большее значение производительности для следующего поколения персональных приложений. Дизайн USB предоставляет собой изохронные данные, которые будут поставляться без задержек и которые могут отрицательно повлиять на качество изображения и речи.
    USB интерфейс был разработан, чтобы просто подключить и работать. Устройства могут быть добавлены и удалены даже при работающей системе, что позволяет избежать необходимости перезагрузки системы и её перенастройки. Технические вопросы, такие как назначение устройству идентификатора,которые заботятся об аппаратной и программной архитектуре, так что эти общие источники не будет проблемой и ошибкой конфигурации. Была введена и система для энергосбережения, позволяя устройствам быть приостановленными.
    Типичные устройства USB , требующие низкой и средней пропускной способности. На нижнем конце диапазона пропускной способности, USB может быть использовано для подключения клавиатуры и мыши к компьютеру. На верхнем, сканеры, устройства резервного копирования или камеры для видео-конференц-приложений которые могут использовать USB , что исключает необходимость для собственных интерфейсных плат и связанную с ними установку и проблемы настройки.
    Архитектура шины, в которой данные для различных устройств путешествует по тому же кабелю, также имеет потенциал для упрощения связей. Например, мышь может подключаться к клавиатуре, и один кабель будет затем связывать их с ПК . Хотя мониторам по-прежнему необходим аналоговый кабель VGA, отдельное звено USB позволит мониторам работать от программного обеспечения на ПК , а не на экране. В случае с мультимедийным монитором, аудио-данные для встроенных динамиков и микрофона также могут быть отправлены по тому же кабелю.
    Физический уровень
    USB-устройства соединяются вместе с помощью недорогого белого четырёх жильного кабеля с волновым сопротивлением 90 Ом. USB-устройства могут быть как с автономным питанием (с собственным автономным питанием) или с питанием от шины. Одна из пар проводов в кабеле USB используется для передачи питания + 5: контакт 1 несет напряжение питания +5 В, контакт 4 общий. Существуют два класса с питанием устройства от шины. Маломощные приборы могут потреблять не более 100 мА тока, в то время приборы большой мощности могут потреблять до 500 мА. Вторая пара проводов, D + и D-на выводах два и три, является витая пара используемая для передачи данных. Данные провода используют дифференциальную передачу сигналов: и несут сигнал по отношению к земле, переход происходит, когда две линии передачи данных от обратной полярности по отношению друг к другу. Это дает лучшую устойчивость к шуму, чем обычный однотактный логический сигнал.
    Данные отправляются как синхронный последовательный поток битов, закодированных с помощью NRZI (0 представлен переход сигнала и 1 в переходный период.) Бит используется, чтобы гарантировать, что переходы происходят достаточно часто,так что приемники не теряют синхронизацию. Временные сигналы передаются вместе с данными, синхронизация поля предшествует каждому пакету данных.
    USB работает на двух разных скоростях. Полная скорость даёт пропускную способность 12Mbit/sec. На такой скорости, экранированный кабель должен быть использован для получения адекватной помехоустойчивости и предотвращения электромагнитных помех (EMI). Экранированный кабель около 5 мм. в диаметре, сегменты кабеля могут иметь максимальную длину 5 метров.
    Для приложений, требующих низкую пропускную способность, имеется более низкая скорость работы. Это позволяет сдлеать немного тоньше и дешевле неэкранированный кабель, который будет использоваться. Длина кабеля уменьшается на неэкранированном кабеле и максимально может быть 3м. Для предотвращения сигнала высокая скорость передается через неэкранированный кабель (что приведет к EMI) и, чтобы избежать риска устройств с низкой скоростью передачи данных неправильного определения полной скорости передачи данных в виде команд, которым они должны отвечать, связи с низкой скоростью устройств отключены в то время когда используется полная сигнализация скорости.
    Два типа вилка и розетка, известный как серия А и серия B, которые заданы для USB портов. Серия вилка и розетка, предназначены для использования с устройствами, к которым прочно прикреплен внешний кабель, например, клавиатура, мышь и концентраторы. Серия B разъемов используются, когда кабель USB съемный, как в случае принтеров, сканеров и модемов. Эти два типа не являются взаимозаменяемыми.
    Серия B имеет разъемы 10.6mm х 12.0mm с контактными углублениями. Как вилки так и розетки имеют небольшие размеры,так что порты USB устанавливаются на ноутбуки, а также настольные ПК , так как технология становится все более распространенной. USB-портам назначаеться графический значок, показанный на рисунке.

    Продолжение статьи следует, читаем в следующих статьях.