LỜI NÓI ĐẦU
Nhiệt độ là một thông số hết sức quan trọng và có ảnh hưởng rất lớn
tới môi trường, sự sống và các hoạt động sản xuất hàng ngày. Ngày nay với
sự biến đổi ngày càng xấu đi và khó lường của thời tiết thì việc đo, giám sát
nhiệt độ môi trường trở nên rất quan trọng. Nó giúp ta kịp thời đưa ra giải
pháp hạn chế các tác động xấu của thời tiết. Tránh được tối đa những thiệt
hại của cuộc sống và sản xuất.
Cùng với sự phát triển của khoa học kỹ thuật, các phương pháp đo,
điều khiển nhiệt độ cũng ngày càng hiện đại. Việc ứng dụng các loại chip
vi xử lý, vi điều khiển vào các hệ thống điều khiển nhiệt độ giúp nâng cao
độ chính xác và tăng khả năng tự động hoá của hệ thống.Vi điều khiển
ARM (32bit) STM32F103RD là chíp mới của hãng ST Electronic, với khả
năng tích hợp mạnh mẽ, kích thước nhỏ gọn, có không gian nhớ lớn và môi
trường thuận tiện. Trong khuân khổ đồ án, em đã sử dụng chíp
STM32F103RD cảm biến nhiệt độ LM35 để hoàn thành thiết kế mô hình
một bộ đo, lưu nhiệt độ môi trường.
Em xin gửi lời cảm ơn chân thành đến các thầy, cô trong khoa Kỹ
Thuật Điều Khiển, đặc biệt là sự hướng dẫn nhiệt tình của thầy giáo
Nguyễn Văn Xuân giúp đỡ để em hoàn thành đồ án. Tuy em đã nhiều cố
gắng và nỗ lực nhưng do trình độ và thời gian không nhiều nên trong quá
trình hoàn thành đồ án không thể tránh khỏi nhưng hạn chế và thiếu sót. Em
mong nhận được những ý kiến đóng góp quý giá của thầy cô và các bạn.
Em xin chân thành cảm ơn!
Hà Nội, 28 tháng 4 năm 2011
Sinh viên thực hiện
Đào Văn Phong
1
Chương 1
CÁC PHƯƠNG PHÁP ĐO NHIỆT ĐỘ
Nhiệt độ là một trong những thông số quan trọng nhất ảnh hưởng
đến đặc tính của vật chất. Đặc biệt nhiệt độ môi trường có ảnh hưởng rất
2
−−
−=
Tc
eCE
λ
λ
λ
[J] Với C
1
,C
2
-hằng số;
2
sJmC /10.03,37
217
1
−
=
; C
2
=1,432.10
ư2
[m.do]
sJmC /10.03,37
217
1
−
=
; C
0 4
[ ]
T T t
E T J
ε σ
=
.
Với :
T
ε
- hệ số bức xạ tổng hợp, xác định tính chất của vật và nhiệt
độ của nó (
1
T
ε
<
)
T
t
: nhiệt độ thực của vật .
Hỏa quang kế phát xạ được khắc độ theo độ bức xạ của vật đen tuyệt
đối
ưng khi đo ở đối tượng thực, T
p
được tính theo công thức:
4 4
4
1
.
p T t t p
c
eCE
2
2
5
2122
λ
λε
−
−
=
[J]
Ta có:
3
T
c
T
c
e
e
E
E
2
2
1
2
5
22
5
11
E
CT −=
Vì vậy trong dụng cụ hỏa quang kế màu sắc có thiết bị tự tính,tự
động giải phương trình trên, trong đó các giá trị
2211
,,,
λελε
được đưa vào
trước, nếu các thông số trên đưa vào sau sẽ gây nên sai số.
Khi đo nhiệt độ từ 2000
0
C đến 2500
0
Cgiá trị
1 2
,
ε ε
có thể xác định
được bằng thực nghiệm.
1.1.2. Các phương pháp đo tiếp xúc
Phương pháp đo nhiệt độ trong công nghiệp thường được sử dụng là
các nhiệt kế tiếp xúc gồm các loại sau:
- Nhiệt kế chất lỏng
- Nhiệt kế nhiệt điện trở
- Nhiệt kế nhiệt ngẫu
Ngoài ra đối với các ứng dụng có dải nhiệt độ cỡ -55
0
C đến 200
0
C
C) với
độ chính xác cao có thể lên đến 0,0001
0
C.
Nhiệt kế cặp nhiệt ngẫu (Thermocouples).
Phương pháp đo nhiệt độ bằng cặp nhiệt ngẫu là một trong những
phương pháp phổ biến và thuận lợi nhất.
Hình 1.1: Cấu tạo của cặp nhiệt ngẫu.
Cấu tạo và nguyên lý hoạt động của nhiệt kế cặp nhiệt ngẫu: Gồm
hai dây hàn với nhau ở điểm 1 và luồn vào ống 2 để có thể đo được nhiệt
độ cao. Với nhiệt độ thấp hơn vỏ nhiệt kế có thể làm bằng thép không rỉ.
Để cách điện giữa hai dây, một trong hai dây được luồn vào ống sứ nhỏ 3.
Nếu vỏ làm bằng kim loại thì cả hai dây đều đặt vào ống sứ.
5
Đầu ra của cặp nhiệt ngẫu nối vào hộp đầu nối 4. Mạch đo của nhiệt
kế nhiệt ngẫu là milivônmét hoặc điện thế kế điện trở nhỏ có giới hạn đo từ
0 đến 100mV.
Nếu đo sức điện động nhiệt điện bằng milivônmét sẽ gây sai số do
nhiệt độ của mạch đo thay đổi. Dòng điện chạy qua chỉ thị lúc đó là:
T d dc
E
I
R R R
=
+ +
[A]
Trong đó :
E – sức điện động R
T
Khi nhiệt độ thay đổi ta có:
=−=
2
1
21
ln.
.
c
c
BEBEd
I
I
q
TK
EEU
6
T
1
T
2
0
C
÷
105
0
C 0,3
0
C
LM35
±
10mV/1
0
C -55
0
C
÷
150
0
C
±
0,25
0
C
MMB-TS102 2,25mV/1
0
K -40
0
C
÷
150
÷
150
0
C, do giới hạn chịu nhiệt của các phần tử bán dẫn.
Nếu giá trị phản hồi thấp hơn giá trị đặt thì đầu ra bộ điều khiển sẽ
được đưa lên mức ON, còn nếu giá trị đưa về cao hơn giá trị đặt thì đầu ra
sẽ là OFF. Đầu ra sẽ luôn ON/OFF và dựa theo giá trị đặt để nhiệt độ điều
khiển không đổi. Khi đó công suất cấp cho sợi đốt cũng chỉ có 2 giá trị
( nghĩa là 100 % hoặc 0%). Cho nên bộ điều khiển tác động ON/OFF còn
gọi là bộ điều khiển tác động 2 vị trí. Biên độ dao động sẽ giảm khi tăng độ
quán tính, giảm thời gian trễ hoặc giảm tốc độ điều khiển đối tượng.
7
1.2. Các phương pháp điều khiển nhiệt độ
Bộ điều khiển nhiệt dùng để điều khiển nhiều đối tượng nhiệt độ
khác nhau, mỗi đối tượng lại có một đặc điểm nhất định do công nghệ yêu
cầu, do đó bộ điều khiển nhiệt cũng có nhiều phương pháp điều khiển để
đáp ứng yêu cầu đó. Dưới đây là những phương pháp mà bộ điều khiển
nhiệt độ thường dùng:
1.2.1. Phương pháp ON/OFF
Đây là phương pháp điều khiển có dạng đơn giản nhất, những bộ
điều khiển dùng phương pháp này có giá thành khá rẻ được ứng dụng cho
những đối tượng không yêu cầu cao về chất lượng điều khiển. Đặc tính
điều khiển được mô tả như hình dưới đây:
Hình 1.3: Đặc tính điều khiển
Nếu giá trị phản hồi thấp hơn giá trị đặt thì đầu ra bộ điều khiển sẽ
được đưa lên mức ON, còn nếu giá trị đưa về cao hơn giá trị đặt thì đầu ra
sẽ là OFF. Đầu ra sẽ luôn ON/OFF và dựa theo giá trị đặt để nhiệt độ điều
khiển không đổi. Khi đó công suất cấp cho sợi đốt cũng chỉ có 2 giá trị
(nghĩa là 100 % hoặc 0%). Cho nên bộ điều khiển tác động ON/OFF còn
gọi là bộ điều khiển tác động 2 vị trí. Biên độ dao động sẽ giảm khi tăng độ
o
C. Vậy độ rộng dải tỷ lệ: PB = (400
o
C -
0
o
C)*5% = 20
o
C. Do đó nếu nhiệt độ phản hồi thấp hơn 90
o
C thì đầu ra sẽ
ON (100%), nhiệt độ phản hồi cao hơn 110
o
C đầu ra sẽ OFF hoàn toàn
(0%), còn nhiệt độ phản hồi nằm trong dải tỷ lệ thì đầu ra điều khiển sẽ
ON/OFF theo chu kỳ.
Để làm rõ hơn về điều khiển ON/OFF theo chu kỳ ta tìm hiểu ví dụ
sau:
10
Hình 1.6: Quá trình điều khiển ON/OFF
Nếu bộ điều khiển sử dụng đầu ra là rơ-le hoặc rơ-le bán dẫn (SSR)
thì đầu ra sẽ ON không đều với mỗi chu kỳ T. Chu kỳ T đó được gọi là thời
gian điều khiển tỷ lệ ( time - porprotional action). Với chu kỳ điều khiển là
10s, để đầu ra điều khiển là 80% thì T
ON
= 8s, T
OFF
= 2s.
Ngoài ra, dải tỷ lệ thiết lập rộng hay hẹp sẽ làm ảnh hưởng nhiều đến
chất lượng điều khiển, do đó khi chọn %P cần chú ý đến đặc tính của từng
=
Hàm truyền:
S
K
sG
I
=
)(
Tuy nhiên điều chỉnh tích phân chỉ được nghiên cứu trên lý thuyết,
trong thực tế không dùng độc lập mà được kết hợp với điều chỉnh tỷ lệ để
loại bỏ sai lệch tĩnh ( offset) của điều chỉnh tỷ lệ.
Hình 1.9: Sai lệch ở bộ PI
12
Bộ điều khiển được kết hợp như vậy gọi là bộ điều khiển tỷ lệ – tích
phân (PI – porprotional integral controller).
Với cách đặt tham số T
i
cũng cho ra kết quả khác nhau:
Hình 1.10:các đường đặc tính với các tham số kp,ki,kd
Mặc dù vậy việc thêm bộ điều khiển tích phân vào bộ điều khiển tỷ lệ
cũng tạo ra nhược điểm: đó là gia tăng khuynh hướng dao động của biến điều
khiển. Do đó cần phải giảm độ tỷ lệ đi, hệ trở nên đáp ứng chậm hơn so với
ban đầu. Nếu quá trình có độ trễ lớn thì tín hiệu sai lệch nhận được sẽ không
phản ánh độ sai lệch thật sự. Do độ trễ này sẽ làm cho đáp ứng của hệ không
còn đúng so với sai lệch hiện tại, tức là hệ làm việc với tín hiệu cũ.
Phương trình trong miền thời gian của bộ PI:
∫
t
dtte
Hàm truyền: G(s) = K
D
.S
Nếu như với bộ điều khiển P cho kết quả luôn tồn tại một sai lệch
tĩnh, bộ điều khiển PI khắc phục được sai lệch tĩnh nhưng lại làm chậm tốc
độ đáp ứng của hệ thống. Thì với bộ điều khiển vi phân PD, đặc điểm nổi
bật là có tính phản ứng nhanh với tốc độ thay đổi của đầu vào, sẽ phần nào
làm tăng thêm tốc độ đáp ứng cho hệ thống.
Hình 1.11: Tác động của nhiễu
14
Tuy nhiên, các nhiễu tác động lên hệ thống thường có dạng tín hiệu
và đặc điểm của nhiễu này là sự tác động nhanh và bất kỳ. Khi một tín hiệu
nhiễu tác động vào một hệ thống được tích hợp khâu vi phân, đáp ứng của
hệ thống có thể rất nhanh và gây ra độ quá điều chỉnh lớn, phá hủy kết cấu
của cả hệ thống. Do vậy, cần rất cẩn thận khi sử dụng các khâu điều khiển
vi phân trong hệ thống.
Hình1.10:các thông số ảnh hưởng đến đặc tính
Phương pháp điều khiển tác động PID (Tỷ lệ - Tích phân - Vi phân)
Có thể tổng kết ưu nhược điểm của các phương pháp điều khiển P, I,
D theo bảng sau:
Phương pháp điều khiển Ưu điểm Nhược điểm
P Tác động nhanh, thời gian điều Tồn tại sai lệch
15
Tỷ lệ chỉnh ngắn, tính ổn định cao. tĩnh.
I
Tích phân
Triệt tiêu sai lệch tĩnh, hệ thống
kém ổn định.
Tốc độ xử lý chậm,
thời gian điều
Việc thiết kế ARM được bắt đầu từ năm 1983 trong một dự án phát
triển của công ty máy tính Acorn. Nhóm thiết kế, dẫn đầu bởi Roger
Wilson và Steve Furber, bắt đầu phát triển một bộ vi xử lý có nhiều điểm
tương đồng với Kỹ thuật MOS 6502 tiên tiến. Nhóm thiết kế hoàn thành
việc phát triển mẫu gọi là ARM1 vào năm 1985, vào năm sau, nhóm hoàn
thành sản phẩm ‘’thực’’ gọi là ARM2. ARM2 có tuyến dữ liệu 32-bit,
không gian địa chỉ 26-bit tức cho phép quản lý đến 64 Mbyte địa chỉ và 16
thanh ghi 32-bit. Một trong những thanh ghi này đóng vai trò là bộ đếm
chương trình với 6 bit cao nhất và 2 bit thấp nhất lưu giữ các cờ trạng thái
của bộ vi xử lý. Có thể nói ARM2 là bộ vi xử lý 32-bit khả dụng đơn giản
nhất trên thế giới, với chỉ gồm 30.000 transistor (so với bộ vi xử lý lâu hơn
bốn năm của Motorola là 68000 với khoảng 68.000 transistor). Sự đơn giản
như vậy có được nhờ ARM không có vi chương trình (chiếm khoảng 1/4
đến 1/3 trong 68000) và cũng giống như hầu hết các CPU vào thời đó,
không hề chứa cache. Sự đơn giản này đưa đến đặc điểm tiêu thụ công suất
thấp của ARM, mà lại có tính năng tốt hơn cả 286. Thế hệ sau, ARM3,
được tạo ra với 4KB cache và có chức năng được cải thiện tốt hơn nữa.
17
Vào những năm cuối thập niên 80, hãng máy tính Apple Computer
bắt đầu hợp tác với Acorn để phát triển các thế hệ lõi ARM mới . Công
việc này quan trọng đến nỗi Acorn nâng nhóm thiết kế trở thành một công
ty mới gọi là Advanced RISC Machines. Vì lý do đó, người ta thường giải
thích ARM là chữ viết tắt của Advanced RISC Machines thay vì Acorn
RISC Machine. Kết quả sự hợp tác này là ARM6. Mẫu đầu tiên được công
bố vào năm 1991 và Apple đã sử dụng bộ vi xử lý ARM 610 dựa trên
ARM6 làm cơ sở cho PDA hiệu Apple Newton. Vào năm 1994, Acorn
dùng ARM 610 làm CPU trong các máy vi tính RiscPC của họ.
Trải qua nhiều thế hệ nhưng lõi ARM gần như không thay đổi kích
thước. ARM2 có 30.000 transistors trong khi ARM6 chỉ tăng lên đến
35.000. Ý tưởng của nhà sản xuất lõi ARM là sao cho người sử dụng có thể
mình, đặc biệt là phần xử lí các các ngắt đặc biệt (exception) và các ngắt
thông thường (interrupt). Cortex-M3 đưa ra một lõi vi điều khiển chuẩn
nhằm cung cấp phần tổng quát, quan trọng nhất của một vi điều khiển, bao
gồm hệ thống ngắt (interrupt system), SysTick timer (được thiết kế cho hệ
điều hành thời gian thực), hệ thống kiểm lỗi (debug system) và memory
map. Không gian địa chỉ 4Gbyte của Cortex-M3 được chia thành các vùng
cho mã chương trình, SRAM, ngoại vi và ngoại vi hệ thống.
Cortex-M3 được thiết kế dựa theo kiến trúc Harvard (bộ nhớ chương
trình và bộ nhớ dữ liệu tách biệt với nhau), và có nhiều bus cho phép thực
hiện các thao tác song song với nhau, do đó làm tăng hiệu suất của chip.
Dòng Cortex cho phép truy cập dữ liệu không xếp hàng (unaligned
data, vì chip ARM là kiến trúc 32bit, do đó tất cả các dữ liệu hoặc mã
chương trình đều được sắp sếp khít với vùng bộ nhớ là bội số của 4byte).
Đặc điểm này cho phép sử dụng hiệu quả SRAM nội.
19
Khối trung tâm của STM32 là bộ xử lí Cortex-M3. Bộ xử lí Cortex-M3
là một vi điều khiển được tiêu chuẩn hoá gồm một CPU 32bit, cấu trúc bus
(bus structure), đơn vị xử lí ngắt có hỗ trợ tính năng lồng ngắt vào nhau
(nested interrupt unit), hệ thống kiểm lỗi (debug system) và tiêu chuẩn bố
trí bộ nhớ (standard memory layout).
2.3. Bộ xử lý Cortex và đơn vị xử lý trung tâm Cortex
Bộ xử lí Cortex (Cortex processor) và đơn vị xử lí trung tâm Cortex
(Cortex CPU) sẽ được sử dụng để phân biệt giữa nhúng lõi Cortex hoàn
chỉnh và bộ xử lí trung tâm RISC nội (internal RISC CPU).
2.3.1 Đơn vị xử lí trung tâm Cortex (Cortex CPU)
Trung tâm của bộ xử lý Cortex là một CPU RISC 32-bit. CPU này có
một phiên bản được đơn giản hóa từ mô hình lập trình (programmer’s
model) của ARM7/9, nhưng có một tập lệnh phong phú hơn với sự hỗ trợ
tốt cho các phép toán số nguyên, khả năng thao tác với bit tốt hơn và khả
năng đáp ứng thời gian thực tốt hơn.
ngăn xếp (stack pointer).
Thanh ghi này được chia thành nhóm (banked), cho phép CPU
Cortex có hai chế độ hoạt động, mỗi chế độ có không gian ngăn xếp riêng
biệt. Đặc điểm này thường được hệ điều hành thời gian thực (Real Time
Operating System) sử dụng để có thể chạy mã hệ thống của mình trong một
chế độ bảo vệ. Trong CPU Cortex có hai ngăn xếp được gọi là main stack
và process stack. Thanh ghi R14 tiếp theo được gọi là thanh ghi liên kết
(link register). Thanh ghi này được sử dụng để lưu trữ các địa chỉ trở về khi
một cuộc gọi thủ tục (call a procedure) được thực hiện. Điều này cho phép
CPU Cortex thực hiện rất nhanh việc nhập và thoát khỏi một thủ tục (fast
entry and exit to a procedure). Nếu chương trình của bạn gọi sâu vào nhiều
lớp chương trình con, trình biên dịch sẽ tự động lưu R14 trên ngăn xếp
(stack). Thanh ghi cuối cùng R15 là bộ đếm chương trình (Program
Counter), nó là một phần của tập thanh ghi trung tâm, nó có thể được đọc
và thao tác giống như bất kỳ thanh ghi khác.
21
Hình2.1 Tập thanh ghi trung tâm
Thanh ghi XPSR
Ngoài tập thanh ghi trung tâm còn có một thanh ghi riêng biệt được
gọi là thanh ghi trạng thái chương trình (Program Status Register).
Nó không phải là một phần của tập thanh ghi chính và chỉ có thể
truy cập thông qua hai lệnh chuyên dụng. XPSR chứa một số các vùng
chức năng quan trọng ảnh hưởng đến việc thực thi của CPU Cortex.
Thanh ghi xPSR cũng có thể được truy cập thông qua ba biệt hiệu
đặc biệt (special alias names) cho phép truy cập vào các bit trong xPSR.
Năm bit đầu là những cờ mã điều kiện và được gán biệt hiệu
(aliased) như thanh ghi trạng thái chương trình ứng dụng. Bốn cờ N, Z, C,
V (Negative, Zero, Carry và Overflow) sẽ được thiết lập và xóa tùy thuộc
22
vào kết quả của một lệnh xử lý dữ liệu. Bit Q là được sử dụng bởi các lệnh
Bus
Bộ vi xử lý Cortex-M3 được thiết kế dựa trên kiến trúc Harvard với
bus mã và bus dữ liệu riêng biệt. Chúng được gọi là các bus Icode và
Dcode. Cả hai bus đều có thể truy cập mã và dữ liệu trong phạm vi bộ nhớ
từ 0x00000000-0x1FFFFFFF.
Một bus hệ thống bổ sung được sử dụng để truy cập vào không gian
điều khiển hệ thống Cortex trong phạm vi 0x20000000–0xDFFFFFFF và
0xE0100000–0xFFFFFFFF. Hệ thống gỡ lỗi trên chip của Cortex có thêm
một cấu trúc bus được gọi là bus ngoại vi riêng.
Ma trận Bus
Bus hệ thống và bus dữ liệu được kết nối với vi điều khiển bên ngoài
thông qua một tập các bus tốc độ cao được sắp xếp như một ma trận
bus.Cho phép một số đường dẫn song song giữa bus Cortex và các bus chủ
(bus master) khác bên ngoài như DMA đến các nguồn tài nguyên trên chip
như SRAM và các thiết bị ngoại vi. Nếu hai bus chủ (ví dụ CPU Cortex và
một kênh DMA) cố gắng truy cập vào cùng một thiết bị ngoại vi, một bộ
phân xử nội sẽ giải quyết xung đột và cho truy cập bus vào ngoại vi có mức
ưu tiên cao nhất.
Timer hệ thống (System timer)
Lõi Cortex có một bộ đếm xuống 24-bit, với tính năng tự động nạp
lại (auto reload) giá trị bộ đếm và tạo sự kiện ngắt khi đếm xuống zero. Nó
24
được tạo ra với dụng ý cung cấp một bộ đếm thời gian chuẩn cho tất cả vi
điều khiển dựa trên Cortex.
Đồng hồ SysTick được sử dụng để cung cấp một nhịp đập hệ thống
cho một RTOS, hoặc để tạo ra một ngắt có tính chu kì để phục vụ cho các
tác vụ được lập lịch.
Thanh ghi trạng thái và điều khiển của SysTick trong đơn vị không
gian điều khiển hệ thống Cortex-M3 cho phép chọn các nguồn xung clock
cho SysTick. Bằng cách thiết lập bit CLKSOURCE, đồng hồ SysTick sẽ