Apa itu ID produk di USB dan apakah saya harus membelinya untuk proyek saya?

11

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)?

Infus Wormwood dan Asfodel
sumber
Sepertinya Anda akan bertindak sebagai tuan rumah dalam kasus itu sehingga Anda tidak akan memerlukannya sesuai jawaban Wouter.
PeterJ
@PeterJ Saya minta maaf karena membawa ini terlambat, tetapi saya juga berencana untuk mengembangkan antarmuka layar sentuh untuk mengabaikan dan mengelola transfer perangkat. Apakah saya masih bisa pergi tanpa ID vendor / ID produk?
Infusion of Wormwood n Asfodel
Jika itu terhubung melalui USB ke perangkat host yang sama itu akan menjadi perangkat dan membutuhkannya. Lihat di sini untuk harga: usb.org/developers/vendor . Anda benar-benar hanya perlu satu untuk menggunakan logo dan untuk produksi, jika Anda hanya pada tahap konsep / pengujian Anda hanya dapat membuatnya. Tidak ada vendor resmi ID 666 yang dialokasikan misalnya saya perhatikan beberapa waktu lalu. Ditambah lagi, saya tidak 100% yakin Anda akan membutuhkannya, konflik tidak akan menjadi masalah jika itu tidak dimaksudkan untuk terhubung ke PC dan Anda mungkin tidak akan memerlukan logo USB, meskipun saya tidak yakin pada sisi hukum hal.
PeterJ
Saya berencana untuk memasukkannya ke dalam perangkat yang sama seperti layar sentuh pada ponsel pintar. Apakah itu membuatnya bertanggung jawab atas biaya yang disebutkan?
Infusion of Wormwood n Asfodel
Tidak, itu tidak masalah. Ini benar-benar hanya tentang kompatibilitas yang berkaitan dengan produk pengguna akhir ketika mereka terhubung ke PC secara langsung.
PeterJ

Jawaban:

12

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.

Wouter van Ooijen
sumber
Perangkat yang dapat digunakan untuk mentransfer data dari satu perangkat penyimpanan USB (pen drive) ke perangkat lain sehingga menghilangkan laptop / pc yang sebagian besar digunakan untuk mencapai hal ini.
Infus Wormwood n Asfodel
Saya telah menulis ulang kalimat pertama kalau-kalau terasa ambigu.
Infusion of Wormwood n Asfodel
Ini mengabaikan perangkat OTG, yang bisa berupa host atau slave.
Pejalan kaki
@Passerby: Ketika perangkat OTG adalah perangkat itu membutuhkan VID dan PID, Ketika itu adalah host itu tidak. Jadi, Anda perlu membeli VID untuk kali perangkatnya.
Warren Hill
5

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

Warren Hill
sumber
Mengapa mereka tidak mengeluarkan ID perangkat usb yang mudah ditemukan seperti alamat Bluetooth di perangkat Bluetooth atau bahkan alamat MAC di Laptop?
Infus Wormwood n Asfodel
@StaceyMyers Saya telah memperluas jawaban saya untuk menjelaskan perbedaan apa yang VID USB: kombinasi PID coba capai sebagai lawan MAC-ID. Saya tidak pernah mendesain perangkat Bluetooth jadi saya tidak memahaminya dengan cukup baik untuk berkomentar.
Warren Hill
Ini adalah info yang sangat berguna untuk pengetahuan USB umum (jadi saya juga memilihnya), tapi saya tidak berpikir itu menjawab pertanyaan OP (seperti jawaban yang diterima), karena hal yang OP ingin rancang adalah host USB. Saya tidak menyarankan pengeditan apa pun pada saat ini - hanya FYI.
cp.engr
2

Perhatikan bahwa beberapa vendor perangkat keras, seperti Microchip , yang bersedia untuk mensublisensikan ID Vendor mereka sendiri kepada pelanggan mereka, secara gratis.

martin
sumber
Anda umumnya akan dibatasi untuk memproduksi 10.000 unit perangkat Anda maksimal jika Anda mensub-lisensikan VID vendor mikrokontroler dengan cara ini.
cp.engr