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:
- USB-eszközt csatlakoztat egy géphez (például Ubuntu vagy bármilyen más Linux).
- A Linux valahogy megtalálja az eszköz eszközillesztõjét (bónusz, ha tudod!) és betölti.
- Az eszköz most csatlakozik / Dev / theDevice.
- 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.