14Aug
Sebagian besar dari kita tidak pernah memikirkan perangkat USB kita, kita cukup colokkan dan lupakan saja. Tapi bagaimana jika Anda adalah tipe penasaran yang ingin tahu lebih banyak tentang bagaimana USB bekerja? Today's SuperUser Q & Sebuah posting memiliki jawaban atas pertanyaan pembaca yang penasaran.
Pertanyaan Hari Ini &Sesi jawaban datang kepada kami atas izin SuperUser - subdivisi dari Stack Exchange, pengelompokan berbasis komunitas dari Q & A situs web. Foto
milik Evilelka Kowalski( Flickr).
Pertanyaan
Pembaca superuser smeeb ingin tahu apakah sebenarnya 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 antarakomputer dan perangkat elektronik.
Tapi adakah USB Communication Protocol yang sebenarnya? Pemahaman saya adalah:
- Anda menghubungkan perangkat USB ke mesin( Ubuntu atau sejenis Linux 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 ke /dev/ theDevice dan driver menangani input dan output tingkat rendah ke perangkat / perangkat keras yang mendasarinya.
Sejauh yang saya tahu, Protokol Komunikasi USB tidak muncul di manapun dalam arus ini. Jika pemahaman saya benar, USB hanya kabel dan sambungan listrik antara PC dan perangkat.
Apakah saya salah di sini? Apakah USB benar-benar menerapkan beberapa jenis protokol tingkat rendah yang menggarisbawahi aliran di atas? Jika ya, apa itu dan bagaimana cara kerjanya pada tampilan 30.000 kaki?
Apakah ada Protokol Komunikasi USB yang sebenarnya?
Jawaban
Kontributor SuperUser RedGrittyBrick dan projectdp memiliki jawabannya untuk kita. Pertama, RedGrittyBrick:
Ya( lihat protokol USB).
Seperti yang saya mengerti, spec USB mendefinisikan serangkaian protokol berlapis dan profil perangkat yang kompleks.
Sebagai contoh, perangkat USB dapat menyesuaikan diri dengan template tingkat tinggi seperti penyimpanan massal, keyboard, perangkat antarmuka manusia, dan lain-lain dan dikelola oleh driver perangkat generik. Beberapa perangkat USB dapat berkomunikasi pada tingkat yang lebih rendah sehingga dukungan USB tingkat rendah dari sistem operasi dapat mengenali driver khusus tingkat perangkat yang dibutuhkan.
Diikuti oleh jawaban dari projectdp:
Pertanyaan
Apakah ada protokol komunikasi USB tingkat rendah yang beraksi dan apa itu?
Jawaban
Ya, ada. Spesifikasi USB mencakup protokol USB yang mendefinisikan cara bus digunakan pada tingkat 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, wiki OSDev ini sangat membantu. Berikut adalah deskripsi menarik lainnya dengan menggunakan diagram urutan untuk menggambarkan berbagai transaksi data per protokol USB.Pertanyaan
Bagaimana Linux menemukan dan memuat driver perangkat untuk perangkat itu?
Bonus Jawaban
Di Linux saat menggunakan kernel dengan dukungan USB, perangkat USB yang berfungsi akan terdeteksi melalui perangkat keras dan kernel karena spesifikasi USB.Di sisi hardware, pendeteksian dilakukan oleh USB Host Controller. Kemudian di kernel Host Controller Driver mengambil alih dan menerjemahkan bit tingkat rendah pada kabel ke informasi yang diformat protokol USB.Informasi ini kemudian dihuni di driver usbcore di kernel.
Saya memparafrasekan dari artikel Opensourceforu yang sangat bagus ini, yang memiliki banyak detail dan kejelasan tentang pertanyaan Anda dalam konteks Linux.
Pastikan untuk memeriksa sisa diskusi yang hidup melalui link thread yang dibagi di bawah ini!
Punya sesuatu untuk ditambahkan ke penjelasan? Terdengar dalam komentar. Ingin membaca lebih banyak jawaban dari pengguna Stack Exchange tech-savvy lainnya? Simak thread diskusi selengkapnya disini.