View Single Post
Old 29-06-2006, 04:11 PM   #18
phamthaihoa
Đệ tử 3 túi
 
Tham gia ngày: Jun 2005
Bài gửi: 56
:
Trích:
Nguyên văn bởi bien_van_khat
Tiện tay đang có hứng viết luôn. Làm sao PC biết được thiết bị USB nào ứng với cái driver nào?
Khi bạn cắm thiết bị vào PC, 1 quá trình phức tạp diễn ra gọi là enumeration, mục đích là nhận dạng thiết bị. Sau quá trình này host có được vendor ID và product ID cùng với class ID của thiết bị. Hai giá trị VID và PID xác định duy nhất 1 dòng thiết bị vì vendor ID là duy nhất ứng với mỗi nhà sản xuất (muốn có phải đăng ký với USB.org + 1 ít money), product ID do nhà sản xuất gán. Nếu PC lục trong registry ko thấy cái VID + PID của thiết bị, nó sẽ load cái driver chung cho cái class của thiết bị, nếu class này được hỗ trợ, còn không nó bung cái popup hỏi driver đâu?

Mỗi driver sẽ được đính kèm 1 file .inf. Bên trong file này có 1 số thông tin về thiết bị, nhưng quan trọng nhất vẫn là thằng VID + PID. Nếu bạn sửa 2 cái này đúng với cái VID + PID của hardware, windows sẽ OK ngay lập tức, nhưng nó có chạy hay ko thì không biết.
Hỏi bác, nếu em cắm hai thiết bị có cùng VID, PID, phát triển theo cùng kiểu (Generic,HID,Mass Storage, CDC..) thì chuyện gì xảy ra ?

Trích:
Nguyên văn bởi bien_van_khat
Vậy tui xài bất kỳ ngôn ngữ nào có hỗ trợ gọi API đều có thể giao tiếp được với hardware của tui một cách đúng nghĩa.
Câu này đúng, không cần quan tâm đến kiểu firmware USB chỉ cần quan tâm đến EP, xem cái nào là endpoint in, thông thường là EP1,2, là xong. Windriver làm kiểu này.
phamthaihoa vẫn chưa có mặt trong diễn đàn   Trả Lời Với Trích Dẫn