Saya mencoba mengembangkan perangkat portabel yang memungkinkan saya mentransfer data dari satu perangkat penyimpanan USB ke yang lain tanpa menggunakan PC / Laptop. Saya membaca panduan pengembang oleh Jan Axelson di mana saya menemukan bagian yang mengatakan bahwa seseorang harus membeli ID vendor USB / ID produk untuk membuat perangkat USB apa pun. Saya membaca hal yang sama di USB Implementers Forum. Saya tidak yakin akan pentingnya ID produk ini dalam proyek saya.
Apakah ini seperti alamat MAC untuk komputer / laptop dan apakah saya akan membutuhkannya?
Apakah ini sesuatu yang diperlukan hanya untuk mengembangkan perangkat periferal dan bukan perangkat seperti apa yang ingin saya terapkan (yang saya kira lebih seperti host)?
usb
usb-device
usb-host
Infus Wormwood dan Asfodel
sumber
sumber
Jawaban:
Saya tidak yakin apa yang sebenarnya ingin Anda buat, tetapi jika itu adalah perangkat host Anda memang tidak memerlukan USB VID / PID.
USB VID / PID perangkat slave digunakan oleh host untuk mengidentifikasi driver yang akan digunakan untuk perangkat slave. Perangkat host tidak perlu mengidentifikasi dirinya sendiri ke slave, karenanya tidak perlu VID / PID.
sumber
Hanya perangkat yang membutuhkan VID dan PID bukan host.
ID Vendor atau VID adalah nomor 16-bit yang harus Anda beli dari USB Foundation. Jika Anda ingin membuat perangkat USB (dan sepenuhnya bermain sesuai aturan), VID mengidentifikasi organisasi Anda.
ID Produk atau PID juga merupakan nomor 16-bit tetapi berada di bawah kendali Anda. Ketika Anda membeli VID, Anda berhak menggunakannya dengan setiap PID yang memungkinkan, jadi ini memberi Anda 65536 kemungkinan kombinasi VID: PID. Tujuannya adalah bahwa kombinasi VID: PID harus secara unik mengidentifikasi poduct tertentu secara global.
Ini menjamin bahwa tidak ada PC yang dapat melihat dua perangkat yang berbeda dengan VID dan PID yang sama dengan yang digunakan PC untuk mengidentifikasi perangkat jika tidak akan terjadi konflik.
Catatan: Tidak seperti MAC-ID, tujuan VID: kombinasi PID adalah untuk secara unik mengidentifikasi jenis perangkat sejauh sistem operasi mengetahui driver apa yang digunakan, tidak selalu diperlukan untuk dapat membedakan antara dua perangkat yang identik. Misalnya dua memory stick USB memiliki komputer tidak hanya tahu apa perangkat itu tahu port mana yang dicolokkan ke dalamnya.
Ketika Anda mencolokkan perangkat USB di OS, minta perangkat untuk VID dan PID-nya dan berikan perangkat itu alamat yang akan terus digunakan hingga perangkat dilepas (atau komputer dimatikan).
Setelah PC mengetahui VID dan PID itu memeriksa untuk melihat apakah sudah tahu ini. Jika itu memuat driver yang benar untuk itu; jika tidak Anda diberi kesempatan untuk menginstal driver yang relevan. Proses ini disebut enumerasi.
Di sisi lain, MAC-ID tidak dengan sendirinya memberikan informasi tentang apa itu perangkat (komputer, printer, router, dll.) Tetapi tidak secara unik mengidentifikasi perangkat: dua PC yang identik akan memiliki MAC-ID yang berbeda seolah-olah mereka keduanya terhubung ke jaringan Ethernet yang sama itu tidak akan berfungsi dengan benar. Namun dua memory stick USB identik akan memiliki VID dan PID yang identik.
Jika saya ingin membuat dan menjual 1 juta perangkat USB yang identik, saya hanya perlu membeli satu VID. Jika saya ingin membuat dan menjual 1 juta perangkat Ethernet, saya harus membeli 1 juta MAC-ID
sumber
Perhatikan bahwa beberapa vendor perangkat keras, seperti Microchip , yang bersedia untuk mensublisensikan ID Vendor mereka sendiri kepada pelanggan mereka, secara gratis.
sumber