Các giao diện quản lý ngoại vi Phần mềm Host Bó đường dẫn tới một giao diện Đường dẫn mặc định tới điểm cuối 0 USB Driver HC Bộ điều khiển Host Giao diện bus USB Cấu hình IRPs Xử l
Trang 1ĐẠI HỌC QUỐC GIA HÀ NỘI
TRƯỜNG ĐẠI HỌC CÔNG NGHỆ
NGUYỄN THỊ QUYÊN
ĐO LƯỜNG VÀ ĐIỀU KHIỂN QUA CỔNG USB
LUẬN VĂN THẠC SĨ
Hà Nội - 2009
Trang 2Mục lục 1
Danh mục các bảng 4
Danh mục các hình vẽ 5
Mở đầu 6
Chương 1 Tổng quan về USB 8
1.1 Những nét chung về Bus USB 8
1.2 Đầu nối và cáp USB 10
Chương 2 Host USB: Phần cứng và phần mềm 13 2.1 Tổng quan về host của USB. Error! Bookmark not defined.
2.1.2 Cơ chế điều khiển Error! Bookmark not defined.
2.1.3 Đường dẫn dữ liệu Error! Bookmark not defined.
2.1.4 Tình trạng tập chung và số liệu thống kê hoạt động Error! Bookmark not defined.
2.1.5 Giao diện điện Error! Bookmark not defined.
2.2 Các yêu cầu đối với bộ điều khiển host Error! Bookmark not defined.
2.2.1 Trạng thái móc nối Error! Bookmark not defined.
2.2.2 Bộ chuyển đổi song song-nối tiếp/bộ chuyển đổi nối tiếp-song song Error! Bookmark not defined.
2.2.3 Quá trình tạo khung Error! Bookmark not defined.
2.2.4 Quá trình xử lý dữ liệu Error! Bookmark not defined.
2.2.5 Phương tiên giao thức Error! Bookmark not defined.
2.2.6 Điều khiển lỗi truyền Error! Bookmark not defined.
2.3 Tổng quan về những kỹ thuật phần mềm Error! Bookmark not defined.
2.3.1 Cấu hình thiết bị Error! Bookmark not defined.
2.3.2 Quản lý tài nguyên Error! Bookmark not defined.
2.3.3 Truyền dữ liệu Error! Bookmark not defined.
2.3.4 Định nghĩa chung về dữ liệu. Error! Bookmark not defined.
2.4 Thiết bị điều khiển host Error! Bookmark not defined.
2.5 Bộ điều khiển bus nối tiếp đa năng Error! Bookmark not defined.
2.5.1 Tổng quan Error! Bookmark not defined.
2.5.1.1 Khởi tạo Error! Bookmark not defined.
2.5.1.2 Cách dùng đường dẫn USBD Error! Bookmark not defined.
2.5.1.3 các khả năng của dịch vụ Error! Bookmark not defined.
2.5.2 Những yêu cầu cơ chế lệnh của USBD Error! Bookmark not defined.
2.5.2.1 Điều khiển tình trạng giao diện Error! Bookmark not defined.
2.5.2.2 Điều khiển trạng thái đường dẫn Error! Bookmark not defined.
2.5.2.3 Thiết lập các bộ mô tả Error! Bookmark not defined.
2.5.2.4 Thiết lập cấu hình hiện hành Error! Bookmark not defined.
2.5.2.5 Thêm thiết bị Error! Bookmark not defined.
2.5.2.6 Loại bỏ thiết bị Error! Bookmark not defined.
2.5.2.7 Quản lý các trạng thái Error! Bookmark not defined.
2.5.2.8 Gửi lớp các lệnh Error! Bookmark not defined.
2.5.2.9 Gửi lệnh nhà cung cấp Error! Bookmark not defined.
2.5.2.3 Xác minh các thiết lập xen kẽ Error! Bookmark not defined.
2.5.2.11 Xác minh một cấu hình Error! Bookmark not defined.
Trang 32.5.2.12 Thiết lập các bộ mô tả Error! Bookmark not defined.
2.5.2.13 Xác minh kích thước gói cực đại cho một đường dẫn Error! Bookmark not defined.
2.5.3.14 Các có chế dường dẫn USBD Error! Bookmark not defined.
2.5.3 Các kiểu đường dẫn được hỗ trợ Error! Bookmark not defined.
2.5.3.1 Truyền dữ liệu đồng bộ Error! Bookmark not defined.
2.5.3.2 Các yêu cầu cơ chế đường dẫn USBD Error! Bookmark not defined.
2.5.4 Quản lý USB thông qua các cơ chế USBD Error! Bookmark not defined.
2.5.4.1 Các dịch vụ cấu hình Error! Bookmark not defined.
2.5.4.2 Quản lý bus và thiết bị Error! Bookmark not defined.
2.5.4.3 Điều khiển công suất Error! Bookmark not defined.
2.5.4.4 Những thông báo sự kiện Error! Bookmark not defined.
2.5.4.5 Các trạng thái thông báo và các dịch vụ khôi phục lỗi Error! Bookmark not defined.
2.6 Hường dẫn môi trường hệ điều hành Error! Bookmark not defined Chương 3 Thiết bị USB Error! Bookmark not defined
3.1 Các trạng thái thiết bị USB (USB Device States) Error! Bookmark not defined.
3.1.1 Các trạng thái nhìn thấy được (Visible Device States) Error! Bookmark not defined.
3.1.1.1 Attached: Error! Bookmark not defined.
3.1.1.2 Cấp nguồn: Error! Bookmark not defined.
3.1.1.3 Mặc định Error! Bookmark not defined.
3.1.1.4 Địa chỉ Error! Bookmark not defined.
3.1.2 Liệt kê bus (Bus Enumeration) Error! Bookmark not defined.
3.2 Các hoạt động chung của thiết bị USB Error! Bookmark not defined.
3.2.1 Gắn vào và gỡ ra động Error! Bookmark not defined.
3.2.2 Chỉ định địa chỉ Error! Bookmark not defined.
3.2.3 Cấu hình Error! Bookmark not defined.
3.2.4 Truyền dữ liệu Error! Bookmark not defined.
3.2.5 Quản lý nguồn cung cấp Error! Bookmark not defined.
3.2.6 Xử lý yêu cầu Error! Bookmark not defined.
3.2.6.1 Yêu cầu xử lý thời gian Error! Bookmark not defined.
3.2.6.2 Thời gian Khởi động lại/khôi phục Error! Bookmark not defined.
3.2.6.3 Xử lý SetAddress Error! Bookmark not defined.
3.2.6.4 Các yêu cầu về thiết bị chuẩn Error! Bookmark not defined.
3.2.6.5 Các yêu cầu cho lớp đặc biệt Error! Bookmark not defined.
3.2.6.6 Các bộ mô tả phụ thuộc vào tốc độ. Error! Bookmark not defined.
3.2.7 Lỗi yêu cầu Error! Bookmark not defined.
3.3 Các yêu cầu thiết bị USB Error! Bookmark not defined.
3.3.1 Loại bmRequest Error! Bookmark not defined.
3.3.2 bRequest Error! Bookmark not defined.
3.3.3 wValue Error! Bookmark not defined.
3.3.4 wIndex Error! Bookmark not defined.
3.3.5 wLength Error! Bookmark not defined.
3.4 Các yêu cầu thiết bị chuẩn Error! Bookmark not defined.
3.4.1 Xoá chức năng Error! Bookmark not defined.
3.4.2 Nhận diện cấu hình (GetConfiguration) Error! Bookmark not defined.
Trang 43.4.3 Nhận diện bộ mô tả (Get Descriptor) Error! Bookmark not defined.
3.4.4 Nhận diện giao diện (Get Interface) Error! Bookmark not defined.
3.4.5 Nhận diện trạng thái (Get Status) Error! Bookmark not defined.
3.4.6 Thiết lập địa chỉ Error! Bookmark not defined.
3.4.7 Thiết lập cấu hình Error! Bookmark not defined.
3.4.8 Thiết lập bộ mô tả Error! Bookmark not defined.
3.4.9 Thiết lập chức năng Error! Bookmark not defined.
3.4.10 Set Interface Error! Bookmark not defined.
3.4.11 Đồng bộ khung (Synch Frame) Error! Bookmark not defined.
3.5 Các bộ mô tả Error! Bookmark not defined.
3.6 Định nghĩa bộ mô tả chuẩn USB Error! Bookmark not defined.
3.6.1 Thiết bị Error! Bookmark not defined.
3.6.2 Device_Qualifier Error! Bookmark not defined.
3.6.3 Cấu hình Error! Bookmark not defined.
3.6.4 Cấu hình tốc độ khác. Error! Bookmark not defined.
3.6.5 Giao diện Error! Bookmark not defined.
3.6.6 Điểm cuối Error! Bookmark not defined.
3.6.7 Chuỗi Error! Bookmark not defined.
3.7 Định nghĩa lớp thiết bị Error! Bookmark not defined.
3.7.1 Bộ mô tả Error! Bookmark not defined.
3.7.2 Cách dùng giao diện và điểm cuối. Error! Bookmark not defined.
defined
4.1 Thiết kế Error! Bookmark not defined.
4.1.1 Yêu cầu Error! Bookmark not defined.
Yêu cầu tối thiểu đối với một thiết bị USB là: Error! Bookmark not defined.
4.1.2 Các vấn đề được cung cấp bởi PIC Error! Bookmark not defined.
4.1.3 Các vấn đề được cung cấp bởi người dùng:Error! Bookmark not defined.
4.1.3 Truyền thông giữa các ứng dụng và các thiết bị Error! Bookmark not defined.
4.2 Bus nối tiếp đa năng Error! Bookmark not defined.
4.2.1 Truyền dữ liệu nối tiếp: Error! Bookmark not defined.
4.2.2 Các kiểu truyền USB (Xem chương 2) Error! Bookmark not defined.
4.2.3 Nguyên lý hoạt động của cổng USB Error! Bookmark not defined.
4.2.4 Giao thức truyền tin USB Error! Bookmark not defined.
4.3 Mạch điều khiển máy tính dùng PIC 18F4550 Error! Bookmark not defined.
4.3.1 Sơ đồ nguyên lý Error! Bookmark not defined.
4.3.2 Các ví dụ thí nghiệm: Error! Bookmark not defined.
4.4 Đo lường qua USB Error! Bookmark not defined.
4.4.1 Các phương thức cách ly. Error! Bookmark not defined.
4.4.2 Biện pháp cách ly trong đo lường Error! Bookmark not defined Kết luận Error! Bookmark not defined Tài liệu tham khảo Error! Bookmark not defined Phụ lục Error! Bookmark not defined.
Giới thiệu về PIC 18F4550 Error! Bookmark not defined.
* Sơ đồ thứ tự và chức năng các chân của PIC 18F4550 mô tả như hình A.1 Error! Bookmark not defined.
Trang 5* Chức năng của các chân Error! Bookmark not defined.
* Cấu trúc phần cứng về USB trên vi điều khiển PIC 18F4550Error! Bookmark not defined.
* Các thanh ghi điều khiển: Error! Bookmark not defined.
Các ngắt USB Error! Bookmark not defined.
Xung đồng hồ: Error! Bookmark not defined.
DANH MỤC CÁC BẢNG
Bảng 1.1: Bảng so sánh tương đối giữa một số chuẩn truyền thống nối tiếp 9
Bảng 3.1: Khung dữ liệu Setup 43
Bảng 3.2: Các yêu cầu thiết bị chuẩn. 45
Bảng 3.3: Các mã yêu cầu chuẩn 45
Bảng 3.4: Các loại bộ mô tả 46
Bảng 3.5: Bảng lựa chọn chức năng. 46
Bảng 3.6: Các bộ chọn chế độ kiểm tra 53
Bảng 3.7: Bộ mô tả thiết bị chuẩn 57
Bảng 3.8: Bộ mô tả Device_Qualifier 58
Bảng 3.9: Bộ mô tả cấu hình chuẩn 60
Bảng 3.10: Bộ mô tả cấu hình tốc độ khác 60
Bảng 3.11: Bộ mô tả giao diện chuẩn 62
Bảng 3.12: Bộ mô tả điểm cuối chuẩn 64
Bảng 3.13: Các giá trị wMaxPacketSize cho số lượng công việc khác nhau trên một siêu khung 65
Bảng 3.14: Bộ mô tả chuỗi 0, Các ngôn ngữ đặc biệt được thiết bị hỗ trợ 66
Bảng 3.15: Bộ mô tả chuỗi UNICODE 66
Trang 6DANH MỤC CÁC HÌNH VẼ
Hình 1.1: Ví dụ minh họa phân chia dải thông cho các thiết bị USB 8
Hình 1.2: Các đầu nối USB 10
Hình 1.3: Cáp USB và ký hiệu màu dây 11
Hình 2.1: Phương thức truyền thông của lớp lõi 12
Hình 2.2: Các quá trình truyền thông 13
Hình 2.3: Quá trình tạo khung 18 18
Hình 2.4: Sự tương tác của cấu hình 22 22
Hình 2.5 Cấu trúc Driver của Bus nối tiếp đa năng 26
Hình 3.1: khung wIndex khi chỉ ra một điểm cuối 44
Hình 3.2: Khung của wIndex khi đã biết một giao diện 44
Hình 3.3: Ví dụ về số điểm cuối phản hồi 65
Hình 3.4: Ví dụ về mối quan hệ giữa các điểm cuối phản hồi 65
Hình 4.1: Quá trình truyền thông trong hệ thống USB 68
Hình 4.2: Mạch điều khiển máy tính dùng PIC18F4550 có sơ đồ nguyên lý 75
Hình 4.3: Hình ảnh thiết bị điều khiển máy tính 76
Hình 4.4: Kết quả thu được sau khi kết nối mạch với máy tính 79
Hình 4.5: module thu thập dữ liệu, được xây dựng cho PIC, USB hoặc bất cứ chuẩn bus nào khác, có một phần truyền thông và một phần đó lường 81
Hình 4.6: Đất vòng có thể cuất hiện khi các bộ phận tách biệt của thiết bị dùng chung đất 82
Hình 4.7: Những điện áp cùng kiểu di chuyển cả hai phía của đường truyền tín hiệu cân bằng đối xứng với đất 83
Hình 4.8: Các phương thức cách ly hệ thống đo lường 84
Hình 4.9: Kiến trúc mô đun đo lường USB cách ly 85
Hình 4.10: Sử dụng mô đun USB cách ly để đo nguồn pin lối ra 86
Hình A.1: Sơ đồ chân của PIC 18F4550 88
Trang 7Hình A.2: Mô tả chân thực hiện thao tác Reset 89
Hình A.3: Cấu trúc của PIC 18F4550 90
Hình A.3: Cấu trúc của PIC 18F4550 91
HìnhA.5: Mô tả USB RAM 91
Hình A.6: Bộ mô tả bộ nhớ đệm 92
MỞ ĐẦU
Bus nối tiếp đa năng USB (Universal Serial Bus) là một loại Bus xuất hiện trên các máy tính PC gần đây Loại bus này đang được sử dụng để kết nối tất cả các thiết bị ngoại vi với máy tính PC như chuột, bàn phím, máy in, thiết bị âm thanh,…Ban đầu bus này được thiết kế cho các ứng dụng với tốc độ thấp và trung bình, nhưng có thể ghép nối được nhiều loại thiết bị khác nhau, của nhiều hãng vào một bus chung
USB được đưa vào sử dụng lần đầu tiên vào năm 1996, nhưng phải đến giữa năm 1998 USB mới thực sự được phát triển Các thông số kỹ thuật của USB đã được các công ty lớn cùng tham gia xây dựng, trong đó phải kể đến Compaq, Digital Equipment, IBM, Intel, NEC và Northern Telecom,… Sự hỗ trợ USB thể hiện qua Win32 Driver Model (WMD) và nhờ vậy cho phép lập trình các phần mềm điều khiển thống nhất dùng cho Win 9x, NT, XP Trong các hệ điều hành ra đời từ năm 1998 đã
có sự hỗ trợ đầy đủ cho USB (ví dụ: Win98, NT5.0) Trên thực tế, trong các phiên bản nâng cấp của Win95 (từ phiên bản OEM-2.1) đã bắt đầu có tính năng hỗ trợ Từ phiên bản OSR-2.0 của Win95, sự hỗ trợ cho USB đã thể hiện từ chương trình cài đặt
Trong PC, USB là một bus nối tiếp, được đưa ra sử dụng năm 1996, nhưng phải đến giữa năm 1998 mới được phát triển rộng rãi Hai phiên bản phổ biến của USB được sử dụng là 1.0 và 2.0 Do loại 1.0 có tốc độ truyền thấp (max=12Mbps), nên được thay thế bằng loại nó 2.0 (max=480Mbps) Bus USB liên quan chặt chẽ đến đặc tính cắm là chạy ở các máy tính PC đời mới Trong khi máy tính đang hoạt động, các thiết bị USB có thể được đấu nối trực tiếp luôn với máy tính mà không cần phải RESTART Hệ thống tự nhận biết có thiết bị kết nối với máy tính và tự động tải DRIVER thích hợp Cổng USB có thể lấy điện áp một chiều 5V với dòng cực đại là 100mA
Trang 8Luận văn gồm 4 chương:
Chương 1: Giới thiệu tổng quan về bus nối tiếp đa năng USB
Chương 2: Host USB: Phần cứng và phần mềm Giới thiệu về đường dẫn cơ bản và các mối quan hệ nội tại của phương thức truyền thông của USB
Chương 3 Thiết bị USB Chương này mô tả các tính năng và hoạt động phổ biết ở lớp giữa của thiết bị USB Các thuộc tính và hoạt động này được dùng bởi quá trình phân chia chức năng đặc biệt cho thiết bị để giao tiếp thông qua giao diện bus và cuối cùng là giao tiếp với máy chủ
Trang 9CHƯƠNG 1 TỔNG QUAN VỀ USB
1.1 Những nét chung về Bus USB
USB là một bus nối tiếp, dữ liệu trên bus được truyền tương tự như cổng nối tiếp, cụ thể là từng bit kế tiếp nhau Một điều đáng chú ý là, dữ liệu được truyền trên cùng một đường dẫn theo hai hướng, trong khi theo tiêu chuẩn RS-232 dữ liệu được truyền trên hai đường dẫn khác nhau, mỗi đường chỉ theo một hướng USB cho phép đấu nối đến 127 thiết bị, cũng chính vì vậy mà được gọi là một bus Mỗi thiết bị đấu nối vào bus nhận được một địa chỉ và cũng chính qua địa chỉ này thiết bị có thể trao đổi dữ liệu với PC cũng như các thiết bị khác
Về mặt tốc độ, USB nhanh hơn RS-232 nhiều, dữ liệu có thể được truyền với tôc độ đến 12Mbps trên các đường dẫn tín hiệu Tất nhiên dải thông được phân chia cho tất cả các thiết bị đấu nối với bus Với USB-1.0, tốc độ lên trên 12Mbps/một kênh con ( subchanel), 1,5Mbps cho các thiết bị có tốc độ thấp (chuột), còn USB-2.0 trên 480Mbps nhưng vẫn giữ tính tương thích với phiên bản 1.0
USB có mối liên quan chặt chẽ với đặc tính "Cắm Là Chạy; Plug and Play" ở các PC đời mới Trong khi máy tính đang hoạt động, thiết bị có thể được đấu vào hoặc tháo ra mà không cần cắt điện nguồn nuôi cho máy tính Đặc tính này gọi là đấu/ngắt nóng Hệ thống nhận biết một USB mới được đấu vào và lập tức nạp phần mềm điều khiển (tệp đệm) thích hợp
Các đặc tính cơ bản của USB :
• Các cuộc truyền là đẳng thời (isochonous), có thể hiểu là truyền "liên tục", hỗ trợ các tín hiệu video và sound Với các cuộc truyền đẳng thời, các cuộc truyền và nhận dữ liệu theo kiểu được đảm bảo và có thể đoán trước (predictable)
• USB cũng hỗ trợ các thiết bị không đẳng thời hay thiết bi có quyền ưu tiên cao nhất, các thiết bị đẳng thời lẫn không đẳng thời có thể tồn tại cùng một thời điểm
• Các thông số kỹ thuật cũng có thông số là Plug and Play, các cáp nối và cách kết nối đều được tiêu chuẩn hoá rộng rãi trong công nghiệp
• Các hub được xếp thành nhiều tầng (Multiple-tiered) với khả năng mở rộng gần đến mức rất lớn (có thể đến 127 thiết bị vật lý), và các thao tác xảy ra đồng thời
• Tốc độ truyền USB2.0: 1,5/12/480 Mbps (low/full/high), với các kích thước gói khác nhau
• Hỗ trợ nhiều ưu cầu dải thông thiết bị từ một vài Kbps đến 480 Mbps
• Hỗ trợ tốc độ truyền dữ liệu của thiết bị trên một pham vi rộng các giá trị thông qua việc điều tiết kích thước bộ đệm các gói dữ liệu và cơ chế tiềm ẩn (latency)
• Có khả năng cắm nóng (hot-plug), nghĩa là cho phép các thiết bị ngoại vi có thể được đấu nối mà không cần phải cắt nguồn nuôi cho PC, có thể đấu/ngắt và thay đổi lại cấu hình thiết bi ngoại vi một cách linh hoạt
Trang 10• Khả năng quản lý năng lượng được tăng cường với các chế độ "ngủ" và
• Có cơ chế xử lý lỗi/hoàn trả lỗi
• Hỗ trợ khả năng nhận dạng các thiết bị mắc lỗi
• Giao thức đơn giản trong việc thực hiện và tích hợp USB là cấu trúc bus cần bằng Trong quá trình hoạt động, máy chủ USB điều khiển dải thông của hệ thống Mỗi thiết bị được gán một địa chỉ mặc định khi thiết bi USB được cấp điện lần đầu tiên hoặc được reset Các hub và các thiết bị chức năng được gán một địa chỉ thiết bị giả định duy nhất bởi phần mềm USB
Một đặc điểm cơ bản khác của USB là điện áp nguồn nuôi (+5V) có thể nhận được từ bus Các thiết bị có công suất tiêu thu nhỏ có thể sử dụng trực tiếp nguồn trên bus (ví dụ: USB flash disk, iPod,…) Đối với những thiết bị công suất lớn hơn (như máy Scan…) giao tiếp với PC qua USB thì nên có nguồn nuôi riêng, nếu là loại có nguồn nuôi lấy trực tiếp từ cổng USB thì phải cân nhắc kỹ trước khi sử dụng, liệu công suất bộ nguồn PC có đủ cung cấp, và dòng ra cho phép của cổng USB trên mainboard
Khung 1ms
Hình 1.1: Ví dụ minh họa phân chia dải thông cho các thiết bị USB
Trang 11có đáp ứng được không
(thường thì I_out.max = 500mA); mặc dù tất cả đều có mạch bảo vệ quá tải hay quá dòng, khi dòng ra tổng đạt đến 5A , nhưng tốt nhất ta nên tránh
1.2 Đầu nối và cáp USB
USB có hai kiểu đầu nối khác nhau: kiểu A và kiểu B USB kiểu B là cổng USB nhỏ gọn thường gặp trên các loại máy chụp hình, điện thoại di động, iPod,… USB kiểu A là kiểu bình thường mà ta hay gặp trên PCs, digital camera, webcam
Bảng 1.1: Bảng so sánh tương đối giữa một số chuẩn truyền thống nối tiếp.
Trang 12divices,…
USB kiểu A bao gồm một hàng chân đánh số 4 3 2 1 còn kiếu B gồm hai hàng chân song song đánh số 1 2 4 3 (nhìn đối điện, đếm chữ Z ,từ trái qua phải, từ trên xuống dưới)
Hệ thống được thiết kế sao cho không xảy ra hiện tượng đấu nối nhầm Khác với chuẩn RS-232, việc kết nối ở USB không chia ra những kiểu đấu khác nhau như nối thẳng hay bắt chéo
USB sử dụng cáp 4 lõi (chính), trong đó D+ và D- là hai sợi cáp xoắn chéo nhau và truyền dữ liệu dưới dạng vi phân, GND thường là lớp bọc kim bên ngoài, còn lại là +5VDC và cáp nối luôn được liên kết 1:1
Việc chuyển đổi qua lại giữa 2 loại B được thông qua đầu nối chuyển đổi
A-B Các cáp nối, chuyển đổi USB được các nhà sản xuất cung cấp đưới dạng hoàn chỉnh, trên đó : đầu cắm, độ dài cáp, độ xoắn D+/D-, chất lượng lớp bọc kim chống nhiễu đã được tối ưu và chuẩn hóa nên không thể thay đổi được, vì tốc độ truyền của
Hình 1.2: Các đầu nối USB
Đầu nối USB loại A Đầu nối và cáp chuyển A-B
(Trái-Phải)
Trang 13USB là rất cao và phương thức truyền cũng khá phức tạp vì vậy tuỳ theo mục đích sử dụng mà ta phải chọn cho đúng loại cáp (từ chiều dài cho đến loại đầu nối)
Ngoài ra để hỗ trợ cho người dùng có thể tự chế tạo các module ghép nối qua USB, các nhà chế tạo cũng có sẵn các đế cắm USB đơn có chân để hàn lên mạch in Một điểm đáng lưu ý là, USB có thể có các tốc truyền dữ liệu khác nhau (low-speed, full-speed và high-speed) thế nên sẽ ngẫu nhiên xảy ra tình huống là một thiết bị USB tốc độ cao lại được đấu nối vào một cái khác có tốc độ thấp hơn (Ví dụ: high-speed USB flash disk được cắm vào đầu cắm low-speed USB của PC có mainboard đời cũ), hay một thiết bị USB tốc độ cao lại được đấu nối vào PC qua một cáp nối tốc độ thấp
Để khắc phục tình trạng này, tất cả các thiết bị có USB đều được trang bị hệ thống phần cứng và phần mềm thích nghi và tất cả các cáp nối đều là loại tốc độ cao Loại cáp tốc độ thấp được chỉ định cho những trường hợp ứng dụng cụ thể và được nhà sản xuất ghi rõ (ví dụ cáp nối dùng cho chuột USB); còn những ứng dụng video đều sử dụng cáp tốc độ cao
Ổ cắm USB trên PC có thể lấy ra +5VDC với dòng tiêu thụ khoảng 100mA, và max khoảng 500mA, tùy theo sự hỗ trợ của main, nhưng phải cân nhắc khi sử dụng Hai đường dẫn D+ và D- cũng cho phép đấu nối với các linh kiện hỗ trợ USB như Vi-Điều-Khiển ( Micro-Controller) hay chip biến đổi tương tự/số - USB (USB-ADC chips )…
Tín hiệu trên các chân D+ D- là các tín hiệu vi phân với mức điện áp bằng 0/3,3
V được cấp từ vi mạch ổn áp (vi mach lấy nguồn vào +5V và ổn áp cho đầu ra ở mức +3,3V và do đó điện áp nguồn nuôi USB có thể dao động trong khoảng +5,25Vđến
Hình 1.3: Cáp USB và ký hiệu màu dây
Trang 14+4,2V)
CHƯƠNG 2 HOST USB: PHẦN CỨNG VÀ PHẦN MỀM
2.1 Tổng quan về host của USB
Đường dẫn cơ bản và các mối quan hệ nội tại của phương thức truyền thông của USB được chỉ trong hình 2.1.[3]
Host và thiết bị được phân thành các lớp riêng biệt được mô tả trong hình 2.1 Truyền thông thực trên host được biểu diễn dọc theo các cột Các giao diện tương ứng trên thiết bị được bổ sung cụ thể Tất cả quá trình truyền thông giữa host và thiết bị đều diễn ra trên dây USB vật lý Tuy nhiên, có các giao diện host - thiết bị logic giữa mỗi lớp theo hàng Các quá trình truyền thông này, giữa phần mềm ngoại vi cư trú trên host và chức năng của nó do host cung cấp, đó là chức năng được quy định dựa trên sự cần thiết của ứng dụng hiện tại của thiết bị và khả năng mà thiết bị đó cung cấp
Sự tương tác giữa thiết bị ngoài - chức năng tạo lên các nhu cầu cho tất cả các lớp bên dưới và các giao diện của chúng
Trong chương này mô tả phương thức này từ cách thức kết nối host và các lớp của nó Hình 2.2 mô tả quá trình truyền thông của host với thiết bị.[3]
TB ngoài
HT USB
Giao diện bus USB
TB USB Chức năng
Giao diện bus USB Host Liên kết thiết bị
Đường truyền thông thực Đường truyền thông logic
Hình 2.1: Phương thức truyền thông của lớp lõi
Trang 15
Các giao diện quản
lý ngoại vi
Phần mềm Host
Bó đường dẫn (tới một giao diện)
Đường dẫn mặc định (tới điểm cuối 0) USB Driver
HC
Bộ điều khiển Host
Giao diện bus USB
Cấu hình IRPs
Xử lý trong quá trình truyền thông
Đường dẫn, mô tả sự kết nối giữa hai lớp cùng mức
Hình 2.2: Các quá trình truyền thông
Thành phần tuỳ chọn
Trang 16Chỉ có một host cho mỗi USB Các lớp chính của host là:
- Giao diện bus USB
- Hệ thống USB
- Các thiết bị ngoài
Giao diện bus USB bắt tay với lớp điện và lớp giao thức Từ cách thức kết nối, một giao diện bus USB được cung cấp bởi cả thiết bị USB và host, như đã được minh họa bởi thiết bị giao diện nối tiếp (SIE) Tuy nhiên, ở trên host giao diện bus USB chịu thêm trách nhiệm do rơ le duy nhất của host trên USB và nhiệm vụ như bộ điều khiển host Bộ điều khiển host cũng được tích hợp, hoặc hub gốc có các điểm gá lắp tới host
Hệ thống USB sử dụng bộ điều khiển host quản lý các quá trình trao đổi dữ liệu giữa host và thiết bị USB Giao diện giữa hệ thống USB và bộ điều khiển host dựa trên sự xác định phần cứng của bộ điều khiển host Hệ thống USB phối hợp với bộ điều khiển host, thực hiện việc chuyển đổi giữa cách thức thiết bị ngoài truyền dữ liệu
và sự giao tác của USB đang có mặt trên kết nối giữa chúng Điều này làm tăng khẳ năng hỗ trợ tính năng của USB như là các trình bao bọc giao thức Hệ thống USB cũng
có trách nhiệm quản lý tài nguyên USB: ví dụ như độ rộng băng tần hợp lý để truy nhập tới USB
mà hỗ trợ những thực thi khác nhau của bộ điều khiển host
USBD cung cấp các cơ chế truyền dữ liệu ở dạng các gói yêu cầu vào ra (IRPs), trong đó các yêu cầu truyền dữ liệu trên một đường dẫn riêng
Ngoài việc cung cấp các cơ chế truyền dữ liệu, USBD có trách nhiệm giải thích cho các ngoại vi của nó khi gặp một thiết bị USB tách ra có thể vận dụng cho việc cấu hình và quản lý trạng thái Với phần tách ra này, thì USBD sở hữu đường dẫn mặc định thông qua tất cả các thiết bị USB được truy nhập với mục đích điều khiển USB chuẩn Đường dẫn mặc định này mô tả một quá trình truyền thông logic giữa USBD và quá trình tách ra của một thiết bị được mô tả như hình 2.2
Trang 17Ở một số hệ điều hành, việc bổ sung phần mềm host không có USB là sẵn có,
nó cung cấp cấu hình và các cơ chế nạp cho các driver của thiết bị Trong các hệ điều hành, driver của thiết bị sẽ sử dụng các giao diện được cung cấp thay vì việc truy nhập trực tiếp vào các cơ chế USBDI
Lớp ngoại vi mô tả tất cả sự tồn tại của phần mềm đó, phần mềm chịu trách nhiệm tương tác trực tiếp với các ngoại vi của chúng Khi mỗi thiết bị độc lập được gắn vào hệ thống, các ngoại vị này có thể tương tác trực tiếp với phần cứng ngoại vi Các đặc điểm được chia sẻ của USB đưa vào một ngăn xếp phần mềm USB giữa ngoại
vi và thiết bị của nó; đó là một ngoại vi không được truy nhập trực tiếp tới phần cứng của thiết bị
Nhìn chung, các lớp host cung cấp các khả năng sau đây:
- Phát hiện các thiết bị USB đính kèm và gỡ ra
- Quản lý luồng điều khiển USB chuẩn giữa host và thiết bị USB
- Quản lý luồng dữ liệu giữa host và thiết bị USB
- Thu thập trạng thái và các số liệu thống kê
- Điều khiển giao diện điện giữa host và thiết bị USB, bao gồm cả việc cung cấp giới hạn nguồn cung cấp
Các phần sau mô tả chi tiết hơn các nhiệm vụ và các yêu cầu trên USBDI Các giao diện hiện thời được sử dụng cho sự kết hợp đặc biệt nền host và hệ điều hành được mô tả trong hướng dẫn môi trường hệ điều hành
Tất cả các hub cung cấp một đường dẫn thay đổi trạng thái sẽ thông báo sự thay đổi trạng thái của các hub và các cổng của chúng Đường dẫn thay đổi trạng thái gồm một thông báo của thiết bị USB được đi kèm hoặc bị loại bỏ từ một trong các cổng của chúng
Một ngoại vị USBD nói chung được biết đến như driver hub nhận được các thông báo này là chủ sở hữu của đường dẫn thay đổi trạng thái của hub Đối với các thiết bị đi kèm, được xử lý sau khi driver hub bắt đầu quá trình xử lý cấu hình thiết bị Trong một số hệ thống, driver hub này là một phần của phần mềm host được cung cấp bởi hệ điều hành cho các thiết bị quản lý
2.1.2 Cơ chế điều khiển
Thông tin điều khiển có thể sẽ được truyền qua giữa host và một thiết bị USB, nhờ sử dụng tín hiệu ở trong giải thông hay ngoài giải thông Tín hiệu trong giải trộn thông tin điều khiển với dữ liệu ở trong một đường dẫn nằm ngoài của host Tín hiệu ngoài dải đưa thông tin điều khiển lên một đường dẫn riêng
Đường dẫn thông báo gọi là đường dẫn mặc định cho mỗi thiết bị USB được gắn với nó Sự kết hợp logic giữa một host với một thiết bị USB này được sử dụng cho luồng điều khiển chuẩn USB như là bảng liệt kê và hình dạng thiết bị Đường dẫn mặc định cung cấp một giao diện chuẩn cho tất cả các thiết bị USB Đường dẫn mặc định
Trang 18này cũng có thể được sử dụng cho những quá trình truyền thông giữa các thiết bị đặc biệt, như USBD gián tiếp mà bản thân đường dẫn mặc định của tất cả các thiết bị USB
Một thiết bị USB có thể cho phép sử dụng thêm các đường dẫn thông báo để chuyển thông tin điều khiển thiết bị đặc biệt Các đường dẫn này dùng giống như giao thức truyền thông của đường dẫn mặc định, nhưng thông tin được chuyển chi tiết tới thiết bị USB và không được đặc tả bus nối tiếp đa năng chuẩn hóa
USBD hỗ trợ chia sẻ đường dẫn mặc định với các thiết bị ngoài của nó Nó cũng cung cấp truy nhập tới các đường dẫn điều khiển khác kết hợp với thiết bị
- Truyền khối (bulk)
Mỗi thiết bị đưa ra một hoặc nhiều giao diện mà một thiết bị ngoài có thể dùng
để truyền thông vói nó Mỗi giao diện không có hoặc có nhiều đường dẫn sóng để dữ liệu truyền lần lượt giữa thiết bị ngoại vi và một điểm cuối độc lập trên thiết bị USBD thiết lập các giao diện và các đường dẫn khi có yêu cầu rõ ràng của phần mềm host Bộ điều khiển host cung cấp dịch vụ dựa trên các thông số được cung cấp bởi phần mềm host khi có yêu cầu về cấu hình
Một đường dẫn có một vài đặc tính dựa trên các yêu cầu đưa ra của dữ liệu ược truyền, ví dụ các đặc tính này là: tốc độ tại nơi mà dữ liệu cần truyền, dữ liệu có đ-ược cung cấp hay không tại một tốc độ ổn định hay không ổn định, dữ liệu dài bao nhiêu có thể bị trễ trước khi phát, và mất mát dữ liệu truyền lớn hay nhỏ
đ-Một điểm cuối của thiết bị USB mô tả các đặc tính được yêu cầu cho một đường dẫn Các điểm cuối được mô tả như là một phần của một thông tin về tính chất của thiết bị USB
2.1.4 Tình trạng tập chung và số liệu thống kê hoạt động
Như là một thông tin chung cho tất cả quá trình điều khiển và truyền dữ liệu giữa host và thiết bị USB, hệ thống USB và bộ điều khiển host được bố trí hợp lý để theo dõi tình trạng và thông tin hoạt động Các thông tin như vậy được cung cấp nhờ vào yêu câu của phần mềm host cho phép phần mềm đó quản lý tình trạng và thông tin hoạt động
2.1.5 Giao diện điện
Máy chủ cung cấp nguồn cho thiết bị USB được gán cho hub gốc Giá trị thực của nguồn được cung cấp từ một cổng
Trang 192.2 Các yêu cầu đối với bộ điều khiển host
Trong tất cả các quá trình thực hiện, các bộ điều khiển host thực hiện các nhiệm
vụ cơ bản như nhau liên quan tới USB và những thiết bị gắn liền với nó Các nhiệm vụ
cơ bản này được mô tả sau đây
Bộ điều khiển host nhận được những yêu cầu từ cả host và USB
- Trạng thái móc nối: Là một phần của host, bộ điều khiển host lưu giữ và
thông báo các trạng thái của nó
- Bộ chuyển đổi song song-nối tiếp/bộ chuyển đổi nối tiếp-song song: Đối với
dữ liệu được truyền từ host, bộ điều khiển host chuyển đổi giao thức và thông tin dữ liệu từ dạng tự nhiên của nó thành dạng một dòng bít được truyền trên USB Đối với
dữ liệu được nhận vào trong host, thì nó thực hiện đảo dữ liệu
- Quá trình tạo khung: Bộ điều khiển host tạo ra các mã SOF với thời gian 1
ms
- Xử lý dữ liệu: Bộ điều khiển host xử lý các yêu cầu của quá trình truyền dữ
liệu hai chiều tới host
- Giao thức: bộ điều khiển host hỗ trợ giao thức được USB xác định rõ
- Điều khiển lỗi truyền: Tất cả các bộ điều khiển host đưa ra cùng cách thức
hoạt động khi phát hiện và tác động trở lại các loại lỗi đã được xác định
Sau đây sẽ giới thiệu chi tiết hơn về các yêu cầu của bộ điều khiển host
2.2.1 Trạng thái móc nối
Như một phần tiêu chuẩn của host, bộ điều khiển host có một loạt các trạng thái
mà hệ thống USB quản lý Đồng thời bộ điều khiển host có hai vùng trạng thái USB liên quan
- Hub gốc
- Trạng thái thay đổi quá trình truyền lan
Hub gốc đưa ra bộ điều khiển hub cùng trạng thái chuẩn với các thiết bị USB
Bộ điều khiển host hỗ trợ các trạng thái này và các quá trình chuyển tiếp của chúng cho hub
Toàn bộ trạng thái của bộ điều khiển host có mối liên kết chặt chẽ với trạng thái của hub gốc và của toàn bộ USB Bất kỳ sự thay đổi trạng thái của bộ điều khiển host nào mà được gán chính xác các thiết bị phải được phản ảnh trong sự thay đổi trạng thái thiết bị tương ứng sao cho kết quả thu được ở bộ điều khiển host và các trạng thái thiết
bị là chắc chắn
Các thiết bị USB đòi hỏi một khả năng nhận biết thông qua sự khôi phục lại tín hiệu, Đó là lý do các hub chia nhỏ liên kết, và các thiết bị trả lại trạng thái cấu hình Chính các bộ điều khiển host có thể tạo ra khả năng phục hồi sự kiện thông qua cùng
Trang 20phương thức báo hiệu Bộ điều khiển host phải thông báo host dừng sự kiện được khôi phục thông qua một hoặc nhiều cơ chế đặc biệt trong quá trình thực thi của hệ thống
2.2.2 Bộ chuyển đổi song song-nối tiếp/bộ chuyển đổi nối tiếp-song song
Quá trình truyền dữ liệu thực qua USB vật lý chiếm những chỗ giống như một dòng bit nối tiếp Một thiết bị giao diện nối tiếp (SIE), cho dù được thực hiện như một phần của host hoặc một thiết bị USB, thì vẫn có móc nối của quá trình biến đổi nối tiếp –song song và song song – nối tiếp của các quá trình truyền của USB Trên host, SIE này là một phần của bộ điều khiển host
2.2.3 Quá trình tạo khung
Bộ điều khiển host có trách nhiệm tạo khung để phân thời gian của USB thành các khoảng 1ms và được gọi là “khung” Các bộ điều khiển tạo ra các khung thông qua
sự phát ra các dấu hiệu bắt đấu của khung SOF (Start of Frame) ở các khoảng 1.00ms như hình 2.3.[3] Các dấu hiệu SOF truyền đầu tiên trong thời gian truyền khung Sau khi phát ra một dấu hiệu SOF, bộ điều khiển host tự do truyền các nhiệm vụ khác còn lại của thời gian khung Khi bộ điều khiển host ở trạng thái hoạt động bình thường, các dấu hiệu SOF phải liên tục được tạo ra sau mỗi 1ms, bất kể sự hoạt động của các bus khác hoặc không có điều đó Nếu các bộ điều khiển host ở trạng thái mà mó không phải cung cấp nguồn cho bus, thì nó không phải tạo ra các SOF Ngoài ra, nếu bộ điều khiển host không phải tạo ra các SOF thì nó có thể ở trạng thái nguồn cung cấp bị giảm Dấu hiệu SOF giữ quyền ưu tiên truy nhập bus cao nhất Mạch xuyên âm trong các hub cách ly điện với bất cứ hoạt động truyền nào trong thời gian kết thúc của khung EOF, cung cấp một bus nhàn rỗi trong quá trình truyền SOF
- Bộ điều khiển host phải cho phép chiều dài khung USB được điều chỉnh bởi thời gian bit là ± 1(xem phần 2.5.3.2.2) Bộ điều khiển host duy trì số khung hiện hành
mà có thể được đọc bởi hệ thống USB Số lượng khung hiện hành được dùng để nhận diện một khung duy nhất từ các khung khác
- Thêm vào cuối thời gian mỗi khung
- Các khung tiếp theo phải hợp lệ
Frame N-1 Frame N Frame N+1
SOF SOF SOF SOF Thời gian EOF (Frame N-1) Thời gian EOF (Frame N) Thời gian EOF (Frame N+1)
Host truyền 11 bit thấp nhất của số lượng khung hiện hành trong mỗi quá trình truyền dấu hiệu SOF Khi nhận được yêu cầu từ bộ điều khiển host, thì số lượng khung hiện tại là số lượng khung trong thời gian yêu cầu được hoàn thành Số lượng khung hiện hành bằng khung được host trả lại (bộ điều khiển host hoặc HCD) ít nhất là 32 bit, mặc dù chính bộ điều khiển host không cần thiết phải duy trì lớn hơn 11 bit
Bộ điều khiển host sẽ chấm rứt quá trình truyền trong thời gian EOF Khi thời
Hình 2.3: Quá trình tạo khung
Trang 21gian EOF bắt đầu, bất kỳ nhiệm vụ nào được đưa cụ thể vào trong khung đều bị dừng ngay Nếu bộ điều khiển host thực hiện một nhiệm vụ vào đúng thời điểm EOF gặp phải, thì bộ điều khiển host dừng thực hiện
2.2.4 Quá trình xử lý dữ liệu
Bộ điều khiển host có trách nhiệm nhận dữ liệu từ hệ thống USB và gửi nó tới USB, thu dữ liệu từ USB và gửi nó tới hệ thống USB Dạng chi tiết được dùng để truyền dữ liệu giữa hệ thống USB và bộ điều khiển host là sự thực thi cụ thể
2.2.5 Phương tiên giao thức
Bộ điều khiển host quản lý giao diện mức giao thức USB Nó được chèn vào thông tin giao thức thích hợp đối với các quá trình truyền đi Nó cũng lấy đi và giải thích, thích hợp thông tin giao thức đến
2.2.6 Điều khiển lỗi truyền
Bộ điều khiển host phải có khả năng phát hiện các điều kiện lỗi truyền, mà đã được xác định từ dạng host:
- Thời gian nghỉ quy định sau dấu hiệu của host được truyền hoặc gói Các lỗi này xảy ra khi điểm cuối được được gửi tới không đáp ứng ngay hoặc khi cấu trúc của quá trình truyền bị hư hỏng nặng đến mức điểm cuối ngay sau đó không nhân ra được
nó
- Các lỗi dữ liệu thu được bị mất hoặc được truyền đi không hợp lệ
+ Bộ điều khiển host gửi hoặc thu một gói ngắn hơn được yêu cầu để truyền; ví
dụ, một quá trình truyền mở rộng vượt ra ngoài giới hạn EOF hoặc thiếu nguồn tài nguyên sẵn có cho bộ điểu khiển host
+ Một trường CRC không hợp lệ trên một gói dữ liệu đã thu được
2.3 Tổng quan về những kỹ thuật phần mềm
HDC và USBD đưa ra các giao diện phần mềm dựa trên việc đưa ra các mức
Trang 22độ khác nhau Tuy nhiên, chúng đòi hỏi hoạt động cùng nhau theo một cách xác định
để đáp ứng toàn bộ các yêu cầu của hệ thống USB (xem hình 2.2) Yêu cầu khối lượng phần mềm USB được biểu thị chủ yếu như yêu cầu trên USBDI Việc phân chia nhiệm vụ giữa USBD và HCD chưa được xác định Tuy nhiên, HCDI có một yêu cầu là cần được hỗ trợ, trong trường hợp hệ điều hành đã được xác định rõ, có nhiều định nghĩa về các bộ điều khiển host
HCD cung cấp một quá trình chia sẻ bộ điều khiển host và một quá trình chia
sẻ phương thức truyền dữ liệu qua USB của bộ điều khiển host USBD cung cấp một quá trình chia sẻ thiết bị USB và việc truyền dữ liệu giữa ngoại vi của USBD và chức năng trên thiết bị USB Bao gồm, các ngăn xếp phần mềm USB có vai trò như một thiết bị tạo điều kiện thuận lợi cho dữ liệu truyền giữa ngoại vi và chưc năng, và như một trạm điều khiển cho giao diện USB cụ thể của thiết bị USB Như phần của việc truyền dữ liệu thuận lợi, phần mềm USB cung cấp khả năng quản lý bộ đệm và cho phép đồng bộ hóa quá trình chuyển giao dữ liệu tới ngoại vi và chức năng cần thiết
Những yêu cầu đặc biệt trên USBDI được mô tả ở cuối chương này Các chức năng chính xác hoàn thành những yêu cầu này được mô tả trong hướng dẫn môi trường hệ điều hành liên quan của HCDI và USBDI Những thủ tục liên quan trong việc chuyển dữ liệu đạt được qua USBDI được mô tả dưới đây
2.3.1 Cấu hình thiết bị
Những môi trường hệ điều hành khác nhau thực hiện cấu hình thiết bị bằng cách dùng những thành phần phần mềm khác nhau và các chuỗi khác nhau của các sự kiện Một phương thức của hệ điều hành cụ thể không được thừa nhận bởi hệ thống USB Tuy nhiên, có một số yêu cầu cơ bản mà bất kỳ hệ thống USB nào cũng phải thực hiện Trong một số hệ điều hành, các yêu cầu này là của phần mềm host hiện hữu Trường hợp khác, hệ thống USB sẽ cung cấp các khả năng
Hệ thống nhận một ngoại vi chuyên dụng của USBD, được gọi là một bộ điều khiển hub, bộ điều khiển hub đóng vai trò như ngân hàng thêm vào của các thiết bị và loại bỏ các thiết bị đến từ hub độc lập Khi bộ điều khiển hub nhận được thông tin giống các thông báo, nó sẽ chiếm thêm phần mềm host và các ngoại vị USBD khác, trong một loại cụ thể của hệ điều hành, để nhận biết và định hình thiết bị Phương thức này, như hình 2.4.[3]
Khi một thiết bị được gán, thì bộ điều khiển hub thu được một thông báo của hub nhận diện sự thay đổi Bộ điều khiển hub sử dụng thông tin mà hub cung cấp, yêu cầu một bộ nhận dạng thiết bị từ USBD USBD lần lượt thiết lập đường dẫn mặc định cho thiết bị đó và trả lại bộ nhận dạng thiết bị cho bộ điều khiển hub
Thiết bị bây giờ sẵn sàng được định hình để sử dụng Đối với mỗi thiết bị, có 3 kiểu cấu hình phải được hoàn thiện trước khi thiết bị đó sẵn sàng sử dụng:
1 Cấu hình thiết bị bao gồm việc thiết lập tất cả các thông số USB của thiết bị và
Trang 23cấp phát tất cả tài nguyên host USB chính xác tới thiết bị Điều này đạt được nhờ việc đặt giá trị cấu hình trên thiết bị Thiết lập giới hạn thay đổi cấu hình, như sự thiết lập xen kẽ, không cho phép cấu hình lại hoàn toàn thiết bị Khi thiết bị được cấu hình thì
sẽ sẵn sàng để sử dụng
2 Cấu hình USB: Để chắc chắn tạo ra một đường dẫn USBD dùng được ngay từ một ngoại vi, thông tin USB thêm vào, không nhận diện đựơc thiết bị, thì phải được định nghĩa bởi ngoại vi Thông tin này, được biết như cách xử lý đường dẫn, mô tả ngoại vi sẽ sử dụng đường dẫn như thế nào Số lượng dữ liệu ngoại vi lớn nhất sẽ chuyển tới một IRP, vùng dịch vụ lớn nhất ngoại vi sẽ sử dụng, nhận diện thông báo Ngoại vi…
3 Cấu hình chức năng: Khi các loại cấu hình 1 và 2 đã hoàn thành, đường dẫn hoàn toàn sẵn sàng dùng từ nhận định của USB Tuy nhiên, việc cài đặt thêm trạm hay lớp đặc biệt có thể được yêu cầu trước khi đường dẫn thực sự có thể được ngoại vi sử dụng Cấu hình này là một vấn đề riêng giữa thiết bị và ngoại vi
Những phần sau đây mô tả các yêu cầu của thiết bị và cấu hình USB
Cấu hình thiết bị thực được thực hiện bởi phần mềm cấu hình tin cậy Phụ thuộc vào việc thực thi của hệ điều hành cụ thể, phần mềm có nhiệm vụ cấu hình có thể gồm:
- Bộ điều khiển hub
- Phần mềm host khác
- Một bộ điều khiển thiết bị
Phần mềm cấu hình đầu tiên đọc bộ mô tả thiết bị, sau đó yêu cầu mô tả mỗi cấu hình khả dĩ Nó có thể sử dụng thông tin đã được cung cấp để tải một ngoại vi cá thể như là một bộ điều khiển thiết bị mà đầu tiên nó tương tác với thiết bị Phần mềm cấu hình, có thể lối ra từ driver thiết bị đó lựa chọn một cấu hình cho thiết bị Thiết lập cấu hình thiết bị thiết lập tất cả các điểm cuối trên thiết bị và trả lại một nhóm giao diện để dùng cho các ngoại vi USBD chuyển dữ liệu Mỗi giao diện là một nhóm các đường dẫn do ngoại vi hàng đơn lẻ sở hữu
Cấu hình ban đầu này thiết lập các giao diện mặc định và dải thông mặc định cho mỗi điểm cuối Một quá trình thực hiện của USBD có thể đồng thời cho phép ngoại vi chỉ rõ những giao diện xen kẽ khi lựa chọn cấu hình ban đầu Hệ thống USB
sẽ kiểm tra các tài nguyên mà đã yêu cầu hỗ trợ của điểm cuối có sẵn và cấp phát dải thông theo yêu cầu Trong mục 3.3.2 sẽ thảo luận vấn đề quản lý tài nguyên
Thiết bị được cấu hình ngay, nhưng các đường dẫn được tạo ra thì chưa dùng được ngay Cấu hình USB được hoàn thiện khi ngoại vi khởi tạo mỗi đường dẫn bằng việc đặt một cách giải quyết để chỉ rõ nó sẽ giao tiếp như thế nào với đường dẫn Trong số thông tin xác định thời gian phục vụ và thông tin thông báo ngoại vi lớn nhất Trong những hoạt động chiếm giữ của hệ thống USB, giống như kết quả của việc thiết lập cách thực thi, việc xác định ý nghĩa không gian làm việc của bộ đệm yêu cầu bên
Trang 24ngoài không gian bộ đệm dữ liệu được ngoại vi cung cấp Kính thước của các bộ đệm được yêu cầu dựa trên cách dùng được lựa chọn bởi ngoại vi và dựa trên sự chuyển đổi cần thiết của hệ thống USB
Ngoại vi nhận các thông báo khi các IRP đầy đủ, thành công hay do các lỗi Ngoại vi cũng có thể gần lệ thuộc vào thông báo USB để kiểm tra tình trạng của các IRP đang xét
Bộ điều khiển thiết
bị
HCD USBD
Bộ điều khiển hub
Hỗ trợ cấu hình phần mềm Host
Thành phần tuỳ chọn
Hình 2.4: Sự tương tác của cấu hình.
Điều khiển cấu hình Điều khiển cấu hình tuỳ chọn
Trang 25Ngoại vi cũng có thể chọn để cải tiến cấu hình như là cho phép thiết lập xen kẽ giao diện hay thay đổi dải thông được cấp phát cho một đường dẫn đặc biệt Để thực hiện những sự thay đổi này, giao diện hoặc đường dẫn tương ứng phải nhàn rỗi
2.3.2 Quản lý tài nguyên
Bất cứ khi nào một đường dẫn được USBD thiết lập cho một điểm cuối đã định sẵn, hệ thống USB phải xác định rõ liệu nó có thể hỗ trợ đường dẫn Hệ thống USB xác định khả năng hỗ trợ này dựa trên các yêu cầu đã được nói rõ trong quá trình mô tả điểm cuối Một trong những yêu cầu của điểm cuối là phải hỗ trợ để tạo ra một đường dẫn cho một điểm cuối là dải thông cần thiết cho những quá trình truyền của điểm cuối
đó Có hai giai đoạn để kiểm tra dải thông có sẵn Đầu tiên là tính toán thời gian để thực hiện một nhiệm vụ lớn nhất Sau đó, bản liệt kê khung được tham chiếu để xác định khi công việc được thông báo sẽ điều chỉnh
Sự phân chia dải thông an toàn cho các đường dẫn đẳng thời và ngắt, và việc xác định có hay không một quá trình điều khiển đặc biệt hoặc một nhiệm vụ chính sẽ
ăn khớp vào trong một khung đã định sẵn, có thể được xác định bằng phần mền phát hiện trong hệ thống USB Nếu thời gian thực hiện công việc thực tế trong bộ điều khiển host vượt giá trị quy định để xác định, bộ điều khiển host chịu trách nhiệm đảm bảo sự nguyên vẹn của khung đó được duy trì (xem mục 2.2.3) Sau đây mô tả các yêu cầu phát hiện hệ thống USB
Để xác định nếu dải thông có thể được cấp phát, hoặc nếu một công việc có thể trở nên ăn khớp vào trong một khung xác định, thì thời gian thực hiện công việc cực đại phải được tính toán Việc tính toán thời gian thực hiện công việc cực đại đòi hỏi cung cấp thông tin sau đây (chú ý rằng một số thông tin có thể do một đại diện khác với ngoại vi cung cấp)
- Số byte dữ liệu (kích thước gói cực đại) sẽ được truyền
2.3.3 Truyền dữ liệu
Cơ sở cho tất cả quá trình truyền thông tin ngoại vi chức năng là giao diện Một
bó các đường dẫn liên kết kết hợp với thiết bị USB
Một giao diện nhất định được quản lý bởi đúng một ngoại vi trên host Ngoại vi khởi tạo mỗi đường dẫn của một giao diện bằng việc đặt ra cách giải quyết cho đường dẫn đó Điều này gồm lượng dữ liệu cực đại sẽ được truyền qua do IRP và khoảng thời
Trang 26gian phục vụ cực đại cho đường dẫn Một khoảng thời gian phục vụ vào trong khoảng mili giây và mô tả toàn thời gian đó mà dữ liệu của IRP sẽ truyền trên đường dẫn đẳng thời Nó mô tả thời gian hỏi vòng của đường dẫn ngắt Ngoại vi được thông báo khi một yêu cầu được xác định là hoàn tất Ngoại vi quản lý kích thước của mỗi IRP sao cho chu kỳ làm việc và những sự ràng buộc tiềm ẩn của nó được duy trì Thông tin về
kế hoạch bổ sung gồm có thông tin thông báo cho ngoại vi
Ngoại vi cung cấp không gian bộ đệm được yêu cầu cho cả dữ liệu được truyền
Hệ thống USB dùng sự linh động để xác định hoạt động bổ sung mà nó yêu cầu
Ngoại vi nhận biết được dữ liệu của nó như một dòng tuần tự kề nhau, mà nó được quản lý ở một dạng tương tự như các dòng đó được cung cấp qua các kiểu của các công nghệ bus khác nhau Trong các hệ thống USB có thể dựa vào sự linh động và bất kỳ sự ràng buộc nào của bộ điều khiển host, chia các yêu cầu ngoại vi ra thành các yêu cầu nhỏ hơn để gửi qua USB Tuy nhiên, hai yêu cầu phải được hợp lại mỗi khi hệ thống USB được chọn để đảm nhận công việc phân chia:
- Phân chia dòng dữ liệu thành các đoạn nhỏ hơn là không nhận diện được ngoại vi
- Các mẫu USB không phải tách qua nhiệm vụ của bus
Khi ngoại vi yêu cầu truyền dữ liệu, nó sẽ gửi một IRP tới USBD Phụ thuộc vào hướng di chuyển dữ liệu, một bộ đệm dữ liệu đầy hay rỗng sẽ được cung cấp Khi yêu cầu đầy đủ (thành công hay bi lỗi), IRP và các trạng thái của nó được trở lại ngoại
vi Sự liên quan ở đây, các trạng thái này cũng được cung cấp trên cơ sở bản thân công việc
2.3.4 Định nghĩa chung về dữ liệu
Để cho phép ngoại vi thu nhận những kết quả yêu cầu càng nhanh càng tốt từ thiết bị của nó, nó được yêu cầu để giảm lượng công việc cần xử lý và sao chép được yêu cầu giữa thiết bị và ngoại vi
Để tạo điều kiện thuận lợi cho điều này, một số hướng điều khiển của IRP được tiêu chuẩn hóa để thông tin ngoại vi cung cấp có thể các lớp khác sẽ được dùng trực tiếp trong ngăn xếp Dạng đặc biệt cho dữ liệu này phụ thuộc vào việc thực hiện của USBDI trong hệ điều hành Một số thành phần dữ liệu có thể không thực sự được xác định một cách trực tiếp đối với ngoại vi, nhưng được tạo ra như một kết quả của yêu cầu ngoại vi
Các thành phần dữ liệu dưới đây xác định thông tin liên quan cho một yêu cầu:
- Sự nhận diện đường dẫn liên quan đến yêu cầu Việc xác định đường dẫn cũng
mô tả thông tin như là dạng truyền của yêu cầu này
- Việc nhận diện thông báo ngoại vi đặc biệt
- Việc định vị và chiều dài bộ đệm dữ liệu mà sẽ được truyền hay nhận
Trang 27- Tình trạng hoàn thành yêu cầu Cả hai trạng thái tóm tắt, và yêu cầu trạng thái chi tiết của chính công việc sẽ được cung cấp
- Việc định vị và chiều dài của khoảng hoạt động Phụ thuộc vào quá trình thực thi
Các cơ chế thực thường truyền các yêu cầu tới USBD là hệ điều hành đặc biệt Tuy nhiên, ngoài những yêu cầu đã chỉ rõ ở trên điều mà thông tin liên quan đến yêu cầu phải có hiệu lực Những yêu cầu trên sẽ được xử lý như thế nào Đồng thời, USBD cung cấp một cơ chế để chỉ định một nhóm các IRP đẳng thời cho quá trình truyền nhiệm vụ đầu tiên của mỗi IRP sẽ xảy ra trong cùng một khung USBD cũng cung cấp một cơ chế để chỉ định tập hợp không liên tục của các yêu cầu nhà cung cấp hay lớp chuyên dụng tới một đường dẫn mặc định Không có các yêu cầu khác tời đường dẫn mặc định đó, yêu cầu về chuẩn, lớp hay nhà cung cấp có thể sẽ được chèn vào trong luồng thực hiện như một tập hợp không liên tục Nếu có bất cư yêu cầu nào trong tập hợp này thất bại, thì toàn bộ tập hợp bị dừng lại
2.4 Thiết bị điều khiển host
Thiết bị điều khiển host (HCD) là một một sự phân chia hoá của phần cứng bộ điều khiển host và cách thức trình truyền dữ liệu qua USB của bộ điều khiển host HCDI gặp phải các yêu cầu dưới đây
- Cung cấp phân chia hoá bộ điều khiển host
- Cung cấp phân chia hoá các quá trình truyền dữ liệu bởi bộ điều khiển host qua liên kết USB
- Cung cấp phân chia hoá quá trình định vị của tài nguyên bộ điều khiển host,
hỗ trợ dịch vụ chắc chắn tới thiết bị USB
- Giới thiệu các hub gốc và hoạt động của nó theo định nghĩa lớp hub Điều này gồm hub gốc phụ sao cho bộ điều khiển hub tương tác với hub gốc một cách chính xác với bất kỳ hub nào Nói riêng, dù một hub gốc có thể được thực hiện trong sự kết hợp phần cứng và phần mềm đi nữa, thì hub gốc trả lời đầu tiên tới địa chỉ của thiết bị mặc định (theo kiểu ngoại vi), trả lại thông tin bộ mô tả, hỗ trợ tập hợp địa chỉ thiết bị của
nó và hỗ trợ các yêu cầu lớp hub khác Tuy nhiên, sự giao tiếp của bus có thể cần hoặc không cần tạo ra để hoàn thành các hoạt động này được cho việc tích hợp khả năng giữa bộ điều khiển host và hub gốc
HCD cung cấp một giao diện phần mềm (HCDI) mà thực hiện phân chia hóa yêu cầu Chức năng của HCD sẽ cung cấp một phân chia hóa để che dấu những chi tiết của phần cứng bộ điều khiển host Ở dưới phần cứng của bộ điều khiển host là USB vật lý và tất cả các thiết bị USB đi kèm
HCD là lớp thấp nhất trong ngăn xếp phần mềm USB HCD chỉ có một ngoại vi: Bộ điều khiển bus nối tiếp đa năng (USBD) Các sơ đồ USBD yêu cầu từ nhiều ngoại vi đến HCD thích hợp Một HCD nhất định có thể quản lý nhiều bộ điều khiển
Trang 28host
HCDI không được sử dụng trực tiếp từ một ngoại vi Bởi vậy, các yêu cầu về giao diên đặc biệt cho HCDI không được bàn luận ở đây
2.5 Bộ điều khiển bus nối tiếp đa năng
Một bộ điều khiển bus nối tiếp đa năng (USBD) cung cấp một tập hợp các cơ
chế là các thành phần của hệ điều hành Các driver của thiết bị điển hình, dùng để truy cập tới các thiết bị USB USBD chỉ cho phép truy cập tới các thiết bị USB Hệ điều hành đặc biệt có thêm USBD Những cơ chế do USBD cung cấp được thực hiện bằng cách dùng giống như việc giữ và tăng các cơ chế cần thiết được cung cấp bởi môi trường hệ điều hành mà nó làm việc Thảo luận dưới đây tập trung vào các khả năng
cơ bản được yêu cầu cho tất cả các quá trình thực thi của USBD Các hoạt động đặc biệt của USBD trong môi trườngđặc biệt Xem hướng dẫn môi trường hệ điều hành liên quan của USBD Một trường hợp đơn giản của sự truy nhập trực tiếp của USBD tới một hoặc một số HCD mà lần lượt được nối tới một hoặc một số bộ điều khiển host Nếu cho phép, trường hợp USBD như thế nào được quản lý dựa trên môi trường
hệ điều hành Tuy nhiên, từ hình dạng của ngoại vi, USBD truyền thông quản lý tất cả các thiết bị USB đi kèm
2.5.1 Tổng quan
Các ngoại vi của USBD trực tiếp ra lệnh cho các thiết bị hoặc chuyển các dòng
dữ liệu tới hoặc từ đường dẫn tới USBD giới thiệu hai nhóm cơ chế phần mềm tới ngoại vi: Cơ chế lệnh và cơ chế đường dẫn
Cơ chế lệnh cho phép các ngoại vi cấu hình và điều khiển hoạt động cũng như cấu hình và kiểm soát chung một thiết bị USB Nói riêng, các cơ chế lệnh cung cấp mọi sự truy nhập tới đường dẫn mặc định của thiết bị
Các cơ chế đường dẫn cho phép một ngoại vi USBD quản lý các quá trình chuyển đổi dữ liệu đặc biệt và kiểm soát thiết bị Những có chế đường dẫn không cho phép một ngoại vi trực tiếp gửi tới đường dẫn đặc biệt của thiết bị
Hình 2.5 đưa ra một cách tổng quan về cấu trúc của USBD.[3]
Driver của
bộ điều khiển host
Driver của
bộ điều khiển host (Hub)
Trang 292.5.1.1 Khởi tạo
Quá trình khởi tạo USBD đặc biệt là sự phụ thuộc của hệ điều hành Khởi tạo là khi một USB đặc biệt được quản lý bởi USBD, thông tin quản lý cho USB đó cũng được tạo ra Một phần thông tin quản lý là thiết bị địa chỉ mặc định và đường dẫn mặc định của nó
Bất cứ khi nào một thiết bị được gán cho một USB, thì nó trả lại địa chỉ đặc biệt được biết đến như là địa chỉ mặc định cho đến khi địa chỉ duy nhất của nó được gán bởi bộ điều khiển hub Hệ thống USB hợp lệ khi tương tác với các thiết bị mới, thì thiết bị địa chỉ mặc định cho USB đặc biệt đó và đường dẫn mặc định của thiết bị địa chỉ mặc định đó phải luôn sẵn sàng cho thiết bị điều khiển hub bất cứ khi nào một thiết
bị được gán Thiết bị địa chỉ mặc định và đường dẫn mặc định của nó được tạo ra bởi
hệ thống USB khi một USB mới được khởi tạo
2.5.1.2 Cách dùng đường dẫn USBD
Các đường dẫn là phương thức mà một điểm cuối của thiết bị được liên kết với một thực thể phần mềm của host Các đường dẫn được sở hữu bởi một thực thể chính xác như thế trên host Mặc dù khái niện cơ bản của một đường dẫn không cùng sự kiện với chính bản thân nó, một số nét đặc biệt của khả năng cung cấp cho các thiết bị ngoài của USBD xảy ra giữa các nhóm của các đường dẫn:
- Các đường dẫn mặc định, do USBD làm chủ và quản lý
- Tất cả các đường dẫn khác, được các thiết bị ngoài của USBD làm chủ và quản lý
Các đường dẫn mặc định không bao giờ truy nhập trực tiếp tới các thiết bị ngoài, mặc dù chúng thường làm tròn một số nhiệm vụ của các ngoại vi yêu cầu tiếp theo thông qua các cơ chế lệnh
a) Các đường dẫn mặc định
USBD chịu trách nhiệm cấp phát và quản lý tầng đệm thích hợp hỗ trợ quá trình truyền trên đường dẫn mặc định, nó không trực tiếp xác định các thiết bị ngoài như việc thiết lập một địa chỉ thiết bị Các quá trình truyền trực tiếp xác định thiết bị ngoài, như nhà cung cấp gửi và các lớp lệnh hoặc đọc một bộ mô tả thiết bị, thiết bị ngoài
Trang 30phải cung cấp tầng đệm đã yêu cầu
b) Các đường dẫn cho thiết bị ngoài
Bất ký đường dẫn nào không do USBD làm chủ và quản lý có thể sẽ do các thiết bị ngoài của USBD làm chủ và quản lý Từ dạng của USBD, thì đường dẫn do một thiết bị ngoài cụ thể làm chủ Thật ra, một nhóm hợp tác của các thiết bị ngoài có thể quản lý đường dẫn cung cấp chúng coi như một sự tồn tại kết hợp đơn giản khi dùng đường dẫn
Thiết bị ngoài có trách nhiệm cung cấp số lượng phép toán trung gian nó cần thiết để phục vụ tốc độ truyền dữ liệu của đường dẫn bên trong khoảng thời gian phục
vụ đạt được của các thiết bị ngoài Những yêu cầu phép toán trung gian bổ sung cho không gian làm việc do hệ thống USB quyết định
2.5.1.3 Các khả năng của dịch vụ
USBD cung cấp các dịch vụ trong các lĩnh vực sau đây:
- Cấu hình thông qua các cơ chế lệnh
- Các dịch vụ truyền thông qua cả hai cơ chế đường dẫn và lệnh
- Thông báo sự kiện
- Báo cáo tình trạng và sự phục hồi lỗi
2.5.2 Những yêu cầu cơ chế lệnh của USBD
Các cơ chế lệnh của USBD cho phép một thiết bị ngoài truy nhập tới một thiết
bị USB Thông thường các lệnh này cho phép thiết bị ngoài tạo ra quá trình truy cập đọc hoặc viết một trong các khoảng dữ liệu thiết bị có khả nămg và điều khiển Thiết
bị ngoài cung cấp ngắn bằng việc nhận dạng thiết bị và dữ liệu có liên quan hoặc con trỏ bộ đệm rỗng
Các quá trình truyền lệnh USBD không phải quy định mà thiết bị USB được cấu hình Nhiều khả năng cấu hình thiết bị USB được cung cấp bởi USBD là các quá trình truyền lệnh
Dưới đây là các yêu cầu đặc biệt cho việc cung cấp các cơ chế lệnh
2.5.2.1 Điều khiển tình trạng giao diện
Các thiết bị ngoài USBD phải có khả năng thiết lập một giao diện xác định cho bất kỳ trạng thái của đường dẫn có khả năng thiết lập nào Thiết lập một trạng thái giao diện dẫn đến tất cả các đường dẫn trong giao diện đó chuyển tới trạng thái đó Đồng thời, tất cả các đường dẫn trong một giao diện có thể được đặt lại hoặc bị gỡ bỏ
2.5.2.2 Điều khiển trạng thái đường dẫn
Trạng thái đường dẫn của USBD có hai thành phần:
- Các trạng thái của host
- Trạng thái gây phản xạ của điểm cuối
Trang 31Mỗi khi các trạng thái của đường dẫn được thông báo, thì giá trị của cả hai thành phần sẽ được xác định Trạng thái đường dẫn được phản xạ từ điểm cuối là kết quả của điểm cuối trong một trạng thái đặc biệt Các thiết bị ngoài USBD quản lý trạng thái đường dẫn được thông báo bởi USBD Đối với bất kỳ trạng thái đường dẫn nào phản xạ từ điểm cuối, thì thiết bị ngoài cũng phải tương tác với điểm cuối để thay đổi trạng thái
Một đường dẫn USBD có chính xác một trong các trạng thái sau:
- Hoạt động: Cách giải quyết của đường dẫn đã được thiết lập và đường dẫn có khả năng truyền dữ liệu Thiết bị ngoài có thể thắc mắc về bất kỳ IRP nào còn tồn tại đối với một đường dẫn đặc biệt Những đường dẫn đó không có IRP tồn tại thì được xem như đạng ở trạng thái hoạt động lâu như chúng có thể chấp nhận các IRP mới
- Dừng: Một lỗi đã xuất hiện trên đường dẫn Trạng thái này có thể cũng là một
sự phản xạ của điểm cuối bị hỏng tương ứng trên thiết bị
- Rỗi: Đường dẫn sẽ không chấp nhận các IRP thêm nữa Điểm cuối cũng phải
ở trạng thái rỗi
Các thiết bị ngoài USBD phải có khả năng thiết lập một đường dẫn xác định ở trạng thái rỗi hay hoạt động từ bất kỳ trạng thái nào được mô tả ở trên Các thiết bị ngoài cũng phải có khả năng thiết lập điểm cuối từ trạng thái hoạt động hay trạng thái rỗi Đồng thời, các thiết bị ngoài điều khiển trạng thái đường dẫn theo những cách sau:
- Làm hỏng đường dẫn: tất cả các IRP được hoạch định cho một đường dẫn không được lưu hành ngay lập tức và trở lại thiết bị ngoài với một trạng thái chỉ báo chúng đã bị hỏng Cả trạng thái của host lẫn trạng thái điểm cuối của đường dẫn bị phản xạ đều không bị ảnh hưởng
- Thiết lập lại một đường dẫn: Các IRP của đường dẫn bị hỏng Trạng thái của host được chuyển sang hoạt động Nếu trạng thái điểm cuối được phản xạ cần được thay đổi, điều đó phải được ra lệnh chính xác bởi thiết bị ngoài của USBD
2.5.2.3 Thiết lập các bộ mô tả
USBDI phải cung cấp một cơ chế để khôi phục thiết bị chuẩn, những bộ mô tả cấu hình và xâu chuỗi, cũng như bất kỳ bộ mô tả lớp hoặc nhà cung cấp chuyên nghiệp
2.5.2.4 Thiết lập cấu hình hiện hành
USBDI phải cung cấp một điều kiện thuận lợi để trả lại cho bất kỳ thiết bị nào được xác định, bộ mô tả cấu hình hiện hành Nếu thiết bị không được cấu hình, không
có bộ mô tả cấu hình được trả lại Hoạt động này tương đương với việc trả lại bộ mô tả cấu hình cho cấu hình hiện tại bằng việc yêu cầu bộ mô tả cấu hình xác định Tuy nhiên nó không yêu cầu các thiết bị ngoài biết đích danh cấu hình hiện tại Điều này sẽ trả lại tất cả thông tin cấu hình, gồm có:
Trang 32- Tất cả thông tin về bộ mô tả cấu hình được cất giữ trên thiết bị gồm tất cả các quá trình thiết lập xen kẽ cho tất cả các giao diện
- Các chỉ tiêu về quá trình thiết lập xen kẽ cho các giao diện tích cực
- Các quá trình móc nối đường dẫn cho các điểm cuối ở các quá trình thiết lập xen kẽ tích cực cho các giao diện
- Kích thước gói cực đại thực tế của điểm cuối ở các quá trình thiết lập xen kẽ tích cực cho các giao diện
Thêm vào đó, bất kỳ một đường dẫn xác định nào, USBDI phải cung cấp khả năng trả lại kích thước gói cực đại mà hiện tại bản thân đang được đường dẫn sử dụng
2.5.2.5 Thêm thiết bị
USBDI phải cung cấp một cơ chế cho bộ điều khiển hub để thông báo cho USBD biết việc thêm thiết bị mới cho một USB xác định và khôi phục lại ID của USBD của thiết bị USBD mới Nhiệm vụ của USBD gồm gán địa chỉ thiết bị và chuẩn
bị đường dẫn mặc định của thiết bị để sử dụng
Cơ chế USBDI do một thiết bị ngoài sử dụng để gửi một hoặc nhiều lệnh cụ thể
về nhà cung cấp tới một thiết bị
2.5.2.3 Xác minh các thiết lập xen kẽ
USBDI cung cấp một cơ chế để thay đổi sự thiết lập xen kẽ cho một giao diện xác định Như một kết quả, sự móc nối đường dẫn cho việt thiết lập trước đây được giải phóng và các móc nối đường dẫn mới cho giao diện được gửi trả Các yêu cầu này thành công, thì giao diện phải nhàn rỗi, nghĩa là, tất cả các đường dẫn trong giao diện phải ở trong trạng thái rỗi
2.5.2.11 Xác minh một cấu hình
Việc định hình phần mềm đòi hỏi một cấu hình thông qua một bộ đệm chứa bộ
mô ta cấu hình tới USBD USBD yêu cầu tài nguyên cho các điểm cuối trong cấu hình,
Trang 33và nếu mọi yêu cầu tài nguyên thành công, thì USBD thiết lập cấu hình thíêt bị và trả lại móc nối giao diện với các móc nối đường dẫn tương ứng cho tất cả các điểm cuối hoạt động Giá trị mặc định được dùng cho các quá trình thiết lập xen kẽ cho các giao diện và kích thước gói cực đại của điểm cuối Các giá trị mặc định này có thể được sửa đổi sau đó
Chú ý: giao diện đặc biệt thực hiện cấu hình có thể yêu cầu các quá trình thiết lập xen kẽ đặc biệt sẽ được xác định
2.5.2.12 Thiết lập các bộ mô tả
Đối với các thiết bị hỗ trợ hoạt động này, USBDI cho phép các bộ mô tả hiện hành sẽ được cập nhật hay các bộ mô tả mới sẽ được thêm vào
2.5.2.13 Xác minh kích thước gói cực đại cho một đường dẫn
USBDI phải cung cấp một cơ chế để sửa đổi các đặc điểm truyền của đường dẫn USBD điều chỉnh yêu cầu tài nguyên và thiết lập kích thước dữ liệu cực đại hiện tại trên bus giao tiếp cho đường dẫn xác định Dịch vụ này chỉ có thể áp dụng cho đường dẫn cái mà đã được tạo ra bởi việc xác định một cấu hình và ngừng cái hiện tại
2.5.3.14 Các có chế dường dẫn USBD
Phần này của USBDI cung cấp các thiết bị ngoài có thể truyền dữ liệu trên tốc
độ cao nhất, thấp nhất Sự thực hiện cao hơn đạt được bằng sự thay đổi một số nhiệm
vụ quản lý đường dẫn từ USBD đến các thiết bị ngoài Như một kết quả, các cơ chế đường dẫn được thực hiện tại một mức nguyên thuỷ nhiều hơn so với các dịch vụ truyền dữ liệu được cung cấp bởi các cơ chế lệnh USBD Các cơ chế đường dẫn không cho phép truy nhập tới một đường dẫn mặc định của thiết bị
Qua trình truyền của đường dẫn USBD chỉ sẵn có sau khi cả hai thiết bị và cấu hình USB hoàn thành một cách thành công Tại thời điểm thiết bị đựoc định hình, USBD yêu cầu các tài nguyên được yêu cầu để hỗ trợ tất cả các dường dẫn thiết bị trong cấu hình Các thiết bị ngoài được cho phép thay đổi cấu hình, bị hạn chế bởi giao diện hay đường dẫn rỗi
Các thiết bị ngoài cung cấp các bộ đệm đầy đủ tới các đường dẫn gửi đi và khôi phục các thông tin trạng thái truyền sau khi hoàn thành một yêu cầu Các trạng thái truyền gửi lại cho một đường dẫn gửi đi cho phép một thiết bị ngoài xác định quá trình truyền thành công hay thất bại
Các thiết bị ngoài cung cấp các bộ đệm rỗng cho các đường dẫn đến và khôi phục các bộ đệm đầy và thông tin trạng thái truyền từ các đường dẫn đến sau khi hoàn thành một yêu cầu Các trạng thái truyền gửi lại cho một đường dẫn vào cho phép một thiết bị ngoài xác định số lượng và chất lượng dữ liệu thu được
2.5.3 Các kiểu đường dẫn được hỗ trợ
Bốn kiểu đường dẫn được hỗ trợ, dựa trên 4 kiểu truyền dữ liệu, được mô tả
Trang 34dưới đâu
2.5.3.1 Truyền dữ liệu đồng bộ
Mỗi bộ đệm được sắp xếp trên một đường dẫn đồng bộ được yêu cầu có thể nhận biết như một dòng các mẫu Bởi vì với tất cả các quá trình truyền trên đường dẫn, thiết bị ngoài thiết xác lập một cách giải quyết để sử dụng đường dẫn đồng bộ này, gồm thời gian phục vụ liên đến các thiết bị ngoài này Các byte mất hoặc bị thiếu, được nhận diện trực tiếp ở đầu vào, và những vấn đề truyền dẫn đáng được chú ý ở đầu ra, được chỉ dẫn tới các thiết bị ngoài
Thiết bị ngoài xếp ở một bộ đệm đầu tiên, bắt đầu dịch vụ truyền trên đường dẫn Để duy trì phương thức truyền dòng liên tục được dùng trong tất cả các quá trình truyền đồng bộ, thiết bị ngoài xếp một bộ đệm bổ sung trước bộ đệm hiện hành đã ngừng
USBD được quy định khả năng cung cấp một dòng mẫu theo quy định của dòng
dữ liệu của thiết bị ngoài Nói cách khác, việc sử dụng phương thức cụ thể của thiết bị ngoài của quá trình đồng bộ hóa, gói dữ liệu chính xác được làm ẩn từ thiết bị ngoài Thêm vào đó, một sự giao tiếp đã cho luôn luôn hoàn toàn ở bên trong một số bộ đệm
dữ liệu của thiết bị ngoài
Đối với một đường dẫn lối ra, thiết bị ngoài cung cấp một bộ đệm dữ liệu, USBD cấp phát dữ liệu qua các khung cho các giai đoạn phục vụ bằng cách sử dụng phương thức chọn lựa thiết bị ngoài của sự đồng bộ hóa
Đối với một đường dẫn lối vào, thiết bị ngoài cung cấp một bộ đệm rỗng đủ lớn
để dữ số lượng các byte cực đại thiết bị của thiết bị ngoài sẽ phát trong giai đoạn phục
vụ Hệ thống USB gỡ USB đã định nghĩa gói thông tin từ dòng các byte cấu hình trong
bộ đệm của thiết bị ngoài Ở nơi thiếu byte hoặc sai sẽ được chỉ báo USBD để lại không gian mà những byte đã bị chiếm giữ đúng chỗ trong bộ đệm và xác định lỗi Một trong các hậu quả của việc không sử dụng phương pháp đồng bộ hóa, là giữ khoảng không được giả thiết là kích thước gói cực đại Thông báo bộ đệm đã ngừng xuất hiện khi IRP hoàn thành Chú ý rằng lối vào bộ đệm không cần đầy đủ khi trả lại thiết bị ngoài USBD có thể tùy ý cung cấp thêm những kế hoạch cho các dòng dữ liệu đồng bộ USBD cũng được yêu cầu khả năng cung cấp một kế hoạch dòng gói của dòng dữ liệu của thiết bị ngoài
a) Truyền ngắt
Các quá trình truyền ngắt bắt nguồn từ một thiết bị USB và được cung cấp cho một thiết bị ngoài của bộ điều khiển USB
Thiết bị ngoài sắp xếp một bộ đếm đủ lớn để giữ dữ liệu truyền ngắt (điển hình
là một quá trình giao tiếp USB đơn giản) Khi tất cả dữ liệu được truyền, hoặc nếu ngưỡng của lỗi được vượt lớn hơn, IRP được trả lại cho thiết bị ngoài
b) Truyền theo khối
Trang 35Loại truyền này được dùng khi có lượng lớn dữ liệu cần truyền, cần kiểm tra lỗi truyền và không có thúc ép về thời gian truyền Đây là loại truyền hai chiều, từ máy chủ tới điểm cuối của thiết bị ngoài và ngược lại, như vậy nếu thiết bị ngoài cần cả hai chiều dữ liệu, sẽ cần hai điểm cuối hay hai đường dẫn cho hai chiều dữ liệu Trình tự truyền này gồm ba giai đoạn là truyền khung dấu, dữ liệu và trả lời Khi bị kẹt, dữ liệu không được truyền Đây là trường hợp truyền của máy in hay máy quét màu
c) Truyền có điều khiển
Đây là loại truyền dẫn hai chiều, để điều khiển phần cứng các yêu cầu điều khiển, loại truyền này có mức yêu tiên cao nhất, tốc độ lớn (64 byte trong một yêu cầu) và có khả năng kiểm soát lỗi tự động Trình tự truyền là truyền token, truyền dữ liệu và truyền trả lời Mọi thiết bị ngoài đều xử lý được hai loại truyền này
2.5.3.2 Các yêu cầu cơ chế đường dẫn USBD
Các cơ chế đường dẫn dưới đay được cấp
a) Hủy bỏ các IRP
USBD phải cho phép các IRP cho một đường dẫn cụ thể bị hỏng
b) Điều chỉnh khởi đầu khung
USBDI phải cho phép một thiết bị ngoài chủ thay đổi số lượng thời gian truyền bit trong một khung USB Một thiết bị ngoài mong muốn điều chỉnh SOF phải vừa thu được các trạng thái của thiết bị ngoài chủ từ USBD (xem mục 2.5.3.2.5), kéo theo sự thay đổi này thường xuyên hơn mỗi lần 6ms không xác minh được kết quả
c) Quản lý cách giải quyết của đường dẫn
USBDI phải cho phép một thiết bị ngoài thiết lập và xóa bỏ kế hoạch cho một đường dẫn riêng hay cho một giao diện liền Bất kỳ IRPs nào được thiết bị ngoài tạo ra thành công trước khi thiết lập một kế hoạch loại bỏ do USBD
d) Hàng đợi IRPs
USBDI phải cho phép các thiết bị ngoài tới hàng đợi IRPs đối với một đường dẫn xác định Khi IRPs đã trả lời thiết bị ngoài, thì trạng thái yêu cầu cũng được trả lời Một cơ chế được cung cấp bởi USBD nhận diện một nhóm IRPs đồng bộ mà sự giao tiếp đầu tiên sẽ tìm thấy tất cả trong cùng một khung
e) Thiết bị ngoài chủ
USBDI phải cho phép một thiết bị ngoài yêu cầu một thiết bị ngoài đễn cho một USB xác định và giải phóng khả năng này khi nó không còn được yêu cầu Chỉ có các thiết bị ngoài chủ mới có thể điều chỉnh SOF của USB đã cho
Một thiết bị ngoài yêu cầu trạng thái chủ đồng nhất bản thân nó với một giao diện móc lối với thiết bị từ cái mà nó làm chủ
2.5.4 Quản lý USB thông qua các cơ chế USBD
Trang 36Bằng cách sử dụng các cơ chế USBD được cung cấp, các khả năng sau đây được hỗ ttrợ bởi bất kỳ hệ thống USB
2.5.4.1 Các dịch vụ cấu hình
Các dịch vụ cấu hình vận hành trên một thiết bị cơ sở USBD thực hiện cấu hình thiết bị theo phần mềm cấu hình Một bộ điều khiển hub có một vai trò đặc biệt trong quản lý và cung cấp thiết bị ít nhất cho các khả năng dưới đây:
- Nhận dạng gán/tách thiết bị, được điều khiển bởi một đường dẫn ngắt do bộ điều khiển hub sở hữu
- Thiết bị khởi động lại, do bộ điều khiển hub thực hiện bằng cách đặt lại dòng ngược cổng hub của thiết bị
- Định hướng USBD để thực hiện việc gán địa chỉ thiết bị
USBDI cung cấp đồng thời các khả năng cấu hình dưới đây, cái mà có thể được sử dụng bởi bộ điều khiển hub hay phần mềm cấu hình khác sẵn có trên host
- Sự nhân diện thiết bị và truy nhập tới thông tin cấu hình (thông qua việc truy nhập tới các bộ mô tả trên thiết bị)
- Cấu hình thiết bị thông qua các cơ chế lệnh
Khi các bộ điều khiển hub thong tin cho USBD về sự tham gia của thiết bị, thì USBD thiết lập một đường dẫn mặc định cho thiết bị mới
a) Việc quản lý cấu hình
Các dịch vụ quản lý cấu hình được cung cấp chủ yếu như một sự thiết lập các lệnh giao diện đặc biệt cái mà tạo ra các nhiệm vụ của USB trên đường dẫn đặc biệt Ngoại lệ đáng chú ý là dùng một đường dẫn ngắt bổ sung mà chuyển các trạng thái hub tới bộ điều khiển hub
Mỗi hub bắt đầu bằng một quá trình chuyển ngắt khi có một sự thay đổi trong trạng thái của một trong những cổng hub Nói chung, sự thay đổi trạng thái cổng sẽ kết nối hoặc loại bỏ một thiết bị USB dòng xuống
b) Cấu hình thiết bị ban đầu
Quá trình cáu hình thiết bị bắt đầu xử lý khi khi một hub thông báo qua đường dẫn thay đổi trạng thái của nó sự kết nối của một thiết bị USB mới
Các dịch vụ quản lý cấu hình cho phép cấu hình phần mềm lựa chọn một cấu hình thiết bị USB từ quá trình thiết lập cấu hình được giới hạn trong một thiết bị USBD kiểm tra tốc độ truyền dữ liệu cho mọi điểm cuối trong cấu hình không vượt quá khả năng của USB với chương trình hiện hành trước khi thiết lạp cấu hình thiết
bị
c) Sửa đổi một cấu hình thiết bị
Các dịch vụ quản lý cấu hình cho phép cấu hình phần mềm để thay thế một cấu
Trang 37hình thiết bị USB với cấu hình khác từ việc thiết lập các cấu hình được giới hạn trong thiết bị Các thao tác thành công nếu tốc độ truyền dữ liệu cho mọi điểm cuối trong cấu hình mới thích hợp với các khả năng của USB với chương trình hiện hành Nếu cấu hình mới được loại bỏ, cấu hình trước đó ở lại
Các dịch vụ quản lý cấu hình cho phép cấu hình phần mềm để trả lại một thiết
bị USB cho một trạng thái không được cấu hình
d) Loại bỏ thiết bị
loại bỏ thiết bị hoặc khôi phục lỗi xử lý ban đầu khi một hub thông báo thông qua đường dẫn thay đổi trạng thái của nó truyền thông với một thiết bị USB đã dừng
2.5.4.2 Quản lý bus và thiết bị
Các dịch vụ quản lý Bus và thiết bị cho phép một thiết bị ngoài trở thành thiết
bị ngoài chủ trên USB, và cũng như thiết bị ngoài chủ, nó điều chỉnh số lượng bít trong một khung trên bus đó Một thiết bị ngoài chủ có thể giải phóng khỏi ttrạng thái chủ, hoặc trạng thái chủ của thiết bị ngoài sẽ tự động được giải phóng khi thiết bị ngoài chứa giao diện liên quan được đặt lại hay tách ra Có thể có một thiết bị ngoài
có quyền cao nhất trên USB Một thiết bị chủ mới sẽ được biểu thị cho một móc nối chủ đặc biệt được sử dụng khi điều chỉnh SOF
Một thiết bị ngoài chủ có thể thêm vào hoặc bớt đi một bit thời gian của khung USB hiện hành Thiết bị ngoài phải liên quan đến giao diện nhận diện USB được điều chỉnh và cho phép các trạng thái chủ của thiết bị sẽ được làm cho có hiệu lực Điều chỉnh tần suất mỗi một SOF lớn hơn 6 ms cho các kết quả không xác định
2.5.4.3 Điều khiển công suất
Hệ thống USB sẽ cung cấp quản lý công suất ở một dạng hệ thống chuyên dụng Không có các yêu cầu USB khác, điều đó được mô tả trong chương 3 đặt trên
hệ thống USB
Không có các lệnh chuẩn được cung cấp cho tất cả các thiết bị USB Các thiết
bị riêng có thể lựa chọn ra một giao diện điều khiển công suất thông qua điều khiển đặc biệt của nhà cung cấp Các lớp thiết bị có thể định nghĩa các khả năng điều khiển công suất lớp chuyên dụng
Tuy nhiên tất cả các thiết bị USB phải được hỗ trợ trạng thái giảm nguồn cung cấp điều khiển cơ bản của nguồn cung cấp được cấp tới một thiết bị được thực hiện qua việc điều khiển của cổng hub tới các thiết bị đi kèm
2.5.4.4 Những thông báo sự kiện
Các thiết bị ngoài USB nhận được một vài loại thông báo sự kiện thông qua một số nguồn:
- Một thiết bị ngoài sẽ hoàn thành hoạt động đầu tiên
- Quá trình truyền ngắt qua các đường dẫn dòng có thể đưa ra một thông báo
Trang 38về các sự kiện của thiết bị trực tiếp tới các thiết bị ngoài USBD Ví dụ, các hub sử dụng một đường dẫn có ngắt để đưa ra các sự kiện tương ứng với sựu thay đổi các trạng thái hub
- Dữ liệu sự kiện có thể do thiết bị gắn vào các dòng
- Các lệnh giao diện thiết bị chuẩn, các lệnh lớp thiết bị, các lệnh đặc biệt của nhà cung cấp, và thậm chí truyền có điều khiển qua đường dẫn thông báo có thể tất cả được sử dụng để kiểm tra các thiết bị cho các điều kiện sự kiện
2.5.4.5 Các trạng thái thông báo và các dịch vụ khôi phục lỗi
Cơ chế lệnh và đường dẫn cùng cấp các trạng thái thông báo về các yêu cầu riêng lẻ như chúng được kéo theo và hoàn thành
Thêm vào đó, các trạng thái thiết bị USB sẵn có để thiết bị ngoài dùng các cơ chế lệnh
USBD cung cấp các thiết bị ngoài với các cơ chế khôi phục lỗi đường dẫn bằng việc cho phép các đường dẫn đặt lại hay bỏ
2.6 Hường dẫn môi trường hệ điều hành
Như chúng ta đã biết, các giao diện giữa phần mềm USB với phần mềm host đặc biệt với nền host và hệ điều hành Một số tay thuyết minh là cần thiết cho mỗi sự kết hợp của nền host và hệ điều hành với sự hỗ trợ của USB Các đặc tả này mô tả các giao diện đặc biệt thường được tích hợp sẵn USB vào trong host Mỗi nhà cung cấp
hệ điều hành cho phần mềm USB xác định một quá trình duyệt lại đặc tả USB tổng quát tương thích
Trang 39CHƯƠNG 3 THIẾT BỊ USB
Một thiết bị USB có thể được phân chia thành 3 lớp:
+ Lớp dưới cùng (bottom layer) là giao diện bus nơi phát và nhận các gói thông tin
+ Lớp giữa (middle layer) quản lý sự định tuyến (routing) giữa giao diện bus và các điểm cuối khác nhau trên thiết bị Điểm cuối là người sử dụng hoặc nhà cung cấp
dữ liệu cuối cùng Nó được ví như nguồn hoặc một phần của dữ liệu
+ Lớp đỉnh (top layer) có chức năng cung cấp thiết bị bus nối tiếp, ví dụ chuột hoặc giao diện ISDN
Chương này mô tả các tính năng và hoạt động phổ biết ở lớp giữa của thiết bị USB Các thuộc tính và hoạt động này được dùng bởi quá trình phân chia chức năng đặc biệt cho thiết bị để giao tiếp thông qua giao diện bus và cuối cùng là giao tiếp với máy chủ
3.1 Các trạng thái thiết bị USB (USB Device States)
Một thiết bị USB có thể có một số trạng thái Một số trạng thái trong số này là nhận biết được (visible) USB và Host, trong khi một số trạng thái khác nằm trong thiết
bị USB
3.1.1 Các trạng thái nhìn thấy được (Visible Device States)
Phần này sẽ mô tả các trạng thái thiết bị USB ở bên ngoài và tổng kết lại các trạng thái nhận biết được của thiết bị USB
3.1.1.1 Attached:
Thiết bị USB có thể được gắn vào (attached) hay tách khỏi (detached) với USB Trạng thái của thiết bị USB khi tách khỏi thì không thuộc phạm vi trình bày ở đây Trong trường hợp này ta chỉ nói đến địa chỉ được yêu cầu hoạt động và các thuộc tính của thiết bị đã được gắn vào
Trang 40(self-và khi nguồn của thiết bị thay đổi, thỡ thiết bị sẽ mất cấu hỡnh (self-và địa chỉ hiện tại (self-và trở lại trạng thỏi Powered Nếu thiết bị là tự cấp nguồn và cấu hỡnh hiện tại yờu cầu nguồn
cú dũng trờn 100mA, và nếu như thiết bị chuyển sang lấy nguồn từ bus, thỡ thiết bị phải trở về trạng thỏi địa chỉ
3.1.1.3 Mặc định
Sau khi thiết bị được cấp nguồn, nú khụng được trả lời tới bất kỳ giao dịch bus nào cho đến khi nú nhận được một reset từ bus Sau khi nhận được reset thiết bị cú một địa chỉ mặc định
3.1.1.4 Địa chỉ
Tất cả thiết bị USB sử dụng địa chỉ mặc định khi lỳc đầu cấp nguồn hoặc sau khi reset Mỗi thiết bị USB được gỏn duy nhất một địa chỉ bởi Host sau khi gắn vào hoặc được reset Một thiết bị USB trả lời tới cỏc yờu cầu (requets) trờn ống mặc định khi thiết bị hiện tại đó được gỏn địa chỉ duy nhất hoặc sử dụng địa chỉ mặc định
3.1.1.5 Cấu hỡnh
Trước khi một chức năng của thiết bị USB được sử dụng, thiết bị phải được định cấu hỡnh (configured) Khi đú việc xử lý yờu cầu SetConfiguration() phải cú giỏ trị cấu hỡnh khỏc 0 Việc cấu hỡnh một thiết bị hay thay đổi một cài đặt làm cho tất cả giỏ trị trạng thỏi và cấu hỡnh được kết hợp với cỏc điểm cuối trong cỏc giao diện khụng
ổn định để đặt về cỏc giỏ trị mặc định Điều này bao gồm việc cài đặt dữ liệu bật tắt (data toggle) của bất kỳ điểm cuối nào sử dụng cỏc data toggle tới giỏ trị DATA0
3.1.1.6 Trạng thái treo
Để duy trì nguồn (conserve power), các thiết bị USB
tự động vào trạng thái treo khi thiết bị quan sát thấy không có đ-ờng bus cho một thời hạn nhất định Khi bị treo, thiết bị USB sẽ duy trì tất cả trạng thái nội bộ, bao gồm cả địa chỉ và cấu hình của nó Trạng thái này xảy
ra khi khi hoạt động bus không theo dõi đ-ợc chiều dài của thời gian đ-ợc chỉ định Các thiết bị đ-ợc gắn vào phải luôn sẵn sàng vào trạng thái treo khi chúng đ-ợc cấp nguồn, mặc dù chúng đã đ-ợc gán địa chỉ (không phải địa chỉ mặc định) hay đã đ-ợc định cấu hình Hoạt động bus có thể ng-ng trong lúc Host đang ở trạng thái treo Thiết bị thoát khỏi trạng thái này khi bus hoạt động Thiết bị có thể yêu cầu Host thoát khỏi trạng thái này bằng việc sử dụng một tín hiệu điện để nhận chỉ báo từ xa
3.1.2 Liệt kê bus (Bus Enumeration)
Khi một thiết bị USB gắn hoặc gỡ ra khỏi bus, Host sẽ
đ-ợc sử dụng một quá trình đ-ợc hiểu nh- là liệt kê bus để