USB'de ürün kimliği nedir ve projem için satın almam gerekir mi?


11

PC / Dizüstü bilgisayar kullanmadan bir USB depolama cihazından diğerine veri aktarmama izin verecek taşınabilir bir cihaz geliştirmeye çalışıyorum. Jan Axelson tarafından geliştiriciler kılavuzunu okuyordum, burada herhangi bir USB cihazı yapmak için bir USB satıcı kimliği / ürün kimliği satın alması gerektiğini söyleyen bir bölüme rastladım. Aynı şeyi USB Uygulayıcılar Forumu'nda da okudum. Bu ürün kimliğinin projemdeki öneminden emin değilim.

  • Bilgisayarlar / dizüstü bilgisayarlar için MAC adresi gibi bir şey mi ve buna ihtiyacım olacak mı?

  • Sadece çevre aygıtları geliştirmek için gerekli bir şey mi, uygulamak istediğim gibi cihazlar için değil (sanırım daha çok bir ana bilgisayar gibi)?


Bu durumda bir sunucu gibi davranacağınız anlaşılıyor, bu yüzden Wouter'ın cevabına göre birine ihtiyacınız olmayacak.
PeterJ

@PeterJ Bunu geç getirdiğim için özür dilerim, ancak cihaz aktarımını gözden kaçırmak ve yönetmek için bir dokunmatik ekran arayüzü geliştirmeyi de planlıyorum. Satıcı kimliği / ürün kimliği olmadan gitmekte fayda var mı?
Ağustos'ta Wormwood n Asfodel infüzyonu

USB ile aynı ana cihaza bağlanırsa, bu bir cihaz olur ve bir ana bilgisayara ihtiyaç duyar. Fiyatlandırma için buraya bakın: usb.org/developers/vendor . Logoyu kullanmak ve üretim için gerçekten sadece birine ihtiyacınız var, eğer sadece bir konsept / test aşamasındaysanız sadece bir tane yapabilirsiniz. Hiçbir resmi satıcı kimliği 666 tahsis olarak örneğin bir süre önce fark ettim. Ayrıca, bir tanesine ihtiyacınız olacağından% 100 emin değilim, bir PC'ye bağlanmak istemiyorsa ve muhtemelen bir USB logosuna ihtiyacınız olmayacaksa, çakışmalar bir sorun olmazdı. şeylerin yasal tarafı.
PeterJ

Bir akıllı telefonun dokunmatik ekranı gibi aynı cihaza dahil etmeyi planlıyorum. Söz konusu ücrete tabi olacak mı?
Ağustos'ta Wormwood n Asfodel infüzyonu

Hayır, iyi olacak. Gerçekten sadece bir PC'ye doğrudan bağlandıklarında son kullanıcı ürünleriyle ilgili uyumluluk hakkında.
PeterJ

Yanıtlar:


12

Tam olarak ne yapmak istediğinizden emin değilim, ancak bir ana cihaz ise gerçekten bir USB VID / PID'ye ihtiyacınız yok.

Bir bağımlı aygıtın USB VID / PID'si, ana bilgisayar tarafından bağımlı aygıt için kullanılacak sürücüleri tanımlamak için kullanılır. Bir ana bilgisayar aygıtının kendisini köle olarak tanımlaması gerekmez, bu nedenle bir VID / PID'ye ihtiyaç duymaz.


Verileri bir USB depolama aygıtından (kalem sürücü) diğerine aktarmak için kullanılabilen ve böylece bunu başarmak için çoğunlukla kullanılan bir dizüstü bilgisayarı / bilgisayarı ortadan kaldıran bir aygıt.
Ağustos'ta Wormwood n Asfodel infüzyonu

Belirsiz gelmesi ihtimaline karşı ilk cümleyi yeniden yazdım.
Ağustos'ta Wormwood n Asfodel infüzyonu

Bu, hem konakçı hem de bağımlı olabilen OTG cihazlarını yok sayar.
Passerby

@Passerby: Bir OTG cihazı bir cihaz olduğunda, bir VID ve PID'ye ihtiyaç duyar, Bir ana bilgisayar olduğunda değildir. Yani bir cihaz için kez bir VID satın almanız gerekir.
Warren Hill

5

Yalnızca cihazların VID ve PID'ye sahip olması gerekmez.

Satıcı Kimliği veya VID, USB Foundation'dan satın almanız gereken 16 bitlik bir sayıdır. USB cihazı yapmak (ve kurallara tamamen uymak) istiyorsanız, VID kuruluşunuzu tanımlar.

Ürün Kimliği veya PID de 16 bitlik bir sayıdır, ancak kontrolünüz altındadır. Bir VID satın aldığınızda, bunu mümkün olan her PID ile kullanma hakkına sahip olursunuz, bu da size 65536 olası VID: PID kombinasyonu verir. Amaç, bir VID: PID kombinasyonunun küresel olarak belirli bir poduct'ı benzersiz olarak tanımlamasıdır.

Bu, PC'nin cihazı tanımlamak için kullandığı gibi hiçbir PC'nin aynı VID ve PID'ye sahip iki farklı cihazı göremeyeceğini garanti eder, aksi takdirde bir çakışma meydana gelebilir.

Not: MAC-ID'den farklı olarak, bir VID: PID kombinasyonunun amacı, işletim sisteminin hangi sürücüleri kullanacağını bildiği ölçüde, iki özdeş aygıtı birbirinden ayırt edebilmek için gerekli olmadığı ölçüde bir aygıt türünü benzersiz olarak tanımlamaktır. Örneğin, iki USB bellek çubuğu bilgisayarda hangi cihazın takılı olduğunu bilmekle kalmaz aynı zamanda hangi portun takılı olduğunu da bilir.

İşletim sistemine bir USB cihazı taktığınızda, cihazdan VID ve PID'sini sorar ve cihaza cihaz kaldırılana (veya bilgisayar kapatılana kadar) kullanmaya devam edecek bir adres verir.

PC VID ve PID'yi öğrendikten sonra bunları zaten bilip bilmediğini kontrol eder. Varsa, bunun için doğru sürücüleri yükler; değilse, ilgili sürücüleri yükleme fırsatı verilir. Bu sürece numaralandırma denir.

Öte yandan bir MAC-ID kendi başına bir cihazın ne olduğu hakkında herhangi bir bilgi sağlamaz (bilgisayar, yazıcı, yönlendirici vb.), Ancak bir cihazı benzersiz bir şekilde tanımlar: iki özdeş PC sanki sanki farklı MAC-ID'lerine sahip olacak her ikisi de düzgün çalışmaz aynı Ethernet ağına takılı olsun. Ancak iki özdeş USB bellek çubuğunda özdeş VID ve PID bulunur.

1 milyon özdeş USB cihazı yapmak ve satmak istiyorsam, sadece bir VID satın almam gerekiyor. 1 milyon Ethernet cihazı yapmak ve satmak istiyorsam, 1 milyon MAC kimliği satın almam gerekiyor


Neden Bluetooth cihazlarda Bluetooth adresi, hatta Dizüstü Bilgisayarlarda MAC adresleri gibi keşfedilebilir bir usb cihaz kimliği yayınlamıyorlardı?
Pelin ve Asfodel İnfüzyonu

@StaceyMyers Cevabımı, bir USB VID: PID kombinasyonunun MAC-ID yerine aksine elde etmeye çalıştığı farkı açıklamak için genişlettim. Hiçbir zaman bir Bluetooth cihazı tasarlamadım, bu yüzden yorum yapmak için yeterince iyi anlamıyorum.
Warren Hill

Bu, genel USB bilgisi için çok yararlı bir bilgidir (bu yüzden ben de oyumu iptal ettim), ancak OP'nin sorusunu cevapladığını düşünmüyorum (kabul edilen yanıtın yaptığı gibi), çünkü OP'nin tasarım yapmak istediği şey bir USB ana makinesi olacaktır. Bu noktada herhangi bir düzenleme önermiyorum - sadece FYI.
cp.engr

2

Microchip gibi bazı donanım satıcılarının kendi Satıcı kimliklerini müşterileri için ücretsiz olarak alt lisans vermeye istekli olduğunu unutmayın.


Bir mikrodenetleyici satıcısının VID'sini bu şekilde alt lisanslıyorsanız, genellikle maksimum 10.000 birim cihazınızla sınırlı olacaksınız.
cp.engr
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.