NexxDigital - компьютеры и операционные системы


Лекция по анатомии мобильных устройств. Чт о такое USB OTG в смартфоне и планшете?

Многие читатели портала СмартПульс.Ру, встречая в обзорах фразу «USB OTG работает» или наоборот, «USB OTG не работает», интересуются, что такое USB OTG, как им пользоваться и какая вообще от него польза?

Спецификация USB OTG была создана с целью соединения электронных устройств между собой для передачи данных через порт USB, минуя компьютер. OTG расшифровывается как “On-the-Go” («На ходу»).

Эта спецификация имеет свой логотип:

Порт USB OTG используется не только в смартфонах и планшетах. Он используется также и в некоторых других устройствах, например, в плеерах, автомагнитолах, телевизорах, принтерах. К устройствам, оснащенным USB OTG, можно напрямую подключать USB- носители с мультимедийным контентом и слушать музыку, смотреть фильмы, или (в принтерах) распечатать изображения и документы. Принтеры с такой возможностью обычно именуются как «принтеры с прямой печатью».
В качестве п одключаемых к портам USB OTG носителей могут выступать как обычные "флешки", так и более сложные устройства, например, фотоаппараты.

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

В то же время в смартфонах и планшетах с портом USB OTG этот порт – «двунаправленный», то есть может использоваться как для подключения пассивных устройств, так и для соединения с компьютером (в этом случае смартфон или планшет сами выступают в роли пассивного устройства).

В соответствии с принятой терминологией, активное USB устройство именуется USB-хостом. И именно таковыми становятся смартфоны и планшеты, когда к ним через USB OTG подключаются "флешки" и другие устройства.

Теперь следующий вопрос: каким образом при соединении с каким-то другим устройством через USB OTG смартфон (планшет) «догадается», как ему работать – как USB-хост или как пассивное устройство?

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

Рассмотрим переключение в режим хоста на примере стандартного кабеля-переходника USB OTG для разъема micro-USB. Кстати, из-за наличия дополнительного контакта этот USB-разъём имеет не 4, а 5 контактов. Посмотрите на схему этого переходника:

На схеме в верхнем разъеме (micro-USB) за режим OTG отвечает контакт номер 4.
При соединении контактов 4 и 5 в смартфоне (планшете) активизируется режим хоста, и он может управлять подключенными устройствами. Одновременно смартфон (планшет) подает на контакт 1 питание +5 Вольт, которым запитывается подключаемое устройство (если оно не имеет собственного источника питания). Соответственно, подключение устройства повышает нагрузку на систему питания смартфона; и это повышение может быть значительным, если подключается, например, портативный внешний жесткий диск.

Это соединение контактов 4 и 5 осуществлено "жестко" в кабеле-переходнике USB OTG - они просто "намертво" спаяны между собой.

В «древности» народные умельцы «потрошили» кабели и удлинители с разъемами USB, и путем пайки превращали их в переходники для USB OTG:



(фотография взята отсюда: http://r-nedo.livejournal.com/6598.html)

Но теперь в таком "шаманстве" нет необходимости: кабели-переходники USB OTG можно найти во многих магазинах и стоят они не дорого.

Выглядит типовой кабель-переходник USB OTG для разъема micro-USB вот так:



(кликнуть для увеличения)

Но в последнее время стали появляться смартфоны и планшеты не с разъемом micro-USB, а с разъемом USB Type-C. Для таких разъемов тоже существуют кабели-переходники USB OTG, но по причине новизны найти их в магазинах намного сложнее.

А выглядят они так:


(кликнуть для увеличения)

Теперь, когда мы разобрались с теорией, перейдем к практике.

Все ли смартфоны и планшеты поддерживают USB OTG?

Нет, не все. Как правило, дорогие устройства поддерживают USB OTG, а дешевые (бюджетные) – могут поддерживать, а могут и не поддерживать. Обычно это указывается в технических характеристиках устройства, но не всегда. В таком случае помогает чтение форумов и обзоров; на крайний случай – собственноручная проверка. Внимание! Во всех обзорах на портале сайт тестируемые устройства проверяются на функционирование USB OTG!

Особняком стоят планшеты на полноценной операционной системе Windows. Как правило, в них имеется не порт USB OTG, а настоящий полноценный и полноразмерный порт USB 2.0 или 3.0; а то и несколько таких портов. В этом случае необходимости в USB OTG просто нет.

Бывают и в Windows-планшетах особенности, когда все-таки в них нет полноразмерных USB-портов. Тогда в них обязательно должен быть порт micro-USB или USB Type-C. И вот в этих случаях даже для Windows-планшета может потребоваться кабель-переходник USB OTG!

Какие устройства можно подключать к смартфонам и планшетам через USB OTG?

Начнем с простого случая: Windows-планшет. К нему можно подключать всё, на что существуют драйвера, включая принтеры, веб-камеры и десятки других типов устройств. Только следите, чтобы планшет по питанию не перегрузился.

Теперь – к более сложному: смартфонам и планшетам на Android.

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

После подключения флешки к смартфону (планшету) она появляется как "Съемный накопитель" в разделе "Хранилище и USB- накопители" (в Android 6) или в разделе "Память" (более ранние версии):


(кликнуть для увеличения)

Соответственно, открывается доступ и через файловые менеджеры.

Наиболее вероятно (но уже не на 100%), что будут работать «флешки» на 64 Гб и более, карт-ридеры и портативные плееры.

Затем – портативные жесткие диски. С ними ситуация усугубляется тем, что от смартфона (планшета) требуются "двойные усилия": надо одновременно и «осилить» его по питанию; и к тому же распознать его файловую систему (чаще всего – NTFS).

И, наконец, самые бесперспективные случаи – сканеры, принтеры, и даже свои «собратья» - другие смартфоны и планшеты на Android-е. Да, уважаемые читатели, «себе подобных» Android-устройства при подключении через USB OTG очень не любят.

Еще интересный вопрос: существуют ли устройства, которые можно подключить к смартфону/планшету напрямую, без кабеля-переходника?

Да, существуют в природе «флешки» с двухстандартными соединителями: «обычный» USB в качестве первого и micro-USB или USB Type-C в качестве второго. Выглядят они примерно так:

Но распространены «двухстандартные» флешки довольно мало, и лучше на них не ориентироваться.

Сфера применения USB OTG .

Как уже упоминалось выше, если в смартфоне или планшете есть функционирующий порт USB OTG, то с ним без проблем будут работать мышки и клавиатура. Но такой вариант применения USB OTG не получил распространения. Тем более, что, например, настройка переключения языков ввода комбинацией клавиш на физической клавиатуре - это тот еще процесс. :)

Наибольшее распространение получил порт USB OTG для подключения внешних накопителей с теми файлами, которые не обязательно должны постоянно присутствовать в смартфоне (планшете). Если, например, файлы с оффлайн-картами местности должны постоянно находиться в смартфоне (во внутренней памяти или на micro-SD карте); то коллекция фильмов или фотоальбомов может храниться на флешке и подключаться по мере необходимости.

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

Еще одно, в некоторой степени "нестандартное" применение мобильных устройств c USB OTG - подзарядка других устройств (использование в качестве Power Bank).
Как уже отмечалось выше, при активации порта USB OTG в кабель-переходник подается напряжение +5 Вольт.
Соответственно, если к переходнику подключить другое устройство, то оно будет заряжать свой аккумулятор от "основного" смартфона (планшета)!
Но надо помнить о разумных ограничениях при использовании такой возможности. Главное правило состоит в том, что устройство с "большим" аккумулятором должно подпитывать устройство с "маленьким"; а не наоборот. Иначе Вы легко можете "посадить" устройство с "маленьким" аккумулятором, толком не зарядив устройство с "большим".

Ваш Доктор.
14.01.2017

Несколько лет назад никто и представить себе не мог, что в недалёком будущем компьютерная техника будет вытесняться мобильными гаджетами. Не так давно, в мае 2013 года, произошёл «перелом» рынка компьютеров и мобильных девайсов, таких как планшетные ПК, смартфоны и трансформеры (планшеты с подключаемой клавиатурой) в пользу последних. Да, в это трудно поверить, но, по данным департамента закупок «Евросети», люди действительно чаще покупают современные планшеты, чем полноценные ПК. Почему это происходит?

Дело в том, что передовые устройства на базе "Android" обладают внушительным функционалом и способны заменить ряд задач, с которыми ранее мог справиться только компьютер. Например, используя смартфон или планшет, пользователь может просматривать веб-страницы, смотреть фильмы, играть в игры, набирать текст. Кроме того, дешёвые модели стоят всего несколько сотен долларов, а значит, позволить себе такое устройство может практически каждый. Конечно, для сложных задач, таких как программирование, и фото, сложные математические расчёты, больше подойдёт ПЭВМ, но ведь не все этим занимаются.

Что «умеют» мобильные девайсы?

Мощность современных гаджетов весьма впечатляет. Многие из них обладают процессорами с четырьмя ядрами и частотой свыше двух ГГц, несколькими гигабайтами оперативной памяти, отличным видеоускорителем, способными обрабатывать игры с невероятно красивой графикой и т. д. Всё это позволяет проигрывать HD-видео, обрабатывать снимки с высококачественных камер, играть в игры и многое другое. Для хранения контента смартфоны оснащают встроенными жесткими дисками (часто 64 Гб), кроме того, почти все модели поддерживают флеш-карты, которые могут расширить память гаджета в несколько раз! Не впечатляет? Давайте пойдём дальше! Практически любой современный девайс можно подключать к телевизору, принтеру, фотоаппарату, флешке и другой технике. Как? Самым распространённым способом является соединение устройств по USB OTG-стандарту. Конечно, есть и другие способы, например Wi-Fi, NFC, Bluetooth, но это беспроводные стандарты, которые, хоть и являются более удобными, не так востребованы из-за высокой цены устройств, поддерживающих их.

Что же такое USB OTG?

Это расширение всем известного стандарта связи USB 2.0, которое предназначено для того, чтобы пользователь смог с лёгкостью устанавливать связь между без использования компьютера. Что весьма и весьма удобно. Полное название этой технологии - OTG USB 2.0, как уже можно было догадаться.

А в чем загвоздка-то?

Технология USB OTG требует вложений средств со стороны производителя. Она нуждается в более «навороченном» гнезде для подключения USB-провода. Кстати, часто в этот разъём подключается и зарядное устройство. Естественно, гаджеты, идущие в комплекте с таким оборудованием, стоят дороже. На так называемых «бюджетках» покупатель вряд ли обнаружит данную функцию. В то же время, практически все девайсы среднего уровня уже оснащаются USB OTG.

Куда идти и где искать?

USB OTG-кабель крайне редко можно найти в коробке с новеньким гаджетом. Но расстраиваться не стоит, ибо практически в любом более-менее солидном магазине электроники вам предоставят большой выбор таких кабелей. Там вы найдёте как китайские «погремушки», так и достаточно хорошо себя зарекомендовавшие адаптеры от известных производителей, таких как Samsung, LG и Sony.

Как выбрать переходник, и всегда ли он необходим?

Прежде всего, стоит обратить внимание на тип гнезда в вашем смартфоне или планшете. Чаще всего это маленький разъём 2 на 7 мм, который называется Micro-USB. Необходимый в таком случае кабель, соответственно, будет называться Microusb USB OTG. Более старые девайсы могут быть оснащены mini-USB. Это чуть большее физически гнездо, которое требует и другого кабеля. Вторым немаловажным моментом является выбор длинны. Подумайте, зачем вам USB OTG-провод? В случае если вы будете подключать к смартфону такие девайсы, как флешки и другие накопители, длинный кабель брать не следует, так как лишний провод постоянно будет вам мешать. Если же вы хотите подключить гаджет, например, к телевизору, то, возможно, стоит подумать о более длинном варианте, чтобы не приходилось постоянно подходить к телевизору с целью перемотать или поставить на паузу фильм. Кроме того, длинный кабель необходим, если вы собираетесь играть в игры на смартфоне, выводя изображение на телевизор (чтобы не пришлось управлять героями, сидя на расстоянии 20 см от телеэкрана). Стоит упомянуть, что в некоторых планшетах иногда встречается даже стандартное USB-гнездо, такое, как на компьютере. В таком случае переходник и вовсе не требуется, ведь периферическое устройство можно подключить прямо к планшету.

Что же собой представляет адаптер USB OTG?

Это обычный USB-провод, у которого с одной стороны разъём для подсоединения к смартфону или планшетному ПК, а с другой - фишка, к которой можно подключать полноценный USB 4 на 12 мм. В принципе, USB OTG-кабель просто увеличивает физические размеры разъёма для подключения устройств, делая его стандартным. Почему же тогда суперсовременные устройства изначально не оснащаются полноценными USB? Дело в том, что каждый производитель пытается сделать гаджет как можно более тонким, компактным и, как следствие, мобильным. Установка разъёмов больших размеров попросту нецелесообразна. Лишь поэтому и были придуманы упомянутые выше mini- и micro-USB-разъёмы.

Устройства, которые можно подключить к мобильным девайсам

Функция USB HOST OTG однозначно позволяет подключать флешки объёмом до 32 Гб практически к любому гаджету. Однако с большими накопителями, такими как переносные жёсткие диски, объём которых может доходить до двух терабайтов, могут справится лишь мощные устройства. Принтеры и фотоаппараты подключаются без проблем, но часто для этого необходимо установить дополнительное ПО. Мыши, клавиатуры, джойстики, даже можно так же подсоединить к современным гаджетам. Соединение с телевизором или монитором устанавливается посредством системы из двух кабелей. Помимо Micro-USB OTG нужен ещё и HDMI-кабель, либо Micro-USB-HDMI-переходник. Интересно то, что ничто не мешает подключить одновременно несколько устройств к планшетному ПК, используя такой коннектор.

Комплекс устройств современного человека

Ну что же, вот мы и добрались до самого интересного! Во что можно превратить ни на что, кроме развлечений, негодный (как многие думают) планшет или смартфон? В практически полноценный компьютер, обладающий большим количеством преимуществ над простым настольным ПК! Итак, нам понадобится смартфон или планшет, OTG-кабель, и куча периферических устройств. Стоит упомянуть, что китайские «побрякушки» вряд ли выдержат нагрузку от того комплекса, что будет описан ниже. По этой причине рекомендуется обратить внимание на адаптеры производителей с мировым именем. Например, Samsung USB OTG-кабеля и USB-разветвители Apacer или Asus.

Ну что же, начнём? Необходимо подключить OTG-кабель к девайсу, к проводу - разветвитель, а к нему уже клавиатуру, мышь, принтер, монитор и т. д. Словом, всё, что душа пожелает. В итоге мы получим альтернативу компьютеру!

Какие гаджеты «потянут» такую нагрузку?

Устройства, которые пользователь намеревается использовать выше описанным способом, должны быть мощными. Но это не основной параметр выбора. Да, лишнее или гигабайт оперативной памяти никому не помешают, но они бесполезны, если USB-порт поддерживает подключение лишь одного устройства. Обязательно перед покупкой загляните в инструкцию по обслуживанию и найдите соответствующую информацию. Выбор девайса осложняется ещё и тем, что, ввиду пока ещё небольшого количества энтузиастов, пытающихся «создать» полноценный компьютер из мобильных гаджетов, продавцы чаще всего бывают крайне плохо осведомлены в целом о функции OTG, не говоря уже о точной спецификации конкретного порта. К сожалению, в большинстве случаев покупателю придётся самому «рыться» в инструкции, но делать это обязательно, иначе, как говорится, можно остаться с носом.

Плюсы и минусы альтернативного решения

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

Цена вопроса

Напоследок стоит отметить, что цена многих гаджетов весьма скромная. Существуют даже модели, обладающие приличным функционалом с ценником всего 200 долларов. Конечно же, это будут китайские или южнокорейские девайсы, но не стоит этого пугаться. В последнее время их продукция стала намного более надёжной, и слово "Китай" в магазине электроники не должно пугать осведомлённого покупателя. Современный лидер в сфере мобильных устройств, однозначно, Samsung и Apple. Несмотря на то что топовые устройства этих фирм обладают разными операционными системами, функционал у них схож, а вот со стоимостью ситуация иная. Samsung Galaxy S5, например, можно найти за 25 тысяч рублей, а то и меньше; похожая ситуация и с планшетами. Что же касается Apple, то их продукция почему-то очень дорогая, особенно у нас, в России. Цены на планшеты могут доходить до 40 тысяч рублей, а то и больше. Происходит это из-за того, что товар везут к нам из Америки, и продавцам приходится, помимо расходов на транспорт, платить ещё и пошлину.

Современные стандарты

Ещё в 2008 году была представлена USB 3.0-спецификация. Это - модификация имеющейся технологии передачи данных USB 2.0. Она позволяет намного быстрее передавать информацию, однако требует большей силы тока. К сожалению, данная технология была принята довольно-таки вяло. Только через три года упомянутый стандарт стал массово применяться в отношении компьютеров. До мобильных девайсов очередь дошла совсем недавно. Поэтому устройств, совместимых с третьим стандартом USB, пока немного. Конечно же, существуют и OTG USB 3.0-кабели, но их найти не так просто. Естественно, если только есть возможность, желательно выбрать именно этот стандарт проводной связи, причём это относится и к простым компьютерам. USB 2.0 рано или поздно выйдет из оборота, точно так же, как и лазерные диски, это лишь вопрос времени. Оговоримся лишь, что не стоит зацикливаться на этом пункте. Выбирайте гаджеты с USB 3.0, несмотря на то, что они стоят намного дороже альтернативной версии. Но! За эту характеристику можно отдать от силы 500 рублей, если же за функцию производитель «накрутил» больше, смело выбирайте что-нибудь другое, ведь вышеупомянутые стандарты полностью совместимы друг с другом и отличаются лишь скоростью передачи информации.

Заключение

Рынок мобильных устройств обогнал даже рынок компьютеров. Технологии продолжают развиваться. Количество ядер растёр, смартфоны оснащаются дисплеями невероятного разрешения, которое порой превышает даже HD, внутренняя память может быть равна 64 Гб, оперативная - четырём. И это далеко не предел! Широкие и смартфонов скоро станут немыслимыми, ведь уже сейчас «коробочка», легко умещающаяся в карман, может заменить компьютер, развлекать нас кино и музыкой, указывать нам дорогу посредством GPS и многое другое. А различные устройства, такие как USB OTG-переходник, помогут ещё больше расширить функционал гаджетов.

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

Тема сегодняшней статьи - USB-host (USB-хост) . Это весьма примечательная функция, которой оснащается достаточно большое количество устройств (в основном, правда, довольно дорогих), и рассказать о ней определенно стоит. Также я расскажу и о функции USB OTG - фактически, более современной разновидности USB-хоста.

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

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

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

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

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

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

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

Стоит отметить, что сейчас имеются в продаже устройства и с поддержкой так называемого USB OTG . Я бы сказал даже, что USB OTG сейчас встречается в устройствах довольно часто, чаще, чем классический USB-хост. В чем основное отличие USB OTG? В том, что USB OTG не предполагает наличие отдельного классического полноразмерного порта USB. Для подключения периферийных устройств используется порт microUSB или miniUSB, который, вообще говоря, служит главным образом для связи устройства с компьютером. На устройстве с USB OTG этот порт фактически совмещает в себе функции USB-host (подключение периферии) и USB-device (подключение к компьютеру).

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

И тут опять же стоит отметить, что не на всех устройствах USB OTG реализовано хорошо. Где-то поддержка USB OTG может быть заявлена, но ввиду отсутствия необходимого программного обеспечения она не работает. Пример - ридеры Onyx Boox. Также стоит отметить, что внешние жесткие диски по протоколу USB OTG подключить вряд ли удастся: они потребляют слишком много энергии; планшет «прокормить» их просто не в состоянии.

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

Под конец стоит ответить на вопрос: почему USB OTG сейчас популярнее, чем обычный USB-host? Ответ, на самом деле, довольно прост: USB OTG позволяет уменьшить толщину и вес устройства. В случае с классическим USB-host’ом в устройство надо встроить полноразмерный USB-порт (соответственно, увеличивается толщина) и обычный mini/micro-USB порт - для подключения к компьютеру (увеличивается и итоговый вес). В случае с USB OTG надо установить только один mini/microUSB-порт, просто многофункциональный - работающий и на вход, и на выход. Более того, USB OTG отличается более низким энергопотреблением, хотя и не позволяет поэтому подключать такие прожорливые устройства, как внешние жесткие диски.

Но USB OTG не лишен и недостатков, главным из которых является необходимость покупки переходника и постоянной его переноски с собой.

Посмотреть, поддерживает ли интересующее вас устройство опцию USB-host или USB OTG, можно на странице описания устройства в разделе «Технические характеристики» («Спецификации»). Описание, разумеется, можно найти на сайте производителя устройства, а также на сайтах многих магазинов.

У каждой шины USB должен быть один (и только один!) хост — компьютер с контроллером USB. Однако понятие компьютер отнюдь не означает лишь привычные варианты настольных, напольных, портативных компьютеров. Компьютер — это сочетание процессора, памяти и периферийных устройств; в таком понимании в большинстве современных устройств присутствуют встроенные компьютеры. Если «интеллекта» этого компьютера и его возможностей диалога с пользователем оказывается достаточно, то он может взять на себя роль хоста USB. Такой вариант хоста рассматривается в последнем параграфе данной главы.

«Классический» хост USB делится на три основных уровня:

  • интерфейс шины USB обеспечивает физический интерфейс и протокол шины. Интерфейс шины реализуется хост-контроллером, имеющим встроенный корневой хаб, обеспечивающий точки физического подключения к шине (гнезда USB типа «A»). Хост-контроллер отвечает за генерацию микрокадров. На аппаратном уровне хост-контроллер обменивается информацией с основной памятью компьютера, используя прямое управление шиной (bus-mastering) с целью минимизации нагрузки на центральный процессор;
  • система USB, используя хост-контроллер(ы), транслирует клиентское «видение» обмена данными с устройствами — запросы IRP (I/O Request Packet — пакет запроса ввода/вывода) — в транзакции, выполняемые с реальными устройствами шины. Система отвечает и за распределение ресурсов USB — полосы пропускания и мощности источников питания (для устройств, питающихся от шины). Система состоит из трех основных частей:
  1. драйвер хост-контроллера — HCD (Host Controller Driver) — модуль, привязанный к конкретной модели контроллера, обеспечивающий абстрагирование драйвера USB и позволяющий в одну систему включать несколько разнотипных контроллеров;
  2. драйвер USB — USBD (USB Driver) — обеспечивает основной интерфейс (USBDI) между клиентами и устройствами USB. Интерфейс HCDI (Host Controller Driver Interface) между USBD и HCD спецификацией USB не регламентируется. Он определяется разработчиками ОС и должен поддерживаться разработчиками хост-контроллеров, желающих иметь поддержку своих изделий конкретными ОС. Клиенты не могут пользоваться интерфейсом HCDI; для них предназначен интерфейс USBDI. USBD обеспечивает механизм обмена в виде пакетов IRP, запрашивающих транспортировку данных по заданному каналу. Кроме того, USBD отвечает за некоторое абстрактное представление устройства USB клиенту, которое позволяет выполнять конфигурирование и управление состоянием устройств (включая и стандартное управление через конечную точку «0»). Реализация интерфейса USBDI определяется операционной системой; в спецификации USB излагаются только общие идеи;
  3. программное обеспечение хоста реализует функции, необходимые для функционирования системы USB в целом: обнаружение подключения и отключения устройств и выполнение соответствующих действий по этим событиям (загрузки требуемых драйверов), нумерацию устройств, распределение полосы пропускания и потребляемой мощности, управление состоянием энергопотребления и т. п.
  • клиенты USB — программные элементы (приложения или системные компоненты), взаимодействующие с устройствами USB. Клиенты могут взаимодействовать с любыми устройствами (наборами их доступных конечных точек, входящих в выбранные интерфейсы), подключенными к системе USB. Однако система USB изолирует клиентов от непосредственного обмена с какими-либо портами (в пространстве ввода/вывода) или ячейками памяти, представляющими интерфейсную часть контроллера USB.

В совокупности уровни хоста предоставляют следующие возможности:

  • обнаружение подключения и отсоединения устройств USB;
  • манипулирование потоками управления между устройствами и хостом;
  • манипулирование потоками данных;
  • сбор статистики активности и состояний устройств;
  • управление электрическим интерфейсом между хост-контроллером и устройствами USB, включая управление электропитанием.

Программная часть хоста в полном объеме реализуется операционной системой. До загрузки ОС может функционировать лишь усеченная часть ПО USB, поддерживающая только устройства, требующиеся для загрузки. Так, в BIOS современных системных плат имеется поддержка клавиатуры USB, реализующая функции сервиса Int 9h. После загрузки системы USB эта «дозагрузочная» поддержка игнорируется — система начинает работу с контроллером «с чистого листа», то есть со сброса и определения всех подключенных устройств. В спецификации PC’2001 выдвигается ряд требований к BIOS, в частности требование поддержки загрузки ОС с устройств USB.

Хост-контроллер является аппаратным посредником между устройствами USB и хостом. В настоящее время имеется три спецификации хост-контроллеров, каждой из которых соответствует свой комплект драйверов хост-части:

  • UHC (Universal Host Controller) — универсальный хост-контроллер для шины USB 1.x, разработанный Intel;
  • OHC (Open Host Controller) — «открытый» хост-контроллер для шины USB 1.x, разработанный Compaq, Microsoft и National Semiconductor;
  • EHC (Enhanced Host Controller) — расширенный хост-контроллер для поддержки высокой скорости шины USB 2.0.

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

Хост-контроллер UHC от Intel появился в микросхеме PIIX3 (мост PCI-ISA) чипсетов системных плат для процессоров Pentium и используется во многих последующих изделиях Intel. Это FS/LS хост-контроллер, который большую часть забот по планированию транзакций перекладывает на ПО, — драйвер контроллера UHC (UHCD). Интерфейс контроллера UHC описан в документе Universal Host Controller Interface (UHCI) Design Guide, версия 1.1 вышла в 1996 году.

Драйвер UHC формирует для хост-контроллера дескрипторы, называемые в UHCI «дескрипторами передач» (TD — Transfer Descriptor), на самом деле описывающие каждую шинную транзакцию. Напомним, что в терминах спецификации USB одна передача (transfer) может состоять из нескольких транзакций, а в управляющих передачах используется еще и свой тип транзакции для каждой фазы. Для транзакций передач с гарантированной доставкой дескрипторы TD приходится организовывать в очереди. Очереди нужны для таких передач, поскольку заранее не известно, сколько раз придется пытаться их исполнить. Продвижение очереди возможно только по успешному выполнению транзакции, находящейся в голове очереди, — это правило обеспечивает гарантированный порядок (в пределах своей очереди) доставки пакетов. Каждая очередь имеет свой заголовок (QH). Изохронные передачи исполняются всегда однократно (здесь нет гарантированной доставки), что упрощает их планирование. Драйвер размещает дескрипторы TD и QH в памяти и связывает их между собой в соответствии с планом выполнения транзакций в каждом кадре. Драйверу UHC приходится составлять детальное «расписание» для каждого будущего кадра, для чего используется список Frame List на 1024 кадра. Хост-контроллер обходит списки дескрипторов, начиная с точки, на которую указывает Frame List для текущего кадра, и выполняет соответствующие транзакции. Результат исполнения транзакции помечается в ее дескрипторе, отработанная транзакция помечается как «неактивная», и контроллер, встретив ее при очередном обходе, просто переходит к следующей. Драйвер должен периодически просматривать дескрипторы, извлекая уже отработанные и передавая результаты выполнения клиентскому драйверу. Логика работы контроллера подразумевает, что одному запросу ввода/вывода (IRP) от клиентского драйвера может соответствовать несколько «передач» — элементов очереди. Драйвер UHC разбивает запрос на транзакции и помещает дескрипторы этих транзакций в соответствующую очередь, а очередь включает в ближайшие планы. Драйвер отвечает за балансировку загрузки шины в каждом кадре, в частности, за гарантию предоставления не менее 10% полосы для транзакций управляющих передач. Планированием кадров также обеспечивается требуемая частота обращений к точкам периодических передач.

Контроллер UHC является активным устройством PCI (Bus-Master). Основное взаимодействие драйвера с хост-контроллером происходит с помощью дескрипторов, расположенных в памяти. Контроллер имеет регистры (в пространстве ввода/вывода), с помощью которых можно управлять его поведением: выполнять сброс, глобальную приостановку и пробуждение, подстраивать частоту кадров, управлять запросами прерываний, управлять портами встроенного корневого хаба. Контроллер позволяет работать в отладочном режиме, останавливаясь после выполнения каждой транзакции.

В процессе отработки плана контроллер считывает из памяти дескрипторы и данные, необходимые для начала транзакции. Как только в FIFO-буфер контроллера из памяти поступает информация, достаточная для начала транзакции, контроллер начинает транзакцию на шине USB. В процессе ее исполнения производится передача данных, после завершения контроллер модифицирует дескрипторы в памяти в соответствии с условиями завершения транзакции. В процессе отработки транзакции могут возникать ошибки переполнения или переопустошения FIFO-буфера, связанные с перегрузкой контроллера системной памяти или шины PCI. Эти серьезные ошибки инициируют аппаратные прерывания. В состав хостконтроллера входит и корневой хаб на 2 или более порта.

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

В контроллере UHC имеется специальная поддержка традиционного интерфейса клавиатуры и мыши через контроллер 8042 — перехват обращений к портам 60h и 64h пространства ввода/вывода. При разрешенной эмуляции по обращениям ПО к этим портам UHC вызывает системное прерывание SMI (System Management Interrupt), обрабатывающееся в ПК на процессорах x86 в режиме SMM (System Management Mode), невидимо для обычных программ. Обработчик SMI, перехватывающий эти обращения, формирует последовательности действий, необходимые для их исполнения с помощью клавиатуры и (или) мыши USB. Единственное исключение делается при перехвате команд, управляющих вентилем GateA20, — вместо генерации SMI манипуляции этим вентилем выполняются аппаратно (как это давно делается и в 8042). Эта аппаратная поддержка включается установкой соответствующих параметров CMOS Setup.

Большое неудобство работы с UHC возникает из-за необходимости программного просмотра всех дескрипторов передач на предмет выявления завершенных. Дескрипторы завершенных передач необходимо программно извлекать из цепочек, сохраняя связанность элементов. Планирование транзакций (составление списков дескрипторов и заголовков) — тоже достаточно трудоемкая задача для драйвера. Очевидно, преследовалась цель упрощения аппаратных средств хост-контроллера. Однако это может обернуться зависимостью эффективной производительности шины USB от мощности и загрузки центрального процессора. Такой подход к организации ввода/вывода трудно назвать эффективным.

Драйвер в системной памяти создает список кадров Frame List, состоящий из 1024 элементов. Каждый элемент этого списка содержит 32-битный указатель на связанный список структур данных, по которым контроллер выполняет транзакции в данном кадре. Хост-контроллер имеет регистр базового адреса списка кадров, указывающий на начало списка. Текущий номер отрабатываемого элемента определяется десятью младшими битами счетчика кадров, находящегося в контроллере и инкрементируемого каждую миллисекунду. Период счета кадров можно немного варьировать, изменяя константу, занесенную в регистр модификации длительности кадра (SOF Modify Register), что обеспечивает возможность подстройки частоты кадров для синхронизации изохронных обменов.

Элемент списка кадров может указывать либо на дескриптор изохронной передачи TD (Transfer Descriptor), либо (если в данном кадре изохронный обмен не планируется) на заголовок очереди QH (Queue Head). Если в данном кадре вообще не планируются передачи, то в элементе устанавливается признак-«заглушка» T (Terminate, конец связанного списка, в данном случае — пустого). Еще раз напомним, что здесь слово «передача» (Transfer, согласно спецификации UHCI) употребляется в узком смысле — она соответствует одной транзакции (передаче не более одного пакета данных). Элемент (32-битное слово) имеет формат, приведенный на рисунке ниже. Поле FLLP (Frame List Link Pointer) — указатель на элемент; бит T — признак последнего элемента (при T = 1 указатель FLLP недействителен). Бит Q задает класс связанного элемента, на который указывает FLLP (0 — TD, 1 — QH).

Для каждого кадра из списка устанавливается своя цепочка дескрипторов изохронных передач (возможно и пустая), последний из этой цепочки должен ссылаться на цепочку заголовков очередей. Цепочки заголовков QH могут быть общими для группы кадров или даже для всех кадров списка. Общая идея построения очередей состоит в том, чтобы создавать свою очередь для каждого установленного канала (для всех сконфигурированных точек, кроме изохронных). «Дежурный» метод обслуживания — по горизонтали, тогда после выполнения транзакции с одной точкой контроллер перейдет к другой точке (другой очереди). Связывание TD и QH через указатели позволяет формировать произвольные конфигурации переходов от одной очереди к другой и даже делать петли — в последнем случае возможно, что с одной точкой в кадре успеют пройти несколько транзакций. Однако это нетипичный способ планирования. Если очередей много (установлено много каналов), то они распределяются по кадрам (из 1024-элементного списка) так, чтобы цепочка каждого кадра обязательно прошла по горизонтали до конца. Это можно спланировать, поскольку максимальное время для отработки одного элемента каждой очереди (как и изохронных транзакций) заранее известно (оно определяется типом передачи, максимальным размером пакета и скоростью устройства, что известно системе USB). При необходимости «горизонтальную справедливость» можно нарушить, задав вертикальный порядок обслуживания, — контроллер, успешно обработав из очереди передачу с признаком V = 1, перейдет к следующему дескриптору из этой же очереди, а не к следующей очереди.

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

Дескриптор передачи (TD) состоит из 32 байтов, из которых хост-контроллер использует только первые четыре 32-битных слова DW0-DW3. Слова DW4-DW7 зарезервированы для использования драйвером UHC (для организации «сборки мусора» — повторного использования отработанных областей). Формат дескриптора передачи приведен на рисунке ниже. Серым цветом выделены поля, модифицируемые хост-контроллером.

В слове DW0 поле Link Pointer аналогично полю FLLP, а биты T и Q аналогичны одноименным битам элемента списка кадров. Бит V — метод обслуживания TD (1 — в глубину, 0 — в ширину).

Слово DW1 используется для управления и определения состояния выполнения передачи, модифицируется хост-контроллером. Поле ActLen — действительная длина переданных данных; поле Status — состояние выполнения передачи:

длина переданных данных; поле Status — состояние выполнения передачи:

  • бит 23: Active — «надо исполнять», устанавливается драйвером, сбрасывается контроллером по успешному исполнению или исчерпанию лимита повторов;
  • бит 22: Stalled — точка ответила пакетом STALL;
  • бит 21: Data Buffer Error — ошибка буфера данных (переполнение или переопустошение FIFO при выполнении транзакции), транзакция остается активной (при переопустрошении контроллер генерирует пакет с ошибочным CRC, при переполнении не отвечает подтверждением);
  • бит 20: Babble — при выполнении данной транзакции обнаружена «болтливость» устройства (оно отключается и устанавливается бит Stalled);
  • бит 19: NAK — получение соответствующего ответа (в транзакции SETUP получение NAK устанавливает и признак ошибки тайм-аута);
  • бит 18: CRC/Time Out Error — обнаружена ошибка передачи (CRC или таймаут);
  • бит 17: Bitstuff Error — обнаружена ошибка вставки бит.

Биты используются для управления передачей. Бит IOC заказывает прерывание по исполнению (прерывание генерируется в конце кадра, даже если транзакция уже неактивна, выборка ее дескриптора вызовет прерывание). Бит ISO — признак изохронной передачи (указание не делать повторных попыток). Бит LS — признак LS-устройства, использовать преамбулу перед передачей. Поле C_ERR — счетчик повторных попыток, декрементируемый по каждой ошибке. Переход в 1 или 0 вызывает перевод дескриптора в неактивное состояние. Если драйвер устанавливает нулевое значение, то число повторов неограниченно. Бит SPD — детектор короткого пакета: если в транзакции IN, стоящей в очереди, успешно принято меньше данных, чем ожидалось, то в конце кадра вырабатывается условие прерывания.

В слове DW2 содержится информация для выполнения транзакции: Packet ID — тип используемого маркера IN (69h), OUT (E1h) или SETUP (2Dh); Device Address— адрес устройства USB; EndPt — номер и направление конечной точки. Бит D (Data Toggle) — состояние переключателя для передаваемого или посылаемого пакета. Поле MaxLength — длина передаваемых данных (максимальная длина принимаемых), 000 — 1 байт, 001 — 2, 3FF — 1024; 7FFh — 0 (пустой пакет). Допустимые значения до 4FFh — 1280 байт, теоретический предел емкости кадра. Значения 500-7FEh недопустимы, вызывают фатальную ошибку контроллера.

В слове DW3 содержится Buffer Pointer — указатель на буфер в ОЗУ, используемый для данных этой передачи.

Заголовок очереди (QH) связывает очереди друг с другом (по горизонтали) и ссылается на первый элемент (TD) данной очереди. Хост-контроллер использует два 32-битных слова (см. следующий рисунок). В поле QHLP (Queue Head Link Pointer) содержится указатель на следующий заголовок очереди (горизонтальная связка). В поле QELP (Queue Element Link Pointer) содержится указатель на элемент очереди (вертикальная связка). Признаки последнего элемента (T) и класс связанного элемента (Q) аналогичны одноименным признакам и классам в вышеприведенных структурах.

Дескриптор заголовка очереди создается драйвером; хост-контроллер модифицирует в памяти указатель QELP: успешно отработав транзакцию, контроллер берет из DW0 ее дескриптора указатель на следующий элемент и помещает его на место QELP в заголовке очереди. Таким образом, успешно отработанный TD удаляется из очереди. Когда удаляется последний TD, в QELP устанавливается признак пустой очереди (T). В случае неисправимой ошибки при отработке какого-то дескриптора в QELP также устанавливается «заглушка» T — поток с гарантированной доставкой не позволяет пропустить какую-либо транзакцию. Поле QELP может ссылаться как на TD (тривиальный вариант планирования), так и на QH — очередь сама может содержать очереди.

Регистровая модель UHC поясняется в таблице ниже, где представлены регистры, отображенные на пространство ввода/вывода. Кроме того, как всякое устройство PCI , контроллер UHC имеет регистры в конфигурационном пространстве, в которых, в частности, задаются коды класса (0Ch — контроллер последовательной шины), подкласса (03 — USB) и программного интерфейса (00) в классификации PCI SIG.

Таблица. Регистры контроллера UHC

Адрес Назначение
Base + (00-01h)

USBCMD — регистр команд USB

Биты 15:8 — резерв
Бит 7: MAXP (Max Packet) — допустимый размер пакета (для FS), с которым
возможна транзакция при подходе к концу кадра: 1 = 64 байт, 0 = 32 байта

Бит 6: CF (Configure Flag) — флаг, которым драйвер отмечает окончание процесса
конфигурирования контроллера (программный семафор для ПО)
Бит 5: SWDBG (Software Debug) — управление отладкой: 1=режим отладки (останов
после каждой транзакции), 0 — нормальный
Бит 4: FGR (Force Global Resume) — подача сигнала глобального
пробуждения.Устанавливается программно, сбрасывается аппаратно по окончании
пробуждения
Бит 3: EGSM (Enter Global Suspend Mode) — перевод в режим глобальной
приостановки
Бит 2: GRESET (Global Reset) — общий сброс контроллера и шины USB
Бит 1: HCRESET (Host Controller Reset) — сброс хост-контроллера
Бит 0 RS (Run/Stop) управление работой контроллера: 1=Run — выполнение
транзакций по плану, 0=Stop — останов

Base + (02-03h)

USBSTS — регистр состояния USB

Биты — резерв
Бит 5: HCHalted — контроллер остановлен, программно или аппаратно (по ошибке
или при отладке)
Бит 4: Host Controller Process Error — фатальная ошибка исполнения (может
возникать и из-за некорректного задания PID в дескрипторе транзакций), вызывает
прерывание
Бит 3: Host System Errorсистемная ошибка (неполадки в интерфейсе PCI),
вызывает прерывание
Бит 2: Resume Detect — получение сигнала возобновления (при глобальной
приостановке)
Бит 1: USB Error Interrupt — признак прерывания по ошибке выполнения
транзакции (переполнение или переопустошение FIFO буфера шины PCI)
Бит 0: USBINT (USB Interrupt) — прерывание по выполнению транзакции
с установленным битом IOC или приему короткого пакета (при включенном
обнаружении короткого пакета)

Base + (04-05h)

USBINTR — регистр разрешения прерываний

Биты — резерв
Бит 3: Short Packet Interrupt Enable — разрешение прерываний по приему
короткого пакета
Бит 2: IOC (Interrupt On Complete Enable) — разрешение прерываний по завершении
транзакции
Бит 1: Resume Interrupt Enable — разрешение прерываний по приему сигнала
возобновления
Бит 0: Timeout/CRC Interrupt Enable — разрешение прерываний по ошибке
тайм-аута и CRC-контролю

Base + (06-07h) FRNUM — регистр номера кадра
Base + (08-0Bh) FRBASEADD — регистр базового адреса списка кадров
Base + 0Ch

SOFMOD — регистр управления частотой кадров

Биты — управление длительностью кадра: 0 — 11936 бит, 1 — 11937 бит, …
63 — 11999 бит, 64 — 12000 бит (номинал), 65 — 12001 бит, 127 — 12063 бит

Base + (10-11h)

PORTSC1 — регистр управления и состояния порта 1

Биты — резерв (0)
Бит 12: (R/W) Suspend — приостановка порта
Биты — резерв (0)
Бит 9: (R/W) Port Reset — сброс порта

Бит 8: (RO) Low Speed Device Attached — признак подключения LS-устройства
Бит 7 — резерв (1)
Бит 6: (RW) Resume Detect — обнаружение сигнала возобновления. Запись «1»
вызывает генерацию сигнала возобновления на порте, последующая запись
«0» — завершение сигнала возобновления и посылка LS-EOP Биты : (RO) —
текущее состояние линий D- и D+
Бит 3: (R/WC) Port Enable/Disable Change — признак автоматического запрета
порта по ошибке, сбрасывается записью «1»
Бит 2: (R/W) Port Enabled/Disabled — разрешение работы порта
Бит 1: (R/WC) Connect Status Change — признак события подключения/
отключения устройства
Бит 0: (RO) Current Connect Status — признак подключенного устройства

Спецификация интерфейса «открытого» хост-контроллера OpenHCI (OHCI) разработана компаниями Compaq, Microsoft и National Semiconductor и описана в документе «Open Host Controller Interface Specification for USB». Версия 1.0a этого документа опубликована в 1999 году. Контроллер OHC, как и UHC, предназначен для поддержки скоростей FS/LS. Однако аппаратные средства OHC берут на себя большую часть забот планирования, разгружая ЦП от рутины постоянной обработки дескрипторов. Контроллер OHC оперирует дескрипторами конечных точек и дескрипторами передач.

Дескрипторы конечных точек ED (Endpoint Descriptor) создаются для всех сконфигурированных конечных точек всех подключенных устройств. Эти дескрипторы размещаются в памяти и связываются между собой; конфигурация связей задает порядок их обслуживания хост-контроллером. Дескриптор конечной точки описывает ее полный адрес и направление, тип, допустимый размер пакета, скорость, состояние точки и дескриптора, указатели на очереди передач, связанных с данной точкой, указатель на дескриптор следующей точки. Для всех точек управления (Control) и всех точек передач массивов (Bulk) создаются отдельные цепочки ED, на начала этих цепочек указывают специальные регистры OHC. Дескрипторы точек периодических передач организуются в «поваленное» двоичное дерево (см. рисунок ниже), в «ветвях» которого размещаются дескрипторы точек прерываний, а в «стволе» — дескрипторы точек прерываний с минимальным интервалом обслуживания и все дескрипторы точек изохронных передач. У дерева имеются 32 конечных ветви, проход по дереву осуществляется от конечных ветвей к стволу. В каждом из 32 смежных кадров вход осуществляется со своей ветви. Для этого в OHC имеется регистр базового адреса HCCA (Host Controller Communication Area, область коммуникаций хост-контроллера), указывающий на ветвь с номером 0, и счетчик кадров, 5 младших бит которого задают номер ветви входа для очередного кадра. Таким образом, через каждую ветвь пятого уровня (конечного) обработчик дескрипторов проходит 1 раз за 32 кадра (T = 32 мс), четвертого — 1 раз за 16 кадров (T = 16 мс), для третьего уровня — T = 8 мс, для второго — T = 4 мс, для первого — T = 2 мс, для нулевого (ствола) — T = 1 мс.

Дескрипторы передач TD (Transfer Descriptor), в отличие от TD UHC, для OHC действительно описывают передачи USB . Каждая передача может разбиваться на несколько транзакций, и это разбиение выполняет хост-контроллер исходя из размера пакета, установленного в дескрипторе конечной точки. Буфер данных для передачи может располагаться в одной или двух физических страницах памяти, возможно, разрозненных. В виртуальном пространстве логических адресов буфер должен быть непрерывной областью. Размер передачи может достигать 8 Кбайт, но если буфер начинается не с начала страницы, то допустимый размер передачи сократится (в худшем случае до 4097 байт). Дескрипторы передач собираются в очереди, которые прикрепляются к дескрипторам конечных точек.

Хост-контроллер OHC имеет таймеры, с помощью которых он осуществляет планирование транзакций в кадре. После SOF контроллер начинает обход цепочки ED для управляющих передач и выполняет столько из них, сколько успеет за время T1. Далее он начинает обход дерева периодических передач, от n-й конечной ветви до ствола, пока не пройдет по всем встретившимся ED. Если у него еще остается время в кадре, он снова берется за непериодические передачи (Bulk и Control). Отработанные (успешно или снятые по превышению порога ошибок) дескрипторы контроллер собирает в специальную очередь обработанных дескрипторов Done Queue, откуда их без труда извлекает драйвер. Контроллер может вырабатывать прерывания по завершению обработки TD, причем с заданной (для каждого TD) задержкой (или не вырабатывать запрос). Контроллер OHC имеет регистр для подстройки частоты кадров. В контроллер входит и корневой хаб на 2 или более порта.

Контроллер OHC, как и UHC, обычно является активным устройством PCI (Bus Master), но по сравнению с UHC наделен большим интеллектом. В контроллере предусмотрена поддержка контроллера клавиатуры и мыши (KBC) с помощью прерываний SMI, но, в отличие от UHC, в OHC имеются и специальные регистры, упрощающие задачу эмуляции.

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

Если раньше пользователям нужно было подключаться к компьютеру, чтобы скидывать файлы с ПК или со съемного носителя на смартфон, то теперь можно копировать информацию сразу на телефон! Не верите? Значит, вы еще не слышали про технологию OTG!

USB OTG — это отдельный переходник для вашего смартфона, который подключается через mini-USB или micro-USB, а с другой стороны расположен USB-порт, в который можно вставлять не только флешки, но и другие типы гаджетов. Например, картридеры, внешние диски, игровые джойстики, клавиатуры и многие другие важные технические новинки, окружающие нас в повседневной жизни.

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

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

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

Какие устройства можно подключать через OTG?

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

Без проблем можно подключать USB-накопители до 32 Гб. Можно попробовать и больше, например, на 64 Гб, но они работают не везде.

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

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

Если вы заядлый геймер, то сможете при помощи OTG в телефоне подключить и геймпад, только учтите, что не все игры из Google Play поддерживают такую технологию и подобные устройства, и здесь многое зависит от самого разработчика приложения.

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

Если же у вас плохая фронтальная камера на смартфоне, то просто подключите внешнюю!

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

Но и это еще не все! Нужно срочно распечатать документы? Подключите принтер! Сюда же можно добавить еще и монитор или телевизор.

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

Какие смартфоны поддерживают технологию?

Как узнать, есть ли у меня поддержка OTG?

Android, начиная с версии ОС 2.3, автоматически поддерживает эту технологию, но здесь важно учесть, что многое зависит от оболочки производителя, который предоставляет смартфон. Android — это разработка Google, предоставляемая всем компаниям, где уже каждая компания дорабатывает ее на свой лад и может, как добавить что-то новое, так и удалить.

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

При покупке телефона всегда можно посмотреть о наличии данной опции в характеристиках.

Как проверить, поддерживает ли мой смартфон OTG?

  1. Самый простой способ — это посмотреть информацию на официальном сайте производителя.
  2. Второй способ — обратить внимание на версию Android, как и говорилось ранее. Если она ниже 2.3, то такой технологии в вашем аппарате нет. Но такие телефоны, как правило, выпускались лет так 5 назад! И если уж вы обладатель подобного мобильного аппарата, забудьте про все плюшки, которые появлялись с 2012-2013 годов.
  3. Еще один надежный способ — это использование специализированных программ. Рекомендуем установить (предоставляется бесплатно в Google Play). Проверяется очень быстро. Нужно лишь открыть это приложение, подключить OTG-кабель и отключить его. Если смартфон поддерживает технологию, алгоритм программы определит это и оповестит соответствующим оповещением.

Тонкости подключения различных устройств

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

Жесткий диск

С портативными накопителями часто возникают проблемы при подключении через OTG, и не только из-за нехватки энергии, но и из-за файловой системы. Если с FAT32 проблем не возникает, то вот с NTFS иногда бывают сбои. Для решения этой проблемы рекомендуем воспользоваться утилитой , только учтите, что для нее необходимо наличие root-прав.

Игровой джойстик

Геймпады от Xbox работают без проблем, так как не требуют никаких дополнительных программных средств, предоставляя все «из коробки», а вот с PS 3, PS 4 у вас возникнут проблемы. Подключение можно будет осуществить только при наличии root-прав.

Мыши и клавиатуры

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

Принтер

Эти устройства работают по технологии Plug and Play, обеспечивая непрерывную работу сразу же после подключения к смартфону. Но для некоторых телефонов требуется перевод в режим камеры или накопителя. В этом случае поможет приложение . Единственный недостаток программы — она платная, но ее возможности впечатляют. Пользователь получает возможность подключать принтер не только по USB, но и при наличии Wi-Fi или Bluetooth по беспроводной сети. Печать возможна как из готовых документов файловой системы, так и из облачных хранилищ.

3G и 4G-модем

Идея, конечно же, не супер, но имеет место быть. Вы сможете подключить свой модем через USB, который будет выступать в качестве приемника и передатчика сотовой сети. Подключение и корректная работа возможны только при наличии root-прав и специальной утилиты — . Работа гарантируется не на всех устройствах!

DSLR-камера

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

Как правильно подключать USB устройство к телефону?

Рассмотрим на примере флешки. Вставляете один конец кабеля OTG в смартфон, а другой (USB) подключаете к носителю. В течении нескольких секунд система определит активное подключение и отобразит все доступные файлы на экране мобильного телефона. Если этого не произошло, сами зайдите в файловую систему и найдите там новое устройство. Зайдите в него и увидите все данные.

Примерным образом подключаются и другие гаджеты. Только у каждого есть свои нюансы (необходимые программы, входы, например, для интернета).

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



Если заметили ошибку, выделите фрагмент текста и нажмите Ctrl+Enter
ПОДЕЛИТЬСЯ:
NexxDigital - компьютеры и операционные системы