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

USB OTG u pametnom telefonu: šta 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 skraćenicu USB OTG. Prvi dio je poznat i razumljiv sa fleš 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. Hajde da shvatimo zašto je OTG potreban na mobilnom uređaju.

USB OTG: šta je to

OTG je skraćenica za "on-the-go", tj. u bijegu. Standard omogućava uređajima da "razgovaraju" jedni s drugima bez pomoći posrednika. Recimo da ste odlučili da odštampate fotografije sa svog pametnog telefona ili kopirate fajlove sa njega na USB fleš disk, ali niste imali računar pri ruci. šta da radim? Trčite u trgovinu po poseban kabel (fotografija ispod). Uz pomoć takve "vezice" možete direktno povezati svoj pametni telefon sa gotovo bilo kojim uređajem putem USB-a, zaobilazeći posrednika u obliku računara ili laptopa.

Mogućnosti USB OTG-a se tu ne završavaju. Pametni telefon može da deluje kao USB host, omogućavajući vam da povežete razne periferne uređaje - tastaturu, miš, pa čak i muzičke instrumente sa odgovarajućim kontrolerom.

USB OTG ima svoj logo. Izvadite pakovanje pametnog telefona ili tableta i pogledajte kutiju. Ako vidite logotip za standard, onda uređaj podržava taj korisni standard. Ako je pakovanje odavno izgubljeno, utipkajte model vašeg pametnog telefona i skraćenicu OTG u bilo koju tražilicu i pročitajte tehničke specifikacije na prvom linku, podrška za standard će svakako biti spomenuta. Alternativa je preuzimanje besplatne aplikacije USB Host Diagnostic sa 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 online trgovini.

Šta se može uraditi sa OTG-om

Standard vam omogućava da povežete razne uređaje 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čunar, ne koristite skladište u oblaku, a memoriju na vašem pametnom telefonu gotovo u potpunosti zauzimaju filmovi, muzika, fotografije i video zapisi. Izlaz je da kupite hard disk (eksterni), OTG kabl i koristite drajv kao uređaj za pravljenje rezervnih kopija podataka. Alternativna opcija je korištenje velikog fleš diska.

Koji uređaji vam omogućavaju povezivanje na pametni telefon OTG

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

  • Flash disk.
  • Eksterni čvrsti disk.
  • Tastatura.
  • Miš.
  • MIDI klavijature i drugi muzički uređaji.
  • Još jedan pametni telefon ili tablet.
  • Kontroler igre (kao što je Xbox gamepad).
  • Štampač.
  • Prijenosni skener.

23.1. Opis kanala

Za USB host kontroler, termin „kanal” se koristi umesto termina „krajnja tačka” koji se koristi za kontroler USB uređaja. Kanal domaćina odgovara krajnjoj tački uređaja kako je opisano u USB specifikaciji.

Slika 23.1. Kanali i krajnje tačke u USB sistemu

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

23.2. Odvoji se

Vrijednost DETACH bita nakon resetovanja je 1. Stoga, softver mora obrisati ovaj bit prije prelaska u host mod (postavljanje bita HOST).

23.3. Uključite i resetirajte

Dijagram ispod 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 resetovanja je "reset". Kada je USB kontroler omogućen i odabran način rada domaćina, USB kontroler je u stanju mirovanja. U ovom 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" mod. Host kontroler prelazi u suspendovano stanje kada je USB magistrala u suspendovanom stanju, tj. kada host kontroler ne generiše početak okvira. U ovom stanju, potrošnja USB kontrolera je minimalna. Host kontroler izlazi iz suspendovanog stanja kada počne generirati SOF na USB liniji.

23.4. Otkrivanje uređaja

USB kontroler detektuje uređaj kada se stanje USB magistrale razlikuje od niskog nivoa na obe linije D+ i D-. Drugim riječima, kada USB host kontroler detektuje 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 detektuje isključenje uređaja u stanju mirovanja koje odgovara niskim nivoima na USB D + i D- linijama.

23.5. Odabir kanala

Kanal mora biti odabran prije bilo kakve operacije od strane CPU-a. Ovo se radi postavljanjem bita PNUM2: 0 (UPNUM registar) u skladu sa brojem kanala sa 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 niz radnji.


Slika 23.3. Koraci za aktiviranje kanala

Nakon što je kanal aktiviran (podešen je EPEN bit), kontroler je spreman za slanje zahtjeva uređaju. Nakon konfiguracije (CFGOK = 1), mogu se promijeniti samo marker kanala (PTOKEN) i interval prozivanja za izohroni kanal. Kontrolni kanal podržava samo 1 banku. Bilo koja druga vrijednost će rezultirati greškom u konfiguraciji (CFGOK = 0).

Resetovanje PEN-a resetuje konfiguraciju kanala. Svi registri vezani za kanal su postavljeni na svoje zadane vrijednosti. Za više detalja pogledajte poglavlje Upravljanje memorijom.

Napomena: softver mora konfigurirati kontrolni kanal sa sljedećim parametrima:

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

Softver zahtijeva 8-bajtni Deskriptor uređaja slanjem GET_DESCRIPTOR zahtjeva. Ovi bajtovi sadrže maksimalnu veličinu paketa (MaxPacketSize) kontrolne tačke uređaja, a softver rekonfiguriše 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 se postavlja hardverom kada se pošalje USB zahtjev za resetiranje. Ovo 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 suspendovana (SOFEN = 0), USB kontroler se automatski prebacuje u režim nastavljanja (HWUPI bit je postavljen) i hardver postavlja SOFEN bit da se generiše odmah nakon USB SOF resetovanja.

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. Domaćin kontroler bi trebao poslati reset na USB uređaj i poslati kontrolni zahtjev SET ADDRESS s novom adresom koju bi uređaj trebao koristiti. Nakon što završi ovaj kontrolni zahtjev, softver bi trebao upisati novu adresu u UHADDR registar. Svi naredni zahtjevi na svim kanalima će se obavljati preko 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 suspend mod 3ms kasnije. Uređaj nastavlja sa hostom slanjem Upstream Resume. Host kontroler detektuje stanje mirovanja na USB magistrali i postavlja HWUPI bit. Ako stanje bez mirovanja odgovara udaljenom buđenju (stanje K), tada se RXRSMI bit postavlja u hardveru. Postavljanjem bita RESUME, softver mora poslati zahtjev za nastavak rada uređaja u roku od 1 ms i u trajanju od najmanje 20 ms. Nakon što se pošalje zahtjev za nastavak, SOFEN bit se automatski postavlja u hardveru da generiše SOF čim se usluga nastavi.

Tako očigledna i u isto vrijeme luda tehnologija poput USB-Hosta nekoliko je puta doživjela zoru i zaborav na mobilnim uređajima. Sada, u eri dominacije na tržištu Android uređaja, ova tehnologija je ponovo popularna. U 2013. godini ne trebaju vam nikakvi skupi nezgrapni adapterski kablovi da povežete USB uređaj sa pametnim telefonom ili tabletom. 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 nije, zašto je tako i koji problemi mogu nastati 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 povezana na tablete. Sve je otrcano: ubacili su USB fleš disk i on postaje dostupan ili u fascikli unutar memorije uređaja, ili u fascikli pored memorijske kartice. Najčešće će se fascikla 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 sisteme datoteka za čitanje i pisanje. Čak i NTFS i ExFat - posvećeni ljubiteljima FullHD videa.

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

Jedina poteškoća na koju sam naišao bila je potpuna nevoljkost da radim sa USB fleš diskom za pokretanje. Ako ste omogućili instaliranje sistema sa vašeg fleš diska, onda ga svi Android uređaji neće prepoznati. Od čega zavisi, nisam mogao da saznam. Srećom, ovo se ne pojavljuje često.

Tastature, miševi

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

Danas Android besprijekorno podržava povezivanje bilo koje tastature i miša. Žičano i bežično, sa istog adaptera i sa različitih, direktno i preko huba, sve će raditi. Svi tasteri rade na tastaturi. Ako raspored ruske tastature nije podržan, onda će vas spasiti programi poput ruske tastature. Prebacivanje između jezika se podrazumevano vrši pomoću Ctrl-Space.

Kada je miš povezan, na ekranu će se prikazati crni kursor. Neki uređaji se mogu konfigurisati da rade i u režimu miša i u režimu pokreta. Najčešće, lijevo dugme radi kao dodir na ekran, a desno kao dugme Nazad ili Meni. Sve ovo se može konfigurisati ili iz sistemskih postavki ili iz drugih aplikacija.

3G modemi

Ako tablet nema 3G modul ili je verzija s njim preskupa, onda možete pokušati povezati vanjski modem preko USB-Hosta. Da biste to učinili, morate ga prebaciti u način rada "Samo modem". To se može uraditi i na računaru 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 komande kroz "Terminal", na što se neće svi složiti.

Također postoji problem gdje podrška za modem nije implementirana u kernelu sistema. To se obično radi na uređajima s instaliranim 3G modulom i na većini brendiranih pametnih telefona i tableta. Kinezi se, po 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 podešavanja i drajvera odmah nakon umetanja modema u port. Postavke veze se unose preko web interfejsa.

Sljedeći utorak- nastavak teme. Sačekaj objavu« Povezujemo Android uređaj na video karticu i džojstik

maska

Telefon je prestao da se puni... Prikazuje obaveštenje: "Režim "USB-host" je omogućen, u ovom režimu baterija se 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. Upomoć!



Da li se pojavljuje kada je uključen u utičnicu?

Sofi

Situacija je potpuno ista... I pri punjenju iz mreže i sa računara... HTC Desire 601. Možete li mi reći da li je problem riješen?



+1 tražim rješenje. POMOĆ!



Isto na jednom


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


01.02.2015
Isti problem, režim USB-host se uključuje, punjenje ne radi. Htc desire 500, sve je počelo nakon zamjene displeja.


22.03.2015
Isti problem, režim USB-host se uključuje, punjenje ne radi. Htc desire 500, u početku se punio u isključenom stanju, a sada i svaki drugi put. Takođe može da odaje energiju tokom punjenja.


09.04.2015
Da li je neko našao rešenje?


05.05.2015
Problem je i sa HTC One. šta da radim? Osim toga, kada je povezan sa računarom, računar ga ne vidi. Puni se samo kada je isključen.


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


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


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


13.07.2015
U postavkama - za programere - isključite USB host


20.07.2015


20.07.2015
Nema funkcije u postavkama - poništite izbor USB hosta


17.09.2015
Molimo vas da detaljnije opišete gdje tačno u postavkama ukloniti ovo polje za potvrdu?


25.09.2015
Pomaže mi ponovno pokretanje telefona (u meniju za isključivanje) kada je punjač uključen. Ponekad pomaže sljedeći slijed radnji: uklonite poruku (!) O radu u režimu usb hosta, onemogućite mob. Internet, upali osrednje. Ali generalno, ovo je kost, neko ko zna bi se odjavio.



10.11.2015
Nema kvačica. Hike bol


19.11.2015
Da, toliko sam hvalio htc, sad sam upao u istu nevolju! Htc one mini 2


21.11.2015
Zdravo momci. 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 našao ništa prikladno. Kao rezultat toga, došlo je do generalnog resetovanja... Ispustio sam ga, nadajući se čudu fabričkih podešavanja, rezultatu mojih radnji, telefon je prazan, problem je isti... Otišao sam kod prijatelja sutradan momak radi na popravci mobitela, otvorili su telefon, ali na moje iznenadjenje sve je bilo super, on skuplja telefon, ja ćutim i mislim gdje da iskopam mobitel sad... Na kraju svojih radnji, nakon što je sklopio telefon, poprskao je sredstvo za čišćenje (ne znam koji, ali mislim da je u radionicama i dobićete ga besplatno) u utičnicu za punjenje i potrošio par puta čačkalicom (očišćena). I srećan kraj, htc one mini 2, je savršeno funkcionisao. Nadam se da ce pomoci jos nekome)


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ćeg dana, 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 da tupi


08.08.2016
Komad muke kupljen za više od 20! Kamera "G", sa problemom punjenja... HTC mi je pao u oci... Prebacio na jabuku...


31.10.2016
Bacite svoj USB kabl u smeće i kupite drugi. Problem je zaista u ovom gnijezdu. Otbrpl sam od supruge iz Samsunga i sve radi. Onda sam sebi kupio novi, ali sam ga pokvario, onda sam počeo da propadam kao domaćin. Ukratko, nemojte bockati tamo 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 se ne zabode u njega? šta da radim?


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!


12.03.2017
Isti problem, ali se puni sa kompjutera, 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čistio 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. Ovo je jedini način da se problem riješi. Kada se ova greška izbaci, povucite zatvarač, držite samu grešku, tako da se pojavi stavka "informacije o aplikaciji", idite tamo, to će biti "Postavke". Brišemo podatke. Nisam čak ni morao da restartujem telefon.


16.04.2018
Zatvaraju izlaze u USB konektoru. Kada je punjenje uključeno, kabl punjača radi kao otg kabl. Samo treba da očistite gnezdo!

Svaka USB magistrala mora imati jedan (i samo jedan!) Host - računar sa USB kontrolerom. Međutim, pojam računara ne podrazumeva samo uobičajene verzije desktop, podnih, laptop računara. Računar je kombinacija procesora, memorije i perifernih uređaja; u tom smislu većina modernih uređaja ima ugrađene računare. Ako je "inteligencija" ovog računara i njegove mogućnosti dijaloga sa korisnikom dovoljna, onda on može preuzeti ulogu USB hosta. O ovoj opciji domaćina govori se u posljednjem dijelu ovog poglavlja.

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

  • USB interfejs sabirnice obezbeđuje fizički interfejs i bus protokol. Interfejs magistrale implementiran je od strane glavnog kontrolera koji ima ugrađeno root čvorište koje pruža fizičke tačke povezivanja sa magistralom (USB tip “A” utičnice). Host kontroler je odgovoran za generiranje mikrookvirova. Na nivou hardvera, glavni kontroler komunicira sa glavnom memorijom računara koristeći direktno upravljanje magistralom kako bi se smanjilo opterećenje centralnog procesora;
  • USB sistem, koristeći host kontroler(e), prevodi klijentovu "viziju" razmjene podataka sa uređajima - IRP zahtjeve (I/O Request Packet) - u transakcije koje se obavljaju sa stvarnim bus uređajima. Sistem je takođe odgovoran za alokaciju USB resursa – propusni opseg i napajanje (za uređaje koji se napajaju sa magistrale). Sistem se sastoji od tri glavna dela:
  1. drajver host kontrolera - HCD (Host Controller Driver) - modul vezan za određeni model kontrolera, koji obezbeđuje apstrakciju USB drajvera i omogućava da se nekoliko različitih tipova kontrolera uključi u jedan sistem;
  2. USB drajver - USBD (USB drajver) - Obezbeđuje glavni interfejs (USBDI) između klijenata i USB uređaja. Interfejs upravljačkog programa Host Controller (HCDI) između USBD-a i HCD-a nije regulisan USB specifikacijom. Definiraju ga proizvođači OS-a i moraju ga podržavati dobavljači host kontrolera koji žele da imaju podršku specifičnu za OS za svoje proizvode. Klijenti ne mogu koristiti HCDI interfejs; USBDI interfejs je namenjen njima. USBD obezbeđuje mehanizam razmene u obliku IRP-a koji zahtevaju transport podataka preko datog kanala. Pored toga, USBD je odgovoran za neki apstraktni prikaz USB uređaja klijentu, što omogućava upravljanje konfiguracijom i stanjem uređaja (uključujući standardno upravljanje krajnjom tačkom "0"). Implementaciju USBDI interfejsa određuje operativni sistem; USB specifikacija daje samo opšte ideje;
  3. Softver domaćina implementira funkcije neophodne za funkcioniranje USB sistema u cjelini: otkrivanje povezivanja i prekida veze uređaja i poduzimanje odgovarajućih radnji na tim događajima (učitavanje potrebnih drajvera), numeriranje uređaja, dodjeljivanje propusnog opsega i potrošnje energije, upravljanje stanje potrošnje energije itd.
  • USB klijenti su softverske stavke (aplikacije ili sistemske komponente) koje komuniciraju sa USB uređajima. Klijenti mogu komunicirati sa bilo kojim uređajima (skupovi njihovih dostupnih krajnjih tačaka uključeni u odabrane interfejse) povezanim na USB sistem. Međutim, USB sistem izoluje klijente od direktne komunikacije sa bilo kojim portovima (u I/O prostoru) ili memorijskim ćelijama koje predstavljaju deo interfejsa USB kontrolera.

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

  • detekcija povezivanja i isključenja 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 interfejsa između glavnog kontrolera i USB uređaja, uključujući upravljanje napajanjem.

Softverski dio hosta je u potpunosti implementiran od strane operativnog sistema. 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 tastaturu, koja implementira funkcije usluge Int 9h. Nakon pokretanja USB sistema ova podrška za "pre-boot" se ignoriše - sistem počinje da radi sa kontrolerom "od nule", odnosno resetovanjem i detekcijom svih povezanih uređaja. Specifikacija PC'2001 postavlja brojne BIOS zahtjeve, posebno zahtjev za podrškom pokretanja OS-a sa 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:

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

Svi ovi kontroleri obavljaju iste zadatke: organizuju fizičke transakcije sa uređajima preko USB magistrale u skladu sa opisima (deskriptorima) ovih transakcija, koje drajver host kontrolera stavlja u sistemsku RAM memoriju. Međutim, transakcije različitih vrsta se različito obrađuju. Što se tiče rukovanja greškama, izohrone transakcije su najjednostavnije, gde greške ne treba ponovo pokušavati. U slučaju grešaka, transakcije prenosa sa garantovanom isporukom zahtevaju ponovne pokušaje do kraja ili da priznaju neuspeh (ograničenje dozvoljenog broja pokušaja je iscrpljeno). Sa stanovišta rasporeda, treba istaknuti periodične transakcije, koje se moraju izvoditi striktno prema rasporedu, ostalo - kako se ispostavilo, i stavljaju se u red. Zbog zakazivanja i mogućih ponovnih pokušaja, redoslijed završetka obrade deskriptora transakcija (uspješan ili ne) će se razlikovati od redoslijeda njihovog postavljanja u memoriju1, što dodatno povećava brige host kontrolora i njegovog drajvera. Tri opcije host kontrolera rješavaju ove probleme na različite načine i koriste različite strategije raspoređivanja transakcija, kao što je ilustrovano u tabelama ispod.

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 narednim Intelovim proizvodima. Ovo je FS / LS host kontroler koji većinu planiranja 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 drajver generiše deskriptore za host kontroler, koji se u UHCI-ju nazivaju "deskriptori prenosa" (TD - Transfer Descriptor), u stvari, koji opisuju svaku transakciju magistrale. Podsjetimo da se u smislu USB specifikacije, jedan prijenos može sastojati od nekoliko transakcija, a kontrolni prijenosi također koriste različite vrste transakcija za svaku fazu. Za transakcije prijenosa zajamčene isporuke, TD deskriptori moraju biti stavljeni u red čekanja. Za takve prijenose su potrebni redovi, jer se ne zna unaprijed koliko puta ćete morati pokušati da ih izvršite. Napredovanje reda je moguće tek nakon uspješnog izvršenja transakcije u glavi reda - ovo pravilo osigurava zagarantovani redosled (unutar sopstvenog reda) isporuke paketa. Svaki red ima svoj naslov (QH). Izohroni transferi se uvijek izvršavaju jednom (ovdje nema zagarantovane isporuke), što pojednostavljuje njihovo zakazivanje. Drajver dodeljuje TD i QH deskriptore u memoriju i povezuje ih zajedno u skladu sa planom izvršenja transakcije u svakom okviru. UHC drajver mora napraviti detaljan "raspored" za svaki budući okvir, za koji se koristi Lista okvira od 1024 okvira. Host kontroler prelazi liste deskriptora počevši od tačke na koju ukazuje Lista okvira za trenutni okvir i izvodi odgovarajuće transakcije. Rezultat izvršenja transakcije je označen u njenom deskriptoru, završena transakcija je označena kao "neaktivna", a kontrolor, kada naiđe na nju tokom sledećeg kružnog putovanja, jednostavno prelazi na sledeći. Drajver mora periodično pregledavati deskriptore, preuzimajući one koji su već obrađeni i prosleđujući rezultate izvršenja klijentskom drajveru. Logika kontrolera podrazumijeva da jedan I/O zahtjev (IRP) od klijentskog drajvera može odgovarati nekoliko "transfera" - elemenata reda čekanja. UHC drajver dijeli zahtjev na transakcije i postavlja deskriptore tih transakcija u odgovarajući red čekanja, a red se uključuje u najbliže planove. Vozač je odgovoran za balansiranje opterećenja magistrale u svakom okviru, posebno za osiguranje da je najmanje 10% propusnog opsega osigurano za transakcije prijenosa kontrole. Okvirno raspoređivanje također osigurava potrebnu frekvenciju pristupa periodičnim prijenosnim tačkama.

UHC kontroler je aktivni PCI uređaj (Bus-Master). Glavna interakcija drajvera sa 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: resetovanje, globalno suspendovanje i buđenje, podešavanje brzine kadrova, upravljanje zahtevima za prekide, kontrola portova ugrađenog root čvorišta. Kontroler vam omogućava da radite u debug modu, zaustavljajući se nakon izvršavanja svake transakcije.

Tokom izvršavanja plana, kontroler čita deskriptore i podatke potrebne za pokretanje transakcije iz memorije. Čim iz memorije u FIFO bafer kontrolera stigne dovoljno informacija za pokretanje transakcije, kontroler započinje transakciju na USB magistrali. U toku njegovog izvršenja prenose se podaci, nakon završetka, kontroler modifikuje deskriptore u memoriji u skladu sa uslovima za završetak transakcije. Tokom obrade transakcije, može doći do grešaka FIFO prekoračenja ili prekoračenja zbog preopterećenja kontrolera sistemske memorije ili PCI magistrale. Ove ozbiljne greške pokreću hardverske prekide. Host kontroler također uključuje root hub za 2 ili više portova.

Prekidi iz UHC-a mogu biti pokrenuti raznim događajima, kao što su izvršenje transakcija (favoriti), detekcija prijema kratkog paketa, prijem signala za nastavak ili kao rezultat greške. Kontroler ne stvara prekide za povezivanje i isključivanje uređaja.

UHC kontroler ima posebnu podršku za tradicionalni interfejs tastature 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 sistemski prekid SMI (System Management Interrupt), koji se obrađuje na PC-u na x86 procesorima u SMM (režim upravljanja sistemom), nevidljiv normalnim programima. SMI rukovalac, koji presreće ove pozive, generiše redosled akcija neophodnih za njihovo izvršenje pomoću USB tastature i/ili miša. Jedini izuzetak se pravi kada se presretnu komande koje kontrolišu kapiju GateA20 - umesto generisanja SMI-a, ovom kapijom se manipuliše hardverski (kao što je već dugo urađeno u 8042). Ova hardverska podrška je omogućena postavljanjem odgovarajućih parametara CMOS podešavanja.

Velika neugodnost rada sa UHC-om proizilazi iz potrebe da se programski skeniraju svi deskriptori prijenosa kako bi se identificirali završeni. Ručice dovršenih transfera moraju se programski izvući iz lanaca uz održavanje kohezije elemenata. Planiranje transakcija (sastavljanje lista deskriptora i zaglavlja) je takođe prilično naporan zadatak za vozača. Očigledno, cilj je bio pojednostaviti hardver host kontrolera. Međutim, to može rezultirati ovisnošću efektivnih performansi USB magistrale o snazi ​​i opterećenju centralnog procesora. Ovakav pristup I/O organizaciji teško se može nazvati efikasnim.

Drajver kreira listu okvira od 1024 unosa u sistemskoj memoriji. Svaki element ove liste sadrži 32-bitni pokazivač na povezanu listu struktura podataka na kojima kontrolor obavlja transakcije u ovom okviru. Host kontroler ima registar osnovne adrese liste okvira koji pokazuje na početak liste. Trenutni broj elementa koji se obrađuje određen je sa deset najmanje značajnih bitova brojača okvira koji se nalazi u kontroleru i povećava se svake milisekunde. Period brojanja okvira može se malo mijenjati promjenom konstante unesene u SOF Modify Register, koji pruža mogućnost podešavanja brzine kadrova radi sinhronizacije izohronih razmjena.

Unos liste okvira može ukazivati ​​ili na deskriptor izohronog prijenosa TD (Descriptor prijenosa), ili (ako nije planirana izohrona razmjena u ovom okviru) na zaglavlje reda QH (glava reda). 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č "transfer" (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 slici ispod. FLLP (Frame List Link Pointer) polje - pokazivač na element; bit T - znak poslednjeg 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 sa liste postavljen je vlastiti lanac deskriptora izohronog prijenosa (moguće prazan), posljednji iz ovog lanca mora se odnositi na lanac zaglavlja reda. Lanci QH mogu se dijeliti preko grupe okvira ili čak u svim okvirima na listi. Opća ideja čekanja je da se kreira red za svaki uspostavljeni kanal (za sve konfigurirane točke osim izohronih). Metoda "dežurne" usluge je horizontalna, a zatim nakon završetka transakcije sa jednom tačkom, kontrolor će preći na drugu tačku (drugi red). Povezivanje TD i QH kroz pokazivače omogućava vam da formirate proizvoljne konfiguracije prijelaza iz jednog reda u drugi, pa čak i napravite petlje - u drugom slučaju, moguće je da će nekoliko transakcija imati vremena da prođe s jednom tačkom u okviru. Međutim, ovo je netipičan način planiranja. Ako postoji mnogo redova (instalirano je mnogo kanala), onda se oni raspoređuju po okvirima (sa liste od 1024 elementa) tako da lanac svakog okvira mora ići horizontalno do kraja. Ovo se može planirati jer je maksimalno vrijeme za obradu jednog elementa svakog reda (kao i izohrone transakcije) unaprijed poznato (određeno je tipom prijenosa, maksimalnom veličinom paketa i brzinom uređaja koja je poznata USB sistem). Ako je potrebno, "horizontalna pravičnost" se može narušiti postavljanjem vertikalnog reda usluge - kontrolor, nakon što je uspješno obradio prijenos iz reda sa znakom V = 1, preći će na sljedeći deskriptor iz istog reda, a ne na sledeći red.

Deskriptori prenosa i zaglavlja reda postavljaju drajver u RAM na adrese poravnate paragrafima, pošto se samo najznačajnijih 28 bitova koriste kao pokazivači (bitovi se koriste za uslužne karakteristike).

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

V riječ DW0 Polje Link Pointer je slično polju FLLP, a T i Q bitovi su slični odgovarajućim bitovima unosa liste 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 je stvarna dužina prenetih podataka; polje Status - status transfera:

dužina prenetih podataka; polje Status - status transfera:

  • bit 23: Aktivan - "mora biti izvršen", postavljen od strane drajvera, poništen od strane kontrolera nakon uspješnog izvršenja ili kada je ograničenje ponovnog pokušaja iscrpljeno;
  • bit 22: Zaustavljen - tačka je odgovorila sa STALL paketom;
  • bit 21: Greška bafera podataka - greška bafera podataka (prelivanje ili prekoračenje FIFO-a pri izvršavanju transakcije), transakcija ostaje aktivna (po resetovanju, kontroler generiše paket sa pogrešnim CRC-om, kada se prepuni, ne odgovara sa priznanje);
  • Bit 20: Brbljanje - tokom izvršenja ove transakcije detektovano je "čavrljanje" uređaja (onemogućeno je i postavljen bit Stalled);
  • bit 19: NAK - prijem odgovarajućeg odgovora (u SETUP transakciji, prijem NAK-a takođe postavlja znak greške vremenskog ograničenja);
  • bit 18: CRC / Time Out Error - otkrivena greška u prijenosu (CRC ili timeout);
  • bit 17: Bitstuff Error - Otkrivena je greška u umetanju bita.

Bitovi se koriste za kontrolu prijenosa. IOC bit naređuje prekid izvršenja (prekid se generiše na kraju okvira, čak i ako je transakcija već neaktivna, dohvaćanje njenog deskriptora će pokrenuti prekid). ISO bit je znak izohronog prenosa (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 greš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 na kraju okvira generiše uslov prekida.

Riječ DW2 sadrži informacije za izvršenje transakcije: ID paketa - tip tokena koji se koristi 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 - dužina prenetih podataka (maksimalna dužina 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 grešku kontrolera.

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

Zaglavlje reda (QH) povezuje redove jedan s drugim (horizontalno) i upućuje na prvi element (TD) datog reda. Host kontroler koristi dvije 32-bitne riječi (pogledajte sljedeću sliku). QHLP (pokazivač veze glave reda) polje sadrži pokazivač na sljedeće zaglavlje reda (horizontalna veza). Polje QELP (Pokazivač veze elementa reda) sadrži pokazivač na element reda (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 drajver; host kontroler modificira 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 posljednji TD izbriše, zastavica praznog reda (T) se postavlja u QELP. U slučaju nepopravljive greške prilikom obrade nekog deskriptora, "stub" T je također instaliran u QELP - tok sa zagarantovanom isporukom ne dozvoljava da se propusti nijedna transakcija. QELP polje se može odnositi i na TD (trivijalno zakazivanje) i na QH — sam red može sadržavati redove.

Model UHC registra je objašnjen u tabeli ispod, koja prikazuje registre mapirane u 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 magistrale), podklasa (03 - USB) i softverski interfejs (00) u PCI SIG klasifikacija je postavljena.

Table. UHC registri kontrolera

Adresa Imenovanje
Baza + (00-01h)

USBCMD - USB komandni registar

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

Bit 6: CF (Configure Flag) - oznaka kojom vozač označava kraj procesa
konfigurisanje kontrolera (softverski semafor za softver)
Bit 5: SWDBG (Softversko otklanjanje grešaka) - Kontrola otklanjanja grešaka: 1 = Režim za otklanjanje grešaka (Stop
nakon svake transakcije), 0 - normalno
Bit 4: FGR (Force Global Resume) - Globalni signal
Postavljeno softverom, resetovanje hardverom na kraju
buđenje
Bit 3: EGSM (Enter Global Suspend Mode) - prebacivanje u globalni mod
suspenzije
Bit 2: GRESET (Global Reset) - generalno resetovanje kontrolera i USB magistrale
Bit 1: HCRESET (Host Controller Reset) - Resetujte host 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 grešaka)
Bit 4: Procesna greška Host Controller - fatalna greška u izvršenju (can
nastaju zbog neispravne PID postavke u deskriptoru transakcije), poziva
prekinuti
Bit 3: Host System Error - sistemska greška (problemi u PCI interfejsu),
uzrokuje prekid
Bit 2: Otkrivanje nastavka - Prijem signala za nastavak (sa globalnim
suspenzija)
Bit 1: USB Error Interrupt - znak prekida zbog greške u izvršenju
transakcije (prelivanje ili prekoračenje PCI sabirnice FIFO)
Bit 0: USBINT (USB Interrupt) - prekid transakcije
sa 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ćava prekide po završetku
transakcije
Bit 1: Omogući nastavak prekida - omogući prekide pri prijemu signala
obnavljanje
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 bazne adrese liste okvira
Baza + 0Ch

SOFMOD - Registar kontrole brzine kadrova

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

Baza + (10-11h)

PORTSC1 - port 1 kontrolni i statusni registar

Bitovi - rezervirano (0)
Bit 12: (R / W) Suspend - Suspendiraj port
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 otkrivanje - Nastavi detekciju signala. Snimi "1"
uzrokuje generiranje signala za nastavak na portu, nakon čega slijedi upis
"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 je 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) Trenutni status veze - znak povezanog 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 Controllera 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 oko planiranja, oslobađajući CPU od gnjavaža konstantne obrade deskriptora. OHC radi s deskriptorima krajnjih tačaka i deskriptorima prijenosa.

Deskriptori krajnje tačke (ED) se generišu za sve konfigurisane krajnje tačke svih povezanih uređaja. Ovi deskriptori su dodijeljeni u memoriji i povezani zajedno; konfiguracija veza specificira redoslijed kojim ih host kontroler servisira. Deskriptor krajnje tačke opisuje njegovu punu adresu i pravac, tip, dozvoljenu veličinu paketa, brzinu, status tačke i deskriptora, pokazivače na red za prenos povezan sa ovom tačkom i pokazivač na deskriptor sledeće tačke. Odvojeni ED lanci se kreiraju za sve kontrolne tačke (Control) i sve tačke prenosa nizova (Bulk), specijalni OHC registri ukazuju na početak ovih lanaca. Periodični deskriptori tačaka prenosa organizovani su u oboreno binarno stablo (vidi sliku ispod), u čijim granama se nalaze deskriptori tačke prekida, au deblu se nalaze deskriptori tačke prekida sa minimalnim servisnim intervalom i svi izohroni deskriptori tačke prenosa. Stablo ima 32 krajnje grane, prolaz kroz stablo se vrši od krajnjih grana do debla. U svaki od 32 susjedna okvira unos se vrši iz svoje grane. Da bi to uradio, OHC ima registar bazne adrese HCCA (Host Controller Communication Area), koji ukazuje na broj grane 0, i brojač okvira, od kojih 5 bitova sa najmanjim značajem postavljaju broj ulazne grane za sledeći okvir. Dakle, rukovalac deskriptorom prolazi kroz svaku granu petog (konačnog) nivoa 1 put u 32 okvira (T = 32 ms), četvrtog - 1 put u 16 okvira (T = 16 ms), za treći nivo - 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 zaista opisuju USB prijenose. Svaki prijenos se može podijeliti na više transakcija, a podjelu vrši host kontroler na osnovu veličine paketa postavljene u deskriptoru krajnje točke. Međuspremnik podataka za prijenos može se nalaziti na jednoj ili dvije fizičke stranice memorije, eventualno raštrkane. U virtuelnom logičkom adresnom prostoru, bafer mora biti susedna regija. Veličina prijenosa može biti do 8 KB, ali ako bafer ne počinje od početka stranice, tada će se dozvoljena veličina prijenosa smanjiti (u najgorem slučaju do 4097 bajtova). Deskriptori prijenosa se skupljaju u redovima koji su pridruženi deskriptorima krajnje točke.

OHC host kontroler ima tajmere 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 da prelazi stablo periodičnog prenosa, od n-te konačne grane do debla, sve dok ne pređe sve ED-ove na koje naiđe. Ako još ima vremena u kadru, ponovo preuzima neperiodične prijenose (Bulk i Control). Kontroler prikuplja razrađene (uspješno ili obrisane prekoračenjem praga greške) deskriptore u poseban red obrađenih deskriptora Done Queue, odakle ih vozač lako preuzima. Kontroler može generirati prekide po završetku obrade TD-a i sa 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 aktivan PCI (Bus Master) uređaj, ali je inteligentniji od UHC-a. Kontroler pruža podršku za kontroler tastature i miša (KBC) koristeći SMI prekide, ali za razliku od UHC-a, OHC takođe ima posebne registre da pojednostavi zadatak emulacije.

Top srodni članci