Tải bản đầy đủ (.pdf) (104 trang)

Đo lường và điều khiển qua cổng USB

Bạn đang xem bản rút gọn của tài liệu. Xem và tải ngay bản đầy đủ của tài liệu tại đây (2.52 MB, 104 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


1

Mụ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.



2

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


3

3.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.
Chƣơng 4 Thiết kế thiết bị USB (Universal serial Bus) ...... Error! Bookmark not

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.


4

* 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 18F4550 Error! 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

Trang


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


5

DANH MỤC CÁC HÌNH VẼ
Hình vẽ

Trang

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


6

Hì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.


7


Luậ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ủ.


8

CHƢƠ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.


9

• Khả năng quản lý năng lượng được tăng cường với các chế độ "ngủ" và
"nằm_lì" trên pham vi hệ thống.
• Tự nhận dạng thiết bị ngoại vi, tự động vẽ bản đồ chức năng đối với phần
mềm điều khiển và cấu hình.
• Hỗ trợ cho các thiết bị ngoại vi khác nhau, với nhiều chức năng khác nhau.
Điều khiển luồng dữ liệu thông qua bộ đệm, thông qua giao thức được đặt sẵn bên

trong.
• 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.

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


10

có đá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.

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


11

divices,…

Đầu nối USB loại A.

Đầu nối và cáp chuyển A-B
(Trái-Phải).

Hình 1.2: Các đầu nối USB.
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 A-B được thông qua đầu nối chuyển đổi AB. 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


12

USB 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).

Hình 1.3: Cáp USB và ký hiệu màu dây.
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


13

+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

Liên kết

thiết bị

TB ngoài

Chức năng

HT USB

TB USB

Giao diện
bus USB

Giao diện
bus USB

Đườ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.
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]


14

Host

Liên kết

Các giao diện quản
lý ngoại vi
Bó đường dẫn (tới một giao diện)

Cấu hình

IRPs
USB Driver

Phần mềm
Host

Đường dẫn mặc định (tới điểm cuối 0)
HC Driver


Các đƣờng dẫn quản lý
hệ thống USB
Xác định HW

Bộ điều
khiển Host

Xác định
HC

SIE
Dây USB

Giao diện
bus USB

Đường dẫn, mô tả sự kết nối giữa hai lớp cùng
mức
Thành phần
tuỳ chọn

Xử lý trong quá trình truyền thông

Hình 2.2: Các quá trình truyền thông.


15

Chỉ 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.
Hệ thống USB có 3 thành phần:
- Driver của bộ điều khiển host
- Driver USB
- Phần mềm host
Driver của bộ điều khiển host (HCD) tồn tại để phác thảo dễ dàng hơn những
quá trình thực hiện của bộ điều khiển có thể khác nhau vào trong hệ thống USB, vì vậy
mà một thiết bị ngoại vi có thể tương tác với thiết bị của nó mà không cần tới bộ điều
khiển host kết nối với thiết bị. Driver USB cung cấp giao diện host cơ sở cho các thiết
bị ngoại vi với các thiết bị USB. Giao diện giữa HCD và USBD được biết đến như là
giao diện HCD (HCDI: Host Controller Driver Interface). Giao diện không bao giờ
tiếp xúc trực tiếp với ngoại vi và vì vậy không được xác định nhờ các đặc điểm kỹ
thuật của USB. Tuy nhiên, điều đặc biệt của HCDI là được xác định nhờ hệ điều hành
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.


16

Ở 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


17

nà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ị.
2.1.3. Đƣờng dẫn dữ liệu
Bộ điều khiển host có trách nhiệm chuyển các dòng dữ liệu giữa host và các
thiết bị USB. Việc chuyển dữ liệu này được coi như một dòng liên tục của byte.
- Truyền điều khiển
- Truyền đẳng thời
- Truyền ngắt
- 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.



18
2.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


19

phươ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
SOF
Thời gian EOF (Frame N-1)

Frame N
SOF
Thời gian EOF (Frame N)

Frame N+1
SOF

SOF

Thời gian EOF (Frame N+1)

Hình 2.3: Quá trình tạo khung
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


20

gian 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

- 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.
- Các lỗi giao thức

+ Một PID móc nối không hợp lệ. ví dụ, sự móc nối dị hình hay không thích
hợp.
+ Một EOP không đúng.
+ Một lỗi chèn bit.
Đối với mỗi khối, lệnh, và các nhiệm vụ ngắt, host phải duy trì quá trình tính
toán lỗi. Các lỗi thu được từ các loại điều kiện đã nói ở trên, khác với một kết quả của
một điểm cuối được yêu cầu. Giá trị này phản ánh số lần giải quyết gặp một lỗi truyền.
Nếu quá trình toán lỗi cho một nhiệm vụ cụ thể bằng 3, thì host dừng truyền, khi một
quá trình truyền bị dừng do quá nhiều lỗi, loại lỗi cuối cùng sẽ được chỉ định. Việc giải
quyết đồng bộ chỉ được thử một lần, bất kể kết quả đầu ra, vào, do đó không có lỗi
truy cập được duy trì cho loại hình này.
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


21

độ 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à


22


cấ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


23

ngoà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ị
Hỗ trợ cấu
hình phần
mềm Host

Bộ điều
khiển hub

Thành phần

tuỳ chọn

USBD

HCD

Điều khiển cấu hình
Điều khiển cấu hình tuỳ chọn

Hình 2.4: Sự tương tác của cấu hình.


24

Ngoạ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.
- Loại hình truyền
- Khả năng liên kết. Nếu độ chính xác yêu cầu nhỏ, có thể giả thiết khả năng
liên kết cực đại.
Việc tính toán này phải gồm thời gian truyền bit, trễ truyền lan tín hiệu qua liên
kết, và bất kỳ sự trễ đặc biệt bổ sung nào như là thời gian chuẩn bị và khôi phục được
yêu cầu bởi bản thân bộ điều khiển host.
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


×