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

ĐATN-CÔNG NGHỆ THÔNG TIN tìm hiểu về chuẩn USB 2.0 và ứng dụng chuẩn USB để thiết kế điều khiển từ xa cho trình diễn PowerPoint

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 (762.07 KB, 71 trang )

Đồ án tốt nghiệp Mở đầu


Lê Ngọc Du - Lớp ĐT7 - K46 - ĐHBKHN 1



Chương 0: Mở đầu

Trong thời đại bùng nổ công nghệ thông tin như hiện nay, tin học đã,
đang và sẽ được ứng dụng rộng rãi trong rất nhiều lĩnh vực của đời sống xã hội.
Không nằm ngoài tầm ảnh hưởng mạnh mẽ của tin học là những người làm
công tác giảng dạy, đào tạo, nghiên cứu, Khi nói đến họ thì ta có thể thấy
ngay rằng công việc của họ sẽ thật khó suôn sẻ khi thiếu chiếc máy tính cá
nhân và các phần mềm đi kèm như bộ Microsoft office với Word, Excel,
PowerPoint và nhiều những ứng dụng khác. Bên cạnh Word và Excel đã tỏ rõ
sức mạnh từ lâu thì thời gian gần đây, PowerPoint cùng với chiếc máy chiếu
càng ngày càng cho thấy ưu điểm vượt trội của nó trong việc tăng hiệu quả diễn
đạt cho một vấn đề bất kỳ. Như vậy đi kèm với các gói phần mềm thì để s

dụng chúng một cách hiệu quả còn có những thiết bị đầu cuối. Các thiết bị đầu
cuối làm tăng đáng kể khả năng cho chiếc máy tính cá nhân. Trước đây các
thiết bị đầu cuối được ghép nối với máy tính thông qua rất nhiều giao diện như
cổng com, cổng máy in, PS/2. Hiện nay thì dường như đã dần quy về một mối,
đó chính là ghép nối thiết bị đầu cuố
i với máy tính thông qua cổng USB. Cổng
USB với đường truyền đa năng đúng như tên gọi của nó (Universal Serial Bus),
có khả năng cung cấp nhiều phương thức truyền dẫn cũng như tốc độ truyền
khác nhau cho các ứng dụng khác nhau. Chính vì vậy đồ án này sẽ tập trung
tìm hiểu về chuẩn USB 2.0 và ứng dụng chuẩn USB để thiết kế điều khiển từ
xa cho trình diễn PowerPoint.


Sản phẩm bao g
ồm: Một bộ phát là thiết bị cầm tay dùng pin, có 3 nút
bấm. Nút Up giúp người sử dụng trở lại slide ngay trước slide hiện hành, nút
Down giúp đi tới slide ngay sau slide hiện hành còn nút light thì bật đèn laser
tạo ra đốm sáng nhỏ giúp cho việc trình diễn đạt hiệu quả diễn đạt cao hơn.
Đồ án tốt nghiệp Mở đầu


Lê Ngọc Du - Lớp ĐT7 - K46 - ĐHBKHN 2
Không thể thiếu là một bộ thu ghép nối với máy tính thông qua cổng USB. Bộ
thu này nhận lệnh từ bộ phát và truyền đạt lại lệnh đó tới máy tính. Bộ thu dễ
sử dụng, không cần driver và lấy nguồn từ máy tính.
Hiện nay để thiết kế thành công sản phẩm trên thì có khá nhiều phương
án như: Bộ phát có thể dùng sóng cao tần hoặc năng lượng hồng ngoại để
truyền lệnh điề
u khiển tới bộ thu. Về phía bộ thu, để thực hiện chức năng giao
tiếp USB với máy tính thì cần có một bộ điều khiển USB. Để thực hiện bộ điều
khiển này thì có thể dùng các công nghệ như: µC; PSoC; SPLD; CPLD;
FPGA
Phương án thì có nhiều như vậy nên vấn đề ở đây là lựa chọn phương án
nào cho hợp lý và khả thi nhất. Sau một thời gian tìm hiểu, phương án đ
ã được
lựa chọn cho đề tài là: bộ phát sử dụng sóng cao tần để truyền lệnh điều khiển,
về phía bộ thu sẽ thực hiện bộ điều khiển USB bằng vi điều khiển có tích hợp
một bộ điều khiển USB chưa được cấu hình.
Với những gì đã được giới thiệu ở trên thì có thể thấy rằng để thực hiện
đề tài cần có kiến thức cơ bản về một số mảng chính sau: Chuẩn USB 2.0, họ vi
điều khiển PIC (vì vi điều khiển mà ta sử dụng trong đề tài là vi điều khiển PIC
của hãng MicroChip), truyền tín hiệu điều khiển sử dụng sóng cao tần. Chính
vì vậy mà trong khuôn khổ của đồ án này sẽ tập trung trình bày các nội dung

sau:
¾ Phần I: Sơ lược về chuẩn USB (gồm 6 chương):
• Chương 1: Giới thiệu chung về chuẩn USB
Chương này sẽ đưa ra cái nhìn khái quát, sơ lược về USB
gồm khái niệm, ưu điểm của USB, mô tả hệ thống USB và cáp
USB.
• Chương 2: Mô hình luồng dữ liệu USB
Chương này mô tả cách thực hiện một kết nối USB, cách
mà theo đó dữ li
ệu được truyền qua USB.



Đồ án tốt nghiệp Mở đầu


Lê Ngọc Du - Lớp ĐT7 - K46 - ĐHBKHN 3
• Chương 3: Tầng giao thức USB
Chương này đem lại một cái nhìn từ dưới lên trên của giao
thức USB, bắt đầu với các định nghĩa trường và gói, sau đó là
mô tả các giao tác và cuối cùng là việc đồng bộ và thử lại.
• Chương 4: Các lớp thiết bị được định nghĩa
Chương này giới thiệu các lớp thiết bị được định nghĩa,
giúp những người thiết k
ế thiết bị đầu cuối USB nhận định xem
sản phẩm của mình có thuộc lớp thiết bị được định nghĩa hay
không (nếu thuộc lớp thiết bị được định nghĩa thì có thể bỏ qua
khâu viết driver cho sản phẩm).
• Chương 5: Lớp thiết bị giao diện người sử dụng
Chương này sẽ trình bày về lớp HID với mục đích giúp

người đọ
c nhận định xem một thiết bị nào đó có phù hợp để gán
vào lớp HID hay không. Chỉ ra các yêu cầu đối với vi chương
trình (firmware) để định nghĩa một thiết bị thuộc lớp HID và
cho phép nó trao đổi dữ liệu với máy tính chủ.

• Chương 6: Quá trình tìm hiểu của máy chủ đối với thiết bị
Chương này mô tả những bước xử lý của máy chủ để máy
chủ có thể tìm hiểu các thông tin v
ề thiết bị như: Tốc độ của
thiết bị, các bộ mô tả của thiết bị. Và việc gán một bộ điều
khiển (driver) cho thiết bị.
¾Phần II: Thiết kế sản phẩm (gồm 2 chương):
• Chương 7: Thiết kế bộ phát
Chương này sẽ trình bày một số lưu ý khi thiết kế điều
khiển từ xa sử dụng sóng cao tầ
n (RF), sơ đồ khối hệ thống cho
sản phẩm của đề tài và phần thiết kế bộ phát của sản phẩm.
• Chương 8: Thiết kế bộ thu
Chương này sẽ giới thiệu sơ qua về họ vi điều khiển PIC-
loại vi điều khiển mà ta sử dụng cho sản phẩm của đề tài và
phần phân tích thiết kế bộ thu.
Đồ án tốt nghiệp Mở đầu


Lê Ngọc Du - Lớp ĐT7 - K46 - ĐHBKHN 4
Trong phần I thì các kiến thức về chuẩn USB mới chỉ được trình bày
vắn tắt và còn thiếu một số kiến thức đáng quan tâm của chuẩn USB. Do yêu
cầu về sự súc tích của nội dung đồ án cũng như lý do là các phần đó không liên
quan trực tiếp đến việc thiết kế sản phẩm nên không trình bày ở đây.




Đồ án tốt nghiệp Sơ lược về chuẩn USB 2.0





Lê Ngọc Du - Lớp ĐT7 - K46 - ĐHBKHN 5





PHẦN I: SƠ LƯỢC VỀ CHUẨN
USB 2.0










Đồ án tốt nghiệp Sơ lược về chuẩn USB 2.0






Lê Ngọc Du - Lớp ĐT7 - K46 - ĐHBKHN 6




Chương 1: Giới thiệu chung về USB

Chương này sẽ đưa ra cái nhìn khái quát, sơ lược về USB gồm khái
niệm, ưu điểm của USB, mô tả hệ thống USB và cáp USB.

1.1 Khái niệm về USB
USB (Universal Serial Bus) là bus nối tiếp đa năng cho phép các thiết bị
đầu cuối giao tiếp với máy tính chủ (Host Computer).

1.2 Các mục tiêu hướng tới khi sử dụng USB
- Dễ dàng mở rộng các thiết bị đầu cuối của PC.
- Cung cấp giải pháp chi phí thấp song vẫn hỗ trợ truyền dẫn với tốc độ
lên đến 480Mb/s.
- Hỗ trợ ứng dụng thời gian thực như voice, audio, video,
- Giao thức linh hoạt cho các chế độ hỗn hợp: isochronous data transfers
và asynchronous messaging.
- Tích hợp công nghệ thiết bị tiện nghi.
- Được Windows và các hệ điều hành khác hỗ trợ do đó có thể không
cần driver mức thấp cho các thiết bị USB.
- Đa năng do đó nhiều thiết bị có thể ghép nối với PC thông qua chuẩn
USB.
- Độ tin cậy cao.


Đồ án tốt nghiệp Sơ lược về chuẩn USB 2.0





Lê Ngọc Du - Lớp ĐT7 - K46 - ĐHBKHN 7


1.3 Mô tả hệ thống USB

Một hệ thống USB được mô tả bởi ba định nghĩa:
- Kết nối USB
- Các thiết bị USB
- USB host
•Kết nối USB được hiểu là kiểu kết nối mà trong đó các thiết bị USB
được kết nối và giao tiếp với máy tính chủ. Kết nối USB bao gồm các vấn đề
sau:
+ Kiến trúc Bus: Mô hình kết nối giữa các thiết bị USB và Host.
+ Những mối quan hệ Inter-layer : Dưới d
ạng một tập khả năng, các tác
vụ USB được thực hiện tại mỗi lớp trong hệ thống.
+ Các mô hình luồng dữ liệu: Là hình thức mà trong đó dữ liệu di
chuyển trong hệ thống qua USB.
+ Lập trình USB: USB cung cấp một sự kết nối dùng chung. Việc truy
cập tới kết nối được lập trình theo thứ tự để hỗ trợ truyền dữ liệu đẳng thời và
khử
sự phân xử ban đầu.


1.3.1 Kiến trúc Bus
Bus tuần tự đa năng nối các thiết bị USB với Host USB. Về mặt kết nối
vật lý USB đó là một kiến trúc tầng sao. Một Hub ở tại trung tâm của mỗi sao.
mỗi đoạn dây là một kết nối từ điểm tới điểm giữa Host và một Hub hoặc một
chức năng nào đó, hoặc một Hub nối tới Hub khác hoặc chức năng khác. Vớ
i 7
bit địa chỉ, ngoài máy chủ USB ra nó có thể quản lý tối đa 127 thiết bị ngoại vi.
Hình 1.1 sẽ minh hoạ kiến trúc của USB.
Đồ án tốt nghiệp Sơ lược về chuẩn USB 2.0





Lê Ngọc Du - Lớp ĐT7 - K46 - ĐHBKHN 8

Hình 1.1: Kiến trúc Bus [1]

1.3.1.1 Máy chủ USB (USB Host)
Chỉ có duy nhất một Host trong một hệ thống USB bất kỳ. Giao diện
USB tới hệ thống máy chủ được xem như bộ điều khiển Host. Bộ điều khiển
Host có thể được thực hiện trong một kết hợp gồm phần cứng, vi chương trình
(firmware) hoặc phần mềm. Một Hub gốc (root hub) được tích hợp chỉ trong hệ
thống Host để cung cấp một hoặc nhi
ều điểm lắp thêm.

1.3.1.2 Các thiết bị USB
Thiết bị USB có thể là một trong các thiết bị sau:
-Hub: cung cấp điểm lắp thêm vào USB.
-Các chức năng: Cung cấp các khả năng cho hệ thống như một kết nối

ISDN, digital joystick, hoặc speakers.
-Thiết bị hiểu được giao thức USB



Đồ án tốt nghiệp Sơ lược về chuẩn USB 2.0





Lê Ngọc Du - Lớp ĐT7 - K46 - ĐHBKHN 9
1.4 Cáp USB

USB truyền tín hiệu và nguồn qua một cáp 4 sợi hình 1.2
Có 3 tốc độ truyền dữ liệu:
-USB tốc độ cao (USB high-speed): 480Mb/s.
-USB toàn tốc (USB full-speed): 12Mb/s.
-USB tốc độ thấp (USB low-speed): 1.2Mb/s.



Hình 1.2: USB Cable [1]
Cáp USB bao gồm 4 dây, D+ và D- được dùng để truyền tín hiệu, V
bus

và GND để cấp nguồn cho thiết bị ( Thường thì V
bus
=5V còn GND=0V tại
nguồn). USB cho phép chiều dài các đoạn cáp có thể thay đổi lên tới vài mét.

Ở phía máy chủ Host thì D+ và D- được nối đất qua các điện trở R
pd
còn
về phía thiết bị ngoại vi, các đầu dây D+, D- được bảo vệ bởi điện trở cuối (đó
chính là các điện trở R
pu
. Thiết bị tốc độ cao hoặc toàn tốc cần có điện trở nối
+3.3 V cho đầu D+, thiết bị tốc độ thấp cần có điện trở nối lên 3.3 V cho đầu
D Những điện trở này tạo nên các mức điện thế khác nhau giữa D+ và D-
giúp cho máy chủ phát hiện được việc cắm vào hay rút ra của thiết bị cũng như
tốc độ truyền dữ liệu c
ủa thiết bị.







Đồ án tốt nghiệp Sơ lược về chuẩn USB 2.0





Lê Ngọc Du - Lớp ĐT7 - K46 - ĐHBKHN 10





Chương 2: Mô hình luồng dữ liệu USB

Chương này mô tả cách thực hiện một kết nối USB, cách mà dữ liệu
được truyền qua USB.

2.1 Các thành phần trong việc thực hiện kết nối USB
Việc thực hiện kết nối USB gồm các thành phần:
- Thiết bị USB vật lý: Một phần cứng ở đầu cuối của cáp USB thi
hành một vài chức năng hữu dụng với người sử dụng.
- Client Software: Phần mềm thi hành trên máy chủ, đáp ứng cho thiết
bị USB. Phần mềm này có thể được cung cấp bởi hệ điều hành hoặc
được cung cấp cùng với thi
ết bị USB.
- USB System Software: Là phần mềm hỗ trợ USB trong một hệ điều
hành cụ thể. Phần mềm hệ thống USB thường được cung cấp kèm
với hệ điều hành, nó không hề phụ thuộc vào một thiết bị USB cụ thể
nào cũng như phần mềm client cụ thể nào.
- USB Host Cotroller: Bao gồm phần cứng và phần mềm cho phép các
thiết bị USB kết nố
i tới Host.
Hình 2.1 sau sẽ chỉ ra sự tương tác giữa một số lớp và thực thể trong
một kết nối đơn giản giữa host và thiết bị.
Đồ án tốt nghiệp Sơ lược về chuẩn USB 2.0





Lê Ngọc Du - Lớp ĐT7 - K46 - ĐHBKHN 11


Hình 2.1: Các vùng thực hiện trong một kết nối USB [1]
-USB Bus interface Layer cung cấp kết nối vật lý, gói tin, báo hiệu giữa
Host và một thiết bị.
-USB Decive Layer cho thấy hệ điều hành hỗ trợ thiết bị USB cần có
một phần mềm hệ thống để thực hiện việc quản lý thiết bị USB logic.
-Function Layer cung cấp khả năng được thêm vào cho Host qua phần
mềm khách (client software). Chính client software sẽ giúp thể hiện chức năng
của thiết bị USB trên Host.

2.2 Bus topology
Bus topology có 4 thành phần chính:
- Host và các thiết bị: đây là các thành phần sơ cấp của một hệ thống
USB.
- Cấu trúc vật lý: cho thấy các thành phần USB được nối với nhau như
thế nào.
- Cấu trúc logic: cho thấy vai trò và trách nhiệm của các thành phần
USB khác nhau và USB xuất hiện như thế nào từ hình phối cảnh của
Host và một thiết bị.
- Mối liên quan giữa chức năng và phần mềm khách (client software).
Đồ án tốt nghiệp Sơ lược về chuẩn USB 2.0





Lê Ngọc Du - Lớp ĐT7 - K46 - ĐHBKHN 12
2.2.1 USB Host
Kết cấu logic của Host được chỉ ra trong hình 2.2 gồm có
- Bộ điều khiển Host.
- Phần mềm hệ thống USB đã được gộp chung (thực chất nó gồm:

USB Driver, Host Controller Driver và Host software).
- Phần mềm khách (client software).

Hình 2.2: Kết cấu Host [1]

2.2.2 Các thiết bị USB
Kết cấu logic của một thiết bị USB vật lý được chỉ ra trong hình 2.3
gồm :
- Giao diện bus USB.
- Thiết bị USB logic.
- Chức năng.
Đồ án tốt nghiệp Sơ lược về chuẩn USB 2.0





Lê Ngọc Du - Lớp ĐT7 - K46 - ĐHBKHN 13

Hình 2.3: Kết cấu thiết bị vật lý [1]
Các thiết bị USB vật lý cung cấp các chức năng bổ sung cho Host. Các
thiết bị USB khác nhau thì cung cấp các chức năng khác nhau. Mặc dù vậy thì
các thiết bị USB logíc có nối ghép tới Host cơ bản giống nhau.

2.2.3 Kiến trúc bus vật lý (Physical Bus Topology)
Kết nối vật lý của các thiết bị USB thông qua kiến trúc tầng sao (tiered
star topology) như ở hình 2.4. Các điểm nối USB được thông qua bởi một lớp
thiết bị USB đặc biệt được hiểu là Hub. Các điểm nối bổ sung được kết nối
thông qua Hub được gọi là các cổng. Host bao gồm cả một Hub được nối với
nó gọi là Hub gốc (root hub). Các kết nối được thực hiện tại các cổng c

ủa Hub
gốc. Các thiết bị cung cấp các chức năng bổ sung cho Host được hiểu là các
chức năng (function).
Đồ án tốt nghiệp Sơ lược về chuẩn USB 2.0





Lê Ngọc Du - Lớp ĐT7 - K46 - ĐHBKHN 14

Hình 2.4: Kiến trúc bus vật lý USB [1]

2.2.4 Kiến trúc bus logic
Trong khi các thiết bị vật lý được kết nối tới Host theo kiến trúc tầng sao
thì quá trình truyền thông giữa Host với mỗi thiết bị logic được xem như là kết
nối trực tiếp tới cổng gốc (root port). Trong trường hợp này thì bản thân các
hub cũng là các thiết bị logic, nhưng hình 2.5 dưới đây không vẽ ra để cho hình
vẽ đơn giản dễ hiểu.

Hình 2.5: Kiến trúc bus logic USB [1]

2.2.5 Mối quan hệ giữa chức năng và phần mềm khách
Trong quá trình hoạt động, phần mềm khách nên độc lập với các thiết bị
khác có thể được gắn tới USB.
Đồ án tốt nghiệp Sơ lược về chuẩn USB 2.0






Lê Ngọc Du - Lớp ĐT7 - K46 - ĐHBKHN 15
2.3 Luồng truyền thông USB
USB cung cấp một dịch vụ truyền thông giữa phần mềm trên Host và
chức năng USB của nó. Các chức năng có thể có yêu cầu luồng truyền thông
khác nhau cho các tương tác client-to-function khác nhau. USB cung cấp sự sử
dụng bus toàn diện hơn bằng cách tách các luồng truyền thông khác nhau tới
một chức năng USB. Mỗi luồng truyền thông được kết thúc tại một điểm cuối
trên trên một thiết bị. Điểm cuối củ
a thiết bị được sử dụng để xác định hướng
của mỗi luồng truyền thông. Hình 2.6 thuyết minh cách các luồng thông tin
được truyền qua các ống dẫn (đường truyền) giữa các điểm cuối và các bộ nhớ
đệm phía Host. Phần mềm trên Host giao tiếp với một thiết bị logic qua một tập
các luồng truyền thông. Tập các luồng truyền thông được chọn bởi các nhà
thiết kế phần cứng/phầ
n mềm để đáp ứng một cách có hiệu quả các nhu cầu của
thiết bị tới đặc tính truyền tải được cung cấp bởi USB.

Hình 2.6: Luồng truyền thông USB [1]

2.4 Các loại truyền dữ liệu USB
USB truyền dữ liệu qua một ống dẫn (đường truyền) giữa một bên là bộ
nhớ đệm được liên kết với một phần mềm khách trên máy chủ với một bên là
một điểm cuối trên thiết bị USB. USB cung cấp các dạng truyền tải khác nhau
đã được tối ưu hoá để đáp ứng một cách thích hợp nhất các nhu cầu của phần
Đồ án tốt nghiệp Sơ lược về chuẩn USB 2.0






Lê Ngọc Du - Lớp ĐT7 - K46 - ĐHBKHN 16
mềm khách và chức năng. USB cung cấp 4 loại truyền dữ liệu: truyền điều
khiển (control transfer); truyền ngắt (interrupt transfer); truyền đẳng thời
(isochronous transfer) và truyền khối (bulk transfer).

2.4.1 Truyền điều khiển
Truyền điều khiển là truyền theo kiểu hai chiều. Loại truyền này thường
được sử dụng để cài đặt thiết bị ngoại vi. Giao thức truyền điều khiển được bắt
đầu bằng một giai đoạn thông báo (token stage), tiếp theo là giai đoạn dữ liệu
(data stage) và kết thúc là giai đoạn bắt tay (handshake stage). Mọi thiết bị
ngoại vi USB đều phải xử lý được loại truyền này.

2.4.2 Truyền ngắt
Truyền ngắt là kiểu truyền một chiều. Loại truyền này được dùng cho
các thiết bị ngoại vi như bàn phím, chuột, joystick . Vì Host không thể ngắt nên
các ngắt từ thiết bị ngoại vi được xử lý trong vòng đợi. Người lập trình hệ
thống có nhiệm vụ xử lý vòng đợi này. Giao thức truyền ngắt khởi động khi
máy chủ (Host) bắt đầu bằng một thông báo IN (IN Token). Thiết bị ngoại vi
trả lời bằ
ng một gói NAK nếu không có ngắt. Trong trường hợp có ngắt thì
thiết bị ngoại vi trả lời bằng một gói dữ liệu. Khi nhận hết dữ liệu máy chủ sẽ
trả lời bằng một gói ACK nếu dữ liệu không có lỗi hoặc không trả lời gì nếu có
lỗi. Nếu bị nghẽn ở điểm cuối của thiết bị ngoại vi, nó sẽ gửi đến máy chủ
gói
STALL và đợi phần mềm hệ thống trên máy chủ xử lý.

2.4.3 Truyền đẳng thời
Truyền đẳng thời là phương pháp truyền một chiều, hướng cuộc truyền
có thể từ thiết bị ngoại vi về máy chủ hoặc ngược lại. Vì thế cuộc truyền cần

hai điểm cuối ở thiết bị ngoại vi hoặc hai đường ống dẫn phần mềm ở phía máy
chủ nếu thiết bị cần dùng kiểu truyền này để thông tin 2 chiều. Giao thức
truy
ền đẳng thời bắt đầu bằng gói IN hoặc OUT từ máy chủ tuỳ thuộc vào
hướng truyền và loại điểm cuối. Ví dụ trong trường hợp gói IN, thiết bị truyền
Đồ án tốt nghiệp Sơ lược về chuẩn USB 2.0





Lê Ngọc Du - Lớp ĐT7 - K46 - ĐHBKHN 17
dữ liệu về máy chủ. Trong trường hợp OUT, máy chủ tiếp tục bằng cách truyền
dữ liệu. Truyền đẳng thờ
i không dùng gói bắt tay để thông báo kết quả truyền
nên thông tin có thể bị thất lạc. Loại truyền này thường được dùng cho điện
thoại hay loa.

2.4.4 Truyền khối
Truyền khối là phương pháp truyền một chiều. Hướng truyền có thể từ
điểm cuối về máy chủ hay ngược lại. Như vậy một thiết bị ngoại vi cần cả hai
chiều dữ liệu sẽ cần có hai điểm cuối. Giao thức truyền khối gồm có 3 giai
đoạn: Thông báo, dữ liệu và gói bắt tay. Nếu thiết bị bị kẹt sẽ không có giai
đoạ
n dữ liệu mà chỉ có thông báo và bắt tay. Dữ liệu sẽ được truyền qua ống
dẫn từ một vùng đệm dữ liệu trong bộ nhớ của chương trình tương ứng tới một
điểm cuối của thiết bị ngoại vi.
























Đồ án tốt nghiệp Sơ lược về chuẩn USB 2.0





Lê Ngọc Du - Lớp ĐT7 - K46 - ĐHBKHN 18




Chương 3: Tầng giao thức USB

Chương này đem lại một cái nhìn từ dưới lên trên của giao thức USB,
bắt đầu với các định nghĩa trường và gói, sau đó là mô tả các giao tác và cuối
cùng là việc đồng bộ và thử lại.

3.1 Thứ tự Byte/Bit
Các bit trong một Byte truyền trên bus sẽ được truyền lần lượt từ bit
LSB cho đến MSB. Trong các mục dưới đây thì các gói sẽ được biểu diễn bởi
các bit và các trường sắp xếp theo thứ tự từ trái qua phải, đó cũng chính là thứ
tự mà chúng được gửi qua bus.

3.2 Trường đồng bộ
Tất cả các gói đều bắt đầu bởi trường đồng bộ . Nó được sử dụng bởi
mạch đầu vào để căn chỉnh dữ liệu vào với xung đồng hồ nội. Trường đồng bộ
được định nghĩa có độ dài 8 bit cho truyền tốc độ toàn tốc hoặc tốc độ thấp và
32 bit cho truyền tốc độ cao. 2 bít cuối cùng của trường đồng bộ đánh dấu s

kết thúc của trường đồng bộ và sự bắt đầu của PID (Packet Identifier Field).
Hình 3.1 sau sẽ cho thấy khuôn mẫu của trường đồng bộ với truyền tốc độ thấp
hoặc toàn tốc.

Hình 3.1: Mẫu đồng bộ [1]
Đồ án tốt nghiệp Sơ lược về chuẩn USB 2.0





Lê Ngọc Du - Lớp ĐT7 - K46 - ĐHBKHN 19

Mẫu đồng bộ 32 bit cho truyền tốc độ cao có dạng hoàn toàn tương tự
như sau: 01010101010101010101010101010100. Trường đồng bộ chỉ được
dùng như một cơ chế đồng bộ nên trong các biểu đồ của các gói được trình bày
sau đây sẽ không chỉ ra trường này nữa ( ta ngầm hiểu là nó nằm ở đầu mỗi
gói).

3.3 Định dạng các trường của gói
Phần này sẽ trình bày về định dạng các trường của các loại gói trong
USB là: Gói thông báo (token), gói dữ liệu (data), gói bắt tay (handshake) và
gói đặc biệt (special).

3.3.1 Trường nhận dạng gói
Trường nhận dạng gói PID (Packet Identifier Field) theo ngay sau
trường đồng bộ của các gói . Một PID gồm một trường dạng gói 4 bit và theo
sau đó là trường 4 bit kiểm tra như hình 3.2 . PID cho biết kiểu gói, định dạng
của gói và kiểu phát hiện lỗi được áp dụng cho gói chứa nó. Trường kiểm tra 4
bit của PID là để đảm bảo quá trình giải mã là đúng đắn. Một lỗi PID xảy ra
nếu 4 bit của trường kiểm tra PID không phải là những sự bổ sung
đảo của các
bít định dạng gói tương ứng.

Hình 3.2: Định dạng PID [1]
Host và tất cả các chức năng phải thực hiện quá trình giải mã một cách
đầy đủ đối với tất cả các trường PID nhận được. Bất kỳ PID nào nhận được với
trường kiểm tra sai hoặc là kết quả giải mã đem đến một giá trị không được
định nghĩa thì cho rằng PID hỏng và phía nhận sẽ bỏ qua. Nếu chức năng nhận
được PID là hoàn toàn đ
úng đắn đối với kiểu giao tác hoặc hướng của giao
thức mà nó không hỗ trợ thì chức năng không trả lời lại. Các kiểu PID và mô tả
của nó được liệt kê trong bảng 3.1 trang sau.

Đồ án tốt nghiệp Sơ lược về chuẩn USB 2.0





Lê Ngọc Du - Lớp ĐT7 - K46 - ĐHBKHN 20
Bảng 3.1: Các kiểu PID [1]
Loại
PID
Tên PID
4 bit thấp
của
PID
(Q
3
→Q
0
)
Mô tả
Thông
báo

OUT


IN


SOF


SETUP



0001B


1001B


0101B

1101B



Địa chỉ của chức năng và số điểm cuối
của chức năng trong giao tác truyền từ
host tới chức năng
Địa chỉ của chức năng và số điểm cuối
của chức năng trong giao tác truyền từ
chức năng tới host
Đánh dấu sự khởi đầu của một khung
và s
ố khung
Địa chỉ của chức năng và số điểm cuối
của chức năng trong giao tác thiết lậ
p


từ host tới chức năng qua một ống
điều khiển
Dữ liệu
DATA0
DATA1
DATA2


MDATA


0011B
1011B
0111B


1111B


PID của gói dữ liệu chẵn
PID của gói dữ liệu lẻ
PID của gói dữ liệu tốc độ cao, giao
tác đẳng thời băng tần cao trong một
vi khung
PID gói dữ liệu tốc độ cao cho giao
tác phân chia và giao tác đẳng thời
băng tần cao.
Bắt tay
ACK


NAK

STALL

NYET
0010B

1010B

1110B

0110B
Bên thu có thể nhận và đã nhận được
gói dữ liệu không có lỗi
Thiết bị thu chưa thể nhận dữ liệu
hoặc thiết bị phát chưa thể gửi dữ liệu
Điểm cuối bị dừng hoặc yêu cầu về
ống điều khiển không được hỗ trợ
Chưa có đáp ứng t
ừ phía thu
Đặc
biệt
PRE



ERR


SPLIT


PING


Reserved
1100B



1100B


1000B

0100B


0000B
Đoạn thông báo khởi đầu được phát ra
bởi host cho phép lưu lượng
downstream bus truyền tới các thiết bị
tốc độ thấp
Gói bắt tay cho phép một hub tốc độ
cao thông báo có lỗi trên bus toàn tốc
hoặc bus tốc độ thấp
Thông báo giao tác phân chia tốc độ
cao
Thông báo rằng luồng tốc độ cao điều
khiển thăm dò một đi
ểm cuối điều

khiển hoặc khôi
PID dự trữ
Đồ án tốt nghiệp Sơ lược về chuẩn USB 2.0





Lê Ngọc Du - Lớp ĐT7 - K46 - ĐHBKHN 21
Ghi chú: Các bit của PID được chỉ ra trong bảng theo thứ tự từ trái qua
phải tương ứng với MSb đến LSb do đó khi truyền trên bus thì sẽ được truyền
theo thứ tự phải trước trái sau.

3.3.2 Các loại trường địa chỉ
Chức năng điểm cuối được địa chỉ hoá bằng cách sử dụng hai trường:
trường địa chỉ chức năng và trường điểm cuối. Đối với chức năng thì nó cần
phải giải mã hoàn toàn cả trường địa chỉ lẫn trường điểm cuối. Nếu địa chỉ
hoặc điểm cuối mà chưa được cho phép hoặc có một sự
không phù hợp ở mỗi
trường thì gói mã thông báo (token packet) sẽ bị bỏ qua. Việc truy nhập tới các
điểm cuối mà các điểm cuối đó không được khởi tạo thì gói mã thông báo cũng
sẽ bị bỏ qua.

3.3.2.1 Trường địa chỉ
Trường địa chỉ chức năng (ADDR) chỉ ra chức năng là nguồn hay đích
của một gói dữ liệu dựa vào giá trị của mã thông báo PID. Hình 3.3 cho thấy
tổng cộ
ng có 128 địa chỉ được xác định bởi ADDR (7 bit). Mỗi giá trị của
trường địa chỉ chỉ ra địa chỉ của một chức năng duy nhất. Khi hệ thống được
cấp nguồn hoặc reset thì địa chỉ của chức năng được mặc định có giá trị

0000000b (tức Host và thiết bị sẽ cùng coi 0000000b là địa chỉ của thiết bị khi
khởi tạo) do đó nó cần được lập trình bởi host để cung cấp cho chức năng một
địa chỉ mới để tiện trao đổi sau này khi có nhiều chức năng USB cùng được
gắn với Host. Cũng từ đây ta thấy rằng địa chỉ 0000000b chỉ nên dùng với mục
đích cung cấp địa chỉ khởi tạo mặc định mà không nên dùng vào mục đích khác.

Hình 3.3: Trường địa chỉ (ADDR Field) [1]



Đồ án tốt nghiệp Sơ lược về chuẩn USB 2.0





Lê Ngọc Du - Lớp ĐT7 - K46 - ĐHBKHN 22
3.3.2.2 Trường điểm cuối
Một trường điểm cuối được thêm vào như trong hình 3.4 cho phép việc
đánh địa chỉ chức năng mềm dẻo hơn khi có nhiều hơn một điểm cuối được cần
đến. Trường điểm cuối được định nghĩa cho các thông báo IN, SETUP, OUT
và thông báo đặc biệt PING. Tất cả các chức năng phải hỗ trợ một ống điều
khiển tại điểm cuối 0 (the Default Control Pipe). Thiết bị tốc độ thấp hỗ trợ tối
đa 3 ống dẫn cho một chức năng. Các chức năng toàn tốc hay tốc độ cao có thể
hỗ trợ tối đa tới16 điểm cuối.

Hình 3.4: Trường điểm cuối [1]

3.3.3 Trường số khung
Trường số khung là một trường 11 bit do Host tăng thêm trên mỗi khung

cơ sở. Trường số lên tới con số cực đại là 7FFh và chỉ được gửi trong các mã
thông báo SOF (Start Of Frame) bắt đầu của mỗi khung.

3.3.4 Trường dữ liệu
Trường dữ liệu của giao thức USB cho phép có kích thước từ 0 đến
1024 Byte và phải là một số nguyên lần của Byte. Hình 3.5 cho thấy khuôn
dạng cho nhiều Byte. Các bit dữ liệu bên trong mỗi Byte được chuyển ra ngoài
theo thứ tự từ LSb cho đến MSb.

Hình 3.5: Định dạng trường dữ liệu [1]



Đồ án tốt nghiệp Sơ lược về chuẩn USB 2.0





Lê Ngọc Du - Lớp ĐT7 - K46 - ĐHBKHN 23
3.3.5 Các trường kiểm độ dư vòng (Cyclic Redundancy Checks)
Các trường kiểm độ dư vòng được dùng để bảo vệ tất cả các trường
không phải là trường PID trong các gói mã thông báo và gói dữ liệu. Tất cả các
CRC được tạo thông qua các trường tương ứng của nó ở bộ phận phát trước khi
thực hiện việc nhồi các bit. Tương tự như vậy, các CRC được giải mã ở bộ
phận nhận sau khi loại bỏ việc nhồi các bit. Nếu một CRC bị hỏng thì các
trường được bảo vệ bởi CRC đó sẽ bị bên nhận bỏ qua. Trong đa số trường hợp
thì bên nhận sẽ bỏ qua toàn bộ gói.

3.3.5.1 Token CRCs

Một trường CRC 5 bit được cung cấp cho các trường ADDR và điểm
cuối của các thông báo IN, SETUP và OUT hoặc cho trường nhãn thời gian của
thông báo SOF. Các thông báo đặc biệt PING và SPLIT cũng được bảo vệ
trong một trường CRC 5 bit. Đa thức sinh có dạng:
G(X)=X
5
+X
2
+1.
Mẫu bit biểu diễn cho đa thức này là 00101B. Nếu tất cả các thông báo
được nhận mà không có lỗi thì 5 bit tương ứng nhận được ở phía thu là 01100B.

3.3.5.2 Data CRCs
CRC dữ liệu gồm 16 bit bảo vệ cho trường dữ liệu của một gói dữ liệu.
Đa thức sinh là:
G(X)=X
16
+X
15
+X
2
+1
Mẫu bit biểu diễn cho đa thức này là 1000000000000101B. Nết tất cả dữ
liệu và các bit CRC được nhận đúng thì 16 bit tương ứng phía thu sẽ
là:1000000000001101B.

3.4 Các định dạng gói
Phần này sẽ trình bày về dịnh dạng gói của các loai gói sau: gói thông
báo (token packet), gói dữ liệu (data packet) và gói bắt tay (handshake packet).
Đồ án tốt nghiệp Sơ lược về chuẩn USB 2.0






Lê Ngọc Du - Lớp ĐT7 - K46 - ĐHBKHN 24
Các trường trong mỗi gói sẽ được thể hiện trong các hình vẽ theo đúng thứ tự
mà chúng được dịch ra bus.

3.4.1 Các loại gói thông báo
Hình 3.6 chỉ ra khuôn dạng các trường cho một gói thông báo. Các gói
thông báo bao gồm 1 trường PID chỉ rõ đây là loại gói IN, OUT hay SETUP,
ngoài ra còn có các trường ADDR và ENDP. Gói thông báo đặc biệt PING
cũng có khuôn dạng tương tự như trên. Đối với các giao tác OUT và SETUP
thì các trường địa chỉ và điểm cuối chỉ để chỉ ra điểm cuối sẽ nhận gói dữ liệu
theo sau. Đối với giao tác IN thì các trường này sẽ chỉ ra điểm cuối nào sẽ gửi
một gói dữ li
ệu tới Host. Còn đối với giao tác PING thì các trường này chỉ ra
điểm cuối sẽ đáp ứng lại với một gói bắt tay. Chỉ có Host mới có thể phát ra
các gói thông báo. Một IN PID chỉ ra một giao tác dữ liệu từ chức năng tơi
Host. Các PID loại OUT và SETUP chỉ ra giao tác dữ liệu từ Host tới chức
năng. Một PID loại PING chỉ ra một giao tác bắt tay từ chức năng gửi tới Host.

Hình 3.6: Khuôn dạng gói thông báo [1]
Các gói thông báo có trường CRC 5 bit để bảo vệ cho các trường ADDR
và ENDP như hình trên. Trường CRC không bảo vệ cho trường PID bởi trường
PID đã có một trường kiểm tra riêng cho chính bản thân nó.

3.4.2 Các loại gói thông báo đặc biệt của giao tác phân chia
USB định nghĩa một gói thông báo đặc biệt cho giao tác phân chia đó là

SPLIT. Đây là một gói thông báo 4 byte khác với 3 byte của một gói thông báo
thông thường. Gói thông báo giao tác phân chia cung cấp các dạng giao tác bổ
sung với thông tin chỉ rõ giao tác được thêm vào. Thông báo giao tác phân chia
Đồ án tốt nghiệp Sơ lược về chuẩn USB 2.0





Lê Ngọc Du - Lớp ĐT7 - K46 - ĐHBKHN 25
được sử dụng để hỗ trợ việc phân biệt giữa quá trình giao tiếp của bộ điều
khiển host với hub tại tốc độ cao với quá trình giao tiếp của hub với các thiết bị
toàn tốc hoặc tốc độ thấp gắn với hub. Do việc giao tiếp giữa bộ điều host và
hub thường được đảm nhiệm bởi chip trên main board nên ở đây ta không đề
cập sâu thêm vấn đề này (chi tiết về vấn đề này có thể tham khảo tại mục 8.4.2
của tài liệu [1]).

3.4.3 Gói bắt đầu khung SOF (Start-of-Frame Packet)
Các gói SOF được phát ra bởi máy chủ host với tốc độ thường là khoảng
1 ms ±0.0005ms một lần cho bus toàn tốc và khoảng 125 µs ±0.0625 µs cho
bus tốc độ cao. Các gói SOF gồm một PID chỉ ra loại gói và theo sau đó là
trường số khung 11 bit, cuối cùng là CRC 5 bit.

Hình 3.7: Khuôn dạng gói SOF
Thông báo SOF bao hàm một giao tác đánh dấu điểm bắt đầu khung và
số khung đáp ứng khoảng cách thời gian chính xác để bắt đầu một khung khác.
Các chức năng toàn tốc và tốc độ cao bao gồm cả hub sẽ là nơi nhận gói SOF
và dù nhận được hay không, đúng hay sai thì cũng sẽ không có bất kỳ thông tin
phản hồi nào về việc đó tới Host.


3.4.4 Gói dữ liệu
Một gói dữ liệu bao gồm một trường PID 8 bit, tiếp là trường dữ liệu (có
thể từ 0 byte tới 1024 byte) và cuối cùng là trường CRC 16 bit. Trường CRC
chỉ được tạo từ trường dữ liệu mà không tính cả trường PID. Kích thước tải tin
tối đa cho phép đối với thiết bị tốc độ thấp là 8 byte, với thiết bị toàn tốc là

×