14Aug

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

A legtöbben soha nem sok gondot adnak USB-eszközeinknek, csak csatlakoztatjuk őket, és elfelejtjük őket. De mi van akkor, ha te kíváncsi vagy, aki többet szeretne tudni arról, hogyan működik az USB?A mai SuperUser Q & A bejegyzésen megtalálhatja a válaszokat egy furcsa olvasó kérdéseire.

A mai kérdés &A válaszüzenet a SuperUser - a Stack Exchange megosztottságának köszönhetően - a Q & A webhelyek közösségi szintű csoportosítása.

Fotó jóvoltából Evilelka Kowalski( Flickr).

Az

kérdése A SuperUser olvasó smeeb meg akarja tudni, hogy van-e tényleges USB kommunikációs protokoll:

A Wikipedia szerint: USB:

  • Meghatározza a buszon használt kábelt, csatlakozókat és kommunikációs protokollokat a kapcsolat, a kommunikáció és a tápegység közöttszámítógépek és elektronikus eszközök.

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

  1. Egy USB eszközt csatlakoztat a géphez( például Ubuntu vagy bármilyen Linux).Az
  2. Linux valahogy megtalálja az eszköz illesztőprogramját( bónusz, ha tudja! ) és betölti.
  3. A készülék az /dev/ az eszközhöz csatlakozik.
  4. A felhasználói téralkalmazások mostantól leolvashatják és írhatják az /dev/ készüléket az készülékhez, és a meghajtó kezeli az alacsony szintű bemenetet és kimenetet az alatta lévő eszközre / hardverre.

Amennyire tudom, egy USB kommunikációs protokoll nem jelenik meg bárhol ebben az áramlásban. Ha a megértésem helyes, az USB csak a kábel és az elektromos kapcsolat a PC és a készülék között.

Tévedek? Az USB valóban implementál valamilyen alacsony szintű protokollt, amely aláhúzza a fenti áramlást? Ha igen, akkor mi ez és hogyan működik 30 000 láb nézetben?

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

A válasz

A SuperUser hozzájárulók RedGrittyBrick és projectdp rendelkeznek a választ velünk. Először, RedGrittyBrick:

Igen( lásd az USB protokollokat).

Ahogy ezt megértem, az USB-specifikáció rétegzett protokollok és eszközprofilok összetett csoportját határozza meg.

Az USB eszközök például megfelelnek a magas szintű sablonoknak, például a tömegtárnak, a billentyűzetnek, az emberi interfészeszközöknek stb., És általános eszközillesztővel kell kezelniük. Néhány USB eszköz alacsony szinten tud kommunikálni, így az operációs rendszer alacsony szintű USB-támogatása felismerheti, hogy az eszköz-specifikus magasabb szintű illesztőprogramokra van szükség.

A projectdp választása után:

Kérdés

Van egy alacsony szintű USB kommunikációs protokoll akcióban és mi ez?

Válasz

Igen, van. Az USB-specifikáció magában foglalja az USB-protokollt, amely meghatározza a busz bitszintjének használatát. Ez lenne az alacsony szintű protokoll, amely a magasabb szintű protokollok( vagyis a tömegtár, a HID stb.) Alapját képezi.

Az USB protokoll működési módjairól ez az OSDev wiki hasznos. Itt van egy másik érdekes leírás a szekvencia diagramok segítségével, amelyek leírják a különböző adatátvitákat az USB protokollonként.

Bónuszkérdés

Hogyan találja meg és töltse be a készülék az eszközillesztőt?

Bónusz válasz

Linuxon, ha USB-képes rendszermagot használ, a hardveren és a rendszermagon keresztül észlelhető egy működő USB eszköz az USB specifikációnak köszönhetően. A hardver oldalon az észlelést az USB Host Controller végzi. Ezután a rendszermagban a Host Controller Driver átveszi és lefordítja az alacsony szintű biteket a vezetékre USB protokoll formattált információkra. Ezeket az információkat ezután a rendszermagban lévő usbcore illesztőprogramban találják meg.

Parafrámoztam ebből a kiváló Opensourceforu cikkből, amely sokkal részletesebb és egyértelműbb a kérdésében a Linux környezetben.

Győződjön meg róla, hogy nézd meg a többi élénk vitát az alább felsorolt ​​szálas linken keresztül!

Van valami, amit hozzá lehet adni a magyarázathoz? Hangzik ki a megjegyzésekben. Szeretne többet válaszolni a többi technikus-tudós Stack Exchange felhasználóiról? Nézze meg a teljes vitafonalat itt.