Sebagian besar dari kita tidak pernah terlalu memikirkan perangkat USB kita, kita hanya mencolokkannya dan melupakannya. Tapi bagaimana jika Anda tipe penasaran yang ingin tahu lebih banyak tentang cara kerja USB? Pos T&J SuperUser hari ini memiliki jawaban untuk pertanyaan pembaca yang penasaran.
Sesi Tanya & Jawab hari ini hadir atas kebaikan SuperUser — subdivisi Stack Exchange, pengelompokan situs web Tanya Jawab berbasis komunitas.
Foto milik Evilelka Kowalski (Flickr) .
Pertanyaan
Pembaca SuperUser smeeb ingin tahu apakah memang ada Protokol Komunikasi USB yang sebenarnya:
Menurut Wikipedia, USB :
- Mendefinisikan kabel, konektor, dan protokol komunikasi yang digunakan dalam bus untuk koneksi, komunikasi, dan catu daya antara komputer dan perangkat elektronik.
Tetapi apakah ada yang sebenarnya Protokol Komunikasi USB ? Pemahaman saya adalah:
- Anda menghubungkan perangkat USB ke mesin (Ubuntu atau jenis Linux apa pun misalnya).
- Linux menemukan driver perangkat untuk perangkat itu entah bagaimana ( bonus jika Anda tahu! ) dan memuatnya.
- Perangkat sekarang terhubung di bawah / dev / theDevice .
- Aplikasi ruang pengguna sekarang dapat membaca dan menulis / dev / theDevice dan pengemudi menangani input dan output tingkat rendah ke perangkat / perangkat keras yang mendasarinya.
Sejauh yang saya tahu, a Protokol Komunikasi USB tidak muncul di mana pun dalam aliran ini. Jika pemahaman saya benar, USB hanyalah kabel dan sambungan listrik antara PC dan perangkat.
Apakah saya salah di sini? Apakah USB benar-benar menerapkan semacam protokol tingkat rendah yang menggarisbawahi aliran di atas? Jika ya, apa itu dan bagaimana cara kerjanya pada ketinggian 30.000 kaki?
Apakah ada Protokol Komunikasi USB yang sebenarnya?
Jawabannya
Kontributor SuperUser RedGrittyBrick dan projectdp punya jawabannya untuk kami. Pertama, RedGrittyBrick:
Iya ( lihat protokol USB ).
Seperti yang saya pahami, spesifikasi USB mendefinisikan seperangkat protokol berlapis dan profil perangkat yang kompleks.
Misalnya, perangkat USB dapat menyesuaikan dengan templat tingkat tinggi seperti penyimpanan massal, keyboard, perangkat antarmuka manusia, dll. Dan dikelola oleh driver perangkat generik. Beberapa perangkat USB dapat berkomunikasi di tingkat yang lebih rendah sehingga dukungan USB tingkat rendah sistem operasi dapat mengenali bahwa diperlukan driver tingkat yang lebih tinggi khusus perangkat.
Diikuti oleh jawaban dari projectdp:
Pertanyaan
Apakah ada protokol komunikasi USB tingkat rendah yang sedang bekerja dan apa itu?
Menjawab
Ya ada. Spesifikasi USB mencakup protokol USB yang menentukan cara bus digunakan pada level bit. Ini akan menjadi protokol tingkat rendah yang mendasari protokol tingkat yang lebih tinggi (yaitu penyimpanan massal, HID, dll.).
Untuk spesifik tentang bagaimana protokol USB bekerja, ini Wiki OSDev membantu. Ini satu lagi deskripsi yang menarik menggunakan diagram urutan untuk menggambarkan berbagai transaksi data per protokol USB.
Pertanyaan Bonus
Bagaimana Linux menemukan dan memuat driver perangkat untuk perangkat itu?
Jawaban Bonus
Di Linux saat menggunakan kernel yang mendukung USB, perangkat USB yang berfungsi akan terdeteksi melalui perangkat keras dan kernel karena spesifikasi USB. Di sisi perangkat keras, pendeteksian dilakukan oleh USB Host Controller. Kemudian di dalam kernel, Driver Pengontrol Host mengambil alih dan menerjemahkan bit level rendah pada kabel ke informasi yang diformat protokol USB. Informasi ini kemudian akan diisi di driver usbcore di kernel.
Saya memparafrasekan dari luar biasa ini Artikel opensourceforu , yang memiliki lebih banyak detail dan kejelasan tentang pertanyaan Anda dalam konteks Linux.
Pastikan untuk melihat sisa diskusi yang hidup melalui tautan utas yang dibagikan di bawah ini!
Punya sesuatu untuk ditambahkan ke penjelasannya? Suarakan di komentar. Ingin membaca lebih banyak jawaban dari pengguna Stack Exchange yang paham teknologi? Lihat utas diskusi lengkap di sini .