Ce diaporama a bien été signalé.
Nous utilisons votre profil LinkedIn et vos données d’activité pour vous proposer des publicités personnalisées et pertinentes. Vous pouvez changer vos préférences de publicités à tout moment.
Prochain SlideShare
Cong vao ra lpt
Cong vao ra lpt
Chargement dans…3
×
1 sur 123

Tìm Hiểu Giao Tiếp USB (Universal Serial Bus)

6

Partager

Télécharger pour lire hors ligne

Giao tiếp USB Host And Device, USB 2.0 và USB 3.0, tốc độ các chuẩn USB, giao tiep USB, Universial serial bus, congtan94, chuẩn USB, nguyên lý hoạt động USB

Livres associés

Gratuit avec un essai de 30 jours de Scribd

Tout voir

Tìm Hiểu Giao Tiếp USB (Universal Serial Bus)

  1. 1. Tìm hiểu giao tiếp USB Bài giảng sử dụng tài liệu của sinh viên khóa trước
  2. 2. Nội dung
  3. 3. Introduction
  4. 4. • 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
  5. 5. Introduction
  6. 6. 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
  7. 7. Cấu tạo Introduction
  8. 8. Ưu điểm: – – – RS232 USB INTERFACE VGA Ethernet Sound Introduction Hỗ trợ nhiều kết nối khác nhau
  9. 9. 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:
  10. 10. • 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:
  11. 11. •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
  12. 12. $$$$$$$$$$ • 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:
  13. 13. 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
  14. 14. The Electronic and Mechanical Interface
  15. 15. Mechanical
  16. 16. USB 1.x/2.0 standard pinout Pin Name Cable color Description 1 VBUS Red +5 V 2 D− White Data − 3 D+ Green Data + 4 GND Black Ground Mechanical The Electronic and Mechanical Interface
  17. 17. USB 1.x/2.0 standard pinout Mechanical The Electronic and Mechanical Interface
  18. 18. USB 1.x/2.0 Mini/Micro pinout Pin Nam e Cable color Description 1 VBU S Red +5 V 2 D− White Data − 3 D+ Green Data + 4 ID None Permits 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
  19. 19. Mini USB Mini-AB Mini-B Mini-A Mechanical The Electronic and Mechanical Interface
  20. 20. Micro USB Micro B Mechanical The Electronic and Mechanical Interface
  21. 21. • 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 Mechanical Micro USB The Electronic and Mechanical Interface
  22. 22. eSATAp (eSATA/USB) combo port Mechanical The Electronic and Mechanical Interface
  23. 23. Pi n Color Signal name ('A' connector) Signal name ('B' connector) 1 Red VBUS 2 White D− 3 Green D+ 4 Black GND 5 Blue StdA_SSR X− StdA_SST X− 6 Yellow StdA_SSR X+ StdA_SST X+ 7 Shield GND_DRAIN 8 Purpl e StdA_SST X− StdA_SSR X− USB 3.0 pinouts Mechanical The Electronic and Mechanical Interface
  24. 24. Cấu tạo chuẩn A USB 3.0
  25. 25. Cấu tạo chuẩn B USB 3.0 Standard B Micro B
  26. 26. Electrical The Electronic and Mechanical Interface
  27. 27. Full speed device Low speed device Low speed và full speed The Electronic and Mechanical Interface
  28. 28. Low speed và full speed Mứ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 logic Low speed: J = 0; K = 1 High speed: J = 1; K = 0 The Electronic and Mechanical Interface
  29. 29. Low/full-speed signaling levels The Electronic and Mechanical Interface
  30. 30. Low/full-speed signaling levels The Electronic and Mechanical Interface
  31. 31. Electrical The Electronic and Mechanical Interface
  32. 32. Electrical The Electronic and Mechanical Interface
  33. 33. High speed Tố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
  34. 34. High speed The Electronic and Mechanical Interface
  35. 35. High speed The Electronic and Mechanical Interface
  36. 36. Transfer Basic Elements of a Transfer USB 2.0 Transaction Ensuring successful Transfer Inside USB transfer
  37. 37. - 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:ụ
  38. 38. • 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
  39. 39. 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
  40. 40. Transaction: HOST DEVICE 1 : Token 2 : Data 3 : Handshake Inside a USB transfer Transfer Basics
  41. 41. Transfer: Transaction Transaction Transaction Transfer Inside a USB transfer Transfer Basics
  42. 42. Transfer Transaction Transaction Transaction Token Data Handshake Summary Inside a USB transfer Transfer Basics
  43. 43. Inside a USB transfer Transfer Basics Thự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 nhau Có 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
  44. 44. Inside a USB transfer Transfer Basics Truyề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
  45. 45. 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.
  46. 46. 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
  47. 47. 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
  48. 48. 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.
  49. 49. Inside a USB transfer USB 2.0 Transaction
  50. 50. Inside a USB transfer USB 2.0 Transaction
  51. 51. Inside a USB transfer USB 2.0 Transaction Mỗ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.
  52. 52. Inside a USB transfer USB 2.0 Transaction
  53. 53. 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.
  54. 54. 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
  55. 55. USB data flow model
  56. 56. USB Host/Device view USB 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
  57. 57. USB Host/Device view USB data flow model
  58. 58. USB Host/Device view Host USB 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
  59. 59. 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
  60. 60. USB Host/Device view USB data flow model
  61. 61. USB Host/Device view Function Layer Function 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
  62. 62. USB Host/Device view USB Device Layer The 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
  63. 63. 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
  64. 64. Detailed USB Host/Device view USB data flow model
  65. 65. Detailed USB Host/Device view Client 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
  66. 66. Detailed USB Host/Device view USB 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
  67. 67. Detailed USB Host/Device view USB 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
  68. 68. Detailed USB Host/Device view Host Controller: Tổ chức và đóng gói dữ liệu, truyền gói tin đi trên USB USB data flow model
  69. 69. Detailed USB Host/Device view SIE (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
  70. 70. Detailed USB Host/Device view Endpoint • 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
  71. 71. Detailed USB Host/Device view Endpoint 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
  72. 72. Detailed USB Host/Device view Default 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
  73. 73. Detailed USB Host/Device view Interface • 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
  74. 74. Detailed USB Host/Device view Pipe 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
  75. 75. USB protocol
  76. 76. USB protocol
  77. 77. 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 stage Data stage Status stage Setup 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ỗi USB protocol
  78. 78. Data 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ỗi USB protocol
  79. 79. Status 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ệu USB protocol
  80. 80. Setup stage Data stage USB protocol
  81. 81. Status stage USB protocol
  82. 82. 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
  83. 83. 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
  84. 84. 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
  85. 85. ENUMERATIO N
  86. 86. 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
  87. 87. 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
  88. 88. 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
  89. 89. 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
  90. 90. ● Đ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
  91. 91. ● Đ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
  92. 92. DESCRIPTORS:  Device Descriptor  Configuration Descriptor  Interface Descriptor  Endpoint Descriptor ENUMERATION
  93. 93. Device Decriptor: ENUMERATION
  94. 94. Configuration Decriptor: ENUMERATION
  95. 95. Interface Decriptor: ENUMERATION
  96. 96. Endpoint Decriptor: ENUMERATION
  97. 97. How the Host communicates
  98. 98. 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, …
  99. 99. 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ị.
  100. 100. 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.
  101. 101. User and Kernel Modes
  102. 102. 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.
  103. 103. 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ị.
  104. 104. 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ị.
  105. 105. Kernel-mode Client Drivers
  106. 106. 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 độ.
  107. 107. 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
  108. 108. Matching a Driver to a Device  Using Device Manager
  109. 109. Matching a Driver to a Device  Device Information in the Registry
  110. 110. The hardware Key  Lưu trữ thông tin của các thiết bị đặc biệt.
  111. 111. 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.
  112. 112. 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.
  113. 113. 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_MACHINESystemCurrentControlSetServices  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).
  114. 114. 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.
  115. 115. Human interface devices
  116. 116. Device Classes Cá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
  117. 117. 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
  118. 118. 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
  119. 119. HID interface Cá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, BIOS Cá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
  120. 120. Report Descriptor ENUMERATION
  121. 121. HID specific Request ENUMERATION
  122. 122. The Global item Type ENUMERATION

Remarques

  • - USB 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
  • USB – Universal Serial Bus là cổng giao tiếp thành công nhất của máy tính .
    Với USB port , ngày nay PC có thể giao tiếp với rất nhiều thiết bị ngoại vi : bàn phím , chuột , máy in,tay game ,máy scan , camera …
  • Đến nay có 4 chuẩn USB là 1.0 ; 1.1 ; 2.0 ; 3.0
    Chuẩn 2.0 đang được sử dụng nhiều nhất
    Chuẩn 3.0 mới nhất ,nhanh nhất nhưng chưa được sử dụng nhiều do chưa có phần cứng tương thích
  • - Dễ sử dụng
    + Một interface cho nhiều loại thiết bị khác nhau
    + Tiết kiệm được cable của nhiều loại kết nối khác nhau
  • Chuẩn USB-OTG ra đời  1 thiết bị có thể vừa là host vừa là device  mini-AB, phân biệt = chân ID
  • This is accomplished by adding a locking device and by moving the leaf-spring connector from the jack to the plug, so that the most-stressed part is on the cable side of the connection. This change was made so that the connector on the less expensive cable would bear the most wear instead of the more expensive micro-USB device.
  • Điều này giúp cho các thiết bị không cần tốc độ cao có giả rẻ, cấu tạo đơn giản
  • dữ liệu được truyền qua kết nối usb như thế nào
  • Mô hình chia lớp driver
    &amp;lt;number&amp;gt;
  • Applications run in user mode. A USB device must have a kernel-mode client driver, which can have a supplementary user-mode driver
    &amp;lt;number&amp;gt;
  • The supported functions vary with the driver, but an application typically opens communications with CreateFile, exchanges data using a combination of ReadFile or ReadFileEx, WriteFile or WriteFileEx, and DeviceIoControl, and closes communications with CloseHandle. Microsoft’s Windows Software Development Kit (SDK) documents these functions.
    Instead, applications communicate with a Common Language Runtime (CLR) component that in turn may call API functions
    &amp;lt;number&amp;gt;
  • &amp;lt;number&amp;gt;
  • &amp;lt;number&amp;gt;
  • &amp;lt;number&amp;gt;
  • &amp;lt;number&amp;gt;
  • &amp;lt;number&amp;gt;
  • &amp;lt;number&amp;gt;
  • &amp;lt;number&amp;gt;
  • &amp;lt;number&amp;gt;
  • &amp;lt;number&amp;gt;
  • &amp;lt;number&amp;gt;
  • &amp;lt;number&amp;gt;
  • &amp;lt;number&amp;gt;
  • Phân chuẫn thiết bị :
    Nhiều thiết bị USB được phân thành từng chuẫn vì chúng có những tính năng , đặc điểm giống nhau . Giống như chuột,bàn phím,gamepad được gom vào cùng 1 chuẫn vì chúng điều có chức năng là giao tiếp với con người ,tương tự như loa,headphone,micro ...
    Việc gom các thiết bị thành từng chuẫn giúp ta tránh được việc phải viết driver , định nghĩa giao thức truyền cho từng thiết bị mà thay vào đó ta chỉ việc chọn 1 giao thức , viết 1 driver cho 1 cấp thiết bị là có thể hỗ trợ rất nhiều thiết bị khác . Các driver chung này đươc tích hợp sẵn trong window ,khi kết nối thiết bị thì máy tính sẽ dò nhận dạng và cấp driver để giao tiếp với thiết bị mà không cần phải cài driver của nhà cung cấp . Một vài thiết bị cần có driver riêng do nhà cung cấp phát triển .
  • HID là một trong những chuẩn USB đầu tiên được hỗ trợ trong Windows .
    Với những máy tính chạy Windows 98 về sau , ứng dụng có thể giao tiếp với thiết bị HID thông qua các driver cài đặt sẵn trong Window .
    Vì chuẫn HID hỗ trợ trao đổi dữ liệu giữa nhiều ứng dụng khác nhau với nhiều thiết bị khác nhau nếu chúng có chung cơ cấu HID
    HID là gì ? Human interface device : thiết bị giao tiếp với con người
    Máy tính nhận biết trạng thái của con chuột khi ta ấn nút hay di chuyển nó , hoặc lập tức hiển thị chữ khi ta gõ bàn phím ,tương tự như gamepad,joystick,remote control....
    Tất cả các dữ liệu trao đổi có cấu trúc độ dài cố định , gọi là report . Host gửi và nhận data bằng cách gửi và nhận các report . Định dạng của report có thể thay đổi và có thể quản lý bất kì loại data nào ( audio,video,file...)
    Thiết bị HID phải có ít nhất 1 IN endpoint và OUT endpoint , thiết bị nào cần nhiều IN endpoint là thiết bị hỗn hợp với nhiều HID interface . In endpoint giúp thiết bị HID gửi dữ liệu tới máy tính tuần tự 1 khoảng thời gian nhất định . Vd máy tính không thể biết khi nào bàn phím được nhấn mà không liên tục lấy dữ liệu từ bàn phím .
  • Descriptor là dữ liệu cho phép host biết thông tin về thiết bị . Mỗi descriptor có thể chứa thông tin về toàn bộ hoặc chỉ 1 phần của thiết bị. Tất cả các thiết bị USB đều sẵn sàng truyền decriptor của nó cho host khi được host yêu cầu
    Với bất kì thiết bị USB nào cũng cần có descriptor , HID’s descriptor cung cấp thông tin cho host biết cách thức giao tiếp với thiết bị đó . Các phần thường có trong descriptor là thông tin về config(cấu hình) , interface(giao tiếp) , class(chuẩn) và endpoint
    Host sẽ nhận dạng thiết bị bằng cách gửi một thông điệp “get descriptor request” để lấy descriptor từ thiết bị sau đó host sẽ thiết lập driver tương ứng để kết nối .
  • Câu hỏi đặt ra là chúng ta không cần vào window để chạy driver cũng có thể giao tiếp với thiết bị , cụ thể là chúng ta vẫn sử dụng được bàn phím và chuột ở màn hình DOS,hay giao diện khi cài window từ CD....vậy thì nguyên do từ đâu?
    Quan sát Descriptor phần interface :
    bInterfaceclass = 03h : xác định interface HID
    bInterfaceSubclass = 01h: có hỗ trợ Boot interface – thiết bị HID có hỗ trợ Boot có thể giao tiếp với host ngay cả khi host chưa cài xong driver .(vd như khi may tính boot trực tiếp vào DOS...)
    bàn phím hoặc chuột có boot interface có thể sử dụng những protocol đơn giản do BIOS cấp (nó được lấy từ ROM)
  • Report Descriptor chứa thông tin về định dạng và cách sử dụng các report của HID . Nếu là chuột thì nó thông báo data sẽ là vị trí của con chuột và nút bấm ,nếu là điều khiển công tắc thì data chứa trạng thái của công tắc .
  • Get Report : host yêu cầu nhận report từ thiết bị HID sử dụng kiểu truyền điều khiển
    Request number : mã lệnh
    Source of data : nguồn dữ liệu sẽ lấy từ ( device )
    Wlength : data length : chiều dài gói tin report
    Wvalue : chứa thông tin về report : report type ( 01=input,03=feature),report ID
    Windex : số hiệu cổng interface để truyền
    Data stage content : chứa dữ liệu của report
    Get Idle : host yêu cầu đọc thông tin về trạng thái nghĩ hiện tại của thiết bị
    Get protocol : host dò xem thiết bị hoạt động ở chế độ nào : boot hay bình thường
    Set report : Host gửi gói tin đến thiết bị HID yêu cầu thiết lập quá trình truyền report
    Set Idle : Host gửi gói tin kích hoạt thiết bị ở chế độ nghỉ nhằm tiết kiệm băng thông ,năng lương bằng cách giảm tần suất truyền report khi gói tin report nhận được giống với gói trước đó
    Set protocol :host thiết lập chế độ truyền cho thiết bị
  • Global item dùng để xác định các report và mô tả dữ liệu của report đó , gồm những đặc tính như chức năng,giá trị và kích thước data của report .
    Global item tag là một chuỗi bit đứng trước các phần của report để xác định chức năng của nó
  • ×