Tải bản đầy đủ (.pdf) (70 trang)

nghiên cứu, chế tạo mạch đánh lửa trên động cơ ôtô theo chương trình

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 (6.79 MB, 70 trang )

BỘ GIÁO DỤC VÀ ĐÀO TẠO
TRƯỜNG ĐẠI HỌC SƯ PHẠM KỸ THUẬT
THÀNH PHỐ HỒ CHÍ MINH

ĐỀ TÀI NCKH CẤP BỘ

NGHIÊN CỨU, CHẾ TẠO MẠCH ĐÁNH LỬA
TRÊN ĐỘNG CƠ ÔTÔ THEO CHƯƠNG TRÌNH
S

K

C

0

0

3

9

5

9

MÃ SÔ: B2004 - 19 - 36

S KC 0 0 2 0 8 5

Tp. Hồ Chí Minh, 2007




BỘ GIÁO DỤC VÀ ĐÀO TẠO
TRƯỜNG ĐẠI HỌC SƯ PHẠM KỸ THUẬT TP.HCM

ĐỀ TÀI NGHIÊN CỨU KHOA HỌC CẤP BỘ

NGHIÊN CỨU, CHẾ TẠO MẠCH ĐÁNH LỬA TRÊN ĐỘNG CƠ ÔTÔ
THEO CHƯƠNG TRÌNH
MAÕ SOÁ:B2004-19-36

THUỘC NHÓM: Khoa học kỹ thuật
NGƯỜI CHỦ TRÌ:Ths Đỗ Quốc Ấm
NGƯỜI THAM GIA : PGS. TS Đỗ Văn Dũng, Ths Nguyễn Văn Long Giang,
Ths Huỳnh Quốc Việt, Ks Nguyễn Trọng Thức.
ĐƠN VỊ : Khoa Cơ khí động lực

T.P HOÀ CHÍ MINH, 9.2007


CHƯƠNG I
TỔNG QUAN
1.1 Tổng quan về các vấn đề nghiên cứu hệ thống các hệ thống đánh lửa đang sử dụng
hiện nay trên ôtô.
Ngày nay, chúng ta đang tiến bước vào thế kỷ mới, thế kỷ của nền kinh tế tri thức. Thế
kỷ mà kỹ thuật số dần dần khẳng định vị trí của mình và là sự kế thừa nền tảng của kỹ thuật
tương tự. Với tốc độ phát triển nhanh chóng của khoa học kỹ thuật, nhiều sản phẩm công nghệ
cao được tích hợp với mật độ ngày càng nhỏ và tinh vi đã ra đời. Trong đó, sự ra đời của các
bộ vi điều khiển ngày càng hoàn thiện và làm việc với tốc độ cao, chính xác đã được áp dụng
trong nhiều lĩnh vực điều khiển để đáp ứng nhu cầu của xã hội.

Không đứng ngoài sự phát triển chung ấy, ngành công nghiệp ôtô đã có những tiến bộ
vượt bậc về công nghệ, đặc biệt đã ứng dụng được những công nghệ mới nhất của các ngành
công nghệ hỗ trợ lên các chiếc xe nhằm đem lại sự tiện nghi sang trọng, kinh tế… và hơn hết
là vấn đề bảo vệ môi trường. Những đòi hỏi ngày càng cao của người sử dụng làm cho bài
toán kỹ thuật càng trở nên khó khăn hơn, là sự thách thức lớn đối với những nhà kỹ thuật.
Nhờ kỹ thuật điện điện tử và công nghệ thông tin đã giúp cho các nhà kỹ thuật giải quyết bài
toán khó một cách đơn giản hơn, chính xác hơn. Do đó, các ôtô sản xuất ngày nay được trang
bị hệ thống điện-điện tử khá phức tạp như hệ thống phun xăng, hệ thống phanh chống hãm
cứng, hệ thống đánh lửa điện tử, hệ thống kiểm soát khí thải…
Mặc dù, nền công nghiệp ô tô trên thế giới có tuổi đời rất lâu, nhưng ở Việt Nam nền
công nghiệp này còn khá non trẻ so với các nước khác. Trong những năm gần đây, nền công
nghiệp ô tô đã có những bước phát triển rất nhanh đòi hỏi một lượng lớn đội ngũ cán bộ khoa
học kỹ thuật, công nhân lành nghề. Từ sự mới mẻ trong các ứng dụng của vi điều khiển trên
lĩnh vực ôtô, cùng với mơ ước một ngày nào đó Việt Nam sẽ tự mình sản xuất được ôtô đã
thôi thúc nhóm tác giả thực hiện đề tài “Nghiên cứu chế tạo mạch đánh lửa trên động cơ ôtô
theo chương trình”.
1.2 Mục tiêu và ý nghĩa của vấn đề nghiên cứu hệ thống đánh lửa điều khiển theo
chương trình.
Chất lượng cuả quá trình đánh lửa ảnh hưởng rất lớn đến chất lượng của quá trình
cháy.Trong quá trình làm việc của động cơ góc đánh lửa sớm ảnh hưởng rất lớn đến công
suất, tính kinh tế và chất lượng của khí thải. Góc đánh lửa sớm tối ưu phụ thuộc rất nhiều
thông số:số vòng quay động cơ, phụ tải, nhiệt độ nước làm mát, nhiệt độ khí trời… và các
thông số này thay đổi một cách liên tục. Đối với các hệ thống đánh lửa đời cũ góc đánh lửa
sớm của động cơ chỉ thay đổi phụ thuộc vào hai yếu tố: số vòng quay và tải của động cơ và
được điều chỉnh bằng hai thiết bị: bộ đánh lửa sớm ly tâm và bộ đánh sớm theo áp thấp của
động cơ. Như vậy, góc đánh lửa sớm trên động cơ chưa được tối ưu.
Ở hệ thống đánh lửa theo chương trình, góc đánh lửa sớm của động cơ thay đổi phụ
thuộc vào hàng loạt các yếu tố đã nêu, điều này làm tăng chất lượng cuả quá trình cháy và sẽ
làm cải thiện các chỉ số của động cơ như công suất, tính kinh tế và độ ô nhiễm môi trường.
Ở nước ta hiện nay, việc sử dụng các động cơ đời cũ vẫn còn rất phổ biến.Việc thay

thế các hệ thống đánh lửa hiện có, bằng một hệ thống đánh lửa theo chương trình có ý nghiã
hết sức thực tế trong việc tiết kiệm nhiên liệu và giảm ô nhiễm môi trường do khí thải từ ôtô
phát ra.
Các nghiên cưú về hệ thống đánh lửa theo chương trình sẽ là cơ sở để thiết kế bộ ECU
(Electronic control unit) điều khiển cả hai quá trình đánh lửa và phun xăng trên động cơ.
1.3
Tình hình nghiên cứu trong và ngoài nước
Từ những ưu điểm như đã trình bày ở trên hệ thống đánh lửa theo chương trình hiện đã
được nghiên cứu và ứng dụng phổ biến trên các động cơ xăng hiện đại (do nước ngoài chế
tạo).Các số liệu về góc đánh lửa sớm, góc ngậm điện …sử dụng trên các hệ thống đánh lửa
này chưa tương thích với điều kiện làm việc thực tế tại Việt Nam (khí hậu và tính đa dạng
1


trong chủng loại ôtô).Thêm vào đó số lượng ôtô tại Việt Nam sử dụng hệ thống đánh lửa chưa
được lập trình còn rất lớn.Tuy nhiên, tại nước ta các nghiên cứu thiết kế hệ thống đánh lửa
theo chương trình chưa được tiến hành. Điều này gây nhiều khó khăn cho nhóm thực hiện đề
tài trong việc khảo sát, thực nghiệm các thông số tối ưu cuả hệ thống.
1.4
Giới hạn đề tài:
Chỉ nghiên cứu chuyển đổi hệ thống đánh lửa bán dẫn có cơ cấu điều khiển góc đánh lửa
sớm kiểu cơ khí sang đánh lửa theo chương trình. Hệ thống đánh lửa theo chương trình được
thực hiện trên động cơ sử dụng hệ thống đánh lửa loại điện cảm, đồng thời các thực nghiệm
được tiến hành trên động cơ Honda (Accura Intergra), với các số liệu kỹ thuật như sau:
- Kiểu bố trí xupáp:
DOHC
- Thể tích xilanh:
1590cm3
- Công suất:
89KW (6400v/p)

- Thứ tự công tác:
1–3–4–2
- Áp suất nén:
10.0
Ngôn ngữ lập trình:Bascom. avr
1.5
Nội dung nghiên cứu
- Nghiên cứu cơ sở lý thuyết hệ thống đánh lửa.
- Xây dựng sơ đồ khối của hệ thống.
- Thực nghiệm lấy số liệu góc đánh lửa tối ưu của hệ thống (Động cơ Acura Intergra).
- Tính toán và thiết kế mạch.
- Lập trình cho mạch đièu khiển đánh lửa bằng ngôn ngữ Bascom.avr cho Atmega.8.
- Thí nghiệm sản phẩm trên trên động cơ – hiệu chỉnh các thông số.
- So sánh, đánh giá kết quả – Kết luận.

2


CHƯƠNG II
CƠ SỞ LÝ THUYẾT ĐIỀU KHIỂN
HỆ THỐNG ĐÁNH LỬA THEO CHƯƠNG TRÌNH
2.1 Lý thuyết hệ thống đánh lửa
Trong động cơ xăng 4 kỳ, hòa khí sau khi được đưa vào trong xylanh và được trộn đều
nhờ sự xoáy lốc của dòng khí sẽ được piston nén lại. Ở một thời điểm thích hợp cuối kỳ nén,
hệ thống đánh lửa sẽ cung cấp một tia lửa điện cao thế đốt cháy hòa khí và sinh công cho
động cơ. Để tạo được tia lửa điện giữa hai điện cực của bougie, quá trình đánh lửa được chia
làm ba giai đoạn: quá trình tăng trưởng của dòng sơ cấp hay còn gọi là quá trình tích lũy năng
lượng, quá trình ngắt dòng sơ cấp và quá trình xuất hiện tia lửa điện ở điện cực bougie.
Quá trình tăng trưởng dòng sơ cấp


SW

Đến bộ
Chia điện

Rf
L1

L2
Bô bin

R1

Accu
Cảm biến

T
IC đánh lửa

Hình 2.1: Sơ đồ nguyên lý hệ thống đánh lửa.

Trong sơ đồ của hệ thống đánh lửa trên:
Rf:
Điện trở phụ.
Điện trở của cuộn sơ cấp.
R1:
L1, L2: Độ tự cảm của cuộn sơ cấp và thứ cấp của bobine.
T: Transistor công suất được điều khiển nhờ tín hiệu từ cảm biến hoặc vít lửa.
R∑
L1

U
SW
Hình 2.2: Sơ đồ tương đương của mạch sơ cấp của hệ thống đánh lửa
Khi transistor công suất T dẫn, trong mạch sơ cấp sẽ có dòng điện i1 từ (+) accu đến Rf
→ L1 → T → mass. Dòng điện i1 tăng từ từ do sức điện động tự cảm sinh ra trên cuộn sơ cấp
L1 chống lại sự tăng của cường độ dòng điện. Ở giai đoạn này, mạch thứ cấp của hệ thống
đánh lửa gần như không ảnh hưởng đến quá trình tăng dòng ở mạch sơ cấp. Hiệu điện thế và
cường độ dòng điện xuất hiện ở mạch thứ cấp không đáng kể nên ta có thể coi như mạch thứ
3


cấp hở. Vì vậy, ở giai đoạn này ta có sơ đồ tương đương được trình bày trên hình 2-2. Trên sơ
đồ, giá trị điện trở trong của accu được bỏ qua, trong đó:
R∑ = R1 + Rf
U = Ua - Δ UT
Ua: Hiệu điện thế của accu.
Δ UT: Độ sụt áp trên transistor công suất ở trạng thái dẫn bão hòa hoặc độ sụt áp
trên vít lửa.
Từ sơ đồ( Hình 2-2), ta có thể thiết lập được phương trình vi phân sau:
di
i1 R∑ + L1 1 = U
dt

(2-1)

Giải phương trình vi phân (2-1) ta được:
i1 (t ) =

U
(1 − e −( R ∑ / L1 ) t )

R∑

Gọi τ1 = L1/R∑ là hằng số điện từ của mạch.
i1(t) = (U/R∑) (1 – e-t/t1)

(2-2)

Lấy đạo hàm (2-2) theo thời gian t, ta được tốc độ tăng trưởng của dòng sơ cấp (Hình 23). Như vậy, tốc độ tăng dòng sơ cấp phụ thuộc chủ yếu vào độ tự cảm L1.
di1
dt

di1 U −t / τ1
= e
dt L1

i (t)
I=

t =0

=

U
= tgα
L1

di1
dt

t =∞


=0

2

U
R

1
α

t

Hình 2.3: Quá trình tăng trưởng dòng sơ cấp i1.
Với bobine xe đời cũ với độ tự cảm lớn (đường 1), tốc độ tăng chậm hơn bobine xe đời
mới với độ tự cảm nhỏ (đường 2). Chính vì vậy, lửa sẽ yếu khi tốc độ càng cao. Trên các xe
đời mới, hiện tượng này được khắc phục nhờ sử dụng bobine có L1 nhỏ.
Đồ thị cho thấy độ tự cảm L1 của cuộc sơ cấp càng lớn thì tốc độ tăng trưởng dòng sơ
cấp i1 càng giảm.
Gọi tđ là thời gian transistor công suất dẫn thì cường độ dòng điện sơ cấp Ing tại thời
điểm đánh lửa khi transistor công suất ngắt là:
I ng =

U
(1 − e −tñ / τ1 )
R∑

(2-3)

Trong đó:

4


tđ = γđ.T = γđ.120/ (n.Z).

(2-3a)

T: Chu kỳ đánh lửa (s).
n: Số vòng quay trục khuỷu động cơ (min-1).
Z: Số xylanh của động cơ.
γđ: Thời gian tích lũy năng lượng tương đối.
Trên các xe đời cũ, tỷ lệ thời gian tích lũy năng lượng γđ = 2/3, còn ở các xe đời mới
nhờ cơ cấu hiệu chỉnh thời gian tích lũy năng lượng (góc ngậm) nên γđ < 2/3.

⇒ I ng

γñ
U
=
(1 − e
R∑

−120 1
.
nZ τ 1

).

(2-4)


Từ biểu thức (2-4), ta thấy Ing phụ thuộc vào tổng trở của mạch sơ cấp (R∑), độ tự cảm của
cuộn sơ cấp (L1), số vòng quay trục khuỷu động cơ (n), và số xylanh (Z). Nếu R∑, L1, Z không
đổi thì khi tăng số vòng quay trục khuỷu động cơ (n), cường độ dòng điện Ing sẽ giảm.
Tại thời điểm đánh lửa, năng lượng đã được tích lũy trong cuộn dây sơ cấp dưới dạng từ
trường:
I ng2 .L L1 U 2
Wñt =
=
× 2 (1 − e tñ / τ 1 ) 2
2
2 R∑

L1 .U 2 L1 U 2
Wñt =
= × 2 (1 − 2e −a + e −2 a )
2
2 R∑
2 R∑

(2-5)

Trong đó:
Wđt: Năng lượng tích lũy trong cuộn sơ cấp.
R
t
a = ñ = ∑ tñ
τ 1 L1
Hàm Wđt = f(a) đạt được giá trị cực đại, tức nhận được năng lượng từ hệ thống cấp điện
nhiều nhất khi:
a=


R∑
t ñ = 1,256
L1

(2-6)

Đối với hệ thống đánh lửa thường và hệ thống đánh lửa bán dẫn loại không có mạch hiệu
chỉnh thời gian tích lũy năng lượng tđ, điều kiện (2-6) không thể thực hiện được vì tđ là giá trị
thay đổi phụ thuộc vào tốc độ n của động cơ (2-3a). Sau khi đạt được giá trị U/R∑ , dòng điện
qua cuộn sơ cấp sẽ gây tiêu phí năng lượng vô ích, tỏa nhiệt trên cuộn sơ cấp và điện trở phụ.
Trên các xe đời mới, nhược điểm trên được loại trừ nhờ mạch hiệu chỉnh thời gian tích lũy
năng lượng tđ (Dwell Control).
Lượng nhiệt tỏa ra trên cuộn sơ cấp của bobine Wn được xác định bởi công thức sau:
td

Wn = ∫ i 21 .R1 .dt
0



U2
Wn = ∫ 2 R1 (1 − 2e −t / τ 1 + e − 2t / τ 1 )dt
R∑
0

[

Wn =


U2
R1 t ñ + 2τ 1 (1 − e −2t / τ1 ) + (τ 1 / 2)(1 − e −2τ / t1 )
2
R∑

Wn =

U2
R1 (t + 2τ 1e −t / τ1 − (τ 1 / 2)e − 2t / τ1
R∑2

td
u

]

td
0

(2-7)

5


Công suất tỏa nhiệt Pn trên cuộn dây sơ cấp của bobine:
t

1 ñ
Pn = ∫ i12 R1dt
T 0


τ
τ
U 2 ⎡ tñ

R1 ⎢ − 2 1 (1 − e −tñ / τ1 ) + 1 (1 − e − 2tñ / τ1 )⎥
(2-8)
2
T
2T
R∑ ⎣ T

Khi công tắc máy ở vị trí ON mà động cơ không hoạt động, công suất tỏa nhiệt trên
bobine là lớn nhất:
U2
Pn max ≈ 2 R1
R∑
Pn =

Thực tế khi thiết kế, Pnmax phải nhỏ hơn 30 W để tránh tình trạng nóng bobine. Vì nếu
Pnmax ≥ 30W, nhiệt lượng sinh ra trên cuộn sơ cấp lớn hơn nhiệt lượng tiêu tán.
Trong thời gian tích lũy năng lượng, trên cuộn thứ cấp cũng xuất hiện một sức điện động
tương đối nhỏ, chỉ xấp xỉ 1.000 V.
e2 = K bb L1

di1
dt

Trong đó:
e2: Sức điện động trên cuộn thứ cấp.

Kbb: Hệ số biến áp của bobine.
Sức điện động này bằng 0 khi dòng điện sơ cấp đạt giá trị U/R∑.
Quá trình ngắt dòng sơ cấp

Khi transistor công suất ngắt, dòng điện sơ cấp và từ thông do nó sinh ra giảm đột ngột.
Trên cuộn thứ cấp của bobine sẽ sinh ra một hiệu điện thế vào khoảng từ 15 KV ÷ 40 KV. Giá
trị của hiệu điện thế thứ cấp phụ thuộc vào rất nhiều thông số của mạch sơ cấp và thứ cấp. Để
tính toán hiệu điện thế thứ cấp cực đại, ta sử dụng sơ đồ tương đương được trình bày trên
(hình 2.4)
Trong sơ đồ này:
Rm: Điện trở mất mát.
Rr: Điện trở rò qua điện cực bougie.

R2

R∑
S

I1
C1

L1

L2

Rr

L2
Rm


C2

Bougie

Hình 2.4: Sơ đồ tương đương của hệ thống đánh lửa

Bỏ qua hiệu điện thế accu vì hiệu điện thế accu rất nhỏ so với hiệu điện thế xuất hiện trên
cuộn sơ cấp lúc transistor công suất ngắt. Ta xét trường hợp không tải, có nghĩa là dây cao áp
được tách ra khỏi bougie. Tại thời điểm transistor công suất ngắt, năng lượng từ trường tích
lũy trong cuộn sơ cấp của bobine được chuyển thành năng lượng điện trường chứa trên tụ
điện C1 và C2 và một phần mất mát. Để xác định hiệu điện thế thứ cấp cực đại U2m ta lập
phương trình cân bằng năng lượng lúc transistor công suất ngắt:

I ng2 .L1
2

=

C1 .U 12m C 2 .U 22m
+
+A
2
2
6


Trong đó:
C1: Điện dung của tụ điện mắc song song với vít lửa hoặc transistor công suất.
C2: Điện dung ký sinh trên mạch thứ cấp.
U1m, U2m: Hiệu điện thế trên mạch sơ cấp và thứ cấp lúc transistor công suất

ngắt.
A: Năng lượng mất mát do dòng rò, dòng fucô trong lõi thép của bobine
U2m = Kbb . U1m
Kbb = W2/W1: Hệ số biến áp của bobine.
W1, W2: Số vòng dây của cuộn sơ cấp và thứ cấp.
⇒ I ng2 .L1 = C1 +

.U 22m
+ C 2 .U 22m
2
K bb

⎛ C

U 22m × ⎜⎜ 12 + C 2 ⎟⎟ = I ng2 .L1
⎝ K bb

U 2 m = K bb I ng

U 2 m = K bb

U 2 m = K bb

L1

C1 + K bb2 .C 2
2
L1 .I ng

C1 + K bb2 .C 2




2Wdt

C1 + K bb2 .C 2

(2-9)

η: Hệ số tính đến sự mất mát trong mạch dao động, η = 0,7 ÷ 0,8.

7


Ing

i1, A
U
R


t

Uđl

U2m

u2m

t

Hình 2.5: Qui luật biến đổi của dòng điện sơ cấp i1 và
hiệu điện thế thứ cấp u2m

Qui luật biến đổi dòng điện sơ cấp i1 và hiệu điện thế thứ cấp u2m được biểu diễn trên hình
2-5.
Khi transistor công suất ngắt, cuộn sơ cấp sẽ sinh ra một sức điện động khoảng 100 –
300V.
Quá trình phóng điện ở điện cực bougie
Khi điện áp thứ cấp u2 đạt đến giá trị Uđl, tia lửa điện cao thế sẽ xuất hiện giữa hai điện
cực của bougie. Bằng thí nghiệm người ta chứng minh được rằng tia lửa xuất hiện ở điện cực
bougie gồm hai thành phần là thành phần điện dung và thành phần điện cảm.

Thành phần điện dung của tia lửa do năng lượng tích lũy trên mạch thứ cấp được qui ước
bởi điện dung ký sinh C2. Tia lửa điện dung được đặc trưng bởi sự sụt áp và tăng dòng đột
ngột. Dòng có thể đạt vài chục Amper .

8


U2m (KV)
20

U2 m

Uñl

12
1

Iñc

l 2, A
300
Iñl
t
a

t
b

a. Thời gian tia lửa điện dung.
b. Thời gian tia lửa điện cảm.
Hình 2.6: Qui luật biến đổi hiệu điện thế thứ cấp U2m và cường độ
dòng điện thứ cấp i2 khi transistor công suất ngắt.
Mặc dù năng lượng không lớn lắm (C2.U2dl)/2 nhưng công suất phát ra bởi thành phần
điện dung của tia lửa nhờ thời gian rất ngắn (1μs) nên có thể đạt hàng chục, có khi tới hàng
trăm KW. Tia lửa điện dung có màu xanh sáng kèm theo tiếng nổ lách tách đặc trưng.
Dao động với tần số cao (106 ÷ 107Hz) và dòng lớn, tia lửa điện dung gây nhiễu vô tuyến
và mài mòn điện cực bougie. Để giải quyết vấn đề vừa nêu, trên mạch thứ cấp (như nắp delco,
mỏ quẹt, dây cao áp) thường được mắc thêm các điện trở. Trong các ôtô đời mới, người ta
dùng dây cao áp có lõi bằng than để tăng điện trở.
Do tia lửa xuất hiện trước khi hiệu điện thế thứ cấp đạt giá trị U2m nên năng lượng của tia
lửa điện dung chỉ là một phần nhỏ của năng lượng phóng qua bougie. Phần năng lượng còn lại
sẽ hình thành tia lửa điện cảm. Dòng qua bougie lúc này chỉ vào khoảng 20 ÷ 40 mA. Hiệu
điện thế giữa hai cực bougie giảm nhanh đến giá trị 400 ÷ 500 V. Thời gian kéo dài của tia lửa
điện cảm gấp 100 đến 1.000 lần thời gian tia lửa điện dung và thời gian này phụ thuộc vào
loại bobine, he hở bougie và chế độ làm việc của động cơ. Thường thì thời gian tia lửa điện
cảm vào khoảng 1 đến 1,5 ms. Tia lửa điện cảm có màu vàng tím, còn được gọi là đuôi lửa.
Trong thời gian xuất hiện tia lửa điện, năng lượng tia lửa Wp được tính bởi công thức:
tp


W p = ∫ U ñl i2 (t ) dt
0

tp: Thời gian xuất hiện tia lửa điện trên điện cực bougie.
Trên thực tế, ta có thể sử dụng công thức gần đúng:
Wp ≈ 0,5 . IPtb. UPtb. tPtb
Trong đó: IPtb, UPtb và tPtb lần lượt là cường độ dòng điện trung bình, hiệu điện thế trung
bình và thời gian xuất hiện tia lửa trung bình giữa hai điện cực của bougie.

9


Kết quả tính toán và thực nghiệm cho thấy rằng, ở tốc độ thấp của động cơ, Wp có giá trị
khoảng 20 ÷ 50 mJ.
2.2 Điều khiển đánh lửa theo chương trình
2.2.1 Cơ bản về đánh lửa điều khiển theo chương trình
Trên các ô tô hiện đại, kỹ thuật số đã được áp dụng vào trong HTĐL từ nhiều năm nay.
Việc điều khiển góc đánh lửa sớm và góc ngậm điện (dwell angle) sẽ được máy tính đảm
nhận. Các thông số như tốc độ động cơ, tải, nhiệt độ được các cảm biến mã hóa tín hiệu đưa
vào ECU (Electronic Control Unit) xử lý và tính toán để đưa ra góc đánh lửa sớm tối ưu theo
từng chế độ hoạt động của động cơ. Các bộ phận như bộ đánh lửa sớm kiểu cơ khí (áp thấp,
ly tâm) đã được loại bỏ hoàn toàn. HTĐL với cơ cấu điều khiển góc đánh lửa sớm bằng điện
tử (ESA-Electronic Spark Advance) được chia làm 2 loại sau:
• Hệ thống đánh lửa sử dụng bộ vi xử lý (Microprocessor ignition system).
• Hệ thống đánh lửa sử dụng bộ vi xử lý kết hợp với hệ thống phun xăng (Motronic).
Nếu phân loại theo cấu tạo ta có:
• Hệ thống đánh lửa theo chương trình có delco
• Hệ thống đánh lửa theo chương trình không có delco (đánh lửa trực tiếp).
So với các hệ thống đánh lửa trước đó, HTĐL với cơ cấu điều khiển góc đánh lửa sớm bằng
điện tử có những ưu điểm sau:

• Góc đánh lửa sớm được điều chỉnh tối ưu cho từng chế độ hoạt động của động cơ.
• Góc ngậm điện luôn luôn được điều chỉnh theo tốc độ động cơ và theo hiệu điện thế
accu, bảo đảm điện áp thứ cấp có giá trị cao ở mọi thời điểm.
• Động cơ khởi động dễ dàng, cầm chừng êm dịu, tiết kiệm nhiên liệu và giảm độc hại
của khí thải.
• Công suất và đặc tính động học của động cơ được cải thiện rõ rệt.
• Có khả năng điều khiển chống kích nổ cho động cơ.
• Ít bị hư hỏng, có tuổi thọ cao và không cần bảo dưỡng.
Với những ưu điểm nổi bật như vậy, ngày nay hệ thống đánh lửa với cơ cấu điều khiển
góc đánh lửa sớm bằng điện tử đã thay thế hoàn toàn hệ thống đánh lửa bán dẫn thông
thường, giải quyết các yêu cầu ngày càng cao về độ độc hại của khí thải.

Để có thể xác định chính xác thời điểm đánh lửa cho từng xylanh của động cơ theo thứ tự
thì nổ, ECU cần phải nhận được các tín hiệu cần thiết như tốc độ động cơ, vị trí cốt máy (vị trí
piston), lượng gió nạp, nhiệt độ động cơ… Số tín hiệu vào càng nhiều thì việc xác định góc
đánh lửa sớm tối ưu càng chính xác. Sơ đồ HTĐL với cơ cấu điều khiển góc đánh lửa sớm
bằng điện tử có thể chia thành ba phần: tín hiệu vào (Input signals), ECU và tín hiệu từ ECU
ra điều khiển ingiter (output signals).
1.
2.
3.
4.
5.
6.
7.

Tín hiệu tốc độ động cơ (NE).
Tín hiệu vị trí cốt máy (G).
Tín hiệu tải.
Tín hiệu từ cảm biến vị trí cánh bướm ga.

Tín hiệu nhiệt độ nước làm mát.
Tín hiệu điện áp accu.
Tín hiệu kích nổ.

10


Đến Bộ
chia điện

Igniter
2

Bobine

3
ECU
IG/SW

4
5

Accu

6
7

Hình 2.7: Sơ đồ khối HTĐL với cơ cấu điều khiển
góc đánh lửa sớm bằng điện tử
Ngoài ra còn có thể có các tín hiệu vào từ cảm biến nhiệt độ khí nạp, cảm biến tốc độ xe,

cảm biến ôxy. Sau khi nhận tín hiệu từ các cảm biến ECU sẽ xử lý và đưa ra xung đến igniter
để điều khiển đánh lửa. Hình 2.8 mô tả vị trí của các cảm biến trên động cơ.
IDL

Throttle position sensor

Air flow meter

VG
ECU

PIM
Manifold
pressure
sensor

KNK
G
IGF

Ignition coil
with igniter

THW

NE

Camshaft
position
sensor


OX1A

Oxygen
sensor
No.1
Water
temperature sensor

Crankshaft position sensor

Knock sensor

Distributor

Hình 2.8: Cấu tạo của HTĐL với cơ cấu điều khiển góc đánh lửa
sớm bằng điện tử

Trong các loại tín hiệu ngõ vào, tín hiệu tốc độ động cơ, vị trí piston (cốt máy) và tín hiệu
tải là các tín hiệu quan trọng nhất. Để xác định tốc độ động cơ, người ta có thể đặt cảm biến
11


trên một vành răng ở đầu cốt máy, bánh đà, đầu cốt cam hoặc delco. Có thể sử dụng cảm biến
Hall, cảm biến điện từ, cảm biến quang. Số răng trên các vành răng khác nhau tuỳ thuộc loại
cảm biến và tuỳ thuộc loại động cơ. Trong một số trường hợp, chỉ sử dụng một vòng răng để
dùng chung cho việc xác định tốc độ động cơ và vị trí cốt máy.
Để xác định tải của động cơ, ECU dựa vào tín hiệu áp suất trên đường ống nạp hoặc tín
hiệu lượng khí nạp. Do sự thay đổi về áp suất trên đường ống nạp khi thay đổi tải, tín hiệu
điện áp gởi về ECU sẽ thay đổi và ECU nhận tín hiệu này để xử lý và quy ra mức tải tương

ứng để xác định góc đánh lửa sớm.

θ(độ)

θ(độ)

1

1
2

2

n(min)-1

ρ(áp thấp)

1. Đặc tính đánh lửa sớm bằng điện tử
2. Đặc tính đánh lửa sớm hiệu chỉnh bằng cơ khí
Hình 2.9: So sánh đặc tuyến điều chỉnh góc đánh lửa sớm
kiểu cơ khí và điện tử
Trong các hệ thống đánh lửa trước đây, việc hiệu chỉnh góc đánh lửa sớm được thực
hiện bằng phương pháp cơ khí với cơ cấu ly tâm và áp thấp. Đường đặc tính đánh lửa sớm tối
ưu rất đơn giản và không chính xác. Trong khi đó, đường đặc tính đánh lửa lý tưởng được xác
định bằng thực nghiệm rất phức tạp và phụ thuộc vào nhiều thông số. Đồ thị (hình 2.9) mô tả
sự sai lệch giữa 2 kiểu điều khiển góc đánh lửa sớm bằng điện tử và cơ khí. Đối với HTĐL với
cơ cấu điều khiển góc đánh lửa sớm bằng điện tử, góc đánh lửa sớm được hiệu chỉnh gần sát
với đặc tính lý tưởng. Kết hợp hai đặc tính đánh lửa sớm theo tốc độ và theo tải có bản đồ góc
đánh lửa sớm lý tưởng (Hình 2.10) với khoảng 1000 đến 4000 điểm đánh lửa sớm được chọn
lựa đưa vào bộ nhớ.


Hình 2.10: Bản đồ góc đánh lửa sớm lý tưởng

12


Hình 2.11: Bản đồ góc ngậm điện
Một chức năng khác của ECU trong việc điều kiển đánh lửa là sự điều chỉnh góc ngậm
điện (dwell angle control). Góc ngậm điện phụ thuộc vào hai thông số là hiệu điện thế accu và
tốc độ động cơ. Khi khởi động chẳng hạn, hiệu điện thế accu bị giảm do sụt áp, vì vậy, ECU
sẽ điều khiển tăng thời gian ngậm điện nhằm mục đích tăng dòng điện trong cuộn sơ cấp. Ở
tốc độ thấp, do thời gian tích luỹ năng lượng quá dài (góc ngậm điện lớn) gây lãng phí năng
lượng nên ECU sẽ điều khiển xén bớt xung điện áp điều khiển để giảm thời gian ngậm điện
nhằm mục đính tiết kiệm năng lượng và tránh nóng bobine. Trong trường hợp dòng sơ cấp
vẫn tăng cao hơn giá trị ấn định, bộ phận hạn chế dòng sẽ làm việc và giữ cho dòng điện sơ
cấp không thay đổi cho đến thời điểm đánh lửa.
Một điểm cần lưu ý là việc điều chỉnh góc ngậm điện có thể được thực hiện trong ECU
hay ở igniter. Vì vậy, igniter của hai loại có và không có bộ phận điều chỉnh góc ngậm điện
không thể lắp lẫn.

13


CHƯƠNG 3
TỔNG QUAN VỀ VI ĐIỀU KHIỂN ATMEGA8
Atmega8 là bộ vi xử RISC với kiến trúc Harvard thuộc họ AVR được sản xuất bởi Cty
ATMEL với tính năng mạnh mẽ. Có 130 lệnh mạnh xử lý hầu hết trong một chu kỳ xung
nhịp. Có 8Kbyte bộ nhớ flash có thể xóa lập trình được và có thể chịu được 10000 lần ghi
xóa. Có 32 thanh ghi đa năng 8 bit, 512 byte bộ nhớ EEPROM tích hợp trên chíp, có 1 kbyte
SRAM nội. Có hai bộ Timer/counter 8 bit và một bộ timer/counter 16 bit với bộ chia tần lập

trình được. Có ba kênh điều xung, 6 kênh lối vào chuyển đổi ADC với độ phân giải 10 bit.
Atmega8 có 28 chân, trong đó có 23 cổng vào ra. Nguồn nuôi từ 2.7 đến 5.5 đối với
Atmega8L và từ 4.5 đến 5.5 đối với Atmega8, làm việc tiêu thụ dòng 3.6mA. Sử dụng mạch
dao động ngoài từ 0 đến 8 Mhz với Atmega8L và từ 0 đến 16 Mhz với Atmega8. Ngoài ra
chíp Atmega8 còn có bộ xung nội bên trong có thể lập trình chế độ xung nhịp.

Hình 3.1 Sơ đồ chân của Atmega8
3.1 Chức năng các chân



• VCC : Điện áp nguồn nuôi
• GND: Chân nối mass
• AREF: Chân mức ngưỡng chuẩn trên của bộ ADC
• AVCC: Chân cấp nguồn cho bộ analog
PortB (PB7…PB0)

Cổng B là cổng vào ra 8 bit lập trình được. Các chân của cổng có điện trở pull-up được lựa
chọn cho mỗi bit. Các chân của cổng B cho dòng 20mA đi qua và có thể kích trực tiếp led
hiển thị. PB6, PB7 (XTAL1/XTAL2) là hai ngõ vào của bộ cộng hưởng dao động từ bên
ngoài. Chúng ta có thể sử dụng tụ thạch anh bên ngoài để làm bộ dao động dữ nhịp. PB5,
PB4, PB3 lần lượt là các chân SCK, MISO, MOSI của bộ giao tiếp ISP. Khi được lập trình thì
PB3 là chân điều xung của bộ Timer/Counter2, PB2 và PB1 là hai chân điều xung của bộ
Timer/counter1 (OC1A và OC1A). Tương tự khi được lập trình thì PB0 là chân CAPTURER.
Sau khi được reset, các chân của cổng B được nối lên điện trở Pull-up.
• PortC (PC6 … PC0)
Cổng C là cổng vào ra 8 bit lập trình được. Các chân của cổng có điện trở pull-up được lựa
chọn cho mỗi bit. Các chân của cổng C cho dòng 20mA đi qua và có thể kích trực tiếp led
14



hiển thị. Ngoài ra khi được lập trình thì các chân này còn là các lối vào đặc biệt. PC6 là chân
reset, khi chân này được nối xuống mass thì hệ thống được reset. PC0 … PC5 là các lối vào
của 5 kênh ADC bên trong chip.
• PortD (PD6 … PD0)
Cổng D là cổng vào ra 8 bit lập trình được, Các chân của cổng có điện trở pull-up được lựa
chọn cho mỗi bit. Các chân của cổng D cho dòng 20mA đi qua và có thể kích trực tiếp led
hiển thị. Ngoài ra cổng D còn là những chân mang chức năng đặc biệt của vi điều khiển. PD7,
PD6 lần lượt là các chân AIN0, AIN1; là lối vào dương và lối vào âm của bộ so sánh tương tự
có sẵn trên chip. PD5 (T1) là lối vào của bộ Timer/counter1, PD4(T0) là lối vào của bộ
Timer/counter0. PD3, PD2 lần lượt là hai chân INT1, INT0: là hai ngõ vào của nguồn ngắt
ngoài. PD0, PD1 là hai chân RXD, TXD: là chân đọc, ghi của cổng nối tiếp.
3.2 Cấu trúc phần cứng
3.2.1 Sơ đồ khối của khối MCU

Hình 3.2 Sơ đồ khối xử lý
3.2.2 Cấu trúc bộ nhớ:
Không gian bộ nhớ của bộ nhớ chương trình gồm 8Kbyte và có địa chỉ đánh từ 0000h tới
FFFFh. Bộ nhớ dữ liệu gồm hai phần: bộ nhớ RAM và bộ nhớ EEPROM trong đó không gian
bộ nhớ RAM lại chia làm 3 phần: Các thanh ghi chức năng chung, các thanh ghi vào ra và
cuối cùng là 512 byte bộ nhớ SRAM. Bộ nhớ EEPROM mặc dù cũng là một phần của bộ nhớ
dữ liệu nhưng lại hoàn toàn đứng độc lập như một bộ nhớ độc lập và cũng được định địa chỉ
riêng.
3.2.3 Tệp thanh ghi:
Atmega8 có 32 thanh ghi đa năng được đánh số từ R0 đến R31. Tệp thanh ghi được chia làm
2 phần, mỗi phần gồm 16 thanh ghi là R0 đến R15 và từ R16 đến R31. Tất cả các lệnh đều có
15


thể truy cập đến các thanh ghi trong một chu kỳ xung nhịp. Nhưng có một số lệnh chỉ thực thi

trên các thanh ghi từ 16 dến 31. Sáu thanh ghi cuối cùng từ R26 đến R31 hợp lại thành con trỏ
như là một thanh ghi 16 bit sử dụng cho các lệnh gián tiếp. Thanh ghi R0 sử dụng các lệnh
gián tiếp truy nhập lên bộ nhớ và bảng dữ liệu.

Hình 3.3 Cấu trúc tệp thanh ghi
Thanh ghi trạng thái SREG

Bit 7-I bít cho phép ngắt toàn cục. Khi I=1 cho phép tất cả các ngắt. I = 0 cấm tất cả các
ngắt.
Bit 6-T được sử dụng với lệnh nạp bit BLD và lưu trữ bit BST để nạp và ghi các bit từ một
thanh ghi vào một thanh ghi khác.
Bit 5-H cờ mang sang một nửa.
Bit 4-S cờ dấu
Bit 3-V cờ tràn lấy bù nhị phân
Bít 2-N cờ phủ định
Bit 1-Z cờ bằng không
Bit 0-C cờ mang sang
Thanh ghi con trỏ ngăn xếp SP

Là thanh ghi 16 bit bao gồm hai thanh ghi 8 bit là SPH và SPL. Được sử dụng để lưu trữ giá
trị địa chỉ chương trình khi chương trình gọi thủ tục ngắt hay một thủ tục gọi chương trình
con.

16


Thanh ghi điều khiển toàn bộ vi điều khiển MCUCR

Bit 7-SE (Sleep enable) Cho phép ngủ, khi SE = 1 cho phép bộ vi xử lý chuyển sang chế độ
ngủ. Sau khi đặt bit này thì chương trình cần thực thi lệnh Sleep.

Bit 6..4-SM2..0 tổ hợp bit chọn chế độ ngủ.
Bit 3..0-ISC11..ISC00 bit chọn độ nhạy cảm ngắt INT1 và INT0
ISC11 ISC10 ISC01 ISC10 Tín hiệu ngắt
0
0
0
Mức thấp trên chân INT
0
0
1
1

1
0
1

0
1
1

1
0
1

Sự thay đổi mức trên chân INT
Sườn âm trên chân INT
Sườn dương trên chân INT

Thanh ghi điều khiển Timer/counter0 TCCR0


Bit 2..0-CS02..CS00 tổ hợp bit chọn chế đô hoạt động cho timer/counter0
Ta có bảmg chế độ chia xung sau
CS02
CS01
CS00
Chế độ xung Clock
0
0
0
Dừng timer/counter0
0
0
1
Không chia tần số
0
1
0
CK/8
0
1
1
CK/64
1
0
0
CK/256
1
0
1
CK/1024

1
1
0
Chân T0 sườn âm
1
1
1
Chân T0 sườn dương
Thanh ghi dữ liệu Timer/counter0 TCNT0

Là thanh ghi 8 bit dùng để lưu giá trị cho timer0 và đọc giá trị của timer0
Thanh ghi điều khiển Timer/counter1A TCCR1A

Bit 7 .. 4 – COM1A1, COM1A0,COM1B1, COM1B0 Là các bit chọn mode điều
khiển tác động lối ra trên kênh A và B của bộ sao sánh timer1 ( OC1A và OC1B ).
Các chế độ lựa chọn điều chế chân ra khi các chân OC1A và OC1B được kết nối như
sau
Chế độ so sánh không điều xung ( non PMW )
COM1A1
COM1B1
0
0

COM1A0
COM1B0
0
1

Tác động lối ra
OC1A, OC1B không kết nối

Đảo chân OC1A, OC1B
17


1
1

0
1

Xóa chân OC1A, OC1B
Đặt chân OC1A, OC1B

Bit 3 .. 2 – FOC1A, FOC1B (Force Output Compare) Là bit điều khiển bắt, so sánh lối ra
cho chân OC1A, OC1B.
Bit 1 .. 0 – WGM11, WGM10 ( Waveform Generation Mode) Là hai bit lựa chon mode điều
khiển chế đô hoạt động cho bộ so sánh lối ra Timer1, các chế độ điều xung.
Thanh ghi điều khiển bộ Timer/counter1B TCCR1B

Bit 7 – ICNC1: bit điều khiển chống nhiễu cho chân capture. Khi bit này được set =1, sự tác
động trên chân ICP1 được lọc nhiễu. Mỗi sự thay đổi trên chân ICP1 sau 4 chu kỳ xung nhịp
mà không có sự thay đổi nào thì mới xác nhận. khi xóa bit này thì chế độ lọc nhiễu được gỡ
bỏ.
Bit 6 – ICES1 : Là bit chọn sườn âm hay dương cho chân capture. Khi bit này đuợc set = 1,
Sườn dương trên chân capture làm nguồn kích chế độ capture. Khi bit này được xóa, cạnh âm
trên chân ICP1 sẽ là nguồn kích.
Bit 4..3 – WGM13, WGM12 là hai bit kết hợp với WGM10..11, COM1A1..0,COM1B1..0
chọn chế độ hoạt động cho bộ so sánh lối ra và lối vào của Timer/counter1.
Các chế độ hoạt động khi chọn các bit này như sau:
Chế độ so sánh điều xung với mode Fast PMW

COM1A1
COM1B1
0

COM1A0
COM1B0
0

0

1

1

0

1

1

Tác động lối ra
OC1A, OC1B không kết nối
WGM13..10 = 15 : đảo chân OC1A,
OC1B không kết nối.
Xóa chân OC1A, OC1B khi so sánh
khớp và xóa OC1A, OC1B khi timer
tràn
Đặt chân OC1A, OC1B khi so sánh
thấy khớp và xóa chúng khi timer
tràn


Chế độ điều xung đảo pha kết nối
COM1A1
COM1B1
0

COM1A0
COM1B0
0

Tác động lối ra

OC1A, OC1B không kết nối
WGM13..10 = 9 hay 14: đảo chân
0
1
OC1A khi so sánh thấy khớp. OC1B
không kết nối
Xóa chân OC1A, OC1B khi so sánh
1
0
thấy khớp trong khi dếm lên và xóa
chung khi đếm xuống thấy khớp
1
1
Đặt chân OC1A, OC1B
Bit 2 .. 0 – CS12 .. 10: Tổ hợp bit chọn chế độ chia xung cho bộ Timer1
18



Ta có các chế độ chia xung sau:
CS12
0
0
0
0
1
1
1
1

CS11
0
0
1
1
0
0
1
1

CS10
0
1
0
1
0
1
0
1


Chế độ xung Clock
Dừng timer/counter0
Không chia tần số
CK/8
CK/64
CK/256
CK/1024
Chân T0 sườn âm
Chân T0 sườn dương

Thanh ghi dữ liệu timer/counter1 TCNT1

Là thanh ghi 16 bit chỉ đọc, ghi dữ liệu của bộ timer/counter1 và được chia làm 2 thanh ghi
8 bit: TCNT1H và TCNT1L. Để đảm bảo hai thanh ghi này được ghi và đọc đồng thời khi
khối CPU truy cập thanh ghi này, việc truy cập được thực hiện bằng cách sử dụng một thanh
ghi tạm thời 8 bit (TERM). Thanh ghi này cũng được sử dụng khi truy cập lên thanh ghi
OCR1A, OCR1B vì thế khi chương trình con và chương trình chính sử dụng thanh ghi này để
truy cập thanh ghi dữ liệu thì các ngắt sẽ bị cấm. Khi ghi dữ liệu lên thì chúng ta cần ghi vào
byte cao trước sau đó mới ghi vào byte thấp. Khi đọc dữ liệu thì ta cần phải đọc byte thấp
trước sau đó mới đọc byte cao bời vì sau khi đọc byte cao thì dữ liệu được upload lên byte
thấp.
Thanh ghi so sánh lối ra bộ Timer/counter1: OCR1A, OCR1B

Là một thanh ghi, đọc 16 bit chứa dữ liệu cần được so sánh với Timer/counter1. Diễn biến
của những lần so sánh được chỉ định trên thanh ghi điều khiển và tình trạng của
Timer/counter. Cũng như thanh ghi dữ liệu TCNT1, thanh ghi OCR1A và OCR1B được truy
cập nhờ thanh ghi tạm thời 8 bit (TEAM). Vì thế khi chương trình con và chương trình chính
sử dụng thanh ghi này để truy cập thanh ghi dữ liệu thì các ngắt sẽ bị cấm. Khi ghi dữ liệu lên
thì chúng ta cần ghi vào byte cao trước sau đó mới ghi vào byte thấp. Khi đọc dữ liệu thì ta

cần phải đọc byte thấp trước sau đó mới đọc byte cao.
Thanh ghi INPUT CAPTURE

Là một thanh ghi 16 bit chỉ đọc. Khi sườn âm hay sườn dương trên chân ICP1 được phát hiện
theo chúng ta đã lập trình trước đó. Giá trị hiện thời của bộ Timer/counter1 được truyền đến
thanh ghi này đồng thời cờ ICF cũng được đặt thành 1. Bởi vì thanh ghi ICR1 là thanh ghi 16
19


bit nên một thanh ghi tạm thời TEMP được huy động để đảm bảo thanh ghi này được đọc trọn
vẹn. Khi CPU đọc byte thấp(low) ICR1L, dữ liệu được gửi đến CPU và dữ liệu byte cao được
gửi đến thanh ghi TEAM. Khi CPU đọc byte cao(high) ICR1H, khối CPU nhận dữ liệu trong
thanh ghi TEAM nên uốn đọc trọn vẹn thanh ghi này thì phải đọc ICR1L trước sau đó mới
đọc ICR1H. Khi chương trình con và chương trình chính sử dụng thanh ghi TEAM để truy
cập thanh ghi ICR1 thì các ngắt sẽ bị cấm. Và các ngắt sẽ được cho phép lại sau đó.
Thanh ghi địa chỉ bộ nhớ EEPROM : EEARH/L

Là thanh ghi 16 bit chia làm hai byte là byte thấp ( EEARL) và byte cao (EEARH)
Bit 15 .. 9 là bit dự trữ. Trong Atmega8 thì 7 bit này luôn dược ghi giá trị = 0
Bit 8 .. 0 là bit địa chỉ của bộ nhớ EEPROM với địa chỉ tương ứng từ byte 0 đến byte
512 tích hợp sẵn trong chip.
Thanh ghi dữ liệu EEPROM : EEDR

Là thanh ghi có độ rộng 8 bit chứa dữ liệu vào, ra cho bộ nhớ EEPROM khi chúng ta truy
nhập bộ nhớ này.
Thanh ghi điều khiển EEPROM : EECR

Là thanh ghi 8 bit trong đó:
Bit 7 .. 4 trong Atmega8 chưa sử dụng để và luôn được ghi giá trị = 0
Bit 3 – EERIE : Là bit cho phép ngắt đọc EEPROM. Khi bit này được set = 1 thì sau

khi đọc xong dữ liệu từ bộ nhớ EEPROM chương trình sẽ nhảy tới địa chỉ ngắt tương ứng khi
bit I được set = 1 .
Bit 2 – EEMWE : Bit cho phép ghi chung, khi bit này được đặt = 1 thì chương trình
cho phép ghi bộ nhớ EEPROM
Bit 1 – EEWE : Bit cho phép ghi EEPROM bằng chương trình trong chip. Khi bit này
được đặt thì chip cho phép ghi vào bộ nhớ EEPROM từ dữ liệu ở trong RAM nội.
Bit 0 – EERE : bit cho phép đọc bộ nhớ EEPROM, khi bit này được set thì chương
trình cho phép đọc bộ nhớ EEPROM.
Thanh ghi lựa chọn ADC: ADMUX

Bit 7 .. 6 – REFS1 .. 0 : Bit lựa chọn ngưỡng điện áp chuẩn cho bộ ADC. Chế độ lựa
chọn nguồn điện áp chuẩn được liệt kê như sau:
REFS1
REFS0
Điện áp chuẩn lựa chọn
0
0
AREF, điện áp chuẩn từ bên trong Vref tắt
0
1
AVcc với tụ điện bên ngoài mắc trên chân AREF
1
0
Dự trữ
1
1
Điện áp chuẩn bên trong 2.55 V với tụ điện mắc trên
chân AREF
20



Bit 5 – ADLAR: là bit lựa chọn kiểu ghi dữ liệu. Nếu bit này dược set thì dữ liệu dược ghi
đầy vào byte cao (ADCH) và khi bit này bị xóa thì dữ liệu sẽ ghi đầy vào byte thấp(ADCL)
Bit 3 .. 0 – MUX3 .. 0: là tổ hợp bit lựa chọn kênh đầu vào cho bộ ADC. Chế độ lựa chọn
MUX3
MUX2
MUX1
MUX0
Kênh lựa chọn
0
0
0
0
ADC0
0
0
0
1
ADC1
0
0
1
0
ADC2
0
0
1
1
ADC3
0

1
0
0
ADC4
0
1
0
1
ADC5
0
1
1
0
ADC6
0
1
1
1
ADC7
Thanh ghi điều khiển và trạng thái ADC: ADCSRA

Bit 7 – ADEN : Là bit cho phép chuyển đổi, khi bit này được set = 1 thì chương trình cho
phép bộ chuyển đổi ADC hoạt động.
Bit 6 – ADSC : Là bit cho phép bắt đầu lần chuyển đổi. Khi chương trình set bit này = 1 thì
bộ ADC bắt đầu lần chuyển đổi.
Bit 5 – ADFR : Bit lựa chọn chế độ chuyển đổi liên tục hay gián đoạn. Khi bit này được set =
1 thì bộ chuyển đổi hoạt động liên tục trong quá trình chip hoạt động. Khi bit này bi xóa thì
quá trình chuyển đổi sẽ xãy ra từng lần gián đạn tùy theo chương trình cho phép.
Bit 4 – ADIF : bit cờ ngắt, khi một lần chuyển đổi hoàn thành thì bit này được set = 1 bởi
phần cứng và một khi ngắt được thực thi thì bit này sẽ bị tự động xóa sau 4 xung nhịp.

Bit 3 – ADIE : Bit cho phép ngắt do bộ ADC. Khi bit này được set và bit I trong thanh ghi
trạng thái cũng được set thì chương trình cho phép ngắt khi bộ ADC hoàn thành một lần
chuyển đổi.
Bit 2 .. 0 – ADPS2 .. 0 : Tổ hợp bit lựa chọn chế độ xung nhịp cho bộ ADC. Chế độ chia
xung được liệt kê như sau:
ADPS2
0
0
0
0
1
1
1
1

ADPS1
0
0
1
1
0
0
1
1

ADPS0
0
1
0
1

0
1
0
1

Chế độ xung
2
2
4
8
16
32
64
128

Thanh ghi dữ liệu bộ ADC: ADCH/ADCL
Là thanh ghi 16 bit được chia làm hai byte, byte thấp ( ADCL) và byte cao (ADCH). Dữ liệu
của bộ ADC được cập nhật lên thanh ghi này sau mỗi lần chuyển đổi. Nếu ADLAR = 0 thì dữ
liệu sẽ ghi đầy byte thấp.

Và khi bit ADLAR được set = 1 thì dữ liệu sẽ ghi đầy byte cao
21


Bởi vì thanh ghi ADC là thanh ghi 16 bit nên một thanh ghi tạm thời TEMP được huy
động để đảm bảo thanh ghi này được đọc trọn vẹn. Khi CPU đọc byte thấp(low) ADCL, dữ
liệu được gửi đến CPU và dữ liệu byte cao được gửi đến thanh ghi TEAM. Khi CPU đọc byte
cao (high) ADCH, khối CPU nhận dữ liệu trong thanh ghi TEAM nên muốn đọc trọn vẹn
thanh ghi này thì phải đọc ADCL trước sau đó mới đọc ADCH. Khi chương trình con và
chương trình chính sử dụng thanh ghi TEAM để truy cập thanh ghi ICR1 thì các ngắt sẽ bị

cấm. Và các ngắt sẽ được cho phép lại sau đó.
Thanh ghi cổng vào, ra : DDRX, PORTX, PINX
DDRX : Là thanh ghi hướng dữ liệu các cổng. Khi ghi một giá trị 0 hay 1 vào bất kỳ một bit
nào trong thanh ghi này thì các bit tương ứng trên PORTX sẽ là lối vào hay ra.
Ví dụ: Ldi r16,0x F0
Out DDRA,r16
Sau lệnh này thì bốn bit đầu của PORTA là lối ra và bốn bit sau là lối vào
PORTX: Là thanh ghi dữ liệu của cổng vào ra tương ứng. Khi ta thay đổi dữ liệu của thanh
ghi này và xuất ra PINX thì sẽ làm thay đổi mức logic trên các chân tương ứng.
Ví dụ:
Khi cổng A là lối ra ( DDRA = 0xff) hai lệnh sau sẽ làm cho mức logic ở nửa byte
trên là 1 và nửa byte dưới là 0
Ldi r16,0xff
Out DDRA,R16
Ldi r16,0xF0
Out PORTA,r16
PINX: Là chân vật lý của chip. Chương trình có thể đọc trạng thái logic trên các chân này bất
kỳ lúc nào mà không cần khai báo. Nó có chức năng như một thanh ghi chỉ cho phép đọc
Ví dụ:
Lệnh sau đây sẽ lưu giá trị của các chân cổng A vào thanh ghi R16
IN R16, PINA
3.3 Các bộ phận xử lý trong chip
Bộ nhớ EEPROM
Tất cả các vi điều khiển trong họ AVR đều có bộ nhớ EEPROM trong chíp. Atmega8 có 512
byte tích hợp sẵn trên chip. Bộ nhớ EEPROM được truy nhập thông qua thanh ghi truy nhập
EEPROM. Cụ thể là 3 thanh ghi sau: Thanh ghi địa chỉ EEPROM ( EEAR), thanh ghi dữ liệu
EEPROM (EEDR) và thanh ghi điều khiển EEPROM (EECR).
Quá trình ghi_đọc được minh họa bằng ngôn ngữ Assemler như sau:
------------------EEPROM Data Read --------------------; cài đặt cho phép đọc
Sbi EECR,1 ; đặt bit EERE

Jmp EEPROM_Read
; Đặt địa chỉ từ r17 : r18 vào:
Out EEARH , r17
Out EEARL , r18
; ghi dữ liệu vào R16
Out EEDR , r16
;END Read
22


------------------EEPROM Data Write--------------------Sbi EECR , EEMWE
; Đặt địa chỉ từ r17 : r18 vào:
Out EEARH , r17
Out EEARL , r18
; ghi dữ liệu từ R16
In r16 , EEDR
;END Write
Cổng vào ra
Cổng vào ra là những cổng giao tiếp giữa vi điều khiển với thế giới bên ngoài. Atmega8 có 3
cổng vào ra là cổng B, C và D. Mỗi cổng vào ra được điều khiển thông qua ba thanh ghi là
DDRX, PORTX và PINX. Sơ đồ khối cổng vào ra như sau:

Hình 3.3 Sơ đồ khối cổng vào ra

Hình 3.4 Sơ đồ logic cổng vào ra
Để điều khiển cổng vào ra trước hết chúng ta phải đặt cấu hình là chân ra hay chân vào
thông qua thanh ghi DDRX.
Ví dụ:
23



×