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

thiết kế hệ thống điều khiển từ xa bằng sóng hồng ngoại

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 (2.02 MB, 65 trang )

LỜI CÁM ƠN
Em xin gửi lời cám ơn thầy Nguyễn Phúc Ngọc đã tận tình hướng dẫn và định
hướng em trong thời gian nghiên cứu và thực hiện đề tài này. Em xin chân thành
cám ơn các thầy cô giáo trong khoa Điện Tử Viễn Thông đã nhiệt tình dạy dỗ, cung
cấp cho em những kiến thức nền vững chắc trong suốt 5 năm học qua.
Thời gian thực hiện đồ án có hạn nên mặc dù cố gắng rất nhiều nhưng đồ án
không tránh khỏi những thiếu sót. Kính mong các thầy cô trong khoa tận tình chỉ
bảo và góp ý kiến để đồ án này được hoàn thiện hơn.
Em xin chân thành cám ơn.
Sinh viên thực hiện

1


TÓM TẮT ĐỒ ÁN
Nội dung đồ án được chia thành 3 chương chính:
Chương 1: Lý thuyết điều khiển từ xa
Chương 2: Tổng quan về vi điều khiển PIC
Chương 3: Thiết kế, thi công hệ thống điều khiển từ xa bằng sóng hồng ngoại
Hệ thống điều khiển thiết bị từ xa bằng sóng hồng ngoại thông qua việc phát
sóng hồng ngoại từ remote TV Sony, nhận sóng hồng ngoại bằng mắt thu irm
56384, xử lý tín hiệu của Pic 16f877A, thiết bị ngắt rơ le để điều khiển tắt/mở các
thiết bị trong gia đình như: đèn, Tivi, quạt…
Với việc thiết kế, thi công và hoàn thiện hệ thống điều khiển từ xa bằng sóng
hồng ngoại thảnh công, tôi hy vọng đồ án này sẽ góp phần tiện nghi hoá cuộc sống
và tạo niềm tin cho tôi tạo dựng tương lai sự nghiệp.
ABSTRACT
The content of this plan is divided into three main parts:
Part 1: Far-distance controlling theories
Part 2: Overview about programmable controller’s theory PIC
Part 3: Design and execute the far-distance controlling by Infrared radiation


The far-distance controlling system by Infrared radiation is used by radiating
Infrared from Sony remote control, receiving infrared receiver led by irm
56384, signal processing of the pic 16f877A, breaker relays to control on / off
household appliances such as lights, TV, fan ...
Through designing, executing and completing this Far-distance controlling
system successfully, I hope that this plan will help our lives conveniently and build
up my own career in the future.

2


LỜI MỞ ĐẦU
Do yêu cầu về lĩnh vực tự động hóa trong sinh hoạt ngay càng cao. Các thiết
bị sinh hoạt ngày càng hiện đại, do đó việc điều khiển từ xa ngày càng trở nên cần
thiết và là một yêu cầu không thể thiếu trong xã hội hiện nay
Điều khiển từ xa là việc điều khiển một mô hình ở một khoảng cách nào đó
mà con người không cần thiết đến trực tiếp nơi đặt hệ thống. Khoẳng cách đó tùy
thuộc vào từng hệ thống có mức phức tạp khác nhau, chẳng hạn như để điều khiển
từ xa một phi thuyền ta cần phải có hệ thống phát và thu mạnh, ngược lại, để điều
khiển một trò chơi điện tử từ xa ta chỉ cần một hệ thống phát và thu đơn giản công
suất nhỏ…Những đối tượng được điều khiển có thể ở trên không trung, ở dưới đáy
biển hay ở một vùng xa xôi nào đó.
Thế giới càng phát triển thì lĩnh vực điều khiển cần được mở rộng hơn. Việc
ứng dụng điều khiển từ xa vào thông tin liên lạc đã mang lại nhiều thuận lợi cho xã
hội loài người, thông tin được cập nhập hơn nhờ sự chính xác và nhanh chóng của
quá trình điều khiển từ xa.
Ngoài ra, điều khiển từ xa còn được ứng dụng trong kỹ thuật đo lường. Trước
đây muốn đo độ phóng xạ của lò hạt nhân thì hết sức khó khăn, phức tạp và nguy
hiểm, nhưng giờ đây con người có thể ở một nơi an toàn cũng có thể đo được độ
phóng xạ của lò phản ứng hạt nhân. Như vậy, hệ thống hệ thống điều khiển từ xa đã

hạn chế được mức độ phức tạp của công việc và đảm bảo an toàn cho con người.
Trong sinh hoạt hằng ngày của con người như những trò chơi giải trí (robot,
xe điều khiển từ xa….) cho đến các thiết bị gần gũi với con người cũng được cải
tiến cho phù hợp với việc sử dụng và đạt mức tiện lợi nhất có thể được. Điều khiển
từ xa đã xâm nhập vào lĩnh vực này và cho ra những Tivi, đầu máy Video…. Đến
các thiết bị như quạt máy, điều hòa… Xuất phát từ những ý tưởng đó và nhu cầu
cuộc sống nên em đã chọn đề tài “thiết kế hệ thống điều khiển từ xa bằng sóng hồng
ngoại”.

3


Chương 1
LÝ THUYẾT ĐIỀU KHIỂN XA
1.1 GIỚI THIỆU VỀ HỆ THỐNG ĐIỀU KHIỂN TỪ XA
Hệ thống điều khiển từ xa là một hệ thống cho phép ta điều khiển các thiết bị
từ một khoảng cách xa. Ví dụ, hệ thống điều khiển bằng sóng vô tuyến, hệ thống
điều khiển bằng hồng ngoại, hệ thống điều khiển xa bằng cáp quang dây dẫn… Ở
đây, trong khuôn khổ đề tài được giao ta chỉ nói đến hệ thống điều khiển xa bằng
hồng ngoại.


Sơ đồ kết cấu của hệ thống điều khiển từ xa bao gồm:

-

Thiết bị phát: biến đổi lệnh điều khiển thành tín hiệu và phát đi.

-


Đường truyền: đưa tín hiệu điều khiển từ thiết bị phát đến thiết bị thu.

-

Thiết bị thu: nhận tín hiệu điều khiển từ đường truyền, qua quá trình biến

đổi, biến dịch để tái hiện lại lệnh điều khiển rồi đưa đến các thiết bị thi hành.

Thiết bị phát

Đường truyền

Thiết bị thu

Hình 1.1: Sơ đồ kết cấu hệ thống điều khiển từ xa.


Nhiệm vụ cơ bản của hệ thống điều khiển từ xa:

-

Phát tín hiệu điều khiển.

-

Sản sinh ra xung hoặc hình thành các xung cần thiết.

-

Phát các tổ hợp mã đến điểm chấp hành.


-

Ở điểm chấp hành (thiết bị thu) sau khi nhận được mã phải biến đổi các

mã nhận được thành các lệnh điều khiển và đưa đến các thiết bị, đồng thời kiểm tra
sự chính xác của mã mới nhận.[3]
1.1.1 Một số vấn đề cơ bản trong hệ thống điều khiển từ xa

4


Do hệ thống điều khiển từ xa có những đường truyền dẫn xa nên ta cần
phải nghiên cứu về kết cấu của hệ thống để đảm bảo tín hiệu được truyền đi chính
xác và nhanh chóng theo những yêu cầu sau:


Kết cấu tin tức

Trong hệ thống điều khiển từ xa độ tin cậy truyền dẫn tin tức có quan hệ rất
nhiều đến kết cấu tin tức. Nội dung về kết cấu tin tức có hai phần: về lượng và về
chất. Về lượng có các biến lượng điều khiển và lượng điều khiển thành từng loại
xung gì cho phù hợp, và những xung đó cần áp dụng những phương pháp nào để
hợp thành tin tức, để có dung lượng lớn nhất và tốc độ truyền dẫn nhanh nhất.


Về kết cấu hệ thống

Để đảm bảo các yêu cầu về kết cấu tin tức, hệ thống điều khiển từ xa có các
yêu cầu sau:

-

Tốc độ làm việc nhanh.

-

Thiết bị phải an toàn tin cậy.

-

Kết cấu phải đơn giản.

Hệ thống điều khiển từ xa có hiệu quả cao là hệ thống đạt tốc độ điều khiển
cực đại đồng thời đảm bảo độ chính xác trong phạm vi cho phép.[3]
1.1.2 Các phương pháp mã hóa trong điều khiển từ xa
Trong hệ thống truyền thông tin rời rạc hoặc truyền thông tin liên tục nhưng đã
được rời rạc hóa tin tức thường phải được biến đổi thông qua một phép biến đổi
thành số (thường là số nhị phân) rồi mã hóa và được phát đi từ máy phát. Ở máy
thu, tín hiệu phải thông qua các phép biến đổi ngược lại với các phép biến đổi trên:
giải mã, liên tục hóa…
Sự mã hóa tín hiệu điều khiển nhằm tăng tính hữu hiệu và độ tin cậy của hệ
thống điều khiển từ xa, nghĩa là tăng tốc độ truyền và khả năng chống nhiễu.
Trong điều khiển từ xa ta thường dùng mã nhị phân tương ứng với hệ gồm có
2 phần tử [0] và [1].

5


Do yêu cầu về độ chính xác cao trong các tín hiệu điều khiển được truyền đi
để chống lại nhiễu ta dùng loại mã tín hiệu và sữa sai.

Mã phát tín hiệu và sữa sai thuộc loại mã đồng đều bao gồm các loại mã: mã
phát hiện sai, mã sữa sai, mã phát hiện và sữa sai.
Dạng sai nhầm của các mã được truyền đi tùy thuộc tính chất của kênh truyền,
chúng có thể phân thành 2 loại:
-

Sai độc lập: Trong quá trình truyền, do nhiều tác động, một hoặc nhiều ký

hiệu trong các tổ hợp mã có thể bị sai nhầm, nhưng những sai nhầm đó không liên
quan nhau.
-

Sai tương quan: Được gây ra bởi nhiều nhiễu tương quan, chúng hay xẩy

ra trong từng chùm, cụm ký hiệu kế cận nhau.
Sự lựa chọn của cấu trúc mã chống nhiễu phải dựa trên tính chất phân bố xác
suất mắc sai nhầm trong kênh truyền.
Hiện nay lý thiết mã hóa phát triển rất nhanh, nhiều loại mã phát hiện và sữa
sai được nghiên cứu như: mã Hamming, mã chu kỳ, mã nhiều cấp.
1.1.3

Sơ đồ khối của một hệ thống điều khiển từ xa

Sau đây là sơ đồ khối cơ bản của một hệ thống điều khiển từ xa.

Tín hiệu
điều khiển
Tín hiệu
sóng mang
Khuyếch

đại thu

Điều chế

Khuyếch đại phát

Hình 1.2: Sơ đồ khối máy phát

Giải
điều chế

Khuyếch
đại

Hình 1.3: Sơ đồ khối máy thu

6

Chấp
hành


1.1.4 Các phương pháp điều chế tín hiệu trong hệ thống điều khiển từ xa
Trong kỹ thuật điều khiển từ xa, tín hiệu gốc không thể truyền đi xa được. Do
đó, để thực hiện việc truyền tín hiệu điều khiển từ máy phát đến máy thu ta cần phải
điều chế (mã hóa) tín hiệu.
Có nhiều phương pháp điều chế tín hiệu. Tuy nhiên điều chế tín hiệu dạng
xung có nhiều ưu điểm hơn. Vì ở đây chúng ta sử dụng linh kiện kỹ thuật số nên
linh kiện gọn nhẹ, công suất tiêu tán nhỏ và có tính chống nhiễu cao.
Các phương pháp điều chế tín hiệu ở dạng xung như:

-

Điều chế biên độ xung (PAM).

-

Điều chế độ rộng xung (PWM).

-

Điều chế vị trí xung (PPM).

-

Điều chế mã xung (PCM).

Hình 1.4 : Các dạng xung

7




Điều chế biên độ xung (PAM)

Sơ đồ khối
Tín hiệu
điều chế

Dao động đa hài

một trạng thái bền

Bộ phát xung

Hình 1.5: Hệ thống điều chế PAM
Điều chế biên độ xung là dạng điều chế đơn giản nhất trong các dạng điều chế
xung. Biên độ của mỗi xung được tạo ra tỉ lệ với biên độ tức thời của tín hiệu điều
chế.
Xung lớn nhất biểu thị cho biên độ dương của tín hiệu mẫu lớn nhất
Giải thích sơ đồ khối
-Khối tín hiệu điều chế : Tạo ra tín hiệu điều chế đưa vào khối dao động đa hài
-Dao động đa hài một trạng thái bền :Trộn xung với tín hiệu điều chế
-Bộ phát xung : Phát xung với tần số không đổi để thực hiện việc điều chế tín
hiệu đã được điều chế có biên độ tăng giảm thay đổi theo tín hiệu điều chế


Điều chế độ rộng xung (PWM)

Phương pháp điều chế này sẽ tạo ra các xung có biên độ không đổi, nhưng bề
rộng của mỗi xung sẽ thay đổi tương ứng với biên độ tức thời của tín hiệu điều chế.
Trong cách điều chế này, xung có độ rộng lớn nhất biểu thị phần biên độ dương lớn
nhất của tín hiệu điều chế, xung có độ rộng hẹp nhất biểu thị phần biên độ âm nhất
của tín hiệu điều chế
Trong điều chế độ rộng xung, tín hiệu cần được lấy mẫu phải được chuyển đổi
thành dạng xung có độ rộng xung tỉ lệ với biên độ tín hiệu lấy mẫu. Để thực hiện
điều chế độ rộng xung, ta có thể thực hiện theo sơ đồ khối sau:
Tín hiệu
điều chế
So sánh
Bộ phát

hàm RAMP
Hình 1.6: Sơ đồ hệ thống RAMP
8


Trong sơ đồ khối, tín hiệu điều chế được đưa đến khối so sánh điện áp cùng
với tín hiệu phát ra từ bộ phát hàm RAMP.


Điều chế vị trí xung (PPM)

Với phương pháp điều chế vị trí xung thì các xung được điều chế có biên độ
và độ rộng xung không thay đổi theo biên độ của tín hiệu điều chế.
Hình thức đơn giản của điều chế vị trí xung là quá trình điều chế độ rộng
xung. Điều chế vị trí xung có ưu điểm là sử dụng ít năng lượng hơn điều chế độ
rộng xung nhưng có nhược điểm là quá trình giải điều biến ở máy thu phức tạp hơn
các dạng điều chế khác.


Điều chế mã xung (PCM)

Phương pháp điều chế mã xung được xem là phương pháp chính xác và hiệu
quả nhất trong các phương pháp điều chế xung.
Trong điều chế mã xung, mỗi mẫu biên độ của tín hiệu điều chế được biến đổi
bằng số nhị phân-số nhị phân này được biến đổi bằng nhóm xung. Sự hiện diện của
một xung được biểu thị bằng mức [1] và sự thiếu đi một xung được biểu thị bằng
mức [0].
Chỉ có thể biểu thị trên 16 biên độ khác nhau của biên độ tín hiệu (mã 4 bít) vì
vậy nó không được chính xác. Độ chính xác có thể được cải thiện bằng cách tăng số
bít. Mỗi mã n bít có thể biểu thị được 2n mức riêng biệt của tín hiệu.

Trong phương pháp điều chế mã xung, tần số được quyết định bởi tín hiệu cao
nhất trong quá trình xử lý. Điều này cho thấy rằng nếu như mẫu thử được lấy ở mức
lớn hơn hai lần tần số tín hiệu thì tần số tín hiệu mẫu được phục hồi.
Tuy nhiên trong thực tế thường lấy tín hiệu ở mức độ nhỏ nhất khoảng 10 lần
so với tín hiệu lớn nhất. Vì vậy tần số càng cao thì thời gian lấy mẫu càng nhỏ (mức
lấy mẫu càng nhiều) dẫn đến linh kiện chuyển mạch có tốc độ xử lý cao. Ngược lại
nếu sử dụng tần số lấy mẫu thấp thời gian lấy mẫu càng rộng,nhưng độ chính xác
không cao. Thông thường người ta chỉ sử dụng khoảng 10 lần tín hiệu nhỏ nhất.

9


Kết Luận :
Điểm thuận lợi của các phương pháp điều biến xung là mặc dù tín hiệu AM rất
yếu, chúng hầu như mất hẳn trong nhiễu ồn xung quanh. Nếu phương pháp điều chế
PPM, PWM, PCM là tín hiệu điều chế bằng cách tách ra khỏi tiếng ồn. Với phương
pháp như vậy, điều chế mã xung PCM sẽ cho kết quả tốt nhất,vì nó chỉ cần quyết
định xung nào hiện diện, xung nào không hiện diện.
Các phương pháp điều chế xung như PWM, PPM, PAM phần nào cũng theo
kiểu tương tự. Vì các dạng xung ra sau khi điều chế có sự thay đổi về biên độ, độ
rộng xung, vị trí xung theo tín hiệu lấy mẫu. Đối với phương pháp biến đổi mã xung
PCM thì dạng xung ra là dạng nhị phân chỉ có 2 mức [0] và [1].
Để mã hóa tín hiệu tương tự sang tín hiệu số, người ta chia trục thời gian ra
những khoảng bằng nhau và biên độ trục ra 2n khảng cho 1 bít. Nếu số mức càng
nhiều thì thời gian càng nhỏ, độ chính xác càng cao. Tại mỗi thời điểm lấy mẫu biên
độ được đo, rồi lấy mức tương ứng với biên độ và chuyển đổi mã nhị phân. Kết quả
ở ngỏ ra thu được một chuổi xung (dạng nhị phân). [1]
1.2 ĐIỀU KHIỂN TỪ XA DÙNG TIA HỒNG NGOẠI
1.2.1 Khái niệm về tia hồng ngoại


Hình 1.7: Dạng sóng hồng ngoại
Ánh sáng hồng ngoại (tia hồng ngoại) là ánh sáng không thể nhìn thấy được
bằng mắt thường, có bước sóng khoảng 0,8µm đến 0,9µm tia hồng ngoại có vận tốc
truyền bằng vận tốc ánh sáng. Tuy nhiên như chúng ta biết mặc dù không nhìn thấy
tần số âm thanh nhưng chúng ta biết rằng nó tồn tại và có thể nhận biết được chúng
từ sự cảm ứng nhiệt trên da. Khi bạn đưa tay đến gần ngọn lửa hoặc nhưng vật
nóng, bạn có thể cảm thấy nhiệt mặc dù bạn không nhìn thấy. Bạn nhìn thấy ngọn
lửa là vì nó phát ra nhiều loại bức xạ, mắt ta có thể nhìn thấy,đồng thời nó cũng phát
ra hồng ngoại mà chúng ta chỉ có thể cảm nhận qua da.
10


Tia hồng ngoại có thể truyền đi được nhiều kênh tín hiệu. Nó ứng dụng rộng
rãi trong công nghiệp. Lượng thông tin có thể đạt được 3Mbit/s. Trong kỹ thuật
truyền tin bằng sợi quang dẫn không cần các trạm khuyết đại giữa chừng, người ta
có thể truyền một lúc 15000 điện thoại hay 12 kênh truyền hình qua một sợi tơ
quang học có đường kính 0,13mm với khoảng cách 10 – 20km. Lượng thông tin
được truyền đi với ánh sáng hồng ngoại lớn gấp nhiều lần so với sóng điện từ mà
người ta vẫn dùng.
Tia hồng ngoại dễ bị hấp thụ, khả năng xuyên thấu kém. Trong điều khiển từ
xa chùm tia hồng ngoại phát đi hẹp, có hướng do đó khi thu phải đúng hướng.
1.2.2 Nguồn phát hồng ngoại
Các nguồn sáng nhân tạo thường chứa nhiều ánh sáng hồng ngoại. Sóng hồng
ngoại có đặc tính quang học giống như ánh sáng (sự hội tụ qua thấu kính, tiêu
cự…). Ánh sáng và sóng hồng ngoại khác nhau rất rõ trong sự xuyên suốt qua vật
chất. Có những vật mắt ta thấy “phản chiếu sáng” nhưng đối với hồng ngoại thì nó
là những vật “phản chiếu tối”. Có những vật ta thấy nó dưới một màu xám đục
nhưng với ánh sáng hồng ngoại nó trở nên trong suốt. Điều này giải thích vì sao
LED hồng ngoại cho hiệu suất cao hơn so với LED cho màu xanh lá cây hay màu
đỏ… Vì rằng, vật liệu bán dẫn “trong suốt” đối với ánh sáng hồng ngoại, tia hồng

ngoại không bị yếu đi khi nó phải vượt qua các lớp bán dẫn để đi ra ngoài. Đời sống
của LED hồng ngoại dài đến 100.000 giờ (hơn 11 năm), LED hồng ngoại không
phát sáng cho lợi điểm trong các thiết bị kiểm soát vì không gây sự chú ý.
1.2.3 Linh kiện thu sóng hồng ngoại
Người ta có thể dùng quang điện trở, phototransistor, photodiode để thu sóng
hồng ngoại gần. Để thu sóng hồng ngoại trung bình và xa phát ra từ cơ thể con
người, vật nóng… Loại detector với vật liệu Lithiumtitanat hay tấm chất dẻo
Polyviny-Lidendifuorid (PVDF). Cơ thể con người phát ra tia hồng ngoại với độ dài
sóng từ 8ms-10ms.
1.2.4 Sơ đồ khối hệ thống điều khiển từ xa dùng hồng ngoại


Hệ thống phát

11


Phát lệnh
điều khiển


hóa

Điều
chế

Khuyếch
đại

Dao động tạo

sóng mang
Hình 1.8: Sơ đồ khối hệ thống phát.
Giải thích sơ đồ khối máy phát: Máy phát có nhiệm vụ tạo ra lệnh điều khiển,
mã hóa và phát tín hiệu đến máy thu, lệnh truyền đi đã được điều chế.
*Khối phát lệnh điều khiển: Khối này có nhiệm vụ tạo ra lệnh điều khiển từ
nút bấm (phím điều khiển). Khi một phím được ấn tức là một lệnh đã được tạo ra.
Các nút ấn này có thể là một phím bấm, hay một ma trận phím bấm. Lệnh điều
khiển được đưa đến bộ mã hóa dưới dạng các bit nhị phân tương ứng với từng phím
điều khiển.
* Khối mã hóa: Để truyền các tín hiệu khác nhau đến máy thu mà chúng
không lẫn lộn nhau, ta phải tiến hành mã hóa các tín hiệu (lệnh điều khiển). Khối
mã hóa này có nhiệm vụ biến đổi các lệnh điều khiển thành các bit nhị phân, hiện
tượng biến đổi này gọi là mã hóa. Có nhiều phương pháp mã hóa khác nhau:
- Điều chế biên độ xung.
- Điều chế vị trí xung.
- Điều chế độ rộng xung.
- Điều chế mã xung.
Trong kỹ thuật điều khiển từ xa bằng hồng ngoại, phương pháp điều chế mã
xung được sử dụng rộng rãi hơn cả, vì phương pháp này tương đối dễ thực hiện.
* Khối dao động sóng mang: Khối này có nhiệm vụ tạo ra sóng mang tần số
ổn định, sóng mang này sẽ mang tín hiệu điều khiển khi truyền ra môi trường.
* Khối điều chế: Khối này có nhiệm vụ kết hợp tín hiệu điều khiển đã mã hóa
sóng mang để đưa đến khối khuếch đại.

12


* Khối khuếch đại: Khuếch đại tín hiệu đủ lớn để LED phát hồng ngoại phát
tín hiệu ra môi trường.
* Khối LED phát: Biến đổi tín hiệu điện thành tín hiệu hồng ngoại phát ra môi

trường.


Hệ thống thu
Khuếch
đại

Tách
sóng
Mạch chấp
hành

Giải


Chốt

Khuếch
đại

Hình 1.9: Sơ đồ khối hệ thống thu
Giải thích sơ đồ khối máy thu: Chức năng của khối máy thu là thu được tín
hiệu điều khiển từ máy phát, loại bỏ sóng mang, giải mã tín hiệu điều khiển thành
các lệnh riêng biệt, từ đó mỗi lệnh sẽ đưa đến khối chấp hành cụ thể.
* LED thu: thu tín hiệu hồng ngoại do máy phát truyền tới và biến đổi thành
tín hiệu điều khiển.
* Khối khuếch đại: Có nhiệm vụ khuyết đại tín hiệu điều khiển lớn lên từ LED
thu hồng ngoại để việc xử lý được dễ dàng.
* Khối tách sóng mang: Khối này có chức năng triệt tiêu sóng mang, chỉ giữ
lại tín hiệu điều khiển như tín hiệu gửi đi từ máy phát.

* Khối giải mã: Khối này có nhiệm vụ giải mã tín hiệu điều khiển thành các
lệnh điều khiển dưới dạng các bit nhị phân hay các dạng khác để đưa đến khối chấp
hành cụ thể. Do đó nhiệm vụ của khối này là rất quan trọng.
* Khối chốt: Khối này có nhiệm vụ giữ nguyên trạng thái tác động khi tín hiệu
điều khiển không còn, điều này có nghĩa là khi phát lệnh điều khiển ta chỉ tác động
vào phím bấm 1 lần, trạng thái mạch chỉ thay đổi khi tác động vào nút thực hiện
điều khiển lệnh khác.

13


* Khối khuếch đại: Khuếch đại tín hiệu điều khiển đủ lớn để tác động được
vào mạch chấp hành.
* Khối chấp hành: Có thể là rơle hay một linh kiện nào đó, đây là khối cuối
cùng tác động trực tiếp vào thiết bị thực hiện nhiệm vụ điều khiển mong muốn.[2]

14


Chương 2
TỔNG QUAN VỀ VI ĐIỀU KHIỂN PIC
2.1 GIỚI THIỆU CHUNG VỀ VI ĐIỀU KHIỂN PIC
2.1.1 PIC là gì?
PIC là viết tắt của “Programable Intelligent Computer”, có thể tạm dịch là
“máy tính thông minh khả trình” do hãng Genenral Instrument đặt tên cho vi điều
khiển đầu tiên của họ: PIC1650 được thiết kế để dùng làm các thiết bị ngoại vi cho
vi điều khiển CP1600. Vi điều khiển này sau đó được nghiên cứu phát triển thêm và
từ đó hình thành nên dòng vi điều khiển PIC ngày nay.
2.1.2 Tại sao dùng vi điều khiển PIC
Hiện nay trên thị trường có rất nhiều họ vi điều khiển như 8051, Motorola

68HC, AVR, ARM,... Ngoài họ 8051 được hướng dẫn một cách căn bản ở môi
trường đại học, bản thân người viết đã chọn họ vi điều khiển PIC để mở rộng vốn
kiến thức và phát triển các ứng dụng trên công cụ này vì các nguyên nhân sau:
Họ vi điều khiển này có thể tìm mua dễ dàng tại thị trường Việt Nam.
Giá thành không quá đắt.
Có đầy đủ các tính năng của một vi điều khiển khi hoạt động độc lập.
Là một sự bổ sung rất tốt về kiến thức cũng như về ứng dụng cho họ vi điều
khiển mang tính truyền thống: họ vi điều khiển 8051.
Số lượng người sử dụng họ vi điều khiển PIC. Hiện nay tại Việt Nam cũng
như trên thế giới, họ vi điều khiển này được sử dụng khá rộng rãi. Điều này tạo
nhiều thuận lợi trong quá trình tìm hiểu và phát triển các ứng dụng như: số lượng
tài liệu, số lượng các ứng dụng mở đã được phát triển thành công, dễ dàng trao đổi,
học tập, dễ dàng tìm được sự chỉ dẫn khi gặp khó khăn,…
Sự hỗ trợ của nhà sản xuất về trình biên dịch, các công cụ lập trình, nạp
chương trình từ đơn giản đến phức tạp,…

15


Các tính năng đa dạng của vi điều khiển PIC, và các tính năng này không
ngừng được phát triển.
2.1.3 Kiến trúc PIC
Cấu trúc phần cứng của một vi điều khiển được thiết kế theo hai dạng kiến

CPU

Von-Neuman

PROGRAM DATA
MEMORY

MEMORY

DATA
MEMOR
Y

Harvard

PROGRAM
MEMORY

trúc: Von Neuman và kiến trúc Havard

CPU

Hình 2.1: Kiến trúc Havard và kiến trúc Von-Neuman
Tổ chức phần cứng của PIC được thiết kế theo kiến trúc Havard. Điểm khác
biệt giữa kiến trúc Havard và kiến trúc Von-Neuman là cấu trúc bộ nhớ dữ liệu và
bộ nhớ chương trình. Đối với kiến trúc Von-Neuman, bộ nhớ dữ liệu và bộ nhớ
chương trình nằm chung trong một bộ nhớ, do đó ta có thể tổ chức, cân đối một
cách linh hoạt bộ nhớ chương trình và bộ nhớ dữ liệu. Tuy nhiên điều này chỉ có ý
nghĩa khi tốc độ xử lí của CPU phải rất cao, vì với cấu trúc đó, trong cùng một thời
điểm CPU chỉ có thể tương tác với bộ nhớ dữ liệu hoặc bộ nhớ chương trình. Như
vậy có thể nói kiến trúc Von-Neuman không thích hợp với cấu trúc của một vi điều
khiển.
Đối với kiến trúc Havard, bộ nhớ dữ liệu và bộ nhớ chương trình tách ra thành
hai bộ nhớ riêng biệt. Do đó trong cùng một thời điểm CPU có thể tương tác với cả
hai bộ nhớ, như vậy tốc độ xử lí của vi điều khiển được cải thiện đáng kể.
Một điểm cần chú ý nữa là tập lệnh trong kiến trúc Havard có thể được tối ưu
tùy theo yêu cầu kiến trúc của vi điều khiển mà không phụ thuộc vào cấu trúc dữ

liệu. Ví dụ, đối với vi điều khiển dòng 16F, độ dài lệnh luôn là 14 bit (trong khi dữ

16


liệu được tổ chức thành từng byte), còn đối với kiến trúc Von-Neuman, độ dài lệnh
luôn là bội số của 1 byte (do dữ liệu được tổ chức thành từng byte).
2.1.4 RISC và CISC
Như đã trình bày ở trên, kiến trúc Havard là khái niệm mới hơn so với kiến
trúc Von-Neuman. Khái niệm này được hình thành nhằm cải tiến tốc độ thực thi của
một vi điều khiển. Qua việc tách rời bộ nhớ chương trình và bộ nhớ dữ liệu, bus
chương trình và bus dữ liệu, CPU có thể cùng một lúc truy xuất cả bộ nhớ chương
trình và bộ nhớ dữ liệu, giúp tăng tốc độ xử lí của vi điều khiển lên gấp đôi. Đồng
thời cấu trúc lệnh không còn phụ thuộc vào cấu trúc dữ liệu nữa mà có thể linh động
điều chỉnh tùy theo khả năng và tốc độ của từng vi điều khiển. Và để tiếp tục cải
tiến tốc độ thực thi lệnh, tập lệnh của họ vi điều khiển PIC được thiết kế sao cho
chiều dài mã lệnh luôn cố định (ví dụ đối với họ 16Fxxxx chiều dài mã lệnh luôn là
14 bit) và cho phép thực thi lệnh trong một chu kì của xung clock (ngoại trừ một số
trường hợp đặc biệt như lệnh nhảy, lệnh gọi chương trình con … cần hai chu kì
xung đồng hồ). Điều này có nghĩa tập lệnh của vi điều khiển thuộc cấu trúc Havard
sẽ ít lệnh hơn, ngắn hơn, đơn giản hơn để đáp ứng yêu cầu mã hóa lệnh bằng một
số lượng bit nhất định.
Vi điều khiển được tổ chức theo kiến trúc Havard còn được gọi là vi điều
khiển RISC (Reduced Instruction Set Computer) hay vi điều khiển có tập lệnh rút
gọn. Vi điều khiểnđược thiết kế theo kiến trúc Von-Neuman còn được gọi là vi điều
khiển CISC (Complex Instruction Set Computer) hay vi điều khiển có tập lệnh phức
tạp vì mã lệnh của nó không phải là một số cố định mà luôn là bội số của 8 bit (1
byte).
2.1.5 PIPELINING
Đây chính là cơ chế xử lí lệnh của các vi điều khiển PIC. Một chu kì lệnh của

vi điều khiển sẽ bao gồm 4 xung clock.
Thông thường, để thực thi một lệnh, ta cần một chu kì lệnh để gọi lệnh đó, và
một chu kì xung clock nữa để giải mã và thực thi lệnh. Với cơ chế pipelining được
trình bày ở trên, mỗi lệnh xem như chỉ được thực thi trong một chu kì lệnh. Đối với

17


các lệnh mà quá trình thực thi nó làm thay đổi giá trị thanh ghi PC (Program
Counter) cần hai chu kì lệnh để thực thi vì phải thực hiện việc gọi lệnh ở địa chỉ
thanh ghi PC chỉ tới. Sau khi đã xác định đúng vị trí lệnh trong thanh ghi PC, mỗi
lệnh chỉ cần một chu kì lệnh để thực thi xong.
2.1.6 Các dòng PIC và cách lựa chọn vi điều khiển PIC
Các kí hiệu của vi điều khiển PIC:
PIC12xxxx: độ dài lệnh 12 bit
PIC16xxxx: độ dài lệnh 14 bit
PIC18xxxx: độ dài lệnh 16 bit
C: PIC có bộ nhớ EPROM (chỉ có 16C84 là EEPROM)
F: PIC có bộ nhớ flash
LF: PIC có bộ nhớ flash hoạt động ở điện áp thấp
LV: tương tự như LF, đây là kí hiệu cũ
Bên cạnh đó một số vi điệu khiển có kí hiệu xxFxxx là EEPROM, nếu có thêm
chữ A ở cuối là flash (ví dụ PIC16F877 là EEPROM, còn PIC16F877A là flash).
Ngoài ra còn có thêm một dòng vi điều khiển PIC mới là dsPIC.
Ở Việt Nam phổ biến nhất là các họ vi điều khiển PIC do hãng Microchip sản
xuất.
2.1.7 Ngôn ngữ lập trình cho PIC
Ngôn ngữ lập trình cho PIC rất đa dạng. Ngôn ngữ lập trình cấp thấp có
MPLAB (được cung cấp miễn phí bởi nhà sản xuất Microchip), các ngôn ngữ lập
trình cấp cao

hơn bao gồm C, Basic, Pascal, … Ngoài ra còn có một số ngôn ngữ lập trình
được phát triển dành riêng cho PIC như PICBasic, MikroBasic,…
2.2 MỘT VÀI THÔNG SỐ VỀ VI ĐIỀU KHIỂN PIC 16F877A
Đây là vi điều khiển thuộc họ PIC16Fxxx với tập lệnh gồm 35 lệnh có độ dài

18


14 bit.
Mỗi lệnh đều được thực thi trong một chu kì xung clock. Tốc độ hoạt động tối
đa cho phép là 20 MHz với một chu kì lệnh là 200ns. Bộ nhớ chương trình 8Kx14
bit, bộ nhớ dữ liệu 368x8 byte RAM và bộ nhớ dữ liệu EEPROM với dung lượng
256x8 byte. Số PORT I/O là 5 với 33 pin I/O.

Hình 2.2: Vi điều khiển PIC16F877A/PIC16F874A và các dạng sơ đồ chân
Các đặc tính ngoại vi bao gồm các khối chức năng sau:
- Timer0: bộ đếm 8 bit với bộ chia tần số 8 bit.

19


- Timer1: bộ đếm 16 bit với bộ chia tần số, có thể thực hiện chức năng đếm
dựa vào xung clock ngoại vi ngay khi vi điều khiển hoạt động ở chế độ sleep.
- Timer2: bộ đếm 8 bit với bộ chia tần số, bộ postcaler.
- Hai bộ Capture/so sánh/điều chế độ rông xung.
- Các chuẩn giao tiếp nối tiếp SSP (Synchronous Serial Port), SPI và I2C.
- Chuẩn giao tiếp nối tiếp USART với 9 bit địa chỉ.
- Cổng giao tiếp song song PSP (Parallel Slave Port) với các chân điều khiển
RD, WR, CS ở bên ngoài.
Các đặc tính Analog:

- 8 kênh chuyển đổi ADC 10 bit.
- Hai bộ so sánh.
- Bên cạnh đó là một vài đặc tính khác của vi điều khiển như:
- Bộ nhớ flash với khả năng ghi xóa được 100.000 lần.
- Bộ nhớ EEPROM với khả năng ghi xóa được 1.000.000 lần.
- Dữ liệu bộ nhớ EEPROM có thể lưu trữ trên 40 năm.
- Khả năng tự nạp chương trình với sự điều khiển của phần mềm.
- Nạp được chương trình ngay trên mạch điện ICSP (In Circuit Serial
Programming) thông qua 2 chân.
- Watchdog Timer với bộ dao động trong.
- Chức năng bảo mật mã chương trình.
- Chế độ Sleep. Có thể hoạt động với nhiều dạng Oscillator khác nhau.
2.2.1

Sơ đồ khối vi điều khiển PIC16F877A

20


Hình 2.3: Sơ đồ khối vi điều khiển PIC16F877A
2.2.2

Tổ chức bộ nhớ

Cấu trúc bộ nhớ của vi điều khiển PIC16F877A bao gồm bộ nhớ chương trình
(Program memory) và bộ nhớ dữ liệu (Data Memory).


Bộ nhớ chương trình


21


Bộ nhớ chương trình của vi điều khiển PIC16F877A là bộ nhớ flash, dung
lượng bộ nhớ 8K word (1 word = 14 bit) và được phân thành nhiều trang (từ page 0
đến page 3) .Như vậy bộ nhớ chương trình có khả năng chứa được 8*1024 = 8192
lệnh (vì một lệnh sau khi mã hóa sẽ có dung lượng 1 word (14 bit). Để mã hóa được
địa chỉ của 8K word bộ nhớ chương trình, bộ đếm chương trình có dung lượng 13
bit (PC<12:0>).
Khi vi điều khiển được reset, bộ đếmtrình sẽ chỉ đến địa chỉ 0000h (Reset
vector).
Khi có ngắt xảy ra, bộ đếm chương trình sẽ chỉđến địa chỉ 0004h (Interrupt
vector). Bộ nhớ chương trình không bao gồm bộ nhớ stack và được địa chỉ hóa bởi
bộ đếm chương trình.
Bộ nhớ stack sẽ được đề cập cụ thể trong phần sau

Hình 2.4: Bộ nhớ chương trình
Bộ nhớ dữ liệu
Bộ nhớ dữ liệu PIC là bộ nhớ EEPROM được chia làm nhiều bank. Đối với
PIC16F877A bộ nhớ dữ liệu được chia làm 4 bank. Mỗi bank có dung lượng 128
22


byte, bao gồm các thanh ghi có chức năng đặc biệt SFR (Special Function Register )
nằm ở vùng địa chỉ thấp và các thanh ghi mục đích chung GPR ( General Purpose
Register ) nằm ở vùng địa chỉ còn lại trong bank. Các thanh ghi SFR thường xuyên
được sử dụng ( ví dụ như thanh ghi STATUS ) sẽ được đặt ở tất cả các bank của bộ
nhớ dữ liệu giúp thuận tiện trong quá trình truy xuất và làm giảm bớt lệnh của
chương trình. Sơ đồ cụ thể của bộ nhớ dữ liệu PIC16F877A như sau :


Hình 2.5 : Sơ đồ bộ nhớ dữ liệu PIC16F877A
23


2.2.3

Các cổng xuất nhập của PIC16F877A

Cổng xuất nhập (I/O port) chính là phương tiện mà vi điều khiển dùng để
tương tác với thế giới bên ngoài. Sự tương tác này rất đa dạng và thông qua quá
trình tương tác đó, chức năng của vi điều khiển được thể hiện một cách rõ ràng.
Một cổng xuất nhập của vi điều khiển bao gồm nhiều chân (I/O pin), tùy theo
cách bố trí và chức năng của vi điều khiển mà số lượng cổng xuất nhập và số lượng
chân trong mỗi cổng có thể khác nhau. Bên cạnh đó, do vi điều khiển được tích hợp
sẵn bên trong các đặc tính giao tiếp ngoại vi nên bên cạnh chức năng là cổng xuất
nhập thông thường, một số chân xuất nhập còn có thêm các chức năng khác để thể
hiện sự tác động của các đặc tính ngoại vi nêu trên đối với thế giới bên ngoài. Chức
năng của từng chân xuất nhập trong mỗi cổng hoàn toàn có thể được xác lập và điều
khiển được thông qua các thanh ghi SFR liên quan đến chân xuất nhập đó.
Vi điều khiển PIC16F877A có 5 cổng xuất nhập, bao gồm PORTA, PORTB,
PORTC, PORTD và PORTE. Cấu trúc và chức năng của từng cổng xuất nhập sẽ
được đề cập cụ thể trong phần sau.


PORTA

PORTA (RPA) bao gồm 6 I/O pin. Đây là các chân “hai chiều” (bidirectional
pin), nghĩa là có thể xuất và nhập được. Chức năng I/O này được điều khiển bởi
thanh ghi TRISA (địa chỉ 85h). Muốn xác lập chức năng của một chân trong
PORTA là input, ta “set” bit điều khiển tương ứng với chân đó trong thanh ghi

TRISA và ngược lại, muốn xác lập chức năng của một chân trong PORTA là output,
ta “clear” bit điều khiển tương ứng với chân đó trong thanh ghi TRISA. Thao tác
này hoàn toàn tương tự đối với các PORT và các thanh ghi điều khiển tương ứng
TRIS (đối với PORTA là TRISA, đối với PORTB là TRISB, đối với PORTC là
TRISC, đối với PORTD là TRISD vàđối với PORTE là TRISE). Bên cạnh đó
PORTA còn là ngõ ra của bộ ADC, bộ so sánh, ngõ vào analog ngõ vào xung clock
của Timer0 và ngõ vào của bộ giao tiếp MSSP (Master Synchronous Serial Port).
Các thanh ghi SFR liên quan đến PORTA bao gồm :
PORTA (địa chỉ 05h)

: chứa giá trị các pin trong PORTA.

24


TRISA (địa chỉ 85h)

: điều khiển xuất nhập.

CMCON (địa chỉ 9Ch)

: thanh ghi điều khiển bộ so sánh.

CVRCON (địa chỉ 9Dh)

: thanh ghi điều khiển bộ so sánh điện.



PORTB


PORTB (RPB) gồm 8 pin I/O. Thanh ghi điều khiển xuất nhập tương ứng là
TRISB.Bên cạnh đó một số chân của PORTB còn được sử dụng trong quá trình nạp
chương trình cho vi điều khiển với các chế độ nạp khác nhau. PORTB còn liên quan
đến ngắt ngoại vi và bộ Timer0. PORTB còn được tích hợp chức năng điện trở kéo
lên được điều khiển bởi chương trình.Các thanh ghi SFR liên quan đến PORTB bao
gồm:
PORTB (địa chỉ 06h,106h)
TRISB (địa chỉ 86h,186h)

: chứa giá trị các pin trong PORTB
: điều khiển xuất nhập

OPTION_REG (địa chỉ 81h,181h) : điều khiển ngắt ngoại vi và bộ Timer0.


PORTC
PORTC (RPC) gồm 8 pin I/O. Thanh ghi điều khiển xuất nhập tương ứng

là TRISC.Bên cạnh đó PORTC còn chứa các chân chức năng của bộ so sánh, bộ
Timer1, bộ PWM và các chuẩn giao tiếp nối tiếp I2C, SPI, SSP, USART.
Các thanh ghi điều khiển liên quan đến PORTC:
PORTC (địa chỉ 07h)
TRISC (địa chỉ 87h)


: chứa giá trị các pin trong PORTC
: điều khiển xuất nhập.

PORTE

PORTE (RPE) gồm 3 chân I/O. Thanh ghi điều khiển xuất nhập tương

ứng là TRISE. Các chân của PORTE có ngõ vào analog. Bên cạnh đó PORTE còn là
các chân điều khiển của chuẩn giao tiếp PSP.
Các thanh ghi liên quan đến PORTE bao gồm:
PORTE : chứa giá trị các chân trong PORTE.

25


×