14Aug

Onko olemassa todellinen USB-yhteysprotokolla?

Useimmat meistä eivät koskaan anna paljon ajatuksia USB-laitteillemme, vaan vain liitä ne ja unohtako ne. Mutta entä jos olet utelias tyyppi, joka haluaa tietää enemmän siitä, miten USB toimii? Tänään SuperUser Q & A -postilla on vastauksia utelias lukijan kysymyksiin.

Tämän päivän kysymys &Vastausistunto tulee meille kohteliaasti SuperUser-osastoon Stack Exchange, yhteisöllinen ryhmittely Q & A verkkosivuilla.

Kuvaaja Evilelka Kowalski( Flickr).

Kysymys

SuperUser-lukija smeeb haluaa tietää, onko todella olemassa todellinen USB-yhteysprotokolla:

Wikipedia-sanoman mukaan USB:

  • Määrittää väylässä käytettävät kaapelit, liittimet ja tietoliikenneprotokollat ​​yhteyden, viestinnän ja virtalähteen välillätietokoneet ja elektroniset laitteet.

Mutta onko olemassa todellinen USB Communication Protocol ?Ymmärsin, että:

  1. Liität USB-laitteen koneeseen( esimerkiksi Ubuntu tai minkäänlaista Linuxia).
  2. Linux löytää laiteajurin kyseiselle laitteelle jotenkin( bonus jos tiedät! ) ja lataa sen.
  3. Laite on nyt kytketty /dev/: n asemaan .
  4. Käyttäjätila-sovellukset voivat nyt lukea ja kirjoittaa /dev/: lle theDevice : n, ja ohjain käsittelee alhaisen tason syöttö- ja lähtöaseman alla olevaan laitteeseen / laitteistoon.

Sikäli kuin voin kertoa, USB-yhteysprotokolla ei näy mistään tässä virtauksessa. Jos ymmärrykseni on oikein, USB on vain kaapeli- ja sähköliitäntä tietokoneen ja laitteen välillä.

Olenko väärässä täällä?Onko USB todella toteuttamassa jonkinlaista matalan tason protokollaa, joka korostaa edellä mainittua virtausta? Jos on, niin mikä se on ja miten se toimii 30 000 jalka -näkymässä?

Onko olemassa todellinen USB-yhteysprotokolla?

Vastaus

SuperUser-avustajat RedGrittyBrick ja projectdp ovat meille vastaus. Ensin ylös, RedGrittyBrick:

Kyllä( katso USB-protokollat).

Kuten ymmärrän, USB-spec määritelmää on monimutkainen kerrosprotokollat ​​ja laiteprofiilit.

Esimerkiksi USB-laitteet voivat mukautua korkean tason malleihin, kuten massamuistiin, näppäimistöön, ihmisen liitäntälaitteeseen jne., Ja sitä hallinnoi yleinen laiteohjain. Jotkin USB-laitteet voivat kommunikoida alemman tason, niin että käyttöjärjestelmän alhaisen tason USB-tuki voi tunnistaa, että tarvitaan laitteeseen sopivia korkean tason ohjaimia.

Vastaus projectdp:

: n vastaukseen Kysymys

Onko käytössä matalan tason USB-protokolla ja mikä se on?

Vastaus

Kyllä, on olemassa. USB-spesifikaatio sisältää USB-protokollan, joka määrittää väylän käyttämisen bittitasolla. Tämä olisi matalan tason protokolla, joka on korkeamman tason protokollan taustalla( eli massamuistilla, HID: llä jne.).

USB-protokollan toimivuus, tämä OSDev wiki on hyödyllinen. Tässä on toinen mielenkiintoinen kuvaus, jossa käytetään sekvenssikaavioita kuvaamaan erilaisia ​​datavirtoja USB-protokollaa kohti.

Bonus Kysymys

Miten Linux löytää ja lataa kyseisen laitteen laiteohjaimen?

Bonusvastaus

Linuxissa käytettäessä USB-yhteensopivaa ydintä USB-laitteiston ja ytimen avulla havaitaan toimiva USB-laite USB-määrityksen vuoksi. Laitteiston puolella havaitseminen tapahtuu USB-isäntäohjaimella. Sitten ytimessä isännän ohjainohjain ottaa haltuunsa ja kääntää matalan tason bittiä langalle USB-protokollaa varten muotoilluille tiedoille. Nämä tiedot saadaan sitten asutuksi ytimen usbcore-ohjaimella.

Olen parafraasi tästä erinomaisesta Opensourceforu artikkelista, jolla on paljon enemmän yksityiskohtia ja selkeyttä kysymykseesi Linux-konteksteissa.

Varmista, että tutustu muualle vilkkaaseen keskusteluun alla olevan linkin kautta!

Onko sinulla jotain lisättävä selitykseen? Kuulkaa kommentit. Haluatko lukea lisää vastauksia muilta tech-tajuilta Stack Exchange-käyttäjiltä?Katso koko keskusteluketju täältä.