Tải bản đầy đủ (.docx) (48 trang)

đồ án đo nhiệt độ giao tiếp máy tính qua cổng usb

Bạn đang xem bản rút gọn của tài liệu. Xem và tải ngay bản đầy đủ của tài liệu tại đây (894.5 KB, 48 trang )

BỘ GIÁO DỤC VÀ ĐÀO TẠO
TRƯỜNG ĐẠI HỌC SƯ PHẠM KỸ THUẬT TP. HCM
KHOA ĐIỆN - ĐIỆN TỬ
BỘ MÔN ĐIỆN TỬ - VIỄN THÔNG

ĐỒ ÁN MÔN HỌC 2
Ngành: Công Nghệ Kĩ Thuật Máy Tính
ĐỀ TÀI
ĐO NHIỆT ĐỘ GIAO TIẾP
MÁY TÍNH QUA CỔNG USB
GVHD : ĐẬU TRỌNG HIỂN
SVTH : PHẠM QUỐC HUY MSSV: 09119015
TP. HỒ CHÍ MINH – 1/2012
Đại Học Sư Phạm Kỹ Thuật CỘNG HÒA XÃ HỘI CHỦ NGHĨA VIỆTNAM
Khoa Điện – Điện Tử Độc Lập – Tự Do – Hạnh Phúc
Bộ Môn Điện Tử Viễn Thông
Ngày……tháng … năm 201
PHIẾU CHẤM ĐỒ ÁN MÔN HỌC 02
(Dành cho người hướng dẫn)
1. Họ tên sinh viên : Phạm Quốc Huy MSSV: 09119015
2. Tên đề tài : Đo nhiệt độ giao tiếp máy tính qua cổng usb
3. Giáo viên hướng dẫn: KS.Đậu Trọng Hiển
4. Những ưu điểm của Đồ án :






5. Những thiếu sót của Đồ án:







Đề nghị :
Được bảo vệ:  Bổ sung để được bảo vệ:  Không được bảo vệ: 
6. Các câu hỏi sinh viên phải trả lời trước Tổ chấm ĐAMH:
a)


b)


c)


7. Đánh giá Điểm (Số và chữ):………………………………
CHỮ KÝ và HỌ TÊN
Đo nhiệt độ giao tiếp máy tính qua cổng usb Trang 4
PHẦN A:
GIỚI THIỆU
Xin chào quý thầy cô cùng các bạn sinh viên khoa Điện - Điện Tử trường Đại Học Sư
Phạm Kĩ Thuật Tp.Hcm. Người thực hiện đề tài gồm Phạm Quốc Huy sinh viên khoa
điện - điện tử ngành công nghệ kỹ thuật máy tính khoá 2009.Trong đồ án môn học 2
này nhóm thực hiện đề tài chọn đề tài: “Đo nhiệt độ giao tiếp máy tính qua cổng usb”.
Trong đề tài này. Nhiệt độ đo được và được chuyển lên máy tính, máy tính nhận dữ
liệu hiển thị trên phần mềm bằng ngôn ngữ C#. Máy tính sẽ tổng hợp và vẽ ra biểu đồ
nhiệt độ theo thời gian.
Giới thiệu

Đo nhiệt độ giao tiếp máy tính qua cổng usb Trang 5
LỜI CẢM ƠN
Để hoàn thành sản phẩm và bài báo cáo này nhóm thực hiện đề tài xin chân thành cảm
ơn sự giúp đỡ và hướng dẫn tận tình của quý thầy cô khoa điện – điện tử trường
ĐHSPKT Tp.Hcm, đặc biệt là thầy Đậu Trọng Hiển. Dù đã có nhiều cố gắng nhưng
chắc chắn còn nhiều điểm thiếu sót và yếu kém. Rất mong sự đóng góp của quý thầy cô
cũng như các bạn để nhóm thực hiện đề tài có thể hoàn thiện hơn trong những bài báo
cáo sau.
Lớp Kỹ Thuật Máy Tính – Khóa 2009
Phạm Quốc Huy
Giới thiệu
Đo nhiệt độ giao tiếp máy tính qua cổng usb Trang 6
MỤC LỤC
PHẦN A: Giới thiệu I
Lời cảm ơn II
Mục lục III
Liệt kê các hình và các bảng V
PHẦN B: NỘI DUNG 1
CHƯƠNG1: ĐỀ CẬP VẤN ĐỀ 1
CHƯƠNG2: MỤC TIÊU CỦA ĐỀ TÀI 2
2.1 Mục tiêu của đề tài 2
2.2 Giới hạn đề tài nghiên cứu 2
2.3. Ý nghĩa khoa học và thực tiễn của đề tài 2
2.4. Nội dung của đề tài 2
CHƯƠNG 3: LÝ THUYẾT LIÊN QUAN CỦA ĐỀ TÀI 4
3.1 Chuẩn giao tiếp USB 4
3.1.1 Giới thiệu chuẩn giao tiếp USB 4
3.1.2 Đặc tính cổng USB 4
3.1.2.1 Đặc tính cơ 4
3.1.2.2 Đặc tính điện 5

3.1.2.3 Giao tiếp USB 5
3.1.2.4 Những gói tin của chuẩn USB 6
3.1.2.5 Những kiểu gói dữ liệu 8
3.1.2.6 Yếu tố liên quan việc truyền dữ liệu 8
3.1.2.7 Interrupt transfer 9
3.1.2.8 Qúa trình enumeration 10
3.1.2.9 Human interface devices 12
3.2 Vi điều khiển PIC18F4550 12
3.2.1 Sơ lược dòng vi điều khiển PIC18F4550 12
3.2.2 Giới thiệu module USB trong PIC18F4550 13
3.3 Giới thiệu LM35 14
3.4 Khái quát LCD 16x2 15
CHƯƠNG 4: SƠ ĐỒ KHỐI VÀ LƯU ĐỒ GIẢI THUẬT 17
4.1 Sơ đồ khối hệ thống 17
4.2 Phân tích khối 17
4.2.1. LM35 17
4.2.2 Khối hiển thị 17
4.2.3 Khối vi xử lý 17
4.3 Lưu đồ gải thuật 18
4.3.1 Lưu đồ MAIN 18
4.3.2 Lưu đồ hàm đo nhiệt độ 19
Giới thiệu
Đo nhiệt độ giao tiếp máy tính qua cổng usb Trang 7
4.4 Phân tích và gải quyết lưu đồ giải thuật 20
4.4.1 Phân tích đo điện áp 20
4.4.2 Giải thuật hàm main 20
CHƯƠNG 5: SƠ ĐỒ NGUYÊN LÝ VÀ LAYOUT 21
5.1 Sơ đồ nguyên lý 21
5.2 Sơ đồ layout 22
5.3 Phần mềm điều khiển bằng C# 22

5.4 Các linh kiện sử dụng trong mạch 23
CHƯƠNG 6: MÃ NGUỒN CHƯƠNG TRÌNH 24
6.1 Mã nguồn vi điều khiển 24
6.2 Mã nguồn c# 27
CHƯƠNG 7: KÊT LUẬN 35
7.1 Kết quả của đề tài 35
7.2 Hạn chế của đề tài 35
7.3 Hướng phát triển của đề tài 35
PHẦN C: PHỤ LỤC 36
PHỤ LỤC A: Bảng tập lệnh của LCD 37
PHỤ LỤC B: Tài liệu tham khảo 38
Giới thiệu
Đo nhiệt độ giao tiếp máy tính qua cổng usb Trang 8
LIỆT KÊ CÁC HÌNH VÀ CÁC BẢNG
Hình 3.1: Sơ đồ chần của cổng usb 4
Hình 3.2: Mô tả 2 kiểu cổng USB 5
Hình 3.3: Gía trị trở treo ở 2 mức speed low và full 5
Hình 3.4: Sơ đồ tranfer 6
Hình 3.5: Dạng chuẩn của quá trình ngắt .10
Hình 3.6: Mô tả 64 byte device descriptor 11
Hình 3.7: Mô tả 9 byte configuration decriptor 11
Hình 3.8: Mô tả các chân vi điều khiển PIC18F4550 13
Hình 3.9: Cảm biến nhiệt độ LM35 14
Hình 3.10: Hình LCD 16x2 15
Hình 5.1: Sơ đồ nguyên lý 21
Hình 5.2: Pơ đồ layout 22
Hình 5.3: Phần mềm điều khiển 22
Bảng 3.1: giá trị tương ứng với các kiểu gói 7
Bảng 3.2 : Chức năng của các chân LCD 15
Giới thiệu

Đo nhiệt độ giao tiếp máy tính qua cổng usb Trang 9/38
PHẦN B: NỘI DUNG
CHƯƠNG 1:
Đề cập vấn đề
Ngày nay, nền kinh tế đã từng bước được công nghiệp hóa và hiện đại hóa. Với
sự phát triển ngày càng vượt bậc, máy tính đóng vai trò quan trọng trong đời sống và
sản xuất. Trong sản xuất máy tính đóng vai trò là điều khiển và thu thập dữ liệu trong
tất cá các quá trình . Việc điều khiển các thiết bị điện thông qua máy tính là 1 phần
không thể thiếu trong các nhà máy tự động hóa và trong các ngôi nhà thông minh. Và
Và qua đồ án 1. Với mục đích vận dụng lại kiến thức về điện tử và tin học nên ở đồ án
môn học 2, nhóm thực hiện chọn thi công mạch “đo nhiệt độ giao tiếp máy tính qua
cổng usb” để vận dụng các kiến thức cơ bản đã được học và hiểu rõ hơn về nguyên lý
truyền và nhận dữ liệu qua cổng usb.
Ở đồ án môn học 2 này, do muốn tìm hiểu về giao tiếp usb cùng với vi xử lý pic
18f4550. Nên sẽ sử dụng pic 18f4550 để thi công mạch. Về phần hiển thị có thể dùng
led 7 đoạn led ma trận, LCD để hiển thị. Đối với đồ án môn học 2 này người thực hiện
đề tài sử dụng LCD để hiển thị.
Chương 1 Đề cập vấn đề
Đo nhiệt độ giao tiếp máy tính qua cổng usb Trang 10/38
CHƯƠNG 2:
Mục tiêu của đề tài
2.1 Mục tiêu của đề tài
Mục tiêu của đề tài là xây dụng mô hình điều khiển và giám sát thiết bị điện
giao tiếp máy tính thông qua cổng USB. Các nhiệm vụ cụ thể là :
• Tìm hiểu chuẩn giao tiếp USB.
• Tìm hiểu các dòng vi điều khiển hỗ trợ giao tiếp USB.
• Tìm hiểu giao tiếp USB thông qua lớp HID của hệ điều hành Window.
• Xây dựng phần mềm giao tiếp với mạch điều khiển bằng Visual C#.
• Xây dựng phần mềm truyền nhận dữ liệu điều khiển thiết bị bằng Visual C#.
2.2 Giới hạn đề tài nghiên cứu

Chuẩn giao tiếp USB là 1 chuẩn khá thông dụng hiện nay tuy nhiên chuẩn bao
gồm nhiều giao thức và việc tự xây dựng 1 driver và 1 firmwave để giao tiếp giữa
kernel hệ điều hành và thiết bị đòi hỏi những hiểu biết về cấu trúc của hệ điều hành và
hiểu sâu sắc về cách thức giao tiếp USB. Do đó đề tài chỉ giới hạn ở mức sử dụng
driver có sẵn trong lớp HID của Window và firmwave trên thiết bị sử dụng thư viện
USB được xây dựng sẵn.
2.3 Ý nghĩa khoa học và thực tiễn của đề tài
Việc xây dựng tốt một hệ thống đo nhiệt độ với chuẩn giao tiếp là rất cần thiết
đê ngườ sử dụng có thể nhận biết và quan sát được nhiệt độ hiện tai hay trong một
khoảng thời gian. Để có thể tính toán được công việc mình sẽ làm tiếp theo.
2.4. Nội dụng đề tài
Phần còn lại của để tài bao gồm những nội dung sau :
Chương 2 Mục tiêu của đề tài
Trong chương này trình bày mục tiêu của đề tài giới hạn nghiên cứu, ý nghĩa
khoa học và thực tiễn của đề tài.
Chương 3 : Lý thuyết liên quan của đề tài
Trong chương này, giới thiệu tổng quát về chuẩn giao tiếp USB, vi điều khiển
PIC18F4550.
Chương 4 : Sơ đồ khối và lưu đồ giải thuật
Chương này trình bày sơ đồ khối của hệ thống và lưu đồ giải thuật.
Chương 2 Mục tiêu của đề tài
Đo nhiệt độ giao tiếp máy tính qua cổng usb Trang 11/38
Chương 5 : Sơ đồ nguyên lý và layout
Bao gồm sơ đồ nguyên lí , layout và danh sách các linh kiện sử dụng trong mạch.
Chương 6 : Mã nguông chương trình
Bao gồm mã nguồn chương trình của vi điều khiển và mã nguồn chương trình
c#.
Chương 7 : Kết luận
Chương này tổng kết lại các thành quả đạt được , những cái chưa đạt được và
hướng phát triển.

PHẦN C : Phụ lục
Chương 7 gồm code chương trình trên vi điều khiển và giao diện trên máy tính.
Chương 2 Mục tiêu của đề tài
Đo nhiệt độ giao tiếp máy tính qua cổng usb Trang 12/38
CHƯƠNG 3
Lý thuyết liên quan của đề tài
Chương này trình bày tổng quan về chuẩn giao tiếp USB và vi điều khiển PIC18F4550.
3.1 Chuẩn giao tiếp USB
3.1.1 Giới thiệu chuẩn giao tiếp USB
USB là 1 chuẩn kết nối của máy tính ra đời vào năm 1996 từ sự hợp tác của 7
công ty hàng đầu thế giới .
USB hỗ trợ 127 thiết bị khác nhau có thể kết nối vào cùng 1 máy tính từ máy in,
máy ảnh cho đến điện thoại, mouse,keyboard, …
Tốc độ trên lý thuyết là :
• USB 1.0: 1,5 Mbps (low speed)
• USB 1.1: 12 Mbps (full speed)
• USB 2.0: 480 Mbps (high speed)
• USB 3.0: 4,8 Gbps (super speed)
Ưu điểm của chuẩn giao tiếp USB là :
• Tự load driver sau khi kết nối thiết bị ngoại vi với PC mà không cần reset
máy sau khi cài lại driver.
• Dễ kết nối.
• Đa số các máy tính hiện nay đều có cổng USB.
• Tốc độ truyền dữ liệu cao.
Nhược điểm của chuẩn giao tiếp USB :
• Giới hạn về khoảng cách giao tiếp (<5m).
• Không hỗ trợ kết nối peer to peer (phải có 1 thiết bị là host và 1 thiết bị là
device).
3.1.2 Đặc tính cổng USB
3.1.2.1 Đặc tính cơ

USB gồm 4 chân VCC, D-, D+ , GND.
Hình 3.1 Sơ đồ chần của cổng usb
Chương 3 Lý thuyết liên quan của đề tài
Đo nhiệt độ giao tiếp máy tính qua cổng usb Trang 13/38
USB gồm 2 kiểu cổng là A và B
Hình 3.2 mô tả 2 kiểu cổng USB
3.1.2.2 Đặc tính điện
USB dùng 2 đường khác nhau để truyền dữ liệu. Dữ liệu này được mã hóa dùng
NRZI. Ở tốc độ low và full speed, mức “1” được truyền bằng cách kéo đường D+
hơn 2,8V với 1 điện trở 15K kéo xuống mass và đường D- dưới 0.3V với 1 điện trở
1.5K được kéo lên 3.6V. Và mức “0” thì ngược lại đường D- lớn hơn 2.8V và
đường D+ bé hơn 0.3V với cùng điện trở kéo lên/xuống.
Thiết bị nhận biết là mức logic “1” khi đường D+ lớn hơn 200mV so với
đường D- và mức “0” khi đường D+ bé hơn 200mV so với đường D Mức điện áp
cho mức logic bị đảo ngược dựa vào tốc độ của bus. Các kí tự “J” và “K” được
dùng để định nghĩa cho các mức logic. Ở low speed trạng thái “J” định nghĩa cho
mức “0”. Ở high speed trạng thái “J” định nghĩa cho mức “1”.

Hình 3.3 Gía trị trở treo ở 2 mức speed low và full
3.1.2.3 Giao thức USB
Không giống như RS232 hoặc các giao thức đơn giản khác những giao thức mà
dữ liệu không được định dạng khi gửi. USB tạo nhiều tầng cho những giao thức.
Mỗi transaction USB bao gồm:
+ Token Packet
+ Data Packet
+ Status Packet
Chương 3 Lý thuyết liên quan của đề tài
Đo nhiệt độ giao tiếp máy tính qua cổng usb Trang 14/38
Một transfer của USB gồm nhiều transaction.
Hình 3.4 sơ đồ tranfer

USB có 4 loại transfer khác nhau đó là:
+ Control : truyền các dữ liệu nhận dạng và điều khiển.
+ Bulk : Dùng để truyền dữ liệu lớn cho các thiết bị ngoại vi như máy in,
máy scan…
+ Interrupt : Dùng ngắt để truyền dữ liệu như chuột, bàn phím…
+ Isochronous : Dùng truyền dữ liệu lớn bỏ qua lỗi như media, hình ảnh.
3.1.2.4 Những gói tin của chuẩn USB
Dữ liệu trên bus USB truyền bit LSB đầu tiên. Các gói tin bao gồm:
• Sync
Các gói dữ liệu đều bắt đầu bằng gói tin này.Gói tin sync gồm 8 bit, nó
được dùng để đồng bộ giữa bên phát với bên thu.
• PID
Gói tin này chứa ID của gói dữ liệu. Nó định nghĩa kiểu của gói dữ liệu
đang được gửi. Các giá trị tương ứng với các kiểu gói được trình bày
trong bảng sau.
Chương 3 Lý thuyết liên quan của đề tài
Đo nhiệt độ giao tiếp máy tính qua cổng usb Trang 15/38
Bảng 3.1 giá trị tương ứng với các kiểu gói
Như trên ta thấy gói tin PID này gồm 4 bit, nhưng để đảm bảo bộ thu
nhận đúng , 4 bit này được lặp lại 1 lần nữa vì vậy gói tin PID này gồm 8
bit.
• ADDR
Gói tin này định nghĩa gói dữ liệu được gửi là từ thiết bị nào. Vùng này
gồm 7 bit tương ứng với 127 thiết bị. Địa chỉ thứ 0 thì không tồn tại, khi
thiết bị chưa được định địa chỉ thì vùng địa chỉ này có giá trị 0.
• ENDP
Vùng endpoint này gồm 4 bit tương ứng với 16 endpoint.
• CRC
Vùng này chứa mã CRC dùng để kiểm tra dữ liệu hư hỏng hay không.
Với các gói token vùng này gồm 5 bit trong khi với các gói data vùng

này gồm 16 bit.
• EOP
Vùng này đánh dấu kết thúc gói tin. Gồm 2 bit .
Chương 3 Lý thuyết liên quan của đề tài
Đo nhiệt độ giao tiếp máy tính qua cổng usb Trang 16/38
3.1.2.5 Những kiểu gói dữ liệu
• Gói Token
Gồm 3 kiểu:
+ In - Thông báo với device rằng host cần đọc thông tin.
+ Out – Thông báo với device rằng host cần gửi thông tin.
+ Setup – Dùng để bắt đầu kiểu truyền điều khiển ( Control
transfer ).
Gói Token định dạng theo chuẩn sau.
• Gói Data
Có 2 kiểu gói dữ liệu có khả năng truyền từ 0 đến 1023 byte dữ liệu.
+ Data 0
+ Data 1
Gói data định dạng theo chuẩn sau.
• Gói Hankshake
Có 3 kiểu gói hankshake chỉ đon giản gồm gói tin PID.
+ ACK – Xác nhận gói dữ liệu được gửi thành công.
+ NAK – Thông báo rằng device không thể gửi hoặc nhận dữ liệu.
Nó cũng được dùng trong quá trình ngắt để báo rằng host không
có dữ liệu để gửi.
+ STALL - Báo rằng device tìm thấy chính nó trong trạng thái nó
yêu cầu can thiệp từ host.
Gói hankshake định dạng theo chuẩn sau.
• Gói bắt đầu frame dữ liệu.(SOF)
Gói bao gồm 1 số frame 11 bit được gửi bởi host mỗi
3.1.2.6 Những yếu tố liên quan việc truyền dữ liệu

• Endpoint
+ Tất cả dữ liệu chạy trên Bus đều đến hoặc đi từ device endpoints.
Endpoint là một buffer lưu trữ nhiều bytes. Dữ liệu lưu trên endpoint
là dữ liệu nhận được (từ host) hay là dữ liệu sắp truyền (đến host).
Chương 3 Lý thuyết liên quan của đề tài
Đo nhiệt độ giao tiếp máy tính qua cổng usb Trang 17/38
+ Địa chỉ endpoint gồm mã số endpoint (từ 0-15) và hướng (theo
quan điểm của host).
Chương 3 Lý thuyết liên quan của đề tài
Đo nhiệt độ giao tiếp máy tính qua cổng usb Trang 18/38
+ Endpoint được cấu hình cho control transfer phải truyền dữ liệu từ 2
hướng, và mỗi device phải có endpoint 0 được cấu hình cho control
endpoints
+ Khi nhận 1 gói tin OUT hay setup, endpoint sẽ lưu data theo sau
gói tin đó, sau đó device hardware sẽ sinh ra ngắt. Tương tự khi gửi
gói tin IN.
• Pipes
+ Trước khi data được truyền đi, giữa host và device phải thiết lập
một pipe. Host thiết lập pipe ở quá trình enumeration. Host có thể yêu
cầu thêm hoặc bớt pipes dùng control transfer.
+ Mọi thiết bị có một control pipe mặc định dùng endpoint 0.
+ Thông tin cấu hình host nhận từ device bao gồm một endpoint
descriptor cho mỗi endpoint mà device muốn dùng. Mỗi endpoint
chứa đựng: địa chỉ endpoint, loại transfer mà endpoint hỗ trợ, kích
thước tối đa gói dữ liệu, đôi khi có cả transfer interval.
3.1.2.7 Interrupt transfer
Như đã biết có 4 kiểu transfer : Control, Bulk, Interrupt, Isochronous. Tuy nhiên
do giới hạn nên ở đây chỉ trình bày kiểu truyền Interrupt.
Bình thường ngắt thì do thiết bị tạo ra, nhưng ở USB nếu 1 thiết bị yêu cầu cảnh
báo cho host, nó phải chờ đến khi host hỏi vòng tới nó trước khi nó xuất cảnh báo.

Các yếu tố của Interrupt transfer.
• Đảm bảo độ trễ.
• Sử dụng pipe stream ( pipe 1 chiều ).
• Hỗ trợ phát hiện lỗi và phát lại dữ liệu.
Interrupt transfer thì thường truyền khong tuần hoàn, những thiết bị bắt đầu
truyền yêu cầu độ trễ. Một yêu cầu ngắt thì được đưa vào hàng đợi bởi device
cho đến khi host hỏi vòng tới nó để yêu cầu dữ liệu.
• Độ lớn tối đa của dữ liệu cho các device low-speed là 8 byte.
• Độ lớn tối đa của dữ liệu cho các device full-speed là 64 byte.
• Độ lớn tối đa của dữ liệu cho các device high-speed là 1024 byte.
Chương 3 Lý thuyết liên quan của đề tài
Đo nhiệt độ giao tiếp máy tính qua cổng usb Trang 19/38
Hình 3.5 Dạng chuẩn của quá trình ngắt
Biểu đồ trên trình bày định dạng chuẩn của quá trình ngắt IN và OUT.
• IN : Host sẽ hỏi vòng endpoint ngắt. Tốc độ hỏi vòng thì được định
nghĩa trong mô tả endpoint. Mỗi lần hỏi vòng host sẽ gửi 1 gói Token IN.
Nếu gói tin bị lỗi, nó sẽ được bỏ qua và gói khác được gửi lại.
Nếu 1 ngắt được đưa vào hàng đợi của thiết bị, nó sẽ gửi 1 gói tin chứa
dữ liệu liên quan đến ngắt khi nó nhận được 1 gói IN Token. Khi host
nhận thành công, host sẽ trả về 1 gói ACK. Tuy nhiên nếu dữ liệu bị lỗi,
host sẽ không trả về gì cả. Mặt khác khi 1 điều kiện ngắt không được gửi
khi host hỏi vòng endpoint ngắt với gói tin IN Token , thiết bị sẽ báo
trạng thái này bằng 1 gói NAK. Nếu 1 lỗi xuất hiện trên endpoint này, gói
tin STALL sẽ được gửi thay vì IN Token.
• OUT – Khi host muốn gửi dữ liệu đến thiết bị, nó sẽ gửi 1 gói OUT
Token và theo sau đó là 1 gói dữ liệu. Nếu bất kì phần nào của gói OUT
Token hoặc gói dữ liệu bị hỏng thì thiết bị sẽ bỏ qua gói này. Nếu bộ đệm
endpoint của thiết bị trống nó sẽ đưa dữ liệu vào vùng đệm và báo với
host bằng 1 gói ACK thông báo rằng nó đã nhận được dữ liệu. Nếu vùng
đệm không trống do đang xử lí gói dữ liệu trước đó, nó sẽ trả về 1 gói

NAK. Tuy nhiên nếu 1 lỗi xảy ra với endpoint và bit halt của nó được set
thì nó sẽ trả về 1 gói STALL.
3.1.2.8 Qúa trình enumeration
Enumeration là quá trình phát hiện thiết bị nào được kết nối đến bus và các
thông số nó yêu cầu như năng lượng cung cấp, số lượng và kiểu endpoint, lớp giao
tiếp…Host sẽ chỉ định cho thiết bị 1 địa chỉ và cho phép cấu hình thiết bị để nó truyền
dữ liệu trên bus.
Chương 3 Lý thuyết liên quan của đề tài
Đo nhiệt độ giao tiếp máy tính qua cổng usb Trang 20/38
Các bước enumeration trên hệ điều hành Window:
1. Host hoặc hub phát hiện kết nối với 1 thiết bị mới thông qua trở treo của
thiết bị trên cặp dây dữ liệu. Host sẽ chờ ít nhất 100mS cho việc đảm bảo kết
nối và nguồn cho thiết bị.
2. Host sẽ thiết lập các trạng thái mặc định cho thiết bị. Thiết bị lúc này được
nhận địa chỉ mặc định là địa chỉ 0.
3. Host sẽ yêu cầu 64 byte đầu tiên mô tả thiết bị.
Hình 3.6 Mô tả 64 byte device descriptor.
4. Sau khi nhận 8 byte đầu tiên của mô tả thiết bị, host sẽ reset bus.
5. Host bây giờ sẽ định địa chỉ cho thiết bị.
6. Sau đó nó yêu cầu tiếp 18 byte mô tả thiết bị.
7. Tiếp đó nó yêu cầu 9 byte mô tả cài đặt để định kích cỡ tổng thể.
Hình 3.7 mô tả 9 byte configuration decriptor.
8. Sau đó nó yêu cầu 255 byte mô tả cài đặt.
Chương 3 Lý thuyết liên quan của đề tài
Đo nhiệt độ giao tiếp máy tính qua cổng usb Trang 21/38
9. Cuối cùng nó yêu cầu string descriptor nếu nó được định nghĩa.
Chương 3 Lý thuyết liên quan của đề tài
Đo nhiệt độ giao tiếp máy tính qua cổng usb Trang 22/38
3.1.2.9 Human interface devices
Trong chuẩn USB, các thiết bị có chức năng

giống nhau được gom thành từng chuẩn. Do đó
thay vì phát triển driver cho nhiều thiết bị,
windows phát triển driver cho từng chuẩn và được
tích hợp sẵng trong hệ thống.
HID ( Human interface devices )
là 1 trong những chuẩn USB đầu tiên được hỗ trợ
trong window.
Window nhận ra thiết bị có thuộc lớp HID
không bằng các thông tin trong device descriptor.
3.2 Vi điều khiển PIC18F4550
3.2.1 Sơ lược dòng vi điều khiển PIC18F4550
PIC18 là dòng vi điều khiển cao cấp của họ vi điều khiển PIC với việc thêm vào
khả năng chịu đựng cao và tăng cường bộ nhớ flash. PIC18 sử dụng công nghệ
nanoWatt nhằm mở rộng các tính năng đáng kể nhằm giảm mức tiêu thụ điện năng.
Dòng PIC18 được tích hợp module truyền thông USB với các tính năng :
• Module cung cấp 2 chế độ full speed và low speed .
• Bộ thu phát và biến áp 3v3 trên chip, ngoài ra còn hỗ trợ việc sử dụng bộ
thu phát và biến áp 3v3 bên ngoài.
• Hỗ trợ 4 kiểu truyền thông của USB: Control, Interrrupt, Bulk,
Isochronous.
• Hỗ trợ đến 32 endpoint.
• Hỗ trợ 1kbyte ram để lưu dữ liệu cho việc truyền nhận .
Cấu trúc bộ dao động:
• Gồm 4 chế độ sử dụng thạch anh ngoài, bao gồm bộ nhân tần PLL cho
USB .
• 2 chế độ dùng xung clock ngoài, hỗ trợ đến 48Mhz.
• Khối dao động nội: gồm 8 mức tần số từ 31KHz đến 8MHz.
• Bộ dao động nội thứ 2 dùng timer 1 tốc độ 32KHz.
• Hỗ trợ chức năng cấp dao động riêng cho vi điều khiển và module USB.
Cấu trúc ngoại vi :

• Dòng ra vào cao nhất là 25mA.
• 3 ngắt ngoài.
• 4 bộ Timer.
• 2 module Capture/Compare/PWM 16 bit với độ phân giải từng module là
5.2ns và 83.3ns.
• Module USART.
• Module truyền thông nối tiếp đồng bộ với chức năng master, module
SPI( 4 chế độ ), module I2C với chế độ slave và master.
• Hỗ trợ đến 13 kênh analog 10 bit.
Chương 3 Lý thuyết liên quan của đề tài
Đo nhiệt độ giao tiếp máy tính qua cổng usb Trang 23/38
1 số tính năng đặc biệt :
• Bộ nhớ flash với 100.000 lần ghi/xóa.
• Bộ nhớ EEPROM với 1.000.000 lần ghi/xóa.
• Tuổi thọ bộ nhớ EEPROM và flash lên đến trên 40 năm.
• Tầm điện áp hoạt động từ 2.0 đến 5.5V .
Hình3.8 Mô tả các chân vi điều khiển PIC18F4550.
3.2.2 Giới thiệu module USB trong PIC18F4550
Họ PIC18F hỗ trợ bộ giao tiếp nối tiếp chuẩn USB (SIE) với 2 chế độ low speed
và full speed cho phép truyền thông tốc độ nhanh giữa bất kì host USB nào với vi điều
khiển PIC.
SIE có thể giao tiếp trực tiếp với cổng USB, sử dụng bộ thu phát bên trong, hoặc
nó có thể kết nối với 1 bộ thu phát bên ngoài. Bộ nhớ trong vùng nhớ dữ liệu của thiết
bị (USB RAM ) được hỗ trợ để chia sẻ vùng nhớ trực tiếp giữa nhân vi điều khiển và
SIE. Những mô tả bộ đệm cũng được cung cấp, cho phép người dùng giải phóng vùng
nhớ cho các endpoint trong vùng nhớ của USB RAM. Streaming Parallel Port cũng
được hỗ trợ để truyền lượng lớn dữ liệu không dùng ngắt như truyền dữ liệu đẳng thời
đến bộ nhớ của vùng đệm bên ngoài.
Hoạt động của module USB được cấu hình và quản lí bởi 3 thanh ghi điều
khiển. Thêm vào đó là 22 thanh ghi được dùng để quản lí quá trình truyền thông của

USB . Những thanh ghi đó là :
• Thanh ghi điều khiển USB ( UCON ).
• Thanh ghi cài đặt USB ( UCFG ).
• Thanh ghi trạng thái truyền dữ liệu USB ( USTAT ).
• Thanh ghi địa chỉ thiết bị USB ( UADDR ).
• Thanh ghi số frame ( UFRMH:UFRML ).
• Thanh ghi cho phép endpoint 0 đến 15 ( UEPn ).
Chương 3 Lý thuyết liên quan của đề tài
Đo nhiệt độ giao tiếp máy tính qua cổng usb Trang 24/38
3.3 Cảm biến nhiệt độ LM35
LM35 là một họ IC cảm biến nhiệt độ sản xuất theo công nghệ bán dẫn dựatrên
các chất bán dẫn dễ bị tác động bởi sự thay đổi của nhiệt độ , đầu ra củacảm biến là
điện áp(V) tỉ lệ với nhiệt độ mà nó được đặt trong môi trường cầnđo.Họ LM35 có rất
nhiều loại và nhiều kiểu đóng vỏ khác nhau.
Hình 3.9 Cảm biến nhiệt độ LM35
Đặc điểm nổi bậtĐo nhiệt độ với thang đo nhiệt bách phân (0 C)Độ phân giải :
10mV/10CKhả năng đo nhiệt độ trong khoảng: - 55 đến +150 (0 C) Nguồn áp hoạt
động : 4V đến 30VĐiện áp đầu ra : +6V đến -1VƯu điểm: Rẽ tiền, dễ chế tạo,chống
nhiễu tốt, mạch xử lý đơn giản.Khuyết điểm: Không chịu nhiệt độ cao, kém
bền.Thường dùng: Đo nhiệt độ không khí, dùng trong các thiết bị đo, bảo vệ cácmạch
điện tử
Chương 3 Lý thuyết liên quan của đề tài
Đo nhiệt độ giao tiếp máy tính qua cổng usb Trang 25/38
3.4 Khái quát LCD 16x2
- Giống như led 7 thanh, LCD là một thiết bị ngoại vi dùng để giao tiếp với người dùng,
so với led 7 thanh thì LCD có ưu điểm là hiển thị được tất cả các kí tự trong bảng mã
ascci, trong khi đó led 7 thanh chỉ hiển thị được một số kí tự, nhưng LCD lại có nhược
điểm là giá thành cao và khoảng cách nhìn gần.
Hình 3.10 Hình ảnh LCD 16x2
Bảng 2.2.1 Chức năng của các chân LCD :

Chân Kí hiệu Mức logic I/O Chức năng
1 Vss - - Nguồn(GND)
2 Vcc - - Nguồn(+5v)
3 Vee - - Chỉnh độ tương phản
4 RS 0/1 I
0= nhập lệnh
1= nhập dữ liệu
5 R/W 0/1 I
0= Ghi dữ liệu
1= Đọc dữ liệu
6 E 0/1 I Bít dữ liệu 0
7 DB0 0/1 I/O Bít dữ liệu 1
8 DB1 0/1 I/O Bít dữ liệu 2
9 DB2 0/1 I/O Bít dữ liệu 3
10 DB3 0/1 I/O Bít dữ liệu 4
11 DB4 0/1 I/O Bít dữ liệu 5
12 DB5 0/1 I/O Bít dữ liệu 6
13 DB6 0/1 I/O Bít dữ liệu 7
14 DB7 0/1 I/O Bít dữ liệu 8
Bảng 3.2 Chức năng của các chân LCD :
- Các chân Vcc, Vss và Vee:
Chân Vcc cấp dương nguồn 5V, chân Vss nối đất, chân Vee được dùng để điều khiển
độ tương phản của màn hình LCD.
Chương 3 Lý thuyết liên quan của đề tài

×