14Aug

Ali obstaja dejanski USB komunikacijski protokol?

Večina od nas nikoli ne razmišlja veliko o naših USB napravah, samo jih priključimo in jih pozabimo. Kaj pa, če ste radovedni tip, ki želi vedeti več o tem, kako USB deluje? Današnji SuperUser Q & Objava ima odgovore na radovedna vprašanja bralca.

Današnje vprašanje &S sejo odgovora prihaja uporaba SuperUserja, ki je razdeljena na Stack Exchange, skupinsko spletno stran Q & A.

Foto: Evilelka Kowalski( Flickr).

Vprašanje

bralnik SuperUser smeeb želi vedeti, ali je resnično dejanski USB komunikacijski protokol:

V skladu z Wikipedijo, USB:

  • Opredeljuje kable, spojnike in komunikacijske protokole, ki se uporabljajo v avtobusu za povezavo, komunikacijo in napajanje medračunalniki in elektronske naprave.

Ampak ali obstaja dejansko USB komunikacijski protokol ?Moje razumevanje je, da:

  1. USB napravo povežete z napravo( na primer Ubuntu ali katera koli vrsta Linuxa).
  2. Linux najde gonilnik naprave za to napravo( bonus , če veste! ) in ga naloži.
  3. Naprava je zdaj priključena v /dev/ theDevice .
  4. Uporabniški prostorski programi zdaj lahko berete in pišete v /dev/ theDevice in gonilnik z vhodom in izhodom na nižji ravni obravnava osnovno napravo / strojno opremo.

Kolikor lahko povem, USB Communication Protocol se ne prikaže nikjer v tem toku.Če je moje razumevanje pravilno, je USB le kabelska in električna povezava med računalnikom in napravo.

Ali sem tukaj narobe? Ali USB dejansko izvaja nekakšen nizkotonski protokol, ki podčrta zgornji tok?Če je odgovor pritrdilen, kaj je to in kako deluje pri 30.000 metrih noge?

Ali obstaja dejanski USB komunikacijski protokol?

Odgovarjajoči odgovori

SuperUser RedGrittyBrick in projectdp imajo odgovor za nas. Najprej gor, RedGrittyBrick:

Da( glejte USB protokole).

Kakor razumem, specifikacija USB določa kompleksen niz slojevitih protokolov in profilov naprav.

Na primer, naprave USB se lahko skladajo z visokokakovostnimi predlogami, kot so množično shranjevanje, tipkovnico, človeško vmesniško napravo itd. In jih upravlja splošni gonilnik naprave. Nekatere naprave USB lahko komunicirajo na nižji ravni, tako da lahko podpora za nizko raven USB za operacijski sistem prepozna, da so potrebni gonilniki višjih gonilnikov, specifični za naprave.

Sledi odgovor projekta projectdp:

Vprašanje

Ali v delovanju obstaja nizkotonski komunikacijski protokol USB in kaj je to?

Odgovor

Da, obstaja. Specifikacija USB vključuje protokol USB, ki določa način uporabe avtobusa na ravni bitov. To bi bil nizek nivo protokola, na katerem temeljijo protokoli višjega nivoja( tj. Množično shranjevanje, HID itd.).

Za specifike o tem, kako deluje protokol USB, je ta wiki OSDev v pomoč.Tukaj je še en zanimiv opis s pomočjo sekvencnih diagramov, ki opisujejo različne podatkovne transakcije na protokolu USB.

Bonus vprašanje

Kako Linux najde in naloži gonilnik naprave za to napravo?

Bonus Answer

Na Linuxu, ko uporabljate jedro z omogočeno USB, bo delovna USB naprava zaznana prek strojne opreme in jedra zaradi specifikacij USB.Na strani strojne opreme zaznavanje opravi gostiteljski krmilnik USB.Nato v jedru upravitelj gostiteljskega nadzornika prevzame in prevede nizke bitove na žici v informacije, zapisane s protokolom USB.Te informacije nato postanejo v gonilniku usbcore v jedru.

Prerasel sem iz tega odličnega članka Opensourceforu, ki ima veliko več podrobnosti in jasnosti o vašem vprašanju v kontekstu Linuxa.

Preverite ostalo živahno razpravo prek spodnje povezave spodaj!

Ali želite dodati nekaj pojasnila? Zvok v komentarjih.Želite prebrati več odgovorov od drugih uporabniških članov stack Exchange? Oglejte si celotno temo za razpravo tukaj.