Tải bản đầy đủ (.pptx) (27 trang)

Tìm hiểu về USB với chip STM32(kỹ thuật vi xử lý)

Bạn đang xem bản rút gọn của tài liệu. Xem và tải ngay bản đầy đủ của tài liệu tại đây (2.84 MB, 27 trang )

Group Name


Nhóm 4
Kỹ thuật vi xử lý


Thành viên trong nhóm

Nguyễn Sỹ Hải
B19DCVT115

Nguyễn Xuân Giang
B19DCVT116

Lê Văn Đức
B19DCVT093

Nguyễn Văn Hải
B19DCVT115


Đề tài:

Tìm hiểu về USB
với STM32


USB VỚI STM32
Nội dung chính


I. Tổng quan về USB

III. USB với STM32

II. Một số kiến thức cơ bản về USB


USB VỚI STM32
I. Tổng quan về USB

1. Giao thức USB là gì?


I. Tổng quan về USB
1. Giao thức USB là gì?
-

USB (Universal Serial Bus) là một chuẩn kết nối tuần tự đa dụng trong máy tính. Dùng để kết nối các ngoại vi
với máy tính theo quy chuẩn Plug and Play (Cắm và chạy), với tính năng cắm nóng thiết bị (khơng phải khởi
động lại hệ thống) giúp việc kết nối trở nên đơn giản hơn rất nhiều.

-

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
dfdfg
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 Gbit/s (625 MB/s), gấp khoảng mười lần so với chuẩn USB 2.0

-

USB 4: được USB-IF 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 Gbit/s, tương thích với Thunderbolt 3 và tương thích ngược với 
USB 3.2 và USB 2.0


USB VỚI STM32
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
2. Cấu trúc điều khiển truyền nhận
3. Các kiểu truyền nhận trong USB
4. Class(lớp)
5. Kịch bản hoạt động


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ó.


2. Cấu trúc điều khiển truyền nhận
Để tất cả các thiết bị trong cùng hệ thống hiểu nhau 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 được chia thành 3 Transaction:


Setup Transaction: Thiết lập



Data Transaction: Dữ liệu



Status Transaction: Trạng thái


2. Cấu trúc điều khiển truyền nhận

Mỗi Transaction lại chia thành các gói tin:


Setup hoặc IN/OU: Gói thơng báo, cho biết rằng các data phía sau dùng để làm gì, được xác định rõ bởi các Mã
Token tương ứng với chức năng đó



DATA: Gói dữ liệu xác định dữ liệu truyền của transaction



ACK: Gói bắt tay, thơng báo dữ liệu truyền thành cơng hay thất bại

Mỗi gói tin (Packet) lại bao gồm các trường riêng, trong đó có 3 loại trường (fields) bắt buộc trong mỗi 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 này dùng làm gì, hướng dữ liệu của 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 các trường khác sẽ tùy thuộc vào kiểu gói tin truyền nhận là gì quyết định


3. Các kiểu truyền nhận trong USB
Chuẩn USB định nghĩa 4 kiểu transfer (cũng có thể gọi là 4 kiểu endpoints), chúng bao gồm:
-

Control transfer

-

Interrupt transfer

-

Bulk transfer

-

Isochronous transfer

4. Class(lớp)
Mọi lớp định nghĩa một liên kết của:
 Dữ liệu bao gồm các đặc điểm phải được lưu trữ trong thiết bị và được cung cấp cho máy chủ lưu
trữ khi được yêu cầu.
 Trình điều khiển phần mềm được lưu trữ trong máy chủ và được tải sau khi thương lượng với thiết
bị và sau khi phát hiện ra các đặc điểm của nó.


5. Kịch bản hoạt động

Quá trình hoạt động của chuẩn USB có thể được chia làm hai giai đoạn chính
- Quá trình điểm danh: là quá trình USB Host phát hiện các thiết bị cắm vào và rút ra khỏi đường
USB Bus.
- Quá trình truyền dữ liệu: để hiểu quá trình truyền dữ liệu này, chúng ta phải hiểu được hai khái
niệm có thể nói là khó và quan trọng nhất trong chuẩn USB, đó là khái
niệm Interface và Endpoint 


III. USB với STM32

1. Tại sao lại dùng giao tiếp USB?
2. STM32 hỗ trợ những gì?
3. STM32 có thể đóng vai gì trong hệ thống của USB?
4. Tổng quan về thư viện USB device.
5. Một số giao thức phổ biến.


1. Tại sao phải dung giao tiếp USB
Đa số các project thực hiện trên STM32 khi trao đổi dữ liệu với máy tính hoặc
các thiết bị khác thường sử dụng chức năng UART (Universal asynchronous
Chèn ảnh

receiver transmitter), tuy nhiên để thực hiện chức năng này bạn sẽ tốn 2 chân
TX và RX trên chip STM32. Đồng thời UART không phải là chuẩn truyền
thông nên muốn giao tiếp UART cần phải kết hợp với các IC giao tiếp như
CH340 để tạo thành các chuẩn giao tiếp RS232,… Vì vậy để giảm thiểu chi
phí phần cứng cũng như đơn giản hóa việc truyền/nhận dữ liệu giữa STM32
với máy tính, bài viết này sẽ hướng dẫn cách sử dụng tính năng USB CDC

Chèn ảnh


(Communication Device Class) trên chip STM32F103C8T6.


2. STM32 hỗ trợ những gì?
Tùy thuộc vào phần cứng, mỗi MCU STM32 bao gồm cả USB có thể hỗ trợ:


Chỉ thiết bị ở tốc độ FS.



OTG (vai trò kép: thiết bị và máy chủ) trong tốc độ FS.



OTG theo tốc độ HS.


3. STM32 có thể đóng vai trị gì trong
hệ thống của USB
Hệ thống USB cơ bản có thể được thiết lập bởi máy chủ
và thiết bị được gắn bằng cáp USB

Hệ thống USB cơ bản có thể được thiết lập bởi máy
chủ và thiết bị được gắn bằng cáp USB


4. Tổng quát về thư viện USB device
Với MCU và bo mạch STM32, một môi trường phát triển đầy đủ và miễn phí

được gọi là STM32Cube được 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ác cấp độ khác nhau bằng cách cung cấp:


Lớp thấp và trình điều khiển được tối ưu hóa.



Lớp trừu tượng phần cứng và trình điều khiển di động.



Thư viện phần mềm trung gian.



Ví dụ và ứng dụng.

Cấu trúc thư mục của thư
viện thiết bị USB STM32



5. Một số giao thức phổ biến

5.1 Giao thức USB CDC
trên STM32

5.2 Giao thức USB HID
trên STM32


5.1 Giao thức USB CDC trên STM32
a. USB CDC là gì?
 USB communications device class hay được hiểu là Lớp thiết bị giao tiếp thơng qua USB. Nghe có vẻ hơi tối
nghĩa nhưng bạn có thể hiểu rằng nó được sử dụng để các thiết bị giao tiếp với nhau chứ không tương tác với
con người như HID class.
 Các thiết bị thuộc lớp này cũng được triển khai trong các hệ thống nhúng như điện thoại di động để điện thoại
có thể được sử dụng làm modem, fax hoặc cổng mạng. Các giao diện dữ liệu thường được sử dụng để thực hiện
truyền dữ liệu hàng loạt.
b. STM32 USB CDC
Trong STM32f103c8t6 chỉ hỗ trợ giao thưc USB kiểu Device, thế nên ta sẽ sử dụng kit Bluepill như một
thiết bị để truyền nhận dữ liệu giữa nó và máy tính. Cách thức giao tiếp đã được chuẩn hóa trong thư viện USB của
CubeMx.


5.1 Giao thức USB CDC trên STM32
=> STM32 USB CDC được sử dụng rất nhiều trong việc truyền nhận giữa các thiết bị nhúng với nhau hoặc
giữa chúng với máy tính, vì tính tiện dụng và hiệu quả và tốc độ nó mang lại.


5.2 Giao thức USB HID trên STM32
a. USB HID là gì?

HID (viết tắt của Human Interface Device) là một tiêu chuẩn cho các thiết bị máy tính được vận hành bởi con
người.
HID là một tiêu chuẩn được tạo ra nhằm đơn giản hóa q trình cài đặt các thiết bị đầu vào thông qua từng giao
thức cụ thể cho từng thiết bị như chuột, bàn phím,…

Giao tiếp USB HID đơn giản với STM32F103C8T6


5.2 Giao thức USB HID trên STM32
b. Cách giao tiếp với tất cả các thiết bị USB HID
- Human Interface Device Class hoạt động như
thế nào?
 Thiết bị HID kết nối sẽ điều khiển Pointer của
máy tính


Có 3 nút trên thiết bị và khi nhấn tương ứng với
các hàm của Pointer



Có 2 byte dữ liệu tọa độ sẽ thay đổi tọa độ của
Pointer

- Cấu trúc của Report Descriptor


5.2 Giao thức USB HID trên STM32
b. Cách giao tiếp với tất cả các thiết bị USB HID
Bộ Report Descriptor được mô tả bởi chuỗi các mục, các mục này mô tả dữ liệu sẽ truyền đi khi thiết bị USB

HID device truyền hoặc nhận. Mỗi mục bắt đầu bằng tiền tố là 1 Byte quy định vai trò của mục và độ dài dữ
liệu của nó.
Mỗi mục chia làm 3 loại thẻ chính:


Main: Mơ tả thực tế dữ liệu truyền đi và nơi dữ liệu được sử dụng. Các thẻ Global và Local có chức năng
bổ nghĩa cho Main



Global: Mơ tả thuộc tính của tất cả các thẻ Main phía sau nó, cho đến khi có 1 thẻ Gobal khác xuất hiện



Local: Thẻ này mơ thả thuộc tính của thẻ Main phía sau nó.

Với Main item:


Input: Mơ tả dữ liệu truyền từ thiết bị lên host như sự kiện nhấn nút, dữ liệu cảm biến, dữ liệu của nhà phát
hành muốn gửi



Output: Mô tả dữ liệu từ Host truyền về thiết bị như điều khiển led, động cơ ….



Feature: Mô tả  dữ liệu được truyền đi được sử đụng để cấu hình cài đặt thiết bị như, tăng giảm tốc độ
nháy của led, tốc độ động cơ …



5.2 Giao thức USB HID trên STM32
b. Cách giao tiếp với tất cả các thiết bị USB HID
Collection và End Collection: Mỗi thiết bị HID phải có 1 bộ sưu tập ứng dụng ( Application Collection), để
trình xử lý có thể biết được dữ liệu đang sử dụng trong ứng dụng nào.
Với Global Item:


Usage Page: Mô tả danh mục cao nhất của thiết bị như 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ỏ nhất của Main Item



Logical Maximum: Giá trị số nguyên lớn nhất của Maih Item



Report Size: Kích thước của Main Item (tính theo Bit)



Report Count: Số lượng Main Item

Với Local Item:



Usage: Mô tả nhỏ hơn về lớp Usage Page: Ví dụ: như Usage Page là Generic Desktop Controls thì Usage
có thể là System Control hoặc Application control.

Mỗi thẻ mục sẽ được phân loại tương ứng với 1 mã từ 0 – 255 ( 1 Byte).
 


×