1. Trang chủ
  2. » Giáo Dục - Đào Tạo

BÁO CÁO BÀI TẬP LỚN HỆ ĐIỀU HÀNH đề tài VIẾT DRIVER CHO USB

13 9 0

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

THÔNG TIN TÀI LIỆU

Thông tin cơ bản

Định dạng
Số trang 13
Dung lượng 605,8 KB

Nội dung

TRƯỜNG ĐẠI HỌC BÁCH KHOA HÀ NỘI VIỆN ĐIỆN TỬ - VIỄN THÔNG BÁO CÁO BÀI TẬP LỚN HỆ ĐIỀU HÀNH Đề tài: VIẾT DRIVER CHO USB Giảng viên hướng dẫn: TS Nguyễn Thanh Bình Nhóm: Họ tên sinh viên MSSV Lớp Cao Cự Đức 20182428 Điện tử - 06 K63 Nguyễn Minh Hiếu 20182518 Điện tử - 06 K63 Nguyễn Hoàng Nam 20182694 Điện tử - 06 K63 Trần Văn Khánh 20182605 Điện tử - 06 K63 Hà Nội, 11-2021 MỤC LỤC MỤC LỤC DANH MỤC HÌNH VẼ PHẦN 1: TỔNG QUAN VỀ USB 1.1 Giới thiệu USB 1.2 Chuẩn tín hiệu 1.3 Mơ hình mạng 1.4 Quá trình hoạt động chuẩn USB 1.5 Chế độ truyền 1.6 Mô tả thiết bị 1.6.1 Mô tả chuẩn (Standard Descriptions) 1.6.2 Human Interface Devices (HID) .9 PHẦN 2: VIẾT DRIVER CHO USB .9 2.1 Mơ hình phân lớp hệ thống USB Linux 2.2 Quy trình viết Driver Ubuntu 10 2.2.1 Tìm hiểu thiết bị USB giao tiếp (USB Device) 10 2.2.2 Khai báo danh sách thiết bị điều khiển Driver 11 TÀI LIỆU THAM KHẢO 11 DANH MỤC HÌNH VẼ Hình 1.1 Thiết bị USB Hình 1.2 Chuẩn tín hiệu USB Hình 1.3 Mơ hình mạng thiết bị hoạt động theo chuẩn USB Hình 1.4 Mô tả thiết bị USB Hình 2.1 Quá trình nhận dạng thiết bị USB Linux 10 Hình 2.2 Các thơng tin đặc điểm USB 11 PHẦN 1: TỔNG QUAN VỀ USB 1.1 Giới thiệu USB USB thiết bị lưu trữ di động công cụ để kết nối nhiều thiết bị ngoại vi với máy tính Nó trở lên tiện dụng mà sử dụng phổ biến USB (Universal Serial Bus) chuẩn kết nối có dây máy tính, sử dụng nhằm kết nối điểm kỹ thuật máy tính với thiết bị ngoại vi Vào cuối năm 1994 đề xuất Intel, Compaq, IBM, Microsoft công ty khác Bây giờ, USB trở thành giao diện mở rộng máy tính tiêu chuẩn kỷ XXI phiên 3.1 tung thị trường USB kết nối với 127 thiết bị bên ngồi mà khơng làm giảm băng thơng USB địi hỏi hỗ trợ phần cứng máy chủ, hệ điều hành thiết bị ngoại vi để làm việc cách Giao diện USB đạt kết nối hai máy tính thơng qua cáp chun dụng tạo giao diện bổ sung nhiều thông qua Hub Nó có nhiều tính tốc độ truyền tải nhanh, sử dụng thuận tiện, dễ tháo lắp, kết nối linh hoạt, cung cấp điện độc lập,…Nó đóng vai trò quan trọng việc kết nối máy tính với gần tất thiết bị bên ngồi, chẳng hạn chuột, bàn phím, máy in, máy quét, máy ảnh, sạch, MP3, điện thoại di động, máy ảnh kỹ thuật số,… 1Hình 1.1 Thiết bị USB 1.2 Chuẩn tín hiệu Chuẩn USB sử dụng đường tín hiệu có đường cấp nguồn DC (VBUS5V GND) đường cịn lại cặp tín hiệu vi sai (D+ D-) cho phép truyền liệu Cặp dây tín hiệu nối xoắn bên nên có khả chống nhiễu tốt Lưu ý: cổng USB máy tính cho phép cấp nguồn ni bên ngồi với dịng lên tới 500mA Như vậy, thiết bị sử dụng điện chuột, thẻ nhớ USB lấy trực tiếp nguồn từ cổng USB máy tính mà khơng cần dùng thêm nguồn ngồi 2Hình 1.2 Chuẩn tín hiệu USB 1.3 Mơ hình mạng Các thiết bị hoạt động theo chuẩn USB kết nối với theo đồ hình mạng hình phân cấp Trung tâm hình Hub Các thiết bị USB chia làm loại chính: USB Host, USB Bus, USB Hub 3Hình 1.3 Mơ hình mạng thiết bị hoạt động theo chuẩn USB USB Host: thiết bị đóng vai trị điều khiển tồn mạng USB (có thể lên tới tối đa 126 thiết bị) Ví dụ máy tính, USB Host gắn mainboard Để giao tiếp điều khiển USB device, USB Host controller cần thiết kế tích hợp với USB RootHub (Hub mức cao nhất) Vai trò thiết bị USB Host sau:  Trao đổi liệu với USB Device  Điều khiển USB Bus  Quản lý thiết bị cắm vào hay rút khỏi Bus USB qua trình điểm danh (Enumeration)  Phân xử, quản lý luồng liệu Bus, đảm bảo thiết bị có hội trao đổi liệu tùy thuộc vào cấu hình thiết bị Ngày điều khiển máy chủ USB tích hợp hầu hết chipset bo mạch chủ Các bo mạch cũ không trang bị điều khiển nâng cấp PCI cards với điều khiển máy chủ Tất điều khiển tương thích với tiêu chuẩn Open Host Controller Interface (OHCI Compaq, Microsoft National Semiconductor) Universal Host Controller Interface (UHCI by Intel [7]) Cả hai loại có khả tương đương thiết bị USB quan tâm đến điều khiển máy chủ Về phần cứng UHCI đơn giản cần driver phức tạp hơn, khiến CPU tải USB Device: thiết bị đóng vai trị slave giao tiếp với USB Host Các thiết bị hồn tồn đóng vai trị bị động, khơng tự ý gửi gói tin lên USB Host hay gửi gói tin USB Device với nhau, tất phải thơng qua q trình điều phối USB Host Chức thiết bị USB Device sau:  Trao đổi liệu với USB Host  Phát gói tin hay yêu cầu từ USB Host theo giao thức USB Có nhiều loại thiết bị USB khác chúng sử dụng cho mục đích khác Đầu tiên, thiết bị tự cấp nguồn, chạy nguồn bus hai USB tự cấp nguồn điện lên tới 500mA cho thiết bị Nếu có thiết bị chạy nguồn bus, tiêu hao lượng tối đao bị vượt cần phải có thiết bị cấp nguồn Chúng cần phải có nguồn cung cấp lượng riêng Các thiết bị hỗ trợ hai loại nguồn chuyển sang chế độ tự cấp nguồn gắn nguồn điện bên Ngay tốc độ giao tiếp tối đa khác thiết bị USB cụ thể Thông số kĩ thuật USB định thiết bị tốc độ thấp tốc độ cao Các thiết bị tốc độ thấp (như chuột, bàn phím, cần điều khiển,…) giao tiếp với tốc độ 1,5Mbit/s với khả hạn chế Các thiết bị tốc độ cao (như hệ thống âm video) sử dụng tới 90% tốc độ 12Mbit/s, tức khoảng 10Mbit/s bao gồm chi phí giao thức USB Hub: đóng vai trị Hub mạng Ethernet Cấp nguồn cho thiết bị USB Về mặt vật lý tồn số cổng USB bảng điều khiển phía sau máy tính Các cổng sử dụng để gắn thiết bị thông thường hub Hub thiết bị USB giúp mở rộng số lượng cổng (2-8) để kết nối thiết bị USB khác Số lượng thiết bị gắn tối đa giảm theo số lượng hub bus Hub thiết bị tự cấp nguồn/chạy nguồn bus tốc độ cao Thơng thường, cổng vật lí điều khiển máy chủ xử lý virtual root hub Hub mô driver trình điều khiển thiết bị giúp thống cấu trúc liên kết bus Vì vậy, cổng xử lý theo cách driver hệ thống USB 1.4 Quá trình hoạt động chuẩn USB Quá trình hoạt động chuẩn USB chia làm hai giai đoạn chính: 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 Mỗi thiết bị tham gia vào Bus USB, USB Host tiến hành đọc thông tin mơ tả (Description) USB Device, từ thiết lập địa (NodeID) chế độ hoạt động tương ứng cho thiết bị USB Device Các địa đánh từ 1->126 nên lý thuyết, chuẩn USB cho phép kết nối 126 thiết bị vào đường Bus Khi thiết bị rút khỏi đường Bus, địa thu hồi Quá trình truyền liệu: để hiểu trình truyền liệu này, phải hiểu hai khái quan trọng chuẩn USB, khái niệm Interface Endpoint (chỉ thiết bị USB device có Endpoint, USB Host khơng có Endpoint) Một thiết bị USB có nhiều Interface, Interface sử dụng nhiều Endpoint VD: Thẻ nhớ USB sử dụng Interface theo chuẩn USB Mass storage, interface sử dụng Endpoint Bộ USB 3G sử dụng Interface khác như: CD Room, Mass storage Communication, interface lại sử dụng nhiều Endpoint khác Như vậy, đứng góc độ mức hệ thống, Interface dịch vụ khác mà thiết bị cung cấp cịn Endpoint cổng cần thiết cho dịch vụ Tương ứng với khái niệm kiến trúc TCP/IP, ví dụ giao thức FTP giao thức sử dụng để truyền file sử dụng hai cổng 20,21 Trong giao thức HTTP lại sử dụng port 80, giao thức Telnet sử dụng port 23 Thực tế Endpoint Port chuẩn TCP/IP đóng vai trò đệm truyền/nhận liệu Nhờ việc sử dụng nhiều đệm mà trình truyền thông tiến hành song song cho tốc độ cao hơn, bên cạnh giúp cho việc phân tách dịch vụ khác Với chuẩn USB, thiết bị thiết kế với tối đa 16 Enppoint Các Endpoint phân loại theo hướng truyền liệu nhìn từ phía USB Host Cụ thể:  Các Endpoint truyền liệu từ USB Device tới USB Host endpoint IN  Các Endoint truyền liệu từ USB Host tới USB Device endpoint OUT Đề truyền liệu theo chuẩn USB, thiết bị USB Device phải kết nối với USB Host thông qua Pipe (đường ống) Mỗi Pipe nối Endpoint USB Device với USB Host 1.5 Chế độ truyền Chuẩn USB cung cấp cho tổng cộng chế độ truyền, đáp ứng nhiều mục đích khác tùy thuộc vào chế truyền tốc độ mà người thiết kế mong muốn Truyền điều khiển (Control transfer): chế độ truyền tất thiết bị USB hỗ trợ để truyền thông tin điều khiển với tốc độ tương đối chậm Truyền ngắt (Interrupt transfer): sử dụng cho thiết bị cần truyền lượng liệu nhỏ, tuần hoàn theo thời gian ví dụ chuột, bàn phím Khi đó, ví dụ 10s lần USB Host gửi request xuống USB Device trả liệu cho USB Host (với trường hợp Interrupt In Endpoint) Truyền theo khối (Bulk transfer): sử dụng cho thiết bị cần truyền lượng liệu lớn, yêu cầu độ xác tuyệt đối, khơng có ràng buộc q chặt chẽ thời gian thực ví dụ thẻ nhớ USB, máy in Cái tương tự giao thức TCP mạng Ethernet Truyền đẳng thời (Isochronos transfer): sử dụng cho thiết bị cần truyền lượng liệu lớn với tốc độ nhanh, đảm bảo ràng buộc thời gian thực nhiên chấp nhận hy sinh độ xác mức định thiết bị nghe nhạc, xem phim kết nối theo chuẩn USB Chuẩn tương tự giao thức UDP mạng Ethernet 1.6 Mô tả thiết bị Bất thiết bị USB gắn vào bus, liệt kệ hệ thống USB – tức số thiết bị gán sau thiết bị mô tả đọc Một thiết bị mô tả cấu trúc liệu chứa thơng tin thiết bị thuộc tính thiết bị Tiêu chuẩn USB xác định hệ thống phân cấp mơ tả 4Hình 1.4 Mơ tả thiết bị USB 1.6.1 Mô tả chuẩn (Standard Descriptions)  Device Descriptor: mô tả thông tin chung thiết bị USB Nó bao gồm tất thơng tin cấu hình thiết bị Một thiết bị USB có mô tả thiết bị  Configuration Descriptor (Bộ mô tả cấu hình): cung cấp thơng tin cấu hình thiết bị cụ thể Một thiết bị USB có nhiều cấu hình Mỗi cấu hình có nhiều interface interface có nhiều endpoint Endpoint chia sẻ giao diện phần cấu hình khác mà khơng có hạn chế  Interface Description (Bộ mô tả giao diện): mô tả giao diện cụ thể cấu hình Một cấu hình cung cấp nhiều interface, giao diện có nhiều endpoint mô tả tập hợp endpoint cấu hình  Endpoint Descriptor (Bộ mơ tả endpoint): chứa thông tin theo yêu cầu máy chủ lưu trữ xác định yêu cầu băng thông endpoint Một endpoint biểu thị cho nguồn liệu logic góp thiết bị USB Endpoint sử dụng cho lần truyền điều khiển tiêu chuẩn khơng có mơ tả cho endpoint  String Descriptor (Bộ mô tả chuỗi): tùy chọn cung cấp thông tin bổ sung định dạng Unicode đọc Chúng sử dụng cho tên nhà cung thiết bị số seri 1.6.2 Human Interface Devices (HID) Lớp HID [6] bao gồm chủ yếu thiết bị người sử dụng để điều khiển hoạt động hệ thống máy tính Ví dụ điển hình thiết bị lớp HID bao gồm:  Bàn phím thiết bị trỏ, thiết bị chuột, cần điều khiển,…  Bảng điều khiển phía trước: núm, cơng tắc, nút, trượt,…  Các điều khiển tìm thấy thiết bị như: điện thoại, điều khiển từ xa, trị chơi thiết bị mơ như: găng tay, vô lăng, bàn đạp bánh lái, … PHẦN 2: VIẾT DRIVER CHO USB 2.1 Mơ hình phân lớp hệ thống USB Linux Khi có thiết bị usb hợp lệ cắm vào hệ thống Linux, cho dù có driver hay khơng nhận diện (detect) phần cứng tầng nhân (kernel space) hệ thống Linux mà hỗ trợ giao thức usb Hệ thống làm điều khả thân giao thức usb thiết kế đặc tả Cụ thể, việc phát thiết bị usb cắm vào thực chip usb host controller (là thiết bị chủ động đường bus giao thức usb) USB host controller thu thập diễn giải thông tin tầng vật lý (low-level) đến thông tin đặc tả giao thức USB tầng (high-level) Các thông tin thiết bị theo khuôn dạng quy 10 định giao thức USB lại tiếp tục đưa vào tầng usb core tổng quát (generic usb core) tầng nhân (được điều khiển usbcore driver) Chính điều giúp cho thiết bị usb hệ thống nhận diện tầng nhân, chưa có driver cụ thể cho chức Sau q trình diễn tầng nhân này, đến nhiệm vụ drivers interfaces applications (cái mà phụ thuộc vào Linux khác nhau) để tiếp tục nhận dạng thiết bị tầng người dùng 5Hình 2.1 Quá trình nhận dạng thiết bị USB Linux 2.2 Quy trình viết Driver Ubuntu 2.2.1 Tìm hiểu thiết bị USB giao tiếp (USB Device) Đầu tiền cần có thơng tin Firrmware thiết bị Các thông tin cần thiết bao gồm: idVendor, idProduct, số lượng Configuration, số lương Interface Configration, số lượng lọai Endpoint Interface Trên Linux, sử dụng lệnh lsusb để liệt kê danh sách thông tin tất thiết bị usb hệ thống nhận diện Để xem thông tin chi tiết thiết bị đó, cần sử dụng thêm tham số -vd (:) 11 6Hình 2.2 Các thông tin đặc điểm USB 2.2.2 Khai báo danh sách thiết bị điều khiển Driver Khi viết USB Driver cần định xem driver sử dụng cho thiết bị lớp thiết bị Cấu trúc usb_device_id cung cấp kiểu thiết bị, thiết bị cụ thể lớp thiết bị Có số macro để khởi tạo cấu trúc Ví dụ sử dụng macro USB_DEVICE (vendor, product) để tạo cấu trúc usb_device_id với IDvendor IDproduct TÀI LIỆU THAM KHẢO [1] https://elixir.bootlin.com/linux/latest/source/drivers/usb/usb-skeleton.c [2]https://sysplay.github.io/books/LinuxDrivers/book/Content/Part11.html [3] https://vimentor.com/vi/lesson/linux-kernel-module [4]https://sysplay.github.io/books/LinuxDrivers/book/Content/Part12.html? 12 ... .9 PHẦN 2: VIẾT DRIVER CHO USB .9 2.1 Mơ hình phân lớp hệ thống USB Linux 2.2 Quy trình viết Driver Ubuntu 10 2.2.1 Tìm hiểu thiết bị USB giao tiếp (USB Device) 10 2.2.2... truyền liệu từ USB Device tới USB Host endpoint IN  Các Endoint truyền liệu từ USB Host tới USB Device endpoint OUT Đề truyền liệu theo chuẩn USB, thiết bị USB Device phải kết nối với USB Host thông... lăng, bàn đạp bánh lái, … PHẦN 2: VIẾT DRIVER CHO USB 2.1 Mơ hình phân lớp hệ thống USB Linux Khi có thiết bị usb hợp lệ cắm vào hệ thống Linux, cho dù có driver hay khơng nhận diện (detect) phần

Ngày đăng: 22/12/2021, 05:47

HÌNH ẢNH LIÊN QUAN

1Hình 1.1 Thiết bị USB - BÁO CÁO  BÀI TẬP LỚN HỆ ĐIỀU HÀNH đề tài VIẾT DRIVER CHO USB
1 Hình 1.1 Thiết bị USB (Trang 5)
1.3. Mô hình mạng - BÁO CÁO  BÀI TẬP LỚN HỆ ĐIỀU HÀNH đề tài VIẾT DRIVER CHO USB
1.3. Mô hình mạng (Trang 6)
2Hình 1.2 Chuẩn tín hiệu USB - BÁO CÁO  BÀI TẬP LỚN HỆ ĐIỀU HÀNH đề tài VIẾT DRIVER CHO USB
2 Hình 1.2 Chuẩn tín hiệu USB (Trang 6)
4Hình 1.4 Mô tả thiết bị USB - BÁO CÁO  BÀI TẬP LỚN HỆ ĐIỀU HÀNH đề tài VIẾT DRIVER CHO USB
4 Hình 1.4 Mô tả thiết bị USB (Trang 10)
5Hình 2.1 Quá trình nhận dạng thiết bị USB trên Linux - BÁO CÁO  BÀI TẬP LỚN HỆ ĐIỀU HÀNH đề tài VIẾT DRIVER CHO USB
5 Hình 2.1 Quá trình nhận dạng thiết bị USB trên Linux (Trang 12)
6Hình 2.2 Các thông tin đặc điểm của USB - BÁO CÁO  BÀI TẬP LỚN HỆ ĐIỀU HÀNH đề tài VIẾT DRIVER CHO USB
6 Hình 2.2 Các thông tin đặc điểm của USB (Trang 13)

TỪ KHÓA LIÊN QUAN

TÀI LIỆU CÙNG NGƯỜI DÙNG

TÀI LIỆU LIÊN QUAN

w