Вам бонус- начислено 1 монета за дневную активность. Сейчас у вас 1 монета

Цоколевки разъема и кабеля - Все о USB , Программирование

Лекция



Это продолжение увлекательной статьи про usb.

...

3 (40Gbps), как и высокомощные режимы USB Power Delivery 2.0, требует специальных кабелей, маркированных электронным чипом как совместимые.

Для работы съемных кабелей в альтернативном режиме могут использоваться четыре высокоскоростные (SuperSpeed) пары и два контакта Sideband. В случае док-станций, съемных устройств и несъемных (постоянных) кабелей можно также использовать два контакта D+/D- и один конфигурационный контакт. Режимы настраиваются через конфигурационный контакт с использованием сообщений, определяемых вендором (VDM).

Не все альтернативные режимы реализуются в каждом устройстве с разъемом USB Type-C; поддерживаемые альтернативные режимы обозначаются соответствующими логотипами рядом с разъемом[22].

Изучается возможность использования этого разъема другими последовательными высокоскоростными протоколами, например PCI Express и Base-T Ethernet[2

Номер контакта Цвет провода Функция
1 Красный VBUS (5 вольт)
2 Белый D-
3 Зеленый D+
4 Черный Земля

В кабелях USB используется стандартная цветовая маркировка для изоляции внутренних проводников, что упрощает идентификацию проводов от производителя к производителю. Стандарт регламентирует различные электрические параметры для кабелей. Интересно подробно прочитать включенные оригинальные спецификации USB 1.0. Вы бы разобрались в указанных электрических атрибутах, но параграф 6.3.1.2 предлагает рекомендованный цвет для заполнения кабелей USB морозный белый – как скучно! USB 1.1 и USB 2.0 послабляют рекомендации на Черный, Серый или Натуральный.

Разработчики PCB в части 6 стандарта найдут стандартные посадочные места и цоколевки коннекторов.

USB4

Все о USB  , Программирование  USB интерфейса и работа с  USB  периферии для программистов
Логотип USB4

В отличие от предыдущих версий, название протокола пишется слитно, без пробела между словом «USB» и цифрой «4».

Спецификация четвертой версии была опубликована 29 августа 2019 года[29][30]. Новый базовый протокол повышает максимальную скорость до 40 Гбит/с (при использовании совместимых кабелей Type-C), сохраняя обратную совместимость с USB 3.2, USB 2.0 и, опционально, Thunderbolt 3[31][32][33].

30 сентября 2021 года были представлены новые логотипы кабелей USB Type-C, которые помимо скорости передачи данных показывают еще и мощность зарядки: 60 Вт или 240 Вт[34][35][36].

Inter-Chip USB

Inter-Chip USB (англ.)рус. (IC-USB) и High Speed Inter-Chip USB (HSIC) — упрощенные версии USB 2.0 для некоммутируемого соединения микросхем в одном устройстве. Упрощение достигается за счет замены физического уровня USB с асинхронного на синхронный, отказа от возможности смены скорости и определения подключения, отказа от электрической защиты драйверов и уменьшения их мощности. Логическая часть USB неизменна (в том числе логика состояний шины). IC-USB определяет соединение Full Speed (12 Мбит/с) устройств; HSIC определяет соединение High Speed (480 Мбит/с) устройств.

Первая версия стандарта IC-USB была принята в 2006 году. Первая версия стандарта HSIC была принята в 2007 году[37]. HSIC использует две цифровых линии с логическими уровнями LVCMOS (1,2 вольта): STROBE и DATA. Максимальная длина проводников 10 см. Синхронный интерфейс обеспечивает пропускную способность 480 Мбит/с при тактовой частоте 240 МГц. Драйвер физического уровня HSIC потребляет на 50 % меньше энергии и занимает на 75 % меньше места на кристалле, чем традиционный драйвер USB 2.0[38].

В 2012 году была принята первая версия спецификаций Inter-Chip USB для USB 3.0[39].

Wireless USB

Все о USB  , Программирование  USB интерфейса и работа с  USB  периферии для программистов
Логотип USB wireless

Wireless USB — технология USB (официальная спецификация доступна с мая 2005 года), позволяющая организовать беспроводную связь с высокой скоростью передачи информации (до 480 Мбит/с на расстоянии 3 метров и до 110 Мбит/с на расстоянии 10 метров).

23 июля 2007 года USB-IF объявила о сертификации шести первых потребительских продуктов с поддержкой Wireless USB[40].

Media Agnostic USB

В 2013 году была представлена спецификация MA-USB, позволяющая инкапсуляцию USB протокола в существующие каналы связи, включая WiFi и WiGig.

Цоколевки разъема и кабеля

Цоколевки разъема

Назначение контактов USB Type-C разъема — гнезда и штекера
Контакт Название Описание Контакт Название Описание
A1 GND Заземление B12 GND Заземление
A2 TX1+ SuperSpeed дифференциальная пара #1[a], передача+ B11 RX1+ SuperSpeed дифференциальная пара #2[a], прием+
A3 TX1- SuperSpeed дифференциальная пара #1[a], передача- B10 RX1- SuperSpeed дифференциальная пара #2[a], прием-
A4 VBUS Плюс питания B9 VBUS Плюс питания
A5 CC1 Конфигурирующий канал (или согласующий) B8 SBU2 Дополнительный канал (Sideband)
A6 D+ High-Speed дифференциальная пара[b], положение 1, данные+ B7 D- High-Speed дифференциальная пара[b], положение 2[c], данные-
A7 D- High-Speed дифференциальная пара[b], положение 1, данные- B6 D+ High-Speed дифференциальная пара[b], положение 2[c], данные+
A8 SBU1 Дополнительный канал (Sideband) B5 CC2 Конфигурирующий канал (или согласующий)
A9 VBUS Плюс питания B4 VBUS Плюс питания
A10 RX2- SuperSpeed дифференциальная пара #4[a], прием- B3 TX2- SuperSpeed дифференциальная пара #3[a], передача-
A11 RX2+ SuperSpeed дифференциальная пара #4[a], прием+ B2 TX2+ SuperSpeed дифференциальная пара #3[a], передача+
A12 GND Заземление B1 GND Заземление
  1. 1 2 3 4 5 6 7 8 Экранированная дифференциальная пара, может использоваться для реализации USB SuperSpeed (3.0), SuperSpeed+ (3.1), SuperSpeed++ (3.2) — до 20 Гбит/с
  2. 1 2 3 4 Неэкранированная дифференциальная пара, может использоваться для реализации USB Low-Speed (1.0), Full-Speed (1.1), High-Speed (2.0) — до 480 Мбит/с
  3. 1 2 В штекере дифференциальная пара подключается только в одном положении, во 2-ом положении контакты отсутствуют.
Все о USB  , Программирование  USB интерфейса и работа с  USB  периферии для программистов
USB-C разъем (гнездо) в устройстве

Цоколевки кабеля

Назначение проводников в кабеле USB 3.1 Type-C
Разъем № 1 кабеля Type-C Кабель Type-C Разъем № 2 кабеля Type-C
Контакт Название Цвет оболочки проводника Название Описание Контакт Название
Оплетка Экран Оплетка кабеля Экран Внешняя оплетка кабеля Оплетка Экран
A1, B1, A12, B12 GND Луженый GND_PWRrt1
GND_PWRrt2
Общая земля A1, B1, A12, B12 GND
A4, B4, A9, B9 VBUS Красный PWR_VBUS1
PWR_VBUS2
VBUS питание A4, B4, A9, B9 VBUS
B5 VCONN Желтый PWR_VCONN VCONN питание B5 VCONN
A5 CC Синий CC Канал конфигурирования A5 CC
A6 Dp1 Белый UTP_Dp Неэкранированная дифференциальная пара, positive A6 Dp1
A7 Dn1 Зеленый UTP_Dn Неэкранированная дифференциальная пара, negative A7 Dn1
A8 SBU1 Красный SBU_A Полоса передачи данных A B8 SBU2
B8 SBU2 Черный SBU_B Полоса передачи данных B A8 SBU1
A2 SSTXp1 Желтый * SDPp1 Экранированная дифференциальная пара #1, positive B11 SSRXp1
A3 SSTXn1 Коричневый * SDPn1 Экранированная дифференциальная пара #1, negative B10 SSRXn1
B11 SSRXp1 Зеленый * SDPp2 Экранированная дифференциальная пара #2, positive A2 SSTXp1
B10 SSRXn1 Оранжевый * SDPn2 Экранированная дифференциальная пара #2, negative A3 SSTXn1
B2 SSTXp2 Белый * SDPp3 Экранированная дифференциальная пара #3, positive A11 SSRXp2
B3 SSTXn2 Черный * SDPn3 Экранированная дифференциальная пара #3, negative A10 SSRXn2
A11 SSRXp2 Красный * SDPp4 Экранированная дифференциальная пара #4, positive B2 SSTXp2
A10 SSRXn2 Синий * SDPn4 Экранированная дифференциальная пара #4, negative B3 SSTXn2
* Цвета для оболочки проводников не установлены стандартом
Все о USB  , Программирование  USB интерфейса и работа с  USB  периферии для программистов

Электрическая спецификация

Вам не нужны электрические спецификации главы 7, за исключением если Вы не разрабатываете чипы USB устройств/трансиверов или USB хост/хаб. Мы бегло рассмотрим основные вопросы этой главы.

Как мы уже упоминали, USB использует для передачи данных пару проводов. Для кодирования применяется принцип NRZI (Not Return Zero Invert – без возврата к нулю с инверсией), и применяется вставка бит (bit stuffing), чтобы обеспечить нужные изменения уровня в потоке данных. На низкоскоростных (low speed) и полноскоростных (full speed) устройствах дифференциальная ‘1’ передается путем повышения уровня D+ свыше +2.8V резистором 15КОм, подключенным к +3.6V и D- ниже +0.3V резистором 1.5КОм, подключенным к земле. Дифференциальный ‘0’ передается тем же способом, только уровни меняются на противоположные - D- свыше 2.8V и D+ ниже 0.3V.
Приемник распознает дифференциальную ‘1’, если уровень D+ больше на 200mV, чем D-, и дифференциальный ‘0’, если D+ на 200mV меньше, чем D-. Полярность сигнала инвертируется в зависимости от скорости шины. Термины состояний ‘J’ и ‘K’ используются для обозначения логических уровней. На low speed состояние ‘J’ – дифференциальный 0. На high speed состояние ‘J’ – дифференциальный 1.

Трансиверы USB имеют одновременно дифференциальные и несимметричные одиночные (single ended) выходы. Определенные состояния шины обозначены несимметричными сигналами на D +, D- или обоими сразу. Например, сигнал SE0 несимметричный и может использоваться для обозначения сброса устройства, если он удерживается дольше 10 мс. Сигнал SE0 генерируется путем удержания и D- и D+ в низком уровне (< 0.3V). О реализации несимметричных и дифференциальных выходов важно знать, если Вы используете трансивер и FPGA в качестве устройства USB. Вы не можете осуществить работу только с помощью дифференциального выхода.

Шина low speed/full speed имеет волновое сопротивление (characteristic impedance) 90 Ом +/- 15%. Таким образом, важно просмотреть даташит при выборе сопротивлений последовательных резисторов для D+ иD-. В любом хорошем даташите указаны величины сопротивлений и допуски на них.

Режим High Speed (480Mbits/s) использует постоянный ток 17.78 mA для передачи сигналов – с целью уменьшения шума.

Идентификация скорости

Устройство USB должно показать свою скорость путем подвешивания линии D+ или D- к напряжению 3.3V. Устройство full speed, как показано на картинке ниже, использует pull up резистор, подключенный к D+ для указания хосту, что это устройство full speed device. Резисторы pull up на стороне устройства используются хостом или хабом для определения присутствия устройства на шине (подключено ли устройство в порт USB). Без pull up резистора считается, что к шине USB ничего не подключено. Некоторые устройства имеют этот резистор встроенным в чип (он может включаться и выключаться программно под управлением firmware), другие требуют наличия внешнего резистора.
Возьмем для примера технологию SoftConnectTM Philips Semiconductor. При подключении к шине микроконтроллер инициализирует функцию устройства USB перед тем, как он разрешает pull up резистор для идентификации скорости, показывающий, что устройство подключено к шине. Если pull up резистор был подключен к Vbus, то это означает, что устройство сразу подключается к шине, как только оно воткнуто в порт USB. В этом случае хост может попытаться сбросить устройство и запросить дескриптор, когда микроконтроллер устройства еще не проинициализировал функцию устройства USB (не готов в обработке запросов USB).

Другие вендоры, такие как Cypress Semiconductor, также используют программируемый резистор для технологии Re-NumerationTM в своих устройствах EzUSB, где устройство при подключении сначала определяется как программируемое устройство USB, а потом, после загрузки в устройство программного обеспечения, отключается от шины и под управлением загруженного firmware проходит энумерацию как другое устройство USB (все это происходит незаметно для пользователя). Многие устройства EzUSB не имеют встроенной памяти Flash или OTP ROM для сохранения кода. Они загружают код через подключение по USB.

Все о USB  , Программирование  USB интерфейса и работа с  USB  периферии для программистов
Рисунок 2: USB устройство Full Speed имеет pull up резистор,
подключенный к D+

Все о USB  , Программирование  USB интерфейса и работа с  USB  периферии для программистов
Рисунок 3: USB устройство Low Speed имеет pull up резистор,
подключенный к D-

Обратите внимание, что мы не рассматривали идентификацию скорости для режима High Speed. High speed начинают работу путем подсоединения на full speed (1.5k на 3.3V к сигналу D+). После установления соединения и сброса устройство переходит к соединению на high speed, если хаб или хост поддерживает это. Если резистор работает в режиме high speed, резистор pull up отключается для сохранения баланса линии.

Для совместимости устройства с USB 2.0 не требуется поддержка режима high-speed. Это позволяет производить более дешевые устройства, если скорость не важна. Это также имеет место для USB 1.1 low speed устройства, которое не обязано поддерживать full speed.

Однако высокоскоростное устройство не должно поддерживать режим низкой скорости. Оно должно только поддержать режим full speed для первого соединения, и затем перейти в режим high speed после успешного взаимодействия. USB 2.0 совместимое downstream устройство (хаб или хост) должен поддерживать все три режима - high speed, full speed и low speed.

Питание (VBUS)

Одна из выгод USB – устройства, питаемые от шины (bus-powered devices) – устройства, которые могут получать питание от шины и не требовать никаких дополнительных джеков или кабелей. Однако многие путаются в этой опции без рассмотрения нужных критериев.

USB устройство указывает свое энергопотребление в единицах 2mA в дескрипторе конфигурации, который мы будем детально рассматривать далее. Устройство не может увеличить энергопотребление свыше величины, указанной при энумерации, даже если у него пропадет внешнее питание. Имеется 3 класса функций USB:

  • Low-power питаемые от шины функции
  • High-power питаемые от шины функции
  • Self-powered функции (с собственным отдельным питанием)

Low power питаемые от шины функции получают питание полностью только от VBUS и не могут потреблять больше, чем 1 юнит нагрузки (one unit load). Спецификация USB задает в качестве юнита нагрузки 100mA. Low power питаемые от шины функции должны быть также разработаны таким образом, чтобы могли работать при снижении напряжения на VBUS до 4.40V и повышении до 5.25V, замеренных на upstream коннекторе устройства. Для большинства устройств 3.3V обязательно применение LDO регуляторов.

High power питаемые от шины функции получают питание только от USB и не могут потреблять больше, чем 1 юнит нагрузки, пока они не будут сконфигурированы хостом, после чего они могут потреблять до 5 юнитов нагрузки (500mA Max), предоставленных в соответствии с запрошенной величиной из дескриптора. High power питаемые от шины функции должны быть способны проходить детектирование и энумерацию при напряжении минимум 4.40V. Когда проходит работа с полной нагрузкой, то минимум для VBUS составляет 4.75 V, и максимум 5.25V. Здесь также измерения происходят с разъема upstream.

Самопитаемые функции (self power functions) могут потреблять от шины до 1 юнита нагрузки и получать остаток мощности от внешнего источника. При пропадании внешнего источника питания должна быть обеспечена возможность потребления от шины USB не больше, чем 1 юнит нагрузки. Самопитаемые функции проще в разработке, поскольку отсутствуют проблемы с потребляемой мощностью. Одноюнитовая нагрузка на шину позволяет проводить детектирование и энумерацию без основного/дополнительного источника питания.

Никакое устройство USB, независимо от типа питания не должно подавать питание на провод VBUS на своем upstream порту. Если VBUS пропадет, устройство должно в течение 10 секунд убрать питание с D+/D- pull-up резисторов, используемых для идентификации скорости.

Другое условие использования VBUS - пусковой ток, который должен быть ограничен. Это выделено в параграфе 7.2.4.1 спецификации USB и обычно пропускается. Пусковой ток происходит из-за наличия электрической емкости в Вашем устройстве между VBUS и землей. Поэтому спецификация указывает максимально допустимую развязывающую емкость, которую Вы можете иметь в своем устройстве - 10uF. Когда Вы отключаете устройство, возникает ЭДС самоиндукции от протекающего тока (за счет индуктивности кабеля USB), которая может достичь большой величины. Для защиты от этого должна присутствовать минимальная развязывающая емкость 1uF на VBUS.

Типичное питаемое от шины устройство не может потреблять ток свыше весьма разумной величины - 500mA. Вы можете спросить – какие осложнения тут могут быть? Может, Suspend Mode (режим приостановки)?

Потребление в режиме приостановки (Suspend Mode)

Suspend mode обязателен для всех устройств. Во время приостановки вступают в силу дополнительные ограничения. Максимальный ток приостановки пропорционален номинальной нагрузке в юнитах. Для устройства с током нагрузки в 1 юнит максимальный ток приостановки (по умолчанию) 500uA. Это включает ток от pull up резисторов на шине. В хабе имеются на обеих линиях D- и D+ pull down резисторы по 15 КОм. Эти pull down резисторы вместе с последовательно включенным резистором в устройстве (1.5 КОм pull up) создают общую нагрузку 16.5 КОм на VTERM обычно 3.3v. Таким образом, этот резистор потребляет 200uA еще до старта.

Кроме того, нужно принимать во внимание для многих устройств регулятор 3.3V. Многие устройства USB работают от 3.3V, например - PDIUSBD11. Линейные регуляторы обычно весьма неэффективны при средних статических электрических токах порядка 600uA, поэтому требуются более эффективные и, таким образом, дорогие регуляторы. В большинстве случаев Вы должны также уменьшить тактовую частоту микроконтроллера или совсем остановить тактовую частоту микроконтроллера, чтобы уложиться в предел 500uA.

Примечание переводчика: многие разработчики firmware не утруждают себя обработкой режима Suspend. Например, среди разработок, основанных на библиотеке V-USB, мне не попадались проекты с поддержкой режима Suspend.

Многие разработчики на форуме USB Implementor's Forum спрашивают – какие проблемы произойдут, если превысить лимит тока Suspend? Само собой разумеется, что большинство хостов и хабов не могут обнаружить перегрузку такой величины, и следовательно Ваше устройство может потреблять ток 5 мА и даже 10 мА и при этом нормально работать – но все-таки Вы при этом нарушаете требования спецификации USB. Однако при нормальном функционировании (не в режиме Suspend), если Вы пытаетесь превысить на 100mA Вашу определенную допустимую нагружку, то хаб или хост наверняка обнаружат это и отсоединят Ваше устройство в интересах целостности шины.
Конечно, этих вопросов проектирования можно избежать, если Вы хотите спроектировать устройство USB с собственным питанием. Токи Suspend не имеют значения для десктопов, но с введением спецификации On-The-Go хостами USB могут стать мобильные телефоны и мобильные органайзеры. Лишнее потребление энергии Вашими USB устройствами произведет неблагоприятный эффект на время работы мобильного устройства от батареи.

Вход в Suspend Mode

Устройство USB приостанавливается (переходит в режим Suspend), когда на шине нет активности более чем 3.0 мс. В течение следующих 7 мс устройство должно отключиться, и не потреблять ток больше, чем заданный ток suspend. Таким образом, через 10 мс после прекращения активности шины ток потребления от нее не должен превышать suspend current. Для поддержания состояния соединения к приостановленному хабу или хосту, устройство во время режима Suspend должно все еще предоставлять питание на pull up нагрузочный резистор, определяющий выбор скорости.

У USB есть пакет start of frame (SOF), который строго периодично (каждые 1 мс для low speed и full speed) посылается на шину для поддержания ее в активном состоянии. Это препятствует тому, чтобы шина стала неактивной (вошла режим приостановки) при отсутствии данных на шине.

  • Шина high speed имеет микрофреймы, отсылаемые каждые 125.0 µs ±62.5 ns.
  • Шина full speed отправляет фрейм каждые 1.000 ms ±500 ns.
  • Шина low speed имеет keep alive EOP (End of Packet) каждые 1ms только в случае отсутствия любых low speed данных.

Термин "Global Suspend" используется, когда вся шина USB входит в режим suspend целиком. Однако также может быть приостановлено выбранное устройство путем посылки команды хабу, куда подключено устройство. Это называют как "Selective Suspend."

Устройство возобновит работу, как только примет любой «не idle» сигнал. Если устройство имеет возможность удаленного пробуждения (remote wakeup enabled), то оно может сигнализировать хосту о необходимости выхода из режима Suspend (resume).

Скорость сигнала данных (Data Signalling Rate)

Другая область, которая часто пропускается, является допуск на такты USB. Эта информация имеется в секции 7.1.11 спецификации USB.

  • High speed data тактируются 480.00Mb/s с допуском на скорость ± 500ppm.
  • Full speed data тактируются 12.000Mb/s с допуском на скорость ±0.25% или 2,500ppm.
  • Low speed data тактируются 1.50Mb/s с допуском на скорость ±1.5% или 15,000ppm.

Эти допуски позволяют для устройств low speed применять недорогие резонаторы, но исключает их для full speed или high speed устройств.

Глава 3: протоколы USB

В отличие от RS-232 и похожих последовательных интерфейсов, где формат отправляемых данных не задан, USB составлен из нескольких слоев протоколов. Об этом говорит сайт https://intellect.icu . Звучит сложно, но не опускайте руки. Как только поймете, что происходит, нужно беспокоиться только о протоколах верхних уровней. Фактически большинство контроллеров USB берет на себя заботу о нижних уровнях протоколов, делая их невидимыми для конечного разработчика.

Каждая транзакция USB состоит из:

  • Token Packet (заголовок, показывающий – что должно передаваться далее)
  • необязательный Data Packet (содержит полезный payload)
  • Status Packet (используется для подтверждения транзакций и предоставляет средство устранения ошибок)

Как мы уже упоминали - USB является шиной, где главным является хост. Хост начинает все транзакции. Первый пакет, так называемый token, генерируется хостом для описания того, что проследует далее и будет ли это транзакция чтения или записи, и какой адрес устройства и определенная конечная точка (endpoint). Следующий пакет обычно пакет данных, несущий полезную нагрузку, за которым идет пакет рукопожатия (handshaking packet), сообщающий о том, что данные или token были приняты успешно, или конечная точка (endpoint) остановлена (stalled) или недоступна для принятия данных.

Общие поля пакета USB

Данные на шине USB передаются в таком порядке: первым идет LSB (Least Significant Bit, младший значащий бит). Пакеты USB состоят из следующих полей:

  • Sync

Все пакеты должны начинаться с поля синхронизации (sync). Поле sync имеет длину 8 бит на low speed и full speed или 32 бита на high speed, и используется для синхронизации тактов приемника с тактами передатчика. Последние 2 бита показывают, где начинается поле PID.

  • PID

PID означает Packet ID. Это поле используется для обозначения типа пакета, который сейчас отправляется. Следующая таблица показывает возможные значения этого поля.

Группа Значение PID Идентификатор пакета
Token 0001 OUT Token
1001 IN Token
0101 SOF Token
1101 SETUP Token
Data 0011 DATA0
1011 DATA1
0111 DATA2
1111 MDATA
Handshake 0010 ACK Handshake
1010 NAK Handshake
1110 STALL Handshake
0110 NYET (No Response Yet)
Special 1100 PREamble
1100 ERR
1000 Split
0100 Ping

У PID здесь 4 бита, однако чтобы обеспечить его правильный прием, 4 бита дополнены (complemented) и повторены, в результате получился 8-битный PID. Полученный формат показан ниже:

PID0 PID1 PID2 PID3 nPID0 nPID1 nPID2 nPID3
  • ADDR

Поле адреса указывает, какому из устройств USB предназначен пакет. Адрес имеет длину 7 бит, что позволяет адресовать до 127 поддерживаемых одновременно устройств. Адрес 0 недопустим, он предназначен для устройств, адрес для которых пока не назначен. Любое устройство, которому не назначен адрес, должно отвечать на пакет с адресом 0.

  • ENDP

Поле endpoint составлено из 4 бит, что позволяет 16 возможных конечных точек. Однако устройства low speed могут иметь только 2 дополнительные конечные точки сверх заданного по умолчанию канала (4 конечных точки максимум).

  • CRC

Cyclic Redundancy Checks (Циклическая Избыточная проверка) выполняется над данными в пределах полезной нагрузки пакета. Все пакеты token имеют 5 бит CRC, а пакеты data имеют 16 бит CRC.

  • EOP

End of packet, конец пакета. Сигнализируется несимметричным нулем (Single Ended Zero, SE0) на время примерно 2 бита, и далее следует состояние J длительностью 1 бит.

Типы пакетов USB

USB имеет 4 разных типа пакета. Пакеты token индицируют тип последующей транзакции, пакеты data содержат payload, пакеты handshake используются для подтверждения данных или сообщений об ошибках, и пакеты start of frame (SOF) показывают начало нового фрейма.

  • пакеты Token

Имеется 3 типа пакетов token:

In – информируют устройство USB о том, что хост хочет прочитать информацию.
Out - информируют устройство USB о том, что хост хочет отправить информацию.
Setup – используется для начала управляющих передач (control transfers).

Пакеты token должны удовлетворять следующему формату:

Sync PID ADDR ENDP CRC5 EOP
  • пакеты Data

Имеется 2 типа пакетов данных, каждый из которых может передать до 1024 байта данных.

Data0
Data1

Режим High Speed задает два других data PID - DATA2 и MDATA.
Пакеты Data имеют следующий формат:

Sync PID Data CRC16 EOP

Максимальный размер полезной нагрузки (payload) для low-speed устройств составляет 8 байт. Максимальный размер полезной нагрузки для full-speed устройств составляет 1023 байт. Максимальный размер полезной нагрузки для high-speed устройств составляет 1024 байт. Данные нужно послать в единицах байт.

  • пакеты Handshake

Имеется 3 типа пакетов handshake, которые состоят просто из PID

ACK – подтверждение о том, что пакет успешно принят. NAK – сообщение о том, что устройство временно не может отправить или принять данные. Также используется в interrupt транзакциях для информирования хоста о том, что нет никаких данных для передачи. STALL – устройство находится в состоянии, которое требует вмешательства со стороны хоста.

Пакеты handshake имеют следующий формат:

Sync PID EOP
  • пакеты Start of Frame (SOF)

Пакет SOF состоит из 11-битного номера фрейма, отсылаемого хостом каждые 1ms ± 500ns на full speed или каждые 125 µs ± 0.0625 µs на high speed.

Sync PID Frame Number CRC5 EOP

Метод связи в спецификации USB

Спецификация USB предлагает разработчику несколько вариантов устройств в зависимости от требуемой скорости обмена данными. Это Low Speed (физическая скорость 1,5 Мбит/с ± 1,5 %), Full Speed (12 Мбит/с ± 0,25 %), High Speed (480 Мбит/с ± 0,05 %), SuperSpeed (5 Гбит/с ± 0,06 %), SuperSpeed+ (10 Гбит/с). Low-, Full- и High-Speed-устройства используют одну дифференциальную полудуплексную линию связи для обмена данными, SuperSpeed — несколько. Протоколы обмена идентичны.

USB представляет собой сеть с одним мастером (хостом) и произвольным количеством подчиненных устройств (device). Топология сети — активное дерево. «Активное» означает, что в каждом узле дерева находится специальное устройство — концентратор (хаб). Хаб занимается электрическим согласованием кабелей, маршрутизацией пакетов, обнаружением подключения/отключения устройств и другими функциями. Все соединения в сети электрически и протокольно идентичны.

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

Физический уровень

продолжение следует...

Продолжение:


Часть 1 Все о USB , Программирование USB интерфейса и работа с USB периферии для программистов
Часть 2 Цоколевки разъема и кабеля - Все о USB , Программирование
Часть 3 Глава 4: Типы конечных точек (Endpoint Types ) - Все
Часть 4 Глава 5: Дескрипторы USB - Все о USB , Программирование
Часть 5 Глава 7 : обычный (Generic) драйвер USB - Все о
Часть 6 Термины - Все о USB , Программирование USB интерфейса и

Ответы на вопросы для самопроверки пишите в комментариях, мы проверим, или же задавайте свой вопрос по данной теме.

создано: 2020-06-24
обновлено: 2024-11-12
135



Рейтиг 9 of 10. count vote: 2
Вы довольны ?:


Поделиться:

Найди готовое или заработай

С нашими удобными сервисами без комиссии*

Как это работает? | Узнать цену?

Найти исполнителя
$0 / весь год.
  • У вас есть задание, но нет времени его делать
  • Вы хотите найти профессионала для выплнения задания
  • Возможно примерение функции гаранта на сделку
  • Приорететная поддержка
  • идеально подходит для студентов, у которых нет времени для решения заданий
Готовое решение
$0 / весь год.
  • Вы можите продать(исполнителем) или купить(заказчиком) готовое решение
  • Вам предоставят готовое решение
  • Будет предоставлено в минимальные сроки т.к. задание уже готовое
  • Вы получите базовую гарантию 8 дней
  • Вы можете заработать на материалах
  • подходит как для студентов так и для преподавателей
Я исполнитель
$0 / весь год.
  • Вы профессионал своего дела
  • У вас есть опыт и желание зарабатывать
  • Вы хотите помочь в решении задач или написании работ
  • Возможно примерение функции гаранта на сделку
  • подходит для опытных студентов так и для преподавателей

Комментарии


Оставить комментарий
Если у вас есть какое-либо предложение, идея, благодарность или комментарий, не стесняйтесь писать. Мы очень ценим отзывы и рады услышать ваше мнение.
To reply

Операционные системы и системное программировние

Термины: Операционные системы и системное программировние