Các loại Descriptor chuẩn

Một phần của tài liệu thiết kế xây dựng thiết bị usb dongle - bảo vệ phần mềm có bản quyền (Trang 44)

Tất cả các thiết bị USB đều bao gồm một tập các descriptor có mối quan hệ móc nối với nhau nhằm mô tả những thông tin đặc trƣng, chi tiết của từng thiết bị, ví

45

dụ: nhà sản xuất, phiên bản mà thiết bị USB hỗ trợ, loại thiết bị, các endpoint… Tập các descriptor này là một chuẩn đã đƣợc công bố mà các thiết bị USB phải tuân theo để có thể giao tiếp. Do đó, phần này không chỉ nói riêng về cấu trúc thiết bị USB 1.1, mà các thiết bị USB 2.0 và 3.0 cũng có cấu trúc tƣơng đồng nhƣ vậy.

Device descriptor Interface descriptor(s) Configuration descriptor(s) Endpoint descriptor(s) String descriptor(s)

Hình 1-20 Sơ đồ tổ chức các descriptor chuẩn

Có 5 loại Descriptor chuẩn:

Device descriptor: mỗi thiết bị USB chỉ có duy nhất một Device descriptor. Device descriptor bao gồm những thông tin chung về thiết bị nhƣ tên nhà sản xuất, tên sản phẩm, phiên bản USB, số byte lớn nhất của gói dữ liệu truyền qua Control Transfer, số lƣợng Configuration descriptor…

Configuration descriptor: trong quá trình nhận dạng thiết bị, host truy xuất Device descriptor và quyết định xem cofiguration nào sẽ đƣợc hiển thị. Chỉ có một configuration đƣợc thể hiện tại một thời điểm. Configuration descriptor bao gồm nhiều thông tin và là nơi chứa thông tin quan trọng về Interface. Có một vài thiết bị có nhiều hơn một configuration.

46  Interface descriptor: đây đƣợc xem nhƣ là một header của các endpoint mà các endpoint này sẽ thể hiện những tính năng của thiết bị. Không giống nhƣ Configuration descriptor, không có giới hạn về việc một interface chỉ đƣợc thể hiện ở một thời điểm. Một thiết bị có một hay nhiều Interface descriptor đƣợc hiển thị cùng một lúc.

Endpoint descriptor: nơi này sẽ cho biết loại và hƣớng truyền dữ liệu của endpoint, kích thƣớc packet lớn nhất cho mỗi endpoint,… Endpoint 0, là endpoint mặc định đƣợc dùng trong Control transfer và bất kỳ device nào cũng phải hỗ trợ nó, nên sẽ không đƣợc mô tả trong Endpoint descriptor.

String descriptor: đƣợc dùng để xác định ngôn ngữ mô tả cho thiết bị, tên nhà sản xuất, tên sản phẩm, chú giải cho các configuration, interface…

Một phần của tài liệu thiết kế xây dựng thiết bị usb dongle - bảo vệ phần mềm có bản quyền (Trang 44)