ID sản phẩm trong USB là gì và tôi có cần mua nó cho dự án của mình không?


11

Tôi đang cố gắng phát triển một thiết bị di động cho phép tôi chuyển dữ liệu từ một thiết bị lưu trữ USB sang thiết bị khác mà không cần sử dụng PC / Laptop. Tôi đang đọc hướng dẫn dành cho nhà phát triển của Jan Axelson khi tôi bắt gặp một phần nói rằng người ta phải mua ID nhà cung cấp / ID sản phẩm USB để tạo bất kỳ thiết bị USB nào. Tôi đọc tương tự trên Diễn đàn triển khai USB. Tôi không chắc về tầm quan trọng của ID sản phẩm này trong dự án của tôi.

  • Đây có phải là một địa chỉ MAC cho máy tính / máy tính xách tay không và tôi có cần nó không?

  • Đây có phải là thứ chỉ cần thiết để phát triển các thiết bị ngoại vi chứ không phải các thiết bị như những gì tôi muốn triển khai (mà tôi đoán giống với máy chủ hơn)?


Có vẻ như bạn sẽ đóng vai trò là người dẫn chương trình trong trường hợp đó vì vậy bạn sẽ không yêu cầu câu trả lời theo câu trả lời của Wouter.
PeterJ

@PeterJ Tôi xin lỗi vì đã mang điều này muộn nhưng tôi cũng có kế hoạch phát triển giao diện màn hình cảm ứng để bỏ qua và quản lý chuyển thiết bị. Tôi vẫn tốt để đi mà không cần ID nhà cung cấp / ID sản phẩm?
Truyền Wormwood n Asfodel

Nếu kết nối qua USB với cùng một thiết bị chủ thì nó sẽ là một thiết bị và cần một thiết bị. Xem ở đây để biết giá: usb.org/developers/vendor . Bạn thực sự chỉ cần một cái để sử dụng logo và cho sản xuất, nếu bạn chỉ ở giai đoạn thử nghiệm / khái niệm, bạn có thể tạo một cái. Không có nhà cung cấp chính thức ID 666 như được phân bổ, ví dụ tôi nhận thấy một lúc trước. Ngoài ra, tôi không chắc chắn 100% bạn sẽ cần một cái dù sao, xung đột sẽ không thành vấn đề nếu nó không có nghĩa là kết nối với PC và bạn có thể sẽ không cần logo USB, mặc dù tôi không chắc chắn về mặt pháp lý của sự vật.
PeterJ

Tôi dự định kết hợp nó trong cùng một thiết bị như màn hình cảm ứng trên điện thoại thông minh. Liệu điều đó có khiến nó phải chịu khoản phí nói trên không?
Truyền Wormwood n Asfodel

Không, điều đó sẽ ổn thôi. Đó thực sự chỉ là tất cả về khả năng tương thích liên quan đến các sản phẩm của người dùng cuối khi chúng được cắm trực tiếp vào PC.
PeterJ

Câu trả lời:


12

Tôi không chắc chính xác những gì bạn muốn làm, nhưng nếu đó là một thiết bị chủ thì bạn thực sự không cần USB VID / PID.

USB VID / PID của thiết bị phụ được sử dụng bởi máy chủ để xác định (các) trình điều khiển được sử dụng cho thiết bị phụ. Một thiết bị chủ không cần xác định chính nó với nô lệ, do đó nó không cần VID / PID.


Một thiết bị có thể được sử dụng để truyền dữ liệu từ một thiết bị lưu trữ USB (ổ đĩa bút) sang thiết bị khác do đó loại bỏ một máy tính xách tay / máy tính chủ yếu được sử dụng để thực hiện việc này.
Truyền Wormwood n Asfodel

Tôi đã viết lại câu đầu tiên trong trường hợp nó cảm thấy mơ hồ.
Truyền Wormwood n Asfodel

Điều này bỏ qua các thiết bị OTG, có thể là máy chủ hoặc nô lệ.
Người qua đường

@Passerby: Khi thiết bị OTG là thiết bị, nó cần VID và PID, Khi đó là máy chủ thì không. Vì vậy, bạn cần phải mua VID cho lần thiết bị của mình.
Warren Hill

5

Chỉ các thiết bị cần VID và PID không lưu trữ.

ID nhà cung cấp hoặc VID là số 16 bit mà bạn phải mua từ Quỹ USB. Nếu bạn muốn tạo thiết bị USB (và chơi hoàn toàn theo quy tắc), VID xác định tổ chức của bạn.

ID sản phẩm hoặc PID cũng là số 16 bit nhưng nằm dưới sự kiểm soát của bạn. Khi bạn mua VID, bạn có quyền sử dụng nó với mọi PID có thể, do đó, điều này mang lại cho bạn 65536 kết hợp VID: PID có thể. Mục đích là sự kết hợp VID: PID sẽ xác định duy nhất một nhóm cụ thể trên toàn cầu.

Điều này đảm bảo rằng không có PC nào có thể nhìn thấy hai thiết bị khác nhau có cùng VID và PID vì PC sử dụng những thiết bị này để xác định thiết bị nếu không có thể xảy ra xung đột.

Lưu ý: Không giống như MAC-ID, mục đích của sự kết hợp VID: PID là xác định duy nhất một loại thiết bị trong phạm vi mà hệ điều hành biết trình điều khiển nào để sử dụng, không phải lúc nào cũng có thể phân biệt giữa hai thiết bị giống hệt nhau. Ví dụ, hai thẻ nhớ USB có máy tính không chỉ biết thiết bị là gì mà nó còn cắm vào cổng nào.

Khi bạn cắm thiết bị USB vào HĐH, hãy hỏi thiết bị về VID và PID của thiết bị và cung cấp cho thiết bị địa chỉ mà nó sẽ tiếp tục sử dụng cho đến khi thiết bị được gỡ bỏ (hoặc tắt máy tính).

Khi PC biết VID và PID, nó sẽ kiểm tra xem nó đã biết chưa. Nếu nó tải nó trình điều khiển chính xác cho nó; nếu không bạn có cơ hội cài đặt bất kỳ trình điều khiển có liên quan. Quá trình này được gọi là liệt kê.

Mặt khác, MAC-ID không tự cung cấp bất kỳ thông tin nào về thiết bị là gì (máy tính, máy in, bộ định tuyến, v.v.) nhưng xác định duy nhất một thiết bị: hai PC giống nhau sẽ có ID MAC khác nhau như thể chúng cả hai đều được cắm vào cùng một mạng Ethernet, nó không hoạt động chính xác. Tuy nhiên, hai thẻ nhớ USB giống hệt nhau sẽ có VID và PID giống hệt nhau.

Nếu tôi muốn tạo và bán 1 triệu thiết bị USB giống hệt nhau, tôi chỉ cần mua một VID. Nếu tôi muốn tạo và bán 1 triệu thiết bị Ethernet, tôi phải mua 1 triệu MAC-ID


Tại sao họ không đơn giản phát hành ID thiết bị usb có thể khám phá như địa chỉ Bluetooth trong thiết bị Bluetooth hoặc thậm chí địa chỉ MAC trong Máy tính xách tay?
Truyền Wormwood n Asfodel

@StaceyMyer Tôi đã mở rộng câu trả lời của mình để giải thích sự khác biệt về kết hợp USB VID: PID đang cố gắng đạt được so với MAC-ID. Tôi chưa bao giờ thiết kế một thiết bị Bluetooth vì vậy tôi không hiểu nó đủ tốt để bình luận.
Warren Hill

Đây là thông tin rất hữu ích cho kiến ​​thức chung về USB (do đó tôi cũng đã nâng cấp), nhưng tôi không nghĩ nó trả lời câu hỏi của OP (như câu trả lời được chấp nhận), vì điều OP muốn thiết kế sẽ là máy chủ USB. Tuy nhiên, tôi không đề xuất bất kỳ chỉnh sửa nào - chỉ là FYI.
cp.engr

2

Lưu ý rằng một số nhà cung cấp phần cứng, như Microchip , sẵn sàng cấp phép ID nhà cung cấp riêng của họ cho khách hàng của họ, miễn phí.


Nói chung, bạn sẽ bị giới hạn sản xuất tối đa 10.000 đơn vị thiết bị của mình nếu bạn cấp phép phụ VID của nhà cung cấp vi điều khiển theo cách này.
cp.engr
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.