Chương 5: Lớp thiết bị giao diện người sử dụng
5.6 Các yêu cầu mà host có thể gửi tới một thiết bị thuộc lớp HID
HID
Như đã trình bày ở mục 5.2.3 , đặc tả HID định nghĩa 6 yêu cầu mà Host có thể gửi tới một thiết bị thuộc lớp HID. Tất cả các HID phải hỗ trợ Get_Report, còn đối với các thiết bị hỗ trợ giao thức khởi động thì phải đáp ứng được các yêu cầu Get_Protocol và Set_Protocol. Các yêu cầu còn lại gồm
Set_Report, Get_Idle và Set_Idle là tuỳ chọn, trừ trường hợp đối với một
keyboard sử dụng giao thức khởi động phải hỗ trợ Set_Idle. Nếu một HID
khơng có một điểm cuối ngắt ra (OUT) hoặc nếu HID đang giao tiếp với một máy chủ chỉ hỗ trợ USB 1.0 như Windows 98 Gold chẳng hạn thì HID đó nếu muốn nhận report từ host nó phải hỗ trợ Set_Report.
Các yêu cầu ở trên sẽ được Host gửi tới thiết bị trong giai đoạn setup
của truyền điều khiển. Giai đoạn setup của truyền điều khiển như đã được trình bày trong mục 3.5.2 diễn ra như sau: ban đầu host phát ra gói thơng báo setup, theo sau đó là gói dữ liệu dành cho giao tác setup có kích thước của phần dữ liệu là 8 byte, cuối cùng host chờ gói bắt tay ACK để biết rằng giao tác setup có thành cơng hay khơng. Các u cầu của host được chứa trong 8 byte dữ liệu của gói dữ liệu theo sau gói thơng báo setup, nó có khn dạng như sau:
Hình 5.1: khn dạng gói dữ liệu của giai đoạn setup trong kiểu truyền điều khiển
Có một số bit trong gói trên có giá trị giống nhau đối với cả 6 yêu cầu đó là: - 5 bit Destination type =00000B để chỉ ra đích đến của yêu cầu là một thiết bị. (00001B: đích là một giao diện cụ thể, 00010B: đích là một điểm cuối trên thiết bị, 00011B: đích là một trong các thành phần khác trong thiết bị).
- 2 bit Request Type =01 để chỉ ra loại yêu cầu này là để dành cho một lớp thiết bị cụ thể. (00: tức request là một trong các request chuẩn (có 11 loại request chuẩn), 10: request được định nghĩa bởi nhà cung cấp thiết bị).