Сегодня 01 июня 2026
18+
MWC 2018 2018 Computex IFA 2018
реклама
Накопители

Технология USB 2.0

⇣ Содержание

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

  • Частотой обращения к шине и требованиями к задержкам
  • Необходимой полосой пропускания
  • Номером конечной точки
  • Требованиями к обработке ошибок
  • Максимальным размером кадра который может быть принят или послан.
  • Типом поддерживаемой передачи данных
  • Направлением осуществления передачи между конечной точной и хостом.

Для низкоскоростных (low-speed) устройств возможно существование до двух дополнительных точек; для full-speed устройств их число ограничивается лишь возможностями протокола и может достигать 15-ти для ввода и 15-ти для вывода.

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

  • Каналы сообщений. Являются двунаправленными каналами и служат, не трудно сообразить, для передачи сообщений, имеющих строго определенный в спецификации формат, необходимый для обеспечения надежной идентификации и передачи команд. Возникает канал при отсылке хостом запроса в устройства, и управляет передачей только хост. Каналы сообщений используется для передач только управляющего типа (что такое смотрим ниже).
  • Потоковые каналы. Являются однонаправленными. В отличие от четко определенных сообщений не имеют определенного закрепленного в стандарте формата, что означает возможность передачи данных любого вида. Эти передачи могут контролироваться не только хостом, но и устройством. Используется для передач данных типа прерывание, групповая пересылка, изохронная (смотрим ниже). В спецификации в зависимости от типа передаваемых данных, предъявляемых требований к скорости обработки, задержки доставки и т.п. определены следующие типы передач.
  • Управляющие передачи. Используются для конфигурирования устройств во время подключения и выполнения других специфических функций над устройством, включая организацию новых каналов.
  • Прерывания. Используются для спонтанных, но гарантированных передач с гарантированными скоростями и задержками. Используются обычно для передачи введенных данных от клавиатуры или сведений об изменении положения указателя мыши, в устройствах обратной связи, и.т.д
  • Групповая пересылка. Используется для гарантированной передачи данных больших объемов без предьявленных требований к скоростям и задержкам. Занимает под себя всю свободную пропускную способность шины. В любой момент доступная полоса может быть урезана при необходимости осуществления передач других видов с более высоким приоритетом, или добавлена, при освобождении другими устройствами. Обычно такие передачи используется между принтерами, сканерами, накопителями и др.
  • Изохронная передачи. Используются для потоковых передач данных в реальном времени. Резервируют определенную полосу пропускания шины, гарантируют определенные величины задержек доставки, но не гарантируют доставку (в случае обнаружения ошибки повторной передачи не происходит. Передачи этого вида используются для передачи аудио и видео трафика.

Обмен данными может осуществляться в трех скоростных режимах:

  • Low Speed. Низкоскоростной режим. Скорость передачи составляет 1.5 Мбит/с.
  • Full Speed. Полноскоростной режим. Скорость передачи 12 Мбит/с.
  • High Speed. Высокоскоростной режим. Появился лишь в спецификации 2.0. Скорость передачи 480 Мбит/с.

Информация по шине передается пакетами. Всего их определено 4 вида:

  • Маркерные пакеты.
    • In - информируют USB устройство, что хост хочет читать данные из устройства
    • Out - информирует USB устройство, что хост хочет передавать данные в устройство
    • Setup - используются для обозначения начала управляющего типа передачи данных
    • SOF - пакеты начала кадра (Start of Frame Packets)
  • Пакеты данных.
    • Существуют два типа пакетов данных - DATA0, DATA1 , каждый из которых способен содержать до 1024 байтов данных. У высокоскоростных устройств для пакетов данных определены два других PID-a: DATA2 и MDATA.
  • Пакеты подтверждения.
    • ACK - подтверждение того, что пакет был успешно принят
    • NAK - информирует, что устройство в данный момент не может принимать либо отправлять данные. А в Interrupt транзакциях сообщает хосту, что устройство не имеет новых данных для передачи.
    • STALL - указывает, что устройство неспособно передавать или получать данные и требуется вмешательство хоста.
  • Специальные.
    • PRE - предшествует низкоскоростной передаче данных.

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

Мы не станем опускаться в рассмотрении до уровня кадров и микрокадров, так как это совсем не помешает понять нам общие принципы работа шина.

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


Два для передачи сигнала и два для подачи напряжения. Для подключения устройств предназначены соединители двух типов: типа "A" и типа "B". Как мне кажется создание двух различных видов коннекторов было необходимо для того, что бы избежать излишней путаницы при подключении устройств и защититься от дурака, лишив его возможности подключить что-либо не так. Кроме того, они характеризуются различным усилием необходимым для вставки и силой удержания в разьеме.

Коннекторы типа "А" используются для подключения к компьютеру, обеспечивают жесткое и надежное крепление и не предназначены для частого подключения/отсоединения.


Соединители же типа "B", наоборот, нужны в тех местах, где существует необходимость частого подключения/отключения, и применяются они со стороны периферии.


В живую они вот так смотрятся.


Кроме того в новой версии USB определен коннектор miniUSB типа "B".


Он предназначен для применения на малогабаритных устройствах типа мобильных телефонов, фотоаппаратов, плееров, где нет возможности разместить стандартный полноразмерный разъем. (По совершенно непонятным для меня причинам, с доступностью кабелей miniUSB ситуация обстоит не лучшим образом: и хотя это очень распространенный в последнее время тип подключения, достать его зачастую очень проблемно, а если и возможно, то за него просят порой 10-20$, при том что с обычной вилкой типа "B" можно приобрести на каждом углу за 1$. Это и собственное наблюдение, и опыт общения с людьми в разных городах и странах) От мелкой периферии, типа клавиатур, мышек, где размещение соединительных разъемов неудобно да и вообще глупо, кабель может вообще не отсоединятся. Конструктивно разъемы задуманы так, что сначала происходит соединение шины питания, потом шины данных.

По подписям D+ и D- на схеме кабеля должно быть вы уже догадались, что USB использует дифференциальную передачу (впрочем, каждый порт помимо дифференциального приемника имеет еще и линейные для каждого сигнала), добавлю еще что применяется потенциальное кодирование по методу NRZI (Non Return to Zero Invert to ones, без возвращения к нулю с инверсией для единиц) и битстаффинг для улучшения самосинхронизирующихся свойств потока. Это в общем. Глубже мы не станем вдаваться. Совершенно ни к чему.

Подключаемые устройства, потребляющие небольшой ток, могут быть запитаны от шины USB. Максимальный ток, который может обеспечить шина равен 500 мА. Это ток, доступный всем устройствам на шине, а не, как приходит некоторым в голову, на каждое из 127 возможных устройств (при этом на стадии подключения и конфигурирования потребляемый ток не должен превышать 100 мА, в противном случае устройство просто не будет инициировано). Для увеличения доступной мощности питания на шине, концентраторы могут оснащаться своим собственным блоком питания, однако такое решение не популярно.

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

Итак, к шине подключено новое устройство. Наверняка вы задавались вопросом, каким образом происходит обнаружение. Ответ прост: обнаружение устройства, а также и его скоростной режим определяется по скачку напряжения, который имеет место быть при включении на шине данных. Этот скачок создается подключением резистора к напряжению 3.3 В. Для низкоскоростных устройств этот резистор подключается к шине D-, для полно- и высокоскоростных - к шине D+. Обычно тот резистор делается программно управляемым для того, что бы после обнаружения устройства его можно было отключить и сбалансировать линию. Итак, новое устройство подключено и обнаружено.

Конфигурирование осуществляется через конечную точку с номером 0 (для любопытных можно сказать, что обмен информацией в этот момент происходит в полноскоростном режиме!). Загружаются необходимые драйверы. Устройство готово к работе.

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

Обмен данными. Случай второй: от устройства к хосту. У устройства возникла необходимость передать данные. НО! Оно не может никаким образом дать знать об этом хосту. Таких средств в USB просто не предусмотрено. Для того, что бы выполнить такую передачу, хост должен обратиться у устройству с вопросом, не имеет ли оно желание чего-либо ему сказать (послав пакет in). В ответ на что устройство вышлет ему имеющиеся данные и дождется получения подтверждения (снова же, если ведется не изохронная передача). Соответственно, если хост не обратиться с таким вопросом, то данные никогда не будут переданы.

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

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

На этом краткий курс в глубь USB можно считать завершенным. Остается добавить только что, во-первых, ввиду огромной популярности интерфейса у всевозможной периферии к стандарту было выпушено дополнение USB 2.0 On-The-Go, которое призвано дать возможность устройствам обмениваться информацией между собой без участия компьютера, но так как пока ничего в действии я не видел, особенно по этому поводу не распространялся. Во-вторых, автор этого обзора не гений, и ничего нового в своей статье он не изобрел, а лишь обработал материал доступный на бескрайних просторах интернета, в виде спецификации USB на www.usb.org, обзорных статей сайта USB Masters и FAQ по USB у iXBT Hardware.

 
← Предыдущая страница
⇣ Содержание
Если Вы заметили ошибку — выделите ее мышью и нажмите CTRL+ENTER.

window-new
Soft
Hard
Тренды 🔥
Тактический шутер Dioxide с элементами Dark Souls отправит в корпоративную антиутопию — трейлер новой игры от авторов Forgive Me Father 15 мин.
«Готовьтесь к следующей битве!»: режиссёр Tekken 7 и Tekken 8 покинул Bandai Namco после 20 лет работы 3 ч.
Календарь релизов 1–7 июня: Gothic 1 Remake, Fatekeeper, Underchoice и The 7th Guest Remake 5 ч.
После 10 лет разработки следующее крупное обновление станет для Factorio последним 5 ч.
Слухи: Wizards of the Coast запустила в разработку ремейк легендарной Baldur's Gate 2 6 ч.
Mewgenics совсем скоро получит официальный перевод на русский язык — разработчики уже собрали «все возможные имена» для котиков 11 ч.
Самурайский экшен Onimusha: Way of the Sword выйдет до GTA VI — инсайдер раскрыл дату релиза первой за 20 лет новой игры серии 12 ч.
К взлёту готов: амбициозный авиасимулятор «Корея. Серия Ил-2» получил дату выхода в раннем доступе 13 ч.
Княжна, волки и настоящие эмоции: российский боевик «Война Миров: Сибирь» получил атмосферный сюжетный трейлер 14 ч.
«У людей должна быть свобода выбора»: GamesVoice не откажется от русской озвучки Cyberpunk 2077: Phantom Liberty, несмотря на претензии CD Projekt Red 14 ч.
Intel выпустит 192-ядерные процессоры Xeon Diamond Rapids на техпроцессе 18A-P в 2027 году 2 ч.
Microsoft представит улучшения Windows, суперприложение Copilot и новый рассуждающий ИИ на конференции Build 3 июня 2 ч.
256 Гбайт оперативки для ПК в двух модулях: Origin Code представила комплект 4R CUDIMM DDR5-8000 2 ч.
Российский рынок электронных компонентов просел на 18,3 % — китайская продукция вытесняет отечественную 4 ч.
MSI представила RTX 5090 Gaming Trio Next-Gen с улучшенным кулером и RTX 5090 Suprim Safeguard с защитой от оплавления 4 ч.
«Это победа всей экосистемы»: Qualcomm обрадовалась приходу Nvidia на рынок процессоров для ПК 5 ч.
Пожар на заводе памяти SK hynix привёл к утечке опасного газа и эвакуации 3600 человек — производство не пострадало 5 ч.
Huawei представила смартфоны Nova 16 Ultra и Nova 16 Pro — чип Kirin 9010S, камера на 200 Мп и батарея на 7000 мА·ч 6 ч.
HP представила «самые тонкие в мире» ноутбуки OmniBook Ultra 16 и X 14 на процессоре Nvidia RTX Spark 6 ч.
PNY выпустит видеокарту GeForce RTX 5090 с модульной СЖО Lynx+ 6 ч.