Úvodná » ako » Existuje skutočný komunikačný protokol USB?

    Existuje skutočný komunikačný protokol USB?

    Väčšina z nás nikdy nepomyslela na naše USB zariadenia, jednoducho ich zapojujeme a zabudneme na ne. Ale čo ak 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á relácia otázok a odpovedí sa k nám pridelí zdvorilosťou SuperUser - podskupiny Stack Exchange, zoskupenia webových stránok typu Q & A.

    Foto s láskavým dovolením Evilelka Kowalski (Flickr).

    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 medzi počítačmi a elektronickými zariadeniami.

    Ale existuje skutočný USB komunikačný protokol? Moje chápanie je, že:

    1. Pripojíte zariadenie USB k zariadeniu (napríklad Ubuntu alebo akýkoľvek Linux).
    2. Linux nájde nejako ovládač zariadenia pre toto zariadenie (bonus, ak viete!) a načíta ho.
    3. Zariadenie je teraz pripojené pod / Dev / theDevice.
    4. Aplikácie pre používateľské priestory teraz môžu čítať a zapisovať / Dev / theDevice a ovládač spracováva vstup a výstup nízkej úrovne na príslušné zariadenie / hardvér.

    Pokiaľ môžem povedať, a USB komunikačný protokol v tomto toku nie je nikde. Ak je moje pochopenie správne, USB je len káblové a elektrické spojenie medzi počítačom a zariadením.

    Chýbala som tu? Má USB skutočne implementovať nejaký nízkoúrovňový protokol, ktorý podčiarkuje tok vyššie? Ak áno, čo je a ako funguje pri pohľade na 30 000 stôp?

    Existuje skutočný komunikačný protokol USB?

    Odpoveď

    Príspevky SuperUser RedGrittyBrick a projectdp majú odpoveď pre nás. Po prvé, RedGrittyBrick:

    Áno (pozri USB protokoly).

    Ako som to pochopil, špecifikácia USB definuje zložitú sadu vrstvených protokolov a profilov zariadení.

    Napríklad zariadenia USB sa môžu prispôsobiť šablónam vysokej úrovne, ako je napríklad veľkokapacitné pamäťové zariadenie, klávesnica, zariadenie na rozhranie s ľudským rozhraním atď., A môžu byť riadené generickým ovládačom 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 projektu:

    otázka

    Existuje komunikačný protokol nízkej úrovne USB v akcii a čo je?

    odpoveď

    Áno, existuje. Špecifikácia rozhrania USB obsahuje protokol USB, ktorý definuje spôsob používania zbernice na úrovni bitov. Toto by bol protokol nižšej ú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é pre 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.

    Bonusová otázka

    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 pomocou hardvéru a jadra zistí funkčné zariadenie USB kvôli špecifikácii USB. Na strane hardvéru detekcia prebieha pomocou USB Host Controller. Potom v jadre Ovládač hostiteľského ovládača preberá a prekladá bity nižšej úrovne na drôte na informácie naformátované v protokole 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.

    Nezabudnite sa pozrieť na zvyšnú časť živého rozhovoru prostredníctvom odkazu nite zdieľaného nižšie!


    Máte niečo doplniť vysvetlenie? Znie to v komentároch. Chcete sa dozvedieť viac odpovedí od iných používateľov technickej úrovne Stack Exchange? Pozrite sa na celý diskusný príspevok tu.