Что такое service usb

Обновлено: 02.07.2024

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

В этой статье описаны способы решения этой проблемы.

Необходимые условия

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

Решение

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

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

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

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

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

Примечание. В Windows Vista нажмите кнопку Пуск и воспользуйтесь окном Начать поиск.

Введите devmgmt.msc и нажмите кнопку ОК. Откроется диспетчер устройств.

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

В меню Действие выберите пункт Обновить конфигурацию оборудования.

Проверьте, работает ли USB-устройство.

Если удалось устранить проблему, дальнейшее содержание этой статьи можно пропустить. Если не удалось устранить проблему, перейдите к следующему способу.

Способ 2. Перезапуск компьютера

Если не удалось решить проблему с помощью обновления конфигурации, перезапустите компьютер. После этого проверьте, работает ли USB-устройство.

Если удалось устранить проблему, дальнейшее содержание этой статьи можно пропустить. Если не удалось устранить проблему, перейдите к следующему способу.

Способ 3. Отключение и повторное включение USB-контроллера

Отключите и снова включите все USB-контроллеры с помощью диспетчера устройств. Это позволит восстановить нормальную работу USB-порта. USB-контроллеры представляют USB-порты в диспетчере устройств. Если расширенное устранение неполадок вызывает затруднения, перейдите к разделу Временное решение.

Чтобы отключить и повторно включить USB-контроллеры, выполните указанные ниже действия.

Примечание. В Windows Vista нажмите кнопку Пуск и воспользуйтесь окном Начать поиск.

Введите devmgmt.msc и нажмите кнопку ОК. Откроется диспетчер устройств.

Разверните раздел Контроллеры универсальной последовательной шины USB.

Примечание. Возможно, для обнаружения нужного элемента потребуется прокрутить список.

Щелкните правой кнопкой мыши первый USB-контроллер в разделе Контроллеры универсальной последовательной шины USB и выберите пункт Удалить.

Повторите действие 4 для всех USB-контроллеров в разделе Контроллеры универсальной последовательной шины USB.

Перезагрузите компьютер. После загрузки компьютера конфигурация оборудования будет автоматически обновлена, а все удаленные USB-контроллеры — переустановлены.

Проверьте, работает ли USB-устройство.

Если USB-порт распознает устройство и его можно использовать, дальнейшее содержание этой статьи можно пропустить.

Если удалось устранить проблему, дальнейшее содержание этой статьи можно пропустить. Если этим методом не удалось устранить проблему,см. раздел "Обходной путь".

Временное решение

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

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

Получить помощь в решении проблемы

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

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

Примечание. Решение по устранению проблем можно загрузить на любой компьютер, сохранить его на устройство флэш-памяти или компакт-диск и затем запустить на нужном компьютере.

Самостоятельное решение проблемы

Этот раздел предназначен для опытных пользователей.

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

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

Важно! В этот раздел, способ или задачу включены действия по изменению параметров реестра. Однако их неправильное изменение может привести к возникновению серьезных проблем, поэтому при выполнении таких действий будьте предельно внимательны. Для дополнительной защиты создайте резервную копию реестра. Это позволит восстановить его при возникновении неполадок. Дополнительные сведения о создании резервной копии и восстановлении реестра см. в следующей статье базы знаний Майкрософт:

322756 Создание резервной копии и восстановление реестра Windows XPЧтобы отключить функцию временного отключения, выполните указанные ниже действия.

Примечание. В Windows Vista нажмите кнопку Пуск и воспользуйтесь окном Начать поиск.

Введите команду regedit и нажмите кнопку ОК. Откроется редактор реестра.

Найдите и выберите следующий подраздел реестра:

HKEY_LOCAL_MACHINE\System\CurrentControlSet\Services\USB

Если в реестре присутствует запись DisableSelectiveSuspend, дважды щелкните ее. Если эта запись отсутствует, создайте ее. Чтобы создать запись реестра, выполните указанные ниже действия.

В меню Правка выберите пункт Создать, затем — Параметр DWORD.

Введите DisableSelectiveSuspend и нажмите клавишу ВВОД.

В меню Правка выберите пункт Изменить.

В поле "Значение" введите 1, чтобы отключить функцию временного отключения, и нажмите кнопку ОК.

Затем перейдите к разделу Проблема устранена?

Проблема устранена?

Убедитесь, что проблема устранена. Если удалось устранить проблему, дальнейшее содержание этой статьи можно пропустить. Если не удалось устранить проблему, обратитесь в службу поддержки.

Причина

Эта проблема может возникнуть из-за ошибки синхронизации, которая препятствует обнаружению USB-устройства.

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

Состояние

Корпорация Майкрософт работает над устранением этой проблемы. Дополнительная информация будет размещаться по мере ее появления.

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

LED-драйверы MEAN WELL для промышленных и уличных светодиодных светильников: особенности, преимущества, выбор

Публикация адресована начинающим разработчикам, тем, кто не знаком с USB, но хотел бы узнать больше. Статья носит учебный характер, и не является исчерпывающим справочным пособием. Для более простого вхождения в тему примеры основаны на стандарте USB 1.1. Если не сказано отдельно, то подразумевается режим FS (Full speed). В статье нет широко освещенных в других источниках сведений об общей топологии USB, о кабелях, хабах и разъемах. Здесь больше информации о том, что нужно знать разработчику устройств с микроконтроллерами о протоколе USB для своих разработок. Для устройств USB подключаемых к PC, таких, как мышь, клавиатура, микроконтроллер с поддержкой шины USB, использую термин USB-устройство. Персональный компьютер, к которому подключается USB-устройство, называю хостом. Доступное изложение теории, будет сопровождаться примерами программ на языке С для микроконтроллера AT90USB162 из популярной линейки megaAVR фирмы Atmel. В качестве источника справочной информации по USB рекомендую книгу Гук М. Ю. «Шины PCI, USB и FireWire. Энциклопедия», издательство «Питер».

Обзор темы

Программное обеспечение хоста делится на два отдельных типа: программное обеспечение инициализации канала связи и программное обеспечение поддержки рабочего режима обмена данными. Программное обеспечение инициализации начинает работать при подключении к хосту нового USB-устройства. Происходит обмен служебной информацией между хостом и USB-устройством. В результате обменов служебной информацией, хост определяет: тип устройства, его требования к энергопотреблению, возможность поддержки «спящего режима», тип драйверов для правильной работы USB-устройства, и, даже, возможна ли загрузка необходимых прикладных программ для работы с USB-устройством. Это новые веяния в духе спецификации PNP (plug and play). Устройства могут подключаться и отключаться в горячем режиме. При подключении и отключении происходит автоматическое переконфигурирование программного обеспечения хоста. Процесс настройки хоста на обмен данными, напоминает процесс раскрутки. Первоначально обмениваются простейшими сигналами по шине, затем процесс усложняется и, наконец, выход на рабочий режим.

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

В последнее время имеется тенденция к унификации не только протоколов обмена, но и устройств, взаимодействующих с персональным компьютером. Точнее, унификация требований к каналу связи. Идея такая. Придумывается универсальная шина для всего, что только можно подключить. Конечно, эта шина устроена сложно, она многоуровневая, гибкая и адаптируемая для разных конфигураций устройств. Унифицируются и драйверы операционной системы персонального компьютера, который взаимодействует с подключаемым устройством. Преимущество – отпадает необходимость в написании драйвера для ОС разработчиками USB-устройства. Это должно повышать надежность ОС, так как созданием драйверов могут заняться разработчики ОС, а не разработчики устройств. В общем, все плюсы унификации и стандартизации. Но есть и минусы. Очевидная сложность и связанная с ней избыточность, громоздкость технических решений. Тот же подход, что и в протоколах коммуникаций на большие расстояния. Академический стек протоколов OSI и знаменитый TCP/IP.

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

Виртуальные каналы и конечные точки

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

В режиме передачи данных, когда процесс конфигурирования (энумерации) уже закончился, между USB-устройством и хостом должны быть налажены мосты. Это некий набор виртуальных каналов, по которым идет обмен данными и служебной информацией. Англоязычный термин pipe – труба. Каналы разделяют единственную среду передачи, а потому они являются мультиплексированными и, соответственно, виртуальными. Можно провести аналогию с локальной сетью. Шина Ethernet одна, но соединений TCP может быть несколько. Но в TCP/IP соединения TCP могут возникать и завершаться много раз в процессе работы. В USB типы каналов и их количество фиксируются на стадии процесса энумерации.

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

Управляющий канал используется для передачи команд протокола USB; передача данных с использованием канала управления не является стандартным использованием канала. Хотя можно приспособить канал управления для передачи данных прикладной программы. В каждом USB-устройстве должен быть хотя бы один управляющий канал.

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

Изохронные каналы – применяются для передачи потока данных, например аудио и видео. Характерной особенностью является отсутствие повторной передачи данных в случае ошибок. Поврежденные пакеты просто отбрасываются без запроса повторной передачи. Такая политика позволяет воспроизводить поток данных в реальном времени без временных задержек. С периодом в 1 миллисекунду хост запрашивает данные, и буфер USB-устройства передается на хост. В веб-камерах используются изохронные каналы.

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

У USB-устройства приемником и передатчиком данных служит буфер, который называется конечной точкой. Тип конечной точки определяет тип канала, который связывает ее с хостом. Например, контроллер USB микроконтроллера AT90USB162 фирмы Atmel имеет в общей сложности 4 конечных точки, не считая конечной точки управления (из 4 возможных буферов обмена). Программа микроконтроллера должна, соответственно, сконфигурировать необходимое количество конечных точек для своих нужд. Все конечные точки контроллера USB перенумерованы. Нулевая конечная точка всегда используется для нужд канала управления и не может быть переконфигурирована для других целей. Если не создается драйвер ОС, то на стороне хоста расположение буфера знать необязательно, так как взаимодействие программы на стороне хоста с USB-устройством происходит через системные вызовы операционной системы и скрыто от пользовательской программы.

Хабы, адреса, хост контроллеры

Кратко опишем аппаратуру хоста. На стороне хоста обязательно должен присутствовать хотя бы один контроллер хоста и связанный с этим контроллером корневой хаб. В современных PC имеется несколько контроллеров хоста и, соответственно, несколько корневых хабов. Основателем каждой шины USB является корневой хаб, поэтому, если на PC несколько корневых хабов, то и несколько шин. В Linux имеющиеся шины USB можно посмотреть с помощью команды lsusb. Ниже приведен дамп вывода на моем компьютере:

В колонке слева перенумерованы имеющиеся в компьютере шины USB, а, значит, и контроллеры хабов и корневые хабы. Каждое USB-устройство на шине имеет уникальный адрес в диапазоне от 1 до 127. Нулевой адрес выполняет служебные функции, и не может быть назначен USB-устройству постоянно. Адреса распределяются по USB-устройствам хостом в процессе энумерации и сохраняются на все время работы устройства на шине. Из работы программы lsusb видно, что мышь USB подключена к шине 03, и на этой шине ей назначен адрес 02. Устройство хранения данных подключено к шине 01 с адресом 03. Можно поиграть, поменять последовательность включения и посмотреть, как это отразится на выводе lsusb. В следующей колонке указан идентификационный код устройства ID. Этот код состоит из 2 частей: идентификатора изготовителя (vendor ID) и идентификатора изделия (product ID). Они представляют собой два уникальных числа, используемых для идентификации конкретного устройства. Операционная система по этим кодам может определять, какой драйвер требуется загрузить для работы. Значение кода изготовителя назначается форумом разработчиков USB по заказу фирмы. Код устройства устанавливает сам производитель. Программист микроконтроллеров может задать эти числа произвольно. Другое дело, что такие устройства, поступившие в широкую продажу, могут вызвать возражения фирмы собственника кода. Кроме этих чисел, для идентификации можно использовать номер версии устройства (ID Device).

11

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

Это позволяет прямо с флешки воспроизводить фильмы и видео — очень удобно и эффективно. Но на некоторых телевизорах рядом с разъемом USB красуется надпись «service only» или «remote control». Это значит, что установленный порт — сервисный. Такое ограничение означает лишь одно — данный разъем не может использоваться для воспроизведения каких-либо мультимедийных файлов. Он предназначен для проведения сервисных и ремонтных работ, диагностики телевизора и перепрошивки. Однако это не является большой проблемой. Если проявить немного усилий и смекалки, то можно разблокировать USB и использовать его для любых целей.

Важно! Изложенные ниже манипуляции были испытаны на телевизорах LG модельного ряда 2009 года ( на телевизорах до 2009 года воспроизведение видео невозможно). На телевизора других марок способы могут подействовать, а могут и нет. И наконец все операции связанные с прошивкой и изменениями в сервисном меню могут «убить» телевизор и привести его в неработающее состояние.

Пользоваться предложенными методами или нет исключительно Ваше решение) Но многие уже активировали USB разъемы и наслаждаются всеми его возможностями.

В общем случае разблокировать порт USB можно из сервисного меню. На телевизорах LG их два вида: EzAdjust и InStart . Попадаем в меню, меняем пару значений и все работает. Рассмотрим основные способы.

1. Заходим в сервисное меню с помощью пульта. Если на телевизоре установлена прошивка версии 3.15 или более старая, то попасть в сервисное очень просто. Нажмите на пульте кнопку « Menu ». После этого нужно навести курсор на пункт «Опции». Далее одновременно зажимаем кнопки «Ок» на пульте и на телевизоре и держим так около 5−6 сек.

Разблокировка! Если все прошло удачно, то на экране должно появиться окошко с ячейками куда нужно ввести пароль «0000» ( четыре нуля). Попадаем в меню, где нужно выбрать пункт Tool Option 3. Необходимо поменять несколько значений, которые собственно говоря и отвечают за работу USB . Переходим к пункту EMF(JPEG,MP3) и устанавливаем значение «1». Переходим к пункту DIVX и устанавливаем значение « HD ». Больше ничего не трогаем, выходим их всех меню, производим перезагрузку телевизора. Заходим в меню телевизора при помощи кнопки « Menu » и видим желанный пункт USB . Операция прошла успешно.

2. Ставим более старую версию прошивки 3.15. Этот способ принесет немало хлопот и может привести к потере работоспособности телевизора. Есть много отзывов о проблемах, которые возникают после установки младшей версии прошивки. Из возможных проблем можно перечислить отказ некоторых разъемов ( HDMI или SCART ), не включение телевизора или проблемы с функциональностью. Но наряду с негативными отзывами есть и положительные.

Для отката прошивки нужно провести ряд манипуляций. Для начала скачайте прошивку 3.15 для Вашей модели или скачайте тут. Распакуйте архив на флешку, которая отформатирована в формате FAT 32. Вставьте флешку в телевизор и зайдите в меню при помощи кнопки « Menu » на пульте. Наведите курсор на пункт «Опции», на пульте 7 раз нажимаем кнопу «Fav» и попадаем в окошко обновления прошивки. Откатываем прошивку до версии 3.15. После этого выполняем все действия, описанные в способе 1.

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

23

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

4. Используем программу irRemote. Данная программа устанавливается на смартфоны и используется для входа в сервисное меню телевизора и последующей разблокировки порта USB . Для начала нужно скачать программу irRemote и установить ее на телефон. Далее следуйте инструкции описанной ниже.

1. Запустите установленное приложение на Вашем смартфоне.

2. В появившемся меню необходимо зайти в пункт «Add Device».

3

3. Далее Вы увидите несколько пунктов, выбирайте «TV».

4

4. Нажмите «Refresh» и ждите. В это время телефон подключается к сети Интернет и производит закачку информации ( ждать недолго).

5. Выберите пункт «LG» ( именно «LG», а не какой-то похожий).

5

6. Нажмите «Refresh», произойдет обновления списка устройств.

7. Далее необходимо выбрать профиль « IN - START Service Menu + EZ Adjust Service Menu » после чего нажать «Refresh».

7

8. Выберите пункт « mon » и установите новый профиль.

9

9. Зайдите в опции и произведите настройки, а именно в пункте"IR mode" установите "Method 1".

8

10. Если Вы все сделали правильно, то увидите следующее на экране телефона:

6

Если хотите попасть в меню IN - START , жмите 1. Если хотите попасть в сервисное меню EZ Adjust , жмите 2. Далее выполняем все как в способе 1 Разблокировка.

Выводы

В данной статье мы рассмотрели все способы того, как разблокировать USB на телевизоре LG . Как Вы смогли убедиться активация USB порта не такое сложное дело и внимательно ознакомившись с информацией, можно произвести процедуру самостоятельно.

Интерфейс USB

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

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

Ну и для начала основные моменты и характеристики. Интерфейс USB 2.0 поддерживает три режима работы:

Командует на шине USB хост (например, ПК), к которому можно подключить до 127 различных устройств. Если этого мало, то нужно добавить еще один хост. Причем немаловажно, что устройство не может само послать/принять данные хосту/от хоста, необходимо, чтобы хост сам обратился к устройству.

USB разъемы.

Помимо изображенных на рисунке, существуют также другие варианты исполнения USB-коннекторов, например, mini-USB и другие, ну это вы и так знаете 🙂

Отдельно стоит обсудить питание устройств USB. И тут также возможно несколько вариантов.

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

Разница тут заключается в том, что low-power устройства не могут потреблять больше, чем 100 мА. А устройства high-power должны потреблять не более 100 мА лишь на этапе конфигурации. После того, как они сконфигурированы хостом их потребление может составлять до 500 мА.

Кроме того, устройства могут иметь свой собственный источник питания. В этом случае они могут получать до 100 мА от шины, а все остальное забирать у своего источника.

С этим вроде бы все, давайте потихоньку переходить к структуре передаваемых данных. Все-таки это представляет для нас наибольший интерес!

Структура данных интерфейса USB.

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

Интерфейс USB, структура данных.

Каждая транзакция имеет следующий вид:

USB транзакции.

Структура Token пакета интерфейса USB.

Пакеты Token бывают трех типов:

Пакет In сообщает нашему USB-устройству, что хост готов принять от него информацию. Пакет Out, напротив, сигнализирует о готовности и желании хоста поделиться информацией. Пакет Setup нужен для использования управляющих передач. Ну а пакет Start Of Frame используется для того, чтобы инициировать начало кадра.

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

Структура Data пакета.

Тут все в принципе так же, как и в пакете Token, только вместо адреса устройства и номера конечной точки здесь у нас передаваемые данные.

Осталось нам рассмотреть Status пакеты и пакеты SOF:

Структура Status пакета.

Тут PID может принимать всего лишь два значения:

И, наконец, Start Of Frame пакеты:

Структура SOF пакета.

Давайте в качестве примера рассмотрим процесс записи данных в USB-устройство. То есть рассмотрим пример структуры кадра записи.

Кадр, как вы помните состоит из транзакций и имеет следующий вид:

Кадр интерфейса USB.

Что представляют из себя все эти транзакции? Сейчас разберемся! Транзакция SETUP:

Транзакция Setup.

Транзакция Out.

Аналогично при чтении данных из USB-устройства кадр выглядит так:

Кадр USB при чтении данных.

Транзакцию SETUP мы уже видели, посмотрим на транзакцию IN:

Транзакция In.

Как видите, все эти транзакции имеют такую структуру, как мы обсуждали выше 🙂

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

Читайте также: