Homepage » hogyan kell » Van-e tényleges USB kommunikációs protokoll?

    Van-e tényleges USB kommunikációs protokoll?

    Legtöbben soha nem gondoltunk az USB-eszközökre, csak csatlakoztatjuk őket és elfelejtjük őket. De mi van, ha az a kíváncsi típus, aki többet szeretne tudni arról, hogyan működik az USB? A mai SuperUser Q&A postai válaszok egy furcsa olvasó kérdéseire.

    A mai Kérdések és válaszok munkamenet a Jóvagyon - a Stack Exchange alosztályának, a közösség által vezérelt Q&A webhelyek csoportjának köszönhetően..

    Fénykép jóvoltából Evilelka Kowalski (Flickr).

    A kérdés

    A SuperUser olvasó smeeb tudni akarja, hogy valóban létezik-e tényleges USB kommunikációs protokoll:

    Wikipedia, USB szerint:

    • Meghatározza a buszban használt kábeleket, csatlakozókat és kommunikációs protokollokat a számítógépek és az elektronikus eszközök közötti összeköttetéshez, kommunikációhoz és áramellátáshoz.

    De van-e tényleges USB kommunikációs protokoll? Értem, hogy:

    1. USB-eszközt csatlakoztat egy géphez (például Ubuntu vagy bármilyen más Linux).
    2. A Linux valahogy megtalálja az eszköz eszközillesztõjét (bónusz, ha tudod!) és betölti.
    3. Az eszköz most csatlakozik / Dev / theDevice.
    4. A felhasználói terek alkalmazásai most olvashatnak és írhatnak / Dev / theDevice és az illesztő kezeli az alacsony szintű bemenetet és kimenetet a mögöttes eszközhöz / hardverhez.

    Amennyire meg tudom mondani, a USB kommunikációs protokoll nem jelenik meg sehol az áramlásban. Ha a megértésem helyes, az USB csak a számítógép és az eszköz közötti kábel és elektromos kapcsolat.

    Tévedek? Az USB valójában valamilyen alacsony szintű protokollt valósít meg, amely aláhúzza a fenti áramlást? Ha igen, mi az, és hogyan működik 30 000 lábnézetben?

    Van tényleges USB kommunikációs protokoll?

    A válasz

    A RedGrittyBrick és a projectdp SuperUser közreműködői válaszolnak számunkra. Először fel, RedGrittyBrick:

    Igen (lásd az USB protokollokat).

    Megértem, hogy az USB-specifikáció összetett rétegelt protokollokat és eszközprofilokat határoz meg.

    Például az USB-eszközök megfelelnek a magas szintű sablonoknak, mint a tömegtárolás, a billentyűzet, az emberi interfész eszköz stb., És ezeket egy általános eszközillesztő kezelheti. Egyes USB-eszközök alacsonyabb szinten tudnak kommunikálni, így az operációs rendszer alacsony szintű USB-támogatása felismeri, hogy szükség van az eszközspecifikus magasabb szintű illesztőprogramokra.

    Ezt követi a projectdp válasz:

    Kérdés

    Van-e alacsony szintű USB kommunikációs protokoll, és mi van?

    Válasz

    Igen van. Az USB specifikáció magában foglalja az USB protokollt, amely meghatározza, hogy a busz milyen szinten kerül felhasználásra. Ez az alacsony szintű protokoll, amely a magasabb szintű protokollok (azaz a tömeges tárolás, a HID stb.) Alapját képezi..

    Az USB-protokoll működésének részleteit illetően ez az OSDev wiki hasznos. Itt van egy másik érdekes leírás, amely az USB protokollonkénti különböző adatátviteli folyamatok leírását mutatja a szekvencia diagramokkal.

    Bónusz kérdés

    Hogyan találja meg és tölti be a Linux eszközmeghajtót?

    Bónusz Válasz

    Linuxon USB-kompatibilis rendszermag használatakor az USB-specifikáció miatt a hardver és a kernel segítségével működő USB-eszközt érzékel. A hardveroldalon az érzékelést az USB Host Controller végzi. Ezután a rendszermagban a Host Controller Driver átveszi és átveszi az alacsony szintű biteket a dróton az USB protokoll formázott információkra. Ez az információ akkor kerül be a kernel usbcore illesztőprogramjába.

    Ezzel a kiváló Opensourceforu-cikkel írtam le, ami sokkal részletesebb és világosabb a kérdésedről a Linux kontextusban.

    Győződjön meg róla, hogy az élénk beszélgetés többi részét az alábbiakban megosztott szál linken keresztül nézheti meg!


    Van valami, amit hozzá kell adni a magyarázathoz? Kikapcsolja a megjegyzéseket. Szeretne további válaszokat olvasni más tech-savvy Stack Exchange felhasználóktól? Nézze meg a teljes beszélgetés szálát itt.