USB có một số lớp, được mô tả trong Đặc tả USB 2.0 . Nếu bạn quen thuộc với mô hình mạng lớp OSI, bạn có thể nghĩ về nó như thế này:
- Lớp phiên = Chương 10 Phần cứng và phần mềm máy chủ lưu trữ USB (trình điều khiển thiết bị)
- Lớp vận chuyển = Chương 9 Khung thiết bị USB
- Lớp mạng = Lớp giao thức Chương 8 (dòng bit)
- Lớp liên kết dữ liệu = Chương 7 Điện (mạch)
- Lớp vật lý = Chương 6 Cơ khí (cáp và đầu nối)
Về mặt khái niệm, USB dựa trên các luồng dữ liệu, được gọi là Điểm cuối , có thể là IN (đến máy chủ) hoặc OUT (từ máy chủ). Mọi thiết bị đều có Điểm cuối 0, được sử dụng để kiểm soát và trạng thái. Một thiết bị có thể có các điểm cuối bổ sung cho dữ liệu ứng dụng. Mỗi điểm cuối hoạt động giống như một bộ đệm FIFO.
Dữ liệu được truyền trên điểm cuối dưới dạng Hàng loạt (như TCP / IP, được đảm bảo rằng mọi byte đến và theo đúng thứ tự) hoặc Isoyncous (như UDP / IP, được đảm bảo là mới nhưng có thể bỏ gói). Có một kiểu chuyển đổi " Ngắt " được đặt tên sai , thực sự chỉ được thăm dò bởi chủ nhà.
USB 2.0 sử dụng cặp vi sai cho datalink. Tôi sẽ không đi sâu vào chi tiết vì điều này được đề cập trong thông số kỹ thuật USB 2.0 chương 7. Nói chung về bố trí PCB, chúng tôi coi đây là một cặp vi sai có độ dài phù hợp và đặt trong các điện trở sê-ri theo yêu cầu của bất kỳ USB PHY nào (Vật lý Giao diện) đang được sử dụng. Thiết bị ngoại vi USB sử dụng điện trở có giá trị cao trên một trong các dòng D + hoặc D- để thông báo cho chủ nhà rằng đó là thiết bị ngoại vi tốc độ cao hoặc tốc độ thấp.
Ngay sau khi máy chủ USB phát hiện ra rằng có một thiết bị, máy chủ yêu cầu một loạt các mô tả từ thiết bị. Điều này được chăm sóc đằng sau hậu trường bởi chip FTDI. Các mô tả được mô tả trong Chương 9.5 . Chúng bao gồm Device Descriptor , Cấu hình Descriptor , Interface Phần mô tả , Endpoint Phần mô tả , Chuỗi Phần mô tả , thậm chí có thể HID Báo cáo Phần mô tả .
Bộ mô tả thiết bị bao gồm các số USB VID (Nhận dạng nhà cung cấp) và số PID (Nhận dạng sản phẩm). Hệ điều hành sử dụng cặp số này, VID_PID, để xác định trình điều khiển thiết bị nào sẽ được sử dụng cho thiết bị này. Lưu ý rằng số VID được cấp bằng cách có thành viên trong diễn đàn người triển khai USB, vì vậy đó là một vấn đề nếu bạn là nhà phát minh cá nhân.
Ngoài ra, còn có trình điều khiển lớp HID (Thiết bị giao diện con người), cung cấp đầu vào hơi chung cho bàn phím / chuột / vv, cũng như bất kỳ đầu vào / đầu ra chung nào. Một lợi thế của HID là nó không yêu cầu cung cấp trình điều khiển thiết bị tùy chỉnh, nhưng thông lượng của nó có phần bị hạn chế so với trình điều khiển hàng loạt tùy chỉnh. Có một tài liệu đặc tả khác về các mô tả HID; và một tài liệu Bảng sử dụng HID chi tiết tất cả các số mã mô tả các tính năng khác nhau có sẵn trên một thiết bị giao tiếp với con người nhất định.
Chip FTDI như bảng dữ liệu FT220X cung cấp "công cụ giao diện nối tiếp" USB (không bị nhầm lẫn với nối tiếp SPI hoặc nối tiếp RS232). Điều này quan tâm đến hầu hết các công cụ cấp thấp được mô tả trong chương 6, 7 và 8.
FTDI sử dụng EEPROM (offchip trên FT2232H, trên chip trên FT220X) để chứa một ít thông tin đi vào phần mô tả. Bạn có thể tùy chỉnh các giá trị VID / PID và cung cấp các chuỗi mô tả tùy chỉnh.