Trình Xem Thiết Bị USB
Đọc descriptor USB ngay trong trình duyệt qua WebUSB. Không driver, không cài đặt: xem VID/PID, cấu hình, interface, endpoint trên Chrome/Edge.
Giới Thiệu Trình Xem Thiết Bị USB
Xem thông tin chi tiết về các thiết bị USB đã kết nối bằng WebUSB API. Khám phá các mô tả thiết bị bao gồm vendor/product ID, cấu hình, giao diện và endpoints. Hoàn hảo cho phát triển USB, gỡ lỗi phần cứng và hiểu cấu trúc thiết bị USB.
How to use:
- Nhấn 'Chọn thiết bị USB' để mở danh sách thiết bị.
- Chọn một thiết bị USB từ danh sách các thiết bị đã kết nối.
- Xem thông tin chi tiết thiết bị bao gồm ID và mô tả.
- Khám phá cấu hình, giao diện và endpoints của thiết bị.
- Kiểm tra lớp giao diện và loại endpoint cho thiết bị của bạn.
- Sử dụng 'Ngắt kết nối' để giải phóng thiết bị khi hoàn tất.
Khả Năng Tương Thích Trình Duyệt
- Chrome/Edge (Desktop): Hỗ trợ đầy đủ
- Chrome trên Android: Được hỗ trợ
- Opera: Được hỗ trợ
- Firefox/Safari: Không hỗ trợ
- Yêu cầu HTTPS để đảm bảo bảo mật
- Người dùng phải chọn thiết bị thủ công

Tài Liệu Tham Khảo Kỹ Thuật
- MDN WebUSB API: https://developer.mozilla.org/en-US/docs/Web/API/USB
- Đặc Tả WebUSB: https://wicg.github.io/webusb/
- Trạng Thái Nền Tảng Chrome: https://chromestatus.com/feature/5651917954875392
Câu Hỏi Thường Gặp
Công cụ dùng WebUSB API để liệt kê các thiết bị USB được kết nối mà người dùng cấp quyền tường minh cho trình duyệt. Nó hiển thị ID nhà sản xuất (VID) và ID sản phẩm (PID) dưới dạng số hex 16-bit, các chuỗi nhà sản xuất và sản phẩm lưu trong mô tả thiết bị, số serial USB khi có và toàn bộ cây cấu hình — giao diện, cài đặt thay thế, điểm cuối với hướng (IN hoặc OUT), loại truyền (điều khiển, hàng loạt, ngắt, đồng bộ) và kích thước gói tối đa. Nó không hiển thị thông tin cấp kernel có sẵn cho công cụ hệ thống như lsusb -v trên Linux vì sandbox trình duyệt hạn chế truy cập vì lý do bảo mật. WebUSB dành cho công việc sở thích và mẫu, không phải để thay thế trình điều khiển gốc.
Hầu hết người dùng không cần nhìn dưới mui xe, nhưng nhà phát triển, người làm DIY, nhân viên hỗ trợ CNTT và người dùng tò mò hưởng lợi trong nhiều tình huống. Khi thiết bị không liệt kê đúng, so sánh mô tả trên hai máy tính có thể cô lập xem thiết bị có lỗi hay ngăn xếp máy chủ hoạt động sai. Dự án phần cứng tự làm (Arduino, Raspberry Pi Pico, ESP32 với TinyUSB) cần xác minh mô tả thiết bị khớp với cấu hình firmware. Phát hiện hàng giả cũng được lợi: VID hợp pháp do USB-IF cấp như 0x05AC (Apple) trên cáp không thương hiệu là cờ đỏ. Người dùng quan tâm quyền riêng tư cũng có thể kiểm tra số serial và mã định danh duy nhất mà cáp và dongle của họ tiết lộ cho mỗi máy tính.
Thiết bị hoạt động tốt hiển thị VID thật được đăng ký (USB-IF cấp, tốn $6.000 cho nhà sản xuất mới), chuỗi nhà sản xuất và sản phẩm mô tả bằng UTF-16LE, phiên bản bcdUSB đúng (ví dụ 0x0200 cho USB 2.0, 0x0300 cho USB 3.0) và không có số serial hoặc một số ổn định duy nhất toàn cầu. Cờ đỏ bao gồm VID 0x1234 (thường dùng cho bo phát triển chưa đăng ký), mô tả chuỗi rỗng (chỉ VID/PID không tên đọc được), bMaxPacketSize0 không nhất quán (phải là 8, 16, 32 hoặc 64 cho full-speed, 64 cho high-speed) hoặc thiết bị tự cấu hình lại giữa các lần liệt kê (mô tả thay đổi khi rút và cắm lại). Trường bcdDevice cũng có thể tiết lộ phiên bản firmware khi nhà sản xuất cập nhật qua các bản sửa đổi.
Thiết bị USB giao tiếp qua một hoặc nhiều giao diện, mỗi cái đại diện cho chức năng logic — máy in có thể hiển thị một giao diện in và một giao diện máy quét. Mỗi giao diện chứa điểm cuối, là đường ống dữ liệu một chiều: điểm cuối OUT nhận từ máy chủ, IN gửi đến máy chủ. Bốn loại truyền phục vụ mẫu lưu lượng khác nhau. Điểm cuối điều khiển (luôn 0) xử lý thiết lập, mô tả và yêu cầu chuẩn. Điểm cuối hàng loạt mang dữ liệu lớn chấp nhận độ trễ như truyền tập tin. Điểm cuối ngắt thăm dò tải nhỏ ở khoảng thời gian cố định — dùng bởi bàn phím, chuột và thiết bị HID. Điểm cuối đồng bộ dành băng thông không có thử lại lỗi — dùng bởi âm thanh và video nơi mất khung tốt hơn trì hoãn.
WebUSB hạn chế truy cập có chủ đích để bảo vệ người dùng. Thiết bị đã có trình điều khiển lớp được hệ điều hành tải — bàn phím, chuột, lưu trữ khối lượng, máy in, âm thanh, thẻ thông minh — bị chính sách trình duyệt chặn truy cập WebUSB, để website ác ý không thể đánh cắp phím gõ hoặc đọc ổ USB. Chỉ các thiết bị tường minh quảng bá hỗ trợ WebUSB (qua mô tả Microsoft OS 2.0 với khả năng nền tảng WebUSB) hoặc không có trình điều khiển hệ thống nào tuyên bố mới xuất hiện trong bộ chọn. Mỗi ủy quyền là theo nguồn gốc và theo thiết bị: cấp truy cập cho một trang không cấp cho trang khác, và bạn có thể thu hồi quyền trong cài đặt trang web của trình duyệt.
Cáp tự nó là thụ động nhưng ngày càng chứa chip e-marker — IC nhỏ báo cáo khả năng cáp (dòng tối đa, làn dữ liệu USB 3.x, hỗ trợ Thunderbolt, chế độ video thay thế) cho máy chủ qua chân Kênh Cấu hình (CC). WebUSB không thể truy vấn e-marker trực tiếp, nhưng bạn có thể suy ra khả năng cáp từ mô tả thiết bị nào xuất hiện: nếu cắm SSD USB 3.x qua cáp và nó chỉ liệt kê là USB 2.0, cáp thiếu cặp SuperSpeed. Nếu ổ Thunderbolt chỉ hiện như USB 3.x, cáp không được chứng nhận Thunderbolt. Bài kiểm tra đáng tin cậy nhất vẫn là: kết nối thiết bị đầy đủ tính năng đã biết tốt và xác minh mô tả của nó báo cáo phiên bản bcdUSB như mong đợi.
Phiên bản USB trong mô tả (bcdUSB) và tên tiếp thị khác biệt gây nhầm lẫn. USB 1.1 (bcdUSB 0x0110) là 1,5/12 Mbps. USB 2.0 (0x0200) đạt 480 Mbps. USB 3.0 ban đầu (0x0300) là 5 Gbps và được đổi tên thành USB 3.1 Gen 1, rồi USB 3.2 Gen 1, rồi USB 5Gbps. USB 3.1 Gen 2 / 3.2 Gen 2 / USB 10Gbps gấp đôi lên 10 Gbps. USB 3.2 Gen 2x2 / USB 20Gbps dùng USB-C hai làn cho 20 Gbps. USB4 (dựa trên giao thức Thunderbolt 3) đạt 20 hoặc 40 Gbps. Mô tả báo cáo cấp giao thức gốc của thiết bị, nhưng tốc độ đàm phán phụ thuộc vào máy chủ, cáp và chuỗi hub. Thiết bị USB 3.x trên hub USB 2.0 sẽ báo cáo USB 3.x trong mô tả nhưng hoạt động ở 480 Mbps.
Quyền WebUSB cấp cho nguồn gốc truy cập trực tiếp đến các điểm cuối riêng của nhà sản xuất của thiết bị được ủy quyền. Một khi được cấp, trang có thể gửi và nhận truyền USB thô đến thiết bị đó miễn là thiết bị còn cắm và trang còn tải. Điều này phù hợp cho ứng dụng lập trình phần cứng mục đích đơn (ví dụ trình cập nhật firmware cho bo cụ thể) nhưng không phù hợp cho trang mục đích chung. Thực hành tốt nhất: thu hồi quyền trong cài đặt trang khi ngừng dùng công cụ, không bao giờ ủy quyền truy cập đến thiết bị nhạy cảm bảo mật như ví phần cứng trừ khi nhà sản xuất hỗ trợ tường minh, ưu tiên ủy quyền theo phiên hơn vĩnh viễn và xác minh trang là URL nhà sản xuất hợp pháp trước khi cho phép.
Bộ ba lớp/lớp phụ/giao thức cho biết loại thiết bị (hoặc interface) bạn đang xem, dùng mã lớp cơ sở của USB-IF. Các giá trị phổ biến nhất mà kỹ thuật viên sửa chữa gặp: 0x00 nghĩa là lớp được khai báo theo từng interface (hãy xem lớp của mỗi interface thay vì lớp ở cấp thiết bị); 0x03 là HID (bàn phím, chuột, tay cầm, nhiều thiết bị nhập tùy chỉnh); 0x07 là Máy in; 0x08 là Lưu trữ Khối (USB flash, đầu đọc thẻ, ổ cứng ngoài); 0x09 là Hub (mọi hub USB nhiều cổng đều báo cáo giá trị này); 0x0A là CDC-Data và 0x02 là Truyền thông (bộ chuyển serial, modem, nhiều bo Arduino/ESP tạo cổng COM ảo); 0x0E là Video (webcam UVC); 0x01 là Âm thanh; 0x0B là Thẻ Thông minh; và 0xFF là riêng của nhà sản xuất, nghĩa là thiết bị cần driver riêng của hãng và đúng là loại thiết bị mà WebUSB được phép giao tiếp. Lớp phụ và giao thức tinh chỉnh chức năng — với HID, giao thức 0x01 là bàn phím chế độ boot và 0x02 là chuột chế độ boot. Khi lớp ở cấp thiết bị là 0xFF hoặc 0x00, phân loại có ý nghĩa nằm ở từng interface trong bảng Cấu hình bên dưới.
Có. Nhấn Xuất JSON để tải về ảnh chụp đầy đủ của cây descriptor đã liệt kê — VID/PID dạng hex 0x, lớp/lớp phụ/giao thức thiết bị, phiên bản bcdUSB và bcdDevice, chuỗi nhà sản xuất/sản phẩm/serial, và mọi cấu hình, interface, endpoint (số, hướng, loại truyền, kích thước gói tối đa) — lưu thành usb-VID-PID.json với dấu thời gian exportedAt. Sao chép đặt cùng JSON đó vào bộ nhớ tạm. Đây là tương đương WebUSB của việc ghi lại đầu ra lsusb -v: đính kèm vào phiếu hỗ trợ, lưu trữ một bản sửa firmware, hoặc so sánh một bộ tốt đã biết với bộ nghi ngờ hay hàng giả bằng bất kỳ công cụ diff văn bản/JSON nào. Vì cấu trúc ổn định, hai lần xuất từ máy hoặc cáp khác nhau sẽ khớp theo từng trường, giúp dễ phát hiện endpoint bị thiếu, bcdUSB bị hạ tốc độ, hoặc số serial bị thay đổi.
