Сайт https://dozeninfo.com только важные новости в мире. https://аконит-ут.рф утилизация масел моторных отработанных в москве.
Протокол шины USB ориентирован на сугубо подчиненные отношения: всеми транзакциями со всеми подключенными устройствами управляет хост — как правило, это компьютер (ПК) с контроллером USB. Никакого равноправия в отношениях на шине USB быть не может, однако в ряде случаев хотелось бы обойтись и без компьютера. Так, например, напрашивается непосредственное соединение цифровой фотокамеры и фотопринтера, обеспечивающее печать снимков без участия ПК. Практически все периферийные устройства USB имеют встроенные микроконтроллеры, и функциональные возможности этих микроконтроллеров неуклонно растут. Периферийное устройство, имеющее хотя бы простейшие средства диалога с пользователем (дисплей, отображающий пару строк текста, и несколько кнопок управления), вполне может взять на себя управляющие функции в плане организации транзакций USB. Функции такого мини-хоста можно упростить, если ориентироваться на двухточечное соединение пары устройств без промежуточных хабов. В этом случае мини-хосту остается лишь идентифицировать одно подключенное устройство, и, если ему известно, как это устройство можно использовать, сконфигурировать его. Задача планирования транзакций лишь с одним устройством гораздо проще общей задачи «большого» хоста и хост-контроллера. Именно на создание таких упрощенных связей пары устройств нацелено расширение OTG (On-The-Go).
Документ On-The-Go Supplement to USB 2.0 Specification (версия 1.0 вышла в июне 2003 года) определяет дополнения к USB 2.0, необходимые для организации упрощенных соединений пары устройств. Большая часть документа посвящена описанию разъемов, и терминология OTG тоже привязана к типам разъемов (собственно, пользователь видит разъемы на устройствах и просто пытается соединить их доступными кабелями). В OTG принято следующее деление устройств:
Двухролевое устройство может поддерживать и хабы (это усложняет его задачи); однако стандартные хабы USB не позволяют работать протоколам SRP и HNP.
В основной спецификации USB фигурируют три типа разъемов (гнезд и вилок): стандартные 4-контактные A и B, а также 5-контактный mini-B. Здесь допустимы кабели с вилкой A на одном конце и вилкой (mini)B на другом, а также неотсоединяемые от устройства кабели с вилкой A. В OTG введены 5-контактные вилки mini-A и универсальное 5-контактное гнездо mini-AB. Внутри вилки mini-A контакты 4 и 5 электрически соединены, в вилке mini-B контакт 4 свободен. Для облегчения различения разъемов принята цветовая маркировка: разъемы mini-A должны быть белого цвета, mini-B — черного, а гнезда mini-AB — серого.
В гнездо mini-AB двухролевого устройства может вставляться как вилка mini-A, так и вилка mini-B. При этом контакт 4 (ID) используется для идентификации типа подключенного устройства:
Протокол запроса сеанса, SRP (Session Request Protocol), предназначен для дополнительного энергосбережения: когда устройство-A не нуждается в обмене по шине, оно может снять питание Vbus. При этом устройство-B все-таки может «попросить внимания» — запросить сеанс связи. Здесь сеансом называется интервал времени, в течение которого двухролевое устройство подает достаточное (для работы) напряжение питания. Запрос может выполняться подачей положительных импульсов либо по линии Vbus, либо по сигнальным линиям (D+ или D-). Устройство-B должно использовать оба метода подачи запроса, устройство-A может распознавать любой из них (как удобнее его разработчику).
Протокол согласования роли хоста, HNP (Host Negotiation Protocol), позволяет устройству-A и устройству-B поменяться ролями во время сеанса связи (если они оба двухролевые). Протокол может быть инициирован, только если устройство-A пошлет устройству-B специальный разрешающий запрос, предварительно убедившись, что устройство-B протокол HNP поддерживает. Возможность поддержки протоколов HNP и SRP сообщается устройством-B в специальном дескрипторе OTG-устройства.
Устройство-B может запросить управление шиной (стать хостом на время), когда устройство-A прекращает активность (переводит шину в состояние покоя). Для этого устройство-B отключается от шины (отключает свой «подтягивающий» резистор от линии D+). Устройство-A расценивает это как запрос смены роли и подключает свой «подтягивающий» резистор к линии D+. Теперь устройство-B может начинать транзакции, управляя шиной. Когда оно захочет отдать управление шиной, оно прекращает активность и подключает свой «подтягивающий» резистор к линии D+. Устройство-A это расценивает как возврат управления и отключает свой «подтягивающий» резистор от линии D+ — исходные роли, определенные по типу разъема, восстановлены.
Дескриптор OTG (длина 3, тип 9) должен присутствовать во всех конфигурациях OTG-устройства, он считывается обычным запросом Get_Descriptor. Дескриптор OTG содержит лишь один байт атрибутов, в котором бит 0 указывает на поддержку SRP, бит 1 — на поддержку HNP (остальные биты — нулевые).
Убедившись в поддержке протокола HNP, устройство-A, еще до выбора конфигурации устройства-B, должно сообщить ему свое отношение к HNP. Для этого служат запросы к устройству Set_Feature (bmRequestType = 00000000b, bRequest = 3):