If-Koubou

Onko olemassa todellinen USB-yhteysprotokolla?

Onko olemassa todellinen USB-yhteysprotokolla? (Miten)

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- ja vastausistunto tulee meihin SuperUserin hyväksi - Stack Exchangein alaosasto, joka on yhteisöllinen Q & A-sivustojen ryhmittely.

Kuva courtesy of Evilelka Kowalski (Flickr).

Kysymys

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

Mukaan Wikipedia, USB:

  • Määrittää väylässä käytettävät kaapelit, liittimet ja kommunikaatioprotokollat ​​yhteyden, viestinnän ja virtalähteen välillä tietokoneiden ja elektronisten laitteiden välillä.

Mutta onko olemassa todellista USB-yhteysprotokolla? Ymmärsin, että:

  1. Liität USB-laitteen laitteeseen (esimerkiksi Ubuntu tai minkäänlaista Linuxia).
  2. Linux löytää laitteen laiteohjaimen jotenkin (bonus, jos tiedät!) ja lataa sen.
  3. Laite on nyt liitetty alla / Dev / theDevice.
  4. Käyttäjätila-sovellukset voivat nyt lukea ja kirjoittaa / Dev / theDevice ja kuljettaja käsittelee alhaisen tason syöttö ja ulostulo taustalla olevaan laitteeseen / laitteistoon.

Sikäli kuin voin kertoa, a 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 todellista USB-yhteysprotokollaa?

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ää monimutkainen joukko kerrostettuja protokollia ja laiteprofiileja.

Esimerkiksi USB-laitteet voivat olla yhteensopivia korkean tason malleja, kuten massamuistia, näppäimistöä, ihmisen liitäntälaitteita jne., Ja niitä 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.

Seuraavat vastaukset projectdp:

Kysymys

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

Vastaus

Kyllä on. 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.).

Lisätietoja USB-protokollan toimivuudesta 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

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

Bonus vastaus

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 muotoillulle tiedolle. Nämä tiedot saadaan sitten asutuksi ytimen usbcore-ohjaimella.

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

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

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