Upload
congtan94
View
988
Download
3
Embed Size (px)
Citation preview
Tìm hiểu giao tiếp USB
Bai giang sư dung tai liệu cua sinh viên khoa trươc
IntroductionThe electrical and mechanical
interface
Inside a USB transfer
USB data flow model
Enumeration
USB protocol
Driver Model
Human Interface device
Nôi dung
Introduction
• USB là môt chuẩn kết nối của máy tính.• Ra đời năm 1996 (1.0)• Là kết quả của sự hợp tác giữa 7 công ty hàng đầu
thế giới
Compaq, Digital Equipment Corporation, IBM, Intel, Microsoft, NEC, Northern
Telecom
Introduction
Introduction
Introduction
Tốc độ trên lý thuyết :• USB 1.0: 1,5 Mbps (low speed)• USB 1.1: 12 Mbps (full speed)• USB 2.0: 480 Mbps (high speed)• USB 3.0: 4,8 Gbps (super speed)
Introduction
Cấu tạo
Introduction
Ưu điểm:
RS232USB
INTERFACE
VGA Ethernet
Sound
Introduction
Hỗ trợ nhiều kết nối khác nhau
Tự cấu hình: tự load driver khi kết nối thiết bị ngoại vi với PC – không cần reset máy sau khi cài driver
Insert driver disk
First time Next time
Plug & Play
IntroductionƯu điểm:
• Dễ kết nối các thiết bị vào cổng USB• Đa số máy tính hiện nay có nhiều cổng USB, ngoài ra
còn có các loại HUB USB.
USB mở rộng tới 127 thiết bị có
thể kết nối cùng vào một máy tính trên một cổng USB duy nhất (bao gồm các hub USB)
IntroductionƯu điểm:
•Bên cạnh đó, USB tiện lợi hơn các đầu cắm khác do kích thước nhỏ, có thể tháo và cắm nóng thiết bị mà không hề tổn hại đến PC
•USB cũng hỗ trợ kết nối không dây giữa PC và thiết bị
•Với HUB, khoảng cách dây giữa PC và device có thể lên tới 30m
•Không cần thiết lập cài đặt cao cho thiết bị (port address…)
VS
Introduction
$$$$$$$$$$
•Multiple speeds:•SuperSpeed (USB 3.0) 5 Gbps•High speed: 480 Mbps (USB 2.0)•Full speed: 12 Mbps, low speed: 1.5 Mbps (USB 1.x).•Cho phép chọn tốc độ phù hợp với ứng dụng.
•Độ an toàn: cả phần cứng và giao thức sử dụng cho USB đều thề hiện sự an toàn cho dữ liệu: có khả năng khử nhiễu, phát hiện và sửa lỗi khi chuyển dữ liệu.•Không tốn kém: thực tế cho thấy các thiết bị với giao tiếp USB ngày nay có giá thành ngày càng rẻ.
•Tiết kiệm năng lượng, công suất tiêu thụ thấp…
IntroductionƯu điểm:
Hạn chế:• Giới hạn về khoảng cách (< 5m without hub)
• Không hỗ trợ kết nối peer to peer (do USB yêu cầu phải có PC – host controller hardware và device controller hardware) và broadcasting
• Không tương thích với phần cứng và hệ điều hành cũ (không có port USB hoặc ko hỗ trợ driver)
Introduction
The Electronic and Mechanical Interface
Mechanical
USB 1.x/2.0 standard pinoutPin Name Cable color Description1 VBUS Red +5 V2 D− White Data −3 D+ Green Data +4 GND Black Ground
Mechanical
The Electronic and Mechanical Interface
USB 1.x/2.0 standard pinout
Mechanical
The Electronic and Mechanical Interface
USB 1.x/2.0 Mini/Micro pinout
Pin Name Cable color Description1 VBUS Red +5 V2 D− White Data −3 D+ Green Data +
4 ID NonePermits distinction of A plug from B plug* A plug: connected to Signal ground* B plug: not connected
5 GND Black Signal ground
The Electronic and Mechanical Interface
Mechanical
Mini USB
Mini-AB
Mini-B Mini-A
Mechanical
The Electronic and Mechanical Interface
Micro USB
Micro B
Mechanical
The Electronic and Mechanical Interface
• Cổng Micro-USB được thiết kế để chịu được tối đa 10000 lần rút ra cắm vào
• USB chuẩn chỉ được thiết kế cho 1500 lần và Mini-USB cũng chỉ được thiết kế tối đa 5000 lần rút ra cắm vào
MechanicalMicro USB
The Electronic and Mechanical Interface
eSATAp (eSATA/USB) combo port
Mechanical
The Electronic and Mechanical Interface
Pin ColorSignal name
('A' connector)
Signal name ('B'
connector)1 Red VBUS2 White D−3 Green D+4 Black GND5 Blue StdA_SSRX− StdA_SSTX−6 Yellow StdA_SSRX+ StdA_SSTX+7 Shield GND_DRAIN8 Purple StdA_SSTX− StdA_SSRX−9 Orange StdA_SSTX+ StdA_SSRX+
USB 3.0 pinoutsMechanical
The Electronic and Mechanical Interface
Mechanical
Cấu tạo chuẩn A USB 3.0
Mechanical
Cấu tạo chuẩn B USB 3.0
Standard B
Micro B
Electrical
The Electronic and Mechanical Interface
Full speed device
Low speed device
Low speed và full speed
The Electronic and Mechanical Interface
Low speed và full speedMức logic của tín hiệu phụ thuộc vào tốc độ. Vì thế
người ta dùng ký hiệu J và K để chỉ mức logicLow speed: J = 0; K = 1High speed: J = 1; K = 0
The Electronic and Mechanical Interface
Low/full-speed signaling levels
The Electronic and Mechanical Interface
Low/full-speed signaling levels
The Electronic and Mechanical Interface
Electrical
The Electronic and Mechanical Interface
Electrical
The Electronic and Mechanical Interface
High speedTốc độ 480MHz được chọn vì
Phù hợp với công nghệ vào thời điểm đó có thể sử dụng các cổng và cáp cũ
Đặc biệt 480 là bội số của 12 nên có thể sử dụng chung thạch anh cho các chế độ Giá thành rẻ
Thiết bị high speed sẽ kết nối bằng full speed sau đó reset và test nếu hub hỗ trợ kết nối 2.0 sẽ khởi tạo kết nối Khi hoạt động ở high speed điện trở pull up sẽ được tắt để cân
bằng đường dây Thiết bị tương thích USB 2.0 không nhất thiết phải hỗ trợ high
speed Thiết bị dùng high speed không đc hỗ trợ chế độ low speed. Nó chỉ
được hỗ trợ full speed để kết nối lúc đầu, sau đó chuyển qua high speed
Thiết bị downstream tương thích USB 2.0 (Hub/Host) phải hỗ trợ cả 3 chế độ high speed, full speed và low speed
The Electronic and Mechanical Interface
High speed
The Electronic and Mechanical Interface
High speed
The Electronic and Mechanical Interface
Transfer BasicElements of a TransferUSB 2.0 TransactionEnsuring successful Transfer
Inside USB transfer
- Quyết định được loại transfer nào một device nên dùng
- Viết firmware cho device
- Nhận biết được các lỗi xảy ra trong khi truyền thông
Inside a USB transfer
Mục tiêu:
• Mọi phiên truyền thông USB đều diễn ra với một bên là Host và một bên là Device.
• Host quản lý việc truyền thông trên Bus và Device đáp ứng yêu cầu từ Host
HOST DEVICE
Inside a USB transfer
Transfer Basics
Endpoint:
Endpoint có:• Mã số• Hướng• Dung lượng tối đa có thể gửi hay nhận
HOST DEVICE
Inside a USB transfer
Transfer Basics
Transaction:
HOST DEVICE
1 : Token
2 : Data
3 : Handshake
Inside a USB transfer
Transfer Basics
Transfer:
Transaction Transaction Transaction
Transfer
Inside a USB transfer
Transfer Basics
Transfer
Transaction Transaction Transaction
Token Data Handshake
Summary
Inside a USB transfer
Transfer Basics
Inside a USB transfer
Transfer BasicsThực tiễn: nhiều thiết bị dùng chuẩn USB nhu cầu khác
nhau đòi hỏi hỗ trợ những kiểu transfer khác nhauCó 4 loại transfer:
• Control: Nhận dạng và cấu hình
• Bulk: Printer, scanner
• Interrupt: Chuột, bàn phím
• Isochronous: Audio và Video streaming
Inside a USB transfer
Transfer BasicsTruyền thông USB gồm 2 giai đoạn:
Nhận dạng và cấu hình thiết bị (Enumeration)
Truyền thông (tuỳ mục đích)
Chuẩn USB 2.0 hỗ trợ truyền thông:
Low Speed: 1.5Mbps
Full Speed: 12 Mbps
High Speed: 480 Mbps
Inside a USB transfer
Transfer Basics USB 2.0 Host Controller chia thông tin thành những
Frame với:
Low và Full Speed: frame 1ms
High Speed: microframe 125 us
Chúng ta có thể xem từng frame như là “bus interval”
Những transactions trong một transfer có thể nằm gọn
trong 1 (micro) frame hay nhiều (micro) frame.
Inside a USB transfer
Elements of Transfer• Endpoints :
• Tất cả dữ liệu chạy trên Bus đều đến hoặc đi từ
device endpoints. Endpoint là một buffer lưu trữ nhiều
bytes. Dữ liệu lưu trên endpoint là dữ liệu nhận được
(từ host) hay là dữ liệu sắp truyền (đến host).
• Địa chỉ endpoint gồm mã số endpoint (từ 0-15) và
hướng (theo quan điểm của host).
• Endpoint được cấu hình cho control transfer phải
truyền dữ liệu từ 2 hướng, và mỗi device phải có
endpoint 0 được cấu hình cho control endpoints
Những loại Transaction:
+ Ở mọi USB 2.0 transaction, ban đầu host sẽ gửi một “addressing – tripple” bao gồm: địa chỉ thiết bị, mã số endpoint và hướng endpoint.
+ Khi nhận 1 gói tin OUT hay setup, endpoint sẽ lưu data theo sau gói tin đó, sau đó device hardware sẽ sinh ra ngắt. Tương tự khi gửi gói tin IN.
Inside a USB transfer
Elements of Transfer
Inside a USB transfer
Elements of Transfer• Pipes :
• Trước khi data được truyền đi, giữa host và device phải thiết lập một pipe. Host thiết lập pipe ở quá trình enumeration. Host có thể yêu cầu thêm hoặc bớt pipes dùng control transfer.
• Nhắc lại: Mọi thiết bị có một control pipe mặc định dùng endpoint 0.
• Thông tin cấu hình host nhận từ device bao gồm một endpoint descriptor cho mỗi endpoint mà device muốn dùng. Mỗi endpoint chứa đựng: địa chỉ endpoint, loại transfer mà endpoint hỗ trợ, kích thước tối đa gói dữ liệu, đôi khi có cả transfer interval.
Inside a USB transferUSB 2.0 Transaction
Inside a USB transferUSB 2.0 Transaction
Inside a USB transfer
USB 2.0 TransactionMỗi transaction thường có 3 phase: token, data,
handshake.Mỗi packet bắt đầu với một Packet ID (PID) chứa đựng
thông tin nhận dạng.
Inside a USB transferUSB 2.0 Transaction
Inside a USB transfer
Ensuring Successful Transfers• USB 2.0 định nghĩa những mã handshake chỉ
thị:• Việc chấp nhận hay không của dữ liệu được nhận.• Hỗ trợ hay không hỗ trợ một yêu cầu điều khiển nào
đó.• Tình trạng HALT của endpoint.
• Trong control transfer, status stage báo thành công hay thất bại của một transfer.
• Các mã status được định nghĩa: ACK, NAK, STALL, NYET và ERR. Việc thiếu vắng mã handshake nào ở trên báo hiểu có lỗi.
Inside a USB transfer
Ensuring Successful Transfers• ACK (acknowledge): chỉ thị rằng host hay device đã nhận
data mà không có lỗi.
• NAK (negative acknowledge): device đang bận hoặc
device không có data để trả về.
• STALL: một yêu cầu điều khiển không hỗ trợ, yêu cầu
điều khiển thất bại, hay endpoint có lỗi.
• NYET (not yet): Device có sẵn sàng để nhận data hay
chưa.
• No response
USB data flow model
USB Host/Device viewUSB cung cấp dịch vụ truyền thông giữa host và USB device
Truyền thông USB được biểu diễn theo cấu trúc phân tầng cho phép những người triển khai sản phẩm USB tập trung vào những chi tiết liên quan đến sản phẩm của họ
USB data flow model
USB Host/Device view
USB data flow model
USB Host/Device view
HostUSB host tương tác với USB device trong quá trình truyền thông và có trách nhiệm:• Phát hiện khi có 1 USB device
được cắm vào hay rút ra • Quản lý control flow giữa host
và USB devices• Quản lý data flow giữa host và
USB devices• Cung cấp năng lượng cho USB
devices
USB data flow model
USB Host/Device view
Physical devices• USB physical devices cung cấp
thêm chức năng cho host. Chức năng của USB device rất đa dạng (mouse, keyboard, printer,…)
• Mỗi USB device mang theo thông tin liên quan tới việc cấu hình và báo cáo thông tin này cho host nhằm hỗ trợ host trong việc xác định và cấu hình USB device
USB data flow model
USB Host/Device view
USB data flow model
USB Host/Device view
Function LayerFunction layer cung cấp thêm chức năng tới host thông qua một client software thích hợp
USB data flow model
USB Host/Device view
USB Device LayerThe USB Device layer có trách nhiệm thực hiện những hoạt động tiêu chuẩn/chung của một kết nối USB
USB data flow model
USB Host/Device view
USB Bus Interface Layer USB Bus Interface layer cung cấp kết nối vật lý/tín hiệu/gói tin giữa host và devices
USB data flow model
Detailed USB Host/Device view
USB data flow model
Detailed USB Host/Device viewClient Software• Phần mềm thực thi trên
host, tương ứng với một USB device nhất định.
• Thường được cung cấp kèm theo với hệ điều hành hoặc được cung cấp kèm theo USB device
USB data flow model
Detailed USB Host/Device viewUSB system software• Phần mềm hỗ trợ
USB trong một hệ điều hành nhất định, thường được cung cấp chung với hệ điều hành.
• Gồm 2 phần chủ yếu là Host Controller Driver và USB Driver
USB data flow model
Detailed USB Host/Device viewUSB system software (tt)• USB Driver (USBD): Phần giao tiếp giữa USB System Software và client software. Nó cung cấp cho client software các functions để thao tác trên USB devices. • Host Controller Driver (HCD): Phần mềm giao tiếp giữa USB Host Controller và USB System Software. Nhà sản xuất USB Host Controller sẽ cung cấp HCD kèm theo
USB data flow model
Detailed USB Host/Device viewHost Controller: Tổ chức và đóng gói dữ liệu, truyền gói tin đi trên USB
USB data flow model
Detailed USB Host/Device viewSIE (Serial Interface Engine)• Việc truyền tải dữ liệu
qua USB được thực hiện theo kiểu nối tiếp.
• SIE xử lí việc chuyển đổi từ giao tiếp nối tiếp sang các giao tiếp khác và ngược lại.
• Trên host, SIE thường được thực hiện như là một phần của Host Controller
USB data flow model
Detailed USB Host/Device viewEndpoint• Endpoint là một
buffer dùng để lưu trữ dữ liệu.
• Dữ liệu tại endpoint có thể là dữ liệu vừa nhận được hoặc dữ liệu chờ để chuyển đi
USB data flow model
Detailed USB Host/Device viewEndpoint zero• Endpoint zero là một
endpoint đặc biệt. Tất cả các thiết bị đều phải có endpoint zero.
• Endpoint này sẽ nhận tất cả thông tin điều khiển và các yêu cầu trạng thái từ USB System Software thông qua Default Pipe
USB data flow model
Detailed USB Host/Device viewDefault Pipe to Endpoint Zero • USB System Software
quản lý thiết bị dùng Default Pipe
• USB System Software sẽ gửi thông tin điều khiển và thông tin trạng thái giữa host và USB devices thông qua Default Pipe
• Quá trình enumeration (quá trình xảy ra khi gắn USB device vào host) sử dụng Default Pipe
USB data flow model
Detailed USB Host/Device viewInterface• Endpoints được nhóm
thành từng nhóm, một nhóm các endpoint tạo thành một interface
• Mỗi interface gắn liền với một chức năng của USB device
USB data flow model
Detailed USB Host/Device viewPipe Bundle to an interface• Client software quản
lý một interface dùng pipe bundles (gắn liền với một tập các endpoints).
• Thông qua Pipe Bundle, Client software yêu cầu dữ liệu được truyền tải giữa buffer trên host và các endpoints trên USB devide
USB data flow model
USB protocol
USB protocol
Control tranfer (Truyền điều khiển)
Control tranfer dùng để cài đặt và truyền thông tin giữa host và function. Truyền theo 2 hướng IN và OUT. Việc truyền điều khiển gồm 3 bước:
Setup stageData stageStatus stage
Setup stage gồm 3 gói packet:Token packet: chứa địa chỉ và endpointData packet: cài đặt kích thước dữ liệu, luôn truyền dữ liệu Data0Handshake packet: báo nhận thành công hoặc báo lỗi
USB protocol
Data stage: gồm 3 gói packetToken packet: báo hướng truyền IN hoặc OUTData packet: chứa dữ liệu được truyềnHandshake packet: xác nhận thành công hoặc báo lỗi
USB protocol
Status stage: báo trạng thái truyền. Gồm 2 trường hợp:IN: khi host gửi dữ liệuOUT: khi host nhận dữ liệu
USB protocol
Setup stage
Data stage
USB protocol
Status stage
USB protocol
Bulk transfer (Truyền hàng loạt)Bulk tranfer dùng truyền dữ liệu lớn, chính xác không khắt khe về thời gian. Truyền 1 hoặc 2 hướng.
VD: scaner, printer, usb disk
USB protocol
Interrupt tranfer (Truyền ngắt)
Interrupt transfer dùng để truyền dữ liệu nhỏ , không liên tục. Truyền theo 1 hoặc 2 hướng (đối với USB 1.0 chỉ có IN).
VD: keyboard, mouse
USB protocol
Isochronous transfer (Truyền đẳng thời)
Isochronous tranfer dùng để truyền dữ liệu với tốc độ cố định và bỏ qua lỗi. Truyền 1 hoặc 2 hướng.
VD: truyền voice qua usb
USB protocol
ENUMERATION
Enumeration là gì? Gán địa chỉ cho thiết bị Tìm kiếm và cài đặt Driver phù hợp Lựa chọn cấu hình về nguồn cấp và những Interface
ENUMERATION
Quy trình như thế nào? Khi cắm thiết bị vào. Host nhận được tín hiệu. Điều khiển thiết bị
ENUMERATION
Khi cắm thiết bị vào: Thiết bị ở trạng thái POWERED Hub phát hiện thiết bị
ENUMERATION
Host nhận tín hiệu: Hub gởi báo cáo sự kiện Hub xác định thiết bị là Low/Full Speed. Hub reset thiết bị về trạng thái DEFAULT
ENUMERATION
Điều khiển thiết bị (tiếp theo) Host yêu cầu thông tin mô tả và reset Host gán địa chỉ cho thiết bị. Thiết bị ở trạng thái
ADDRESS Gởi yêu cầu thông tin về những mô tả khác.
ENUMERATION
Điều khiển thiết bị (tiếp theo) Lựa chọn và cài đặt Driver Lựa chọn và cài đặt cấu hình.
ENUMERATION
DESCRIPTORS: Device Descriptor Configuration Descriptor Interface Descriptor Endpoint Descriptor
ENUMERATION
Device Decriptor:
ENUMERATION
Configuration Decriptor:
ENUMERATION
Interface Decriptor:
ENUMERATION
Endpoint Decriptor:
ENUMERATION
How the Host communicates
Device Drivers A device driver là một phần mềm trung gian mà qua đó cho
phép các ứng dụng của máy tính truy xuất hoặc điều khiển các thiết bị phần cứng (printer, modem, keyboard, video display, …).
Hầu hết các thiết bị USB là những thiết bị gắn ngoài, được kết nối với máy tính thông qua cáp(hoặc wireless . Tuy nhiên, cũng có một số thiết bị gắn cứng với CPU, ví dụ : fingerprint scanners, …
The Layered Driver Model USB truyền thông bên dưới nền Windows, sử dụng mô hình
chia lớp driver, driver được sắp xếp theo một mô hình dạng chuỗi, hay dạng ngăn xếp (stack) để phục vụ cho quá trình truyền thông.
Lớp trên cùng của stack là một client driver, mà hệ điều hành đã gán với các thiết bị.
Các ứng dụng truy xuất với các thiết bị USB bằng cách giao tiếp với client driver.
The client driver truy xuất đến các lớp bên dưới để truy xuất đến các thiết bị.
User and Kernel Modes Còn bên dưới Windows, code chương trình chạy 1 trong 2 chế
độ là user mode hoặc kernel mode.
Mỗi chế độ cho phép các mức ưu tiên khác nhau để truy xuất đến memory hoặc các tài nguyên khác của hệ thống.
User and Kernel Modes
Applications The Windows API
Các ứng dụng thường được viết bằng Visual Basic, C, Delphi, hoặc các ngôn ngữ khác, chúng có thể truy xuất nhiều thiết bị bằng cách gọi hàm của Windows API.
Using .NET’s Classes Để đơn giản hơn và an
toàn hơn trong lập trình, Microsoft’s .NET Framework cung cấp các lớp để tiện trong việc gọi hàm API khi viết code.
User-mode Client Drivers User-mode client driver có thể
định nghĩa là một driver API đặc biệt mà ứng dụng có thể sử dụng nó để truy xuất đến các thiết bị.
The driver là một thư viện liên kết động (dynamic link library (DLL)). An example of a user-mode USB driver is winusb.dll, hid.dll, …
User-mode driver là thành phần trung gian chuyển đổi các hàm driver đã được định nghĩa và Windows API. Ví dụ : khi ứng dụng gọi hàm Hid_GetFeature, thì user-mode HID driver gọi hàm DeviceIoControl, và kernel-mode HID driver yêu cầu báo cáo HID Feature từ thiết bị.
Kernel-mode Client Drivers Kernel-mode client driver
quản lí quá trình truyền thông giữa user-mode và các mức driver USB thấp hơn bên dưới.
Các driver này có dạng đuôi mở rộng .sys. Ví dụ : kernel-mode client drivers là winusb.sys (WinUSB) và hidclass.sys (HID).
A client driver or miniclass driver có thể có một hay nhiều driver lọc (filter driver) bên trên hoặc bên dưới, các driver lọc chính hoặc modify quá trình truyền thông với thiết bị.
Kernel-mode Client Drivers
Bus and Host-controller Drivers Host-Controller Types :
USB 1.x or USB 2.0 host sử dụng các controller theo chuẩn Open Host Controller Interface (OHCI) hoặc Universal Host Controller Interface (UHCI).
USB 2.0 high-speed host sử dụng host controller theo chuẩn Enhanced Host Controller Interface (EHCI).
USB 3.0 hosts sử dụng Extensible Host Controller Interface (xHCI) controller cho tất cả các loại tốc độ.
Bus and Host-controller Drivers Sự khác nhau giữa OHCI và UHCI : OHCI và UHCI controllers đều cung cấp nhiều cách phục vụ
cho tốc độ thấp và cao hay full-speed USB hardware để giao tiếp với các mức driver cao hơn.
Nhưng cũng có nhiều điểm khác nhau:
UHCI đặt nặng lên quá trình truyền thông ở phần mềm, vì vậy có thể sử dụng đơn giản hơn và phần cứng rẻ hơn.UHCI được phát triển bởi Intel
OHCI đặt nặng lên phần cứng và phần mềm điều khiển sẽ đơn giản hơn.
OHCI được phát triển bởi Compaq, Microsoft, and National Semiconductor
Matching a Driver to a Device Using Device Manager
Matching a Driver to a Device Device Information in the Registry
The hardware Key Lưu trữ thông tin của các thiết bị đặc biệt.
The Class Key The class key lưu trữ các thông tin về các lớp thiết bị đã được
cài đặt.
The driver Key Bên dưới class key, mỗi thiết bị trong class sẽ có 1 driver, còn
được gọi là software key. Bên trong một hardware key của một thiết bị cố định, the Driver ghi tên của thiết bị vào GUID và matches vào class key và instance number của thiết bị được matches vào driver subkey bên dưới class key.
The Service Key A service key lưu trữ thông tin về các driver’s files, bao gồm
nơi chúng ở đây và load chúng lên như thế nào. Service keys nằm ở đường dẫn sau:
HKEY_LOCAL_MACHINE\System\CurrentControlSet\Services Service keys tồn tại trong host controller type, hubs, classes
chẳng hạn như storage (USBSTOR) và printers (USBPRINT), và HID functions (HidBatt, HidServ, HidUsb).
INF Files A device-setup information file, or INF file, là một file text chứa
các thông tin của một hay nhiều thiết bị trong device setup class.
Windows includes INF files for the drivers provided with the operating system. Những files này nằm trong thư mục %windir%\inf Hệ điều hành copy các INF files để user add thiết bị này vào thư mục trên.
Lần đầu tiên khi hết nối, sau khi nhận được mô tả từ USB device, Windows tìm kiếm nhằm match thông tin trong các descriptors với thông tin trong hệ thống INF files.
Human interface devices
Device ClassesCác thiết bị có chức năng
giống nhau được gom thành từng chuẩn
Phát triển 1 driver cho nhiều thiết bị
Các driver cho từng chuẩn được tích hợp sẵn trong windows
ENUMERATION
HID: Human Interface Devices• Chuẩn thiết bị giúp con người giao tiếp với máy tinh• Một trong những chuẩn USB đầu tiên được hỗ trợ
trong windows• Mouse, keyboard, gamepad, joystick, remote
control… là những thiết bị HID• Host và các thiết bị giao tiếp bằng gói tin report
ENUMERATION
Descriptors
• Chứa thông tin, thông số cấu hình của thiết bị• Được lưu trong bộ nhớ của thiết bị, cung cấp cho host khi
được yêu cầu• Host gửi tín hiệu “get descriptor request” để lấy thông tin
của thiết bị• Descriptor: configuration, interface, class,endpoint
ENUMERATION
HID interfaceCác thiết bị HID có thể giao tiếp máy tính mà không cần
driver trong windows!!! thiết bị có Boot interfaceỨng dụng khi giao tiếp trong môi trường DOS, BIOSCác protocol đơn giản được BIOS cấp từ bộ nhớ ROM Descriptor bInterfaceclass = 03h: xác định
interface chuẩn HID Descriptor bInterfaceSubclass = 01h: có hỗ trợ
Boot interface
ENUMERATION
Report Descriptor
ENUMERATION
HID specific Request
ENUMERATION
The Global item Type
ENUMERATION