14Aug
Većina od nas nikada ne daje puno misli na naše USB uređaje, samo ih priključite i zaboraviti o njima. Ali što ako ste znatiželjni tip koji želi znati više o tome kako funkcionira USB?Današnji SuperUser Q & A post ima odgovore na pitanja čudnih čitatelja.
Današnje pitanje &Sesija odgovora nam dolazi zahvaljujući SuperUseru - podjele Stack Exchange, grupiranjem zajednice Q & A web stranica.
Fotografija ljubaznošću Evilelke Kowalski( Flickr).
Pitanje
SuperUser čitač smeeb želi znati postoji li doista aktualni USB komunikacijski protokol:
Prema Wikipediji, USB:
- Određuje kabele, konektore i komunikacijske protokole koji se koriste u autobusu za povezivanje, komunikaciju i napajanje izmeđuračunala i elektroničkih uređaja.
Ali postoji li stvarni USB komunikacijski protokol ?Moje razumijevanje je:
- Spojite USB uređaj na računalo( npr. Ubuntu ili bilo kakav Linux).
- Linux na neki način pronađe pogonitelj uređaja za taj uređaj( bonus ako znate! ) i učitava ga.
- Uređaj je sada povezan pod uređajem /dev/ theDevice .
- Aplikacije za korisničke prostorije sada mogu čitati i pisati na uređaju /dev/ the i vozač upravlja ulazom i izlazom male razine na temeljni uređaj / hardver.Što se tiče mogu? Nosti, nijedan nijedan nijedan korak u ovom tijeku ne prikazuje nijedan nijedan nijedan nijedan nijedan. Ako je moje razumijevanje ispravno, USB je samo kabelska i električna veza između računala i uređaja. Jesam li ovdje pogrešno? Da li USB zapravo provodi neku vrstu niske razine protokol koji naglašava protok iznad? Ako da, što je to i kako funkcionira na 30.000 stopa?
Postoji li stvarni USB komunikacijski protokol?
Odgovor
SuperUser suradnici RedGrittyBrick i projectdp imaju odgovor za nas. Prvo, RedGrittyBrick:
Da( pogledajte USB protokole).
Kao što sam je razumio, USB spec. Definira složeni skup slojevitih protokola i profila uređaja. Primjerice, USB uređaji mogu se prilagoditi predlošcima visoke razine kao što su masovna pohrana, tipkovnica, uređaj za ljudsko sučelje itd., A upravlja se genericnim upravljačkim programom uređaja. Neki USB uređaji mogu komunicirati na nižoj razini tako da podrška za USB na niskoj razini operacijskog sustava može prepoznati da su potrebni upravljački programi za višu razinu uređaja.
Slijedi odgovor na projectdp:
Pitanje
Postoji li USB komunikacijski protokol niske razine u akciji i što je to?
Odgovor
Da, postoji. USB specifikacija uključuje USB protokol koji definira način korištenja sabirnice na razini malo. To bi bio niskopropusni protokol koji je podložan protokolu viših razina( tj. Masovno pohranjivanje, HID, itd.).
Za detalje o tome kako funkcionira USB protokol, ovaj OSDev wiki je koristan. Evo još jednog zanimljivog opisa pomoću dijagrami shema za opisivanje različitih transakcija podataka po USB protokolu.
Bonus pitanje
Kako Linux pronalazi i učitava upravljački program za taj uređaj?
Bonus odgovor
Na Linuxu kada koristite USB kernel, radni USB uređaj će biti otkriven preko hardvera i kernela zbog USB specifikacije. Na strani hardvera detekcija obavlja USB kontroler računala. Zatim u kernelu upravljački program kontrolera glavnog računala preuzima i prevodi niske razine bitova na žicu na formatirane informacije o USB protokolu. Te informacije zatim dobivaju naseljen u usbcore upravljačkom programu u kernelu. Parafrazao sam iz ovog izvrsnog članka o Opensourceforu, koji ima mnogo više detalja i jasnoće o vašem pitanju u Linux kontekstu.
Pazite da provjerite ostatak živahne rasprave putem veze niti koja je podijeljena u nastavku!
Imate li što dodati objašnjenju? Zvuči u komentarima.Želite li pročitati više odgovora od drugih tehnoloških korisnika Stack Exchangea? Pogledajte ovdje cijelu raspravu.