ĐẠI HỌC ĐÀ NẴNG
TRƯỜNG ĐẠI HỌC BÁCH KHOA KHOA ĐIỆN
BỘ MÔN: TỰ ĐỘNG HÓA
THUYET MINH DO AN TOT NGHIEP
NGHIEN CUU, THIET KE HE THONG CAM BIEN NHIET ĐỘ
GIAO TIẾP VÀ GHÉP NOIMAY TINHQUA GIAO THUC
USB/LOP HID
GVHD: ThS Lam Tang Dire
SVTH: Nguyễn Hữu Việt
MSSV: 105106061149
Da Nang, thang 5/2011
Trang 2Trường đại học Bách Khoa Độc Lập - Tự Do - Hạnh Phúc
KhoaDién wen wee
NHIEM VU
THIET KE DO AN TOT NGHIEP Tén: NGUYEN HUU VIET Lop: 06D6
Khoa: Dién
Nghanh: Tự Động Hóa
1 - Dé tai: NGHIEN CUU, THIET KE HE THONG CAM BIEN NHIET DO GIAO TIEP VA GHEP NOI MAY TiNH QUA GIAO THUC USB/LOP HID
2 - Nội dung thiết kế:
Chuong I: TONG QUAN DE TAI
Chương II: TÔNG QUAN VE GIAO THUC USB VA LOP HID Chuong II: TONG QUAN VE MANG 1 DAY
Chuong IV: TONG QUAN VE PIC 18F2550/4550
Chương V: GIỚI THIỆU CÁM BIẾN NHIỆT ĐỘ DS18B20 Chương VI: THIẾT KẾ VÀ LÁP RÁP CÁC MÔ HÌNH
3 - Ngày giao đề tài Ngày tháng năm 2011
4 - Ngày nộp đềtài: Ngày tháng năm2011
Ngày tháng năm 2011 Ngày thang năm 2011
Cán bộ duyệt Cán bộ hướng dẫn
Trang 3Trưởng Bộ Mơn
TS Nguyễn Hồng Mai
Ngày thang nam 2011
Sinh Viên Thực Hiện
Nguyễn Hữu Việt
Trang 4Trong lĩnh vực Điện - Điện tử nói chung và ngành Tự động hóa nói riêng,
truyền thơng và ghép nối các thiết bị là vấn đề then chốt và rất phổ biến Phần lớn các thiết bị, các hệ thống đều được kết nối với máy tinh dé thu thập thông tin, lưu trữ số liệu, điều khiển và giám sát các trạng thái của thiết bị Ở trình độ của sinh viên, hầu hết
các mơ hình hay sản phẩm đều được kết nối qua giao thức RS-232 Giao thức này rất
quen thuộc và đễ thực hiện, tuy nhiên bản thân nó cũng quá lỗi thời so với yêu cầu về tốc độ truyền của công nghệ ngày nay Vì vậy trong đề tài Tốt Nghiệp này em xin gửi
đến q thầy cơ cùng tat ca các bạn đọc giao thức USB, một phương pháp mới đề tăng
tốc độ truyền của dữ liệu, đồng thời thân thiện hơn với người dùng
Nội dung của đề tài này gồm 6 chương:
Chuong I: TONG QUAN DE TAI
Chuong II: TONG QUAN VE GIAO THUC USB
Chuong III:TONG QUAN VE MANG TRUYEN THONG | DAY
Chuong IV: TONG QUAN VE PIC 18F2550/4550
Chuong V: GIGI THIEU CAM BIEN NHIET DO DS18B20 Chuong VI:THIET KE VA LAP RAP CAC MO HINH
Mặc dù bản thân cũng rất nỗ lực trong việc tìm kiếm thơng tin, tài liệu để hoàn
thành đề tài một cách trọn vẹn nhất nhưng mắc sai sót là điều khó tránh khỏi Thành
thật mong quý thầy cơ cùng bạn đọc góp ý kiến đề đề tài ngày càng hoàn thiện
Cuối cùng em xin gửi lời cảm ơn chân thành đến gia đình, thầy cơ và bạn bè đã
động viên, giúp đỡtrong suốt thời gian qua Đặc biệt, gửi lời cảm ơn đến thầy Lâm
Tăng Đức đã trực tiếp hướng dẫn dé đề tài được hoàn thành
Da Nang thang 5 nam 2011
Sinh viên thực hiện
Trang 51.1:Tầm quan trọng của truyền thông và ghép nối máy tính với ngànhTự động hóa
— Error! Bookmark not defined
1.2:Thuc trang hién nay Error! Bookmark not defined
1.3: Nội dung để tài nen crerrerrrrrrrrrrrrres Error! Bookmark not defined
CHƯƠNG II: TÔNG QUAN VỀ GIAO THỨC USB VÀ LỚP HID Error! Bookmark
not defined
2.1: Giới thiệu sơ bộ về giao thức USB Error! Bookmark not defined
2.2:Quá trình phát triển giao thức USB Error! Bookmark not defined
2.3: Phân tích ưu điểm và nhược điểm của giao thức USB Error! Bookmark not defined
2.3.1: Ưu điỂm: -¿-©c+eccxecrreerrrrserrrs Error! Bookmark not defined 2.3.2: Nhược điểm - + s+cx+zx+xsrxerxrre Error! Bookmark not defined
2.4: Giới thiệu các lớp của giao thức USB Error! Bookmark not defined
2.4.1: Lớp thiết bị âm thanh (Audio) Error! Bookmark not defined 2.4.2: Lớp thiét bi thé thong minh (Chip/Smart Card Interface) Error! Bookmark
not defined
2.4.3: Cac thiét bi truyén thong (Modems and Networks) Error! Bookmark not
defined
2.4.4: Lớp thiết bị bảo mật thông tin Error! Bookmark not defined 2.4.5 Lớp các thiết bị nâng cấp firmware Error! Bookmark not defined 2.4.6:Lớp các thiết bị tương tác với con người (Human Interface) Error!
Bookmark not defined
2.4.7:Cầu chuyên đổi hồng ngoại (IrDA) Error! Bookmark not defined 2.4.8: Lép các thiết bị lưu trữ thứ cấp (Mass Storage) Error! Bookmark not
defined
2.4.9:Lớp các thiết bị in ấn (Printers) Error! Bookmark not defined
Trang 6Bookmark not defined
2.4.11: Cac thiết bị đo đạc và kiểm tra Error! Bookmark not defined 2.4.12: Lớp thiết bị ảnh động (Viđeo), Error! Bookmark not defined 2.4.13: Thực hiện các chức năng không tiêu chuanError! Bookmark not defined
2.5:Lớp thiết bị giao điện người sử dụng (HID-Human Interface Device) Error! Bookmark not defined
2.5.1: Khái niệm về HID Mrror! Bookmark not defned
2.5.2: Các yêu cầu về phần cứng Error! Bookmark not defined
2.5.3: Các yêu cầu về vi chương trình (Firmware).Error! Bookmark not defined
2.5.4: Cách thức đề chỉ ra một thiết bị thuộc lớp HID Error! Bookmark not
defined
2.5.5: Bộ mô tả báo cáo (Report Descriptor) Error! Bookmark not defined
2.5.6: Các yêu cầu mà host có thể gửi tới một thiết bị thuộc lớp HID Error!
Bookmark not defined
2.6: Sự hỗ trợ của Hệ điều hành với lớp HID Error! Bookmark not defined 2.7: Chọn chIp - +5 xsxsvxsxeerereereererre Error! Bookmark not defined CHUONG II: TÔNG QUAN VỀ MẠNG TRUYỀN THÔNG 1 DÂY Error!
Bookmark not defined
3.1:Dinh nghia mang truyén thông 1 dây Error! Bookmark not defined
3.2: Tổng quan về Bus I dây . Error! Bookmark not defined 3.3: Các yêu cẦu . -c¿-cccvxecccrkkerrrrkrrrrrrree Error! Bookmark not defined
3.4:Hoạt động của bus l dây «+5 Error! Bookmark not defined
3.4: Mạng một dây và Vi điều khiển PIC Error! Bookmark not defined
CHUONG IV: TONG QUAN VE PIC 18F2550/4550 Error! Bookmark not defined
4.1: Giới thiệu PIC 18F2550/4550 - Error! Bookmark not defined 4.2: Khái quát chức năng USB trong PIC Error! Bookmark not defined 4.2.1:Trạng thái và điều khiển USB Error! Bookmark not defined
4.2.2: Thanh ghi điểu khiển (UCON) Error! Bookmark not defined
Trang 74.2.5: Thanh ghi điều khiền USB ENDPOINT( UEPn) Error! Bookmark not
defined
4.2.6: Thanh ghi trang thái ngắt của giao thức USB Error! Bookmark not
defined
4.2.7: Thanh ghi kích hoạt trạng thái ngắt của giao thức USB Error! Bookmark
not defined
CHƯƠNG V: GIÓI THIEU CAM BIEN NHIET DO DS18B20 Error! Bookmark not
defined
5.1: Khái quát chung 5-5 5s+sssxsx+esrses Error! Bookmark not defined 5.2: CAu trúc phan ctng .sceccsseesssessssescssesssseeesseeeesee Error! Bookmark not defined 5.3:Hoạt động đo nhiệt độ . 555 5«5+ Error! Bookmark not defined
5.4: Hoạt động báo hiệu Error! Bookmark not defined
5.5: Thanh ghi cau hình và độ phân giải Error! Bookmark not defined
5.6: 8 Bit CRC eee eceseseeeeeesesesesesescseerseeneeeeees Error! Bookmark not defined
5.7: Tập lệnh 5s +xsxskkseekeersrerreerrre Error! Bookmark not defined 5.7.1: Lệnh ROƠM + << c+sscceceseeereees Error! Bookmark not defined
5.7.2: Lệnh chức năng bộ nhớ Error! Bookmark not defined
5.8: Chuẩn 1 đây với cảm biến DS18B20 Error! Bookmark not defined 5.8.1: Thời gian khởi động bus - - Error! Bookmark not defined 5.8.2: Thiết lập các Slots ở chế độ ghi cho Master.Error! Bookmark not defined CHUONG VI: THIET KE VA LAP RAP MOT SỐ CÁC ỨNG DỰNG Error! Bookmark not defined
6.2: So dd nguy6n ly o cccecccsssesscssseescsssessesssessesseeseessee Error! Bookmark not defined 6.3: Mơ-đun thu phát RE § phím bắm Error! Bookmark not defined 6.3.1: Mô-đun thu RE . - 55s +s<<xex<+ Error! Bookmark not defined 6.3.2: M6 dun phat RF (Remote 8 phim) Error! Bookmark not defined 6.4: LCTD ỐX2 tre Error! Bookmark not defined 6.5: Cơng cụ hỗ trỢ ¿52 ©2sSseSt2ExeEkrkrrerrsrre Error! Bookmark not defined 6.6: Xây dựng giao diện trên máy tinh bang VB 6.0 Error! Bookmark not defined
Trang 8
6.8: Mét sé hinh anh ctia san pham Error! Bookmark not defined TÀI LIỆU THAM KHẢO ccccccccce+ Error! Bookmark not defined
PHỤ LỤC Error! Bookmark not defined
Phụ Lục 0: Chương trình xây dựng giao diện trên VB Error! Bookmark not
defined
Phụ Lục 1: Chương trình REMOTE 8 phim Error! Bookmark not defined
Phụ Lục 2: Chương trình đo nhiệt độ và ghép nói máy tính qua cổng USB Error!
Bookmark not defined
Phụ Lục 3: Thư viện chuẩn 1-dây Error! Bookmark not defined Phụ Lục 4: Danh sách các chip có hỗ trợ giao thức USB Error! Bookmark not
Trang 9CHUONG I: TONG QUAN DE TAI
1.1:Tầm quan trọng của truyền thông và ghép nối máy tính với ngànhTự
động hóa
- Ngày nay trong tất cả các nhà máy, xí nghiệp, các hệ thống, các thiết bị đều có
thể liên lạc và trao đổi thông tin cho nhau thông qua các chuẩn truyền dẫn khác nhau Chính điều này đã tạo nên sự hoạt động hài hòa giữa các thiết bị trong hệ thống
- Bên cạnh việc trao đổi thông tin cho nhau, các thiết bị phải được kết nối để đưa dữ liệu về máy tính chủ Từ máy chủ người điều khiển có thể nhận biết được trạng thái
hoạt động, thông tin sảm phẩm đồng thời cũng có thể lưu trữ, in ấn được các thông số
này khi cần thiết
1.2:Thực trạng hiện nay
Hiện nay giao thức RS-232 được sử dụng phổ biến nhất để thực hiện việc ghép
nối các thiết bị ngoại vi với máy tính Tuy nhiên giao thức này đã quá lỗi thời vì tốc độ
truyền hạn chế và khả năng linh hoạt không cao Chính vì vậy, các máy tính hiện đại đều đã tháo bỏ, chỉ còn lại các cổng giao thức USB Vì vậy để có thé ghép nối các thiết bị ngoại vi với máy tính hiện đại các nhà thiết kế đã sử dụng các giải pháp sau:
Một là sử dụng mô đun chuyển đổi USB-COM (Hình 1.1) Hai là sử dụng chip chuyên đối USB-COM (Hình 1.2)
Hình 1.1 Mô đun chuyển đổi USB qua COM
Trang 10
NH1111110101
Hinh 1.2 Chip chuyển đổi USB-COM (PL2303)
Nhìn trên nhiều phương diện, đây là vẫn đề lớn cho mỗi nhà tiết kế cần cân nhắc - Xét về mặt kinh tế: Thêm Mô-đun chuyển đổi hay Chip chuyển đổi đều làm
tăng giá thành của sản phẩm
- Xét về mặt kỹ thuật: Chúng ta biết rằng giao thức USB có tốc độ truyền khá cao vào khoảng 12Mbit/sec (với chuẩn full-speed) trong khi đó giao thức RS-232 chỉ có 20Kbit/sec Đây được gọi là nguyên lý truyền thông “cỗ chai” Vấn đề này cần tránh trong việc thiết kế các ứng dụng
- Xét về mặt lợi ích của người sử dụng: Các thiết bị đã nêu ở trên đều cần có
driver riêng cộng với tính “ảo” của nó đã gây lên một số trở ngại cho người sử dụng
Vậy để giải quyết vấn đề này, đề tài đã đi vào nghiên cứu để đưa ra giải pháp mới
nhằm khắc phục các yếu điểm trên, bằng cách ghép nối các thiết bị ngoại vi với máy tính trực tiếp qua giao thức USB
1.3: Nội dung đề tài
Thiết kế và lập trình ứng dụng sử dụng giao thức USB/lớp HID bao gồm những
phan sau:
- Téng quan về giao thức USB
- Giới thiệu chip có hỗ trợ giao thirc USB, PIC18F2550/4550
-Thiét ké va lắp rápbàn phím khơng dây dạng thu nhỏ và mạch đo nhiệt độ
- Tim hiéu sự hỗ trợ của Hệ điều hành với các lớp trong giao thức USB
- Xây dựng chương trình giao diện trên Windowsbằng VB 6.0 để cập nhật giá trị
nhiệt độ được gửi lên từ Vi điều khiến trực tiếp qua giao thức USB
Trang 11- Tao firmware cho Vi diéu khién dé Hé điều hành có thé tự động nhận ra thiết bị và không cần driver giống như các thiết bị hiện có trên thị trường (Bàn phím, chuột )
- Trong dé tài này cảm biến nhiệt độ DS1§B20 được sử dụng dé đo nhiệt độ của môi trường sau đó truyền giá trị về Vi điều khiến Trên thị trường hiện hay có hai loại
cảm biến nhiệt độ phổ biến là: cảm biến có tín hiệu đầu ra liên tục (analog temperature
sensor) và cảm biến có tín hiệu đầu ra số (digital temperature sensor) Đối với các cảm
biến liên tục tín hiệu đầu ra hầu hết là điện áp còn đối với cảm biến số thì đầu ra là một
chuẩn truyền thơng nào đó, có thể là I2C, SPI hay UART.Riêng cảm biến này sử dụng
chuẩn truyền thông “1 dây” Thông qua cảm biến này đề tài cũng giới thiệu đến thay
cô và các bạn một giải pháp khá đơn giản trong lĩnh vực truyền thông: “Mạng truyền
thông 1 dây”
- Sơ đồ khối cho các mơ hình:
Máy Tính Mo dun LO PIC18F2550 thu RF =
| Hinh 1.3 M6 dun thu cua ban phim không dây |
Mô-đun phat RF Phim Bam LCD
Bus 1 day May
: 550
PIC 18F 4550 Tinh
Vee Vee
DS1 DS2 Nut Bam
I T Hình 1.5 Sơ đồ cấu tạo mạch đo nhiệt độ
GND GND
Trang 12
CHUONG II: TONG QUAN VE GIAO THUC USB VA LOP HID
2.1: Giới thiệu sơ bộ về giao thức USB
Hình 2.1 Đầu cắm USB (type A)
USB (Universal Serial Bus) là một giao thức cho phép kết nối giữa các thiết bị
ngoại vi và máy tính chủ Giao thức này được phát minh và phát triển bởi Ajay Bhatt
trong khi ông làm việc tại Intel.USB đã thay thế cho nhiều giao thức đa dạng và phức
tạp cũ như công giao tiếp nối tiếp và cổng giao tiếp song song
USB có thể kết nối với nhiều thiết bị ngoại vi như chuột máy tính, bàn phím, máy
in, camera kỹ thuật số, các ỗ đĩa flash và ổ đĩa di động Kẻ từ khi ra đời USB đã trở thành giao thức kết nói tiêu chuẩn cho các thiết bị này
Buổi ban đầu mới ra đời USB chỉ được thiết kế giành riêng cho máy tính cá nhân, nhưng thời gian trôi qua USB cũng trở nên phổ biến với các thiết bị như
Smartphone,PDAs, Video game
Không giống như các chuẩn truyền thông cii (RS-232, Parallel port), cong USB cé
cung cấp sẵn nguồn điện vì vậy các thiết bị ngoại vi kết nối qua cong USB không cần
nguôn riêng, ngoại trừ các thiết bị cần công suất lớn
Trang 13
2.2:Quá trình phát triển giao thức USB
Một nhóm gồm 7 cơng ty bắt đầu tìm hiểu và phát triển giao thức này từ năm
1994g6m Compaq, NEC, DEC, IBM, Intel, Cortel va Microsoft
Phiên bản USB 1.0 được ra đời vào tháng 1 năm 1996 với tốc độ truyền 1.5MBit/s (Low speed) Phiên bản 1.1 được công bố vào tháng 9 năm 1998 với hai cấp tốc độ truyén 1.5 MBit/s (Low speed) va 12 MBit/s (Full speed) USB 1.1 co bé sung thém một kiểu truyền thông mới “interrupt OUT” Tháng 4 năm 2000 giao thức USB 2.0 ra đời với 3 cấp tốc độ truyền 1.5 MBit⁄s (Low speed), 12 MBit/s (Full speed), 480
MBit/s (High speed) Ngày 12 tháng 11 năm 2008 giao thức USB 3.0 ra đời với tốc độ
truyền 5 GBit/s Sản phẩm sử dụng USB 3.0 đầu tiên được ra đời vào tháng 1 năm 2010
( Trong đồ án này chỉ tìm hiểu về giao thức USB 2.0 Full speed) 2.3: Phân tích ưu điểm và nhược điểm của giao thức USB
2.3.1: Ưu điểm:
2.3.1.1:Đối với người sử dụng
- USB rất linh hoạt đủ dé tương thích với nhiều loại thiết bị ngoại vi, thay vi làm nhiễu kiểu đầu cắm cho từng loại thiết bị khác nhau ở đây ta chỉ cần 1 mà thôi
-_ Tự động thiết lập cấu hình: Khi người dùng kết nối thiết bị ngoại vi USB
vào máy tính, Hệ điều hành sẽ phát hiện và tải xuống một driver tương ứng Với 1 số thiết bị trong lần kết nối đầu tiên, Hệ điều hành sẽ yêu cầu người dùng cho vào 1 đĩa
có chứa driver, sau đó q trình cài đặt sẽ tự động tiến hành Chúng ta cũng không cần khởi động lại máy tính trước khi sử dụng thiết bị ngoại vi đó
- Dễ dàng kết nối: Chúng ta không cần phải tháo rời máy tính đề cắm thiết bị
vào, bởi vì tất cả các máy tính đã có cơng USB ở mặt trước và mặt sau của máy
- Cáp nối đơn giản: Cáp có 4 sợi bên trong, nhỏ gọn, dài khoảng 5 mét, nếu có
Hub thì có thể dài đến 30 mét Cổng và Cáp USB đã được thiết lập sao cho cắm không bị sai chiều
Trang 14
Interface Format Number of Distance Speed Typical Use
Devices (maximum, |(maximum,
(maximum) _|feet) bits/sec.)
USB asynchronous |127 16 (up to 96 |1-5M, 12M, |Mouse
serial ft, with Š 480M keyboard, drive,
hubs) audio, printer, other standard and custom peripherals Ethernet serial 1024 1600 10G General network
communications
TEEE-1394b serial 64 300 3.2G Video, mass
(FireWire 800) storage IEEE-488 parallel 1S 60 8M Instrumentation (GPIB)
IrDA asynchronous |2 6 16M Printers, hand- serial infrared held computers
rc synchronous |40 18 3.4M Microcontroller
serial communications
Microwire synchronous |8 10 2M Microcontroller
serial communications
MIDI serial current |2 (more with |Š0 31.5k Music, show loop flow-through control
mode}
Parallel Printer |paraHel 2 (8 with 10-30 3M Printers, Port daisy-chain scanners, disk
support) drives
RS-232 asynchronous |2 50-100 20k (115k Modem, mouse,
({EIA/TIA-232) |serial with some instrumentation
hardware)
RS-485 asynchronous |32 unit loads |4000 10M Data acquisition {TIA/EIA-485) |serial (up to 256 and control
devices with systems
some
hardware)
SPI synchronous |8 10 2.1M Microcontroller serial communications
Bảng 2.1:Bảng so sảnh các giao thức
- Cắm nóng: Chúng ta có thể cắm và tháo thiết bị khỏi máy tính bất cứ lúc nào chúng ta cần mà không làm hỏng máy tính hay thiết bị Hệ điều hành tự động nhận ra
thiết bị khi nó được cắm vào và sẵn sàng để dùng
- Không cần người dùng cài đặt thêm: Người dùng không cần phải chọn địa
chỉ cổng và cũng khơng có jumper nào đề thiết lập các mục đích khác
- Nhiều thiết bị có thể cắm vào một máy tính mà khơng u cầu phần cứng quá
phức tạp
- Đôi khi không cần nguồn cung cấp: Với các thiết bị không yêu cầu công suất
Trang 15- Tốc độ truyén kha cao: Véi USB Low speed 1.5MBit/s,Full speed 12MBit/s,
High speed 12MBi/s Dưới đây là 2.1 bảng so sánh các giao thức
-Độ tin cậy cao: Độ tin cậy của USB được thừa kế cả phần cứng và giao thức
cho việc truyền đữ liệu Đặc điểm của phần cứng giúp cho việc loại trừ nhiễu được dễ dàng.Đồng thời cơ chế tự kiểm tra lỗi và yêu cầu gửi lại giúp cho giao thức này tăng độ tin cậy
-Giá thành hạ: Mặc dù USB phức tạp hơn các giao thức trước đây, tuy nhiên
giá thành cho thiết bị lại không quá đất
-Tiết kiệm năng lượng: Những mạch điện tiết kiệm năng lượng tự động
“power down” khi thiết bị USB ở chế độ chờ và sẵn sàng khi chúng cần được sử dụng
Giảm tiêu thụ năng lượng đồng nghĩa với việc tiết kiệm tiền, thân thiện với môi trường
và cũng tặng tudi thọ của Pin
2.3.1.2:Đối với người thiết kế
- Sự linh hoạt trong thiết kế: USB có 4 phương thức truyền và 3 cấp tốc độ,
điều này giúp cho USB tương thích với nhiều loại thiết bị ngoại vi Tùy thuộc vào đặc
điểm của từng thiết bị ngoại vi mà ta chọn phương thức và tốc độ truyền cho phù hợp
- Sự hỗ trợ của hệ điều hành: Hầu hết các hệ điều hành đều hỗ trợ giao thức USB, điển hình là Windows 98 trở về sau này
- Sự hỗ trợ của thiết bị ngoại vi: Trên thị trường có rất nhiều dịng Vi điều
khiển hỗ trợ giao thức USB Ví dụ: PIC 1§F2550/18F4550/18F14K50 của hãng Microchip
- Sự hỗ trợ về kiến thức: Ngày nay cùng với sự phát triển của máy tính và mạng Internet, chúng ta có thé tìm thấy thơng tin cần thiết một cách đơn giản Ví dụ: www.usb.org
Trang 16
2.3.2: Nhược điểm
Như đã trình bày ở trên, USB có rất nhiều ưu điểm tuy nhiên bên cạnh đó cũng
có nhưng hạn chế nhất định
- Hạn chế về tốc độ: Mặc dù tốc độ truyền của USB khá cao tuy nhiên cũng còn
chậm hơn so với IEEE-1394
- Khoảng cách USB chỉ hỗ trợ cho các thiết bị có khoảng cách tương đối gần với máy tính chủ mà thơi Bình thường khoảng 5 mét, nếu có sự hỗ trợ của Hub thì đạt được 30 mét Vì vậy để truyền đi xa hơn ta phải sử dụng thiết bị chuyển đổi qua giao thức RS485
- Giao tiếp Chủ-Chủ: Giao thức USB chỉ cho phép kết nối giữa máy tính chủ và thiết bị ngoại vi mà thơi Cịn việc kết nối 2 máy tính chủ, trao đổi dữ liệu trực tiếp với nhau qua USB là điều không thể
- Cập nhật đa thiết bị: USB không cho phép máy chủ gửi cùng lúc nhiều đữ liệu
xuống nhiều thiết bị khác nhau
- Một số yêu cầu cho phần cứng: Đối với các thiết bị không hỗ trợ USB ta phải
sử dụng bộ chuyên đổi USB qua các giao thức khác cho phù hợp Các máy tính đời cũ,
Trang 172.4: Giới thiệu các lớp của giao thức USB
Dưới đây là bang thống kê các lớp của giao thức USB
Class Descriptor Where Class Is Declared
Audio Interface
Chip/Smart Card Interface Interface
Communication Device or Interface
Content Security Interface
Device Firmware Upgrade Interface (subclass of Application Specific Interface)
Human Interface (HID) Interface
IrDA Bridge Interface (subclass of Application Specific Interface)
Mass Storage Interface
Printer Interface
Still Image Capture Interface
Test and Measurement Interface (subclass of Application Specific Interface)
Video Interface
Bang 2.2: Bảng liệt kê các lớp của giao thức USB
2.4.1: Lớp thiết bị âm thanh (Audio)
Lớp thiết bị âm thanh chính là lớp các thiết bị gửi và nhận dữ liệu âm thanh Dữ
liệu âm thanh có thể là tiếng nói được mã hoá, nhạc hay bắt kỳ một loại âm thanh nào
khác Các thiết bị thuộc lớp thiết bị âm thanh có thể sử dụng kiểu truyền đẳng thời cho
luồng âm thanh hoặc kiểu truyền khối cho dữ liệu đã được mã hoá bằng giao thức
MIDI (Musical Instrument Digital Interface)
2.4.2: Lớp thiết bị thẻ thông mỉnh (Chip/Smart Card Interface)
Thẻ thông minh là các loại thẻ quen thuộc được sử dụng cho việc gọi điện thoại, thẻ ra vào, trả cước cầu đường, bảo hiểm y tế, giải mã cho các bộ thu truyền hình vệ tỉnh và nhiều các ứng dụng khác, những ứng dụng này yêu cầu một khối lượng thông
tin nhỏ hoặc trung bình với sự truy cập dữ liệu lưu trong thẻ một cách dễ dàng Mỗi
thẻ là một module bao gồm bộ nhớ và thường thêm một CPU Nhiều thẻ cho phép cập
nhật nội dung của chúng đề thay đôi một số thông tin vi dụ như giá trị tiền trong thẻ tin
dụng hay mã của thẻ Để truy cập một thẻ thông minh, bạn kết nối nó với thiết bị giao
diện thẻ thông minh (CCID-Chip Card Interface Device) thường bằng cách nhét thẻ
Trang 18
vào khe đọc hoặc soi nó trước các bộ đọc đối với loại thẻ không cần tiếp xúc USB định nghĩa lớp thiết bị giao diện thẻ thông minh vì có một số thiết bị giao diện thẻ
thông minh (CCID) sử dụng giao điện USB để giao tiếp với máy tính
2.4.3: Các thiết bị truyền thông (Modems and Networks)
Lớp các thiết bị truyền thông bao gồm hai loại thiết bị chính là: thiết bị thoại và
các thiết bị mạng tốc độ trung bình Thiết bị thoại bao gồm điện thoại tương tự,
modem tương tự, Các bộ thích nghi đầu cuối ISDN và điện thoại số Các thiết bị mạng
bao gồm modem ADSL, modem điện tín, I0BASE-T Ethernet adapter va Hub
2.4.4: Lớp thiết bị bảo mật thông tin
Lớp thiết bị bảo mật định nghĩa cách thức giúp ta điều khiển sự truy cập tới các
file, âm nhạc, hình ảnh hoặc các dữ liệu khác được truyền trên bus (ví dụ muốn copy một file nào đó lên thiết bị hoặc đọc nội dung được lưu trong thiết bị thì phải có
password)
2.4.5 Lớp các thiết bị nâng cấp firmware
Lớp thiết bị cập nhật firmware định nghĩa một giao thức cho phép máy chủ gửi firmware tăng cường hoặc sửa lỗi cho một thiết bị Sau khi nhận sự nâng cấp firmware thì thiết bị sẽ được thiết lập lại để sử dụng firmware mới của nó Lớp thiết bị này được biết đến khi chúng ta sử dụng chức nang bootloader cho vi điều khiến
2.4.6:Lớp các thiết bị tương tác với con người (Human Interface)
Lớp thiết bị giao diện người sử dụng bao gồm các loại bàn phím, thiết bị con trỏ và các bộ điều khiển dùng để chơi game Đối với những thiết bị này, máy chủ đọc
thông báo từ thiết bị và gần như lập tức thực hiện theo các yêu cầu của người sử dụng (các yêu cầu này mang tính giao tiếp trực tiếp giữa người sử dụng và máy) như sự ấn phím, sự đi chuyển của con chuột Máy chủ phải đáp ứng đủ nhanh sao cho người sử dụng không nhận thấy độ trễ rất nhỏ giữa yêu cầu của họ và các đáp ứng của máy
2.4.7:Cầu chuyển đối hồng ngoại (IrDA)
Lớp thiết bị cầu liên kết dữ liệu hồng ngoại định nghĩa những yêu cầu về phần
Trang 19năng lượng hồng ngoại Thiết bị cầu liên kết dữ liệu hồng ngoại sẽ được nối với máy
chủ qua cổng USB cho phép máy chủ sử dụng giao diện USB để giám sát, điều khiển
và truyền đữ liệu qua một giao diện hồng ngoại
2.4.8: Lớp các thiết bị lưu trữ thứ cấp (Mass Storage)
Lớp thiết bị lưu trữ thứ cấp chính là các thiết bị có thé truyền dữ liệu theo cả hai
hướng (từ máy chủ tới thiết bị hoặc từ thiết bị về máy chủ) Điển hình cho lớp thiết bị này có thể kế đến các 6 dia mém, 6 dia ctmg, 6 CD, 6 DVD va ổ nhớ flash Các loại
camera cũng có thể sử dụng lớp lưu trữ thứ cấp cho phép việc truy cập các file hình
ảnh trong bộ nhớ của camera Trong các máy tính sử dụng hệ điều hành Windows, các
thiết bị thuộc lớp lưu trữ thứ cấp sẽ xuất hiện như các ô đĩa trong cửa số My Computer
và hệ điều hành cho phép người sử dụng sao chép, di chuyển và xoá các đữ liệu trong
các thiết bị đó
2.4.9:Lớp các thiết bị in ấn (Printers)
Lớp printer được áp dụng cho các thiết bị chuyên đổi đữ liệu nhận được thành
dạng văn bản, hình ảnh trên giấy hoặc một số dạng khác Các máy in đời đầu chỉ in
được các dòng chữ trong những font đơn cô định Đối với các máy in fun hay laser thi
có thé in nhiều dòng chữ dưới nhiều định dạng font khác nhau, đồng thời cũng có thé
1n các hình ảnh phức tạp
2.4.10:Lớp các thiết bị lưu giữ hinh anh tinh (Still Image Capture)
Lớp thiết bị này bao gồm các loại máy ảnh và máy quét Công việc chủ yếu của
lớp thiết bị này là truyền dữ liệu hình ảnh từ thiết bị lên máy tính chủ Ngồi ra một vài thiết bị cịn có thể nhận dữ liệu từ máy tính Nếu tất cả những gì ta cần là truyền
các file hình ảnh từ một máy ảnh lên máy tính chủ thì ta có thể đưa một máy ảnh vào
lớp thiết bị lưu trữ thứ cấp
2.4.11: Các thiết bị đo đạc và kiểm tra
Lớp các thiết bị đo lường và kiểm tra là để dành cho các thiết bị đo đạc như các bộ ADC, DAC, cam bién và các bộ chuyên đổi (chuyên đổi đơn vị vật lý chang han)
Các thiết bị này có thê là một khối riêng rẽ hoặc là một cạc trong một máy tính lớn
Trang 20
2.4.12: Lép thiết bi ảnh động (Video)
Lớp các thiết bị ảnh động: Lớp các thiết bị ảnh động hỗ trợ các thiết bị ghi hình số xách tay, webcam, và một số thiết bị có chức năng gửi, nhận hay can chỉnh ảnh
động Lớp thiết bị này cũng hỗ trợ việc truyền các ảnh tĩnh từ các thiết bị ảnh động
2.4.13: Thực hiện các chức năng không tiêu chuẩn
Một vài thiết bị không có sự phù hợp rõ rệt với một lớp thiết bị được định nghĩa Ví dụ như các thiết bị điều khiển động cơ, rơ le, hay các co cấu chấp hành khác Một
ví dụ khác là các thiết bị kết nối giữa hai máy vi tính (Cầu sử dụng USB) Nếu một
thiết bị đầu cuối mà không phủ hợp đề gán vào một lớp được định nghĩa thì người thiết
kế sẽ phải viết driver cho thiết bị để cung cấp cho máy chủ các thơng tin giúp nó giao
tiếp được với thiết bị đó
2.5:Lớp thiết bị giao diện người sử dụng (HID-Human Interface Device)
Lớp thiết bị giao điện người sử dụng là một trong những lớp đầu tiên được hệ điều hành Windows hỗ trợ Trên những chiếc máy tính cá nhân sử dụng Windows
98 hoặc các phiên bản muộn hơn thì những ứng dụng có thể giao tiếp với các thiết bị giao điện người sử dụng bằng cách sử dụng các bộ điều khiển (driver) được xây
dựng sẵn trong hệ điều hành Cũng chính vì lý do trên mà nhiều nhà cung cấp thiết
bị đầu cuối USB sử dụng lớp thiết bị giao diện người sử dụng cho sản phẩm của họ
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ủ
2.5.1: Khái niệm về HID
Từ “giao diện người sử dụng” trong tên gọi của lớp HID để chỉ ra sự tương tác
trực tiếp giữa con người với thiết bị thuộc lớp này Ví dụ một con chuột có thê phat hiện việc chúng ta đi chuyên hay nhấn chuột đề gửi thông tin lên máy chủ và máy
chủ sử dụng thông tin nay dé đem lại các đáp ứng mà người sử dụng đang mong đợi
Trang 21thiết bị khác như các núm điều chỉnh, các chuyển mạch, nút nhắn, thanh trượt, điều
khiển từ xa, bàn phím điện thoại, các thiết bị điều khiển dùng cho game như bao
tay, bánh lái
Tuy nhiên một thiết bị thuộc lớp HID không nhất thiết phải có một giao diện người
sử dụng Một thiết bị có thể gan vào lớp HID khi các chức năng của nó nằm gọn
trong các giới hạn của đặc tả lớp HID Dưới đây là các giới hạn và khả năng chủ
của các thiết bị thuộc lớp HID
Tất cá dữ liệu được trao đổi đưới cùng một dạng cấu trúc được gọi là báo cáo
(report) Máy chủ gửi và nhận đữ liệu bằng cách gửi các báo cáo và yêu cầu các báo
cáo trong các phương thức truyền điều khiển hoặc truyền ngắt Định dạng báo cáo là
khá linh hoạt và nó có thể áp dụng cho rất nhiều dạng của dữ liệu song đối với mỗi
một báo cáo đã được định nghĩa thì kích cỡ của nó là xác định
Một giao diện HID phải có một điểm cuối ngắt vao (interrupt IN enpoint) đề gửi
dữ liệu lên máy chủ
Một giao diện HID có thể có tối đa một điểm cuối ngắt vào và một điểm cuối ngat ra (interrupt OUT enpoint) Nếu ta cần nhiều điểm cuối ngắt hơn nữa thì ta có thể
tạo một thiết bị đa chức năng gồm nhiều thiết bị HID ở trong nó Một ứng dụng phải đảm bảo sự điều khiến riêng biệt tới từng HID trong thiết bị đa chức năng
Điểm cuối ngắt vào cho phép HID gửi thông tin lên máy chủ ở những thời điểm
mà khơng hề biết trước Ví dụ khơng thể có cách nào giúp máy tính biết trước khi nào
người sử dụng ấn một phím nào đó trên bàn phím do đó bộ điều khiển máy chủ sử
dụng giao tác ngắt để thăm dị có định kỳ nhằm thu lượm dữ liệu mới
Tốc độ trao đổi dữ liệu là hạn chế, đặc biệt là khi truyền ở tốc độ thấp hoặc toàn
tốc Điểm cuối ngắt tốc độ thấp không thể vượt qua 800 bytes/sec, với các điểm cuối
tồn tốc thì tốc độ tối đa là 64 KB/s còn điểm cuối ngắt tốc độ cao thì tốc độ tối đa vào
khoang 24 MB/s
Với bản Windows 98 Gold thì nó chỉ hỗ trợ USB 1.0 tức là không hỗ trợ điểm
cuối ngắt ra do đó tất cả dữ liệu truyền từ máy chủ xuống thiết bị phải sử dụng truyền điều khiển
Lưu ý là giao diện HID có thể chỉ là một trong nhiều kiểu giao điện được hỗ trợ
bởi một thiết bị Ví dụ một loa USB có thể sử dụng phương thức truyền đẳng thời cho
Trang 22
âm thanh đồng thời cũng có thể có một giao điện HID cho việc điều khiển độ to nhỏ, cân bằng, treble va bass — có nghĩa là với cùng một giao tiếp USB trên một thiết bị
nhưng ta có thể sử dụng hai lớp giao tiếp khác nhau 2.5.2: Các yêu cầu về phần cứng
Các điểm cuối
Tất cả các kiểu truyền của HID sử dụng hoặc điểm cuối điều khiển hoặc điểm
cuối ngắt Tất cả các HID phải có một điểm cuối ngắt vào để gửi dữ liệu tới máy
chủ Một điểm cuối ngắt ra là tuỳ chọn
Các loại báo cáo (Report)
Yêu cầu đối với một điểm cuối ngắt vào cho thấy mọi HID phải có tối thiểu là
một report đầu vào được định nghĩa trong bộ mô tả report của HID Các report đầu ra và report đặc biệt là tuỳ chọn
Các yêu cầu có thể gửi từ Host tới thiết bị trong kiểu truyền điều khiển
Đặc tả HID định nghĩa 6 yêu cầu cụ thể mà Host có thể gửi tới thiết bị Hai
trong số đó là Set_Report va Get_Report, dem lai cach dé Host và thiết bị trao đổi report thông qua kiểu truyền điều khiển Host sử dụng Set_Report để gửi report và
Get_Report để nhận thông báo Bốn yêu cầu còn lại liên quan tới việc cấu hình thiết
bị Các yêu cầu Set_Idle và Get_Idle dùng dé thiết lập và đọc tốc độ rỗi, cái cho biết
có hay khơng việc một thiết bị gửi lại đữ liệu không hề thay đổi kể từ lần thăm dò
cuối
Các yêu cầu Set_Protocol và Get_Protocol thiết lập và đọc giá trị giao thức Giá trị giao thức sẽ cho biết một thiết bị có thể được sử dụng hay không ngay cả khi bộ điều khiển đầy đủ của nó chưa được tải trên Host (ví dụ con chuột và bàn phím có thể thực hiện chức năng của nó ngay trong giai đoạn khởi động - khi mà bộ điều khiển chính thức của nó chưa được tải ở trên Host) Các loại yêu cầu vừa nêu sẽ
Trang 23Kiéu truyén ngat
Các điểm cuối ngắt đem lại sự luân phiên trong việc trao đổi đữ liệu, đặc biệt
khi phía thu phải có được dữ liệu một cách nhanh chóng hoặc định kỳ Truyền điều
khiển có thể bị trễ nếu bus quá bận trong khi băng thông cho truyền ngắt lại được
đảm bảo
Khả năng thực hiện truyền ngắt ra (OUT) được bổ sung ở phiên bản 1.1 của chuẩn
USB Windows 98 SE là phiên bản Windowsđầu tiên hỗ trợ USB 1.1 và HID 1.1 2.5.3: Các yêu cầu về vi chương trình (Firmware)
Vi chương trình phải phù hợp với các yêu cầu của lớp thiết bị Các bộ mô tả của thiết bị phải bao gồm một bộ mô tả giao diện đề định nghĩa thiết bị thuộc lớp HID, một bộ mô tả HID và một bộ mô tả điểm cuối ngắt vào (IN) Bộ mô tả điểm cuối
ngắt ra (OUT) là tuỳ chọn Vi chương trình cũng phải chứa một bộ mô ta report
Một HID có thể hỗ trợ một hay nhiều report Bộ mô tả report chỉ ra kích thước và nội dung của dữ liệu chứa trong report cũng như cách mà phía thu sẽ sử dụng dữ liệu nhận được Các giá trị trong bộ mô tả sẽ chỉ ra mỗi report là một report đầu vào, đầu ra hay là một report đặc biệt Máy chủ nhận dữ liệu chứa trong report đầu vào và gửi đữ liệu chứa trong report đầu ra Một report đặc biệt có thé được truyền
theo cá hai hướng Mọi thiết bị phải hỗ trợ tối thiểu một report đầu vào để máy chủ
có thể thu nhận dữ liệu thông qua truyền ngắt hoặc truyền điều khiển Các report đầu ra là tuỳ chọn Đề tương thích với Windows 98 Gold thì các thiết bị sử dụng các report đầu ra nên hỗ trợ việc gửi report thông qua truyền điều khiển Sử dụng truyền
ngắt cho các thông báo đầu ra là tuỳ chọn Cịn các thơng báo đặc biệt cũng là tuỳ
chọn và nếu được sử dụng thì nó ln được truyền thông qua truyền điều khiển
2.5.4: Cách thức dé chỉ ra một thiết bị thuộc lớp HID
Với bất kỳ thiết bị USB nào thuộc lớp HID thì các bộ mơ tả của nó chỉ cho máy chủ thông tin máy chủ cần biết đề giao tiếp với thiết bị Máy chủ tìm hiểu về giao
diện HID trong suốt quá trình thiết lập bằng cách gửi một yêu cầu Get_Descriptor
Các bộ mô tả của một thiết bị thuộc lớp HID bao gồm: Bộ mô tả thiết bị (Device
Descriptor), bộ mơ tả cấu hình (Configuration Descriptor), bộ mô tả giao diện
Trang 24
(Interface Descriptor), b6 m6 ta HID (HID Descriptor), b6 mé tả điểm cuối ngắt vào
(IN interrupt Enpoint Descriptor), bộ mô tả điểm cuéi ngdt ra (OUT Interrupt Endpoint Descriptor) va b6 mô tả điểm cuối ngắt đặc biệt (Feature Interrupt
Endpoint Descriptor) Hai bộ mô tả sau cùng là tuỳ chọn (tức có thể có hoặc khơng) Ngồi các bộ mơ tả vừa liệt kê ở trên thiết bị thuộc lớp HID cịn phải có
một bộ mơ tả nữa đó là bộ mô tả Report (bộ mô tả Report sẽ được nói cụ thể sau)
2.5.5: Bộ mô tả báo cáo (Report Descriptor)
Một bộ mô tả thông báo định nghĩa khuôn dạng và công dụng của dữ liệu chứa
trong các report Ví dụ nếu thiết bị là một con chuột thì dữ liệu trong report sẽ thông
báo cho máy chủ biết sự di chuyển của con chuột và các sự kiện click chuột, nếu
thiết bị là một bộ điều khiển rơle thì đữ liệu trong báo cáo sẽ cho biết rơle nào mở
và rơle nào đóng
Bộ mơ tả report cần phải đủ linh hoạt để điều khiển thiết bị với các mục đích
khác nhau Dữ liệu lưu trong report cần được tối ưu hố về kích thước đề tránh lãng
phí khơng gian lưu trữ và rút ngắn thời gian khi truyền trên bus
2.5.6: Các yêu cầu mà host có thể gửi tới một thiết bị thuộc lớp HID
Như đã trình bày ở trên, đặc tả HID định nghĩa 6 yêu cầu mà Host có thể gửi
tới một thiết bị thuộc lớp HID Tắt cả các HID phải hỗ trợ Get_Report, còn đối với
các thiết bị hỗ trợ giao thức khởi động thì phải đáp ứng được các yêu cầu Get_Protocol và Set _Protocol Các yêu cầu còn lại gồm Set_Report, Get_Idle va Set_Idle là tuỳ chọn, trừ trường hợp đối với một keyboard sử dụng giao thức khởi
động phải hỗ trợ Set Idle Nếu một HID không có một điểm cuối ngắt ra (OUT)
hoặc nếu HID đang giao tiếp với một máy chủ chỉ hỗ trợ USB 1.0 như Windows 98 Gold chẳng hạn thì HID đó nếu muốn nhận report từ host nó phải hỗ trợ Set _Report Các yêu cầu ở trên sẽ được Host gửi tới thiết bị trong giai đoạn setup của truyền điều khiển Giai đoạn setup của truyền điều khiển diễn ra như sau: ban đầu host phát ra gói théng bao setup, theo sau đó là gói đữ liệu dành cho giao tác
setup có kích thước của phần dữ liệu là 8 byte, cuối cùng host chờ gói bắt tay ACK
Trang 25chứa trong 8 byte dữ liệu của gói dữ liệu theo sau gói thơng báo setup, nó có khuôn
dạng như sau:
(sb) I eS eed 7 (mth)
Syne pattern] PID DATAO| Destination fyỊe| Regttet Tppe|Diecfion|bReqest|wValir| vintes| rLanetl
11Ùyk - I byte I byte Lbyte | 2byte| 2 byte | byte
Hinh 2.2: Khuén dang dit liéu ctia giai đoạn setup trong kiểu truyén Control
Có một số Bit trong gói trên có giá trị giống nhau đối với cả 6 yêu cầu đó là:
5 Bit Destination type =00000B để chỉ ra đích đến của yêu cầu là một thiết bị
(00001B: đích là một giao diện cụ thể, 00010B: đích là một điểm cuối trên thiết bị,
00011B: đích là một trong các thành phần khác trong thiết bị)
2 Bit Request Type =01 để chỉ ra loại yêu cầu này là để đành cho một lớp thiết bị
cụ thể (00: tức request là một trong các request chuẩn (có 11 loại request chuẩn), 10: request được định nghĩa bởi nhà cung cấp thiết bị)
Get_Report
Host gửi yêu cầu này khi nó muốn nhận một Input report hoặc Feature report từ
HID sử dụng truyền điều khiển
e Bit Direction = 1 để chỉ ra rằng có một giai đoạn dữ liệu sau giai đoạn setup và
hướng truyền của đữ liệu là từ thiết bị về host
e bRequest = 01h cho biết yêu cầu mà host gửi tới thiết bị là Get_Report
e wValue: Byte cao chứa thông tin cho biết host muốn nhận loại report nào từ thiết bj (1=Input, 3=Feature), byte thap chứa report ID
e wIndex: chứa số lượng giao diện mà yêu cầu được hướng tới
e wlength: chứa chiều dài tối đa cho phép của report trong giai đoạn dữ liệu tính theo byte
Lưu ý: tất cả các HID nên hỗ trợ yêu cầu Get_Report
Get_Idle
Trang 26
Host gửi yêu cau nay dé doc tốc độ rỗi từ thiết bị
e Bit Direction = 1 e bRequest = 02h
e wValue: Byte cao = 00h, byte thấp chỉ ra report ID của report mà yêu cầu tác
động tới Nếu byte = 00h thì có nghĩa là yêu cầu sẽ tác động tới tất cả các Input
report cua HID
e wIndex chứa số lượng giao diện hỗ trợ yêu cầu này
e wlength = 1 I byte trường dữ liệu của gói dữ liệu trong giai đoạn dữ liệu sẽ chứa
tốc độ rỗi tính theo số nguyên lần của 4 ms
Các HID không buộc phải hỗ trợ yêu cầu Get_Idle
Get_Protocol
Mục đích của yêu cầu này là dé host biét được HID có hỗ trợ giao thức khởi động
hay không
e Bit Direction = 1
e bRequest = 03h
¢ wValue = 0000h
e wIndex chứa số lượng giao diện hỗ trợ yêu cầu này
e wLength = 1 Nếu 1 byte trường dữ liệu của gói dữ liệu = 0 tức có hỗ trợ giao thức khởi động còn nếu # 0 tức là không hỗ trợ giao thức khởi động Các thiết bị có hỗ trợ giao thức khởi động thì phải đáp ứng yêu cầu này
Set_Report
Host gửi yêu cầu này để thông báo rằng nó muốn gửi một Output hoặc Feature
report tới thiết bị bằng cách sử dụng truyền điều khiển
e Bit Direction = 0 dé chỉ ra rằng hướng của report trong giai đoạn dữ liệu là từ host tới thiết bị
e bRequest = 09h
Trang 27e wIndex chứa số lượng giao diện mà yêu cầu này được hướng tới
e wLength: cho biết chính xác kích thước của report tính theo byte sẽ được gửi trong giai đoạn dữ liệu
Các HID có thể hỗ trợ hoặc không hỗ trợ yêu cầu Set _Report Nếu một HID
khơng có điểm cuối ngắt ra (OUT) hoặc HID đang làm việc với một máy chủ chỉ hỗ
trợ phiên bản USB 1.0 mà lại muốn nhận đữ liệu từ Host thì việc đáp ứng lại yêu
cầu Set_Report là cách duy nhất dé có thê nhận đữ liệu từ host
Set_Idle
Host gửi yêu cầu này là để tiết kiệm băng thông thông qua việc giới hạn tần số
gửi báo cáo của một điểm cuối ngắt vào (IN) khi đữ liệu chứa trong báo cáo khơng
có sự thay đổi so với báo cáo gần nhất
e Bit Direction = 0 để chỉ ra hướng của đữ liệu trong giai đoạn dữ liệu nếu có thì sẽ là từ host tới thiết bị
e bRequest = 0Ah
e wValue: Byte cao thiết lập khoảng thời gian tối thiểu phải trôi qua giữa hai Input
report có dữ liệu giống nhau mà lại được gửi kế tiếp nhau, byte thấp chứa report ID
của report mà yêu cầu này tác động tới Nếu byte thấp là 00h thì có nghĩa là yêu
cầu này tác động tới tất cả các Input report của HID
e wIndex chứa số lượng giao diện hỗ trợ yêu cầu này
e wLength 0000h: Cho thấy khơng có giai đoạn dữ liệu theo sau giai đoạn setup Chú thích: Khoảng thời gian giữa hai Input report là một số nguyên lần của 4 ms, như vậy với 1 byte cao của wValue thì khoảng thời gian này sẽ nằm trong phạm vi từ 4 tới 1020 ms Nếu byte cao của wValue = 00h thì có nghĩa là HID chỉ được gửi Input report khi dữ liệu của report đã có thay đổi so với lần gửi ngay trước đó Nếu
dữ liệu của report có thay đổi so với lần gửi ngay trước đó thì nó có thể được gửi ngay khi có một thông báo IN bất kể giá trị byte cao của wValue là bao nhiêu
Trong trường hợp dữ liệu của report khơng hề có thay đổi gì so với lần gửi ngay
trước đó mặt khác khoảng thời gian được gán trong byte cao của wValue chưa trôi
qua kế từ lần gửi report ngay trước mà lại có một thông báo IN từ host thì HID sẽ
gửi gói bắt tay NAK Còn nếu khoảng thời gian được gán trong byte cao của
Trang 28wValue đã trôi qua kể từ lần gửi report ngay trước thi HID sẽ gửi tới host report
mặc dù dữ liệu của report không hề có thay đổi so với lần gửi ngay trước Nếu HID
trả lời yêu cầu Set_Idle của host bằng gói bắt tay STALL thì nó có thể gửi report bất
cứ khi nào có thơng bao IN tir host ké cả khi đữ liệu của report khơng hề có sự thay
đổi Các HID không bị bắt buộc phải hỗ trợ yêu cầu Set_Idle của host ngoại trừ
keyboard có sử dụng giao thức khởi động
Set_Protocol
Host gửi yêu cầu này để chỉ định HID có nên sử dụng giao thức khởi động hay
không
e Bit Direction = 0 để chỉ ra hướng của đữ liệu trong giai đoạn dữ liệu nếu có thì sẽ là từ Host tới thiết bị
e bRequest = 0Bh
e wValue = 0000h: nên sử dụng giao thức khởi động; wValue # 0000h: không nên sử dụng giao thức khởi động
e wIndex chứa số lượng giao diện hỗ trợ yêu cầu này
e wLength 0000h: Cho thấy khơng có giai đoạn dữ liệu theo sau giai đoạn setup Thiết bị muốn thực hiện chức năng trong quá trình khởi động phải hỗ trợ yêu cầu Set_Protocol
2.6: Sự hỗ trợ của Hệ điều hành với lớp HID
Các hệ điều hành của Microsoft từ Windows 2000 trở đi đều hỗ trợ sẵn các driver Vì vậy người thiết kế không cần phải xây dựng driver riêng, chỉ cần theo đúng các chuẩn của nhà cung cấp hệ điều hành đã tạp ra trước đó
Trang 292.7: Chọn chip
Dưới đây là danh sách các chip có hỗ trợ giao thức USB, đồng thời cũng rất quen
thuộc với sinh viên:
AT43USB35x, AT67C713 của hãng Atmel
PIC 18F2550/4550 cua hang Microchip
EZ-USB cua hang Cypress Semiconductor
TUSB3210/3410 cua hang Texas Instrument
Ngồi ra cịn có một số chip khác, mời xem thêm phụ lục 4
Trang 30
CHUONG III: TONG QUAN VE MANG TRUYEN THONG 1 DAY
3.1:Định nghĩa mạng truyền thông 1 dây
Mạng 1 dây là mạng sử dụng 1 dây để làm đường Bus truyền và nhận dữ liệu
Vcc Vcc
Vcc
° D8241!
1-Wire® Slave Device
GND PIC® Microcontroller Hình 2.1: Sơ đề mạng 1 dây
3.2: Tổng quan về Bus 1 dây
Giao thức 1 dây sử dụng công logic CMOS/TTL và hoạt động ở điện áp từ 2.8V đến 6V
Chủ và tớ đều có thé là thiết bị nhận hoặc là thiết bị truyền, tuy nhiên việc truyền đữ liệu tại 1 thoi điểm chỉ được theo I hướng Chủ thiết lập và điều khiển mọi hoạt động
của giao thức I dây
Việc đọc và viết đữ liệu được thực hiện theo từng Bit 1, Bit có trọng số nhỏ nhất
(LSB) được truyền trước, và việc đọc viết dữ liệu được thực hiện theo từng khoảng thời gian
Trang 313.3: Cac yéu cau
Những yêu cầu cho bat kì bus 1 day: Hệ thống phải có khả năng tạo ra một khoảng
thời gian delay chính xác và liên tục trong lus dé đạt được tốc độ chuẩn hay là 0.25us
cho tốc độ tối đa
Cổng giao tiếp phải là song cổng (có thể nhập và xuất dữ liệu) Cổng xuất của nó
phải là cực máng hở Không được ngắt việc giao tiếp trong khi đang quá trình trao đổi
dữ liệu đang diễn ra (Chú ý: Hầu hết các dòng vi điều khiển PIC cho phép người dùng điều chính bất kì chân IL/O nào thành cực máng hở như yêu cầu.Để biết thêm các
khuyến cáo về giá trị điện trở kéo lên Xem trong datasheet kèm theo từng loại thiết bị
tớ.)
3.4:Hoạt động của bus 1 dây
Bồn thao tác cơ bản của Bus 1 dây là RESET, việt Bit 0, việt Bit 1 và đọc Bit
Sử dụng các thao tác Bit này, 1 thiết bị phải biết được 1 byte hoặc 1 khung các
bytes
Hình 3.2: Cau tric Timing trén Bus
Trang 32
Bus chủ thiết lập và điều khiến tất cả việc giao tiếp 1 dây Hình 2.2 mô tả biểu đồ
thời gian của giao tiếp 1 dây Nó giống với Điều xung bởi vì dữ liệu được truyền đi
bằng 1 xung rộng(logic = 0) và xung hẹp(logic 1) trong suốt khoảng thời gian truyền
Bit dữ liệu hay là I ngăn thời gian
Một chuỗi giao tiếp bắt đầu khi bus chủ xuất ra I1 xung “Reset” đã được định sẵn độ
dài, cái mà đồng bộ cả bus Mỗi tớ trả lời xung “Resef” bằng 1 xung “Presence” có
mức logic thấp
Để viết đữ liệu, chủ trước tiên thiết lập 1 ngăn thời gian bằng cách kéo đường 1 dây
xuống mức thấp, sau đó, hoặc là giữ nguyên đường line ở mức thấp (xung rộng) để truyền mức logic 0, hoặc là “thả” đường line (xung hẹp) dé cho bus về lại mức logic 1
Để đọc dữ liệu, chủ lại thiệt lập I ngăn thời gian bằng việc kép đương line xuống
thấp với 1 xung hẹp Tớ có thể hoặc là trả về logic 0 bằng cách mở đường xuất của nó
với cực máng hở và giữ cho đường line ở mức thấp để mở rộng xung, hoặc trả về mức logic 1 bằng việc đóng đường xuất của nó với cực máng hở để cho đường line về lại mức cao
Hầu hết các thiết bị 1 dây hỗ trợ 2 mức tốc độ dữ liệu:
Tốc độc chuẩn khoảng 15kbps và tốc độ tối đa và khoảng 111kbps
3.4: Mạng một dây và Vi điều khiển PIC
Vi điêu khiên PIC có nhiêu chân ra vào với mục đích chung (GPIO), và có thê dê
dàng hiệu chỉnh để thực hiện giao thức I dây của Maxim/Dallas
Semiconductor(M/DS)
Giao thức 1 day (1-Wire) cho phép giao tiếp với nhiều thiết bị khác của M/DS, bao gồm pin, các thiết bị quản lí nhiệt, bộ nhớ, iButtons, và vân vân
Các thiết bị 1 dây cung cấp các giải pháp vềbộ nhớ, timer, đo lường và điều khiển
Giao tiếp đữ liệu của mạng 1 dây được giảm thiểu đến mức tối đa (1 đường đữ liệu
cùng với 1 đường nối mass ) Vì vậy hầu hết các thiết bị 1-dây cung cấp tương đối nhỏ
khối lượng dữ liệu, tỉ lệ dữ liệu thông thường đạt 16kbps du cho các công việc mong
Trang 331 bus chủ thường rất thuận tiện các thiết bị 1 day giao tiép bang cach sir dung 1
đường dữ liệu đơn và đã xác định rõ ràng Chú ý:
Trạng thái nghỉ cho bus I dây là ở mức cao Nếu việc truyền đữ liệu cần được kết
thúc, dù bất kì 1 lí do gì, bus phải được đưa về trạng thái nghỉ Nếu không được đưa về trạng thái nghỉ, và bus được đưa về mức thấp lâu hơn 120us, 1 hoặc nhiều thiếc bị trên
bus sẽ bị reset
Trang 34
CHUONG IV: TONG QUAN VE PIC 18F2550/4550
4.1: Giới thiệu PIC 18E2550/4550
PIC 18§F2550/4550 là dòng PIC 8 Bit của Microchip có hỗ trợ chức năng USB với
hai cấp tốc độ: full-speed và high-speed với các chuẩn truyền khác nhau gồm kiểu điều khiển, ngất, không đồng bộ và bulk Hỗ trợ hơn 32 endpoints Giành riêng IKbyte RAM cho chức năng USB Có bộ truyền nhận và bộ nắn điện áp trên chip Hỗ trợ giao thức USB cho bộ truyền nhận ngoài
Bên cạnh chức năng quan trọng trên, dòng Vi điều khiển này còn hỗ trợ rất nhiều
các chức năng khác như: 3 ngắt ngoài, 4 timers, 2 bộ CCP/PWM, 1 bộ UART, I2C và
SPI, 13 kênh ADC 10 Bit Tần số hoạt động lên tới 4§MHz
Nguồn cung cấp từ 2.0V tới 5.5V cùng với các chế độ tiết kiệm năng lượng
Program Memory | Data Memory mssP E g
txời viee_ | Fiash |#SingleWord| SRAM |EEPROM | /O |a/p (ch) (pWM) | ŠPP | sp |Master| Š 10-bit |CCPIECCP < | & | timers Š | #16-bit
(bytes) | Instructions | (bytes) | (bytes) Pom | ấ ẫ
PIC18F2485| 24K 12288 2048 | 258 | 24 | 10 2/0 No Y Y 1 |2 /3 PIC18F2550| 32K 16384 2048 | 256 | 24 | 10 2/0 No Y Y 1 |2| 1⁄3 PIC18F4455| 24K 12288 2048 | 258 | 35 | 13 1/1 Yes | Y Y 1 |2| 1⁄3 PIC18F4550| 32K 16384 2048 | 256 | 35 | 13 1⁄4 Yes | Y ¥ 1 ]|2| 1⁄3
Bảng 4.1: Bảng tóm tắt chức năng của PIC 182550/4550
UO
WGLRVPARES —e [1 RAIAN) +—+[|2 40Ƒ] ~—+ R?KBBIP6D 29 f] + RBGKBIPGC
RAVANS «—>(]3 98 [] —> RBSIKBII/PGM
RAQIANQVREMCVREF «—+[|4 a7 [1 RRAIANT I KBIOICSSPP
RAIANSIVREF* <—e(] § 34 L<+ RBSIANGICCP2"ivPO
RA4T0CKIC10UTRCV ôô[]Đ %è1< R8ôIANBINT2VNO 2 RASIANGSSHLVDINCZOUT <—+C]7 234 [<> RBTIANIOINTHSCKISCL : oar ng
REQIANSICKISPP ôâ+[|é w 33[<~> RW/ANI2/NTUFLTOSDIS0A " alee ieataeal
REIANðOK2$PP ©+lo ĐĨ ứ1<Wo aes ares teats RE2AN7I0EĐPP ô+[|l0 Fe 3:]<—wWs RH2JANôNBrlClg ES re 0
Voo—eit BB xlÙ<~~WwPipn pasanavneres*(] § 88 alls Resiangcce2tiveo
Vs —+qi2 00 [++ rosspreric RA4T0©KIC!0U] wer] 6 Se alte JRINANIIMI,
0€1CUU—+[|3 gà 4l++R39P6Pl6 RAB/AMSSHLVDNC20UT®*[|?7 ik 2|Í*“* RBLAMONTIS04S0
€2LKORA9 «——[| 14 271) + RO4SPPS vs—>Q] 8 5b 21[]*> RBOIANT2INTOFLTOSDISOA
RC0T1080T130KI « «(| 15 2 {]-<—» RCTRXDTISOO cscricu—e[] 9 fe 2 w
R€1/Tt08ICCP2/lE «—«[] 16 ]~—+ R08TXCK oscaciKorss —L10 40 Je— Vss
RC2ICCPIPIA «—+[ | 17 24H~—> R05D+VP RE0T!0801304+â>L|!! 1I|]** RCTRXDTS00
'Vus ô>[|1ấ 2al]l2>Re10.4w R01ITI08I0092100E<> L]12 srs ROBTXICK
RDOSPPO <—+[] 19 z2h~—R03$PP3 R02/00Pte+Llt3 16LÏ** RCSD+VP
R01§PP+ —+[]|20 2t]]<—> R02§PP2 Wex>[lu 16|]Ì** R©ID.AM
Hình 4.1: Sơ đồ chân của PIC 18F2550/4550
Trang 35
4.2: Khái quát chức năng USB trong PIC PIC18FX455/X550 Family =—=—=—=—=—=—=—=—=—=—=—=—=—=—=—=—nq
3.3V Regulator Ị †— vuss ' 'Edemal 3,3V Ì Supply) I VREGEN——EN I | oR EM „ 3!
Optional
F5 >—+œ I External,
FSEN I Pullups D|_ |_ _ „
UPUEN Internal Pull-ups| l ¡ (Full = = (Low | 1
UTRDIS I | Speed) Speed)!
Transceiver eet eee eee a8
USB Clock from the HFS gy Ị =
I I Oscillator Module me oe > 4 External > oe Transceiver
tCB Ceneol — 178 TH ee i USB Bus
Configuration leg Rov) [1 72 au +>) _ — —>
USB I—> vwo0ì|!
SIE Lị->BI vpot)
SPP7:SPP0 1 Kbyte _ I->B ckK1sPP USB RAM 2 CK2SPP —>E] CSSPP Ì->El oEsPP I
Hình 4.2: Cấu trúc của chức năng USB bên trong chip
4.2.1:Trạng thái và điều khiến USB
Hoạt động của mô-đun USB được định dạng và quản lí thơng qua 3 thanh ghi
điều khiển Ngoài ra cịn có tổng cộng 19 thanh ghi được dùng vào việc quản lí việc
giao dịch của USB
4.2.2: Thanh ghi điều khiển (UCON)
Thanh ghi này bao gồm những Bit cần thiết cho việc điều khiển hoạt động của mô-đun trong suốt quá trình trao đổi dữ liệu Thanh ghi này bao gồm các Bit thiết cấu hình để điều khiển các vấn đề sau:
+ Kích hoạt chức năng chính của thiết bị ngoại vi USB
+ Reset con trỏ bộ đệm ping-pong
+ Điều khiển chế độ tiết kiệm năng lượng
+ Vơ hiệu hóa q trình truyền
Trang 36
UCON: USB CONTROL REGISTER
U-0 Rw-0 R-x RIC-0 RiW-0 R/W-0 R/W-0 U-0
_ PPBRST SE0 PKTDIS | USBEN | RESUME | SUSPND _
bit 7 bit 0
Bit 7 va Bit 0: Không dùng, đọc giá trị 0
Bit 6: PPBRST - Bit reset cho b6 dém ping-pong
1 =reset tất cả các con trỏ của bộ đệm ping-pong
0 = các giá trị của bộ đệm ping-pong không bị reset Bit 5: SEO — Bit cờ cho biết sự có mặt của thiết bị trên bus
1 = Cho biết giao thức USB được hình thành
0 = Giao thức USB chưa được hình thành
Bit 4: PKTDIS — Bit vơ hiệu hóa quá trình truyền packet
1= Quá trình truyền packet bị vơ hiệu hóa 0 = Quá trình truyền packet được thiết lập
Bit3: USBEN - Bit kích hoạt mô-đun USB 1 =Mô-đun USB được kích hoạt
0 =Mơ-đun USB bị vơ hiệu hóa
Bit 2: RESUME - Bit kích hoạt phục hồi tín hiệu 1 = Quá trình phục hồi tín hiệu được kích hoạt 0 = Quá trình phục hoi bị vô hiệu hoa
Bit 1: SUSPND -— Bit trì hỗn quá trình
Trang 374.2.3: Thanh ghi cấu hình USB (UCFG)
Thanh ghi UCFG bao gồm hầu hết các Bit điều khiến mức độ hoạt động của hệ
thống trong mô-đun USB
+ Tốc độ trên bus
+ Kích hoạt điện trở kéo bên trong chip + Kích hoạt bộ truyền nhận bên trong chip + Sử dụng bộ đệm ping-pong
Trên thanh ghi này cũng bao gồm 2 Bit giúp đỡ cho việc kiểm tra mô-đun,
debug
UCFG: USB CONFIGURATION REGISTER
R/W-0 R/W-0 U-0 R/W-0 RW-0 RIW-0 RW-0 RW-0
[ uTEYE [UOEMON|] = — — [uPUEN®)| UTRDIS®@)| FSEN@) | PPB1 | PPBO
bit 7 bit 0
Bit 7: UTEYE - Bit kích hoạt chức năng “Eye Pattern Test” (EPT) 1 = Kích hoạt chức năng EPT
0 = Vơ hiệu hóa chức năng EPT
Biít 6: UOEMON- Bit kích hoạt giám sát USB OE (Output Enable)
1 = Bật tín hiệu OE, Bit nay cho biết khoảng thời gian dữ liệu chạy trên bus 0 = Tắt tín hiệu OE
Bit 5: Khong dùng
Bit 4: UPUEN - Bit kích hoạt điện trở kéo trong chip 1 = Điện trở kéo được kích hoạt
0 = Điện trở kéo không được kích hoạt
Trang 38
Bit 3: UTRDIS — Bit kich hoạt mô-đun truyền nhận trên chip
1 = M6-dun truyén nhan trén chip bi tat, giao thức truyền nhận mô-đun số được kích hoạt
0 =Mơ-đun truyền nhận trên chip được kích hoạt Biít 2: FSEN -Bít kích hoạt Full-Speed
1 = Full Speed 0 = Low Speed
Bit 1-0: PPB1:PPBO — Cac Bit thiết lập cấu hình của b6 dém ping-pong
11 = Dự trữ
10 = Bộ đệm được đùng cho tất cả các endpoint
01 = Bộ đệm được dùng cho OUT endpoint 0 00 = Bộ đệm bị tắt
4.2.4: Thanh ghi trang thai USB
Thanh ghi trạng thái này cho chúng ta biết trạng thái của sự gia dịch trong suốt
quá trình truyền nhận
BDnSTAT: BUFFER DESCRIPTOR n STATUS REGISTER (BD0STAT THROUGH
BD63STAT), CPU MODE (DATA IS WRITTEN TO THE SIDE)
RIW-x RIW-x RIW-x R/W-x R/W-x RW-x R/W-x R/N-x
[yown™ | pts@ | KEN | INCDIS | DTSEN | BSTALL | BC9 | BC8 |
bit 7 bit 0
Bit 7 : Chưa tích hợp
Bit 6-3: ENDP3:ENPO - Số mã hóa của hoạt động endpoint cuối cùng 1111 = Endpoint 15
1110 = Endpoint 14 0001 = Endpoint 1
Trang 39Bit 2: DIR - Bit chỉ thị hướng của BD cuối cùng 1 = Hoạt động truyền dữ liệu cuối cling 14 1 IN token
0 = Hoạt động truyền đữ liệu cuối cùng là 1 OUT hoặc SETUP token
Bit 1: PPBI - Bit con tro chỉ thi Ping-Pong BD
1 = Hoạt động truyền dữ liệu cuối cùng 1a bank BD 1é 0 = Hoạt động truyền đữ liệu cuối cùng là bank BD chắn
Bít 0: Chưa tích hợp
4.2.5: Thanh ghi diéu khién USB ENDPOINT( UEPn)
Mỗi enpoint trong tổng số 16 endpoint c6 thanh ghi điều khién riéng, chữ n là số thứ tự của endpoint Tất cả các thanh ghi đều giống nhau về mặt bố trí và chức năng
của Bit điều khiển
UEPn: USB ENDPOINT n CONTROL REGISTER (UEP0 THROUGH UEP15)
U-0 U-0 U0 R0 R/W-0 RAM0 R0 RAO [ — | = | — |EPnsH+k |EPCONDIS |EPOUTEN | EPINEN [EPSTALL™]
bịt 7 bit 0
Bit 7-5: Chua thich hop
Bit 4: EPHSHK - Bit khoi déng bat tay Endpoint (Endpoint handshake)
1 = Kich hoat Endpoint handshake
0 = Khơng kích hoạt Endpoint handshake
Bit 3: EPCONDIS - Bit điều khiển Endpoint
(néu EPOUTEN = 1 va EPINEN = 1)
1 = Tat Endpoint n control transfers; chỉ có IN và OUT transfers được cho phép 0 = Bật Endpoint n confrol transfers; INÑ và OUT transfers cũng được cho phép Bit 2: EPOUTEN - Bit kích hoạt Endpoint Output
1 = Bật Endpoint n output 0 = Tắt Endpoint n output
Trang 40
Bit 1: EPINEN: Bit kich hoat Endpoint Input 1 = Bat Endpoint n input
0 = Tat Endpoint n input
Bit 0: EPSTALL: Bit kich hoat Endpoint Stall 1= Endpoint n dugc stall
0 = Endpoint n khong dugc stall
4.2.6: Thanh ghi trang thai ngắt của giao thức USB
Thanh ghi này gồm có nhiều cờ báo hiệu mỗi trang thái ngắt từ nhiều nguồn khác
nhau
UIR: USB INTERRUPT STATUS REGISTER
U-0 RW-0 R0 RW0 RWO RWO RO RIW-0 [ = | sorie | STAULIF | IDLEIF™ | TRNIF® | ACTVIFO| UERRIF@| URSTIF
bit 7 bit 0
Bit 7: Chua được tích hợp
Bit 6: SOFIF - Bit ngat START-OF-FRAME Token 1 = SIE nhan được một START-OF-FRAME token
0 = SIE khong nhận được bat ki START-OF-FRAME token
Bit 5: STALLIF - Bit ngat STALL Handshake
1 = SIE vira truyén m6t STALL Handshake 0 = STALL Handshake chua duge truyền Bit 4: IDLEIF - Bit ngắt phát hiện trạng thái chờ
1 = Phát hiện chờ (trạng thái chờ khoảng 3ms hoặc hơn) 0 = Không rãnh
Bit 3: TRNIF - Bit ngắt hoàn thành quá trình truyền
1 = Quá trình truyền hồn tắt, đọc thanh ghi USTAT về thông tin endpoint