14Aug

Kas on olemas tõeline USB-sideprotokoll?

Enamik meist ei oska kunagi meie USB-seadmetele palju mõelda, me lihtsalt ühendame need ja unusta neid. Aga mis siis, kui olete uudishimulik, kes soovib rohkem teada, kuidas USB toimib? Tänane SuperUser Q & post sisaldab vastuseid uudishimulikule lugeja küsimustele.

Tänane küsimus &Vastuste seanss tuleb meile viisakalt SuperUseriga - Q & A veebisaitide kogukonnapõhise grupi Stack Exchange jagunemisest.

Photo courtesy of Evilelka Kowalski( Flickr).

Küsimus

SuperUser lugeja smeeb soovib teada, kas tegelik USB-sideprotokoll on tegelikult olemas:

Vastavalt Wikipedia andmetele: USB:

  • Määrab bussis kasutatavad kaablid, pistikud ja sideprotokollid ühenduse, side ja toiteallika vahelarvutid ja elektroonikaseadmed.

Kuid kas on olemas tõeline USB-sideprotokoll ?Minu arusaam on see:

  1. Ühendate USB-seadmega masina( näiteks Ubuntu või mis tahes liiki Linuxiga).
  2. Linux leiab selle seadme draiveri( boonus, kui tead, ) ja laadib selle.
  3. Seade on nüüd ühendatud /dev/ theDevice -ga.
  4. Kasutajaruumirakendused saavad nüüd lugeda ja kirjutada /dev/-ileDevice -le ning draiver käitleb madala taseme sisendit ja väljundit aluseks olevale seadmele / riistvarale.

Niipalju kui võimalik, USB-sideprotokolli ei ilmu selles voolus kuskil. Kui minu arusaam on õige, on USB lihtsalt arvuti ja seadme vaheline kaabel ja elektriühendus.

Kas ma eksin siin? Kas USB kasutab tegelikult mõnda madala taseme protokolli, mis rõhutab ülaltoodud voogu? Kui jah, siis mis see on ja kuidas see toimib 30 000 suu vaates?

Kas on olemas tegelik USB-sideprotokoll?

Vastus

SuperUseri toetajale RedGrittyBrick ja projectdp on meie jaoks vastus. Esiteks üles, RedGrittyBrick:

Jah( vaata USB-protokolle).

Nagu ma sellest aru saan, määratleb USB-seade kompleksse kihistatud protokollide ja seadmeprofiilide komplekti.

Näiteks võivad USB-seadmed vastata kõrgetasemelistele mallidele, näiteks massmäluseadmetele, klaviatuurile, inimese liideseseadmetele jne ning neid haldab üldine seadme draiver. Mõned USB-seadmed saavad suhelda madalamal tasemel, nii et operatsioonisüsteemi madala taseme USB-tugi võib tunda, et on vaja seadmepõhiseid kõrgema taseme draivereid.

Järgneb projektidp vastusest:

Küsimus

Kas toimivas on väikese taseme USB sideprotokoll ja mis see on?

Vastus

Jah, on olemas. USB-spetsifikatsioon sisaldab USB-protokolli, mis määratleb bussi kasutamise taseme bitti. See oleks madala taseme protokoll, mis põhineb kõrgemal tasemel protokollidel( st massmäluseadmel, HID-il jne).

Selle USB-protokolli toimimise spetsiifikast lähtudes on see OSDev wiki kasulik. Siin on veel üks huvitav kirjeldus, milles kasutatakse jada-graafikuid, et kirjeldada erinevaid andmeedastusi USB-protokolli alusel.

boonusküsimus

Kuidas Linux leiab ja laadib selle seadme draiveri?

boonusvastus

USB-toega kerneli kasutamisel Linuxis tuvastatakse USB-spetsifikatsiooni tõttu töötav USB-seade riistvara ja kerneli kaudu. Riistvara küljel tuvastab USB Host Controller. Seejärel võtab vastuvõttevkontrolleri draiver kernelis üle traadita bitid ja teisendab need USB-protokolliga vormindatud informatsiooni. See teave saab seejärel kernelis usbcore draiverisse.

I parafraseerisin sellest suurepärasest Opensourceforu artiklist, mis on Linuxi kontekstis teie küsimusele palju täpsem ja selgem.

Veenduge, et kontrolliksite ülejäänud elava arutelu läbi allpool jagatud lõimelinki!

Kas teil on seletamiseks midagi lisada? Helistage kommentaarides. Kas soovite lugeda rohkem vastuseid teistelt tech-savvy Stack Exchange'i kasutajatelt? Tutvu täieliku arutelu teemaga siit.