Kako postaviti pametne telefone i računala. Informativni portal
  • Dom
  • vijesti
  • USB OTG u pametnom telefonu: što je to i kako koristiti OTG. Povezivanje USB-Host uređaja na Android

USB OTG u pametnom telefonu: što je to i kako koristiti OTG. Povezivanje USB-Host uređaja na Android

Prelistavajući karakteristike pametnih telefona ili tableta na Androidu, često naiđete na kraticu USB OTG. Prvi dio je poznat i razumljiv s flash diskova, a drugi postavlja pitanje - kakva je to životinja i treba li mi? Naziv tehnologije je nejasan, ali OTG je korisna stvar za svakog praktičnog korisnika pametnog telefona. Idemo shvatiti zašto je OTG potreban u mobilnom uređaju.

USB OTG: što je to

OTG je skraćenica za "on-the-go", tj. u bijegu. Standard omogućuje uređajima da "razgovaraju" jedni s drugima bez pomoći posrednika. Recimo da ste odlučili ispisati fotografije sa svog pametnog telefona ili kopirati datoteke s njega na USB flash pogon, ali niste imali računalo pri ruci. Što uraditi? Trčite u trgovinu po poseban kabel (fotografija ispod). Uz pomoć takve "vezice" možete izravno povezati svoj pametni telefon s gotovo bilo kojim uređajem putem USB-a, zaobilazeći posrednika u obliku računala ili prijenosnog računala.

Mogućnosti USB OTG-a tu ne prestaju. Pametni telefon može djelovati kao USB host, omogućujući vam povezivanje raznih perifernih uređaja - tipkovnice, miša, pa čak i glazbenih instrumenata s odgovarajućim kontrolerom.

USB OTG ima svoj logo. Izvadite pakiranje svog pametnog telefona ili tableta i pogledajte kutiju. Ako vidite standardni logotip, uređaj podržava taj korisni standard. Ako je pakiranje odavno izgubljeno, u bilo koju tražilicu upišite model svog pametnog telefona i kraticu OTG i na prvom linku pročitajte tehničke specifikacije, podrška za standard će se svakako spomenuti. Alternativa je preuzimanje besplatne aplikacije USB Host Diagnostic s Google Playa.

Kako koristiti OTG na pametnom telefonu ili tabletu.

Prvo morate kupiti poseban OTG kabel. Drugo, možda će vam trebati posebna aplikacija, kao što je već spomenuti USB Host Controller ili Total Commander. Aplikacije možete preuzeti na Google Play. Kabel za OTG je jeftin - od 70 rubalja na Aliexpressu do 100-200 u najbližoj komunikacijskoj trgovini ili internetskoj trgovini.

Što se može učiniti s OTG-om

Standard vam omogućuje povezivanje raznih uređaja na vaš pametni telefon putem USB-a, kako za pohranu podataka, tako i za proširenje funkcionalnosti vašeg pametnog telefona/tableta. Recimo da nemate računalo, ne koristite pohranu u oblaku, a memorija na vašem pametnom telefonu već je gotovo u potpunosti zauzeta filmovima, glazbom, fotografijama i video zapisima. Izlaz je kupiti tvrdi disk (vanjski), OTG kabel i koristiti disk kao uređaj za backup podataka. Alternativna opcija je korištenje prostranog flash pogona.

Koji uređaji vam omogućuju povezivanje s pametnim telefonom OTG

Popis perifernih uređaja spojenih na pametni telefon putem OTG-a je opsežan, ograničit ćemo se na najpopularnije uređaje:

  • Flash pogon.
  • Vanjski tvrdi disk.
  • Tipkovnica.
  • Miš.
  • MIDI klavijature i ostali glazbeni uređaji.
  • Još jedan pametni telefon ili tablet.
  • Kontroler igre (kao što je Xbox gamepad).
  • pisač.
  • Prijenosni skener.

23.1. Opis kanala

Za USB host kontroler, izraz "kanal" koristi se umjesto izraza "krajnja točka" koji se koristi za kontroler USB uređaja. Kanal domaćina odgovara krajnjoj točki uređaja kako je opisano u USB specifikaciji.

Slika 23.1. Kanali i krajnje točke u USB sustavu

U USB host kontroleru, kanal je povezan s krajnjom točkom uređaja prema deskriptoru konfiguracije uređaja.

23.2. Odvojiti

Vrijednost DETACH bita nakon resetiranja je 1. Stoga softver mora obrisati ovaj bit prije prelaska u način rada glavnog računala (postavljanje bita HOST).

23.3. Uključite i resetirajte

Donji dijagram objašnjava osnovna stanja USB host kontrolera kada je uključen.


Slika 23.2. USB host kontroler stanja nakon resetiranja

Stanje USB host kontrolera nakon resetiranja je "reset". Kada je USB kontroler omogućen i odabran način rada domaćina, USB kontroler je u stanju mirovanja. U tom stanju, USB host kontroler čeka da se ravnopravni uređaj poveže dok troši minimalnu energiju. USB pinovi moraju biti u stanju mirovanja. Nema potrebe za aktiviranjem PLL-a za ulazak u "host ready" način rada. Glavni kontroler prelazi u suspendirano stanje kada je USB sabirnica u suspendiranom stanju, t.j. kada glavni kontroler ne generira početak okvira. U tom stanju potrošnja USB kontrolera je minimalna. Glavni kontroler izlazi iz suspendiranog stanja kada počne generirati SOF na USB liniji.

23.4. Otkrivanje uređaja

USB kontroler detektira uređaj kada se stanje USB sabirnice razlikuje od niskih razina na obje linije D + i D-. Drugim riječima, kada USB host kontroler otkrije povlačenje (koje odgovara uređaju) na D + liniji. Da bi omogućio ovu detekciju, glavni kontroler mora osigurati napajanje uređaja preko Vbus linije. Host kontroler detektira prekid veze s uređajem u stanju mirovanja koje odgovara niskim razinama na USB D + i D- linijama.

23.5. Odabir kanala

Prije bilo kakve operacije CPU-a mora se odabrati kanal. To se postiže postavljanjem bita PNUM2: 0 (UPNUM registar) u skladu s brojem kanala s kojim će CPU raditi. CPU tada ima pristup registrima kanala i podacima.

23.6. Konfiguracija kanala

Za aktiviranje kanala potrebno je izvršiti sljedeći slijed radnji.


Slika 23.3. Koraci za aktiviranje kanala

Nakon što je kanal aktiviran (bit EPEN je postavljen), kontroler je spreman za slanje zahtjeva uređaju. Nakon konfiguracije (CFGOK = 1), može se promijeniti samo oznaka kanala (PTOKEN) i interval prozivanja za izokroni kanal. Kontrolni kanal podržava samo 1 banku. Bilo koja druga vrijednost rezultirat će pogreškom u konfiguraciji (CFGOK = 0).

Resetiranje PEN-a poništava konfiguraciju kanala. Svi registri povezani s kanalom postavljeni su na svoje zadane vrijednosti. Za više detalja pogledajte poglavlje Upravljanje memorijom.

Napomena: softver mora konfigurirati upravljački kanal sa sljedećim parametrima:

  • tip: menadžer,
  • oznaka: SETUP,
  • banka podataka: 1,
  • veličina je 64 bajta.

Softver zahtijeva 8-bajtni Deskriptor uređaja slanjem zahtjeva GET_DESCRIPTOR. Ovi bajtovi sadrže maksimalnu veličinu paketa (MaxPacketSize) kontrolne točke uređaja, a softver rekonfigurira veličinu kontrolnog kanala prema primljenim podacima.

23.7. USB reset

USB kontroler šalje USB reset kada je bit RESET postavljen u softveru. RSTI bit postavlja hardver kada se pošalje USB zahtjev za poništavanje. To rezultira prekidom ako je RSTE bit postavljen. Kada se pošalje USB reset, sva konfiguracija kanala i dodjela memorije se resetiraju. Registar dijeljenog USB Interrupt Enable ostaje nepromijenjen. Ako je linija prethodno bila obustavljena (SOFEN = 0), USB kontroler se automatski prebacuje u način za nastavak rada (bit HWUPI je postavljen) i hardver postavlja bit SOFEN da se generira odmah nakon USB SOF resetiranja.

23.8. Uspostavljanje adrese

Nakon što USB uređaj odgovori na prvi zahtjev hosta sa zadanom adresom (0), domaćin dodjeljuje novu adresu uređaju. Glavni kontroler trebao bi poslati poništavanje na USB uređaj i poslati kontrolni zahtjev SET ADDRESS s novom adresom koju bi uređaj trebao koristiti. Nakon dovršetka ovog kontrolnog zahtjeva, softver bi trebao upisati novu adresu u UHADDR registar. Svi naknadni zahtjevi na svim kanalima obavljat će se putem ove adrese. Kada host kontroler pošalje USB reset, UHADDR registar se briše hardverski i sljedeći zahtjev hosta koristit će zadanu adresu (0).

23.9. Detekcija buđenja na daljinu

Kada se SOFEN bit izbriše, glavni kontroler prelazi u suspend mod. Početak okvira se više ne šalje na USB liniju i USB uređaj prelazi u suspendirani način rada 3 ms kasnije. Uređaj nastavlja s hostom slanjem Upstream Resume. Glavni kontroler detektira stanje mirovanja na USB sabirnici i postavlja bit HWUPI. Ako stanje bez mirovanja odgovara udaljenom buđenju (stanje K), tada je RXRSMI bit postavljen u hardveru. Postavljanjem bita RESUME, softver mora poslati zahtjev za nastavak rada uređaja unutar 1 ms i u trajanju od najmanje 20 ms. Nakon što se pošalje zahtjev za nastavak, bit SOFEN se automatski postavlja u hardveru da generira SOF čim se usluga nastavi.

Tako očita i ujedno luda tehnologija poput USB-Hosta nekoliko je puta doživjela zoru i zaborav u mobilnim uređajima. Sada, u eri dominacije na tržištu Android uređaja, ova tehnologija je ponovno popularna. U 2013. ne trebaju vam skupi, nezgrapni adapterski kabeli za povezivanje USB uređaja na pametni telefon ili tablet. Ako punopravni USB nije ugrađen, onda će vam pomoći jeftin USB-Otg kabel ili samo peni microUSB adapter.

Mislim da to već dugo znate. Predlažem da shvatimo što se može povezati s Android uređajem, a što ne, zašto je tako i koji se problemi mogu pojaviti u ovom slučaju.

Povezujemo vanjske uređaje na Android

USB-Flash, USB-HDD

To ne znači da je ovo prva stvar koju su ljudi pokušali spojiti na mobilne uređaje, ali danas je većina USB diskova i tvrdih diskova spojena na tablete. Sve je otrcano: umetnuli su USB flash pogon i on postaje dostupan ili u mapi unutar memorije uređaja ili u mapi pored memorijske kartice. Najčešće će se mapa zvati External-Storage, ili External-SD, ili na drugi način - sve ovisi o uređaju. Moderni Android, počevši od Androida 4.0, podržava sve datotečne sustave za čitanje i pisanje. Čak i NTFS i ExFat - posvećeni ljubiteljima FullHD videa.

Brzina komunikacije je u skladu s USB 2.0 standardom. Android ne podržava treću verziju. USB-HDD će najvjerojatnije zahtijevati dodatno napajanje. Čitači kartica za veliki broj memorijskih kartica rade, svaka kartica ima svoju mapu.

Jedina poteškoća na koju sam naišao bila je potpuna nevoljkost za rad s USB flash pogonom za podizanje sustava. Ako ste omogućili instalaciju sustava s vašeg flash pogona, neće ga svi Android uređaji prepoznati. O čemu ovisi, nisam uspio saznati. Srećom, to se ne pojavljuje često.

Tipkovnice, miševi

Upravo je tipkovnica natjerala korisnike da razmišljaju o USB-Host funkciji u prvim ručnim računalima. Unos teksta i operacije su u to vrijeme bili u prvom planu.

Danas Android besprijekorno podržava povezivanje bilo koje tipkovnice i miša. Žičano i bežično, s istog adaptera i s različitih, izravno i preko huba, sve će raditi. Sve tipke rade na tipkovnici. Ako raspored ruske tipkovnice nije podržan, spasit će vas programi poput ruske tipkovnice. Prebacivanje između jezika se prema zadanim postavkama vrši pomoću Ctrl-Space.

Kada je miš spojen, na ekranu će se prikazati crni kursor. Neki se uređaji mogu konfigurirati za rad u načinu rada miša i geste. Najčešće lijeva tipka radi kao dodir na ekran, a desna kao tipka Natrag ili Izbornik. Sve se to može konfigurirati ili iz postavki sustava ili iz drugih aplikacija.

3G modemi

Ako tablet nema 3G modul ili je verzija s njim preskupa, možete pokušati spojiti vanjski modem putem USB-Hosta. Da biste to učinili, morate ga prebaciti u način rada "Samo modem". To se može učiniti i na računalu i na samom Androidu. Nakon toga ulazimo u postavke i dobivamo Internet. Postoje načini za povezivanje modema bez prelaska na posebne načine rada. Ali ovdje trebate unijeti naredbe kroz "Terminal", na što se neće svi složiti.

Također postoji problem gdje podrška za modem nije implementirana u kernelu sustava. To se obično radi na uređajima s instaliranim 3G modulom i na većini markiranih pametnih telefona i tableta. Kinezi se, u pravilu, ne zamaraju time - sve im radi.
Općenito, za Android uređaje preporučio bih 3G modeme koji funkcioniraju kao mrežne kartice. Obično u njima sve radi bez postavki i drajvera odmah nakon umetanja modema u port. Postavke veze unose se putem web sučelja.

Sljedeći utorak- nastavak teme. Pričekajte objavu« Povezujemo Android uređaj na video karticu i joystick

maska

Telefon se prestao puniti ... Prikazuje obavijest: "Način" USB-host "je omogućen, u ovom načinu se baterija ne može puniti." Puni se samo kada je potpuno ispražnjen i isključen. Punjenje je originalno, nisam našao ništa u postavkama, potpuno resetiranje nije pomoglo. Pomozite!



Pojavljuje li se kada je uključen u utičnicu?

Sofi

Situacija je potpuno ista ... I kod punjenja iz mreže i s računala ... HTC Desire 601. Možete li mi reći je li problem riješen?



+1 traži rješenje. POMOZITE!



Isto na jednom


20.01.2015
Kako onemogućiti način rada hosta na HTC one


01.02.2015
Isti problem, način rada USB-hosta se uključuje, punjenje ne radi. Htc desire 500, sve je počelo nakon zamjene modula zaslona.


22.03.2015
Isti problem, način rada USB-hosta se uključuje, punjenje ne radi. Htc desire 500, isprva se punio u isključenom stanju, a sada i svaki drugi put. A također može ispuštati energiju tijekom punjenja.


09.04.2015
Je li netko pronašao rješenje?


05.05.2015
Takav je problem i na HTC-u one. Što uraditi? Osim toga, kada je spojeno na računalo, računalo ga ne vidi. Puni se samo kada je isključen.


28.05.2015
Ništa mi nije ponuđeno osim resetiranja postavki.


04.06.2015
Imam isti problem sa desire 500, čak sam napravio firmware ali nije pomoglo


07.06.2015
I ja imam ovaj problem. Reci nekome što je pomoglo?


13.07.2015
U postavkama - za programere - poništite opciju USB host


20.07.2015


20.07.2015
Nema funkcije u postavkama - poništite USB host


17.09.2015
Molimo opišite detaljnije gdje točno u postavkama ukloniti ovaj potvrdni okvir?


25.09.2015
Pomaže mi ponovno pokretanje telefona (u izborniku za isključivanje) kada je punjač uključen. Ponekad pomaže sljedeći slijed radnji: uklonite poruku (!) O radu u načinu rada usb hosta, onemogućite mob. Internet, upali osrednje. Ali općenito, ovo je kost, netko tko zna odjavio bi se.



10.11.2015
Nema kvačica. Hike bol


19.11.2015
Da, toliko sam nahvalio htc, sad sam došao u istu nevolju! Htc one mini 2


21.11.2015
Bok ljudi. Dakle, imao sam sličan problem, pročitao sam dosta foruma, mislio sam da je rana. Dakle, prvo što vam padne na pamet u takvim situacijama je ponovno pokretanje telefona, ali ne. Dugo sam tražio kako da ga isključim, ali nisam mogao pronaći ništa prikladno. Kao rezultat toga, došlo je do općeg resetiranja ... Ispustio sam ga, nadajući se čudu tvorničkih postavki, rezultatu mojih radnji, telefon je prazan, problem je isti ... Otišao sam do prijatelja drugi dan, tip radi na popravku mobitela, otvorili su telefon, ali na moje iznenađenje, sve je bilo super, on skuplja telefon, ja šutim i razmišljam gdje da iskopam mobitel sada... Na kraju svojih radnji, nakon što je sastavio telefon, poprskao je sredstvo za čišćenje (ne znam koji, ali mislim da je u servisu i da ćete ga dobiti besplatno) u utičnicu za punjenje i potrošio par puta čačkalicom (očistio je). I sretni kraj, htc one mini 2, savršeno je funkcionirao. Nadam se da će nekom drugom pomoći)


20.12.2015
Dovoljno je samo prebrisati utičnicu za punjenje vatom


24.02.2016
Ahaha. Čišćenje utičnice za punjenje zaista pomaže. Isključio je telefon, očistio ga, malo protrljao malo vlažnom vatom, uključio i voila. Radni. HTC ONE MINI 2


26.05.2016
Čudno, i meni je pomoglo = -O


27.05.2016
Ali nije mi pomoglo! Sljedeći dan, pri punjenju od 80%, pojavio se ovaj dosadni usb-host


13.06.2016
Ne samo da je kamera vatrena, čak i ovaj jebeni naboj počinje tupiti


08.08.2016
Komad muke kupljen za više od 20! Kamera "G", s problemom punjenja... HTC mi je pao u oči... Prešao na jabuku...


31.10.2016
Bacite svoj USB kabel u smeće i kupite drugi. Problem je stvarno u ovom gnijezdu. Otbrpl sam od supruge iz Samsunga i sve radi. Onda sam sebi kupio novi, ali sam ga razbio, onda sam počeo propadati kao domaćin. Ukratko, nemojte bockati gdje nije potrebno. Potpišite svoju čipku i očistite gnijezdo.


07.11.2016
Bio je isti problem sa htc one m7, uzeo sam običnu iglu i malo očistio USB utičnicu, sve radi.


06.02.2017
Kako možete obrisati gnijezdo pamukom? Ništa osim igle ne zabode se u njega? Što uraditi?


24.02.2017
Obrišite i sve je upalilo!


24.02.2017
Uzmete iglu, otkinete mali, mali komadić vate u alkohol i tamo. Ali sve je vrlo nježno za napraviti!


12.03.2017
Isti problem, ali se puni s računala, pomoglo je čišćenje konektora, hvala.


17.07.2017
Pomoglo mi je to što sam ga ostavio preko noći bez baterije SIM kartice i memorijske kartice. HTC Desire 601 Dual sim


30.07.2017
I pomoglo mi je. Očistio sam utičnicu za punjenje i radilo je.


18.08.2017
Hvala, i meni je pomoglo, očistila sam gnijezdo, i u redu


11.09.2017
Hvala vam na pomoći ... već sam htio kupiti novi telefon ...) ali sada sve radi, puni se!


14.09.2017
Vaš savjet je bio od velike pomoći.


24.03.2018
Bio je ovaj problem na htc desire 500, popeo sam se po svim forumima praktički ništa nije pomoglo. Nakon čišćenja utičnice za punjenje. To je jedini način rješavanja problema. Kada se ova greška izvuče, povucite okidač, držite pritisnutu samu grešku, tako da se pojavi stavka "informacije o aplikaciji", idite tamo, to će biti "Postavke". Brišemo podatke. Nisam ni trebao ponovno pokrenuti telefon.


16.04.2018
Zatvaraju izlaze u USB konektoru. Kad je punjenje uključeno, kabel punjača radi kao otg kabel. Vi samo trebate očistiti gnijezdo!

Svaka USB sabirnica mora imati jedan (i samo jedan!) Host – računalo s USB kontrolerom. Međutim, pojam računala ne podrazumijeva samo uobičajene verzije stolnih, podnih, prijenosnih računala. Računalo je kombinacija procesora, memorije i perifernih uređaja; u tom smislu većina modernih uređaja ima ugrađena računala. Ako je "inteligencija" ovog računala i njegove mogućnosti dijaloga s korisnikom dovoljna, onda ono može preuzeti ulogu USB hosta. O ovoj opciji domaćina raspravlja se u posljednjem odjeljku ovog poglavlja.

"Klasični" USB host podijeljen je u tri glavna sloja:

  • USB sučelje sabirnice pruža fizičko sučelje i protokol sabirnice. Sučelje sabirnice implementira glavni kontroler koji ima ugrađeno korijensko čvorište koje pruža fizičke točke povezivanja na sabirnicu (USB tip “A” utičnice). Glavni kontroler odgovoran je za generiranje mikrookvirova. Na razini hardvera, glavni kontroler komunicira s glavnom memorijom računala koristeći izravno upravljanje sabirnicom kako bi se smanjilo opterećenje središnjeg procesora;
  • USB sustav, koristeći host kontroler(e), prevodi klijentovu "viziju" razmjene podataka s uređajima - IRP zahtjeve (I/O Request Packet) - u transakcije koje se obavljaju sa stvarnim uređajima sabirnice. Sustav je također odgovoran za dodjelu USB resursa – propusnost i napajanje (za uređaje koji se napajaju iz sabirnice). Sustav se sastoji od tri glavna dijela:
  1. upravljački program host kontrolera - HCD (Host Controller Driver) - modul vezan za određeni model kontrolera, pružajući apstrakciju USB drajvera i omogućavajući uključivanje nekoliko različitih tipova kontrolera u jedan sustav;
  2. USB upravljački program - USBD (USB Driver) - Omogućuje glavno sučelje (USBDI) između klijenata i USB uređaja. Sučelje upravljačkog programa Host Controller (HCDI) između USBD-a i HCD-a nije regulirano USB specifikacijom. Definiraju ga dobavljači OS-a i moraju ga podržavati dobavljači host kontrolera koji žele imati podršku specifičnu za OS za svoje proizvode. Klijenti ne mogu koristiti HCDI sučelje; njima je namijenjeno USBDI sučelje. USBD pruža mehanizam razmjene u obliku IRP-a koji zahtijevaju prijenos podataka preko danog kanala. Osim toga, USBD je odgovoran za neki apstraktni prikaz USB uređaja klijentu, što omogućuje upravljanje konfiguracijom i stanjem uređaja (uključujući standardno upravljanje krajnjom točkom "0"). Implementaciju USBDI sučelja određuje operativni sustav; USB specifikacija daje samo općenite ideje;
  3. Softver host implementira funkcije potrebne za funkcioniranje USB sustava u cjelini: otkrivanje povezivanja i odspajanja uređaja i poduzimanje odgovarajućih radnji na tim događajima (učitavanje potrebnih upravljačkih programa), numeriranje uređaja, dodjeljivanje propusnosti i potrošnje energije, upravljanje stanje potrošnje energije itd.
  • USB klijenti su softverske stavke (aplikacije ili komponente sustava) koje komuniciraju s USB uređajima. Klijenti mogu komunicirati s bilo kojim uređajima (skupovi njihovih dostupnih krajnjih točaka uključeni u odabrana sučelja) spojenim na USB sustav. Međutim, USB sustav izolira klijente od izravne komunikacije s bilo kojim portovima (u I/O prostoru) ili memorijskim ćelijama koje predstavljaju dio sučelja USB kontrolera.

Zajedno, razine domaćina pružaju sljedeće mogućnosti:

  • otkrivanje spajanja i odspajanja USB uređaja;
  • manipulacija kontrolnim tokovima između uređaja i hosta;
  • manipulacija tokovima podataka;
  • prikupljanje statistike aktivnosti i stanja uređaja;
  • kontrola električnog sučelja između glavnog kontrolera i USB uređaja, uključujući upravljanje napajanjem.

Softverski dio hosta u potpunosti je implementiran od strane operativnog sustava. Prije pokretanja OS-a može funkcionirati samo skraćeni dio USB softvera, koji podržava samo uređaje potrebne za pokretanje. Dakle, u BIOS-u modernih matičnih ploča postoji podrška za USB tipkovnicu, koja implementira funkcije usluge Int 9h. Nakon pokretanja USB sustava ova podrška za "pre-boot" se zanemaruje - sustav počinje raditi s kontrolerom "od nule", odnosno resetiranjem i otkrivanjem svih povezanih uređaja. Specifikacija PC'2001 postavlja brojne zahtjeve BIOS-a, posebno zahtjev za podrškom pokretanja OS-a s USB uređaja.

Host kontroler djeluje kao hardverski posrednik između USB uređaja i hosta. Trenutno postoje tri specifikacije host kontrolera, svaka sa svojim vlastitim skupom upravljačkih programa hosta:

  • UHC (Universal Host Controller) je univerzalni host kontroler za USB 1.x sabirnicu, koji je razvio Intel;
  • OHC (Open Host Controller) je "otvoreni" host kontroler za USB 1.x sabirnicu koju su razvili Compaq, Microsoft i National Semiconductor;
  • EHC (Enhanced Host Controller) je poboljšani host kontroler koji podržava USB 2.0 sabirnicu velike brzine.

Svi ovi kontroleri obavljaju iste zadatke: organiziraju fizičke transakcije s uređajima putem USB sabirnice u skladu s opisima (deskriptorima) tih transakcija, koje u RAM sustava postavlja upravljački program host kontrolera. Međutim, transakcije različitih vrsta se različito obrađuju. Što se tiče rukovanja pogreškama, izokrone transakcije su najjednostavnije, gdje se pogreške ne moraju ponovno pokušavati. U slučaju pogrešaka, prijenosne transakcije s zajamčenom dostavom zahtijevaju ponovne pokušaje do kraja ili priznavanje neuspjeha (ograničenje dopuštenog broja ponovnih pokušaja je iscrpljeno). S gledišta rasporeda, treba istaknuti periodične transakcije, koje se moraju izvoditi strogo prema rasporedu, ostalo - kako se ispostavilo, i stavljaju se u red čekanja. Zbog zakazivanja i mogućih ponovnih pokušaja, redoslijed završetka obrade deskriptora transakcija (uspješan ili ne) razlikovat će se od redoslijeda njihovog postavljanja u memoriju1, što povećava brige glavnog kontrolera i njegovog pokretača. Tri opcije host kontrolera rješavaju ove probleme na različite načine i koriste različite strategije raspoređivanja transakcija, kao što je prikazano u tablicama u nastavku.

Intelov UHC host kontroler pojavio se u PIIX3 (PCI-ISA Bridge) čipu na skupovima čipova matične ploče za Pentium procesore i koristi se u mnogim kasnijim Intelovim proizvodima. Ovo je FS / LS host kontroler koji većinu raspoređivanja transakcija prenosi na softver - upravljački program UHC kontrolera (UHCD). Sučelje UHC kontrolera opisano je u Vodiču za dizajn Universal Host Controller Interface (UHCI), verzija 1.1 objavljena 1996. godine.

UHC upravljački program generira deskriptore za glavni kontroler, koji se u UHCI-ju nazivaju "deskriptori prijenosa" (TD - Transfer Descriptor), koji zapravo opisuju svaku transakciju sabirnice. Podsjetimo da se u smislu USB specifikacije jedan prijenos može sastojati od nekoliko transakcija, a kontrolni prijenosi također koriste različitu vrstu transakcije za svaku fazu. Za transakcije prijenosa zajamčene isporuke, TD deskriptori moraju biti stavljeni u red čekanja. Za takve prijenose potrebni su redovi, budući da se unaprijed ne zna koliko ćete puta morati pokušati izvršiti. Napredovanje reda moguće je tek nakon uspješnog izvršenja transakcije u glavi reda - ovo pravilo osigurava zajamčenu narudžbu (unutar vlastitog reda) isporuke paketa. Svaki red ima svoj naslov (QH). Izokroni prijenosi se uvijek izvršavaju jednom (ovdje nema zajamčene isporuke), što pojednostavljuje njihovo zakazivanje. Pogonitelj dodjeljuje TD i QH deskriptore u memoriju i povezuje ih zajedno u skladu s planom izvršenja transakcije u svakom okviru. UHC vozač mora izraditi detaljan "raspored" za svaki budući okvir, za koji se koristi Popis okvira od 1024 okvira. Host kontroler prelazi popise deskriptora počevši od točke na koju pokazuje Popis okvira za trenutni okvir i izvodi odgovarajuće transakcije. Rezultat izvršenja transakcije označen je u njezinom deskriptoru, dovršena transakcija označena je kao "neaktivna", a kontroler, nailazeći na nju tijekom sljedećeg kružnog putovanja, jednostavno prelazi na sljedeću. Upravljački program mora povremeno pregledavati deskriptore, dohvaćajući one koji su već obrađeni i prosljeđujući rezultate izvršenja klijentskom upravljačkom programu. Logika kontrolera podrazumijeva da jedan I/O zahtjev (IRP) od klijentskog drajvera može odgovarati nekoliko "transfera" - elemenata reda čekanja. UHC upravljački program dijeli zahtjev na transakcije i postavlja deskriptore tih transakcija u odgovarajući red čekanja, a red čekanja uključuje u najbliže planove. Vozač je odgovoran za balansiranje opterećenja sabirnice u svakom okviru, posebno za osiguranje da je najmanje 10% propusnosti osigurano za transakcije prijenosa kontrole. Okvirno raspoređivanje također osigurava potrebnu frekvenciju pristupa periodičnim prijenosnim točkama.

UHC kontroler je aktivni PCI uređaj (Bus-Master). Glavna interakcija upravljačkog programa s glavnim kontrolerom odvija se pomoću deskriptora koji se nalaze u memoriji. Kontroler ima registre (u I/O prostoru) koji se mogu koristiti za kontrolu njegovog ponašanja: resetiranje, globalno obustavljanje i buđenje, podešavanje brzine kadrova, upravljanje zahtjevima za prekide, upravljanje portovima ugrađenog root huba. Kontroler vam omogućuje rad u načinu otklanjanja pogrešaka, zaustavljajući se nakon izvršenja svake transakcije.

Tijekom izvršavanja plana, kontroler čita deskriptore i podatke potrebne za pokretanje transakcije iz memorije. Čim iz memorije u FIFO međuspremnik kontrolera stigne dovoljno informacija za pokretanje transakcije, kontroler pokreće transakciju na USB sabirnici. Tijekom njegovog izvršenja prenose se podaci, nakon završetka, kontroler modificira deskriptore u memoriji u skladu s uvjetima za završetak transakcije. Tijekom obrade transakcije može doći do grešaka FIFO prekoračenja ili prekoračenja zbog preopterećenja kontrolera sistemske memorije ili PCI sabirnice. Ove ozbiljne pogreške pokreću hardverske prekide. Host kontroler također uključuje root hub za 2 ili više portova.

Prekide iz UHC-a mogu pokrenuti različiti događaji, kao što su izvršenje transakcija (favoriti), detekcija prijema kratkog paketa, prijem signala za nastavak ili kao rezultat pogreške. Regulator ne stvara prekide za spajanje i odspajanje uređaja.

UHC kontroler ima posebnu podršku za tradicionalno sučelje tipkovnice i miša preko 8042 kontrolera - presretanje poziva na portove 60h i 64h I/O prostora. Kada je emulacija omogućena za softverske pozive na ove portove, UHC poziva SMI prekida sustava (System Management Interrupt), koji se obrađuje na računalu na x86 procesorima u SMM (način upravljanja sustavom), nevidljiv normalnim programima. SMI rukovatelj, koji presreće te pozive, generira slijed radnji potrebnih za njihovo izvršenje pomoću USB tipkovnice i/ili miša. Jedina iznimka je kada se presretnu naredbe koje kontroliraju GateA20 vrata - umjesto generiranja SMI-a, ovim se vratima manipulira hardverski (kao što se već dugo radilo u 8042). Ova hardverska podrška omogućena je postavljanjem odgovarajućih parametara CMOS Setup.

Velika neugodnost rada s UHC-om proizlazi iz potrebe za programskim skeniranjem svih deskriptora prijenosa kako bi se identificirali dovršeni. Ručice dovršenih prijenosa moraju se programski dohvatiti iz lanaca uz održavanje kohezije elemenata. Planiranje transakcija (sastavljanje popisa deskriptora i zaglavlja) također je prilično naporan zadatak za vozača. Očito, cilj je bio pojednostaviti hardver glavnog kontrolera. Međutim, to može rezultirati ovisnošću učinkovite izvedbe USB sabirnice o snazi ​​i opterećenju središnjeg procesora. Ovaj pristup I/O organizaciji teško se može nazvati učinkovitim.

Upravljački program stvara Popis okvira od 1024 unosa u memoriji sustava. Svaki element ovog popisa sadrži 32-bitni pokazivač na povezani popis struktura podataka na kojima kontrolor obavlja transakcije u ovom okviru. Host kontroler ima registar osnovne adrese popisa okvira koji pokazuje na početak popisa. Trenutni broj elementa koji se obrađuje određen je s deset najmanje značajnih bitova brojača okvira koji se nalazi u kontroleru i povećava se svake milisekunde. Razdoblje brojanja okvira može se neznatno mijenjati promjenom konstante unesene u SOF Modify Register, koji pruža mogućnost podešavanja brzine sličica za sinkronizaciju izokronih razmjena.

Unos popisa okvira može ukazivati ​​ili na deskriptor izokronog prijenosa TD (Descriptor prijenosa) ili (ako u ovom okviru nije planirana izokrona razmjena) na zaglavlje reda QH (glava čekanja). Ako u ovom okviru uopće nisu planirani prijenosi, tada se element postavlja na "stub" T (Završi, kraj povezane liste, u ovom slučaju - prazan). Podsjetimo još jednom da se ovdje riječ "prijenos" (prema UHCI specifikaciji) koristi u užem smislu - odgovara jednoj transakciji (prijenos ne više od jednog paketa podataka). Element (32-bitna riječ) ima format prikazan na donjoj slici. FLLP (Frame List Link Pointer) polje - pokazivač na element; bit T - znak zadnjeg elementa (za T = 1, FLLP pokazivač je nevažeći). Q bit specificira klasu pridružene stavke na koju ukazuje FLLP (0 - TD, 1 - QH).

Za svaki okvir s popisa postavljen je vlastiti lanac deskriptora izokronog prijenosa (moguće prazan), posljednji iz ovog lanca mora se odnositi na lanac zaglavlja reda. Lanci QH mogu se dijeliti u skupini okvira ili čak u svim okvirima na popisu. Opća ideja čekanja je stvaranje reda čekanja za svaki uspostavljeni kanal (za sve konfigurirane točke osim izokronih). Metoda "dežurne" usluge je horizontalna, tada će se nakon dovršetka transakcije s jednom točkom kontrolor premjestiti na drugu točku (drugi red čekanja). Povezivanje TD i QH kroz pokazivače omogućuje vam da formirate proizvoljne konfiguracije prijelaza iz jednog reda u drugi, pa čak i napravite petlje - u potonjem slučaju, moguće je da će nekoliko transakcija imati vremena proći s jednom točkom u okviru. Međutim, ovo je netipičan način planiranja. Ako postoji mnogo redova čekanja (instalirano je mnogo kanala), oni se raspoređuju po okvirima (s popisa od 1024 elementa) tako da lanac svakog okvira mora ići vodoravno do kraja. To se može planirati jer je maksimalno vrijeme obrade jednog elementa svakog reda (kao i izokrone transakcije) unaprijed poznato (određeno je vrstom prijenosa, maksimalnom veličinom paketa i brzinom uređaja koja je poznata USB sustav). Ako je potrebno, "horizontalna pravednost" može se narušiti postavljanjem vertikalnog redoslijeda usluge - kontroler, nakon što je uspješno obradio prijenos iz reda čekanja sa predznakom V = 1, ići će na sljedeći deskriptor iz istog reda, a ne na sljedeći red.

Deskriptore prijenosa i zaglavlja reda postavlja upravljački program u RAM na adrese poravnate odlomcima, budući da se samo najznačajnijih 28 bitova koristi kao pokazivači (bitovi se koriste za značajke usluge).

Deskriptor prijenosa (TD) sastoji se od 32 bajta, od kojih domaćin koristi samo prve četiri 32-bitne riječi DW0-DW3. Riječi DW4-DW7 rezervirane su za korištenje od strane vozača UHC-a (za organiziranje "odvoza smeća" - ponovna uporaba otpadnih područja). Format deskriptora prijenosa prikazan je na donjoj slici. Polja modificirana od strane glavnog kontrolera označena su sivom bojom.

V riječ DW0 polje Pokazivač veze slično je polju FLLP, a T i Q bitovi su slični odgovarajućim bitovima unosa u popisu okvira. Bit V - TD servisna metoda (1 - duboko, 0 - široko).

Riječ DW1 koristi se za kontrolu i određivanje statusa napretka prijenosa, modificiranog od strane glavnog kontrolera. Polje ActLen stvarna je duljina prenesenih podataka; polje Status - status prijenosa:

duljina prenesenih podataka; polje Status - status prijenosa:

  • bit 23: Aktivan - "mora biti izvršen", postavljen od strane upravljačkog programa, poništen od strane kontrolera nakon uspješnog izvršenja ili kada je iscrpljeno ograničenje ponovnog pokušaja;
  • bit 22: Stalled - točka je odgovorila STALL paketom;
  • bit 21: Greška međuspremnika podataka - pogreška međuspremnika podataka (prelijevanje ili prekoračenje FIFO-a pri izvršavanju transakcije), transakcija ostaje aktivna (kada se resetuje, kontroler generira paket s pogrešnim CRC-om, kada se prepuni, ne odgovara priznanje);
  • bit 20: Babble - tijekom izvršenja ove transakcije detektirano je "čavrljanje" uređaja (onemogućeno je i postavljen je Stalled bit);
  • bit 19: NAK - primitak odgovarajućeg odgovora (u SETUP transakciji, primitak NAK-a također postavlja znak greške isteka);
  • bit 18: CRC / Time Out Error - otkrivena je greška u prijenosu (CRC ili timeout);
  • bit 17: Bitstuff Error - Otkrivena je pogreška u umetanju bita.

Bitovi se koriste za kontrolu prijenosa. IOC bit naređuje prekid izvršenja (prekid se generira na kraju okvira, čak i ako je transakcija već neaktivna, dohvaćanje njenog deskriptora će pokrenuti prekid). ISO bit je znak izokronog prijenosa (indikacija da se ne ponavljaju pokušaji). LS bit je indikacija LS uređaja, koristite preambulu prije prijenosa. Polje C_ERR je brojač ponovnih pokušaja smanjen za svaku pogrešku. Prijelaz na 1 ili 0 uzrokuje da deskriptor postane neaktivan. Ako upravljački program postavi vrijednost na nulu, broj ponovnih pokušaja je neograničen. SPD bit - detektor kratkih paketa: ako je u IN transakciji u redu čekanja uspješno primljeno manje podataka od očekivanog, tada se generira uvjet prekida na kraju okvira.

Riječ DW2 sadrži informacije za izvršenje transakcije: ID paketa - tip korištenog tokena IN (69h), OUT (E1h) ili SETUP (2Dh); Adresa uređaja— adresa USB uređaja; EndPt - broj i smjer krajnje točke. Bit D (Data Toggle) - stanje prekidača za odaslani ili poslani paket. MaxLength polje - duljina odaslanih podataka (maksimalna duljina primljenih podataka), 000 - 1 bajt, 001 - 2, 3FF - 1024; 7FFh - 0 (prazan paket). Važeće vrijednosti do 4FFh su 1280 bajtova, teorijsko ograničenje kapaciteta okvira. Vrijednosti 500-7FEh su nevažeće i uzrokuju fatalnu pogrešku kontrolera.

DW3 sadrži Buffer Pointer, pokazivač na RAM međuspremnik koji se koristi za podatke ovog prijenosa.

Zaglavlje reda (QH) povezuje redove jedan s drugim (horizontalno) i upućuje na prvi element (TD) danog reda. Host kontroler koristi dvije 32-bitne riječi (pogledajte sljedeću sliku). Polje QHLP (Pokazivač veze na glavu čekanja) sadrži pokazivač na sljedeće zaglavlje reda (horizontalna veza). QELP (Queue Element Link Pointer) polje sadrži pokazivač na element reda čekanja (vertikalna veza). Atributi posljednjeg elementa (T) i klasa povezanog elementa (Q) slični su atributima i klasama istog imena u gornjim strukturama.

Deskriptor zaglavlja reda generira upravljački program; host kontroler mijenja QELP pokazivač u memoriji: nakon uspješnog završetka transakcije, kontroler uzima pokazivač na sljedeći element iz DW0 svog deskriptora i postavlja ga na mjesto QELP u zaglavlju reda. Tako se uspješno završeni TD uklanja iz reda čekanja. Kada se zadnji TD izbriše, zastavica praznog reda (T) se postavlja u QELP. U slučaju nepopravljive pogreške tijekom obrade nekog deskriptora, u QELP se također instalira "stub" T - stream s zajamčenom isporukom ne dopušta propuštanje bilo koje transakcije. Polje QELP može se odnositi i na TD (trivijalno zakazivanje) i na QH — sam red može sadržavati redove.

Model UHC registra objašnjen je u donjoj tablici, koja prikazuje registre preslikane na I/O prostor. Osim toga, kao i svaki PCI uređaj, UHC kontroler ima registre u konfiguracijskom prostoru, u kojima su, posebno, kodovi klasa (0Ch - kontroler serijske sabirnice), podklasa (03 - USB) i softversko sučelje (00) u PCI SIG postavljena je klasifikacija.

Stol. UHC registri kontrolera

Adresa Ugovoreni sastanak
Baza + (00-01h)

USBCMD - USB naredbeni registar

Bitovi 15: 8 - rezerva
Bit 7: MAXP (Max Packet) - dopuštena veličina paketa (za FS) s kojom
transakcija je moguća kada se približi kraju okvira: 1 = 64 bajta, 0 = 32 bajta

Bit 6: CF (Configure Flag) - zastavica kojom vozač označava kraj procesa
konfiguriranje kontrolera (softverski semafor za softver)
Bit 5: SWDBG (Softversko otklanjanje pogrešaka) - Kontrola otklanjanja pogrešaka: 1 = Način otklanjanja pogrešaka (Stop
nakon svake transakcije), 0 - normalno
Bit 4: FGR (Force Global Resume) - Globalni signal
wake-up. Postavljeno softverom, resetiranje hardverom na kraju
buđenje
Bit 3: EGSM (Enter Global Suspend Mode) - prijenos u globalni način rada
suspenzije
Bit 2: GRESET (Global Reset) - opće resetiranje kontrolera i USB sabirnice
Bit 1: HCRESET (Resetiranje glavnog kontrolera) - Poništite glavni kontroler
Bit 0 RS (Run / Stop) kontrola rada kontrolera: 1 = Run - izvršenje
transakcije prema planu, 0 = Stop - stop

Baza + (02-03h)

USBSTS - USB statusni registar

Bitovi - rezerva
Bit 5: HCHalted - kontroler zaustavljen, softver ili hardver (greškom
ili prilikom otklanjanja pogrešaka)
Bit 4: Procesna pogreška Host Controllera - fatalna pogreška u izvršavanju (kan
nastaju zbog netočne postavke PID-a u deskriptoru transakcije), poziva
prekinuti
Bit 3: Host System Error - greška sustava (problemi u PCI sučelju),
uzrokuje prekid
Bit 2: Otkrivanje nastavka - primanje signala za nastavak (s globalnom
suspenzija)
Bit 1: USB Error Interrupt - znak prekida zbog greške u izvršavanju
transakcije (prelijevanje ili prekoračenje PCI sabirnice FIFO)
Bit 0: USBINT (USB Interrupt) - prekid transakcije
s postavljenim IOC bitom ili primanjem kratkog paketa (kada je
detekcija kratkog rafala)

Baza + (04-05h)

USBINTR - registar za omogućavanje prekida

Bitovi - rezerva
Bit 3: Omogući prekid kratkog paketa - omogući prekide pri prijemu
kratki paket
Bit 2: IOC (Interrupt On Complete Enable) - omogući prekide po završetku
transakcije
Bit 1: Omogući nastavak prekida - omogući prekide pri prijemu signala
obnova
Bit 0: Timeout / CRC Interrupt Enable - omogući prekide greškom
timeout i CRC kontrola

Baza + (06-07h) FRNUM - registar brojeva okvira
Baza + (08-0Bh) FRBASEADD - registar osnovne adrese liste okvira
Baza + 0Ch

SOFMOD - Registar kontrole brzine kadrova

Bitovi - kontrola trajanja okvira: 0 - 11936 bita, 1 - 11937 bita, ...
63 - 11999 bita, 64 - 12000 bita (tipično), 65 - 12001 bit, 127 - 12063 bita

Baza + (10-11h)

PORTSC1 - port 1 kontrolni i statusni registar

Bitovi - rezervirano (0)
Bit 12: (R / W) Suspend - Obustavite priključak
Bitovi - rezervirano (0)
Bit 9: (R / W) Port Reset - reset porta

Bit 8: (RO) Priložen uređaj male brzine - znak veze LS uređaja
Bit 7 - rezerva (1)
Bit 6: (RW) Nastavi detektiranje - Nastavi otkrivanje signala. Snimi "1"
uzrokuje generiranje signala za nastavak na portu, nakon čega slijedi pisanje
"0" - kraj signala za nastavak i slanje LS-EOP bitova: (RO) -
trenutno stanje linija D- i D +
Bit 3: (R / WC) Port Enable / Disable Change - znak automatske zabrane
port greškom, obrisan pisanjem "1"
Bit 2: (R / W) Port Omogućen / Onemogućen - omogući rad porta
Bit 1: (R / WC) Promjena statusa veze - znak događaja veze /
odspojite uređaj
Bit 0: (RO) Current Connect Status - znak spojenog uređaja

Specifikacije OpenHCI Open Host Controller Interface (OHCI) su razvili Compaq, Microsoft i National Semiconductor i opisana je u specifikaciji sučelja Open Host Controller za USB. Verzija 1.0a ovog dokumenta objavljena je 1999. godine. OHC kontroler, kao i UHC, dizajniran je da podržava FS / LS brzine. Međutim, OHC hardver se brine za većinu problema s rasporedom, oslobađajući CPU od gnjavaže s konstantnom obradom deskriptora. OHC radi s deskriptorima krajnje točke i deskriptorima prijenosa.

Deskriptori krajnje točke (ED) generiraju se za sve konfigurirane krajnje točke svih povezanih uređaja. Ovi deskriptori su dodijeljeni u memoriji i povezani zajedno; konfiguracija veza specificira redoslijed kojim se servisiraju od strane glavnog kontrolera. Deskriptor krajnje točke opisuje njegovu punu adresu i smjer, vrstu, dopuštenu veličinu paketa, brzinu, status točke i deskriptora, pokazivače na red prijenosa koji je povezan s ovom točkom i pokazivač na deskriptor sljedeće točke. Za sve kontrolne točke (Control) i sve prijenosne točke nizova (Bulk) kreiraju se zasebni ED lanci, posebni OHC registri upućuju na početak ovih lanaca. Periodični deskriptori točaka prijenosa organizirani su u posječeno binarno stablo (vidi sliku dolje), u čijim se granama nalaze deskriptori točke prekida, a u deblu se nalaze deskriptori prekidne točke s minimalnim servisnim intervalom i svi izokroni deskriptori točaka prijenosa. Stablo ima 32 terminalne grane, prolaz kroz stablo se vrši od terminalnih grana do debla. U svaki od 32 susjedna okvira unos se vrši iz vlastite grane. Da bi to učinio, OHC ima registar osnovne adrese HCCA (Host Controller Communication Area), koji pokazuje na broj grane 0, i brojač okvira, od kojih 5 bitova s ​​najmanjim značajem postavlja broj ulazne grane za sljedeći okvir. Dakle, rukovatelj deskriptorom prolazi kroz svaku granu pete (konačne) razine 1 put u 32 okvira (T = 32 ms), četvrtog - 1 put u 16 okvira (T = 16 ms), za treću razinu - T = 8 ms, za drugi - T = 4 ms, za prvi - T = 2 ms, za nulu (trunk) - T = 1 ms.

Deskriptori prijenosa TD (Descriptor prijenosa), za razliku od TD UHC, za OHC stvarno opisuju USB prijenose. Svaki prijenos može se podijeliti na više transakcija, a podjelu obavlja glavni kontroler na temelju veličine paketa postavljene u deskriptoru krajnje točke. Podatkovni međuspremnik za prijenos može se nalaziti na jednoj ili dvije fizičke stranice memorije, po mogućnosti razbacane. U virtualnom logičkom adresnom prostoru, međuspremnik mora biti susjedna regija. Veličina prijenosa može biti do 8 KB, ali ako međuspremnik ne počinje s početka stranice, tada će se dopuštena veličina prijenosa smanjiti (u najgorem slučaju do 4097 bajtova). Deskriptori prijenosa skupljaju se u redovima koji su pridruženi deskriptorima krajnje točke.

OHC host kontroler ima mjerače vremena koje koristi za planiranje transakcija u okviru. Nakon SOF-a, kontroler počinje zaobilaziti ED lanac za prijenose kontrole i izvodi ih onoliko koliko može u vremenu T1. Zatim počinje prelaziti stablo periodičnog prijenosa, od n-te konačne grane do debla, sve dok ne prijeđe sve ED-ove na koje naiđe. Ako još ima vremena u kadru, ponovno preuzima neperiodične prijenose (Bulk and Control). Upravljač skuplja razrađene (uspješno ili izbrisane prekoračenjem praga pogreške) deskriptore u poseban red obrađenih deskriptora Done Queue, odakle ih vozač lako dohvaća. Upravljač može generirati prekide po završetku obrade TD-a i s određenim (za svaki TD) odgodom (ili ne generirati zahtjev). OHC ima registar za podešavanje brzine kadrova. Kontroler također uključuje root hub za 2 ili više portova.

OHC kontroler, kao i UHC, obično je aktivni PCI (Bus Master) uređaj, ali je inteligentniji od UHC-a. Kontroler pruža podršku za kontroler tipkovnice i miša (KBC) koristeći SMI prekide, ali za razliku od UHC-a, OHC također ima posebne registre kako bi se pojednostavio zadatak emulacije.

Vrhunski povezani članci