BỘ CÔNG THƯƠNG
TRƯỜNG ĐẠI HỌC CÔNG NGHIỆP TP. HCM
KHOA CÔNG NGHỆ ĐIỆN TỬ
ĐỒ ÁN CHUYÊN NGHÀNH
Đề Tài:
ĐIỀU KHIỂN NHIỆT ĐỘ NHIỀU
KÊNH DÙNG dsPIC 30F4013 CÓ
GIAO TIẾP MÁY TÍNH
Giáo viên hướng dẫn : Th.S HUỲNH MINH NGỌC
Sinh viên thực hiện : ĐẶNG MINH TÂM
Mã số sinh viên : 12157241
Lớp: DHDTTD8BLT
Tp. Hồ Chí Minh, tháng 12 năm 2014
LỜI CẢM ƠN
Đề tài đã được hoàn thành theo đúng thời gian yêu cầu của nhà trường
cũng như của khoa. Và để đạt được kết quả này, đó không chỉ là sự nỗ lực của
bản thân em mà còn có sự giúp đỡ chỉ bảo của các thầy cô và các bạn trong
lớp.
Trước tiên em muốn dành gởi tình cảm chân thành đến thầy HUỲNH
MINH NGỌC đã tận tình hướng dẫn và giúp đỡ chỉ bảo cho em trong suốt
quá trình thực hiện đồ án này. Sự hướng dẫn nhiệt tình và kịp thời của Thầy
Ngọc đã giúp em hoàn thành đề tài này. Xin chân thành cám ơn Thầy.
Xin cảm ơn các bạn sinh viên trong lớp đã giúp đỡ em rất nhiều mặt như
phương tiện, sách vở, ý kiến . . .
Mặc dù đề tài đã xong nhưng do kiến thức còn hạn hẹp sẽ không tránh
khỏi những thiếu sót và hạn chế. Rất mong nhận được sự góp ý, phê bình, chỉ
dẫn của quý thầy cô, các bạn sinh viên.
SVTH: ĐẶNG MINH TÂM
Trang 1
NHẬN XÉT CỦA GIÁO VIÊN HƯỚNG DẪN
…………………………………………………………………………………
…………………………………………………………………………………
…………………………………………………………………………………
…………………………………………………………………………………
…………………………………………………………………………………
…………………………………………………………………………………
…………………………………………………………………………………
…………………………………………………………………………………
…………………………………………………………………………………
…………………………………………………………………………
…………………………………………………………………………………
…………………………………………………………………………………
…………………………………………………………………………………
…………………………………………………………………………………
…………………………………………………………………………………
…………………………………………………………………………………
…………………………………………………………………………………
…………………………………………………………………………………
…………………………………………………………………………………
…………………………………………………………………………………
…………………………………………………………………………………
…………………………………………………………………………………
…………………………………………………………………………………
…………………………………………………………………………………
…………………………………………………………………………………
…………………………………………………………………………………
…………………………………………………………………………………
…………………………………………………………………………………
…………………………………………………
SVTH: ĐẶNG MINH TÂM
Trang 2
NHẬN XÉT CỦA GIÁO VIÊN PHẢN BIỆN
………………………………………………………………………………….
………………………………………………………………………………….
………………………………………………………………………………….
………………………………………………………………………………….
………………………………………………………………………………….
………………………………………………………………………………….
………………………………………………………………………………….
………………………………………………………………………………….
………………………………………………………………………………
…………………………………………………………………………………
………………………………………………………………………………….
………………………………………………………………………………….
………………………………………………………………………………….
…………………………………………………………………………………
….
…………………………………………………………………………………
…………………………………………………………………………………
…………………………………………………………………………………
…………………………………………………………………………………
…………………………………………………………………………………
…………………………………………………………………………………
…………………………………………………………………………………
…………………………………………………………………………………
…………………………………………………………………………………
…………………………………………………………………………………
…………………………………………………………………………………
…………………………………………………………………………………
SVTH: ĐẶNG MINH TÂM
Trang 3
…………………………………………………………………………………
……………………………………………………
SVTH: ĐẶNG MINH TÂM
Trang 4
Mục lục
CHƯƠNG 1. TỔNG QUAN VỀ ĐỀ TÀI 7
1.1 GIỚI THIỆU : 7
2.2 LÍ DO CHỌN ĐỀ TÀI: 7
CHƯƠNG 2. CƠ SỞ LÝ THUYẾT 8
2.1 GIỚI THIỆU VỀ VI ĐIỀU KHIỂN dsPIC 30F4013 8
2.1.1 Sơ đồ chân của dsPIC30F4013 9
2.1.2 CPU của dsPIC30F4013 13
2.1.3 Các bộ định thời 15
2.1.4 Sơ đồ khối của vi điều khiển dsPIC30F4013 23
2.1.5 Tổ chức bộ nhớ: 23
2.1.6 Các cổng xuất nhập 26
2.1.7 Ngắt và cơ chế ngắt 27
2.1.8 Bộ chuyển đổi tương tự số ADC 29
2.2 THUẬT TOÁN PID 30
2.2.1 PID liên tục 30
2.2.2 PID số 34
2.3 THUẬT TOÁN ON/OFF 36
2.4 HÀM TRUYỀN LÒ NHIỆT 37
2.4.1 Mô hình hệ thống nhiệt độ: 37
2.4.2 Hàm truyền lò nhiệt và mô hình của Ziegler - Nichols 38
2.5 TÌM HÀM TRUYỀN LÒ NHIỆT CỦA ĐỀ TÀI 39
2.5.1 Khảo sát hệ hở 2 lò nhiệt 39
2.5.2 Hàm truyền lò 1 40
2.5.3 Hàm truyền lò 2 41
2.5.4 Kết luận: 41
2.6 SƠ LƯỢC VISUAL BASIC 2005 42
2.6.1 Các thuộc tính của serialport: 42
2.6.2 Teechart 8: 42
CHƯƠNG 3. THIẾT KẾ VÀ THI CÔNG MÔ HÌNH 43
3.1 THIẾT KẾ PHẦN CỨNG 43
SVTH: ĐẶNG MINH TÂM
Trang 5
3.1.1 Giới thiệu sơ đồ khối của mô hình: 43
3.1.2. Các khối chức năng trên mô hình 43
3.1.3 Mạch vi điều khiển trung tâm 43
3.1.4 Mạch công suất 44
3.1.5 Mạch giao tiếp máy vi tính 47
3.1.6 Cảm biến nhiệt LM35, bóng đèn dây tóc, quạt 48
3.2 GIẢI THUẬT CHƯƠNG TRÌNH 49
3.2.1 Đối tượng điều khiển 49
3.2.2 Cách tính nhiệt độ trong đề tài 50
3.2.3Cách tính toán PWM duty trong đề tài 50
3.2.4 Chương trình chính 52
3.2.5 Chương trình PID 53
3.2.6 Chương trình ON/OFF 54
3.2.7 Chương trình kết nối với máy tính 55
3.2.8 Chương trình ngắt dữ liệu trên máy tính 56
CHƯƠNG 4. KẾT QUẢ THI CÔNG 57
4.1 Giao diện điều khiển trên visual basic 2005: 57
4.2 Mô hình 57
4.3 Kết quả thực nghiệm trên mô hình 58
4.3.1 Thực nghiệm 1 58
4.3.2 Thực nghiệm 2 59
4.3.3 Thực nghiệm 3 59
4.3.4 Thực nghiệm 4 60
CHƯƠNG 5. KẾT LUẬN VÀ HƯỚNG PHÁT TRIỂN ĐỀ TÀI 61
5.1 Kết luận 61
5.2 Một số điểm hạn chế 61
5.3 Hướng phát triển đề tài: 61
CHƯƠNG 6. TÀI LIỆU THAM KHẢO 62
CHƯƠNG 7. PHỤ LỤC 63
SVTH: ĐẶNG MINH TÂM
Trang 6
CHƯƠNG 1. TỔNG QUAN
VỀ ĐỀ TÀI
1.1 GIỚI THIỆU :
Trong quá trình học tập tại trường với những giáo án, giáo trình các môn học
của nghành điện tử tự động đã học và em kết hợp những gì em đã học để em
làm đề tài Điều Khiển Nhiệt Độ Nhiều Kênh Dùng dsPIC 30F4013 Có Giao
Tiếp Với Máy Tính Và Thuật Toán Điều Khiển ON/OFF Và Thuật Toán PID
Số. Thuật toán ON/OFF và PID số được viết trên chương trình CCS và nạp
vào vi điều khiển PIC điều khiển hệ 2 lò nhiệt. Phần giao diện được thiết kế
trên chương trình Visual Basic 2005 để đặt nhiệt độ gửi xuống vi điều khiển
và nhận nhận nhiệt độ đo được từ vi điều khiển vẽ đồ thị bằng Teechart để
đánh giá chất lượng điều khiển.
2.2 LÍ DO CHỌN ĐỀ TÀI:
Đất nước chúng ta đang trên đường phát triển và đang hòa nhập vào sự phát
triển của WTO tạo sự thay đổi về mặt kinh tế xã hội của nước ta. Tạo cơ hội
cho sinh viên chúng em tiếp cận và nắm bắt được những thành tựu của thế giới
về các lĩnh vực khoa học kỹ thuật nói chung và ngành điện tử nói riêng. Hiện
nay trong các nhà máy sản xuất hệ thống nhiệt độ được ứng dụng rất nhiều ( ví
dụ nhà máy sản xuất răng sứ giả cao cấp…vv). Chính vì thế là một sinh viên
nghành tự động hóa là một nghành rất quan trọng trong công nghiệp hóa hiện
đại hóa đất nước nên em quyết định làm đề tài Điều Khiển Nhiệt Độ Nhiều
Kênh Dùng dsPIC 30F4013 Có Giao Tiếp Với Máy Tính Và Thuật Toán Điều
Khiển ON/OFF Và Thuật Toán PID Số.
SVTH: ĐẶNG MINH TÂM
Trang 7
CHƯƠNG 2. CƠ SỞ LÝ
THUYẾT
2.1 GIỚI THIỆU VỀ VI ĐIỀU KHIỂN dsPIC 30F4013
- 16 bit CPU, xây dựng theo kiến trúc Harvard
- Kiến trúc thay đổi Harvard.
- Ngôn ngữ C tối ưu hóa kiến trúc tập lệnh.
- Tập lệnh cơ bản gồm 84 lệnh.
- Chế độ định địa chỉ linh hoạt.
- Độ dài lệnh 24-bit, độ dài dữ liệu 16-bit.
- Bộ nhớ chương trình Flash 48 Kbytes.
- Bộ nhớ RAM độ lớn 2Kbytes.
- Bộ nhớ EEPROM 1 Kbytes
- Mảng 16 thanh ghi làm việc 16-bit
- Tốc độ làm việc lên tới 30 MIPS
- Dòng ra, vào ở các chân I/O lớn: 25 mA.
- 5 Timer 16-bit, có thể ghép 2 Timer 16-bit thành Timer 32-bit.
- Chức năng Capture 16-bit.
- Các bộ so sánh/PWM 16-bit.
- Module SPI 3 dây (hỗ trợ chế độ Frame).
- Module I2C, hỗ trợ chế độ đa chủ tớ, địa chỉ từ 7-bit đến 10-bit.
- UART có khả năng địa chỉ hoá, hỗ trợ bộ đệm FIFO.
- Nạp dữ liệu song song.
- Hai thanh chứa 40-bit có hỗ trợ bão hoà logic.
- Thực hiện phép nhân 2 số17-bit trong một chu kì máy.
- Tất cả các lệnh DSP đều thực hiện trong một chu kì máy.
- Dịch trái hoặc phải 16 bit trong một chu kì máy.
- Bộ nhớ Flash: ghi/xoá lên tới 10.000 lần (điều kiện công nghiệp) và trên
dưới 100.000 lần (thông thường).
- Khả năng tự nạp chương trình dưới điều khiển của software .
- Watch Dog Timer mềm dẻo với bộ dao động RC nguồn thấp trên chip.
- Chế độ bảo vệ firmware khả lập trình.
SVTH: ĐẶNG MINH TÂM
Trang 8
- Khả năng tự lập trình nối tiếp trên mạch điện (In Circuit Serial
Programming – ICSP).
- Có thể lựa chọn các chế độ quản lí nguồn: Sleep hoặc Idle
2.1.1 Sơ đồ chân của dsPIC30F4013
Hình 2.1 Sơ đồ chân của DSPIC30F4013
Ý nghĩa các chân của dsPIC30F4013:
SVTH: ĐẶNG MINH TÂM
Trang 9
SVTH: ĐẶNG MINH TÂM
Trang 10
SVTH: ĐẶNG MINH TÂM
Trang 11
Hình 2.2 ý nghĩa các chân của dsPIC30F4013
SVTH: ĐẶNG MINH TÂM
Trang 12
2.1.2 CPU của dsPIC30F4013
CPU của dsPic30F4013 được thiết kế trên kiến trúc RISC, nhân của CPU
có một bộ xử lí lệnh 24-bit và bộ đếm chương trình – Program Counter (PC)
độ rộng 23-bit với bit ý nghĩa thấp nhất luôn bằng 0, còn bít ý nghĩa cao nhất
thì được bỏ qua trong suốt quá trình thực hiện chương trình bình thường, chỉ
trừ khi thực hiện các lệnh đặc biệt. Do đó, bộ đếm chương trình có thể định
địa chỉ lên tới 4 triệu từ lệnh của không gian bộ nhớ chương trình được sử
dụng.
dsPIC30F4013 chứa 16 thanh ghi làm việc 16-bit. Mỗi thanh ghi làm việc có
thể làm việc với vai trò như dữ liệu, địa chỉ hoặc thanh ghi địa chỉ offset.
Thanh ghi thứ 16 (W15) hoạt động như là con trỏ ngăn xếp mềm cho hoạt
động ngắt và gọi ngắt.
Các chỉ lệnh của dsPIC30F gồm 2 lớp: Lớp MCU và Lớp DSP của lệnh. Hai
lớp này được kết hợp đồng nhất với nhau trong kiến trúc và thực hiện từ một
khối thực hiện đơn. Các chỉ lệnh bao gồm nhiều chế độ địa chỉ và được chế
tạo nhằm tương thích với trình biên dịch ngôn ngữ C.
Không gian dữ liệu có thể được địa chỉ hoá thành 32K words hoặc 64 Kbytes
và được chia làm hai khối, được gọi là bộ nhớ dữ liệu X và bộ nhớ dữ liệu Y.
Mỗi khối đều có khối tạo địa chỉ - AGU (Adress Generator Unit) riêng biệt
của nó. Tất cả các lệnh hoạt động đơn độc chỉ qua bộ nhớ X, và khối AGU –
quy định sự xuất hiện của một vùng dữ liệu thống nhất. Lớp thanh chứa phép
nhân (Multiply-Accumulate) – MAC của lệnh DSP hoạt động thông qua cả
hai khối AGU của bộ nhớ X và Y, nó chia địa chỉ dữ liệu thành hai phần. Mỗi
từ dữ liệu gồm 2-bytes, và tất cả các lệnh có thể định địa chỉ dữ liệu theo bytes
hoặc words (từ).
Có hai cách để truy xuất dữ liệu trong bộ nhớ chương trình đó là:
- 32Kbytes cao của vùng nhớ dữ liệu có thể được sắp xếp trong nửa thấp của
không gian chương trình tại biên của 16K từ chương trình bất kỳ, được định
nghĩa bởi thanh ghi PSVPAG 8-bit (Program Space Visibility Page). Do đó,
các lệnh có thể truy cập không gian chương trình như không gian dữ liệu,
nhưng có một giới hạn là nó cần thêm một chu kỳ lệnh nữa. Chỉ có 16 bít thấp
của mỗi từ lệnh có thể sử dụng phương thức truy cập này.
SVTH: ĐẶNG MINH TÂM
Trang 13
- Truy cập trực tiếp không tuyến tính của các trang 32K từ nằm trong không
gian chương trình cũng có thể sử dụng các thanh ghi làm việc, thông qua bảng
lệnh đọc và ghi. Bảng lệnh đọc và ghi có thể được sử dụng để truy cập cả 24
bit của một từ lệnh.
Khối X AGU (khối AGU của bộ nhớ X) cũng hỗ trợ việc đảo bit địa chỉ trên
địa chỉ đích kết quả nhằm đơn giản hoá tối đa dữ liệu vào hoặc ra để chúng
thích hợp ho thuật toán FFT cơ số2.
Với tất cả các lệnh, nhân của dsPIC30F có khả năng thực hiện việc đọc bộ nhớ
dữ liệu hoặc bộ nhớ chương trình, đọc thanh ghi làm việc, ghi vào thanh ghi
làm việc và đọc bộ nhớ chương trình mỗi chu kì lệnh. Như vậy, lệnh 3 toán
hạng được hỗ trợ, cho phép thực hiện phép tính C = A + B trong một chu kì
lệnh.
Các thanh ghi của khối xử lý trung tâm:
Hình 2.3 Thanh ghi xử lý trung tâm
SVTH: ĐẶNG MINH TÂM
Trang 14
2.1.3 Các bộ định thời
Trong vi xử lý dsPIC30F4013 có tới năm bộ định thời (Timer) 16-bit.
Trong đó các Timer có thể hoạt động riêng biệt, riêng hai Timer 2, 3 và hai
Timer 4, 5 có thể kết hợp với nhau để trở thành một Timer 32 bit.
Timer 1 có thể hoạt động với nguồn tạo dao động tần sốthấp 32KHz, và chế
độ
không đồng bộ với nguồn tạo dao động ngoài. Đặc điểm riêng biệt của Timer
1 đó là có thể dùng trong các ứng dụng thời gian thực. Và các timer khác còn
lại thì hoạt động tương tự.
Phần tiếp theo sẽ mô tả chi tiết cách thiết lập và sử dụng Timer 1 với ba chế
độ:
- Timer 16-bit: trong chế độ này, timer sẽ tăng sau mỗi chu kỳ lệnh đến khi
giá trị của timer bằng giá trị của thanh ghi chu kỳ PR1 (Period Register) thì sẽ
reset về 0 và tiếp tục đếm.
- Counter đồng bộ16-bit: trong chế độ này, timer sẽ tăng ở mỗi sườn lên của
của xung nhịp ngoài mà được đồng bộ với pha của các xung nhịp trong. Timer
tăng đến giá trị nằm trong thanh ghi PR1 thì dừng và reset timer về 0 rồi tiếp
tục đếm lên.
- Counter không đồng bộ16-bit: khi hoạt động trong chế độ này, timer sẽ tăng
dần sau mỗi sườn lên của xung nhịp bên ngoài tác động vào. Timer sẽ tăng
dần đến khi giá trị của nó bằng thanh ghi PR1 thì bị reset về 0 rồi lại tiếp tục
đếm lên.
Hệ số chia tần của bộ định thời:
Xung nhịp đầu vào (Fosc/4 hoặc xung nhịp ngoài) đưa vào Timer 16-
bit và có thể được chia tần số theo các tỉ lệ sau: 1:1, 1:8, 1:64, 1:256 được xác
định bởi các bit TCKPS<1:0> của thanh ghi TxCON. Hệ số chia tần này
(prescaler) có thể bị xoá khi xảy ra một trong các điều kiện sau:
+ Ghi vào TMR
+ Ghi vào thanh ghi TxCON (trừ việc ghi vào bit TxCON) Reset thiết bị, như
POR và BOR
SVTH: ĐẶNG MINH TÂM
Trang 15
+ DsPic30F4013 có 5 thanh ghi điều khiển Timer T1CON T5CON. Các
thanh ghi này được chia ra làm 2 kiều. T1CON thuộc kiểu A, T2CON và
T4CON thuộc kiểu B, T3CON và T5CON thuộc kiểu C.
Hình 2.4 Sơ đồ khối của Timer1(16 bit)
SVTH: ĐẶNG MINH TÂM
Trang 16
SVTH: ĐẶNG MINH TÂM
Trang 17
SVTH: ĐẶNG MINH TÂM
Trang 18
SVTH: ĐẶNG MINH TÂM
Trang 19
Hình 2.5 Sơ đồ khối của Timer 2(16 bit)
Hình 2.6 Sơ đồ khối của Timer 3(16 bit)
SVTH: ĐẶNG MINH TÂM
Trang 20
Hình 2.7 Sơ đồ khối của Timer 2+3(32 bit)
Hình 2.8 Sơ đồ khối của Timer 4(16 bit)
SVTH: ĐẶNG MINH TÂM
Trang 21
Hình 2.9 Sơ đồ khối của Timer 5(16 bit)
Hình 2.10 Sơ đồ khối của Timer 4+5(32 bit)
SVTH: ĐẶNG MINH TÂM
Trang 22
2.1.4 Sơ đồ khối của vi điều khiển dsPIC30F4013
Hình 2.11 Sơ đồ khối vi điều khiển dsPIC30F4013
2.1.5 Tổ chức bộ nhớ:
Không gian địa chỉ chương trình:
Không gian địa chỉ chương trình có độ lớn 4M từ lệnh. Bản đồ không gian bộ
nhớ chương của dsPic30F4013 được chỉ ra trong Hình 2.12.
Bộ nhớ chương trình có thể được địa chỉ hoá bởi một giá trị 24-bit bởi bộ đếm
chương trình (PC), hoặc bảng lệnh địa chỉ hiệu dụng (EA), hoặc không gian
SVTH: ĐẶNG MINH TÂM
Trang 23
dữ liệu EA khi không gian chương trình được sắp xếp và địa chỉ hoá. Chú ý
rằng, địa chỉ không gian chương trình được tăng lên với bước là 2 giữa các từ
chương trình để tạo ra sự tương thích với việc địa chỉ hoá không gian dữ liệu.
Truy cập không gian chương trình người sử dụng bị giới hạn trong dải 4M địa
chỉ của từ lệnh (từ 0x000000 tới 0x7FFFFE) với tất cả các lệnh truy cập.Trừ
hai lệnh TBLRD/TBLWT - sử dụng bit 7 của thanh ghi TBLPAG để xác định
người sử dụng hoặc thiết lập cấu hình truy cập bộ nhớ.
Hình 2.12 Bản đồ không gian bộ nhớ chương trình
Truy xuất dữ liệu từ bộ nhớ chương trình sử dụng các lệnh bảng:
Kiến trúc của dsPIC cho phép nạp dữ liệu rộng 24-bit tới bộ nhớ chương trình,
do đó các lệnh luôn luôn được xếp hàng tuy nhiên kiến trúc của nó có cải tiến
so với kiến trúc máy tính Hadvard nên dữ liệu cũng có thể được đưa ra ở trong
không gian chương trình.
Có hai phương pháp truy cập không gian chương trình, đó là:
- Thông qua các lệnh đặc biệt về bảng hoặc thông qua việc định địa chỉ
và sắp xếp lại 16K trang từ không gian chương trình trong nửa cao của không
gian dữ liệu. Các lệnh TBLRDL và TBLWTL cung cấp phương pháp đọc và
SVTH: ĐẶNG MINH TÂM
Trang 24