14Aug
Väčšina z nás nikdy nevenuje veľa pozornosti na naše USB zariadenia, jednoducho ich zapojíme a zabudneme na ne. Ale čo keď ste zvedavý typ, ktorý chce vedieť viac o tom, ako USB funguje? Dnešný príspevok SuperUser Q & A má odpovede na otázky zvedavého čitateľa.
Dnešná otázka &Odpoveď na zasadnutie nám príde s láskavým dovolením SuperUser - subdivíziu Stack Exchange, komunitne riadeného zoskupenia webových stránok Q & A.
Foto s láskavým dovolením Evilelka Kowalski( Flickr).
Otázka Otázka
čítačka SuperUser smeeb chce vedieť, či skutočne existuje skutočný USB komunikačný protokol:
Podľa Wikipédie USB:
- Definuje káble, konektory a komunikačné protokoly používané v zbernici na pripojenie, komunikáciu a napájanie medzipočítačov a elektronických zariadení.
Ale existuje skutočný USB komunikačný protokol ?Moje chápanie je, že:
- Pripojenie zariadenia USB k počítaču( napríklad Ubuntu alebo akýkoľvek Linux).
- Linux nájde ovládač zariadenia pre toto zariadenie nejako( bonus, ak viete! ) a načíta ho.
- Zariadenie je teraz pripojené pod /dev/ zariadením .
- Aplikácie pre používateľské priestory teraz môžu čítať a zapisovať do zariadenia /dev/ a ovládač spracováva vstup a výstup nízkej úrovne do základného zariadenia / hardvéru.
Čo môžem povedať, USB komunikačný protokol sa v tomto toku neobjavuje nikde. Ak je moje pochopenie správne, USB je len kábel a elektrické spojenie medzi počítačom a zariadením.
Som tu zle? Má USB skutočne implementovať nejaký druh protokolu na nižšej úrovni, ktorý podčiarkuje tok vyššie? Ak áno, aké to je a ako funguje pri pohľade na 30 000 stôp?
Existuje skutočný komunikačný protokol USB?
Odpovedia na odpovede
SuperUser RedGrittyBrick a projectdp majú odpoveď pre nás. Prvýkrát, RedGrittyBrick:
Áno( pozri USB protokoly).
Ako som to pochopil, špecifikácia USB definuje komplexnú množinu vrstvených protokolov a profilov zariadení.
Napríklad zariadenia USB sa môžu prispôsobiť šablónami na vysokej úrovni, ako je napríklad veľkokapacitné pamäťové zariadenie, klávesnica, rozhranie pre ľudské rozhranie atď., A spravovať ich prostredníctvom generického ovládača zariadenia. Niektoré zariadenia USB môžu komunikovať na nižšej úrovni, takže podpora nízkej úrovne USB operačného systému dokáže rozpoznať, že sú potrebné ovládače vyššej úrovne špecifické pre zariadenie.
Nasledujúca odpoveď od projectdp:
Otázka
Existuje komunikačný protokol nízkej úrovne USB v akcii a čo je to?
Odpoveď
Áno, existuje.Špecifikácia rozhrania USB obsahuje protokol USB, ktorý definuje spôsob používania zbernice na úrovni bitov. Toto by bol protokol nízkej úrovne, ktorý je základom protokolov vyššej úrovne( t. J. Hromadné ukladanie, HID atď.).
Informácie o tom, ako funguje protokol USB, je užitočná táto OSDev wiki. Tu je ďalší zaujímavý opis pomocou sekvenčných diagramov na opis rôznych dátových transakcií podľa protokolu USB.Otázka
Bonus
Ako Linux nájde a načíta ovládač zariadenia pre toto zariadenie?
Bonusová odpoveď
V systéme Linux, keď používate jadro s podporou rozhrania USB, sa prostredníctvom hardvéru a jadra detekuje funkčné USB zariadenie vďaka špecifikácii USB.Na hardvérovej strane je detekcia vykonaná pomocou USB Host Controller. Potom v jadre ovládač hostiteľského ovládača preberá a prekladá bitov nízkej úrovne na drôte na informácie formátu USB.Tieto informácie sa potom zaplnia v ovládači usbcore v jadre.
Parafrázoval som z tohto vynikajúceho článku Opensourceforu, ktorý má oveľa viac podrobností a jasnosti o vašej otázke v kontexte Linuxu.
Uistite sa, že sa pozrite na zvyšok živých diskusií prostredníctvom odkazu nite zdieľať nižšie!
Máte niečo doplniť vysvetlenie? Znížte komentáre. Chcete si prečítať viac odpovedí od iných používateľov technológie Stack Exchange? Pozrite sa na celý diskusný príspevok tu.