tìm hiểu giao tiếp usb (universal serial bus)

Post on 27-Jan-2017

981 Views

Category:

Education

3 Downloads

Preview:

Click to see full reader

TRANSCRIPT

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

top related