Próbuję opracować urządzenie przenośne, które pozwoli mi przesyłać dane z jednego urządzenia pamięci USB na drugie bez użycia komputera / laptopa. Czytałem przewodnik dla programistów autorstwa Jana Axelsona, w którym natknąłem się na sekcję, w której napisano, że aby stworzyć dowolne urządzenie USB, należy kupić identyfikator dostawcy USB / identyfikator produktu. To samo czytam na Forum Implementatorów USB. Nie jestem pewien znaczenia tego identyfikatora produktu w moim projekcie.
Czy to coś w rodzaju adresu MAC dla komputerów / laptopów i czy będę go potrzebować?
Czy jest to coś wymaganego tylko do projektowania urządzeń peryferyjnych, a nie urządzeń takich jak to, co chciałbym wdrożyć (co wydaje mi się bardziej jak host)?
usb
usb-device
usb-host
Infusion of Wormwood n Asfodel
źródło
źródło
Odpowiedzi:
Nie jestem pewien, co dokładnie chcesz zrobić, ale jeśli jest to urządzenie hosta, naprawdę nie potrzebujesz USB VID / PID.
USB VID / PID urządzenia podrzędnego jest używany przez hosta do identyfikacji sterowników, które mają być używane dla urządzenia podrzędnego. Urządzenie hosta nie musi się identyfikować z urządzeniem podrzędnym, dlatego nie potrzebuje VID / PID.
źródło
Tylko urządzenia potrzebują VID i PID, a nie hostów.
Identyfikator dostawcy lub identyfikator VID to 16-bitowy numer, który należy kupić w usłudze USB Foundation. Jeśli chcesz zrobić urządzenie USB (i w pełni grać zgodnie z zasadami), VID identyfikuje twoją organizację.
Identyfikator produktu lub PID to także 16-bitowa liczba, ale jest pod twoją kontrolą. Kupując VID, masz prawo używać go z każdym możliwym PID, więc daje to 65536 możliwych kombinacji VID: PID. Chodzi o to, aby kombinacja VID: PID jednoznacznie identyfikowała konkretny poduct globalnie.
Gwarantuje to, że żaden komputer nie będzie widział dwóch różnych urządzeń z tym samym VID i PID, ponieważ komputer używa ich do identyfikacji urządzenia, w przeciwnym razie może wystąpić konflikt.
Uwaga: W przeciwieństwie do MAC-ID celem kombinacji VID: PID jest jednoznaczna identyfikacja typu urządzenia, o ile system operacyjny wie, jakich sterowników użyć, nie zawsze jest konieczne rozróżnienie dwóch identycznych urządzeń. Na przykład dwie karty pamięci USB sprawiają, że komputer nie tylko wie, jakie urządzenie to wie, do którego portu jest podłączony.
Po podłączeniu urządzenia USB do systemu operacyjnego urządzenie prosi o podanie identyfikatora VID i PID i podaje mu adres, z którego będzie nadal korzystać, dopóki urządzenie nie zostanie usunięte (lub komputer zostanie wyłączony).
Gdy komputer zna VID i PID, sprawdza, czy już je zna. Jeśli tak, ładuje odpowiednie sterowniki; jeśli nie, masz możliwość zainstalowania odpowiednich sterowników. Ten proces nazywa się wyliczaniem.
Z drugiej strony MAC-ID sam w sobie nie dostarcza żadnych informacji na temat tego, czym jest urządzenie (komputer, drukarka, router itp.), Ale jednoznacznie identyfikuje urządzenie: dwa identyczne komputery będą miały różne MAC-ID tak, jakby oba zostaną podłączone do tej samej sieci Ethernet, która nie będzie działać poprawnie. Jednak dwa identyczne karty pamięci USB będą miały identyczne VID i PID.
Jeśli chcę wyprodukować i sprzedać 1 milion identycznych urządzeń USB, muszę kupić tylko jeden VID. Jeśli chcę wyprodukować i sprzedać 1 milion urządzeń Ethernet, muszę kupić 1 milion MAC-ID
źródło
Pamiętaj, że niektórzy dostawcy sprzętu, na przykład Microchip , chcą sublicencjonować swój własny identyfikator dostawcy swoim klientom za darmo.
źródło