I. Tổng quan về USB 1. Giao thức USB là gì? USB 1.x Được phát hành vào tháng 1 năm 1996, tốc độ dữ liệu quy định USB 1.0 là 1,5 Mbps (Băng thông thấp) và 12 Mbps (đầy đủ) USB 2.x: USB phiên bản 2.0 được đưa ra vào tháng 4 năm 2000 và xem như bản cải tiến của USB 1.1. USB 2.0 tốc độ nhanh hơn 50 lần so với USB 1.1 USB 3.x: USB 3.0 có tốc độ đường truyền mới gọi là SuperSpeed USB (SS), với tốc độ chuyển dữ liệu lên đến 5 Gbits (625 MBs), gấp khoảng mười lần so với chuẩn USB 2.0 USB 4: được USBIF phát hành vào ngày 29 tháng 8 năm 2019. USB4 dựa trên đặc điểm kỹ thuật của giao thức Thunderbolt 3. hỗ trợ thông lượng 40 Gbits, tương thích với Thunderbolt 3 và tương thích ngược với USB 3.2 và USB 2.0 II. Một số kiến thức cơ bản về giao thức usb. 1. Kiến trúc hệ thống USB. Một hệ thống USB được mô tả bởi 3 định nghĩa: • USB Host: • USB Device: • USB Connect: Kiến trúc bus: Về mặt vật lý, kiến trúc Bus USB là một tầng sao, với Host là trung tâm. Mỗi tia là 1 kết nối giữa Host với Hub, Host với Device hoặc Device với Hub. Với 7bit địa chỉ, một Host có thể quản lý 127 thiết bị trong mạng lưới của nó.
Tổng quan USB I II Giao thức USB gì? - USB 1.x Được phát hành vào tháng năm 1996, tốc độ liệu quy định USB 1.0 1,5 Mbps (Băng thông thấp) 12 Mbps (đầy đủ) - USB 2.x: USB phiên 2.0 đưa vào tháng năm 2000 xem cải tiến USB 1.1 USB 2.0 tốc độ nhanh 50 lần so với USB 1.1 - USB 3.x: USB 3.0 có tốc độ đường truyền gọi SuperSpeed USB (SS), với tốc độ chuyển liệu lên đến Gbit/s (625 MB/s), gấp khoảng mười lần so với chuẩn USB 2.0 - USB 4: USB-IF phát hành vào ngày 29 tháng năm 2019 USB4 dựa đặc điểm kỹ thuật giao thức Thunderbolt hỗ trợ thơng lượng 40 Gbit/s, tương thích với Thunderbolt tương thích ngược với USB 3.2 USB 2.0 Một số kiến thức giao thức usb Kiến trúc hệ thống USB Một hệ thống USB mơ tả định nghĩa: • USB Host: • USB Device: • USB Connect: Kiến trúc bus: Về mặt vật lý, kiến trúc Bus USB tầng sao, với Host trung tâm Mỗi tia kết nối Host với Hub, Host với Device Device với Hub Với 7bit địa chỉ, Host quản lý 127 thiết bị mạng lưới Cấu trúc điều khiển truyền nhận Để tất thiết bị hệ thống hiểu chúng phải tuân thủ theo quy tắc điều khiển truyền nhận (Control Transfer) Một gói Control Transfer chia thành Transaction: • Setup Transaction: Thiết lập • Data Transaction: Dữ liệu • Status Transaction: Trạng thái Mỗi Transaction lại chia thành gói tin: • Setup IN/OU: Gói thơng báo, cho biết data phía sau dùng để làm gì, xác định rõ Mã Token tương ứng với chức • DATA: Gói liệu xác định liệu truyền transaction • ACK: Gói bắt tay, thơng báo liệu truyền thành cơng hay thất bại Mỗi gói tin (Packet) lại bao gồm trường riêng, có loại trường (fields) bắt buộc gói tin là: • Synch: Trường đồng bộ, thơng báo thời điểm bắt đầu gói • PID: Packet identifier Trường định danh gói tin Cho biết gói tin dùng làm gì, hướng liệu gói • EOP: End of Packet Trường kết thúc, cho biết gói tin kết thúc • Còn lại trường khác tùy thuộc vào kiểu gói tin truyền nhận định Các kiểu truyền nhận USB Chuẩn USB định nghĩa kiểu transfer (cũng gọi kiểu endpoints), chúng bao gồm: - Control transfer Interrupt transfer Bulk transfer Isochronous transfer Class(lớp) Mọi lớp định nghĩa liên kết của: • Dữ liệu bao gồm đặc điểm phải lưu trữ thiết bị cung cấp cho máy chủ lưu trữ yêu cầu • Trình điều khiển phần mềm lưu trữ máy chủ tải sau thương lượng với thiết bị sau phát đặc điểm Kịch hoạt động Quá trình hoạt động chuẩn USB chia làm hai giai đoạn Q trình điểm danh: trình USB Host phát thiết bị cắm vào rút khỏi đường USB Bus Quá trình truyền liệu: để hiểu trình truyền liệu này, phải hiểu hai khái niệm nói khó quan trọng chuẩn USB, khái niệm Interface Endpoint II USB với STM32 Tại lại dùng giao tiếp USB? ( Ứng dụng) STM32 hỗ trợ gì? Tùy thuộc vào phần cứng, MCU STM32 bao gồm USB hỗ trợ: • Chỉ thiết bị tốc độ FS • OTG (vai trị kép: thiết bị máy chủ) tốc độ FS • OTG theo tốc độ HS STM32 đóng vai trị hệ thống USB Hệ thống USB thiết lập máy chủ thiết bị gắn cáp USB Đối với hệ thống USB phức tạp hơn, thiết bị gắn vào máy chủ thông qua nhiều trung tâm Tổng quan thư viện USB device Với MCU bo mạch STM32, môi trường phát triển đầy đủ miễn phí gọi STM32Cube cung cấp bao gồm hai phần chính: • Cơng cụ phần mềm đồ họa • Gói phần mềm nhúng (phần sụn STM32Cube) Phần sụn STM32Cube bao gồm cấp độ khác cách cung cấp: • Lớp thấp trình điều khiển tối ưu hóa • Lớp trừu tượng phần cứng trình điều khiển di động • Thư viện phần mềm trung gian • Ví dụ ứng dụng Một số giao thức phổ biến 5.1 Giao thức USB CDC STM32 a USB CDC gì? USB communications device class hay hiểu Lớp thiết bị giao tiếp thông qua USB Các thiết bị thuộc lớp triển khai hệ thống nhúng điện thoại di động để điện thoại sử dụng làm modem, fax cổng mạng b STM32 USB CDC 5.2 Giao thức USB HID STM32 (Giao tiếp USB HID đơn giản với STM32F103C8T6) a USB HID gì? HID (viết tắt Human Interface Device) tiêu chuẩn cho thiết bị máy tính vận hành người HID tiêu chuẩn tạo nhằm đơn giản hóa q trình cài đặt thiết bị đầu vào thông qua giao thức cụ thể cho thiết bị chuột, bàn phím,… b Cách giao tiếp với tất thiết bị USB HID - Human Interface Device Class hoạt động nào? • Thiết bị HID kết nối điều khiển Pointer máy tính • Có nút thiết bị nhấn tương ứng với hàm Pointer • Có byte liệu tọa độ thay đổi tọa độ Pointer - Cấu trúc Report Descriptor Bộ Report Descriptor mô tả chuỗi mục, mục mô tả liệu truyền thiết bị USB HID device truyền nhận Mỗi mục bắt đầu tiền tố Byte quy định vai trị mục độ dài liệu Mỗi mục chia làm loại thẻ chính: • Main: Mô tả thực tế liệu truyền nơi liệu sử dụng Các thẻ Global Local có chức bổ nghĩa cho Main • Global: Mơ tả thuộc tính tất thẻ Main phía sau nó, có thẻ Gobal khác xuất • Local: Thẻ mơ thả thuộc tính thẻ Main phía sau Với Main item: • Input: Mô tả liệu truyền từ thiết bị lên host kiện nhấn nút, liệu cảm biến, liệu nhà phát hành muốn gửi • Output: Mô tả liệu từ Host truyền thiết bị điều khiển led, động … • Feature: Mơ tả liệu truyền sử đụng để cấu hình cài đặt thiết bị như, tăng giảm tốc độ nháy led, tốc độ động … Collection End Collection: Mỗi thiết bị HID phải có sưu tập ứng dụng ( Application Collection), để trình xử lý biết liệu sử dụng ứng dụng Với Global Item: • Usage Page: Mô tả danh mục cao thiết bị Generic Desktop Controls ( điều khiển thiết bị để bàn), Game control, điện thoại … • Logical Minimum: Giá trị số nguyên nhỏ Main Item • Logical Maximum: Giá trị số nguyên lớn Maih Item • Report Size: Kích thước Main Item (tính theo Bit) • Report Count: Số lượng Main Item Với Local Item: • Usage: Mơ tả nhỏ lớp Usage Page: Ví dụ: Usage Page Generic Desktop Controls Usage System Control Application control Mỗi thẻ mục phân loại tương ứng với mã từ – 255 ( Byte) Cấu trúc Report Descriptor STM32 USB HID sử dụng rộng rãi muốn giao tiếp với máy tính, điện thoại, game pad cách đơn giản Về tất device sử dụng USB HID làm việc giống nhau, khác chúng cấu trúc gói tin truyền đích đến định nghĩa hết Report Descriptor Giao tiếp usb giao tiếp tiện lợi giúp cho thiết bị kết nối với máy tính nhanh chóng tiện lợi Ngồi USB CDC bạn phát triển ứng dụng theo hướng USB HID, điểm lợi so với USB CDC phần mềm tự động nhận dạng kết nối với thiết bị mà không cần phải kiểm tra thủ công qua cổng COM, USB HID STM32 giúp bạn cá nhân hóa sản phẩm làm cho project trở nên chuyên nghiệp ... khái niệm nói khó quan trọng chuẩn USB, khái niệm Interface Endpoint II USB với STM32 Tại lại dùng giao tiếp USB? ( Ứng dụng) STM32 hỗ trợ gì? Tùy thuộc vào phần cứng, MCU STM32 bao gồm USB... thoại di động để điện thoại sử dụng làm modem, fax cổng mạng b STM32 USB CDC 5.2 Giao thức USB HID STM32 (Giao tiếp USB HID đơn giản với STM32F103C8T6) a USB HID gì? HID (viết tắt Human Interface... mềm trung gian • Ví dụ ứng dụng Một số giao thức phổ biến 5.1 Giao thức USB CDC STM32 a USB CDC gì? USB communications device class hay hiểu Lớp thiết bị giao tiếp thông qua USB Các thiết bị thuộc