Trong vi điều khiển ARM, khối giao tiếp chuẩn USB được tích hợp sẵn bên trong và nằm trên bus truyền dữ liệu ngoại vi tối ưu để tăng hiệu suất truyền dữ liệu và tối ưu khả năng tiêu thụ công suất. Trong khối giao tiếp USB có một bộ xử lý truyền và nhận dữ liệu và một bộ đệm FIFO. Dữ liệu truyền trên USB theo giao thức đã được định nghĩa sẵn.
Giao tiếp USB là một chuẩn truyền dữ liệu nối tiếp đa năng [10] với các thiết bị ngoại vi. Sơ đồ truyền tín hiệu theo chuẩn giao tiếp USB được mô tả trong hình 2.16.
Quá trình trao đổi dữ liệu
Các thiết bị USB có thể trao đổi dữ liệu với máy chủ theo bốn kiểu hoàn toàn khác nhau, cụ thể:
- Truyền điều khiển (control transfer); - Truyền ngắt (interrupt transfer); - Truyền theo khối (bulk transfer);
- Truyền đẳng thời (isochronous transfer).
Truyền điều khiển: để điều khiển phần cứng, các yêu cầu điều khiển được truyền. Kiểu truyền này làm việc với mức ưu tiên cao và với khả năng kiểm soát lỗi tự động. Tốc độ truyền lớn vì có đến 64 byte trong một yêu cầu có thể được truyền.
Truyền ngắt: các thiết bị, cung cấp một lượng dữ liệu nhỏ, tuần hoàn. Hệ thống sẽ hỏi theo chu kỳ, chẳng hạn 10 ms một lần xem có các dữ liệu mới gửi đến.
Truyền theo khối: khi có lượng dữ liệu lớn cần truyền và cần kiểm soát lỗi truyền nhưng lại không có yêu cầu về thời gian truyền thì dữ liệu thường được truyền theo khối.
Truyền đẳng thời: khi có khối lượng dữ liệu lớn với tốc độ dữ liệu đã được quy định. Theo cách truyền này một giá trị tốc độ xác định được duy trì. Việc hiệu chỉnh lỗi không được thực hiện vì những lỗi truyền nhỏ không gây ảnh hưởng đáng kể.
Ưu điểm giao tiếp USB
- Dễ sử dụng:
Một giao tiếp dùng chung cho nhiều thiết bị ngoại vi khác nhau;
Tự động cấu hình;
Dễ dàng đấu nối;
Hỗ trợ khả năng cắm nóng (Hot pluggable);
Thường không cần sử dụng nguồn ngoài.
- Tốc độ cao và tin cậy, hỗ trợ nhiều tốc độ khác nhau:
Tốc độ cao nhất: 480 Mbps;
Tốc độ cao : 12 Mbps;
Tốc độ thấp : 1,5 Mbps. - Tiết kiệm điện.
- Lợi ích cho người dùng phát triển (thiết kế phần cứng, lập trình nhúng, lập trình ứng dụng).
- Linh hoạt:
Chuẩn giao tiếp USB hỗ trợ bốn kiểu truyền và ba tốc độ khác nhau -> có thể phù hợp cho nhiều loại thiết bị ngoại vi;
Có thể hỗ trợ truyền các gói dữ liệu có ràng buộc hoặc không ràng buộc về thời gian làm tăng tính thời gian thực
Hỗ trợ giao thức để giao tiếp với các thiết bị chuẩn như máy in, bàn phím, ổ đĩa, đầu đọc thẻ, …
- Được hỗ trợ bởi hệ điều hành:
Các hệ điều hành phổ biến đều hỗ trợ chuẩn USB: Windows, Linux, Macintosh;
Phát hiện khi thiết bị được cắm vào hay rút ra khỏi hệ thống;
Giao tiếp với thiết bị được cắm vào để tìm ra cách trao đổi dữ liệu;
Hỗ trợ các giao diện hàm chuẩn (API – Application Programming Interface) cho phép lập trình giao tiếp với thiết bị;
Được hỗ trợ bởi nhiều nhà sản xuất;
Các chip chuyên dụng hỗ trợ giao tiếp theo chuẩn USB khá phổ biến;
Giới hạn về khoảng cách: giới hạn chiều dài đường truyền không quá 5m;
Có thể tăng khoảng cách bằng các mạch chuyển đổi (USB <-> RS485, wifi,…).