Какво е USB-хост и USB OTG. Какво представлява и как работи функцията OTG на устройства с Android?

Започвам поредица от справочни статии за отделни компоненти и функции на различни електронни устройства - таблети, лаптопи, четци, плейъри и т.н. Това е един вид образователна програма в областта потребителска електроника. Ще се опитам да направя тези статии разбираеми за възможно най-много хора.

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

Казано възможно най-просто и достъпно, наличието на USB хост на всяко устройство означава възможност за свързване на различни външни устройства- например флашки, външен твърддискове, четци на карти, плейъри, камери и др. Много интересна е възможността за свързване на външни „периферни устройства“ - клавиатури, мишки и т.н.

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

Интересното е, че можете също да свържете USB хъбове към устройство с USB хост - устройства, които са подобни на мрежови тройници. Например таблетите обикновено имат само един USB порт. Като свържете USB хъб към него (и той е евтин), ще получите два или дори четири порта, което е много удобно - например можете да свържете клавиатура към единия и флаш памети към другия.

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

Много е хубаво да можете да прехвърляте снимки от камерата на таблет или плейър с твърд диск и по този начин да освободите паметта на камерата и да правите още повече снимки. Свързването на клавиатура към таблета също е много приятна функция. Принтерите с USB хост също са удобни: можете директно да свържете камери, телефони, флашки към тях и да отпечатвате снимки или документи директно от тях; Компютърът е напълно незадължителен за това.

Заслужава да се отбележи, че самото присъствие USB функции-host не гарантира нормалната му работа. По-специално, процесът на обмен на файлове чрез USB може да се извърши по доста сложен и неудобен начин - пример е PocketBook 302 (това, между другото, е единственият четец, оборудван с USB хост). Някои устройства може просто да не се свържат поради липса на драйвери или някои недостатъци на програмистите, които са написали софтуера за USB хоста.

Ето защо ви съветвам да проверите колко добре е внедрена опцията USB-host в него, преди да закупите устройство. Опитайте да свържете флашка и вижте колко лесно и удобно е да копирате файлове от и на нея. Ако имате USB клавиатура, която планирате да използвате с устройството, което купувате, би било добра идея да проверите дали работи правилно. Ако планирате да закупите такава клавиатура след закупуването на самото устройство, вземете това устройство със себе си в магазина и проверете колко правилно клавиатурите, представени в магазините, ще работят с него.

Заслужава да се отбележи, че вече има устройства в продажба, които поддържат т.нар USB OTG. Дори бих казал, че USB OTG вече се среща в устройства доста често, по-често от класическия USB хост. Какво е основното USB разлика OTG? Факт е, че USB OTG не предполага наличието на отделен класически пълноразмерен USB порт. За да се свържете периферни устройстваизползвани microUSB портили miniUSB, който най-общо казано служи основно за свързване на устройството към компютър. На устройство с USB OTG този порт всъщност съчетава функциите на USB-хост (свързване на периферни устройства) и USB-устройство (свързване към компютър).

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

И тук отново си струва да се отбележи, че не всички USB OTG устройства са внедрени добре. Някъде може да е посочена поддръжка на USB OTG, но поради липса на необходим софтуер не работи. Пример са четците Onyx Boox. Също така си струва да се отбележи, че външен твърддискове от USB протоколМалко вероятно е да можете да свържете OTG: те консумират твърде много енергия; Таблетът просто не е в състояние да ги „нахрани“.

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

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

Но USB OTG не е без своите недостатъци, основният от които е необходимостта да закупите адаптер и постоянно да го носите със себе си.

Можете да видите дали устройството, което ви интересува, поддържа опцията USB-host или USB OTG на страницата с описание на устройството в раздела „Технически спецификации“ („Спецификации“). Описанието, разбира се, можете да намерите на уебсайта на производителя на устройството, както и на уебсайтовете на много магазини.

маска

Телефонът спря да се зарежда... Показва известие: „Режимът USB-хост е активиран, в този режим батерията не може да се зарежда.“ Зарежда само когато пълно освобождаване от отговорности изключване. Зарядното е оригинално, не можах да намеря нищо в настройките, пълно нулиране не помогна. Помогне!



Това появява ли се при включване в контакт?

Софи

Ситуацията е абсолютно същата... И при зареждане от мрежата, и от компютър... Телефон HTC Desire 601. Кажете ми, проблемът решен ли е?



+1 Търся решение. ПОМОГНЕ!



Същото нещо на един


20.01.2015
Как да деактивирате режима на хост на NTS one


01.02.2015
Същият проблем, USB-хост режимът се включва, не се зарежда. Htc desire 500 всичко тръгна след смяна на дисплейния модул.


22.03.2015
Същият проблем, USB-хост режимът се включва, не се зарежда. Htc desire 500, в началото зареждаше като беше изключен, но сега дори го прави всеки друг път. Освен това може да освобождава енергия по време на зареждане.


09.04.2015
Някой намирал ли е решение?


05.05.2015
Същият проблем на HTC one. Какво да правя? Освен това, когато е свързан към компютър, компютърът не го вижда. Зарежда само когато е изключен.


28.05.2015
Не ми предложиха нищо друго освен нулиране на настройките.


04.06.2015
Имам същия проблем на desire 500, дори актуализирах фърмуера, но не помогна


07.06.2015
И аз имам същия проблем. Кажете ми какво помогна?


13.07.2015
В настройките - за разработчици - премахнете отметката от USB хост


20.07.2015


20.07.2015
Няма функция в настройките - махнете отметката от USB хост


17.09.2015
Моля, опишете по-подробно къде точно в настройките можете да премахнете отметката от това поле?


25.09.2015
Това, което ми помага, е рестартирането на телефона (в менюто за изключване) с включено зарядно. Понякога помага следната последователност от действия: премахнете съобщението (!) за работа в режим на USB хост, изключете мобилния телефон. Интернет, включете обикновения. Но като цяло беше жалко, ще отговори някой знаещ.



10.11.2015
Няма отметки. Прилича на рана


19.11.2015
Да, толкова хвалех htc, а сега стигнах до същата беда! Htc one mini 2


21.11.2015
Здравейте, момчета. И така, имах подобен проблем, изчетох много форуми, мислех, че е проблем. И така, първото нещо, което идва на ум в такива ситуации е, че рестартирах телефона, но не. Търсих дълго време как да го деактивирам, но не намерих нищо подходящо. Накрая се стигна до генерален ресет... Ресетнах, надявайки се чудо на фабричните настройки, резултата от действията ми, телефона празен, проблема същия... На другия ден отидох при приятел, човекът работи в сервиз за мобилни телефони, отвориха телефона, но за моя изненада всичко беше наред Там е страхотно, той сглобява телефона, аз стоя там и мълчаливо си мисля къде мога да изровя мобилния сега... В края на действията си, след като сглоби телефона, напръска с препарат (не знам какъв, но мисля, че в сервизите го има и ще ви го дадат за безплатно ) в гнездото за зареждане и плъзнете (почистете) клечка за зъби няколко пъти. И щастлив край, htc one mini 2, работи перфектно. Надявам се това да помогне на някой друг)


20.12.2015
Просто избършете гнездото за зареждане с памучна вата.


24.02.2016
Ахаха Почистването на гнездото за зареждане наистина помага. Изключих телефона, почистих го, избърсах го малко с леко навлажнен памук, включих го и готово. Върши работа. HTC ONE MINI 2


26.05.2016
Странно, и на мен ми помогна =-O


27.05.2016
Но не ми помогна! На следващия ден при зареждане на 80% изскочи този досаден USB хост


13.06.2016
Не стига, че камерата трепти, но и това скапано зарядно започва да става глупаво


08.08.2016
Парче мъка купено за повече от 20! Камера "G", има проблеми със зареждането... HTC ми падна в очите... Преминах на Apple...


31.10.2016
Изхвърлете своя USB кабел в кошчето и купете друг. Проблемът наистина е в тази букса. Взех Samsung на жена ми и всичко работи. Тогава си купих нов, но го счупих за нея и тогава домакинът започна да се проваля на мен. Накратко, не бъркайте там, където не ви трябва. Подпишете низа си и почистете гнездото.


07.11.2016
Имах същия проблем с htc one m7, взех една обикновена игла и почистих малко USB буксата, всичко работи.


06.02.2017
Как можете да избършете гнездо с памучна вата? Нищо не влиза в него освен игла? Какво да правя?


24.02.2017
Почистих го и проработи!


24.02.2017
Вземате игла, откъсвате малко, малко парче памук в алкохол и го поставяте там. Просто правете всичко много внимателно!


12.03.2017
Същият проблем, но зарежда от компютъра, помогна с почистването на конектора, благодаря.


17.07.2017
Помогна ми, че го оставих цяла нощ без батерия на SIM картата и карта с памет. HTC Desire 601 Dual sim


30.07.2017
И ми помогна. Почистих гнездото за зареждане и всичко работи.


18.08.2017
Благодаря ви, и на мен ми помогна, почистих гнездото и това е


11.09.2017
Благодаря за помощта... Вече исках нов телефонкупете...) и сега всичко работи, зарежда се!


14.09.2017
Вашият съвет беше много полезен.


24.03.2018
Имаше този проблем на HTC Desire 500, изкачих всички форуми, почти нищо не помогна. Почиствайте гнездото за зареждане всеки друг път. Това е единственият начин за решаване на проблема. Когато възникне тази грешка, дръпнете завесата, натиснете самата грешка, така че да се появи елементът „информация за приложението“, отидете там, ще бъде „Настройки“. Изчистване на данните. Дори не се наложи да рестартирам телефона си.


16.04.2018
Изходите в USB конектора са накъсо. Когато включите кабела за зареждане зарядно устройствоработи като otg кабел. Просто трябва да почистите гнездото!


Лекция за анатомията на мобилните устройства. чтКакво е USB OTG в смартфон и таблет?

Много читатели на портала SmartPuls.Ru, срещайки фразата „USB OTG работи“ или обратното, „USB OTG не работи“ в прегледите, се интересуват какво е USB OTG, как да го използвате и каква е ползата от него общо взето?

Спецификацията USB OTG е създадена с цел свързване на електронни устройства едно към друго за прехвърляне на данни през USB порт, заобикаляйки компютър. OTG означава „В движение“.

Тази спецификация има собствено лого:

USB OTG портът се използва не само в смартфони и таблети. Използва се и в някои други устройства, например в плейъри, автомобилни радиостанции, телевизори и принтери. Устройствата, оборудвани с USB OTG, могат директно да свързват USB устройства за съхранение с мултимедийно съдържание и да слушат музика, да гледат филми или (в принтери) да отпечатват изображения и документи. Принтерите с тази възможност обикновено се наричат ​​„принтери за директен печат“.
Като носители, свързани към USB OTG портове, могат да се използват както обикновени флаш устройства, така и по-сложни устройства, например камери.

В тези устройства (с изключение на смартфони и таблети) портът е „еднопосочен“, т.е. портът в устройството служи само за свързване на пасивни USB устройства. И за свързване към компютър се използва друг USB порт (ако съществува; но може да не съществува, ако устройството е свързано в мрежа или изобщо не е предназначено да се свързва с компютър).

В същото време в смартфони и таблети с USB OTG порт този порт е „двупосочен“, т.е. може да се използва както за свързване на пасивни устройства, така и за свързване към компютър (в този случай самият смартфон или таблет действа като пасивно устройство).

В съответствие с възприетата терминология, активен USBУстройството се нарича USB хост. И точно в това се превръщат смартфоните и таблетите, когато към тях се свържат флашки и други устройства чрез USB OTG.

Сега следващият въпрос: как при свързване към друго устройство чрез USB OTG смартфон (таблет) „познава“ как да работи - като USB хост или като пасивно устройство?

За целта в USB порт OTG посветен специален контакт, отговарящ за режима на работа на този порт.

Нека разгледаме превключването към режим на хост, използвайки примера на стандартен USB OTG адаптерен кабел за микро-USB конектор. Между другото, поради присъствието допълнителен контактТози USB конектор има не 4, а 5 контакта. Вижте диаграмата на този адаптер:

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

Тази връзка на щифтове 4 и 5 е направена „твърда“ в USB OTG адаптерния кабел - те просто са „здраво“ запоени заедно.

В „древни времена“ занаятчиите „изкормени“ кабели и удължители с USB конектори и чрез запояване ги превърнаха в адаптери за USB OTG:



(снимката е взета от тук: http://r-nedo.livejournal.com/6598.html)

Но сега няма нужда от такъв „шаманизъм“: USB OTG адаптерните кабели могат да бъдат намерени в много магазини и не са скъпи.

Изглежда типично USB адаптерен кабел OTG за микро-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 GB включително. Поддръжката за други устройства се определя от характеристиките на фърмуера на смартфона/таблета (т.е. почтеността на производителя).

След като свържете флаш устройството към вашия смартфон (таблет), то се появява като „Преносимо хранилище“ в секцията „Съхранение и USB устройства“ (в Android 6) или в секцията „Памет“ (по-ранни версии):


(щракнете за уголемяване)

Съответно достъпът е наличен и чрез файлови мениджъри.

Най-вероятно (но не 100%) флаш устройства от 64 GB или повече, четци на карти и преносими плейъри ще работят.

След това има преносими твърди дискове. При тях ситуацията се утежнява от факта, че смартфонът (таблетът) изисква „двойни усилия“: необходимо е едновременно да се „овладее“ захранването му; и също го разпознават файлова система(най-често 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

Това са цели джобни компютри. Можете да инсталирате сложни програми на тях, да инсталирате операционни системи на настолни компютри и да правите много повече. Може би някой не знае, че тези устройства могат да свързват мишки, клавиатури, 3G и Wi-Fi модеми и голям брой периферни устройства.
Всичко това е възможно с този USB OTG кабел.

Но не всяко устройство поддържа този протокол. За да разберете за неговата поддръжка, трябва да прочетете характеристиките на вашия модел. Там трябва да потърсите запис за Наличен USBХОСТ. Но не винаги е възможно да се намери правилна и пълна документация. В такива случаи можете или да попитате в специализиран форум, или да проверите сами, като свържете мишка през такъв кабел - на екрана на устройството трябва да се появи курсор. Ако се появи, значи устройството поддържа USB HOST.

Домакин без захранване

Но този метод не дава 100% резултат. Възможно е, ако мишката не бъде разпозната от системата, тогава към адаптера трябва да се подаде допълнително захранване. Такъв беше случаят например с цялата серия устройства на Motorola, които поддържаха LapDock.


Тези джаджи взеха допълнително захранване от мрежата или от батерията на тази екзотична докинг станция. Следователно, за да свържете периферни устройства към тях, без да използвате това устройство, беше необходимо да модифицирате обичайния USB OTG чрез добавяне на допълнителна мощност към веригата. За да не прекъснете кабела, можете просто да свържете периферните устройства през активен хъб.
Активният хъб е нещо като тройник за USB, само с допълнителна храна. Факт е, че според стандартния порт Компютър USBпроизвежда максимален ток от порядъка на 0,5 ампера или 500 милиампера. Тази сила на тока може да не е достатъчна, за да „стартира“ доста енергоемка периферия. Така. например, за да свържете твърд диск с устройство с Android, трябва да го вземете, да поставите активен хъб в него, да свържете хъба към захранването и едва след това да свържете твърдия диск.

Защо може да ми трябва това?

Всъщност има просто огромен брой сценарии, но аз ще се опитам да не се фокусирам върху „екзотичните“, а да ги обясня с по-обикновени примери.
Със сигурност всеки знае, че напоследък все по-често започват да излизат устройства без поддръжка на карти с памет. Вместо това производителите оборудват своите устройства с вградени 8, 16 или 32 гигабайта. Но устройствата с 32 гигабайта памет са доста скъпи, а останалите няма да могат да ви осигурят достатъчно свободно пространство. Ако кешът за игри и музика може лесно да се побере на 16 гигабайта (вече мълча за 8 - безполезни устройства с такъв капацитет), тогава няма достатъчно място за няколко филма или дори само за един. В този случай USB HOST ще ви спаси. Просто поставяте филми на обикновена флашка и я свързвате към телефона или таблета си и гледате любимите си филми в движение.


Същото може да се направи и с твърд диск, но това вече не е опция за „къмпинг“, а по-домашна, особено ако медийната ви библиотека се намира на външен твърд диск.
Освен това, ако имате таблет без 3G поддръжка, можете да поправите това, като свържете 3G модем към него и сърфирате в интернет, използвайки тази връзка


Освен това, ако си спомняте колко игри са пуснати на Android, естествено възниква въпросът за свързване на геймпад. И Android поддържа свързване на такива устройства, така че не е нужно да се притеснявате за контролите на екрана, а можете спокойно да играете любимите си аркадни игри на таблета си с помощта на удобни бутони.
Също така има ситуации, когато няма достъп до компютъра (той се повреди в неподходящия момент) и спешно трябва да наберете обемен текст, но само смартфон или таблет е под ръка и можете да го пишете сензорна клавиатураподобно на мазохизма. Тук е полезна поддръжката на USB HOST - просто свързвате мишка и клавиатура и работите с клавиатура в пълен размер. И ако вашето устройство все още има HDMI изход, тогава можете дори да свържете монитор към него и да работите като пълноценен компютър.


Е, все още екзотична опция от серията „просто опитайте“ - свързване на друго устройство с Android.

И все пак какво ми трябва за това?

Е, първо, имате нужда от устройство с Android, което поддържа USB HOST. След това трябва да вземете USB OTG кабел и активен хъб, ако искате да свържете енергоемки периферни устройства или телефонът ви не работи с хоста по различен начин. И разбира се, самите периферни устройства, които ще свържете.
Това се отнася до желязната част. Освен това понякога се случва производителят програмно да блокира тази функция (нещо подобно се наблюдава при Nexus 7 2013). В такъв случай, ако вие редовен потребител– трябва да потърсите във форумите (най-често това са xda-developers) за решения на този проблем. Обикновено всичко се прави с фърмуера на модифицирано ядро ​​или фърмуер алтернативен фърмуер(CyanogenMod например).
Като цяло всяко устройство има свои собствени нюанси и има толкова много от тях, че е невъзможно да се опишат в една статия. Но не се отчайвайте - всичко обикновено се „дъвче“ на тематични форуми, особено ако моделът на устройството е поне малко популярен.

Вместо заключения

Горещо препоръчвам при избор на ново устройство да включите тази опция в списъка със задължителните неща, които трябва да има, особено ако избирате таблет. Дори ако сега смятате, че е ненужно допълнителна опция, тогава е напълно възможно в дадена ситуация да промените радикално гледната си точка.
IN общ USB HOST е много интересна и полезна опция, която може да ви помогне повече от веднъж, особено ако сте студент и често работите с електронни документиили често сте на път.
Това също е идеален начин да гледате филми от флашка, ако ви мързи да станете и да изчакате настолния ви компютър да се зареди.

всеки USB шинатрябва да има един (и само един!) хост - компютър с USB контролер. Концепцията за компютър обаче не означава само обичайните версии на настолен, стоящ на пода, преносими компютри. Компютърът е комбинация от процесор, памет и периферни устройства; в това разбиране в мнозинството модерни устройстваима вградени компютри. Ако „интелигентността“ на този компютър и способността му за диалог с потребителя са достатъчни, тогава той може да поеме ролята на USB хост. Тази опция за хост се обсъжда в последния параграф на тази глава.

„Класическият“ USB хост е разделен на три основни нива:

  • Интерфейсът на USB шината осигурява физическия интерфейс и протокола на шината. Интерфейсът на шината се изпълнява от хост контролер, който има вграден основен хъб, осигуряващ точки физическа връзкакъм автобуса (USB тип “A” гнезда). Хост контролерът е отговорен за генерирането на микрорамки. На хардуерно ниво хост контролерът комуникира с основната памет на компютъра, използвайки директно управление на шина, за да минимизира натоварването на централния процесор;
  • USB системата, използвайки хост контролера(ите), превежда „визията“ на клиента за обмен на данни с устройства – IRP заявки (I/O Request Packet) – в транзакции, извършени с реални устройствагуми. Системата е отговорна и за разпределението на USB ресурсите - честотна лента и мощност на захранването (за устройства, захранвани от шина). Системата се състои от три основни части:
  1. драйвер на хост контролер - HCD (Драйвер на хост контролер) - модул, свързан към конкретен модел контролер, който осигурява абстракция 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 системата изолира клиентите от директна комуникация с всякакви портове (в I/O пространство) или клетки с памет, които представляват интерфейсната част на 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 шината в съответствие с описанията (дескрипторите) на тези транзакции, поставени в системната RAM от драйвера на хост контролера. Различните видове транзакции обаче се обработват по различен начин. По отношение на обработката на грешки, най-простата организация е изохронните транзакции, при които грешките не изискват повторение. Трансферните транзакции с гарантирана доставка в случай на грешки изискват повторения до горчивия край или приемане на неуспех (изчерпване). валиден номерповторения). От гледна точка на планирането трябва да се разграничат периодичните транзакции, които трябва да се извършват стриктно по график, останалите - както се случва, и се поставят на опашки. Поради планиране и възможни повторения, редът, в който дескрипторите на транзакциите са завършени (успешни или не), ще се различава от реда, в който са поставени в паметта1, което добавя към тежестта на хост контролера и неговия драйвер. Трите опции на хост контролера решават тези проблеми по различен начин и използват различни стратегии за планиране на транзакции, както е илюстрирано в таблиците по-долу.

UHC хост контролерът на Intel беше въведен в чипсета PIIX3 (PCI-ISA мост) на дънни платки с процесор Pentium и се използва в много следващи продукти на Intel. Това е FS/LS хост контролер, който прехвърля по-голямата част от грижите за планирането на транзакциите към софтуера – UHC Controller Driver (UHCD). Интерфейсът на UHC контролера е описан в Ръководството за проектиране на интерфейса на универсалния хост контролер (UHCI), версия 1.1, издадена през 1996 г.

UHC драйверът генерира дескриптори за хост контролера, наречени „трансферни дескриптори“ (TD - Transfer Descriptor) в UHCI, които всъщност описват всяка шинна транзакция. Спомнете си, че по отношение на спецификацията на USB един трансфер може да се състои от няколко транзакции, а контролните трансфери също използват различен тип транзакция за всяка фаза. За трансакции с гарантирана доставка, TD дескрипторите трябва да бъдат организирани в опашки. За такива трансфери са необходими опашки, тъй като не се знае предварително колко пъти ще трябва да се опитат. Напредването на опашката е възможно само при успешно завършване на транзакцията, намираща се в началото на опашката - това правило гарантира гарантиран ред (в рамките на опашката) на доставка на пакети. Всяка опашка има своя собствена заглавка (QH). Изохронните трансфери винаги се изпълняват веднъж (няма гарантирана доставка), което опростява тяхното планиране. Драйверът поставя дескрипторите TD и QH в паметта и ги свързва един с друг в съответствие с плана за изпълнение на транзакцията във всеки кадър. UHC драйверът трябва да създаде подробен „график“ за всеки бъдещ кадър, за който се използва списък с 1024 кадъра. Хост контролерът преминава през списъците с манипулатори, започвайки от точката, посочена от Frame List за текущия кадър, и изпълнява подходящите транзакции. Резултатът от изпълнението на транзакцията се маркира в нейния дескриптор, завършената транзакция се маркира като „неактивна“ и контролерът, след като я срещне по време на следващия кръг, просто преминава към следващия. Драйверът трябва периодично да преглежда дескрипторите, извличайки тези, които вече са били обработени, и предава резултатите от изпълнението на клиентския драйвер. Логиката на контролера предполага, че една входно-изходна заявка (IRP) от клиентския драйвер може да съответства на няколко „трансфера“ - елемента на опашка. UHC драйверът разделя заявката на транзакции и поставя манипулаторите на тези транзакции в подходящата опашка, а опашката се включва в непосредствените планове. Драйверът е отговорен за балансиране на натоварването на шината на всеки кадър, като гарантира, че най-малко 10% от честотната лента е достъпна за транзакции за контролен трансфер. Графикът на рамката също така осигурява необходимата честота на повикванията към точките за периодично предаване.

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

Докато изпълнява плана, контролерът чете от паметта дескрипторите и данните, необходими за стартиране на транзакцията. Веднага щом FIFO буферът на контролера получи достатъчно информация от паметта, за да започне транзакция, контролерът започва транзакцията по USB шината. По време на нейното изпълнение се прехвърлят данни, след завършване контролерът модифицира дескрипторите в паметта в съответствие с условията за завършване на транзакцията. По време на обработка на транзакция може да възникнат грешки при препълване на FIFO буфера или препълване поради претоварване на контролера системна паметили PCI шини. Тези сериозни грешки задействат хардуерни прекъсвания. Хост контролерът включва също основен хъб с 2 или повече порта.

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

UHC контролерът има специална поддръжка за традиционния интерфейс на клавиатурата и мишката чрез контролера 8042 - прихващане на повиквания към портове 60h и 64h от I/O пространството. Когато емулацията е активирана за софтуерни извиквания към тези портове, UHC причинява системно прекъсване SMI (System Management Interrupt), което се обработва в компютри на x86 процесори в режим SMM (System Management Mode), невидимо за редовни програми. SMI манипулаторът, който прихваща тези повиквания, генерира последователностите от действия, необходими за тяхното изпълнение с помощта на USB клавиатура и/или мишка. Единственото изключение се прави при прихващане на команди, които управляват портата GateA20 - вместо да генерират SMI, манипулациите на тази врата се извършват хардуерно (както отдавна е направено в 8042). Тази хардуерна поддръжка се активира чрез задаване на подходящите параметри за настройка на CMOS.

Голямо неудобство при работа с UHC възниква от необходимостта от програмен преглед на всички дескриптори на предаване, за да се идентифицират завършените. Дескрипторите на завършени трансфери трябва да бъдат програмно извлечени от веригите, като се запази свързаността на елементите. Планирането на транзакции (съставяне на списъци с дескриптори и заглавки) също е доста трудоемка задача за водача. Очевидно целта беше да се опрости хардуерът на хост контролера. Това обаче може да доведе до ефективна работа на USB шината в зависимост от мощността и натоварването на централния процесор. Този подход за организиране на входа/изхода трудно може да се нарече ефективен.

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

Елементът на списък с рамки може да сочи или към TD (дескриптор на трансфер) или (ако не е планиран изохронен трансфер в тази рамка) към QH (начало на опашка). Ако изобщо не са планирани предавания в този кадър, тогава елементът е настроен на атрибут „закъснение“ T (Прекратяване, край на свързания списък, в в такъв случай- празен). Нека ви напомним още веднъж, че тук думата „трансфер“ (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, ще премине към следващия дескриптор от същата опашка, а не към следващата опашка.

Дескрипторите за прехвърляне и заглавките на опашката се поставят от драйвера в RAM на адреси, подравнени към границите на абзаца, тъй като само най-значимите 28 бита се използват като указатели (битовете се използват за атрибути на услугата).

Дескрипторът за трансфер (TD) се състои от 32 байта, от които хост контролерът използва само първите четири 32-битови думи DW0-DW3. Думите DW4-DW7 са запазени за използване от UHC драйвера (за организиране на „събиране на боклук“ - повторно използванеотпадъци). Форматът на дескриптора на предаване е показан на фигурата по-долу. Сивполетата, модифицирани от хост контролера, са маркирани.

IN дума DW0 полето Link Pointer е подобно на полето FLLP, а битовете T и Q са подобни на едноименните битове на елемента от списъка с рамки. Бит V - TD сервизен метод (1 - първо в дълбочина, 0 - по ширина).

Дума DW1 използва се за контрол и определяне на състоянието на напредъка на трансфера, модифициран от хост контролера. поле ActLen – действителната дължина на предаваните данни; Поле за състояние - състояние на напредъка на прехвърлянето:

дължина на предаваните данни; Поле за състояние - състояние на напредъка на прехвърлянето:

  • бит 23: Активен - “трябва да се изпълни”, задава се от драйвера, нулира се от контролера при успешно изпълнение или изчерпване на ограничението за повторение;
  • бит 22: Stalled - точката отговори със STALL пакет;
  • bit 21: Data Buffer Error - грешка в буфера на данните (FIFO препълване или преизпразване при изпълнение на транзакция), транзакцията остава активна (при преизпразване контролерът генерира пакет с грешен CRC; при препълване не отговаря с потвърждение) ;
  • бит 20: Бърморене - при извършване на тази транзакция устройството е „чатливо“ (изключено е и е зададен битът Stalled);
  • бит 19: NAK — получаване на подходящия отговор (в транзакцията SETUP получаването на NAK също задава флага за грешка при изчакване);
  • бит 18: CRC/Timeout Error - открита грешка при предаване (CRC или таймаут);
  • бит 17: Bitstuff Error—открита е грешка при пълнене на битове.

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

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

Думата DW3 съдържа Buffer Pointer - указател към буфер в RAM, използван за данните от този трансфер.

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

Манипулаторът на заглавката на опашката се създава от драйвера; хост контролерът модифицира QELP указателя в паметта: след като успешно обработи транзакцията, контролерът взема указател към следващ елементи го поставя на мястото на QELP в заглавката на опашката. По този начин успешно обработен TD се премахва от опашката. Когато последният TD бъде изтрит, флагът за празна опашка (T) се задава в QELP. В случай на некоригируема грешка при обработката на дескриптор, в QELP се инсталира и „stub“ T - поток с гарантирана доставка не позволява пропускане на транзакция. Полето QELP може да се отнася или за TD (тривиална опция за планиране), или за QH - самата опашка може да съдържа опашки.

UHC регистърният модел е обяснен в таблицата по-долу, която показва регистрите, съпоставени към I/O пространството. Освен това, като всяко PCI устройство, UHC контролерът има регистри в конфигурационното пространство, в които по-специално клас кодове (0Ch - контролер на серийна шина), подклас (03 - USB) и софтуерен интерфейс(00) в PCI SIG класификацията.

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

Адрес Предназначение
База + (00-01ч)

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

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

Бит 6: CF (Configure Flag) - флаг, с който драйверът отбелязва края на процеса
конфигурация на контролера (софтуерен семафор за софтуер)
Бит 5: SWDBG (софтуерно отстраняване на грешки) - управление на отстраняване на грешки: 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=Стоп - стоп

База + (02-03ч)

USBSTS - USB регистър на състоянието

Битове - резерв
Бит 5: HCHalted - контролерът е спрян, софтуер или хардуер (по грешка
или при отстраняване на грешки)
Бит 4: Грешка в процеса на хост контролера - фатална грешкаизпълнение (може
може да възникне и поради неправилна настройка на PID в дескриптора на транзакцията), причини
прекъсвам
Бит 3: Грешка в хост системата - системна грешка(проблеми в PCI интерфейса),
предизвиква прекъсване
Бит 2: Откриване на възобновяване - получаване на сигнал за възобновяване (с глобален
окачване)
Бит 1: USB Error Interrupt - индикация за прекъсване поради грешка при изпълнение
транзакции (PCI шина FIFO буфер препълване или препълване)
Бит 0: USBINT (USB Interrupt) - прекъсване на транзакцията
със зададен IOC бит или получаване на кратък пакет (с
откриване на кратки пакети)

База + (04-05ч)

USBINTR - регистър за разрешаване на прекъсване

Битове - резерв
Бит 3: Разрешаване на прекъсване на кратки пакети - разрешаване на прекъсвания за получаване
кратък пакет
Бит 2: IOC (Interrupt On Complete Enable) - разрешаване на прекъсвания при завършване
сделки
Бит 1: Разрешаване на прекъсване на възобновяване - разрешаване на прекъсвания за приемане на сигнал
възобновяване
Bit 0: Timeout/CRC Interrupt Enable - разрешаване на прекъсвания при грешка
таймаут и CRC контрол

База + (06-07ч) FRNUM - регистър на номера на рамката
База + (08-0Bh) FRBASEADD - списък с рамки, основен адресен регистър
Основа+0Ch

SOFMOD - регистър за контрол на честотата на кадрите

Битове - контрол на продължителността на кадъра: 0 - 11936 бита, 1 - 11937 бита, ...
63 - 11999 бита, 64 - 12000 бита (номинално), 65 - 12001 бита, 127 - 12063 бита

База + (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) Промяна на активиране/деактивиране на порт - автоматичен знак за забрана
порт по погрешка, нулиране чрез въвеждане „1“
Бит 2: (R/W) Port Enabled/Disabled - разрешение за работа на порта
Бит 1: (R/WC) Промяна на състоянието на връзката - знак за събитие на връзката/
изключване на устройството
Бит 0: (RO) Current Connect Status - знак на свързаното устройство

Спецификацията на OpenHCI Host Controller Interface (OHCI) е разработена от Compaq, Microsoft и National Semiconductor и е описана в Open HCI Interface Controller Specification for USB. Версия 1.0a на този документ е публикувана през 1999 г. OHC контролерът, подобно на UHC, е проектиран да поддържа FS/LS скорости. Въпреки това, OHC хардуерът се грижи за повечето грижи за планирането, освобождавайки процесора от рутината на непрекъсната обработка на дескриптори. OHC контролерът работи с дескриптори на крайни точки и дескриптори на предаване.

Дескриптори на крайни точки (ED) се създават за всички конфигурирани крайни точки на всички свързани устройства. Тези дескриптори са разпределени в паметта и свързани един с друг; Конфигурацията на връзките определя реда, в който те се обслужват от хост контролера. Дескрипторът на крайна точка описва нейния пълен адрес и посока, тип, разрешен размер на пакета, скорост, състояние на крайната точка и дескриптор, указатели към опашките за предаване, свързани с дадената крайна точка, и указател към дескриптора на следващата крайна точка. Създават се отделни ED вериги за всички контролни точки (Control) и всички точки за прехвърляне на масив (Bulk), а специални OHC регистри сочат към началото на тези вериги. Периодичните дескриптори на точката на прехвърляне са организирани в „паднало“ двоично дърво (вижте фигурата по-долу), чиито „клонове“ съдържат дескрипторите на точката на прекъсване, а „стволът“ съдържа дескрипторите на точката на прекъсване на минималния интервал на обслужване и всички дескриптори на точката на изохронно предаване. Дървото има 32 крайни клона, преминаването през дървото е от крайните клони към ствола. Във всеки от 32-те съседни кадъра входът е от собствен клон. За да направи това, OHC има основен адресен регистър HCCA (Host Controller Communication Area), сочещ към разклонение номер 0, и брояч на кадри, чиито 5 най-малко значими бита определят входния номер на разклонение за следващия кадър. Така през всеки клон на петото ниво (крайно) дескрипторният процесор преминава 1 път в 32 кадъра (T = 32 ms), четвъртият - 1 път в 16 кадъра (T = 16 ms), за третото ниво - T = 8 ms, за втория - T = 4 ms, за първия - T = 2 ms, за нулевия (магистрален) - T = 1 ms.

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

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

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