Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống
1
/ 32 trang
THÔNG TIN TÀI LIỆU
Thông tin cơ bản
Định dạng
Số trang
32
Dung lượng
2,34 MB
Nội dung
BỘ THÔNG TIN & TRUYỀN THÔNG HỌC VIỆN CÔNG NGHỆ BƯU CHÍNH VIỄN THƠNG - - BÁO CÁO MÔN HỌC: THIẾT KẾ NGOẠI VI VÀ KỸ THUẬT GHÉP NỐI Chủ đề : Tìm hiểu chuẩn giao tiếp USB Giảng viên : Nhóm : Dương Quang Duy 04 Sinh viên thực hiện: Bùi Hữu Tuấn Anh Phạm Khắc Thức Đỗ Tấn Đức Nguyễn Khắc Cường B19DCDT005 B19DCDT241 B19DCDT057 B19DCDT025 Hà Nội, tháng 02 năm 2023 Báo cáo Bài tập lớn Hệ thống Nhúng – NHÓM 03 Mục Lục Giới thiệu chung chuẩn USB I Định nghĩa 2 Lịch sử hình thành phát triển: Các mục tiêu hướng tới sử dụng USB Mô tả hệ thống USB Giác cắm USB II Mơ hình luồng liệu Các thành phần việc thực kết nối USB Bus topology Luồng truyền thông USB Các loại truyền liệu USB III Tầng giao thức USB Thứ tự byte/bit Trường đồng Định dạng trường gói 10 IV Quá trình tìm hiểu máychủ thiết bị 17 Quá trình xử lý tổng quát 17 Các bước trình tìm hiểu 17 V Ứng dụng 20 Báo cáo Bài tập lớn Hệ thống Nhúng – NHÓM 03 I Giới thiệu chung chuẩn USB Định nghĩa: USB (Universal Serial Bus) bus nối tiếp đa cho phép thiết bị đầu cuối giao tiếp với máy chủ Chuẩn truyền thông: nối tiếp Lịch sử hình thành phát triển: - Năm 1995 USB thức đời hệ USB1.0 - Tháng năm 2000 chuẩn USB 2.0 đời - Năm 2007 USB 3.0 đời mang bước đột phá tốc độ truyền liệu Các mục tiêu hướng tới sử dụng USB Dễ dàng mở rộng thiết bị đầu cuối PC Chi phí thấp tốc độ truyền dẫn cao,lên tới 480Mb/s với USB 2.0 3.2 đến Gb/s USB3.0 Hỗ trợ thời gian thực video,audio… Được windows hệ điều hành khác hỗ trợ khơng cần driver mức thấp cho thiết bị Đa năng,độ tin cậy cao Mô tả hệ thống USB Một hệ thống USB mô tả định nghĩa: - Kết nối USB - Các thiết bị USB - USB host Báo cáo Bài tập lớn Hệ thống Nhúng – NHÓM 03 Kết nối USB hiểu kết nối mà thiết bị USB kết nối với máy tính chủ USB host : máy chủ USB hệ thống USB Thiết bị USB thiết bị sau: Hub: cung cấp điểm lắp thêm vào USB Các chức năng:cung cấp khả cho hệ thống kết nối ISDN,digital joystick, speakers Thiết bị hiểu giao thức USB Báo cáo Bài tập lớn Hệ thống Nhúng – NHÓM 03 Giác cắm USB Cáp USB (2.0) USB truyền tín hiệu nguồn qua cáp gồm sợi Có tốc độ truyền liệu USB tốc độ cao: 480 Mb/s USB toàn tốc: 12 Mb/s USB tốc độ thấp: 1.2 MB/s Cáp USB gồm dây: Báo cáo Bài tập lớn Hệ thống Nhúng – NHĨM 03 - D+ D- dùng để truyền tín hiệu - Vbus GND để cấp nguồn cho thiết bị - USB cho phép chiều dài đoạn cáp lên tới mét - Ở phía máy chủ host D+ D- nối đất qua điện trở Rpd cịn phía ngoại vi,các đầu dây D+ D- bảo vệ điện trở cuối Rpu II Mơ hình luồng liệu Các thành phần việc thực kết nối USB Việc thực kết nối USB gồm thành phần: -Thiết bị USB vật lý: phần cứng đầu cuối cáp USB thi hành vài chức hữu dụng với người sử dụng -Client Software: Phần mềm thi hành máy chủ.Phần mềm cung cấp hệ điều hành cung cấp với thiết bị USB - USB system software: phần mềm hỗ trợ USB hệ điều hành cụ thể.Phần mềm hệ thống USB thường cung cấp kèm với hệ điều hành, không phụ thuộc vào thiết bị USB cụ thể - USB host cotroller: Bao gồm thiết bị phần cứng phần mềm cho phép thiết bị USBkết nối với host - USB bus interface layer cung cấp kết nối vật lý,gói tin,báo hiệu host thiếtbị -USB decive layer cho thấy hệ hệ điều hành hỗ trợ thiết bị USB cần có phần mềm hệ thống để thực việc quản lý thiết bị USBlogic Báo cáo Bài tập lớn Hệ thống Nhúng – NHÓM 03 Các vùng thực việc kết nối USB -Function layer cung cấp khả thêm vào cho host qua phần mềm khách Bus topology Bus topology gồm thành phần chính: - Host thiết bị: thành phần sơ cấp hệ thống USB - Cấu trúc vật lý: cho thấy thành phần USB nối với - Cấu trúc logic: cho thấy vai trò trách nhiệm thành phần USB khác - Mối liên quan chức phần mềm khách Báo cáo Bài tập lớn Hệ thống Nhúng – NHÓM 03 Luồng truyền thơng USB • USB cung cấp sử dụng bus tồn diện cách tách luồng truyền thơng khác tới chức USB • Mỗi luồng truyền thông kết thúc điểm cuối thiết bị • Điểm cuối thiết bị dùng để xác định hướng luồng truyền thông Các loại truyền liệu USB -USB truyền liệu qua ống dẫn bên phần mềm khách bên điểm cuối thiết bị USB -USB cung cấp loại truyền liệu: Truyền điều khiển Truyền ngắt Truyền đẳng thời Truyền khối Báo cáo Bài tập lớn Hệ thống Nhúng – NHĨM 03 a Truyền điều khiển • Truyền điều khiển truyền theo kiểu chiều • Loại truyền thường sử dụng để cài đặt thiết bị ngoại vi • Giao thức truyền điều khiển bắt đầu giai đoạn thông báo, giai đoạn liệu kết thúc giai đoạn bắt tay • Mọi thiết bị ngoại vi USB phải xử lý loại truyền b Truyền ngắt - Truyền ngắt kiểu truyền chiều,sử dụng cho thiết bị ngoại vi chuột,bàn phím… - Giao thức truyền ngắt khởi động máy chủ(host)bắt đầu thông báo in(in token) - Thiết bị trả lời gói NAK khơng có ngắt - Khi có ngắt thiết bị ngoại vi trả lời gói liệu.Khi nhận hết liệu máy chủ trả lời gói ACK khơng có lỗi - Nếu bị nghẽn điểm cuối thiết bị ngoại vi,nó gủi đến máy chủ gói STALL đợi phần mềm hệ thống máy chủ xử lý c Truyền đẳng thời -Truyền đẳng thời phương pháp truyền chiều Hướng truyền truyền từ thiết bị ngoại vi máy chủ ngược lại -Truyền đẳng thời khơng dùng gói bắt tay để để thơng báo kết truyền thơng tin nên thơng tin bị thất lạc (dùng cho điện thoại hay loa) Báo cáo Bài tập lớn Hệ thống Nhúng – NHÓM 03 d Truyền khối - Truyền khối phương pháp truyền chiều Hướng truyền từ điểm cuối máy chủ ngược lại - Giao thức truyền khối gồm giai đoạn: Thơng báo,dữ liệu gói bắt tay - Nếu thiết bị bị kẹt giai đoạn liệu mà có thơng báo bắt tay - Dữ liệu truyền qua ống dẫn từ vùng đệm liệu nhớ chương trình tương ứng tới điểm cuối thiết bị ngoại vi III Tầng giao thức USB Thứ tự byte/bit -Các bit byte truyền bus truyền từ bit LSB MSB -Các gói biểu diễn bit trường xếp theo thứ tự từ trái qua phải,đó cúng thứ tự mà chúng gủi qua bus Trường đồng - Tất gói bắt đầu trường đồng - Trường đồng định nghĩa có độ dài bit cho truyền tốc độ toàn tốc tốc độ thấp 32 bit cho tốc độ cao - Hai bit cuối trường đồng đánh dấu kết thúc trường đồng bắt đầu PID - Mẫu đồng - Mẫu đồng 32 bít: 01010101010101010101010101010100 Báo cáo Bài tập lớn Hệ thống Nhúng – NHĨM 03 IV Q trình tìm hiểu máy chủ thiết bị • Trước giao tiếp với thiết bị,máy chủ cần tìm hiểu thiết bị gán cho thiết bị điều khiển(driver) • Những cơng việc cần xử lý trình tìm hiểu bao gồm: Gán địa cho thiết bị, đọc mô tả từ thiết bị, gán tải điều khiển cho thiết bị, chọn cấu hình phù hợp với yêu cầu công suất thiết bị, yêu cầu điểm cuối số đặc điểm khác Quá trình xử lý tổng qt • Một nhiệm vụ hub phát cắm vào tháo thiết bị • Mỗi hub có điểm cuối ngắt để báo cáo kiện cho máy chủ • Khi hệ thống khởi động,máy chủ thăm dị hub gốc để biết có hay khơng thiết bị cắm vào • Sau khởi động,máy chủ tiếp tự thăm dò định kỳ để biết có hay khơng thiết bị căm vào vừa tháo Các bước q trình tìm hiểu • Trong suốt q trình tìm hiểu thiết bị trải qua trạng thái: Được cấp nguồn,mặc định,đã gán địa chỉ,đã cấu hình Hai trạng thái lại vừa gán treo • Trong trạng thái thiết bị định khả cách làm việc tương ứng a Người sử dụng gắn thiết bị vào USB Khi sử dụng gắn thiết bị vào cổng USB khởi động với thiết bị USB gắn sẵn hub mà thiết bị gắn tới cấp nguồn tới cổng có thiết bị lúc thiết bị vào trạng thái cấp nguồn 17 Báo cáo Bài tập lớn Hệ thống Nhúng – NHÓM 03 b Hub phát thiết bị vừa gắn vào hệ thống • Hub giáp sát điện áp đường đường dây tín hiệu cổng để biết có hay khơng thiết bị vừa gán vào • Hub có điện trở kéo nằm khoảng 14.25 đến 24.8 Kilo ơm cho đường tín hiệu • Cịn thiết bị có điện trở trở kéo lên có giá trị khoảng 900-1575 ơm D+ thiết bị tốc độ cao toàn tốc,trên D- thiết bị tốc độ thấp • Hub phát thiết bị gắn vào thấy điện áp chuyển từ mức thấp laaen mức cao hai đường tín hiệu(D+ D-) c Máy chủ tìm hiểu thiết bị Mỗi hub sử dụng điểm cuỗi ngắt để báo cáo kiện xảy hub với máy chủ d Hub xác định xem tốc độ thiết bị thấp hay toàn tốc -Hub xác định tốc độ thiết bị cách kiểm tra điện áp hai đường dây tín hiệu D+ D- bus trạng thái rỗi -Nếu trạng thái rỗi mà điện áp D- cao D+ tốc độ thiết bị thấp cịn ngược lại tốc độ thiết bị toàn tốc e Hub reset thiết bị - Khi máy chủ tìm hiểu thiết bị điều khiển máy chủ gửi tới hub yêu cầu Set_Port_Feature để yêu cầu hub reser cổng có gắn thiết bị - Hub reset thiết bị cách đưa hai đường thiết bị tín hiệu D+ Dvề mức logic thấp khoảng thời gian tối thiểu 10 ms(ở trạng thái bình thường hai đường tín hiệu có mức logic trái ngược nhau) 18 Báo cáo Bài tập lớn Hệ thống Nhúng – NHÓM 03 f Máy chủ tìm hiểu xem thiết bị thiết bị tồn tốc có hỗ trợ tốc độ cao khơng - Nếu thiết bị có hỗ trợ tốc độ cao q trình reset gủi tới hub chip K(tức làm cho đường D- có điện áp cao đường D+) dài khoảng thời gian từ tới ms - Khi nhận chip K máy chủ trả lời thiết bị cách gủi chuối chíp KJKJKJ tới thiết bị (Chip J có điện áp đường D+ cao D-) - Khi thiết bị nhận hiểu làm việc tốc độ cao - Để làm việc tốc độ cao thiết bị phải vơ hiệu hóa điện trở kéo lên đường D+ g Hub thiết lập đường truyền tín hiệu thiết bị bus - Máy chủ kiểm tra xem thiết bị thoát khỏi trạng thái reset hay chưa cách gửi tới hub yêu cầu Get_Port_Status.Hub có nhiệm vụ trả lời lại yêu cầu - Khi hub gỡ bỏ trạng thái reset thiết bị đưa vào trạng thái mặc định h Máy chủ tìm hiểu kích thước lớn gói đường truyền mặc định - Máy chủ gửi yêu cầu tới điểm cuối thiết bị có địa - Trong byte mơ tả thiết bị có chữa thơng tin kích thước tối đa cho gói tin mà điểm cuối hỗ trợ i Máy chủ gán địa cho thiết bị - Máy chủ gán địa cụ thể không trùng lặp với địa thiết bị khác cho thiết bị cách gủi yêu cầu Set_Address tới thiết bị - Thiết bị hoàn tất giai đoạn trạng thái yêu cầu với địa mặc định sau sử dụng địa mà máy chủ vừa gán cho để thực giao tác tiếp theo(lúc thiết bị vào trạng thái địa chỉ) - Địa mà máy chủ vừa gắn cho thiết bị có hiệu lực thiết bị tháo hệ thống khởi động lại 19 Báo cáo Bài tập lớn Hệ thống Nhúng – NHÓM 03 j Máy chủ tìm hiểu khả thiết bị • Máy chủ gủi yêu cầu Get_Descriptor tới thiết bị theo địa mà gán trước • Trong lần gửi yêu cầu máy chủ thu hồi tồn nội dung mơ tả thiết bị • Bộ mơ tả thiết bị có chữa thơng tin kích thước tối đa gói tin cho điểm cuối 0,số lượng cấu hình mà thiết bị hỗ trợ số thông tin khác k Máy chủ gán tải điều khiển cho thiết bị Sau tìm hiểu thiết bị thơng qua mơ tả nó,máy chủ tìm kiếm điều khiển thiết bị phù hợp cho thiết bị để quản lý việc giao tiếp với thiết bị l Bộ điều khiển thiết bị máy chủ lựa chọn cấu hình • Sau tìm hiểu thiết bị thông qua mô tả,bộ điều khiển thiết bị yêu cầu cấu hình nhờ việc gửi u cầu Set_Cịniguratinon với số cấu hình tương ứng • Thiết bị đọc yêu cầu từ máy chủ cho phép cấu hình tương ứng tích cực(thiết bị làm việc với cấu hình đó).Thiết bị lúc đưa tới trạng thái cấu hình giao diện thiết bị bắt đầu phép hoạt động • Như thiết bị lúc sẵn sàng cho việc sử dụng • Ngồi trạng thái: Được cấp nguồn,mặc định,đã gán địa cấu hình cịn có trạng thái tháo trạng thái treo • Trang thái tháo ra: Nếu hub không cấp nguồn tới đường Vbus thiết bị thiết bị trạng thái tháo ra.Hiện tượng thiết bị không cấp nguồn gắn bào hub xảy hub nhận yêu cầu từ máy chủ buộc cắt nguồn cấp cho thiết bị • Trạng thái treo: Thiết bị vào trạng thái treo phát thấy 3ms trơi qua mà khơng thấy tín hiệu bus.Thiết bị phải có khả phát khoảng thời gian ms khơng tích cực bus đưa thiết bị vào trạng thái treo V Ứng dụng 20 Báo cáo Bài tập lớn Hệ thống Nhúng – NHÓM 03 ĐỀ TÀI : Stm32 hid keyboard I Các linh kiện Chip STM32F103C8T6 STM32F103C8T6 vi điều khiển 32bit, thuộc họ F1 dòng chip STM32 hãng ST - Lõi ARM COTEX M3 - Tốc độ tối đa 72Mhz - Bộ nhớ : 64 kbytes nhớ Flash 20 kbytes SRAM - Clock, reset quản lý nguồn Điện áp hoạt động từ 2.0 → 3.6V Sử dụng thạch anh từ 4Mhz → 20Mhz Thạch anh nội dùng dao động RC mode 8Mhz 40Khz - Chế độ điện áp thấp: Có mode: ngủ, ngừng hoạt động hoạt động chế độ chờ Cấp nguồn chân Vbat pin để dùng RTC sử dụng liệu lưu trữ nguồn cấp - ADC 12 bit với kênh cho 21 Báo cáo Bài tập lớn Hệ thống Nhúng – NHÓM 03 Khoảng giá trị chuyển đổi từ – 3.6 V Có chế độ lấy mẫu kênh nhiều kênh - DMA: kênh DMA Có hỗ trợ DMA cho ADC, UART, I2C, SPI - Timer: Timer 16 bit hỗ trợ mode Input Capture/ Output Compare/ PWM Timer 16 bit hỗ trợ để điều khiển động với mode bảo vệ ngắt Input, deadtime Watchdog Timer để bảo vệ kiểm tra lỗi Systick Timer 24 bit đếm xuống cho hàm Delay,… - Có hỗ trợ kênh giao tiếp: I2C USART SPI CAN USB 2.0 full-speed interface - Kiểm tra lỗi CRC 96-bit ID : cổng Mini USB dùng để cấp nguồn, nạp debug MCU bao gồm MCU nạp MCU dùng để lập trình Có chân Output riêng cho chân mạch nạp MCU1 Có chân Output đầy đủ cho chân MCU2 Chân cấp nguồn ngồi riêng cho MCU2 khơng sử dụng nguồn từ USB Thạch anh 32,768khz dùng cho RTC Backup Chân nạp dùng cho chế độ nạp boot loader Nút Reset led hiển thị chân PB9, led báo nguồn cho MCU2 * Thông số kỹ thuật : Vi điều khiển: STM32F103C8T6 22 Báo cáo Bài tập lớn Hệ thống Nhúng – NHÓM 03 Điện áp cấp 5VDC qua cổng Micro USB chuyển đổi thành 3.3VDC qua IC nguồn cấp cho Vi điều khiển Tích hợp sẵn thạch anh 8Mhz Tích hợp sẵn thạnh anh 32Khz cho ứng dụng RTC Ra chân đầy đủ tất GPIO giao tiếp: CAN, I2C, SPI, UART, USB,… Tích hợp Led trạng thái nguồn, Led PC13, Nút Reset Kích thước: 53.34 x 15.24mm Sử dụng với mạch nạp: o ST-Link Mini o J-link o USB TO COM Kết nối chân nạp ST-Link Mini Nạp theo chuẩn SWD o TCK — SWCLK o TMS — SWDIO o GND — GND o 3.3V — 3.3V Keyboard * Lý thuyết quét phím ma trận Bàn phím (Keyboard) tập hợp nút nhấn thiết kế theo dạng ma trận phím Nghĩa chúng nối chung hàng cột Vi điều khiển quét hàng cột theo chu kì cố định để tìm kiếm thay đổi trạng thái nút Sau gửi lên máy tính thơng qua chuẩn USB HID 23 Báo cáo Bài tập lớn Hệ thống Nhúng – NHÓM 03 Để đọc giá trị nhấn vi điều khiển ghi mức vào chân (Quét Hàng) Sau đọc giá trị từ chân Nếu quét pin mà pin3 có tín hiệu => nút nhấn Tương tự với nút lại Khi vi điều khiển biết nút nhấn Nó gửi gói tin sang vi điều khiển tương ứng với nút bàn phím, để máy tính hiểu rằng, phím nhấn * Bàn phím thực tế Trong thực tế bàn phím máy tính có nhiều nút nhấn Bao gồm loại chính: Các nút kí tự: A-Z, số, kí tự đặc biệt … Các nút lệnh: Shift, Alt, …… Tất phím xếp theo tiêu chuẩn định Mặc dù loại bàn phím khác có thêm bớt phím, cấu trúc bàn phím không đổi 24 Báo cáo Bài tập lớn Hệ thống Nhúng – NHÓM 03 II Report Descriptor USB HID bàn phím máy tính * Phân tích Report Descriptor Keyboard Để máy tính hiểu liệu gửi lên Keyboard phải gửi Report Descriptor, sau liệu gửi lên phải fomat RD Bạn google search: Report Descriptor Keyboard có kết Sử dụng công cụ kiểm tra Report Descriptor trước phân tích sau: 25 Báo cáo Bài tập lớn Hệ thống Nhúng – NHĨM 03 Như phím nhấn, bàn phím phải gửi 63 byte ( với chuột máy tính 74 byte) để báo cho máy tính biết nút nhấn Các data gửi qua lại USB HID với Input nút nhấn Output dùng để điều khiển đèn Led bàn phím (Numlock, Caplock …) * Cấu trúc liệu gửi HID KeyBoard Nhìn vào Report Descriptor Keyboard dễ dàng phân tích liệu truyền lên máy tính Khi Keyboard truyền lên máy tính gồm tất Input Usage Page (Kbrd/Keypad) Tống Byte + Byte + Byte Trong đó: Byte Modifier keys status có giá trị từ 0xE0 – 0xE7: Chứa giá trị phím lệnh Byte thứ Byte đặc tả HID, ko cần quan tâm Byte lại Keypress fields có giá trị từ 0x00 – 0x65 hay từ – 101 theo hệ thập phân: Chứa giá trị phím kí tự 26 Báo cáo Bài tập lớn Hệ thống Nhúng – NHÓM 03 Với trường Modifier keys status giá trị từ E0-E7 tương ứng với nút nhấn: Với trường Keypress fields giá trị từ 0x00 – 0x65 tương ứng với kí tự nhấn 27 Báo cáo Bài tập lớn Hệ thống Nhúng – NHĨM 03 III Lập trình STM32 USB HID Keyboard Keil C Sau mở project Chúng ta phải cấu hình lại cho HID, mặc đinh CubeMx Gen chuột máy tính Đầu tiên sửa interfaceprotocol Chỉnh Protocol thành 0x01 Chỉnh Report Descriptor 28 Báo cáo Bài tập lớn Hệ thống Nhúng – NHÓM 03 Tìm tới nơi define kích thước Report Chỉnh lại kích thước RD 63 Nhấn F7 Build F8 nạp chương trình vào KIT Sau cắm cổng Micro USB vào máy tính Vào Manager Computer để xem thiết bị chuyển Keyboard chưa 29 Báo cáo Bài tập lớn Hệ thống Nhúng – NHÓM 03 * Khới tạo biến cho USB Keypad Thêm thư viện khai báo biến Phần KEYMAP thay kí tự từ – 9, đối chiếu với tài liệu bên trên, sau thay vào giá trị Hex bàn phím tương ứng với Key – Key # thay Enter 30 Báo cáo Bài tập lớn Hệ thống Nhúng – NHÓM 03 Trước While khởi tạo Keypad Sau đọc liêu từ bàn phím Nếu phím nhấn, copy liệu vào report[2] (Keycode 1), sau gửi liệu Tiếp đến xóa liệu dừng gửi liệu cách send report trống Lưu ý: Nếu bạn không gửi report trống lên, USB HID liên tục gửi liệu lên máy tính Build nạp vào KIT Kết nối phần cứng PA0,1,2,3 theo thứ tự nối với chân 2,7,6,4 PA4,5,6 theo thứ tự nối với chân 3,1,5 _HẾT_ 31