14Aug
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:
- Egy USB eszközt csatlakoztat a géphez( például Ubuntu vagy bármilyen Linux).Az
- Linux valahogy megtalálja az eszköz illesztőprogramját( bónusz, ha tudja! ) és betölti.
- A készülék az /dev/ az eszközhöz csatlakozik.
- 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.