If-Koubou

Există un protocol de comunicare USB actual?

Există un protocol de comunicare USB actual? (Cum să)

Cei mai mulți dintre noi nu ne gândim prea mult la dispozitivele USB, le conectăm și le uităm. Dar dacă sunteți tipul curios care vrea să știe mai multe despre modul în care funcționează USB-ul? Postarea de astăzi SuperUser Q & A are răspunsurile la întrebările curioase ale cititorului.

Sesiunea de întrebări și răspunsuri din ziua de astăzi vine de la amabilitatea SuperUser - o subdiviziune a Stack Exchange, o grupare bazată pe comunitate a site-urilor Q & A.

Cu dragostea lui Evilelka Kowalski (Flickr).

Intrebarea

Cititorul super-utilizator smeeb dorește să știe dacă există într-adevăr un protocol de comunicare USB actual:

Potrivit Wikipedia, USB:

  • Definește cablurile, conectorii și protocoalele de comunicație utilizate într-o magistrală pentru conexiune, comunicație și alimentare între calculatoare și dispozitive electronice.

Dar există o realitate Protocolul de comunicare USB? Intelegerea mea este ca:

  1. Conectați un dispozitiv USB la o mașină (de exemplu Ubuntu sau orice alt tip de Linux).
  2. Linux găsește cumva driverul de dispozitiv pentru acel dispozitiv (bonus dacă știi!) și îl încarcă.
  3. Aparatul este acum conectat sub / Dev / dispozitivului nu.
  4. Aplicațiile spațiului utilizator pot citi și scrie acum / Dev / dispozitivului nu iar conducătorul auto gestionează intrarea și ieșirea la nivel inferior la dispozitivul / hardware-ul de bază.

În măsura în care pot spune, a Protocolul de comunicare USB nu apare nicăieri în acest flux. Dacă înțelegerea mea este corectă, USB-ul este doar conexiunea prin cablu și electric între PC și dispozitiv.

Am greșit aici? Dispune USB de fapt un tip de protocol de nivel scăzut care subliniază fluxul de mai sus? Dacă da, ce este și cum funcționează la o vedere de 30.000 de picioare?

Există un protocol de comunicare USB actual?

Răspunsul

Utilizatorii SuperUser RedGrittyBrick și projectdp au răspunsul pentru noi. În primul rând, RedGrittyBrick:

Da (consultați protocoalele USB).

După cum am înțeles, specificația USB definește un set complex de protocoale stratificate și profiluri ale dispozitivelor.

De exemplu, dispozitivele USB se pot conforma șabloanelor de nivel înalt, cum ar fi spațiul de stocare în masă, tastatura, dispozitivul de interfață umană etc. și pot fi gestionate de un driver generic de dispozitive. Unele dispozitive USB pot comunica la un nivel inferior, astfel încât suportul USB la nivel scăzut al sistemului de operare să poată recunoaște că sunt necesare drivere de nivel superior pentru anumite dispozitive.

Urmat de răspunsul de la projectdp:

Întrebare

Există un protocol de comunicare USB la nivel scăzut în acțiune și ce este?

Răspuns

Da este. Specificația USB include protocolul USB care definește modul în care busul este utilizat la un nivel de biți. Acesta ar fi protocolul de nivel scăzut care stă la baza protocoalelor de nivel superior (adică stocarea în masă, HID, etc.).

Pentru specificațiile privind funcționarea protocolului USB, acest wiki OSDev este de ajutor. Iată o altă descriere interesantă care utilizează diagrame de secvențe pentru a descrie diferitele tranzacții de date pe protocolul USB.

Bonus Întrebare

Cum detectează Linux și încarcă driverul de dispozitiv pentru dispozitivul respectiv?

Răspunsul bonusului

Pe Linux, când se utilizează un kernel compatibil USB, dispozitivul USB de lucru va fi detectat prin hardware și kernel datorită specificației USB. Pe partea hardware, detectarea se face de către controlerul USB Host. Apoi, în kernel, driver-ul de controler gazdă preia și traduce biți de nivel inferior de pe fir la informația formatată de protocolul USB. Aceste informații sunt apoi introduse în driverul usbcore din kernel.

Am parafrazat din acest articol excelent Opensourceforu, care are mult mai multe detalii și claritate cu privire la întrebarea dvs. în contextul Linux.

Asigurați-vă că pentru a verifica restul de discuții plin de viață prin intermediul link-ul thread de mai jos!

Aveți ceva de adăugat la explicație? Sunați în comentarii. Doriți să citiți mai multe răspunsuri de la alți utilizatori de tehnologie Stack Exchange? Check out discuția completă aici.