Tài liệu Tìm hiểu giao tiếp USB: Tìm hiểu giao tiếp USBBài giảng sử dụng tài liệu của sinh viên khóa trước Nội dungIntroductionUSB 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ớiCompaq, Digital Equipment Corporation, IBM, Intel, Microsoft, NEC, Northern TelecomIntroductionIntroductionTố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)IntroductionIntroductionCấu tạo IntroductionƯu điểm: RS232USB INTERFACEVGAEthernetSoundIntroductionHỗ trợ nhiều kết nối khác nhauTự 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 diskFirst timeNext timePlug & PlayIntroductionƯ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)I...
123 trang |
Chia sẻ: Khủng Long | Lượt xem: 1373 | Lượt tải: 0
Bạn đang xem trước 20 trang mẫu tài liệu Tìm hiểu giao tiếp USB, để tải tài liệu gốc về máy bạn click vào nút DOWNLOAD ở trên
Tìm hiểu giao tiếp USBBài giảng sử dụng tài liệu của sinh viên khóa trước Nội dungIntroductionUSB 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ớiCompaq, Digital Equipment Corporation, IBM, Intel, Microsoft, NEC, Northern TelecomIntroductionIntroductionTố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)IntroductionIntroductionCấu tạo IntroductionƯu điểm: RS232USB INTERFACEVGAEthernetSoundIntroductionHỗ trợ nhiều kết nối khác nhauTự 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 diskFirst timeNext timePlug & PlayIntroductionƯ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 30mKhông cần thiết lập cài đặt cao cho thiết bị (port address)VSIntroduction$$$$$$$$$$Multiple speeds:SuperSpeed (USB 3.0) 5 GbpsHigh 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ấpIntroductionƯ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à broadcastingKhô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)IntroductionThe Electronic and Mechanical InterfaceMechanicalUSB 1.x/2.0 standard pinoutPinNameCable colorDescription1VBUSRed+5 V2D−WhiteData −3D+GreenData +4GNDBlackGroundMechanicalThe Electronic and Mechanical InterfaceUSB 1.x/2.0 standard pinoutMechanicalThe Electronic and Mechanical InterfaceUSB 1.x/2.0 Mini/Micro pinout PinNameCable colorDescription1VBUSRed+5 V2D−WhiteData −3D+GreenData +4IDNonePermits distinction of A plug from B plug* A plug: connected to Signal ground* B plug: not connected5GNDBlackSignal groundThe Electronic and Mechanical InterfaceMechanicalMini USBMini-ABMini-BMini-AMechanicalThe Electronic and Mechanical InterfaceMicro USBMicro BMechanicalThe Electronic and Mechanical InterfaceCổng Micro-USB được thiết kế để chịu được tối đa 10000 lần rút ra cắm vàoUSB 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àoMechanicalMicro USBThe Electronic and Mechanical InterfaceeSATAp (eSATA/USB) combo portMechanicalThe Electronic and Mechanical InterfacePinColorSignal name ('A' connector)Signal name ('B' connector)1RedVBUS2WhiteD−3GreenD+4BlackGND5BlueStdA_SSRX−StdA_SSTX−6YellowStdA_SSRX+StdA_SSTX+7ShieldGND_DRAIN8PurpleStdA_SSTX−StdA_SSRX−9OrangeStdA_SSTX+StdA_SSRX+USB 3.0 pinoutsMechanicalThe Electronic and Mechanical InterfaceCấu tạo chuẩn A USB 3.0MechanicalCấu tạo chuẩn B USB 3.0MechanicalStandard BMicro BElectricalThe Electronic and Mechanical InterfaceFull speed deviceLow speed deviceLow speed và full speedThe Electronic and Mechanical InterfaceLow 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 = 0The Electronic and Mechanical InterfaceLow/full-speed signaling levelsThe Electronic and Mechanical InterfaceLow/full-speed signaling levelsThe Electronic and Mechanical InterfaceElectricalThe Electronic and Mechanical InterfaceElectricalThe Electronic and Mechanical InterfaceHigh 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ốiKhi hoạt động ở high speed điện trở pull up sẽ được tắt để cân bằng đường dâyThiết bị tương thích USB 2.0 không nhất thiết phải hỗ trợ high speedThiế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 speedThiế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 speedThe Electronic and Mechanical InterfaceHigh speedThe Electronic and Mechanical InterfaceHigh speedThe Electronic and Mechanical InterfaceTransfer BasicElements of a TransferUSB 2.0 TransactionEnsuring successful TransferInside USB transferQuyết định được loại transfer nào một device nên dùngViết firmware cho deviceNhận biết được các lỗi xảy ra trong khi truyền thôngInside a USB transferMụ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ừ HostHOSTDEVICEInside a USB transferTransfer BasicsEndpoint:Endpoint có:Mã sốHướngDung lượng tối đa có thể gửi hay nhận HOSTDEVICEInside a USB transferTransfer BasicsTransaction:HOSTDEVICE1 : Token2 : Data3 : HandshakeInside a USB transferTransfer BasicsTransfer:TransactionTransactionTransactionTransferInside a USB transferTransfer BasicsTransferTransactionTransactionTransactionTokenDataHandshakeSummaryInside a USB transferTransfer BasicsInside a USB transferTransfer 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ìnhBulk: Printer, scannerInterrupt: Chuột, bàn phímIsochronous: Audio và Video streamingInside a USB transferTransfer 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.5MbpsFull Speed: 12 MbpsHigh Speed: 480 MbpsInside a USB transferTransfer BasicsUSB 2.0 Host Controller chia thông tin thành những Frame với:Low và Full Speed: frame 1msHigh Speed: microframe 125 usChú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 transferElements of TransferEndpoints :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 endpointsNhữ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 transferElements of TransferInside a USB transferElements of TransferPipes :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 TransactionInside a USB transferUSB 2.0 TransactionInside a USB transferUSB 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 TransactionInside a USB transferEnsuring Successful TransfersUSB 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 transferEnsuring Successful TransfersACK (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 modelUSB Host/Device viewUSB cung cấp dịch vụ truyền thông giữa host và USB deviceTruyề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 modelUSB Host/Device viewUSB data flow modelUSB Host/Device viewHostUSB 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 devicesQuản lý data flow giữa host và USB devicesCung cấp năng lượng cho USB devicesUSB data flow modelUSB Host/Device viewPhysical devicesUSB 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 deviceUSB data flow modelUSB Host/Device viewUSB data flow modelUSB Host/Device viewFunction LayerFunction layer cung cấp thêm chức năng tới host thông qua một client software thích hợpUSB data flow modelUSB Host/Device viewUSB 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 USBUSB data flow modelUSB Host/Device viewUSB 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à devicesUSB data flow modelDetailed USB Host/Device viewUSB data flow modelDetailed USB Host/Device viewClient SoftwarePhầ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 deviceUSB data flow modelDetailed USB Host/Device viewUSB system softwarePhầ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 DriverUSB data flow modelDetailed 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 modelDetailed USB Host/Device viewHost Controller: Tổ chức và đóng gói dữ liệu, truyền gói tin đi trên USBUSB data flow modelDetailed 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 ControllerUSB data flow modelDetailed USB Host/Device viewEndpointEndpoint 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 điUSB data flow modelDetailed USB Host/Device viewEndpoint zeroEndpoint 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 PipeUSB data flow modelDetailed USB Host/Device viewDefault Pipe to Endpoint Zero USB System Software quản lý thiết bị dùng Default PipeUSB 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 PipeQuá trình enumeration (quá trình xảy ra khi gắn USB device vào host) sử dụng Default PipeUSB data flow modelDetailed USB Host/Device viewInterfaceEndpoints được nhóm thành từng nhóm, một nhóm các endpoint tạo thành một interfaceMỗi interface gắn liền với một chức năng của USB deviceUSB data flow modelDetailed USB Host/Device viewPipe Bundle to an interfaceClient 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 devideUSB data flow modelUSB protocolUSB protocolControl 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 stage Data stage Status stageSetup stage gồm 3 gói packet: Token packet: chứa địa chỉ và endpoint Data packet: cài đặt kích thước dữ liệu, luôn truyền dữ liệu Data0 Handshake packet: báo nhận thành công hoặc báo lỗiUSB protocolData stage: gồm 3 gói packet Token packet: báo hướng truyền IN hoặc OUT Data packet: chứa dữ liệu được truyền Handshake packet: xác nhận thành công hoặc báo lỗiUSB protocolStatus stage: báo trạng thái truyền. Gồm 2 trường hợp: IN: khi host gửi dữ liệu OUT: khi host nhận dữ liệuUSB protocolSetup stageData stageUSB protocolStatus stageUSB protocolBulk 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 diskUSB protocolInterrupt 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, mouseUSB protocolIsochronous 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 usbUSB protocolENUMERATIONEnumeration là gì?Gán địa chỉ cho thiết bịTìm kiếm và cài đặt Driver phù hợpLựa chọn cấu hình về nguồn cấp và những Interface ENUMERATIONQuy 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ịENUMERATIONKhi cắm thiết bị vào:Thiết bị ở trạng thái POWEREDHub phát hiện thiết bịENUMERATIONHost nhận tín hiệu:Hub gởi báo cáo sự kiệnHub xác định thiết bị là Low/Full Speed.Hub reset thiết bị về trạng thái DEFAULTENUMERATIONĐiều khiển thiết bị (tiếp theo)Host yêu cầu thông tin mô tả và resetHost gán địa chỉ cho thiết bị. Thiết bị ở trạng thái ADDRESSGở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 DriverLựa chọn và cài đặt cấu hình.ENUMERATIONDESCRIPTORS:Device DescriptorConfiguration DescriptorInterface DescriptorEndpoint DescriptorENUMERATIONDevice Decriptor:ENUMERATIONConfiguration Decriptor:ENUMERATIONInterface Decriptor:ENUMERATIONEndpoint Decriptor:ENUMERATIONHow the Host communicatesDevice DriversA 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 ModelUSB 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 ModesCò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 ModesApplicationsThe Windows APICá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 DriversUser-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 DriversKernel-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 DriversBus and Host-controller DriversHost-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 DriversSự 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 IntelOHCI đặ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 SemiconductorMatching a Driver to a DeviceUsing Device ManagerMatching a Driver to a DeviceDevice Information in the RegistryThe hardware KeyLưu trữ thông tin của các thiết bị đặc biệt.The Class KeyThe class key lưu trữ các thông tin về các lớp thiết bị đã được cài đặt.The driver KeyBê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 KeyA 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\ServicesService 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 FilesA 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 devicesDevice 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 windowsENUMERATIONHID: Human Interface DevicesChuẩn thiết bị giúp con người giao tiếp với máy tinhMột trong những chuẩn USB đầu tiên được hỗ trợ trong windowsMouse, keyboard, gamepad, joystick, remote control là những thiết bị HIDHost và các thiết bị giao tiếp bằng gói tin reportENUMERATIONDescriptorsChứ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ầuHost gửi tín hiệu “get descriptor request” để lấy thông tin của thiết bịDescriptor: configuration, interface, class,endpointENUMERATIONHID 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ớ ROMDescriptor bInterfaceclass = 03h: xác định interface chuẩn HIDDescriptor bInterfaceSubclass = 01h: có hỗ trợ Boot interfaceENUMERATIONReport DescriptorENUMERATIONHID specific Request ENUMERATIONThe Global item TypeENUMERATION
Các file đính kèm theo tài liệu này:
- tailieu.pptx