Tải bản đầy đủ (.doc) (87 trang)

nghiên cứu xây dựng hệ thống đo - điều khiển nhiệt độ lưu trên thẻ nhớ sd dùng vi điều khiển 32bit

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 (1.35 MB, 87 trang )

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


lớn trong đời sống hàng ngày và hoạt động sản xuất. Theo thời gian, sự
phát triển của các phương pháp đo, điều khiển nhiệt độ cũng phát triển theo
từ đơn giản đến phức tạp. Các hệ thống đo và điều khiển nhiệt độ cũng
được xây dựng theo các phương pháp khác nhau tùy thuộc vào dải nhiệt độ
cần đo. Thông thường nhiệt độ đo được chia thành ba dải: nhiệt độ thấp,
nhiệt độ trung bình và nhiệt độ cao.
Dải nhiệt độ thấp và trung bình: Phương pháp thường đo là phương
pháp tiếp xúc. Có nghĩa là thiết bị đo tiếp xúc trực tiếp với môi trường cần
đo.
Dải nhiệt độ cao: Phương pháp thường đo là phương pháp không tiếp
xúc. Có nghĩa là thiết bị đo đặt ở ngoài môi trường đo.
1.1. Các phương pháp đo và điều khiển nhiệt độ
1.1.1. Các phương pháp đo không tiếp xúc
 Phương pháp hỏa quang kế.
Đây là phương pháp dựa trên định luật bức xạ của vật đen tuyệt
đối,tức là vật hấp thụ năng lượng theo mọi hướng với khả năng lớn nhất.
Bức xạ nhiệt của mọi vật thể có thể đặc trưng bằng một mật độ phổ
E
λ
.
Nghĩa là số năng lượng bức xạ trong một đơn vị thời gian với một đơn vị
diện tích của vật và xảy ra trên một đơn vị của độ dài sóng.
Quan hệ giữa mật độ bức xạ của vật đen tuyệt đối với nhiệt độ và độ
dài sóng được biểu diễn bằng công thức:
1
)/(
5
1
0
)1(

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

2
=1,432.10
-2
[m.do]
T - nhiệt độ tuyệt đối;
λ
- độ dài sóng;
Tùy theo đại lượng vào ta gọi dụng cụ đo theo phương pháp trên
bằng tên gọi khác nhau như: hỏa quang kế phát xạ và hỏa quang kế màu
sắc.
 Hỏa quang kế phát xạ.
Nguyên lý hoạt động: đối với vật đen tuyệt đối, năng lượng bức xạ
toàn phần trên một đơn vị bề mặt được tính:
0 4
[ ]
T p
E T J
σ
=
Với:
2 2
4,96.10 /J m
σ

=
T
p
– nhiệt độ của vật theo lý thuyết.
Đối với vật thực thì năng lượng bức xạ toàn phần trên một đơn vị bề
mặt được tính :

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

T
T T T T
σ ε σ
ε
= → =
 Hỏa quang kế màu sắc.
Nguyên lý hoạt động: Hỏa quang kế màu sắc là dụng cụ đo nhiệt độ
dựa trên phương pháp đo tỷ số cường độ bức xạ của hai ánh sáng có bước
sóng khác nhau
1
λ

2
λ
.
Năng lượng thu được :
T
c
eCE
1
2
5
1111
λ
λε


=
[J];
T

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

2
1
λ
λ
λε
λε




=
Và giá trị nhiệt độ T có thể tìm được theo các giá trị
212121
,,,,,
λλεε
EE
là :
5
112
5
221
21
2
ln)
11
(
λε
λε
λλ
E

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

hiện nay ta thường ứng dụng các IC bán dẫn ứng dụng tính chất nhạy nhiệt
của các điôt, tranzito để đo nhiệt độ.
Cấu tạo của nhiệt kế nhiệt điện trở và cặp nhiệt ngẫu cũng như cách
lắp ghép chúng phải đảm bảo tính chất trao đổi nhiệt tốt giữa nhiệt kế với
môI trường đo:
- Đối với môi trường khí và nước dụng cụ đo được đặt theo hướng
ngược lại với dòng chảy.
- Với vật rắn đặt nhiệt kế sát vào vật, nhiệt lượng sẽ chuyển từ vật
sang dụng cụ đo. Diện tích tiếp xúc giữa vật đo và nhiệt kế càng lớn càng
tốt.
- Khi đo nhiệt độ của các chất ở dạng hạt( cát,đất, ) cần phải cắm
sâu nhiệt kế vào môi trường cần đo và thường dùng nhiệt kế nhiệt điện trở
có cáp nối ra ngoài.
4
 Nhiệt kế chất lỏng.
Trong phương pháp này người ta sử dụng sử giãn nở của chất lỏng
theo nhiệt độ, đo sự tăng giảm tuyến tính của cột chất lỏng theo sự tăng
giảm của nhiệt độ. Ví dụ như nhiệt kế thủy ngân.
 Nhiệt kế điện trở (Resistance Thermometer)
Nhiệt kế điện trở làm việc trên nguyên tắc sử dụng tính chất biến
thiên điện trở của vật chất theo nhiệt độ, từ đó biết được nhiệt độ cần đo.
Nhiệt kế điện trở có thể chế tạo bằng dây platin, đồng, niken, bán
dẫn,… quấn trên một lõi cách điện đặt trong vỏ kim loại có đầu được nối ra
ngoài. Điện trở của dây này đã được xác định chính xác ở những nhiệt độ
khác nhau. Vì thế khi ta đặt dây đó ở khu vực cần đo nhiệt độ, chỉ cần đo
điện trở của dây là có thể biết được nhiệt độ. Nhiệt kế điện trở có thể dùng
để đo những nhiệt độ rất cao (đến 1000
0
C) hoặc rất thấp ( đến 200
0

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

- Điện trở cặp nhiệt ngẫu
R
d
-Điện trở đường dây R
dc
-Điện trở của milivonmet
Điện áp rơi trên milivonmet là:
( )[ ] [ ]
dc
T d
T d dc
R
U E I R R V U E V
R R R
= − + → =
+ +
Thường R
d
+ R
T
được hiệu chỉnh khoảng 5Ω, còn điện trở của
milivônmét lớn hơn nhiều lần (40-50 lần) vì vậy sai số chủ yếu do điện trở
milivônmét R
dc
thay đổi.
 Đo nhiệt độ dùng các phần tử bán dẫn.
Phương pháp này hoạt động theo nguyên lý sau: các linh kiện điện tử
và bán dẫn rất nhạy cảm với nhiệt độ, do đó có thể sử dụng một số linh
kiện bán dẫn như điốt hoặc tranzito nối theo sơ đồ sau:
Hình 1.2: Nguyên lý hoạt động của IC bán dẫn đo nhiệ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

U
D
-U
CC
I
1
I
2
U
RA
Với I
c1
/I
c2
=const thì U
D
tỉ lệ với nhiệt độ T mà không cần đến nguồn
ổn định .
Hiện nay các cảm biến đo nhiệt độ sử dụng điốt hoặc tranzito đã
được tích hợp thành IC bán dẫn đo nhiệt độ. Các cảm biến này cho đầu ra
là điện áp hoặc dòng điện tỉ lệ với nhiệt độ cần đo với độ tuyến tính cao, sử
dụng đơn giản.
Ví dụ một số loại IC đo nhiệt độ:
Loại IC Độ nhạy Dải đo Sai số
AD592CN
KA
0
1/1
µ
-25

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

0
C
±
2
0
C
REF-02A 2,1mV/
0
K -55
0
C
÷
125
0
C
±
0,5
0
C
Đặc điểm:
- Độ nhạy của các loại IC bán dẫn đo nhiệt độ thường có giá trị
cỡ 2,5mV/
0
C và không ổn định mà thường thay đổi theo nhiệt độ.
- Ưu điểm: độ tuyến tính cao, sử dụng đơn giản và có độ nhạy
cao.
- Nhược điểm: giới hạn phạm vi sử dụng chỉ trong khoảng -
50
0
C

÷
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 độ

quán tính, giảm thời gian trễ hoặc giảm tốc độ điều khiển đối tượng.
8
1.2.2. Phương pháp điều khiển tác động P (Proportional – Tỷ lệ)
Với điều khiển tỷ lệ, phần tử điều khiển sẽ đưa ra giá trị đầu ra tỷ lệ
với giá trị đầu vào. Nói một cách khác, giá trị đầu ra quan hệ tuyến tính với
giá trị đầu vào. Vậy giá trị đầu vào sẽ thay đổi trong một khoảng nào đó để
giá trị đầu ra thay đổi từ 0% đến 100%, khoảng đó gọi là dải tỷ lệ
(proportional band), và giá trị đặt (SV) nằm trong dải tỷ lệ đó.
Hình 1.4: Quan hệ giữa đầu vào và đầu ra
Trong lý thuyết nếu như nói đến điều chỉnh tỷ lệ là nói đến hệ số tỷ
lệ K, nhưng trong thực tế hầu hết các hệ thống người ta không sử dụng hệ
số tỷ lệ K mà dùng khái niệm dải tỷ lệ. Công thức thể hiện mối liên hệ giữa
K và %P là: K= 100(%P).
Khi hoạt động, giá trị đầu vào thấp hơn và nằm ngoài dải tỷ lệ, đầu
ra điều khiển sẽ được ON 100%. Nếu giá trị đầu vào nằm trong dải tỷ lệ,
đầu ra điều khiển sẽ tăng hoặc giảm từ từ tuyến tính với độ sai lệch đầu
vào. Nếu độ sai lệch bằng 0 (đầu vào = SV) thì đầu ra điều khiển sẽ ON
50%. Nếu giá trị đầu vào cao hơn và nằm ngoài dải tỷ lệ, đầu ra sẽ
OFF( ứng với giá trị 0%).
9
Hình 1.5: Quan hệ giá trị đầu ra và giá trị phản hồi
Ví dụ:
Bộ điều khiển nhiệt độ, dải nhiệt độ điều chỉnh từ 0
o
C
÷
400
o
C có
dải tỷ lệ là 5%, giá trị đặt SV=100

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

đối tượng.
Hình 1.8: Dải tỷ lệ đặt
11
Điều khiển tỷ lệ cho thời gian tác động nhanh, thời gian điều chỉnh
ngắn, độ ổn định cao hơn nhưng giá trị thực tế (PV) luôn có một độ sai lệch
tĩnh (offset) với giá trị đặt (SV).
Phương trình trong miền thời gian:
y(t) = K
P
.e(t)
Hàm truyền:
G(s) = K
P
1.2.3. Phương pháp điều khiển tác động I (Integral – Tích phân)
và PI
Nếu như phương pháp điều chỉnh tỷ lệ để lại một độ sai lệch (offset)
sau điều chỉnh là rất lớn. Thì điều chỉnh tích phân ( Integral Control) là
phương pháp tạo ra tín hiệu điều chỉnh sao cho độ sai lệch giảm tới 0.
Phương trình trong miền thời gian:

t
dtte
0
)(KI. = y(t)
;
i
I
T
K
1

=
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

0
)(KI. + KP.e(t) = y(t)
Hàm truyền:
S
K
I
+ KP = G(s)
13
1.2.4. Phương pháp điều khiển tác động D ( Derivative – Vi phân)
và PD
Đầu ra bộ điều khiển vi phân D tỷ lệ với tốc độ thay đổi của giá trị
đo hoặc sai lệch. Một số nhà sản xuất còn sử dụng thuật ngữ tốc độ (rate)
hoặc tác động trước ( pre - act) để thay cho tác động vi phân ( derivative
action).
Việc điều khiển đầu ra được tính theo sự thay đổi của các sai lệch
với thời gian:
Đầu ra điều khiển
dt
tdeT
D
)(
×
=
Trong đó: T
D
- Thời gian vi phân
Phương trình trong miền thời gian:
dt
tde )(
KD. = y(t)

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

chỉnh dài.
D
Vi phân
Tăng nhanh tốc độ tác động. Gây ra nhiễu điều
khiển, độ quá điều
chỉnh lớn.
Bộ điều khiển PID gồm sự kết hợp của 3 khâu điều khiển tỷ lệ (P),
tích phân (I) và vi phân (D), nên nhược điểm của khâu này trong điều khiển
được ưu điểm của khâu kia khắc phục. Vì vậy nhiệt độ luôn được giữ ổn
định bằng phẳng bởi khâu tỷ lệ, khâu tích phân tự động hiệu chỉnh độ sai
lệch tĩnh (offset) của khâu tỷ lệ, đồng thời khâu vi phân giúp bộ điều khiển
PID phản ứng nhanh với nhiễu ngoài.

Hình 1.11 Bộ PID đầy đủ
Chương 2
TỔNG QUAN VỀ ARM
Cấu trúc ARM (viết tắt từ tên gốc là Acorn RISC Machine) là một
loại cấu trúc vi xử lý 32-bit kiểu RISC được sử dụng rộng rãi trong các
thiết kế nhúng. Do có đặc điểm tiết kiệm năng lượng, các bộ CPU ARM
16
chiếm ưu thế trong các sản phẩm điện tử di động, mà với các sản phẩm này
việc tiêu tán công suất thấp là một mục tiêu thiết kế quan trọng hàng đầu.
Ngày nay, hơn 75% CPU nhúng 32-bit là thuộc họ ARM, điều này
khiến ARM trở thành cấu trúc 32-bit được sản xuất nhiều nhất trên thế giới.
CPU ARM được tìm thấy khắp nơi trong các sản phẩm thương mại điện tử,
từ thiết bị cầm tay (PDA, điện thoại di động, máy đa phương tiện, máy trò
chơi cầm tay, và máy tính cầm tay) cho đến các thiết bị ngoại vi máy tính
(ổ đĩa cứng, bộ định tuyến để bàn). Một nhánh nổi tiếng của họ ARM là
các vi xử lý Xscale của Intel.
2.1. Lịch sử phát triển của ARM

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ể

ghép lõi ARM với một số bộ phận tùy chọn nào đó để tạo ra một CPU hoàn
chỉnh, một loại CPU mà có thể tạo ra trên những nhà máy sản xuất bán dẫn
cũ và vẫn tiếp tục tạo ra được sản phẩm với nhiều tính năng mà giá thành
vẫn thấp.
2.2. ARM Cortex
Lõi ARM Cortex được chia ra thành ba dòng cấu hình chính, với các
ký hiệu viết tắt lần lượt là: A, R, M. Chữ A là viết tắt của Application, lõi
ARM dòng này hỗ trợ cho các ứng dụng có độ phức tạp cao như: máy tính,
điện thoại di động R là viết tắt của Realtime, các ứng dụng cần tính toán
xử lý thời gian thực được hỗ trợ bởi cấu hình này. M là Microcontroller,
dành cho các ứng dụng công nghiệp và điện tử tiêu dùng.
Để đạt được một thiết kế gọn, đơn giản và nhanh, các nhà thiết kế
ARM xây dựng nó theo kiểu nối cứng không có vi chương trình, giống với
bộ vi xử lý 8-bit 6502 đã từng được dùng trong các máy vi tính trước đó
của hãng Acorn.
18
Tập đoàn ST Microelectronic vừa cho ra mắt dòng STM32, vi điều
khiển đầu tiên dựa trên nền lõi ARM Cortex-M3 thế hệ mới do hãng ARM
thiết kế, lõi ARM Cortex-M3 là sự cải tiến của lõi ARM7 truyền thống,
dòng ARM Cortex là một bộ xử lí thế hệ mới đưa ra một kiến trúc chuẩn
cho nhu cầu đa dạng về công nghệ. Dòng Cortex là một lõi xử lí hoàn
thiện, đưa ra một chuẩn CPU và kiến trúc hệ thống chung. Dòng Cortex
gồm có 3 phân nhánh chính: dòng A dành cho các ứng dụng cao cấp, dòng
R dành cho các ứng dụng thời gian thực như các đầu đọc và dòng M dành
cho các ứng dụng vi điều khiển và chi phí thấp. STM32 được thiết kế dựa
trên dòng Cortex-M3, dòng Cortex-M3 được thiết kế đặc biệt để nâng cao
hiệu suất hệ thống, kết hợp với tiêu thụ năng lượng thấp, Cortex-M3 được
thiết kế trên nền kiến trúc mới, do đó chi phí sản xuất đủ thấp để cạnh tranh
với các dòng vi điều khiển 8 và 16-bit truyền thống. Các chip ARM7 và
ARM9 được các nhà sản xuất bán dẫn thiết kế với giải pháp riêng của

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.

 Kiến trúc đường ống (Pipline)
CPU Cortex có thể thực thi hầu hết các lệnh trong một chu kì đơn.
Giống như CPU của ARM7 và ARM9, việc thực thi này đạt được với một
đường ống ba tầng. Cortex-M3 khả năng dự đoán việc rẽ nhánh để giảm
thiểu số lần làm rỗng (flush) đường ống. Trong khi một lệnh đang được
thực thi, thì lệnh tiếp theo sẽ được giải mã và lệnh tiếp theo nữa sẽ được
lấy về từ bộ nhớ.
Phương thức hoạt động này sẽ phát huy hiệu quả tối đa cho mã tuyến
tính (linear code), nhưng khi gặp phải một rẽ nhánh (ví dụ cấu trúc lệnh
if…else) thì các đường ống phải được làm rỗng (flush)và làm đầy (refill)
trước khi mã có thể tiếp tục thực thi.
Instrudoction N
20
Fetch Decode Excute
Fetch Decode Excute
Fetch Decode Excute
Excute
Fetch Decode Excute
Instrudoction N+1
Instrudoction N+2
Instrudoction N+3
 Mô hình lập trình (Programmer’s model)
CPU Cortex là bộ xử lý dựa trên kiến trúc RISC, do đó hỗ trợ kiến
trúc nạp và lưu trữ (load and store architecture). Để thực hiện lệnh xử lý dữ
liệu, các toán hạng phải được nạp vào một tập thanh ghi trung tâm, các
phép tính dữ liệu phải được thực hiện trên các thanh ghi này và kết quả sau
đó được lưu lại trong bộ nhớ.Tập thanh ghi này bao gồm mười sáu thanh
ghi 32-bit. Các thanh ghi R0-R12 là các thanh ghi đơn giản, có thể được
dùng để chứa các biến của chương trình. Các thanh ghi R13-R15 có chức
năng đặc biệt trong CPU Cortex. Thanh ghi R13 được dùng như là con trỏ

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

toán học DPS để chỉ ra rằng một biến đã đạt giá trị tối đa hoặc giá trị tối
thiểu của nó.
 Bản đồ bộ nhớ (Memory Map)
Bộ xử lý Cortex-M3 là một lõi vi điều khiển được tiêu chuẩn hóa,
như vậy nó có một bản đồ bộ nhớ cũng được xác định. Mặc dù có nhiều
bus nội, bản đồ bộ nhớ này là một không gian địa chỉ 4 Gbyte tuyến tính.
Bản đồ bộ nhớ này là chung cho tất cả các thiết bị dựa trên lõi Cortex. Một
Gbyte bộ nhớ đầu tiên được chia đều cho một vùng mã (code region) và
một vùng SRAM (SRAM region).
Không gian mã được tối ưu hóa để thực thi từ bus I-Code. Tương tự,
SRAM được nối đến bus D-Code. mã có thể được nạp và thực thi từ
SRAM, các lệnh sẽ được lấy bằng cách sử dụng bus hệ thống, Mã chạy trên
SRAM sẽ chậm hơn so với từ bộ nhớ Flash trên chip (on-chip) nằm trong
vùng mã.
Hình 2.1: Bản đồ nhớ
Vùng 0,5 Gbyte tiếp theo của bộ nhớ là vùng ngoại vi trên chip, tất
cả thiết bị ngoại vi được cung cấp bởi nhà sản xuất vi điều khiển sẽ được
đặt tại vùng này. Vùng 1 Mbyte đầu tiên gồm cả SRAM và vùng ngoại vi
được định địa chỉ theo bit, sử dụng một kỹ thuật được gọi là dải bit (bit
banding). Không gian địa chỉ 2 Gbyte tiếp theo được phân cho bộ nhớ
23
ngoài - ánh xạ SRAM và thiết bị ngoại vi (external RAM và external
Device).
Vùng 0,5 Gbyte cuối cùng được phân cho các thiết bị ngoại vi bên
trong của bộ xử lí Cortex và một khu vực dành cho các cải tiến trong tương
lai của nhà sản xuất chip cho bộ xử lý Cortex. Các thanh ghi của bộ xử lý
Cortex được đặt ở vị trí cố định cho tất cả vi điều khiển dựa trên lõi Cortex.
2.3.2 Bộ xử lý Cortex
Bộ xử lí Cortex được tạo thành từ CPU Cortex kết hợp với nhiều
thiết bị ngoại vi như Bus, system timer…

 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ẽ

chạy ở tần số đúng bằng tần số hoạt động của CPU. Khi bit này được xóa,
SysTick sẽ chạy ở tần số bằng 1/8 CPU.
Đồng hồ SysTick có ba thanh ghi. Giá trị hiện tại và giá trị tải
(current value và reload value) nên được khởi tạo với chu kì đếm. Thanh
ghi trạng thái và điều khiển có một bit cho phép (ENABLE bit) để bắt đầu
chạy bộ đếm thời gian và một bit TICKINT cho phép tín hiệu ngắt.
 Xử lí ngắt (Interrupt Handling)
Một trong những cải tiến quan trọng của lõi Cortex so với các CPU
ARM trước đó là cấu trúc ngắt của nó và xử lý các ngắt ngoại lệ (exception
handling). CPU ARM7 và ARM9 có hai đường ngắt: ngắt nhanh (fast
interrupt-FIQ) và ngắt đa dụng (general purpose interrupt hay còn gọi là
interrupt request-RIQ).
Hai đường tín hiệu ngắt này phục vụ tất cả các nguồn ngắt bên trong
một vi điều khiển, trong khi kỹ thuật được sử dụng là như nhau, nhưng
việc thực hiện lại khác biệt giữa các nhà sản xuất chip.
Cortex là khắc phục những hạn chế này và cung cấp một cấu trúc
ngắt chuẩn cực kỳ nhanh chóng và xác định (extremely fast and
deterministic).
 Bảng vector ngắt (Exception Vector Table)
Bảng vector ngắt của Cortex bắt đầu ở dưới cùng của bảng địa chỉ.
Tuy nhiên bảng vector bắt đầu tại địa chỉ 0x00000004 thay vì là
0x00000000 như ARM7 và ARM9, bốn byte đầu tiên được sử dụng để lưu
trữ địa chỉ bắt đầu của con trỏ ngăn xếp (stack pointer).
25

×