Onko olemassa todellinen USB-tiedonsiirtoprotokolla?
Useimmat meistä eivät koskaan ajattele paljon USB-laitteitamme, me vain liitämme ne ja unohdamme ne. Mutta entä jos olet utelias tyyppi, joka haluaa tietää enemmän siitä, miten USB toimii? Tämän päivän SuperUser Q&A -postissa on vastaukset utelias lukijan kysymyksiin.
Nykypäivän Kysymys- ja vastaus -istunto tulee meille suotuisasti SuperUserin - Stack Exchange -alueen, yhteisöpohjaisen Q & A-sivustojen ryhmittymän - kautta..
Kuva: Evilelka Kowalski (Flickr).
Kysymys
SuperUser-lukija smeeb haluaa tietää, onko olemassa todellinen USB-tiedonsiirtoprotokolla:
Wikipedian, USB: n mukaan:
- Määrittää väylässä käytettävät kaapelit, liittimet ja tietoliikenneprotokollat tietokoneiden ja elektronisten laitteiden väliseen yhteyteen, viestintään ja virtalähteeseen.
Mutta onko olemassa todellista USB-tiedonsiirtoprotokolla? Ymmärrän, että:
- Liitä USB-laite laitteeseen (esimerkiksi Ubuntu tai muu Linux).
- Linux löytää kyseisen laitteen laiteajurin jotenkin (bonus, jos tiedät!) ja lataa se.
- Laite on nyt kytketty / Dev / theDevice.
- Käyttäjätilan sovellukset voivat nyt lukea ja kirjoittaa / Dev / theDevice ja kuljettaja käsittelee matalan tason tuloa ja lähtöä taustalla olevaan laitteeseen / laitteistoon.
Sikäli kuin voin kertoa, a USB-tiedonsiirtoprotokolla ei näy missään tässä virtauksessa. Jos ymmärrykseni on oikea, USB on vain PC: n ja laitteen välinen kaapeli ja sähköliitäntä.
Olen väärässä täällä? Onko USB todella toteuttanut jonkinlaista matalan tason protokollaa, joka korostaa yllä olevaa virtausta? Jos näin on, mikä se on ja miten se toimii 30 000 jalka-näkymässä?
Onko olemassa todellinen USB-tiedonsiirtoprotokolla?
Vastaus
SuperUser-avustajat RedGrittyBrick ja projectdp ovat vastaus meille. Ensimmäinen, RedGrittyBrick:
Kyllä (katso USB-protokollat).
Kuten ymmärrän, USB-spesifikaatio määrittelee monimutkaisen joukon kerrostettuja protokollia ja laiteprofiileja.
Esimerkiksi USB-laitteet voivat vastata korkean tason malleja, kuten massamuistia, näppäimistöä, ihmisen käyttöliittymää jne., Ja niitä voi hallita yleinen laiteohjain. Jotkin USB-laitteet voivat kommunikoida alemmalla tasolla siten, että käyttöjärjestelmän alhainen USB-tuki voi tunnistaa, että laitekohtaisia korkeampia ohjaimia tarvitaan.
Seurasi vastaus projektista:
Kysymys
Onko käytössä matalan tason USB-yhteyskäytäntö ja mikä se on?
Vastaus
Kyllä on. USB-spesifikaatio sisältää USB-protokollan, jossa määritellään, miten väylää käytetään vähän. Tämä olisi matalan tason protokolla, joka on korkeamman tason protokollien taustalla (ts. Massamuisti, HID jne.).
USB-protokollaa koskevat yksityiskohtaiset tiedot tästä OSDev-wikistä ovat hyödyllisiä. Tässä on toinen mielenkiintoinen kuvaus, jossa käytetään sekvenssikaavioita kuvaamaan eri datatoimintoja USB-protokollan mukaan.
Bonuskysymys
Miten Linux löytää ja ladata laitteen laiteajurin?
Bonus Vastaus
Linuxissa, kun käytät USB-yhteensopivaa ydintä, USB-spesifikaation takia havaitaan toimiva USB-laite laitteiston ja ytimen kautta. Laitteiston puolella tunnistus suoritetaan USB-isäntäohjaimella. Sitten ytimessä isäntäohjainohjain ottaa haltuunsa ja muuntaa langattoman matalan tason bitit USB-protokollan muotoiltuun informaatioon. Tämän jälkeen nämä tiedot tulevat asumaan ytimen usbcore-ohjaimeen.
Parafraasin tästä erinomaisesta Opensourceforu-artikkelista, jossa on paljon yksityiskohtaisempaa ja selkeämpiä kysymyksesi Linux-kontekstissa.
Muista tarkistaa loput vilkas keskustelu alla olevan linkin kautta!
Onko jotain lisättävää selitykseen? Ääni pois kommenteista. Haluatko lukea lisää vastauksia muilta tech-savvy Stack Exchange -käyttäjiltä? Tutustu koko keskusteluketjuun täällä.