TÓM TẮT Khóa luận đã xây dựng được thiết bị đo và lưu dữ liệu nhiệt độ trên cở sở dùng vi điều khiển PIC18F4550.. Hệ thống được xây dựng dựa trên việc kết hợp nhiều khối thiết bị ngoại v
Trang 1BỘ GIÁO DỤC VÀ ĐÀO TẠO TRƯỜNG ĐẠI HỌC NÔNG LÂM THÀNH PHỐ HỒ CHÍ MINH
KHÓA LUẬN TỐT NGHIỆP
THIẾT KẾ CHẾ TẠO THIẾT BỊ ĐO VÀ LƯU DỮ LIỆU NHIỆT
Trang 2THIẾT KẾ CHẾ TẠO THIẾT BỊ ĐO VÀ LƯU DỮ LIỆU NHIỆT
ĐỘ CỠ NHỎ
Tác giả
LÊ VĂN LUẬN
Giáo viên hướng dẫn:
PGS.TS Nguyễn Văn Hùng
KS Nguyễn Trung Trực
Tháng 06 năm 2013
Trang 3LỜI CẢM ƠN
Em xin trân trọng cám ơn tất cả quý Thầy, Cô trường Đại Học Nông Lâm Tp Hồ
Chí Minh và quý Thầy, Cô khoa Cơ khí – Công nghệ đã trang bị cho chúng em những
kiến thức quý báu trong quá trình học tập tại trường
Em xin chân thành cám ơn các Thầy, Cô bộ môn Cơ điện tử đã hướng dẫn, giúp
đỡ chúng em rất tận tình trong quá trình chúng em làm đề tài
Em cũng xin bày tỏ sự biết ơn chân thành tới thầy PGS.TS.Nguyễn Văn Hùng và
anh Nguyễn Trung Trực đã tận tình hướng dẫn chúng em trong quá trình làm Luận văn
tốt nghiệp
Đặc biệt, chúng em xin cám ơn quý Thầy, Cô trong Hội đồng đã dành thời gian
nhận xét, góp ý để Luận văn của chúng em được hoàn thiện hơn
Cuối cùng, chúng em xin gửi lời cám ơn đến những người thân cũng như bạn bè
đã động viên, ủng hộ và luôn tạo cho chúng em những điều kiện thuận lợi trong quá
trình hoàn thành Luận văn tốt nghiệp
Thành phố Hồ Chí Minh, ngày 13 tháng 06 năm 2013
Sinh viên thực hiện
Trang 4TÓM TẮT
Khóa luận đã xây dựng được thiết bị đo và lưu dữ liệu nhiệt độ trên cở sở dùng vi điều khiển PIC18F4550 Với ứng dụng cụ thể là thu thập dữ liệu nhiệt độ môi trường Hệ thống được xây dựng dựa trên việc kết hợp nhiều khối thiết bị ngoại vi khác bao gồm khối thu thập nhiệt độ dùng cảm biến LM35,khối giao tiếp thẻ nhớ MMC lưu trữ tất cả dữ liệu và khối hiển thị dùng LCD 16 cột 2 dòng hiển thị cùng lúc 32 ký tự
Trang 5MỤC LỤC
LỜI CẢM ƠN iii
TÓM TẮT iv
DANH MỤC CÁC BẢNG x
Chương I 1
MỞ ĐẦU 1
1.1 Đặt vấn đề 1
1.2 Mục đích đề tài 1
Chương II 2
TỔNG QUAN 2
2.1 Tổng quan về hệ thống đo lường và điều khiển 2
2.2 Hệ thống đo lường nhiệt độ 3
2.3 Tổng quan về vi điều khiển PIC 4
2.3.1 Sơ đồ chân 6
2.3.2 Các Công Cụ Lập Trình 8
2.3.3 Đơn vị ICD-U40 9
2.3.4 Tiêu Thụ Năng Lượng 10
2.3.5 FIRMWARE 11
2.3.6 Các công cụ làm việc 11
.3.7 Thiết bị lớp 11
2.3.8 Firmware HID 12
2.3.9 Một số đặc tính: 12
2.3.10 Nguyên tắc hoạt động: 12
2.3.11 Driver 13
2.3.12 Mô tả thực hiện Firmware thứ hai 13
2.4 Cảm biến nhiệt độ và vi mạch LM35 16
2.4.1 Nhiệt độ và ý nghĩa của đo nhiệt độ 16
2.4.2 Cảm biến nhiệt độ LM35 16
2.5 MMC và ứng dụng đọc ghi dữ liệu 17
Trang 62.5.1 Chuẩn giao tiếp của MMC 19
2.5.1.1 MultiMediaCard Mode 20
2.5.1.2 SPI Mode 21
2.5.2 Đặc tính của MMC trong chuẩn SPI 22
2.5.2.1 Các thanh ghi của MMC 24
2.5.2.2 Định dạng khung lệnh của MMC 24
2.5.2.3 Các lệnh được sử dụng 25
2.5.2.3.1 Lớp các lệnh sử dụng 25
2.5.3.2.2 Chi tiết các lệnh được sử dụng 26
2.5.2.4 Đáp ứng của các lệnh 26
2.5.3 Khởi tạo MMC trong chế độ SPI 27
2.5.3.1 Thiết lập lại phần mềm 27
2.5.3.2 Khởi tạo 27
2.5.4 Quá trình đọc ghi khối dữ liệu đối với MMC trong SPI mode 28
2.5.5 Hệ thống tệp tin 29
2.5.5.1 Master Boot Record (MBR) 31
2.5.5.2 Sector khởi động 31
2.5.5.5 Sử dụng hàm khi định dạng thẻ theo FAT16 33
2.6 Tổng quan về LCD 34
Chương III 35
NỘI DUNG VÀ PHƯƠNG PHÁP NGHIÊN CỨU 35
3.1 Nội dung nghiên cứu 35
3.2 Phương pháp nghiên cứu 35
Chương IV 36
KẾT QUẢ VÀ THẢO LUẬN 36
4.1 Kết quả thiết kế chế tạo 36
4.1.1 Yêu cầu thiết kế 36
4.1.2 Thiết kế mạch xử lý 36
Trang 74.1.2.1 Khối cảm biến: 37
4.1.2.2 Khối khuếch đại 38
4.1.2.3 Khối chuyển đổi ADC 40
4.1.2.4 Khối vi điều khiển 42
4.1.2.5 Khối hiển thị 44
4.1.2.6 Khối mạch lưu dữ liệu nhiệt độ MMC/SD card 46
4.2 Khảo nghiệm sơ bộ 49
Chương V 53
KẾT LUẬN VÀ ĐỀ NGHỊ 53
5.1 Kết quả đạt được 53
5.2 Hướng phát triển đề tài 53
TÀI LIỆU THAM KHẢO 54
PHỤ LỤC 55
Phụ lục 1: Các bảng mô tả 55
Phụ lục 2: Đoạn code sau sẽ mô tả quá trình khởi tạo thẻ 63
Phụ lục 3: Đoạn code thực quá trình định đạng thẻ theo FAT16 64
Phụ lục 4: Code điều khiển thiết bị đo và lưu dữ liệu nhiệt độ 66
Trang 8DANH MỤC CÁC HÌNH
Hình 2.1 Sơ đồ của một hệ thống đo lường và điều khiển 2
Hình 2.2 Sơ đồ hệ thống đo và lưu dữ nhiệt độ 3
Hình 2.3 Ảnh PIC18F4550 5
Hình 2.4 Giao tiếp USB 5
Hình 2.5 Sơ đồ chân của PIC18F4550 trong hộp DIP-40 7
Hình 2.6 TQFP 7
Hình 2.7 Đơn vị ICD-U40 9
Hình 2.8 Thông tin relay 9
Hình 2.9 Thông Tin relay 10
Hình 2.10 Giao diện được phát triển hỗ trợ truyền thông USB 16
Hình 2.11 Sơ đồ chân của cảm biến LM35 17
Hình 2.12 Sơ đồ cấu trúc của MMC 18
Hình 2.13 Hình ảnh thực tế của MMC và RS-MMC 18
Hình 2.14 Sơ đồ ghép nối MMC với host với MultiMediaCard mode 20
Hình 2.15 Sơ đồ truyền nhận dữ liệu theo chuẩn SPI 22
Hình 2.16 Truyền dữ liệu theo từng khối 23
Hình 2.18 Đọc ghi dữ liệu theo từng block 28
Hình 2.17 Sơ đồ khối khởi tạo MMC 28
Hình 2.19 Cấu trúc bộ nhớ MMC 30
Hình 2.20 Ví dụ phân bố dữ liệu của 1 file 33
Hình 2.21 Ảnh LCD1602 34
Trang 9Hình 2.22 Sơ đồ thứ tự và tên chân tương ứng 34
Hình 4.1 Sơ đồ khối tổng quát của thiết bị 36
Hình 4.2 Ảnh LM35 Hình 4.3 Sơ đồ chân của LM35 37
Hình 4.4 Sơ đồ mạch khuếch đại tín hiệu ngõ vào 39
Hình 4.5 Sơ đồ chân của ADC0809 40
Hình 4.6 Sơ đồ chân của Pic 18f4550 42
Hình 4.7 Mạch nguyên lý mạch điều khiển trung tâm 43
Hình 4.8 Ảnh mạch điều khiển trung tâm 44
Hình 4.9 Ảnh LCD1602 44
Hình 4.10 Sơ đồ khối mạch LCD 45
Hình 4.11 Sơ đồ chân MMC card 46
Hình 4.12 Ảnh ghép nối thẻ nhớ với module thẻ nhớ 47
Hình 4.13 Ảnh thiết bị đo và lưu dữ liệu nhiệt độ 48
Hình 4.14 Sơ đồ mạch nguyên lý thiết bị đo và lưu dữ liệu nhiệt độ 48
Hình 4.15 Sơ đồ mạch nguồn 49
Hình 4.16 Biểu đồ so sánh nhiệt độ đo của đồng hồ đo nhiệt và cảm biến LM35 51
Trang 10DANH MỤC CÁC BẢNG
Bảng 2.1: Các chân trong chuẩn MultiMedia card 19
Bảng 2.2 Các chân trong chuẩn SPI 19
Bảng 2.3 Các chân trong chuẩn SPI 21
Bảng 2.4: Danh sách các thanh ghi trong MMC 24
Bảng 2.5: Chi tiết ý nghĩa của các bit 25
Bảng 2.6: Lớp các lệnh sử dụng 25
Bảng 2.7: Nội dung của MBR 31
Bảng 2.8: Nội dung các đề mục trong bảng FAT 32
Bảng 4.1: Bảng trạng thái ngõ vào 41
Bảng 4.2: Bảng so sánh nhiệt độ đo giữa đồng hồ đo nhiệt và cảm biến LM35 50
Trang 11Bảng 6.1: Bảng mô tả các chức năng từng chân của PIC18F4550 55
Bảng 6.2: Nội dung chi tiết của boot sector 58
Bảng 6.3: Các lệnh cở bản của MMC 59
Bảng 6.4: Mô tả thư mục gốc 60
Bảng 6.5: Mô tả các hàm định dạng thẻ 61
Trang 12Trong quá trình sản xuất của nhà máy, xí nghiệp hiện nay việc đo, lưu dữ liệu
và khống chế nhiệt độ tự động là hết sức cần thiết và quan trọng Vì nếu nắm bắt được yêu cầu đo và lưu dữ liệu nhiệt độ tự động thì có nhiều phương pháp nghiên cứu khảo sát vi điều khiển 16f, 18f Vì vậy em đã tiến hành nghiên cứu đề tài thiết
kế chế tạo thiết bị đo và lưu dữ liệu nhiệt độ dựa vào vi điều khiển 18f4550 để lập trình điều khiển
1.2 Mục đích đề tài
Thiết kế chế tạo thiết bị đo và lưu dữ liệu nhiệt độ cỡ nhỏ nhằm mục đích:
Sử dụng cầm tay để đo nhiệt độ trong các môi trường khác nhau.( Với khoảng nhiệt độ đo được từ (2÷ 1500C)
Lưu trữ nhiệt độ để phục vụ cho các ứng dụng như : sấy, bảo quản lương thực thực phẩm, kho vũ khí.( dữ liệu có thể lưu khoảng 512 MB hoặc nhiều hơn nữa tùy khả năng lập trình và yêu cầu dung lượng sử dụng)
Trang 13Chương II TỔNG QUAN
2.1 Tổng quan về hệ thống đo lường và điều khiển
Hệ thống đo lường và điều khiển là một hệ thống tập hợp các thiết bị kỹ thuật
có cùng một nhiệm vụ, cùng một thuật toán chức năng làm sao để thu nhập được thông tin, biến đổi nó, gia công và chuyển thành một dạng mà con người có thể thu nhập được và đưa đến bộ điều khiển
Hình 2.1 Sơ đồ của một hệ thống đo lường và điều khiển
Để có một hệ thống đo đạt hiệu quả và phù hợp với công việc thiết kế một mô hình ban đầu rất quan trọng nó ảnh hưởng đến toàn bộ công việc sau này của chúng
ta
Trong thực tế có nhiều mô hình cấu trúc như là mô hình nối tiếp, mô hình song song, mô hình nối tiếp song song.v.v… Mỗi mô hình được ứng dụng trong trường hợp nhưng tùy thuộc vào yêu cầu của công việc chúng ta phải lựa chọn một
mô hình cho phù hợp
Yêu cầu về một hệ thống đo và thu thập thông tin trong công nghiệp là phải đạt độ chính xác cao, khả năng đo được nhiều kênh, có thể kết nối nhiều thiết bị khác, lượng dữ liệu lưu trữ được trong quá trình đo phải lớn để có thể đánh giá được
Thiết
bị đo
và thu nhận
Thiết bị gia công
và biến đổi thông tin
đo
Thiết
bị lưu trữ thông tin đo
Thiết
bị thể hiện thông tin đo
Trang 14sự biến đổi của đối tượng trong một thời gian dài từ đó đưa ra được những phương
án điều khiển phù hợp
2.2 Hệ thống đo lường nhiệt độ
Hình 2.2 Sơ đồ hệ thống đo và lưu dữ nhiệt độ
Khóa luận đã khảo sát đối tượng là nhiệt độ môi trường Một sensor nhiệt độ được sử dụng với mục đích cảm nhận Đầu ra là giá trị điện áp tùy thuộc vào sự biến đổi của đối tượng, được đưa vào biến đổi ADC chuyển thành giá trị số Tiếp tục vi điều khiển đảm nhận làm nhiệm vụ tính toán và xử lý, kết quả của quá trình này được hiển thị thông qua LCD để quan sát, đồng thời lưu dữ liệu thu được vào thẻ nhớ
Trong khóa luận này đã ứng dụng thêm mạch giao tiếp với thẻ nhớ MMC qua
đó ta có thể lưu trữ nhiều giá trị nhiệt độ đo được mà ít quan tâm đến việc đầy bộ nhớ như việc ghép nối các EPROM truyền thống Thêm một lợi điểm nữa của việc dùng thẻ nhớ là ta có thể tháo lắp và đọc các giá trị đã ghi được một cách rất dễ dàng
Môi trường
Sensor LM35
Vi điều khiển PIC
Hiển thị LCD
MMC Lấy
mẫu
Trang 152.3 Tổng quan về vi điều khiển PIC
Hiện nay trên thị trường có rất nhiều họ vi điều khiển 8051, Motorola 64HC, ARM, AVR, … Ngoài con 8051 được hướng dẫn căn bản ở môi trường đại học, bản thân em đã chọn họ vi điều khiển PIC để mở rộng vốn kiến thức và phát triển các ứng dụng trên công cụ này vì các nguyên nhân sau:
Họ vi điều khiển này có thể tìm mua dễ dàng ở thị trường Việt Nam
Giá thành không quá đắt
Có đầy đủ các tính năng của một vi điều khiển khi hoạt động độc lập
Là một sự bổ sung rất tốt về kiến thức cũng như về ứng dụng cho họ vi điều khiển mang tính truyền thống (họ vi điều khiển 8051)
Hiện nay tại Việt Nam cũng như trên thế giới, họ vi điều khiển PIC được sử dụng rất rộng rãi Điều này tạo nhiều thuận lợi trong quá trình tìm hiểu và phát triển các ứng dụng như: số lượng tài liệu, số lượng các ứng dụng mở đã được phát triển thành công, dễ dàng trao đổi, học tập, dễ dàng tìm hiểu được những chỉ dẫn khi gặp khó khăn
Sự hổ trợ của nhà sản xuất về trình biên dịch, công cụ lập trình, nạp chương trình từ đơn giản đến phức tạp
Các tính năng đa dạng của họ vi điều khiển PIC, và các tính năng này không ngừng được phát triển
Vi điều khiển PIC 18f4550:
PIC18F4550 là một vi xử lý cơ bản đa chức năng và rẻ Nó là sản phẩm của họ
vi xử lý PIC thông dụng của công ty Microchip của Mỹ có trụ sở đặt tại Chandler, Arizona (Mỹ)
Trang 16Hình 2.3 Ảnh PIC18F4550
Điểm riêng biệt của vi xử lý PIC18F4550, nó là một trong những PIC hỗ trợ toàn thể cho USB, nghĩa là có USB gắn trong có sẵn các chân đầu ra để nối trực tiếp với máy tính mà không cần mạch kéo hay bất cứ mạch gắn ngoài nào khác
Hình 2.4 Giao tiếp USB
Trang 17Hỗ trợ tinh thể và dao động ký nhiều tần số như đầu vào và bộ cân bằng nên
bộ xử lý có thể hoạt động với tần số 48 MHz của dao động ký độc lập khi kết nối Khi kết thúc hoạt động thì chỉnh dao động ký được kết nối (thông qua các bit cấu hình) Làm việc với tốc độ 48 MHz là điều kiện tiên quyết để chuyển sang chế độ toàn tốc nhờ cổng USB Vì vậy, driver USB chuyển sang chế độ toàn tốc (1.5 Mb/s) qua USB và tương thích với chuẩn USB 2.0 Nó cũng có 35 chân vào/ra số chung (xem sơ đồ chân ở phần dưới) và có sẵn vỏ bọc gồm DIP-40 nên rất thuận tiện cho nhà phát triển và những người nghiệp dư quan tâm
Với bộ nhớ, có 32kb Flash lưu trữ chương trình, 2kb bộ nhớ SRAM bay hơi và
256 byte EEPROM (bộ nhớ không bay hơi) để lưu trữ dài hạn dữ liệu như cấu hình Các chỉ thị dài 1 byte với một số ngoại lệ dài 2 byte (CALL, MOVFF, GOTO LSFR) Sử dụng cơ chế đường ống để thực thi mã bằng việc khiến các chỉ thị liên tiếp hoạt động trong 4 xung (độ dài xung) và có 4 lần nhảy xung được thêm vào Các đặc tính đáng chú ý khác là có đồng hồ, ngắt (đồng hồ gắn trong và gắn ngoài) với hai mức ưu tiên và dùng cả hai mức như bộ so sánh tương tự kèm theo với bộ phát điện thế chuẩn có 16 mức (hữu ích khi dùng trigger ở mức phần cứng)
2.3.1 Sơ đồ chân
Sau đây là sơ đồ chân của PIC18F4550 trong hộp DIP-40
Đặc biệt, có thể nhận ra chân D- và D+ từ kết nối USB (chân 23 và 24)
Trang 18Hình 2.5 Sơ đồ chân của PIC18F4550 trong hộp DIP-40
Pic 18f4550 có 40 chân, 4 port thường dùng trong các mạch làm hàn tay và dùng học tập trong trường đại học
Hình 2.6 TQFP
Trang 19Hình 2.6 là sơ đồ chân pic 18f4550 loại chip dán, dùng nhiều trong công nghệ hiện đại, loại chip này có 44 chân, nhỏ hơn chip thường dùng nhiều trong các mạch
làm bằng máy (Công dụng của từng chân ở hình 2.5 và hình 2.6 được mô tả ở bảng
Các đơn vị CCS ICD làm việc tốt với phần mềm điều khiển PCW hay CCS độc lập với ICD CCS Debug PCW là quan trọng và tích hợp với bộ biên dịch PCW, PCWH và cung cấp thông tin phát sinh lỗi được viết chi tiết bằng
C Phần mềm cho phép các chương trình điều khiển độc lập nhanh chóng tác động vào ICSP chính nhờ ICD Phần mềm điều khiển cũng cho phép bạn cập nhật các hỗ trợ mà không thay đổi về mặt logic đối tượng ICD, không phải
bỏ đi chip của đơn vị ICD (Dùng các công cụ phần mềm này đòi hỏi phải nạp cho đơn vị CCS ICD không thay đổi logic phương tiện trên ICD, được tải theo mặc định) Phần mềm điều khiển từ đơn vị ICD và cho phép thiết lập các phần Flash được hỗ trợ Để giúp loại bỏ lỗi, chức năng của PCW hay PCWH là debug và tích hợp IDE
S40 đã thay thế S20 và DCI 4 MHz Hãy chú ý, S40 và U40 chỉ làm việc với phần mềm và không dùng MPLAB IDE CCS ICD nguyên bản CCS 40 MHz làm việc với MPLAB IDE 5.xx
ICD- Cần phải cấp nguồn 3V cho ICD-U40 ICD-S40 không hỗ trợ 3V CCS cung cấp hai giải pháp cho ICD
Trang 202.3.3 Đơn vị ICD-U40
Đơn vị ICD nối với máy tính và phần mềm Debug trên USB Nó hoạt động với tần số xung 40 MHz nên thời gian debug nhanh hơn (có cả cáp USB) Đơn vị được cấp nguồn ICD-U40 USB Bộ nguồn cũng cấp nguồn 5V để nối “cầu” gần ICD trong đơn vị (đơn vị phải được bật)
444
Hình 2.7 Đơn vị ICD-U40
Sơ đồ hai ứng dụng được trình bày dưới đây:
Thông tin relay:
Hình 2.8 Thông tin relay
Trang 21Phần này dùng để kết nối với ICD của MPLAB để connector J2 có thể lập trình lại cũng như chiếu sáng và gỡ bỏ thiết bị, với loại kết nối này thì không cần card CIP DEMO USB FS của Microchip và có giá thành cao
Đây là cách sử dụng ứng dụng thứ hai:
Hình 2.9 Thông Tin relay
Cần phải nói rằng connector ICD đã thay đổi, không còn là cáp 5 connector nữa mà đã chuyển thành cáp 6 connector, đó là do việc phát triển project gặp khó khăn khi dùng ICD, nó hầu như không thể bị ảnh hưởng hay debug nhiều lần, đây là
lý do chính mà thay đổi là ICD có cấu hình như trên, tuỳ chọn thay đổi đầu vào tương tự và máy chỉ thị thể hiện có truyền thông giữa thiết bị và host
2.3.4 Tiêu Thụ Năng Lượng
Để quyết định xem có cần cấp nguồn ngoài (hay đơn giản là cấp nguồn qua cổng USB)
Do cổng USB có thể cấp dòng 500 mA nên phải dùng nguồn từ ngoài để cấp
Trang 22nguồn Ta dùng bộ điều chỉnh 7805 và chọn nguồn 9VDC vì đó là điện thế tối thiểu cần để 7805 hoạt động được (và để tản nhiệt) và có thể thay bằng pin 9V nếu cần
2.3.5 FIRMWARE
Thực hiện truyền thông USB
2 ví dụ được phát triển để thực hiện truyền thông qua USB:
Cung cấp host thông tin (máy tính) cho thiết bị (vi điều khiển) và thông tin relay từ thiết bị (vi điều khiển) cho host (máy tính)
Quản lý các đầu vào và đầu ra số cũng như các đầu vào tương tự (bộ chuyển đổi tương tự - số)
2.3.6 Các công cụ làm việc
Firmware là chương trình chạy trong CIP và điều khiển truyền thông Nó được viết hoàn toàn bằng C dùng MPLAB C18 của Microchip, một bộ biên dịch C của cùng nhà sản xuất hỗ trợ chuẩn PKI ANSI C’89 và được thiết kế cùng MPLAB IDE (là công cụ để lập trình và debug CIP) Một đặc tính khác của MPLAB C18 là khả năng sinh ra giá trị nhị phân do vi điều khiển quản lý
Họ PIC18F (ví dụ PIC18F4550) dùng chỉ thị mở rộng như một kiến trúc
.3.7 Thiết bị lớp
Theo chuẩn thì có nhiều loại thiết bị USB với các đặc tính khác nhau thường thấy trong thiết bị Ví dụ, có lớp cho camera số, một lớp cho máy scan, một cho máy in … Các lớp thiết bị được xây dựng để nâng cao tính tương thích của các thiết
bị Vì vậy, bất cứ hệ điều hành nào có driver làm việc với camera số đều có thể đọc được ảnh từ camera số được thiết kế phù hợp với các thông số kỹ thuật của loại thiết
Trang 23driver thì ta sẽ dẫn đến trang này từ Microchip
2.3.8 Firmware HID
Truyền thông được thực hiện qua sự hỗ trợ của firmware USB HID, một nền cung cấp yêu cầu của Microchip để thiết lập truyển thông (qua cổng USB) một cách đơn giản
2.3.9 Một số đặc tính:
Chuyên nghiệp: miễn phí, dễ sử dụng
Nhược điểm: tốc độ truyền dữ liệu nhỏ (giới hạn tới 64 kbyte/giây)
Ứng dụng cũng điều khiển bộ đệm để phân biệt các thông báo nhận đầu vào qua việc truyền đầu vào ngắt và các báo cáo nhận qua việc truyền điều khiển
Nhận các báo cáo đưa đến bằng cách điều khiển truyền thông và gửi lại một báo cáo đến host trong một thông báo đưa đến nhờ điều khiển truyền thông
Một bộ đệm đơn giữ các bản báo cáo được lưu trữ và báo cáo nhận được đã gửi
Việc thực hiện là sử dụng chuột thử nghiệm từ Microchip
Trang 24Project được kiểm tra trong bảng thể hiện PICDEM FS USB
2.3.11 Driver
Chuẩn yêu cầu tất cả các thiết bị USB trong giai đoạn thương lượng phải được xác định với ID nhà sản xuất và ID sản phẩm (sau đây gọi là VID và PID) Cặp giá trị này giúp nhận biết nhà sản xuất thiết bị (PRI) và mẫu riêng của một sản phẩm được kết nối Vì vậy, các mẫu khác của cùng sản phẩm nói chung khác PID
Mục đích chính của các giá trị này không chỉ là xác định thiết bị mà còn là tìm
và tải đúng driver cho nó Vì vậy, tất cả các driver của Windows (hay các sản phẩm tương tự) được sắp xếp như thiết bị với một hay nhiều PID và PRI sử dụng cho driver đã nói Đây là cách sử dụng Windows (hay hệ điều hành khác đang đề cập)
dù driver được chọn có đúng hay không
Trong trường hợp driver dùng cho hệ điều hành khác, cặp VID/PID đủ để xác định driver nếu cần tải và vì vậy khi một thiết bị gắn với VID/PID thì nhận biết được hệ thống tự động tìm ra và cho phép sử dụng ngay Tuy nhiên, nếu không nhận ra VID/PID thì hệ điều hành sẽ hỏi người dùng cấp driver
2.3.12 Mô tả thực hiện Firmware thứ hai
Ứng dụng thứ hai là sự trợ giúp lớn và kinh nghiệm lớn để hiểu USB, theo sự phát triển của ứng dụng trước đây áp dụng vào các điểm khác để phát triển và thực hiện cho thực thi này và firmware được dùng cho các công cụ làm việc khác này, được mô tả ở chương trước, tiếp cận đang sử dụng là mã hoạt động:
# Include <18F4550.h>
# Fuses HSPLL, NOWDT, NOPROTECT, NOLVP, NODEBUG, USBDIV, PLL5, CPUDIV1, VREGEN
# Use delay (clock = 48000000)
# Define USB_EP1_TX_ENABLE USB_ENABLE_INTERRUPT
# Define USB_EP1_TX_SIZE 8
# Define USB_EP1_RX_ENABLE USB_ENABLE_INTERRUPT
Trang 25Đặc tính khác được thể hiện trong mã thông báo
Phát triển lập trình tại host được thực hiện bằng Microsoft Visual ++, logic của chương trình, tương tự như ứng dụng trước
Sau đây là cấu trúc chương trình trong ứng dụng này:
Usb_Ej_1.dsp
File (file project) này chứa thông tin về cấp project và được dùng để xây dựng project đơn hay project con Người dùng ngoài có thể chia sẻ file project (.dsp) nhưng không được xuất file khởi tạo nội bộ
Usb_Ej_1.h
Đây là phần header của file chính cho ứng dụng Project khác gồm có header đặc biệt (gồm resource.h) và khai báo lớp ứng dụng Cusb_Ej_1App
Trang 26Usb_Ej_1.clw
File này chứa thông tin để ClassWizard sử dụng khi phác thảo các lớp hay thêm lớp mới ClassWizard cũng dùng file này để chứa thông tin cần thiết để tạo, soạn danh sách các thông điệp, trình bày dữ liệu cho hội thoại và tạo tác vụ như thành phần nguyên bản
UsbHidApi.lib
File này cung cấp thông báo về chương trình với DLL cùng tên
Giao diện được phát triển hỗ trợ truyền thông USB điều khiển ba kiểu truyền
dữ liệu là: đầu ra số, đầu vào số và đầu vào tương tự - số
Trang 27Hình 2.10 Giao diện được phát triển hỗ trợ truyền thông USB
2.4 Cảm biến nhiệt độ và vi mạch LM35
2.4.1 Nhiệt độ và ý nghĩa của đo nhiệt độ
Nhiệt độ là một tham số vật lý quan trọng, thường hay gặp trong kỹ thuật, công nghiệp, nông nghiệp và trong đời sống sinh hoạt hằng ngày Nó là tham số có liên quan đến tính chất của rất nhiều vật chất, thể hiện hiệu suất của các máy nhiệt
và là nhân tố trọng yếu ảnh hưởng đến sự truyền nhiệt Vì lẽ đó mà trong các nhà máy, trong hệ thống nhiệt đều phải dùng nhiều dụng cụ đo nhiệt độ khác nhau Chất lượng và số lượng sản phẩm sản xuất đều có liên quan đến nhiệt độ, nhiều trường hợp phải đo nhiệt độ để đảm bảo cho nhu cầu thiết bị và cho quá trình sản xuất Hiện nay yêu cầu đo chính xác nhiệt độ từ xa cũng là yêu cầu có ý nghĩa đối với sản xuất và nghiên cứu khoa học
2.4.2 Cảm biến nhiệt độ LM35
Trong đề tài này ứng dụng cụ thể một loại sensor để khảo sát nhiệt độ môi trường LM35 được chọn cho mục đích này
Trang 28
Hình 2.11 Sơ đồ chân của cảm biến LM35
Hình 2.13 là sơ đồ chân của cảm biến LM35, loại cảm biến này có 3 chân gồm : Vout (chân ra), VS( chân nguồn) , GND(nối đất)
Một số đặc tính của LM35 có thể chỉ ra như sau:
Chuẩn đo được lấy trực tiếp theo thang bách phân oC
Tuyến tính với độ thay đổi 10mV/0C
MultiMediaCards (MMC) là loại bộ nhớ nối tiếp dạng Flash được tích hợp cao
và có khả năng truy xuất dữ liệu ngẫu nhiên Nó được đọc ghi thông qua một giao diện nối tiếp rõ ràng vì vậy việc truyền dữ liệu tỏ ra nhanh chóng và an toàn.Những thẻ MMC có hệ thống các tiêu chuẩn về đặc tính kỹ thuật như điện áp số chân… đã được định nghĩa MultiMediaCards là một phát kiến mới trong thiết bị lưu trữ dựa
Trang 29trên công nghệ bán dẫn Nó được phát triển để tạo ra những thiết bị lưu trữ rẻ và có dung lượng trung bình, ứng dụng cho các phương tiện giải trí đa phương tiện
Hình 2.12 Sơ đồ cấu trúc của MMC
Hình 2.13 Hình ảnh thực tế của MMC và RS-MMC
Hình 2.12 và hình 2.13 cho thấy MMC có 7 chân được mô tả ở các chuẩn như sau:
Trang 30Chân Tên Loại Mô tả
S: power supply; I: input; O: output; PP: push-pull; OD: open-drain; NC: not
connected
Bảng 2.1: Các chân trong chuẩn MultiMedia card
Các chân trong chuẩn SPI được định nghĩa như bảng sau:
Bảng 2.2 Các chân trong chuẩn SPI 2.5.1 Chuẩn giao tiếp của MMC
MultiMediaCards có thể hoạt động trong hai loại chuẩn khác nhau như sau:
MultiMedia card Mode
Trang 31 CLK: với mỗi chu kỳ của tín hiệu này 1bit lệnh và dữ liệu sẽ được truyền trên đường dây Tần số có thể thay đổi từ 0 đến 20Mhz
CMD: là kênh truyền lệnh 2 hướng sử dụng cho việc khởi tạo card và truyền
dữ liệu là lệnh Những lệnh được gửi đi từ bus master tới MultiMedia card và đáp ứng ngược trở lại cũng chạy trên đường này
DAT: cũng là một kênh song hướng dùng để truyền dữ liệu
RSV: chân này được kéo lên nguồn với điện trở 2MΩ
Hình 2.14 Sơ đồ ghép nối MMC với host với MultiMediaCard mode
Trang 322.5.1.2 SPI Mode
SPI (Serial Peripheral Interface) là giao tiếp nối tiếp đồng bộ được biết đến đầu tiên ở các vi điều khiển của hãng Motorola Các thẻ nhớ MMC trên thị trường đều tương thích với chuẩn SPI này Giống như các thiết bị khác sử dụng chuẩn này, ghép nối của MMC như sau:
CS: tín hiệu lựa chọn chip (chip select) tới thẻ
CLK: tín hiệu xung nhịp (clock) tới thẻ
DataIn: tín hiệu dữ liệu truyền tới thẻ
DataOut: tín hiệu dữ liệu đọc từ thẻ
Đặc tính chung của chuẩn SPI là truyền dữ liệu theo byte và thẻ nhớ cũng không phải là một ngoại lệ Tất cả dữ liệu được biểu diễn thành những byte có độ dài 8 bit
và được đồng bộ theo tín hiệu CS
Các chân trong chuẩn SPI được định nghĩa như bảng sau:
Bảng 2.3 Các chân trong chuẩn SPI
Trang 332.5.2 Đặc tính của MMC trong chuẩn SPI
SPI mode được lựa chọn cho ứng dụng của đề tài, khi đó MMC được ghép nối với
vi điều khiển cụ thể là PIC18F4550 theo đúng khối phần cứng được tích hợp sẵn trên PIC
Trong mode hoạt động này có 4 loại tín hiệu được sử dụng giao tiếp với host (PIC) là: clock, data in, data out, chip select
Clock : được dùng để duy trì sự đồng bộ giữa hệ thống và card
Data in: sử dụng khi truyền lệnh từ host tới thẻ, đồng thời cũng được dùng vào mục đích ghi dữ liệu vào thẻ
Data out: được dùng với mục đích ngược với data in là gửi đáp ứng từ thẻ về host và đọc dữ liệu từ thẻ
Chip select: tín hiệu một thẻ cụ thể sẽ được lựa chọn khi tín hiệu này kích hoạt trên nó
Dưới đây sẽ là hình ảnh minh họa quá trình truyền nhận dữ liệu giữa vi điều khiển PIC với thẻ MMC sử dụng chuẩn SPI
Hình 2.15 Sơ đồ truyền nhận dữ liệu theo chuẩn SPI
Chuẩn SPI của MMC cho phép truyền dữ liệu theo 1 khối (single block) hoặc nhiều khối (multiple block) Kích thước tối đa của khối dữ liệu này có thể thay đổi tùy hãng sản xuất nằm trong khoảng từ 1- 2048 byte
Trang 34Hình 2.16 Truyền dữ liệu theo từng khối
Các gói dữ liệu truyền nối tiếp nhau với các lệnh điều khiển CMD17 và CMD24
Kiểm tra lỗi CRC:
CRCs (cycle redundancy codes) được thêm vào khung truyền lệnh, đáp ứng,
và dữ liệu của MMC
CRC sẽ được kích hoạt để phát hiện lỗi trước khi truyền dữ liệu, cho phép truyền lại khi một lỗi được tìm thấy CRC nâng cao độ tin cậy của hệ thống
Trong MMC mode, CRCs là bắt buộc, 7 bit CRC được thêm vào mỗi lệnh và
16 bit CRC với 512 byte dữ liệu Với SPI mode, CRC là một tùy chọn
Trang 352.5.2.1 Các thanh ghi của MMC
Bảng danh sách các thanh ghi trong MMC
Tên thanh ghi Độ
OCR Operation conditions
register
32 bit
Định nghĩa điện thế của hệ thống MMC
1 bit = 10mV
CID Card indentification
register
128 bit
Thông tin về nhà sản xuất, OEM, ID của thẻ
RCA Relative card address
register
16 bit Sử dụng để đặt tên cho thẻ từ host
CSD Card specific data
register
128 bit
Lưu trữ những thông tin riêng của thẻ,
sự phù hợp với CIS của PCMCIA
DSR Driver stage register 16
bit
Sử dụng để thiết lập thông lượng trên MMC bus
Status register 32
bit Chỉ thị trạng thái và tình trạng của lỗi
Bảng 2.4: Danh sách các thanh ghi trong MMC 2.5.2.2 Định dạng khung lệnh của MMC
Dữ liệu nối tiếp [47] Lệnh [0]
Trang 36Bảng sau cho ta chi tiết ý nghĩa của các bit:
Vị trí bit 47 46 [45:40] [39:8] [7:1] 0
Mô tả Bit start Bit truyền Chỉ số lệnh Đối số CRC7 Bit kết thúc
Bảng 2.5: Chi tiết ý nghĩa của các bit
Một lệnh gồm 48 bit, bit đầu tiên là “bit start” luôn luôn là 0, bit thứ 2 là bit truyền và được đặt bằng 1, 6 bit tiếp theo cho biết chỉ số của lệnh, ví dụ với CMD0 thì 8 bit đầu tiên có giá trị là 01000000b (0x40) Tiếp theo là 32 bit trường đối số có thể là 1 địa chỉ tương đối, địa chỉ đọc hoặc địa chỉ ghi, 8 bit cuối cùng là phần kiểm tra lỗi CRC với bít cuối cùng luôn là 1
Trang 372.5.3.2.2 Chi tiết các lệnh được sử dụng
Những lệnh cơ bản được xem là cần thiết để 1 MMC có thể hoạt động được
trong chế độ SPI được mô tả ở bảng 6.3 của phụ lục 1
2.5.2.4 Đáp ứng của các lệnh
Như hình 2.17 cho thấy khi mỗi Command được gửi đến MMC trên đường DI
từ host, thì sẽ có một Response từ MMC gửi trở lại host qua đường DO Trong chế
độ SPI thì có 2 loại Response là R1 và R2 R2 16 bit là đáp ứng trả về từ MMC khi gửi lệnh CMD13 từ host còn R1 8 bit cho tất cả các lệnh còn lại Phần 8 bit thấp của R2 hoàn toàn giống với R1
R1, R1b : là đáp ứng với tất cả các lệnh ngoại trừ lệnh SEND_STATUS
Dữ liệu nối tiếp
Ý nghĩa của các bit:
Bit 7: Luôn nhận giá trị 0
Bit 6 : Lỗi tham số
Bit 5 : Lỗi địa chỉ
Bit 4 : Lỗi chuỗi xóa
Bit 3 : Lỗi CRC
Bit 2 : Lệnh không hợp lệ
Bit 1 : Xóa lại
Bit 0 : Trạng thái chờ
R2 : là đáp ứng dành riêng cho lệnh SEND_STATUS (CMD13)
Dữ liệu nối tiếp
Bit 7 Byte 1 Bit 0 | Bit 7 Byte 2 Bit 0
Trang 38 Bit 5 : Vi phạm chế độ bảo vệ ghi
Bit 4 : Lỗi ecc thẻ
Bit 3 : Lỗi CC
Bit 2 : Lỗi
Bit 1 : Bỏ qua chế độ bảo vệ ghi hoặc lỗi lệnh khóa/mở khóa thẻ
Bit 0 : Khóa thẻ Các thông số trên nhận được khi các bit có giá trị là 1
2.5.3 Khởi tạo MMC trong chế độ SPI
Sau khi cấp nguồn MMC hoạt động ở MMC mode Để chuyển sang SPI mode cần phải thực hiện quy trình sau: cấp điện áp cho thẻ nhớ đợi trong vòng ít nhất là 1ms, thiết lập DI và CS ở mức cao, sau khoảng 74 xung được gửi tới chân CLK thì thẻ nhớ sẽ cho phép lệnh
2.5.3.1 Thiết lập lại phần mềm
Gửi lệnh CMD0 với chân CS ở mức thấp để reset thẻ MMC lấy mẫu tín hiệu
CS khi lệnh CMD0 được phát hiện sử dụng Nếu tín hiệu CS ở mức thấp thì thẻ nhớ
sẽ hoạt động ở chế độ SPI Lệnh CMD0 phải là lệnh đầu tiên, trường CRC phải có giá trị hợp lệ, với lệnh CMD0 thì CRC là 0x96 Khi vào hoạt động ở chế độ SPI, thì
mã kiểm tra CRC được vô hiệu hóa Sau khi lệnh CMD0 được chấp nhận, thẻ nhớ
sẽ rơi vào trạng thái chờ (idle state) một đáp ứng R1 sẽ được gửi trở lại host Giá trị của bit idle state là 1, byte R1 là 0x01 CRC cũng có thể cho phép lại bằng lệnh CMD59
2.5.3.2 Khởi tạo
Với trạng thái chờ (idle state), thẻ nhớ chỉ cho phép các lệnh CMD0, CMD1,
và CMD58 Những lệnh khác sẽ bị loại bỏ Khi thẻ phát hiện ra CMD1 nó sẽ bắt đầu quá trình khởi tạo Để kết thúc việc thăm dò khi khởi tạo thẻ, mạch điều khiển của host phải lặp lại quá trình gửi CMD1 và kiểm tra đáp ứng Khi đã khởi tạo thành công, thì bit “In Idle State” trong đáp ứng R1 được xóa về 0 Xử lý quá trình khởi tạo có thể mất tới vài trăm ms (milliseconds) Sau khi quá trình khởi tạo kết thúc thì việc đọc/ghi sẽ được chấp nhận Trong thời gian này, OCR và CSD có thể được đọc để cấu hình các thuộc tính của thẻ Ban đầu giá trị về độ dài của 1 khối có thể lớn hơn 512 byte, vì vậy nếu muốn thay đổi giá trị này ta sử dụng CMD16
Trang 39Quá trình trên có thể mô tả bằng sơ đồ:
Code mô tả quá trình khởi tạo thẻ xem ở phụ lục 2
2.5.4 Quá trình đọc ghi khối dữ liệu đối với MMC trong SPI mode
Hình 2.18 Đọc ghi dữ liệu theo từng block
Với lệnh ghi CMD24 thì 8 bit đầu tiên của khung lệnh là “0101 1000B” giá trị này trong hệ hexa là 0x58, còn với lệnh đọc CMD17 thì 8 bit đó sẽ là “0101 0001B”
Hình 2.17 Sơ đồ khối khởi tạo MMC