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

thiết kế xây dựng thiết bị usb dongle - bảo vệ phần mềm có bản quyền

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.61 MB, 128 trang )






SỞ KHOA HỌC VÀ CÔNG NGHỆ THÀNH ĐOÀN
TP. HỒ CHÍ MINH TP. HỒ CHÍ MINH

CHƢƠNG TRÌNH VƢỜN ƢƠM
SÁNG TẠO KHOA HỌC VÀ CÔNG NGHỆ TRẺ
***
BÁO CÁO NGHIỆM THU


Tên đề tài:
THIẾT KẾ VÀ XÂY DỰNG THIẾT BỊ
USB DONGLE – BẢO VỆ PHẦN MỀM
CÓ BẢN QUYỀN



Chủ nhiệm đề tài: TRẦN NGUYÊN ĐẠI HÃN
Cơ quan chủ trì: TRUNG TÂM PHÁT TRIỂN
KHOA HỌC VÀ CÔNG NGHỆ TRẺ




TP. Hồ Chí Minh, tháng 10 năm 2011




SỞ KHOA HỌC VÀ CÔNG NGHỆ THÀNH ĐOÀN
TP. HỒ CHÍ MINH TP. HỒ CHÍ MINH


BÁO CÁO NGHIỆM THU



Tên đề tài:
THIẾT KẾ VÀ XÂY DỰNG THIẾT BỊ
USB DONGLE – BẢO VỆ PHẦN MỀM
CÓ BẢN QUYỀN




Chủ nhiệm đề tài: TRẦN NGUYÊN ĐẠI HÃN
Số điện thoại: 0903.015.067
Email:




TP. Hồ Chí Minh, tháng 10 năm 2011



3


TÓM TẮT NỘI DUNG NGHIÊN CỨU

Không chỉ ở các nƣớc đang phát triển mà cả các nƣớc phát triển, tình trạng vi
phạm bản quyền phần mềm máy tính đều rất phổ biến. Hiện tại, đây đang là thực tế
nhức nhối ở Việt Nam.
Phần mềm ra đời và để bảo hộ các quyền của tác giả, chủ sở hữu của nó; do đó
cần có một giải pháp hợp lý và khả thi để hạn chế việc xâm phạm và sử dụng những
phần mềm không có đăng ký. Qua đó mới khuyến khích việc phát triển phần mềm, tạo
sự yên tâm trong việc sử dụng phần mềm hợp pháp, bản quyền phần mềm phải đƣợc
tôn trọng và thực thi để thúc đẩy sự phát triển xã hội và công nghệ.
Với sự phát triển ngày càng nhanh chóng của công nghệ thông tin nhƣ hiện nay
thì nhu cầu bảo vệ các sản phẩm phần mềm, những sản phẩm trí tuệ ngày càng đƣợc
quan tâm và có ý nghĩa hết sức quan trọng.
Việc ứng dụng hệ thống nhúng trong bảo vệ sử dụng phần mềm có bản quyền là
một trong những hƣớng mới vào thời điểm hiện tại. Một thiết bị đƣợc sản xuất tƣơng
thích để đảm bảo rằng khi có nó tích hợp vào thì phần mềm sẽ đƣợc đăng ký và sử
dụng hợp pháp.
Từ những tính cấp thiết và ý nghĩa nêu trên, đề tài ―Thiết kế và xây dựng thiết bị
USB Dongle – bảo vệ phần mềm có bản quyền‖ đã đƣợc nhóm xây dựng, có chức
năng chứng thực quyền sử dụng các phần mềm có bản quyền.



4

SUMMARY OF RESEARCH CONTENT

Not only in the developing countries, developed countries included, the
situation pirated computer software were very popular. Currently, this is a really
problem in Vietnam.

To protect the rights of copyright owners of it. We need a reasonable solution and
feasible to limit the infringement of licensed software. Thereby encouraging the
development of new software, creating peace of mind in the use of legitimate
software, software copyrights should be respected and implemented to promote social
development and technology.
Today, with the increasingly development of information technology, the need to
protect the software product, the brainchild growing interest and of paramount
importance.
The application of embedded systems in the protection of software copyright is
one of the new direction in the present time. A device made compatible to ensure that
when it is integrated into the software will be registered and used legally.
From the urgency and the sense mentioned above, the project "Design and
construction equipment USB Dongle - protect software copyright" was team building,
for the right to use the software All rights reserved.



5

Lời nói đầu
Thành phố Hồ Chí Minh đang chuyển mình mạnh mẽ trong sự nghiệp công
nghiệp hóa, hiện đại hóa, vấn đề đặt ra là phải xây dựng một nguồn nhân lực trẻ có
kiến thức và kỹ năng cao về khoa học công nghệ, vừa tìm tòi nghiên cứu – sáng tạo
vừa mở rộng ứng dụng – triển khai.
Chƣơng trình Vƣờn Ƣơm Sáng tạo khoa học kỹ thuật trẻ đã ra đời, mở ra cơ
hội mới cho đội ngũ sáng tạo trẻ đƣợc góp măt vào hoạt động khoa học công nghệ
cùng các bậc chuyên gia giỏi và giàu kinh nghiệm và tạo ra môi trƣờng để những nhà
khoa học trẻ phát huy tối đa năng lực sáng tạo.
Nhờ chƣơng trình Vƣờn Ƣơm này, mà nhóm có cơ hội mạnh dạn tham gia và
thử thách mình để thực hiện một đề tài nghiên cứu. Nhóm xin chân thành cảm ơn Sở

KHCN Tp.HCM và Thành đoàn Tp.HCM đã tạo điều kiện đầu tƣ tốt nhất để nhóm
hoàn thành đề tài. Cám ơn các Thầy/Cô trong hội đồng đánh giá đã có nhiều góp ý và
cung cấp tƣ liệu tham khảo. Cám ơn các bạn thành viên của nhóm và SELab đã nhiệt
tình làm việc trong 01 năm qua để đạt kết quả tốt nhất.
.
Tp.HCM, ngày 10 tháng 10 năm 2011
Chủ nhiệm đề tài


Trần Nguyên Đại Hãn




6

Tên đề tài:
Thiết kế và xây dựng thiết bị USB Dongle – bảo vệ phần mềm có
bản quyền


Chủ nhiệm đề tài:
Trần Nguyên Đại Hãn

Cơ quan chủ trì:
Trung tâm phát triển khoa học và công nghệ trẻ

Thời gian thực hiện đề tài:
Từ 07/2010 đến 10/2011




7

Mục tiêu: (theo đề cương đã được duyệt)

Nhằm hạn chế cũng nhƣ khắc phục tình trạng các phần mềm bị bẻ khóa. Việc xây
dựng USB Dongle nhƣ là một giải pháp nhằm mang lại cho những nhà sản xuất phần
mềm một hƣớng tiếp cận về bảo mật, bảo vệ sản phầm của mình trong việc sử dụng
bất hợp pháp.
Đề tài nghiên cứu thiết kế và xây dựng kiểm thử thiết bị USB Dongle hoàn chỉnh,
gồm có:
Thiết bị USB Dongle
ụ hỗ trợ SDK


Nội dung: (theo đề cương đã được duyệt)

1. Nghiên cứu chuẩn USB 2.0
2. Nghiên cứu phƣơng pháp mã hóa khóa để tích hợp vào thiết bị USB Dongle.
3. Xây dựng driver cho USB Dongle
4. Xây dựng firmware cho USB Dongle
5. Xây dựng công cụ hỗ trợ phát triển SDK - tƣơng tác đọc USB Dongle lấy lên
thông tin định danh để đăng kí sử dụng cho ứng dụng phần mềm cần chứng
thực
6. Phần mềm mẫu chạy trên PC có sử dụng USB dongle làm bảo vệ chống sử
dụng trái phép nếu không đăng kí
7. Kiểm thử và triển khai thử nghiệm.



8



TT
Các nội dung, công việc
chủ yếu cần đƣợc thực hiện
Phần trình bày tƣơng
ứng
01
Nghiên cứu chuẩn USB 2.0

Tài liệu, báo cáo
02
Nghiên cứu phƣơng pháp mã hóa khóa để
tích hợp vào thiết bị USB Dongle
Tài liệu, báo cáo
03
Thiết kế phần cứng
Thiết bị
04
Xây dựng driver cho USB Dongle

Báo cáo, cài đặt
05
Xây dựng firmware cho USB Dongle

Cài đặt
06
Xây dựng công cụ hỗ trợ phát triển SDK

Cài đặt
07
Xây dựng một phần mềm mẫu chạy trên
PC để nhận USB Dongle nhằm chứng
thực phần mềm có bản quyền.

Cài đặt
08
Kiểm thử và triển khai thử nghiệm.

Quy trình kiểm thử, tài
liệu báo cáo



9

Danh sách các cán bộ tham gia thực hiện đề tài:

STT
Tên tổ chức, cá nhân
Cơ quan
công tác
Nội dung
công việc tham gia
1
Trƣơng Thiên Đỉnh
SELAB

2

Chung Quang Khánh
SELAB

3
Phạm Đào Võ Nhật Quang
SELAB

4
Nguyễn Thị Kiêm Ái
SELAB

5
Trần Nguyên Đại Hãn
SELAB



10

Mục lục

TÓM TẮT NỘI DUNG NGHIÊN CỨU 3
SUMMARY OF RESEARCH CONTENT 4
Lời nói đầu 5
Mục tiêu: (theo đề cương đã được duyệt) 7
Nội dung: (theo đề cương đã được duyệt) 7
Mục lục 10
Danh sách các hình 13
Danh sách các bảng 16
Danh sách chữ viết tắt 18

CHƢƠNG 1: 19
1.1. Giới thiệu về các chuẩn USB (1) 19
1.2. Đặc trƣng cơ bản 20
1.3. Phƣơng thức truyền dữ liệu 23
1.3.1. Các kiểu truyền dữ liệu 23
1.3.2. Cấu trúc lƣu trữ các Packet 34
1.4. Các loại Request chuẩn 36
1.4.1. Get_Status 37
1.4.2. Set_Feature 38
1.4.3. Clear_Feature 39
1.4.4. Set_Address 40
1.4.5. Get_Descriptor 41
1.4.6. Set_Descriptor 42
1.4.7. Get_Configuration 42
1.4.8. Set_Configuraion 43
1.4.9. Get_Interface 43
1.4.10. Set_Interface 44
1.4.11. Synch_Frame 44
1.5. Các loại Descriptor chuẩn 44
1.6. Cấu trúc lƣu trữ các Descriptor 46
1.6.1. Device descriptor 46
1.6.2. Configuration descriptor 48
1.6.3. Interface descriptor 49
1.6.4. Endpoint descriptor 50
1.6.5. String descriptor 51
CHƢƠNG 2 52
2.1. Sơ đồ tổng quát (1) 52
2.2. Endpoint Descriptor 53
2.3. Transfer Descriptor 54
2.3.1. General TD 54

2.3.2. Isochronous TD 56
2.3.3. Completion Codes 58
2.4. Frame 59
2.5. Liệt kê thiết bị 59
61


11

61
62
63
65
CHƢƠNG 4: CÁC PHƢƠNG PHÁP BẢO VỆ PHẦN MỀM 67
4.1. Khái quát 67
4.2. Các phƣơng pháp thƣờng dùng 67
4.2.1. Dùng chuỗi serial key 67
4.2.2. Giới hạn thời gian sử dụng 68
4.2.3. Hạn chế tính năng, điều kiện sử dụng 69
4.2.4. Dùng tập tin đăng kí 70
4.2.5. Chống sao chép phần mềm từ đĩa CD 70
4.2.6. Bảo vệ bằng khóa cứng 71
72
72
5.1.1. Dongle là gì? 72
5.1.2. Lợi ích của USB Dongle 73
5.2. Chip xử lý chính 73
5.2.1. Chip LPC2103 (4) 73
5.2.2. Chip FT232R (5) 74
: 75

5.4. Hình ảnh 77
5.4.1. Mặt trên 77
5.4.2. Mặt dƣới 77
5.5. Số lƣợng và chi phí thành phẩm 77
5.6. Xây dựng firmware 78
CHƢƠNG 6: KIẾN TRÚC HỆ THỐNG CỦA USB DONGLE 79
6.1. Kiến trúc tổng quan của hệ thống 79
6.2. Khái quát cơ chế truyền nhận 80
6.2.1. Đối với phần mềm trên máy tính 82
6.2.2. Đối với phần xử lý dƣới board 83
6.3. Mô hình giao tiếp Dongle 83
6.3.1. Xác định khóa 84
6.3.2. Xác nhận license 85
6.3.3. Xác nhận tồn tại thiết bị 86
6.4. Giao diện lập trình (API) 88
6.4.1. Cho ứng dụng phần mềm 88
6.4.2. Cho phần cấu hình 89
6.5. Chƣơng trình cấu hình 90
6.5.1. Tính năng 90
6.5.2. Giao diện 90
91
7.1. Thuật toán mã hóa AES (6) 91
7.2. Thuật toán băm (7) 94
7.3. Thuật toán phát sinh license 95
7.3.1. Độ dài 95
7.3.2. Loại dữ liệu 95
7.3.3. Các bƣớc thực hiện 95


12


7.4. Cách thức chứng thực license 96
7.5. Cú pháp thông tin đƣợc truyền nhận 97
98
8.1. Các thành phần 98
8.2. Các bƣớc thực hiện 98
8.3. Cách sử dụng phần mềm chứng thực qua Dongle 99
8.4. Kiểm thử USB Dongle qua việc dùng tool hack Error! Bookmark not defined.
8.5. Cơ chế bảo vệ 100
8.6. Đánh giá 101
103
9.1. Kết quả đạt đƣợc 103
9.2. Hƣớng phát triển 105
106
108
: Driver và các khái niệm liên quan 108
1. Driver là gì? 108
2. Khái quát về WDM và WDF 109
3. Kiến trúc WDF 111
4. Mô hình I/O của Windows và Device Stack 112
5. IRP 114
6. KMDF 114
Phụ lục B: Cách tính tỉ lệ vi phạm bản quyền phần mềm 117





13


Danh sách các hình

Hình 1-1 Quy trình phát triển của chuẩn USB 19
Hình 1-2 Kiến trúc hình sao nhiều tầng của USB 21
Hình 1-3 Cấu trúc dây bên trong cáp USB 1.1 21
Hình 1-4 Hai chuẩn kết nối phổ biến của USB 22
Hình 1-5 Các chuẩn kết nối khác của USB 22
Hình 1-6 Cơ chế mã hóa NRZI và bit stuffing 23
Hình 1-7 Các thành phần cơ bản trong Control Transfer 24
Hình 1-8 Giai đoạn Setup stage trong Control Read transfer 25
Hình 1-9 Giai đoạn Data stage trong Control Read transfer 25
Hình 1-10 Giai đoạn Status stage trong Control Read transfer 26
Hình 1-11 Giai đoạn Setup stage trong Control Write transfer 27
Hình 1-12 Giai đoạn Data stage trong Control Write transfer 27
Hình 1-13 Giai đoạn Status stage trong Control Write transfer 28
Hình 1-14 Các thành phần cơ bản trong Bulk và Interrupt transfer 29
Hình 1-15 Quá trình In transaction trong Bulk và Interrupt transfer 30
Hình 1-16 Quá trình Out transaction trong Bulk và Interrupt transfer 30
Hình 1-17 Các thành phần cơ bản trong Isochronous transfer 32
Hình 1-18 Quá trình In transaction trong Isochronous transfer 33
Hình 1-19 Quá trình Out transaction trong Isochronous transfer 33
Hình 1-20 Sơ đồ tổ chức các descriptor chuẩn 45
Hình 2-1: Sơ đồ trao đổi dữ liệu giữa USB Host và USB Device 52
Hình 2-2 Cấu trúc lƣu trữ ED và TD 53
Hình 2-3 Băng thông hoạt động trong frame 59
Hình 2-4 Tiến trình liệt kê thiết bị 60
Hình 3-1: Đánh giá tỉ lệ vi phạm tại các nƣớc Châu Á 63


14


Hình 3-2: Thống kê 60 quốc gia có tỉ lệ vi phạm bản quyền cao nhất và thấp nhất trên thế giới
năm 2010 64
Hình 4-1: Minh họa nhập chuỗi license khi sử dụng 68
Hình 4-2: Phần mềm chỉ cho dùng tối đa 30 ngày 69
Hình 4-3: Giới hạn của bản phần mềm dùng thử 70
Hình 4-4: Phần mềm đòi hỏi file đăng kí khi cài đặt 70
Hình 4-5: Thiết bị khóa cứng nhƣ một chiếc khóa an toàn cho phần mềm 71
Hình 5-1: Khối Micro controller LPC2103 75
Hình 5-2: Khối FT232 76
Hình 5-3: Khối nguồn 76
Hình 5-4: Mặt trên USB Dongle 77
Hình 5-5: Mặt dƣới USB Dongle 77
Hình 6-1: Mô hình giao tiếp chứng thực qua thiết bị USB Dongle 79
Hình 6-2: Sơ đồ activity của phần mềm cần chứng thực 82
Hình 6-3: Sơ đồ trạng thái của device 83
Hình 6-4: Sơ đồ thể hiện trao đổi giữa Host và Device 84
Hình 6-5: Sơ đồ thể hiện thiết lập khóa 85
Hình 6-6: Sơ đồ thể hiện xác nhận license 86
Hình 6-7: Thông báo hiển thị khi không tìm thấy USB Dongle 87
Hình 6-8: Sơ đồ thể hiện việc xác nhận sự tồn tại của thiết bị 87
Hình 6-9: Giao diện chƣơng trình cấu hình Dongle 90
Hình 7-1: Bƣớc AddRoundKey 92
Hình 7-2: Bƣớc SubBytes 92
Hình 7-3: Bƣớc ShiftRows 93
Hình 7-4: Bƣớc MixColumns 93
Hình 7-5:Một thao tác MD5 95
Hình 7-6: Cấu trúc gói tin 97
Hình 0-1 – Mô hình giao tiếp Driver và thiết bị 108



15

Hình 0-2 – Mô hình phát triển Driver của Windows 109
Hình 0-3 – Kiến trúc WDF 111
Hình 0-4 – Mô hình điều phối gói IRP của Device Stack 114
Hình 0-5 – Kiến trúc mô hình KMDF 115





16

Danh sách các bảng

Bảng 1–1 Phiên bản USB và chuẩn phần cứng tƣơng thích 20
Bảng 1–2 Tốc độ truyền dữ liệu của USB 23
Bảng 1–3 Kích thƣớc dữ liệu có thể gửi nhận tối đa trong các kiểu truyền 34
Bảng 1–4 Cấu trúc PID 34
Bảng 1–5 Các loại packet 34
Bảng 1–6 Cấu trúc ADDR 35
Bảng 1–7 Cấu trúc ENDP 35
Bảng 1–8 Cấu trúc Token packet 35
Bảng 1–9 Cấu trúc Data packet 36
Bảng 1–10 Cấu trúc Handshake packet 36
Bảng 1–11 Cấu trúc SOF packet 36
Bảng 1–12 Cấu trúc Setup Packet 36
Bảng 1–13 Mã các loại request chuẩn 37
Bảng 1–14 Các tham số của Get_Status request 38

Bảng 1–15 Thông tin trả về của Get_Status request 38
Bảng 1–16 Các tham số của Set_Feature request 39
Bảng 1–17 Các loại Feature Selector 39
Bảng 1–18 Các tham số của Clear_Feature request 39
Bảng 1–19 Các tham số của Set_Address request 40
Bảng 1–20 Các tham số của Get_Descriptor request 41
Bảng 1–21 Các tham số của Set_Descriptor request 42
Bảng 1–22 Các tham số của Get_Configuration request 42
Bảng 1–23 Các tham số của Set_Configuration request 43
Bảng 1–24 Các tham số của Get_Interface request 43
Bảng 1–25 Các tham số của Set_Interface request 44
Bảng 1–26 Các tham số của Synch_Frame request 44


17

Bảng 1–27 Cấu trúc lƣu trữ Device descriptor 46
Bảng 1–28 Cấu trúc lƣu trữ Configuration descriptor 48
Bảng 1–29 Cấu trúc lƣu trữ Interface descriptor 49
Bảng 1–30 Cấu trúc lƣu trữ Endpoint descriptor 50
Bảng 1–31 Cấu trúc lƣu trữ String descriptor 51
Bảng 1–32 Các loại descriptor 51
Bảng 2–1 Cấu trúc Endpoint Descriptor 53
Bảng 2–2 Cấu trúc lƣu trữ General Transfer Descriptor 54
Bảng 2–3 Cấu trúc lƣu trữ Isochronous Transfer Descriptor 56
Bảng 2–4 Cấu trúc PacketStatusWord 57
Bảng 2–5 Danh sách lỗi giao tiếp 58
Bảng 5–1: Chi tiết các thành phần của USB Dongle 78
Bảng 8–1: Bảng ghi chú các cơ chế bảo mật của dòng LPC 101
Bảng 8–2: Bảng thể hiện các test case khi thực nghiệm 102





18

Danh sách chữ viết tắt

USB : Universal Serial Bus
AES : Advanced Encryption Standard
BSA : Business Software Alliance
MD5 : Message-Digest algorithm 5
SDK : Software Development Kit
API : Application Programming Interface
UART : Universal Asynchronous Receiver/Transmitter
GUID : Globally Unique IDentifier
FTDI : Future Technology Devices International
WDK : Windows Driver Kit
WDM : Windows Driver Model
CRD : Code Read Protection

Chương 1 – Tổng quan về chuẩn USB

19

CHƢƠNG 1: USB

Giới thiệu tổng quan về USB: các chuẩn USB, phương thức truyền và các yêu cầu thiết
lập khi giao tiếp qua USB


1.1. Giới thiệu về các chuẩn USB [1]
USB là một chuẩn kết nối tuần tự trong máy tính, đƣợc sử dụng để kết nối các
thiết bị ngoại vi với máy tính, chúng thƣờng đƣợc thiết kế dƣới dạng các đầu cắm cho
các thiết bị tuân theo chuẩn plug and play (cắm vào là chạy mà không cần phải khởi
động lại hệ thống).
Tháng 01/1996, dòng sản phẩm trang bị USB đầu tiên xuất hiện đánh dấu sự ra
đời của chuẩn USB phiên bản 1.0. Nhƣng phải chờ cho đến năm 1998, USB mới thực
sự thể hiện đƣợc vai trò quan trọng của mình thông qua phiên bản 1.1. Chuẩn USB
phiên bản 2.0 đƣợc đƣa ra vào tháng 04/2000 và đƣợc xem nhƣ là bản nâng cấp của
USB 1.1. Chuẩn USB 2.0 mở rộng băng thông cho ứng dụng đa truyền thông và
truyền với tốc độ nhanh hơn gấp 40 lần so với USB 1.1. Chƣa dừng lại ở đó, USB 3.0
- bản nâng cấp của USB 2.0 - vừa đƣợc công bố vào tháng 11/2008 tại Hội nghị các
nhà phát triển USB. Công nghệ USB 3.0 hứa hẹn mang lại tốc độ nhanh hơn 10 lần so
với chuẩn USB 2.0 hiện nay. Không những thế, USB 3.0 còn bổ sung thêm nhiều tính
năng ấn tƣợng khác nhƣ: tải nhận dữ liệu song song qua 2 luồng riêng biệt, sạc pin
nhanh hơn, tiết kiệm điện năng hơn.

Hình 1-1 Quy trình phát triển của chuẩn USB
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
Chương 1 – Tổng quan về chuẩn USB

20

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 (vd: 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.

Để giao tiếp với thiết bị USB theo các phiên bản khác nhau cần phải có sự hỗ
trợ từ các chuẩn phần cứng tƣơng ứng. Hiện nay, đã có 4 chuẩn phần cứng đƣợc công
bố rộng rãi, đó là: UHCI, OHCI, EHCI, XHCI.
Phiên bản USB
Chuẩn phần cứng
1.1
UHCI, OHCI
2.0
EHCI
3.0
XHCI
Bảng 1–1 Phiên bản USB và chuẩn phần cứng tƣơng thích

1.2. Đặc trƣng cơ bản
USB 1.1 có những đặc trƣng cơ bản sau:
 Đƣợc thiết kế theo cấu trúc hình sao nhiều tầng, có tối đa năm tầng. Một Hub ở tại
trung tâm của mỗi tầng, mỗi đoạn dây là một kết nối từ Host tới Hub hay Function,
hoặc là một kết nối từ Hub tới Hub hay Function.
Chương 1 – Tổng quan về chuẩn USB

21


Hình 1-2 Kiến trúc hình sao nhiều tầng của USB
 Những thiết bị USB 1.1 có đặc tính hot swapping, điều này có nghĩa là các thiết bị
có thể đƣợc kết nối (cắm vào) hay ngắt kết nối (rút ra) trong mọi thời điểm ngƣời sử
dụng cần mà không cần phải khởi động lại hệ thống.
 Cáp USB 1.1 gồm hai sợi dây nguồn và hai sợi dây xoắn mang dữ liệu, trên sợi
nguồn, máy tính có thể cấp nguồn lên tới 500mA ở điện áp 5V một chiều.
Hai sợi nguồn đỏ và đen (1 và 4) mang giá trị +5V và ground.

Hai sợi vàng và xanh (2 và 3) mang dữ liệu.
1
2
3
4

Hình 1-3 Cấu trúc dây bên trong cáp USB 1.1
 Thiết bị USB 1.1 đƣợc đấu nối theo 2 chuẩn khác nhau, đó là: chuẩn A và chuẩn
B. Đây là 2 chuẩn phổ biến thƣờng dùng.
Chương 1 – Tổng quan về chuẩn USB

22


Hình 1-4 Hai chuẩn kết nối phổ biến của USB
Tín hiệu vào ra ở cổng 1 và 4: tín hiệu nguồn.
Tín hiệu vào ra ở cổng 2 và 3: tín hiệu dữ liệu.
USB chuẩn A: là kiểu kết nối ta thƣờng gặp trên PCs, digital camera, webcam
devices,… Chuẩn này đƣợc cắm vào máy tính và kết nối upstream (ngƣợc dòng)
hƣớng về máy tính.
USB chuẩn B: là kiểu kết nối ta thƣờng gặp trên các loại máy chụp hình, điện
thoại di động, iPod,… Chuẩn này đƣợc cắm vào các thiết bị ngoại vi, kết nối
downstream (xuôi dòng) tới các thiết bị riêng lẻ.
Ngoài ra còn có các USB chuẩn khác nhƣ: mini A, mini B, mini AB.

Hình 1-5 Các chuẩn kết nối khác của USB

Chương 1 – Tổng quan về chuẩn USB

23


1.3. Phƣơng thức truyền dữ liệu
 Sự truyền dữ liệu trong USB 1.1 theo cơ chế mã hóa NRZI và một bit dồn bit
stuffing (chèn một bit 0 vào dòng dữ liệu để đảm bảo những giao thức thích hợp trong
dòng dữ liệu).








 USB 1.1 hỗ trợ 2 tốc độ truyền dữ liệu: 1.5Mb/s và 12Mb/s.

LowSpeed
1.5Mb/s
FullSpeed
12Mb/s
HighSpeed
480Mb/s
SuperSpeed
4.8Gb/s
USB 1.1
USB 2.0
USB 3.0

Bảng 1–2 Tốc độ truyền dữ liệu của USB
1.3.1. Các kiểu truyền dữ liệu
USB 1.1 hỗ trợ 4 kiểu truyền dữ liệu tùy thuộc vào mục đích sử dụng của thiết

bị, đó là:
 Control transfer
 Bulk transfer
 Interrupt transfer
 Isochronous transfer
Hình 1-6 Cơ chế mã hóa NRZI và bit stuffing
Chương 1 – Tổng quan về chuẩn USB

24

1.3.1.1. Control Transfer
Giới thiệu
Tất cả các thiết bị đều phải hỗ trợ Control Transfer thông qua Endpoint 0
có sẵn trên thiết bị. Control Transfer đƣợc dùng với mục đích: Host cần truy
xuất những thông tin cần thiết của thiết bị lúc mới gắn vào cũng nhƣ cấu hình
thiết bị chuẩn bị cho việc trao đổi dữ liệu sau này theo cách mà thiết bị hỗ trợ.
Quá trình truyền dữ liệu
Bao gồm 2 loại là: Read và Write tùy thuộc vào mục đích của Host. Việc
truyền dữ liệu theo mỗi loại trải qua ba giai đoạn là: Setup stage, Data stage
(tùy chọn), Status stage. Data stage (nếu có) có thể chứa 1 hay nhiều
transaction, còn Setup stage và Status stage chỉ chứa duy nhất 1 transaction
nên còn gọi là Setup transaction và Status transaction. Và điều đặc biệt là
Control Transfer có thể truyền theo 2 hƣớng trong cùng 1 ống lệnh (pipe).

Control
transfer
Setup stage
Token
packet
Data packet

Handshake
packet
Data stage Status stage
Setup
transaction
Status
transaction
Data
transaction(s)

Hình 1-7 Các thành phần cơ bản trong Control Transfer

 Control Read transfer (để truy xuất thông tin trong thiết bị)
i. Setup stage
Chương 1 – Tổng quan về chuẩn USB

25

ACK
HANSHAKE PACKET
DEVICE > HOSTHOST > DEVICE
DATASETUP
HOST > DEVICE
TOKEN PACKET DATA PACKET
IDLE
IDLE
DATA 0

Hình 1-8 Giai đoạn Setup stage trong Control Read transfer
- B1: Host gửi Token packet thuộc loại Setup.

- B2: Host gửi Data packet là Data 0 chứa những thông tin về
yêu cầu của Host. Data packet ở Setup stage luôn luôn là 8 byte.
- B3: Nếu nhận đƣợc yêu cầu của Host thành công, Device trả
về Handshake packet thuộc loại ACK.

ii. Data stage

DATAIN ACK
HOST > DEVICE
DEVICE > HOST
HOST > DEVICE
TOKEN PACKET DATA PACKET HANSHAKE PACKET
NAK
STALL
IDLE
IDLE
IDLE
IDLE
IDLE
Data Error
IDLE
Data Error

Hình 1-9 Giai đoạn Data stage trong Control Read transfer
- B1: Host gửi Token packet thuộc loại In.
- B2: Device trả về Data packet là Data 1 chứa dữ liệu mà Host
mong muốn (dữ liệu nếu còn tiếp theo đƣợc chứa xen kẽ trong
DATA 0/1/0/…


×