Sebagian besar dari kita tidak pernah memikirkan perangkat USB kita, kita cukup tancapkan dan lupakan mereka. Tetapi bagaimana jika Anda adalah tipe penasaran yang ingin tahu lebih banyak tentang cara kerja USB? Posting SuperUser Q & A saat ini memiliki jawaban atas pertanyaan pembaca yang ingin tahu.
Sesi Tanya & Jawab hari ini hadir untuk memberi kami hak milik SuperUser-sub divisi Stack Exchange, pengelompokan situs web Q & A berbasis komunitas.
Foto milik Evilelka Kowalski (Flickr).
SuperUser reader smeeb ingin tahu apakah benar-benar ada Protokol Komunikasi USB yang sebenarnya:
Menurut Wikipedia, USB:
- Menentukan kabel, konektor, dan protokol komunikasi yang digunakan dalam bus untuk koneksi, komunikasi, dan catu daya antara komputer dan perangkat elektronik.
Tapi apakah ada yang sebenarnya Protokol Komunikasi USB? Pemahaman saya adalah:
- Anda menghubungkan perangkat USB ke mesin (Ubuntu atau segala jenis Linux misalnya).
- Linux menemukan driver perangkat untuk perangkat itu entah bagaimana (bonus jika kamu tahu!) dan memuatnya.
- Perangkat sekarang terhubung di bawah / dev / theDevice.
- Aplikasi ruang pengguna sekarang dapat membaca dan menulis / dev / theDevice dan driver 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 mengimplementasikan beberapa jenis protokol tingkat rendah yang menggarisbawahi aliran di atas? Jika demikian, apa itu dan bagaimana cara kerjanya pada tampilan 30.000 kaki?
Apakah ada Protokol Komunikasi USB yang sebenarnya?
Kontributor SuperUser RedGrittyBrick dan projectdp punya jawabannya untuk kami. Pertama, RedGrittyBrick:
Ya (lihat protokol USB).
Seperti yang saya pahami, spesifikasi USB mendefinisikan satu set protokol dan profil perangkat berlapis yang rumit.
Misalnya, perangkat USB dapat menyesuaikan dengan template tingkat tinggi seperti penyimpanan massal, keyboard, perangkat antarmuka manusia, dll. Dan dikelola oleh driver perangkat generik. Beberapa perangkat USB dapat berkomunikasi pada tingkat yang lebih rendah sehingga dukungan USB tingkat rendah sistem operasi dapat mengenali bahwa diperlukan driver tingkat tinggi khusus perangkat.
Diikuti oleh jawaban dari projectdp:
Pertanyaan
Apakah ada protokol komunikasi USB tingkat rendah dalam tindakan dan apa itu?
Menjawab
Ya ada. Spesifikasi USB termasuk protokol USB yang mendefinisikan cara bus digunakan pada tingkat bit. Ini akan menjadi protokol tingkat rendah yang mendasari protokol tingkat yang lebih tinggi (mis. Penyimpanan massal, HID, dll.).
Untuk spesifik tentang cara kerja protokol USB, wiki OSDev ini sangat membantu. Berikut ini adalah deskripsi menarik lainnya menggunakan diagram urutan untuk menggambarkan berbagai transaksi data per protokol USB.
Pertanyaan Bonus
Bagaimana cara Linux menemukan dan memuat driver perangkat untuk perangkat itu?
Bonus Jawaban
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, deteksi dilakukan oleh Kontroler Host USB. Kemudian di kernel, Pengontrol Pengendali Host mengambil alih dan menerjemahkan bit tingkat rendah pada informasi yang diformat ke protokol USB. Informasi ini kemudian diisi dalam driver usbcore di kernel.
Saya memparafrasekan dari artikel Opensourceforu yang sangat bagus ini, yang memiliki lebih banyak detail dan kejelasan tentang pertanyaan Anda dalam konteks Linux.
Pastikan untuk memeriksa sisa diskusi yang hidup melalui tautan utas bersama di bawah ini!
Memiliki sesuatu untuk ditambahkan ke penjelasan? Bicaralah di komentar. Ingin membaca lebih banyak jawaban dari pengguna Stack Exchange yang paham teknologi lainnya? Lihat diskusi lengkap di sini.