Skip navigation.

exploreopera

| Help

Sign up | Help

USBVN

USB dễ hay khó?

Tìm hiểu về HID

Như những bài trước mình đã nói qua về những nét chung nhất của USB, nó chỉ mang tính đặc tả để ta hình dung được một cách khái quát về hoạt động của USB
Nói chung khi thiết kế chuẩn USB bạn phải thực hiện những bước cơ bản đó là:
1. Đặc tả (mô tả thiết bị mà bạn cần thiết kế, chức năng, cách hoạt động v.v)
2. Viết chương trình cho chip (ở đây mình dung PIC loại 18f4550), mình dùng trình dịch của mikroelectronika có hỗ trợ HID)
3. Viết chương trinh trên máy tính, thông thường là sử dụng các hàm của lớp thư viện HID có thể dùng vb6 để thực hiện, nếu có khả năng thì viết driver cho thiết bị.
Nào bay giờ ta hãy tìm hiểu thêm về HID.
Human Interface Devices: Firmware Basics
  • Lớp HID là một trong những lớp đầu tiên được hỗ trợ bởi windows. Trên các PC chạy trên hệ điều hành Win98 hoặc trở về sau, các ứng dụng có thể truyền thông với các HID sử dụng các driver được xây dựng trong hệ điều hành.
What is a HID?
Trước khi bạn có thể hiểu vấn để có thể sử dụng HID diriver truyền thông với thiết bị hay không, bạn cần phải hiểu rằng liệu thiết bị của bạn có tương thích với HID class.
Sự chỉ định một đề nghị giao diện tính người (human interface) có thể tương tác trực tiếp với con người. Một thiết bị có thể phát hiện (detect) khi người sử dụng nhấn phím hoặc di chuyển chuột v.v, hay host có thể gửi một vài thông điệp nào đó đến thiết bị. Ví dụ kinh điển của các HID là các bàn phím, chuột và các joytick.
Nhưng HID không hề có giao diện tính người chút nào. Nó chỉ cần có khả năng vận hành giới hạn trong đặc tả của lớp. Các vấn đề đó là các khả năng và giới hạn chính của lớp HID các thiết bị.
Dữ liệu trao đổi tập trung trong những cấu trúc gọi là các report (báo cáo). Vi chương trình (firmware) của thiết bị phải hỗ trợ định dạng report của HID. Host gửi và nhận dữ liệu bằng việc gửi và yêu cầu các báo cáo trong các kiểu truyền Điều khiển (Control transfer) hoặc Truyền ngắt (Interrupt Transfer).. Định dạng của report linh hoạt và có thể quản lý bất kỳ mọi kiểu dữ liệu nào.
Mỗi giao dịch có thể mang một số lượng nhỏ đến một lượng dữ liệu chừng mực nào đó. Với một thiết bị low-speed tối đa là 8byte mỗi giao dịch, full-speed là 64byte, high-speed là 1024 byte. Một report dài có thể sử dụng nhiều giao dịch.
Một thiết bị có thể gửi thông tin cho máy tính tại những thời điểm không dự báo trước. Ví dụ như thông tin từ bàn phím gửi vào máy tính .v.v.
Tốc độ truyền tối đa của các kiều truyền là có giới hạn, đặc biệt là ở tốc độ full và low.
Mặc dầu các HID phần lớn gửi dữ liệu từ thiết bị đến host, nhưng HID cũng có thể nhận dữ liệu từ host. Ví dụ thông thường là HID truyền thông nhận một “lực phản hồi” từ cần điều khiển của joystick.
Bất kỳ lớp nào có thể tồn tại trong các giới hạn của lớp thì đều có thể trở thành một HID. Sự đặc tả này đề cập đến các bộ đọc mã vạch, nhiệt kế, và đo điện áp là các ví dụ về HID mà không có giao diện người dùng truyền thống. tất cả chúng đều gửi dữ liệu đến máy tính và cũng có thể nhận các request cấu hình thiết bị.
Hai tài liệu quan trọng để làm việc với các HID là Deivce class definition (Định nghĩa lớp thiết bị) cho HID định nghĩa các lớp HID, và HID Usage Tables (Các bảng sử dụng HID) định nghĩa các giá trị giúp cho host hiểu và sử dụng dữ liệu HID.
Hardware Requirements (Yêu cầu phần cứng)
Một giao diện HID phải phù hợp với các yêu cầu của HID class như đã định nghĩa trong đặc tả. Tài liệu mô tả yêu cầu của các bộ mô tả, tần số các kiểu truyền, và các kiểu truyền sẳn có. Để tuân thủ đúng với đặc tả, các endpoint và các bộ mô tả phải của giao diện phải đáp ứng một vài yêu cầu.
Các Endpoint
Tất cả truyền HID đều sử dụng các Default Control Pipe hoặc các ống ngắt. Một HID phải có một endpoint ngắt IN để gửi dữ liệu đến host. Một endpoint ngắt OUT tùy theo.
The Control Pipe
Ống điều khiển của HID mang các reqest chuẩn USB như sáu request lớp đặc biệt được định nghĩa trong đặc tả HID. Hai trong các request này là Set_Report và Get_Report cung cấp thông tin cho host và thiết bị để truyền một khối của bất kỳ loại dữ liệu nào đi tới hoặc từ thiết bị. Host sử dụng Set_Report để gửi các report (báo cáo) và Get_Report để nhận các Report. Bốn yêu cầu khác đều liên quan đến cấu hình thiết bị: Set_Idle và Get_Idle thiết lập và đọc tốc độ Idle (tốc độ khi đường truyền rỗi). Set_Protocol và Get _Protocol dùng để thiết lập và đọc giá trị của nghi thức, nó giúp cho thiết bị vận hành với một nghi thức được đơn giản hóa khi dirver HID chưa được load trên host.

Firmware Requirements
Để driver của host truyền thông được với HID thì vi chương trình của thiết bị phải phù hợp các yêu cầu. Các descriptor (bộ mô tả) của thiết bị phải nhận dạng thiết bị như giao diện HID, và vi chương trình phải hỗ trợ một ngắt ở endpoint ngoài Default Control Pipe. Vi chương trình phải chứa một báo cáo mô tả định dạng cho việc truyền và nhận dữ liệu.
Để gửi dữ liệu, yêu cầu vi chương trình hỗ trợ Get_Report với truyền điều khiển và truyền ngắt theo hướng từ thiết bị đến Host - IN, và để nhận được dữ liệu, vi chương trình phải hỗ trợ Set_Report với truyền điều khiển và cũng có thể truyền ngắt với hướng truyền dữ liệu từ Host đến thiết bị -OUT
Tất cả dữ liệu HID phải sử dụng report cùng định dạng, trong đó đã xác định kích thước và nội dung dữ liệu. Các thiết bị có thể hỗ trợ một hoặc nhiều report. Một bộ mô tả report trong vi chương trình của thiết bị cũng mô tả các report đó , và cũng có thể có những thông tin về dữ liệu của máy thu sử dụng như thế nào
Giá trị trong mỗi report định nghĩa report như một Input, Output, hoặc tính năng (Feature). Host nhận dữ liệu trong report Input và gửi dữ liệu trong Report output. Report Feature có thể có trong cả hai hướng Input và Output.
Với Input report, driver HID từ win98 trở về sau đều sử dụng truyền ngắt. Với Output report, kiểu truyền phụ thuộc vào điểm cuối nào trên thiết bị hỗ trợ và phiên bản của windows.Với phiên bản cũ của win98 (Windows 98 Gold) tương thích với HID 1.0, và HID sử dụng kiểu truyền điều khiển cho Output report. Với win98SE win2000 WinMe tương thích với HID 1.1, HID sử dụng truyền ngắt cho Output Report nếu giao diện có một điểm cuối ngắt OUT, mặt khác nó cũng sử dụng kiểu truyền điều khiển. Nếu giao diện HID không có điểm cuối ngắt OUT hay nếu vi chương trình hỗ trợ cả hai kiểu truyền cho Output Report, HID sẽ tương thích với bất kỳ phiên bản Windows nào. Các report Feature luôn hỗ trợ kiểu truyền điều khiển. định dạng report có thể đơn giản hoặc phức tạp
Identifying a Device as a HID (Làm sao nhận biết thiết bị như một HID)
Cũng như với bất kỳ thiết bị USB nào, descriptor của HID “nói với” Host yêu cầu mà nó cần biết để giao tiếp với thiết bị. Mục 13-1 cho thấy, configuration (Cấu hình) , giao diện, lớp và những bộ mô tả endpoint của một HID-Class joystick. Host sẽ biết về giao diện HID khi nó gửi một yêu cầu Get_Descriptor cho cấu hình chứa giao diện HID. Bộ mô tả giao diện của cấu hình nhận biết giao diện như HID-Class. Bộ mô tả HID-Class chỉ rõ số bộ mô tả báo cáo được hỗ trợ bởi giao diện. Trong quá trình liệt kê, HID driver sẽ lấy các thông tin về HID class và report descriptor.

Nội dung Bộ mô tả(Descriptor Contents)
Những bộ mô tả thiết bị và cấu hình không có thông tin HID riêng. Bộ mô tả thiết bị có một trường dành cho mã lớp (class-code), nhưng không phải ở đâu thiết bị cũng được định nghĩa như một HID. Thay vào đó, bộ mô tả giao diện ở trên Host biết đó là thiết bị, hay còn gọi là giao diện thiết bị, thuộc về lớp HID. Nếu byte class-code trong bộ mô tả giao diện của thiết bị là 3, giao diện là một HID. Những trường khác chứa thông tin riêng của HID trong bộ mô tả giao diện là các trường subclass và protocol, đó là những trường có thể chỉ một giao diện khởi động (Boot interface).

(Còn tiếp)

Phần: 4 USB device FrameWork


USB Device FrameWork
+Thiết bị USB có thể được phân chia thành 3 lớp:
  • Lớp dưới cùng (bottom layer) là giao diện bus dùng để phát và nhận các gói
  • Lớp giữa (middle layer) quản lý sự định tuyến (routing) giữa giao diện bus và các điểm cuối khác nhau trên thiết bị
  • Lớp đỉnh (top layer) được cung cấp chức năng bởi thiết bị bus nối tiếp, ví dụ một con chuột hoặc một giao diện ISDN.

Các trạng thái thiết bị USB (USB Device States)
Một thiết bị USB có thể có một vài trạng thái. Vài trạng thái này là nhìn thấy được (visible) tới USB và Host, trong khi một số trạng thái khác thì không thể hiện ra ngoài thiết bị USB.
Các trạng thái nhìn thấy được (Visible Device States)
Phần này sẽ mô tả các trạng thái thiết bị USB ở bên ngoài rõ ràng (Hình 6.1). Bảng 6.1 tổng kết lại các trạng thái nhìn thấy được của thiết bị USB.
Chú ý: Các thiết bị USB thực hiện một hoạt động reset trong đáp ứng (response) để reset tín hiệu. Khi việc reset tín hiệu hoàn thành thì thiết bị USB được reset.

Giải thích một số trạng thái
  • Attached: Thiết bị USB có thể được gắn (attached) hay tách biệt (detached) với USB. Trạng thái của thiết bị USB khi tách biệt thì không thuộc phạm vi trình bày ở đây. Trong trường hợp này ta chỉ nói đến địa chỉ được yêu cầu hoạt động và các thuộc tính của thiết bị đã được gắn vào.
  • Cấp nguồn: Các thiết bị USB có thể sử dụng nguồn từ nguồn ngoài hoặc nguồn của USB thông qua Hub nơi chúng được gắn vào. Các thiết bị sử dụng nguồn ngoài gọi là thiết bị tự cấp nguồn. Một thiết bị có thể hỗ trợ cả hai kiểu cấp nguồn: tự cấp nguồn (self-powered) và dùng nguồn từ bus USB (bus-powered). Một vài thiết bị có cấu hình hỗ trợ một trong các phương án cấp nguồn đó. Các thiết bị sẽ báo cáo(report) khả năng cấp nguồn của chúng thông qua bộ mô tả cấu hình (configuration descriptor). Nguồn hiện thời đã được báo được xem như là một phần của trạng thái thiết bị. Các thiết bị có thể thay đổi một trong các phương án cấp nguồn trong bất cứ thời gian nào. Nếu một cấu hình có khả năng hỗ trợ cả hai kiểu cấp nguồn, thì nguồn đó được báo cho cấu hình là cực đại, thiết bị sẽ kéo (draw) nguồn từ VBUS trong các mode. Thiết bị phải sử dụng nguồn này bất chấp các kiểu cấp nguồn của nó. Nếu một cấu hình chỉ hỗ trợ một kiểu cấp nguồn và khi nguồn của thiết bị thay đổi, thì thiết bị sẽ mất cấu hình và địa chỉ hiện tại và trở lại trạng thái Powered. Nếu thiết bị là tự cấp nguồn và cấu hình hiện tại yêu cầu nguồn có dòng hơn 100mA, và nếu như thiết bị chuyển sang lấy nguồn từ bus, thì thiết bị phải trở về trạng thái Address.
  • Default: Sau khi thiết bị được cấp nguồn, nó không được trả lời tới bất kỳ giao dịch bus nào cho đến khi nó nhận được một reset từ bus. Sau khi nhận được reset thiết bị có một địa chỉ mặc định
  • Address: tất cả thiết bị USB sử dụng địa chỉ mặc định khi lúc đầu cấp nguồn hoặc sau khi reset. Mỗi thiết bị USB được gán duy nhất một địa chỉ bởi Host sau khi gắn vào hoặc được reset. Một thiết bị USB trả lời tới các yêu cầu (requets) trên ống mặc định khi thiết bị hiện tại đã được gán địa chỉ duy nhất hoặc sử dụng địa chỉ mặc định
  • Configured: trước khi các chức năng của thiết bị USB được sử dụng, thiết bị phải được định cấu hình (configured). Khi đó việc xử lý một yêu cầu SetConfiguration() được chính xác với một giá trị cấu hình khác 0. Việc cấu hình một thiết bị hay thay đổi một cài đặt luân phiên làm cho tất cả giá trị trạng thái và cấu hình được kết hợp với các điểm cuối trong các giao diện không ổn định để set về các giá trị mặc định. Điều này bao gồm việc cài đặt dữ liệu bật tắt (data toggle) của bất kỳ điểm cuối nào sử dụng các data toggle tới giá trị DATA0.
  • Suspended: Để giữ nguồn (conserve power), các thiết bị USB tự động vào trạng thái Suspended (lơ lửng) khi thiết bị không theo dõi lưu lượng bus với chu kỳ đã được chỉ rõ. Khi ở trạng thái Suspended thiết bị USB sẽ duy trì tất cả trạng thái bên trong, bao gồm cả địa chỉ và cấu hình của nó. Trạng thái này xảy ra khi khi hoạt động bus không theo dõi được chiều dài của thời gian được chỉ định. Các thiết bị được gắn vào phải luôn sẳn sàng vào trạng thái Suspended khi chúng được cấp nguồn, mặc dù chúng đã được gán địa chỉ (không phải địa chỉ mặc định) hay đã được định cấu hình. Hoạt động bus có thể ngưng trong lúc Host đang vào trạng thái suspeded của chính nó. Thiết bị thoát khỏi trạng thái này khi bus hoạt động. Thiết bị có thể yêu cầu Host thoát khỏi trạng thái này bằng việc sử dụng một tín hiệu điện để chỉ báo wakeup (báo thức) từ xa.

Liệt kê bus (Bus Enumeration)
  • Khi một thiết bị USB gắn hoặc tháo bỏ ra khỏi bus, Host sẽ được sử dụng một quá trình được hiểu như là liệt kê bus để nhận dạng và quản lý trạng thái thiết bị:
  • Thiết bị USB được gắn đưa thông tin tới Host thông qua sự kiện trả lời về sự thay đổi trạng thái của ống. Tại điểm cuối này, thiết bị USB trong trạng thái cấp nguồn, port mà nó gắn vào được vô hiệu hóa.
  • Host xác định chính xác bản chất của việc thay đổi bằng việc truy vấn hub.
  • Lúc này, Host sẽ biết port nào có thiết bị mới gắn vào, rồi Host sẽ chờ đợi ít nhất 100 ms để cho phép hoàn thành công việc xử lý để cho nguồn của thiết bị ổn định. Host sẽ enable (làm cho có hiệu lực) port và phát một lệnh reset tới port đó.
  • Hub sẽ thực hiện yêu cầu xử lý reset cho port đó. Khi tín hiệu reset được giải phóng, port sẽ có hiệu lực. Thiết bị bây giờ ở trạng thái Default. Tất cả đăng ký (register) và trạng thái được reset nó sẽ trả lời tới địa chỉ mặc định.
  • Host sẽ gán một địa chỉ duy nhất tới thiết bị USB, đưa thiết bị vào trạng thái Address.
  • Trước khi thiết bị USB nhận được địa chỉ duy nhất, Điều Khiển Ống Mặc định vẫn truy cập qua địa chỉ mặc định của nó. Host sẽ đọc bộ mô tả thiết bị để xác định kích thước tải trọng dữ liệu thực tế, ống mặc định có thể sử dụng.
  • Host đọc thông tin cấu hình từ thiết bị bằng việc đọc các cấu hình từ 0 đến n-1, quá trình xử lý này mất vài ms để hoàn thành.
  • Dựa trên thông tin cấu hình và làm sao thiết bị USB được sử dụng. Host gán một giá trị cấu hình tới thiết bị. Thiết bị bây giờ ở trong trạng thái Configured và tất cả điểm cuối trong cấu hình này đảm nhiệm mô tả các đặc trưng của chúng. Lúc này thiết bị đã sẳn sàng cho việc sử dụng nó.
  • Khi thiết bị USB được tháo ra (removed), hus sẽ gửi lại thông tin tới Host. Việc tháo bỏ thiết bị làm vô hiệu (disable) port mà nó gắn vào. Nhờ vào việc nhận thông báo gỡ bỏ, Host sẽ cập nhận lại thông tin topo logic cục bộ của nó.

Phần 3: Luồng truyền thông USB

Luồng truyền thông của USB (USB Comunication Flow)
  • USB có thể cung cấp dịch vụ truyền thông giữa phần mềm ở trên Host và nhiều chức năng của USB, mỗi chức năng có thể có yêu cầu luồng truyền thông khác nhau cho mỗi sự tương tác với phần mềm. USB cung cấp việc sử dụng toàn bộ bus tốt hơn là việc cho phép tách ra nhiều luồng truyền thông khác nhau của 1 chức năng USB, mỗi luồng truyền thông sử dụng một vài truy cập bus để thực hiện truyền thông giữa phần mềm và chức năng của USB. Mỗi luồng truyền thông sẽ kết thúc tại mỗi điểm cuối (end point) trên một thiết bị, thiết bị điểm cuối được dùng để nhận dạng luồng truyền thông.


  • Một thiết bị logic USB tương tác tới hệ thống USB giống như tập hợp nhiều điểm cuối. Các điểm cuối được nhóm lại thành các tập hợp trở thành một giao diện, giao diện là thể hiện các chức năng của USB ra bề mặt. Phần mềm hệ thống USB quản lý thiết bị bằng việc sử dụng Điều Khiển Ống Mặc Định (Default Control Pipe). Phần mềm khách quản lý một giao diện sử dụng các bó ống (pipe bundles) kết hợp với 1 tập hợp điểm cuối. Phầm mềm khách yêu cầu dữ liệu truyền qua USB giữa bộ đệm ở Host và điểm cuối trên thiết bị USB. Host Controller (hoặc thiết bị USB tùy theo hướng truyền dữ liệu) đóng gói dữ liệu và truyền qua USB. Host Controller cũng phối hợp khi truy cập bus để di chuyển gói dữ liệu qua USB.


  • Phần mềm ở trên Host liên lạc với thiết bị logic qua tập hợp các luồng truyền thông. Tập hợp các luồng truyền thông sẽ được lựa chọn bởi nhà thiết kế phầm mềm hay phần cứng để phù hợp với các yêu cầu truyền thông của thiết bị cũng như đặc tuyến truyền đạt của USB.

Phần 2: Mô hình luồng dữ liệu USB

. Mô hình của chuẩn giao tiếp USB
  • Thiết bị vật lý USB (USB physical device): Là thiết bị tách rời được nối với Host thông qua cáp USB để thực hiện các chức năng theo yêu cầu của người dùng cuối.
  • Phần mềm khách (Client software): Phần mềm thực thi ở trên Host, tương ứng với thiết bị USB. Phần mềm này có thể được hệ điều hành cung cấp hoặc đi kèm theo thiết bị của nhà sản xuất.

  • Phần mềm hệ thống USB (USB system software): Là phần mềm hỗ trợ USB trong hệ điều hành riêng. Phần mềm hệ thống USB được cung cấp bởi hệ điều hành, nó độc lập với thiết bị USB và phần mềm khác
  • USB Host Controller (Giao diện BUS của Host): Là phần cứng và phần mềm cho phép thiết bị USB gắn với Host.

Với thiết bị vật lý USB có các lớp sau:
  • Lớp giao diện BUS USB (USB bus Interface) có vai trò trong việc kết nối vật lý/báo hiệu/gói tin giữa thiết bị USB với Host.
  • Lớp thiết bị USB (USB device Layer) là nơi phần mềm hệ thống USB thực hiện các hoạt động chung với thiết bị USB.
  • Lớp chức năng (Function layer): Cung cấp các khả năng bổ sung tới Host thông qua một client sofware thích hợp.
    II. Topo vật lý của BUS
    • Thiết bị USB được kết nối vật lý tới Host qua một tầng hình sao như minh họa ở hình Topo của bus Các điểm (points) đính kèm USB được cung cấp bởi một lớp đặc biệt của USB xem như một hub. Những điểm gắn thêm dùng để mở rộng cung cấp bởi hub còn được gọi là các cổng (port). Một Host có 1 RootHub (Hub gốc), Host có thể cung cấp 1 hoặc nhiều điểm đính kèm qua RootHub. Các thiết bị USB sẽ cung cấp thêm những hoạt động được xem như các chức năng (functions).
    • Để ngăn cản việc kết gắn theo kiểu vòng tròn, mỗi tầng được đánh thứ tự trên mạng hình sao của USB, điều này làm cấu hình giống như dạng cây

    • Một thiết bị vật lý đơn bao gồm các tổ hợp chức năng được đóng gói cùng nhau, ví dụ như bàn phím và con chuột bóng (trackball ) kết hợp với nhau trong một gói đơn. Ở bên ngoài gói, các chức năng riêng lẻ được gắn cố định tới hub và hub sẽ kết nối với USB ở bên trong hub. Khi những tổ hợp chức năng kết hợp với hub trong một gói đơn, thì chúng được xem như là một thiết bị phức hợp (compound device). Hub và các chức năng gán cho hub trong một thiết bị phức hợp được gán địa chỉ cho chính mình. Một thiết bị có nhiều giao diện điều khiển không phụ thuộc lẫn nhau được tham chiếu như là một thiết bị hỗn hợp (composite device). Một thiết bị hỗn hợp chỉ có một địa chỉ thiết bị đơn. Đối với Host một thiết bị phức hợp giống như một hub độc lập có nhiều tổ hợp chức năng được gắn vào


    Phần 1: Những vấn đề chung

    Chào anh em! Mình đang tìm hiểu về chuẩn USB, rất mong được sự quan tâm chia sẽ của anh em. Trong bài viết của mình chủ yếu là dịch từ một số tài liệu nên có nhiều chỗ chưa ổn, mong anh em thông cảm...Ở đây mình xin giới thiệu trước các vấn đề chung nhất về giao tiếp USB, con phần thiết kế thì mình đang còn hoàn thiện trình anh em sau nhá.


    I Lịch sử hình thành chuẩn USB

    Chuẩn giao tiếp USB được giới thiệu lần đầu tiên vào năm 1995, do một nhóm 7 công ty giới thiệu bao gồm:Compaq, Digital Equipment Corporation (DEC), IBM, Intel, Microsoft, NEC và Northern Telecom

    II. Các mốc phát triển
    • 1994 Thành lập nhóm công ty khai sinh ra USB
    • 1995 Intel giới thiệu chuẩn USB 1.0
    • 1998 Ra mắt chuẩn USB1.1
    • 2001 Giới thiệu USB 2.0
    • 2005 Giới thiệu USB không dây


    II. Làm quen một số khái niệm
    • ACK Gói bắt tay báo hiệu loại tường minh có cực tính dương
    • Active device: Một thiết bị mà chức năng hoạt động của nó không ở trạng thái treo
    • Asynchronous Data (dữ liệu không đồng bộ) dữ liệu được truyền đi với một khoảng thời gian không đều nhau có tính chất ngẫu nhiên
    • Asynchronous RA: Tốc độ dữ liệu đầu vào (FSI), và tốc độ dữ liệu ra (FSO), quá trình của RA là một quá trình độc lập (không có master clock).
    • Asynchronous SRC : Tốc độ lấy mẫu ngõ vào (FSI Frequency Samples Input), và tốc độ lấy mẫu ngõ ra (FSO), quá trình SRC là một quá trình độc lập.
    • Audio Device : Một thiết bị mà nguồn của nó được lấy mẫu từ tín hiệu tương tự
    • AWG# Kích thước của một dây nối được định nghĩa theo chuẩn AWG (American Wire Gauge)
    • Babble một hoạt động bus đột xuất mà cố định được chỉ rõ bên trong một (micro)frame
    • Bandwidth Số lượng dữ liệu truyền trên mỗi đơn vị thời gian, thông thường là bit/s hoặc byte/giây
    • Big Endian: Một phương pháp lưu trữ dữ liệu mà vị trí đặt byte cao nhất (bội số của byte) ở địa chỉ thấp, byte thấp đặt ở địa chỉ cao.
    • Bit Stuffing (Bit bổ sung) Một sự bổ sung bit 0 vào dòng dữ liệu để gây ra một sự quá độ về điện trên dây dữ liệu, cho phép dùng PLL (vòng khóa pha) để khóa
    • b/s tốc độ truyền dữ liệu bit/giây
    • B/s Tốc độ truyền byte/giây
    • Buffer Storage(Bộ nhớ đệm) được sử dụng để bù vào sự khác nhau trong tốc độ truyền dữ liệu, thời gian xảy ra của các sự kiện. khi truyền dữ liệu từ một thiết bị khác.
    • Bulk Transfer (Truyền dữ liệu theo khối – Truyền khối): Một trong bốn kiểu truyền dữ liệu USB. Bulk transfers là một kiểu truyền không tuần hoàn, một sự bùng nổ trong truyền thông thường được sử dụng để truyền trong bất kỳ dải thông cho phép và cũng có thể trì hoẵn đến khi dải thông cho phép
    • Bus Enumeration(Bus liệt kê): Phát hiện và nhận dạng thiết bị USB
    • Capabilities (Các khả năng): Đó là các thuộc tính của một thiết bị USB mà nó được quản lý bởi Host
    • Characteristics(Các đặc trưng): Các đặc trưng của một thiết bị USB, ví dụ: device class là một đặc trưng riêng của một thiết bị
    • Client : Phần mềm được cài đặt ở trên Host, nó được dùng để tương tác với phần mềm hệ thống USB (USB System Software) để sắp xếp dữ liệu truyền giữa 1 hàm và Host. Client thông thường là đối tượng cung cấp dữ liệu và đối tượng nhận dữ liệu
    • Configuring Software (Cấu hình phần mềm): Phần mềm nằm ở trên Host, phần mềm này có chức năng đáp ứng với cấu hình của một thiết bị USB. Nó có thể là một cấu hình hệ thống hoặc phần mềm riêng cho thiết bị
    • Control Endpoint: Là một cặp của thiết bị endpoint với cùng một số endpoint mà nó có thể được sử dụng bởi 1 “điều khiển ống” (Control pipe). Control endpoints truyền dữ liệu theo cả hai hướng và sử dụng cả hai hướng endpoint của địa chỉ thiết bị số endpoint kết hợp. Theo cách đó, mỗi control endpoint là đối tượng sử dụng (consumers) hai địa chỉ endpoint.
    • Control pipe: Giống như một thông điệp ống
    • Control transfer: 1 trong bốn kiểu truyền USB, control transfer hỗ trợ cấu hình/lệnh/trạng thái kiểu truyền thông giữa client và hàm
    • CTI (Computer telephony intergration): Máy tính kết hợp với điện thoại .
    • CRC (Cyclic Redundancy Check) : Một hoạt động kiểm tra trên dữ liệu để phát hiện nếu một lỗi xảy ra trong quá trình truyền, đọc hoặc ghi. Kết quả trả về một CRC thông thường là lưu trữ hoặc truyền đi với dữ liệu đã kiểm tra. Việc lưu trữ hoặc truyền đi sẽ được so sánh với CRC đã được tính toán để xác định nếu lỗi xảy ra.
    • Default Address: Một địa chỉ được định nghĩa trong kỹ thuật giao tiếp USB, và sử dụng bởi thiết bị USB khi hoạt động mới xảy ra hoặc reset. Mặc định là 00H.
    • Default Pipe: Thông điệp ống tạo ra bởi phần mềm hệ thống USB truyền sự điều khiển và thông tin trạng thái giữa Host và một thiết bị USB của endpoint zero
    • Device: Một thiết bị logic hoặc vật lý nó hoạt động như một hàm (function). Thực tế thực thể được mô tả tùy thuộc vào ngữ cảnh liên quan. Ở mức thấp nhất thiết bị (device) giống như một linh kiện phần cứng, như trong một thiết bị lưu trữ. ở mức cao hơn, nó có thể là một tập hợp các linh kiện phần cứng hoạt động theo một chức năng đặc thù, như là một giao diện của thiết bị USB. Thậm chí ở mức cao hơn nữa, thiết bị có thể là thực hiện chức năng bởi một thiết bị gắn vào USB; ví dụ như fax, modem…
    • Device Address: Một giá trị 7 bit mô tả địa chỉ của một thiết bị trên USB. Địa chỉ thiết bị mặc định là 00H khi thiết bị USB hoạt động lần đầu tiên hoặc reset. Các thiết bị được đăng ký duy nhất một địa chỉ bởi phần mềm hệ thống USB (USB system software)
    • Device software (Phần mềm thiết bị): Phần mềm đáp ứng việc sử dụng thiết bị USB. Phần mềm này có thể hoặc không đáp ứng cho cấu hình của thiết bị để dụng.
    • Device endpoint (Thiết bị điểm cuối): Một địa chỉ duy nhất được cấp cho một thiết bị USB nó chính là nguồn hoặc là nơi lưu thông tin của việc truyền thông tin giữa Host và thiết bị.
    • Device resource (Tài nguyên thiết bị): Tài nguyên cung cấp bởi thiết bị USB, chẳng hạn như vùng đệm và điểm cuối (endpoint).
    • Dynamic Insertion and Removal (Sự chèn vào và gỡ bỏ động): Là khả năng gắn vào và gỡ bỏ thiết bị trong khi Host đang hoạt động.
    • End user: Người dùng cuối của Host
    • Endpoint Address (Địa chỉ điểm cuối): Sự kết hợp một số điểm cuối và một hướng điểm cuối trên một thiết bị USB. Mỗi địa chỉ điểm cuối hỗ trợ dữ liệu truyền đi theo một hướng.
    • Endpoint Direction (Hướng điểm cuối): Hướng của dữ liệu truyền đi trên USB, hướng có thể là in hoặc out. In là truyền tới Host, Out là truyền từ Host
    • End point number (Số điểm cuối ): Một giá trị bốn bit giữa 0H và FH. Bao gồm sự kết hợp 1 điểm cuối với một thiết bị USB
    • Envelope detector (Mạch tách sóng đường bao): Một mạch điện bên trong thiết bị USB nó dùng để theo dõi đường truyền dữ liệu USB và những mức điện áp tín hiệu có liên quan.
    • EOF End-of-(micro)Frame.
    • EOP End-of-Packet.
    • Eye pattern: Một sự đại diện của USB nhằm báo hiệu mức cấp điện áp cực đại và cực tiểu cũng như khoảng thay đổi điện áp
    • False EOP (Gói dữ liệu báo sai): Khi sự sai sót trong truyền dữ liệu, thông thường do nhiễu gây ra, đó là sự phản hồi từ phía nhận bằng cách gửi một gói tin như một EOP
    • Frame: Một khoảng thời gian 1ms cơ sở cho việc thiết lập tốc độ bus từ cao đến thấp
    • Frame pattern (Khung mẫu): Là một sự sắp xếp tuần tự của các khung dùng để biểu hiện sự tuần hoàn khung mẫu (pattern) trong số các mẫu được phát đi trên mỗi khung (frame). Với việc truyền âm thanh là 44.1 kHz. Khung mẫu có 9 khung chứa 44 mẫu, và mỗi khung tiếp theo chứa 45 mẫu
    • Full-speed: USB hoạt động ở tốc độ 12Mb/s
    • Function (Chức năng): Thiết bị USB cung cấp một khả năng cho Host, chẳng hạn như: kết nối ISDN, microphone số, hoặc loa
    • Handshake Packet (Gói bắt tay): Là một gói tin dùng để báo hiệu sự công nhận hay không công nhận một gói tin, ví dụ như ACK và NAK
    • High bandwidth endpoint (Điểm cuối băng thông lớn): là một thiết bị điểm cuối mà nó có thể truyền hơn 1024 byte đến 3073 byte trên mỗi microframe
    • HOST: Là hệ thống máy tính mà ở đó USB Host Controller được cài đặt. Nó bao gồm có nền phần cứng (CPU, BUS) và hệ điều hành khi sử dụng.
    • Host Controller: Giao diện USB của Host
    • HCD (Host Controller Driver): Lớp phần mềm USB nó dùng để đại diện cho phần cứng của Host Controller