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

Xây dựng hệ đo điều khiển cường đồ ánh sáng dùng psoc

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, 91 trang )

Mục lục
CHƯƠNG I
GiớI THIệU Về CảM BIếN, CảM BIếN QUANG ĐO
Trang
Cờng độ ánh sáng
1.1. Giới thiệu chung về cảm biến 3
1.2. Cảm biến quang (Tế bào quang dẫn)

7

Chơng II
tổng quan về PSoC
2.1. Giới thiệu về chíp PsoC 10
2.2 . Giới thiệu về chip PSoC CY8C27443-24PXI 11
2.2.1. Thông số của CY8C27443-24PXI 11
2.2.2. Cấu trúc vi xử lý 16
2.2.3. Định dạng của lệnh 20
2.2.4. Các chế độ địa chỉ trong PsoC 21
2.2.5. Ngắt và bộ điều khiển ngắt 23
2.2.6. Các cổng vào ra đa chức năng 28
2.2.7. Các bộ tạo dao động 36
2.2.8. Vòng khóa pha Phase Locked Loop (PLL) 40
2.2.9. Sleep And Watchdog 41
2.2.10. Hệ thống khối PSoC số 50
2.2.11. Kết nối dãy các khối Psoc số 55
2.2.12 . Kết nối các khối theo hàng 56
1
2.2.13. Các khối PSoC số 63
2.2.14 . Hệ thống khối PSoC tơng tự. 68
2.3. Giới thiệu chung về PSoC Designer. 73
2.4. Các bớc thiết kế và lập trình trong PSoC Designer. 75



Chơng III
Xây dựng hệ đo, ĐIềU KHIểN CƯờng độ ánh
sáng sử dụng chip PSOC CY8C27443-24PXI
3.1. Sơ đồ khối chức năng của hệ thống. 81
3.2 .Sơ đồ nguyên lý và chức năng của các thành phần. 81
3.2.1. Sơ đồ mạch nguồn 81
3.2.2. Sơ đồ mạch định pha Dimmer 82
3.2.3. Sơ đồ mạch công suất 83
3.2.4. Modul giao tiếp máy tính 84
3.2.5. chíp Psoc CY8C27443-24PXI 86
3.2.6. Cảm biến quang (Quang trở) 87
3.3. Lu đồ thuật toán 90

2
CHƯƠNG I
GiớI THIệU Về CảM BIếN, CảM BIếN QUANG ĐO
Cờng độ ánh sáng
1.1.Giới thiệu chung về cảm biến.
Cảm biến là các phần tử nhạy cảm dùng để biến đổi các đại lợng đo lờng,
kiểm tra hay điều khiển từ dạng này sang dạng khác thuận tiện hơn cho việc
tác động của các phần tử khác. Cảm biến là một thiết bị chịu tác động của đại
lợng cần đo ma không có tính chất điện và cho một đặc trng mang bản chất
điện (nh điện tích, điện áp, dòng điện, trở kháng) kí hiệu là s có s = F(m). Cảm
biến thờng dùng ở khâu đo lờng và kiểm tra.
Các loại cảm biến đợc sử dụng rộng rãi trong tự động hóa các quá trình
sản xuất và điều khiển tự động các hệ thống khác nhau. Chúng có chức năng
biến đổi sự thay đổi liên tục các đại lợng đầu vào (đại lợng đo lờng - kiểm tra,
là các đại lợng không điện nào đó thành sự thay đổi của các đại lợng đầu ra là
đại lợng điện, ví dụ: điện trở, điện dung, điện kháng, dòng điện, tần số, điện áp

rơi, góc pha,
Căn cứ theo dạng đại lợng đầu vào ngời ta phân ra các loại cảm biến nh:
cảm biến chuyển dịch thẳng, chuyển dịch góc quay, tốc độ, gia tốc, mô men
quay, nhiệt độ, áp suất, quang, bức xạ,
1.1.1
. Các thông số cơ bản của cảm biến
1.1.1.1. Độ nhạy

S=YX
3
X: gia số đại lợng đầu vào.

Với: +
Y: gia số đại lợng đầu ra.

+
Trong thực tế còn sử dụng độ nhạy tơng đối:

S0=
Với: Y là đại lợng ra.
X là đại lợng vào.
Cảm biến có thể là tuyến tính nếu S0=const hoặc là phi tuyến nếu S0=
var. Cảm biến phi tuyến có độ nhạy phụ thuộc vào giá trị đại lợng vào (X).
1.1.1.2. Sai số
Sự phụ thuộc của đại lợng ra Y vào đại lợng đầu vào X gọi là đặc tính
vào ra của cảm biến. Sự sai khác giữa đặc tính vào ra thực với đặc tính chuẩn
(đặc tính tính toán hay đặc tính cho trong lí lịch) đợc đánh giá bằng sai số.
Phân làm hai loại sai số
+ Sai số tuyệt đối


X=X'#X
X': giá trị đo đợc; X: giá trị thực.
+ Sai số tơng đối

a=XX
Các nguyên nhân ảnh hởng tới sai số
Có nhiều nguyên nhân khách quan và chủ quan ảnh hởng tới sai số, trong
thực tế ngời ta đa ra các tiêu chuẩn và các điều kiện kĩ thuật để hạn chế mức
độ ảnh hởng này trong phạm vi cho phép.
Sai số ở giá trị định mức do yếu tố của bên ngoài gọi là sai số cơ bản. Nếu
yếu tố của bên ngoài vợt ra khỏi giới hạn định mức thì xuất hiện sai số phụ. Để
giảm sai số phụ phải giảm độ nhạy của cảm biến với yếu tố ngoài hoặc hạn chế
ảnh hởng của chúng bằng màn chắn hay môi trờng khác.
1.1.2.
Các yêu cầu của cảm biến
Muốn có độ nhạy cao, sai số nhỏ, cảm biến cần có các tính chất sau:
+ Có dải thay đổi đại lợng vào cần thiết.
4
+ Thích ứng và thuận tiện với sơ đồ đo lờng, kiểm tra.
+ ảnh hởng ít nhất đến đại lợng đầu vào.
+ Có quán tính nhỏ.
Hiện nay có rất nhiều loại cảm biến, chúng làm việc theo nhiều nguyên lí
khác nhau, do vậy kết cấu của cảm biến rất đa dạng và phong phú. Bảng 7-1 là
nguyên lí làm việc và lãnh vực của cảm biến cảm ứng, là loại phổ biến trong tự
động hóa và điều khiển tự động.
1.1.3.
Phân loại cảm biến
Có thể phân các cảm biến làm hai nhóm chính: là cảm biến tham số (thụ
động) và cảm biến phát (chủ động hay tích cực).
* Nhóm phát bao gồm các loại cảm biến sử dụng hiệu ứng cảm ứng điện

từ, hiệu ứng điện áp, hiệu ứng Holl và sự xuất hiện sức điện động của cặp nhiệt
ngẫu, tế bào quang điện.
+ Hiệu ứng cảm ứng điện từ: trong một dây dẫn chuyển động trong một
từ trờng không đổi sẽ xuất hiện một sức điện động tỉ lệ với từ thông cắt ngang
dây trong một đơn vị thời gian, nghĩa là tỉ lệ với tốc độ dịch chuyển của dây
dẫn.
Hiệu ứng cảm ứng điện từ đợc ứng dụng để xác định tốc độ dịch chuyển
của vật thông qua việc đo sức điện động cảm ứng.
+ Hiệu ứng quang phát xạ điện tử: là hiện tợng các điện tử đợc giải
phóng thoát ra khỏi vật liệu tạo thành dòng đợc thu lại dới tác dụng của điện
trờng.
+ Hiệu ứng quang điện trong chất bán dẫn: là hiện tợng khi một chuyển
tiếp P-N đợc chiếu sáng sẽ phát sinh ra các cặp điện tử-lỗ trống, chúng chuyển
động dới tác dụng của điện trờng chuyển tiếp làm thay đổi hiệu điện thế giữa
hai đầu chuyển tiếp.
5
+ Hiệu ứng Holl: trong vật liệu (thờng là bán dẫn) dạng tấm mỏng có
dòng điện chạy qua đặt trong từ trờng B có phơng tạo thành một góc với dòng
điện I sẽ xuất hiện một hiệu điện thế U theo hớng vuông góc với B và I. Hiệu
ứng Holl đợc ứng dụng để xác định vị trí của một vật chuyển động. Vật sẽ đợc
ghép nối cơ học với một thanh nam châm, ở mọi thời điểm vị trí của thanh
nam châm xác định giá trị của từ trờng và góc lệch tơng ứng với tấm bán dẫn
mỏng làm trung gian. Hiệu điện thế đo đợc giữa hai cạnh tấm bán dẫn trong tr-
ờng hợp này (gián tiếp) là hàm phụ thuộc vị trí của vật trong không gian.
Hình 1
Cảm biến loại này là cảm biến tích cực vì trong trờng hợp này nguồn của
dòng điện I (chứ không phải đại lợng cần đo) cung cấp năng lợng liên quan
đến tín hiệu đo.
+ Hiệu ứng điện áp: khi tác dụng lực cơ học lên một vật làm bằng vật
liệu áp điện (nh thạch anh) sẽ gây nên biến dạng của vật đó và làm xuất hiện l-

ợng điện tích bằng nhau nhng trái dấu nhau trên các mặt đối diện của vật (là
hiệu ứng điện áp). Hiệu ứng này đợc ứng dụng để xác định lực hoặc các đại l-
ợng gây nên lực tác dụng vào vật liệu áp điện (nh áp suất, gia tốc, ) thông qua
việc đo điện áp trên hai bản cực tụ điện.
Ngoài ra còn cảm biến nhiệt điện, cảm biến hóa điện,
6
* Cảm biến tham số (thụ động): thờng đợc chế tạo từ những trở kháng có
một trong các thông số chủ yếu nhạy với đại lợng cần đo. Một mặt giá trị của
trở kháng phụ thuộc vào kích thớc hình học của mẫu, nhng mặt khác nó còn
phụ thuộc vào tính chất điện của vật liệu nh: điện trở suất, từ thẩm, hằng số
điện môi. Vì vậy giá trị của trở kháng thay đổi dới tác dụng của đại lợng đo
ảnh hởng riêng biệt đến tính chất hình học, tính chất điện hoặc đồng thời ảnh
hởng cả hai. Thông số hình học hoặc kích thớc của trở kháng có thể thay đổi
nếu cảm biến có phần tử chuyển động hoặc phần tử biến dạng.
+ Trờng hợp khi có phần tử động thì mỗi vị trí của phần tử sẽ tơng ứng
với một giá trị trở kháng, đo trở kháng sẽ xác định đợc vị trí đối tợng. Đây là
nguyên lí nhiều cảm biến nh cảm biến vị trí, cảm biến dịch chuyển.
+ Trờng hợp cảm biến có phần tử biến dạng, thì sự biến dạng gây nên bởi
lực hoặc các đại lợng dẫn đến lực (áp suất, gia tốc) tác dụng trực tiếp hoặc gián
tiếp lên cảm biến làm thay đổi trở kháng. Sự thay đổi trở kháng liên quan đến
lực tác động lên cấu trúc, nghĩa là tác động của đại lợng cần đo đợc biến đổi
thành tín hiệu điện (hiệu ứng áp trở).
Trở kháng của cảm biến thụ động và sự thay đổi của trở kháng dới tác
dụng của đại lợng cần đo chỉ có thể xác định đợc khi cảm biến là một thành
phần của mạch điện. Trong thực tế tùy từng trờng hợp cụ thể mà ngời ta chọn
mạch đo thích hợp với cảm biến
1.2. Cảm biến quang (Tế bào quang dẫn)
Các tế bào quang dẫn là một trong những cảm biến quang có độ nhạy
cao. Cơ sở vật lí của tế bào quang dẫn là hiện tợng quang dẫn do kết quả của
hiệu ứng quang điện nội (hiện tợng giải phóng hạt tải điện trong vật liệu dới

tác dụng của ánh sáng làm tăng độ dẫn điện của vật liệu).
1.2.1.
Vật liệu để chế tạo cảm biến
7
Cảm biến quang thờng đợc chế tạo bằng các chất bán dẫn đa tinh thể
đồng nhất hoặc đơn tinh thể, bán dẫn riêng hoặc bán dẫn pha tạp, ví dụ nh:
- Đa tinh thể :CdS, CdSe, CdTe, PbS, PbSe, PbTe.
- Đơn tinh thể:Ge, Si tinh khiết hoặc pha tạp Au, Cu, Sb, In, SbIn,
AsIn,PIn, CdHgTe.
Vùng phổ làm việc của các vật liệu này khác nhau.
1.2.2.

Các đặc trng
- Điện trở: giá trị điện trở tối Rc0 phụ thuộc vào dạng hình học, kích th-
ớc, nhiệt độ và bản chất lí hóa của vật liệu quang dẫn. Điện trở Rc của cảm
biến khi bị chiếu sáng giảm rất nhanh khi độ rọi tăng lên. Sự phụ thuộc của
điện trở vào thông lợng ánh sáng không tuyến tính, tuy nhiên có thể tuyến tính
hóa bằng cách sử dụng một điện trở mắc song song với tế bào quang dẫn.
- Độ nhạy: độ dẫn của tế bào quang dẫn là tổng của độ dẫn trong tối và
độ dẫn khi chiếu sáng. Độ nhạy phổ là hàm của nhiệt độ nguồn sáng: khi nhiệt
độ tăng thì độ nhạy phổ tăng lên.
Tế bào quang dẫn đợc ứng dụng nhiều bởi chúng có tỉ lệ chuyển đổi tĩnh
và độ nhạy cao cho phép đơn giản hóa trong việc ứng dụng (ví dụ điều khiển
các rơle hình 7-14). Nhợc điểm chính của tế bào quang dẫn là:
- Hồi đáp phụ thuộc một cách không tuyến tính vào thông lợng.
- Thời gian hồi đáp lớn.
- Các đặc trng không ổn định (già hóa).
- Độ nhạy phụ thuộc vào nhiệt độ.
- Một số loại đòi hỏi phải làm nguội.
Ngời ta không dùng tế bào quang dẫn để xác định chính xác thông lợng.

Thông thờng chúng đợc sử dụng để phân biệt mức sáng khác nhau (trạng thái
tối- sáng hoặc xung ánh sáng). Thực tế thì tế bào quang dẫn thờng ứng dụng
:Thu tín hiệu quang dùng để biến đổi xung quang thành xung điện. Sự ngắt
8
quãng của xung ánh sáng chiếu lên tế bào quang dẫn sẽ đợc phản ánh trung
thực qua xung điện của mạch đo, ứng dẫn để đo tốc độ quay của đĩa hoặc đếm
vật.

Đơn vị đo cờng độ ánh sáng:

Lux
(ký hiệu: lx) là đơn vị đo độ rọi trong SI. Nó đợc sử dụng
trong trắc quang học để đánh giá cờng độ ánh sáng cảm nhận đợc. Đây là
một đơn vị dẫn xuất trong SI, nghĩa là nó đợc định nghĩa từ các đơn vị "cơ
bản" hơn. Cụ thể, do độ rọi bằng quang thông trên diện tích:
1 lx = 1 lm/m
2
Đơn vị đo quang thông trong SI, lumen, lại là một đơn vị dẫn xuất nên:
1 lx = 1 cd sr / m
2
Một văn phòng sáng sủa có độ rọi khoảng 400 lux


9

Chơng II
tổng quan về PSoC
2.1. Giới thiệu về chíp PSoC:
Ngày nay. Trong một hệ thống nhúng (Embeded system), hay sản phẩm,
thiết bị phức tạp khác thì sự kết hợp của các khối ngoại vi nh: Các bộ lọc,

khuyếch đại, bộ điều chế độ rộng xung PWM, hay các bộ chuyển đổi tơng tự
số (ADC), số - tơng tự (DAC) v.v . là rất cần thiết và giúp giải quyết rất
nhiều bài toán đặt ra từ các hệ thống tự động phức tạp đến các thiết bị điện tử
văn phòng, gia dụng.
Càng nhiều thành phần trong một hệ thống thì càng chiếm nhiều không
gian, nảy sinh các vấn đề trong việc thiết kế mạch, kết hợp các thành phần, và
tăng độ phức tạp của hệ thống. Để giải quyết vấn đề trên thì ngày nay công
nghệ SoC (Sytem on chip) ra đời với xu hớng tích hợp hệ thống trong một con
chíp. Đi đầu trong việc phát triển và ứng dụng công nghệ này là hãng Cypress
MicroSystems với việc cho ra đời chip PSoC.
Thuật ngữ PSoC là viết tắt của cụm từ tiếng anh Programmable System
on Chip, nghĩa là hệ thống khả trình trong một chip. Các chíp PSoC có thể thay
đổi cấu hình rất đơn giản băng cách gán các chức năng cho các khối tài
nguyên có sẵn trên chip. Hơn nữa ta cũng có thể kết nối tơng đối mềm dẻo các
khối chức năng với nhau hay các cổng vào ra, đem lại sự thuận tiện cho các
phơng án thiết kế.
10
Thành phần của các chíp PSoc gồm có: Bộ vi xử lý 8 bit, Bộ nhớ chơng
trình (EEROM) có thể lập trình đợc và bộ nhớ RAM khá lớn tùy thuộc vào
từng con khác nhau trong họ.
Để lập trình cho PSoC. Cypress MicroSystems cung cấp phần mềm
PSoC Designer. Phần mềm này đợc thiết kế trên cơ sở hớng đối tợng với cấu
trúc mô đun hóa. Mỗi khối chức năng là một mô đun mềm. Các khối chức
năng đợc chia làm hai loại, khối tơng tự và khối số. Cấu hình của chíp đợc
thực hiện bằng cách sử dụng các chức năng có sẵn. Để sử dụng các chức năng
nào, ngời sử dụng chỉ cần kéo chức năng đó và gán vào các khối tài nguyên.
Tùy vào nhiệm vụ cụ thể mỗi chức năng sẽ chiếm một số lợng các khối số,
khối tơng tự hoặc cả khối số và khối tơng tự nhất định. Ngời lập trình cho
PSoC có thể thiết lập chức năng và chế độ hoạt động cho từng chân vào ra của
chip.

Với khả năng thiết lập cấu hình linh hoạt và mạnh mẽ nh vậy một thiết
bị đo lờng, điều khiển có thể đợc gói gọn trong một chíp. Chính vì vậy hãng
Cypress MicroSystems không gọi PSoC là Micro controller (Vi điều khiển),
mà gọi là PSoC device hay Thiết bị PSoC với hy vọng rằng ngời sử dụng
sẽ có đợc những thiết bị đo lờng, điều khiển có kích thớc nhỏ gọn, sự hoạt
động ổn định và giá thành rẻ. Thay thế đợc các thiết bị dựa trên vi xử lý và vi
điều khiển đã có trớc đây.
2.2 .Giới thiệu về chip PSoC CY8C27443-24PXI :
2.2.1. Thông số của CY8C27443-24PXI :
* Bộ vi xử lý với cấu trúc harvard.
- Bộ vi xử lý có tốc độ lên đến 24MHz.
- Lệnh nhân 8bit x 8 bit, thanh ghi tích lũy là 32bit.
- Có thể hoạt động ở tốc độ cao mà tiêu tốn ít năng lợng.
11
- D¶i ®iÖn ¸p ho¹t ®éng tõ 3.00V tíi 5.25V
- §iÖn ¸p ho¹t ®éng cã thÓ gi¶m xuèng 1.0V sö dông chÕ ®é kÝch ®iÖn ¸p.
- D¶i nhiÖt ®é chÞu ®ùng tõ - 40
0
C ®Õn 85
0
C.


12
13
14
Hình 2.1 Sơ đồ cấu trúc CY8C27443-24PXI
Các khối ngoại vi có thể đợc sử dụng độc lập hoặc kết hợp tùy vào chức
năng sử dụng.
Có 12 khối ngoại vi tơng tự đợc thiết lập để làm các nhiệm vụ:

- Các bộ ADC lên tới 14 bit.
- Các bộ DAC lên tới 9 bit.
- Các bộ khuyếch đại có thể tùy chọn đợc hệ số khuyếch đại.
- Các bộ lọc và các bộ so sánh có thể lập trình đợc.
Có 8 khối ngoại vi số đợc thiết lập để làm các nhiệm vụ:
- 8 tới 32 bit cho timers, counters, và bộ điều chế độ rộng xung PWM
- Các modun kiểm tra lỗi (CRC modunles).
- Hai bộ truyền thông nối tiếp không đồng bộ hai chiều.
- Các bộ truyền thông SPI Matster hoặc Slave có thể cấu hình đợc.
- Có thể kết nối với tất cả các chân vào ra.
Xung nhịp của chip có thể lựa chọn đợc.
- Bộ tạo dao động trong 24/48MHz có độ chính xác 2,5%.
- Bộ tạo dao động ngoài có thể lựa chọn lên tới 24MHz.
- Bộ dao động thạnh anh 32kHz bên trong.
Bộ nhớ linh hoạt trên chip.
- Bộ nhớ Flash có không gian nhơ 16K với 50.000 lần ghi xóa.
- 256 Byte không gian bộ nhớ RAM
- Chip có thể lập trình thông qua chuẩn nối tiếp (ISSP)
- Có thể nâng cấp từng phần bộ nhớ Flash.
- Chế độ bảo vệ linh hoạt và đáng tin cậy.
Có thể lập trình đợc cấu hình cho từng chân của chíp.
- Các chân vào ra ba trạng thái sử dụng Trigger Schmitt.
15
- Đầu ra logic có thể cung cấp dòng 25mA với điện trở treo cao hoặc thấp
bên trong.
- Cung cấp tới 12 đầu vào tơng tự.
- Đờng ra tơng tự có thể cung cấp dòng tới 30mA.
- Thay đổi đợc ngắt trên từng chân.
* Tài nguyên hệ thống.
- Module truyền thông I

2
C Master và I
2
C Slave tốc độ lên tới 400KHz.
- Bộ định thời Watchdog và Sleep phục vụ chế độ an toàn và chế độ nghỉ.
- Module phát hiện điện áp thấp đợc cấu hình bởi ngời sử dụng.
2.2.2. Cấu trúc vi xử lý
Chíp PSoC CY8C27443-24PXI đợc chế tạo dựa trên bộ vi xử lý mạnh
mẽ 8 bit với cấu trúc Harvart (cấu trúc Harvart là cấu trúc mà bus địa chỉ, bus
dữ liệu và tín hiệu điều khiển bộ nhớ chơng trình và bộ nhớ dữ liệu độc lập
nhau). Hoạt động chính của CPU đợc điều khiển bởi 5 thanh ghi. Những
thanh ghi này bị tác động bởi những lệnh khác nhau. Ngời sử dụng có thể truy
cập trực tiếp vào các thanh ghi này thông qua không gian bộ nhớ các thanh
ghi.
Thanh ghi Mã gợi nhớ
Flags (Thanh ghi cờ) CPU_F
Program Counter (Thanh ghi đếm chơng trình ) CPU_PC
Accumulator (Thanh ghi chứa) CPU_A
Stack Pointer (Thanh ghi con trỏ) CPU_SP
Index (Thanh ghi chỉ số) CPU_X
Bảng 2.1: Các thanh ghi của CPU
16
2.2.2.1. Thanh ghi cờ (Flags Register).
Thanh ghi cờ (Flags) gồm ba bit trạng thái: bit cờ không - Zero Flag bit
[1]; bit cờ nhớ Carry Flag bit[2]; bit Supervisory State [3]. Bít cho phép
ngắt toàn cục- Global Interrupt Enable bit[0] đợc dùng để cho phép hoặc cấm
toàn bộ các ngắt. Các cờ trên bị ảnh hởng bởi lệnh toán học, những lệnh logic
vv
Bit # 7 6 5 4 3 2 1 0
POR 0 0 0 0 0 0 1 0

Read/Write RW R RW RW RW
Bit Name Reseved Reseved Reseved XI0 Super Carry Zero Global IE
Bảng 2.2: Thanh ghi cờ CPU_F
Bit7: Reseved (Cha đợc định nghĩa)
Bit6: Reseved(Cha đợc định nghĩa)
Bit5: Reseved(Cha đợc định nghĩa)
Bit4: XIO- Đợc đặt bởi ngời sử dụng cho phép lựa chọn giữa các dẫy
thanh ghi
0=Bank0
1=Bank1
Bit3: Reseved(Cha đợc định nghĩa)
Bit2: Carry Đợc đặt bởi CPU để chỉ rõ toán tử logic hoặc toán học trớc
đó có nhớ hay không
0=No Carry(Không có nhớ)
1=Carry (Có nhớ)
Bit1: Zero Đợc đặt bởi CPU để chỉ rõ toán tử trong phép toán logic hoặc
toán học trớc đó có bằng không hay không.
0= Not Equal to zero (không bằng không)
17
1= Equal to zero (Bằng không)
Bit0: Global IE- Quyết định toàn bộ các ngắt là cho phép hay bị cấm.
0= Disabled(Cấm)
1= Enabled(cho phép)
2.2.2.2. :Thanh ghi bộ đếm chơng trình
Thanh ghi bộ đếm chơng trình là thanh ghi 16 bit (CPU_PC), nó cho phép ngời
lập trình truy cập trực tiếp vào toàn bộ không gian bộ nhớ chơng trình trên chíp
(16 kbytes đối với thành viên lớn nhất). Đây là một không gian nhớ liên tục và
không cần phải tạo thành trang(no paging).
Bit# 7 6 5 4 3 2 1 0
POR 0 0 0 0 0 0 0 0

Read/Write 1 1 1 1 1 1 1 1
Bit Name Data
[7]
Data
[6]
Data
[5]
Data
[4]
Data
[3]
Data
[2]
Data
[1]
Data
[0]
Bảng 2.3: Thanh ghi bộ đếm chơng trình (CPU-PC)
2.2.2.3. Thanh ghi chứa
Thanh ghi chứa (Accumulator) là một thanh ghi đa mục đích, nó thờng
đợc sử dụng để lu giữ kết quả của bất cứ một lệnh nào sử dụng chế độ địa chỉ
nguồn.
18
Bit# 15 14 13 12 11 10 9 8
POR 0 0 0 0 0 0 0 0
Read/Write 1 1 1 1 1 1 1 1
Bit Name Data
[15]
Data
[14]

Data
[13]
Data
[12]
Data
[11]
Data
[10]
Data
[19]
Data
[8]
Bit # 7 6 5 4 3 2 1 0
POR 0 0 0 0 0 0 0 0
Read/Write System
1
System
1
System
1
System
1
System
1
System
1
System
1
System
1

Bit Name Data[7] Data[6] Data[5] Data[4] Data[3] Data[2] Data[1] Data[0]
Bảng 2.2.2.3: Thanh ghi chứa(CPU-A)
Bit [7:0]: 8 bit dữ liệu lu giữ kết quả của bất cứ một lệnh toán học
logic sử dụng chế độ địa chỉ nguồn.
POR(Power on reset): Trạng thái của bit sau khi reset nguồn.
System
1
: Do hệ thống điều chỉnh, ngời dùng không thể thay đổi trực tiếp
đợc giá trị của những bit này.
2.2.2.4. Thanh ghi con trỏ Stack
Thanh ghi con trỏ Stack (Stack Pointer) lu giữ địa chỉ của đỉnh ngăn
Stack trong không gian dữ liệu. Nó bị tác động bởi những lệnh nh là PUSH,
POP, LCALL, RETI và RET. Nói chung là tất cả những lệnh có liên quan đến
Stack của phần mềm nó cũng có thể ảnh hởng bởi lệnh SWAP và lệnh ADD.
Bit # 7 6 5 4 3 2 1 0
POR 0 0 0 0 0 0 0 0
Read/Write System
1
System
1
System
1
System
1
System
1
System
1
System
1

System
1
Bit Name Data[7] Data[6] Data[5] Data[4] Data[3] Data[2] Data[1] Data[0]
Bảng 2. 4: Thanh ghi con trỏ Stack (CPU-SP)
Bit [7:0]: 8 bit dữ liệu lu giữ giá trị con trỏ Stack hiện thời (trỏ vào đỉnh
của Stack).
19
2.2.2.5. Thanh ghi chỉ số
Thanh ghi chỉ số đợc dùng để lu giữ giá trị Offset (độ lệch) trong chế độ
địa chỉ chỉ số. Tiêu biểu là nó đợc dùng để địa chỉ một khối dữ liệu bên trong
không gian nhớ dữ liệu.
Bit # 7 6 5 4 3 2 1 0
POR 0 0 0 0 0 0 0 0
Read/Write System
1
System
1
System
1
System
1
System
1
System
1
System
1
System
1
Bit Name Data[7] Data[6] Data[5] Data[4] Data[3] Data[2] Data[1] Data[0]

Bảng2.5: Thanh ghi chỉ số(CPU-X)
Bit [7:0]: 8 bit dữ liệu lu giữ chỉ số cho bất cứ một lệnh sử dụng chế độ
địa chỉ chỉ số.
2.2.3. Định dạng của lệnh
2.2.3.1. Lệnh 1 byte
Lệnh 1 byte là lệnh không dùng địa chỉ hay dữ liệu nh toán hạng. Lệnh
1 byte sử dụng một mã lệnh 8 bit ví dụ nh RET, ASR, INC, DEC
Dạng lệnh 1 byte
Byte 0
8-Bit Opocde
Bảng 2.6: Dạng lệnh 1 byte
2.2.3.2. Lệnh 2 byte
Lệnh 2 byte là lệnh dùng duy nhất một toán hạng là dữ liệu hay địa chỉ.
Lệnh 2 byte sử dụng byte đầu tiên để chứa mã lệnh, byte thứ hai để chứa dữ
liệu hoặc địa chỉ hoặc nó sử dụng 4 bit đầu cho mã lệnh và 12 bit sau cho địa
chỉ.
Byte 0 Byte 0
4-Bit Opocde 12 Bit relative address
8-Bit Opocde 8 Bit data
8-Bit Opocde 8 Bit address
Bảng 2.7: Dạng lệnh 2 byte
20
2.2.3.3. Lệnh 3 byte
Lệnh loại này sử dụng 3 byte bởi vì nó đợc sử dụng để di chuyển dữ liệu
giữa hai địa chỉ trong không gian địa chỉ mà ngời sử dụng có thể truy nhập.
Hoặc nó dùng để lu giữ một giá trị địa chỉ tuyệt đối 16 bit trong các lệnh
LCALL và LJMP.
Byte 0 Byte 1 Byte 2
8-Bit Opocde 16- Bit address (MSB, LSB)
8-Bit Opocde 8- Bit Data 8- Bit Data

8-Bit Opocde 8- Bit Address 8- Bit address
Bảng 2.8: Dạng lệnh 3 byte.
2.2.4. Các chế độ địa chỉ trong PSoC
2.2.4.1. Chế độ địa chỉ nguồn tức thời (Source Immediate)
Những lệnh sử dụng chế độ địa chỉ này có giá trị nguồn đợc lu giữ trong
toán hạng 1 của lệnh, kết quả đợc lu giữ trong thanh ghi A, thanh ghi F, thanh
ghi SP hay thanh ghi X đợc chỉ rõ trong lệnh. Lệnh sử dụng chế độ địa chỉ nay
có độ dài là 2 byte
2.2.4.2. Chế độ địa chỉ nguồn trực tiếp (Source Direct)
Trong chế độ này thì địa chỉ nguồn đợc lu giữ trong toán hạng 1 của
lệnh. Trong suốt quá trình thi hành lệnh thì địa chỉ đợc dùng để lấy giá trị
nguồn từ RAM hoặc từ không gian địa chỉ thanh ghi. Kết quả đợc chỉ rõ trong
lệnh là đặt vào thanh ghi X hay thanh ghi A. Tất cả những lệnh sử dụng chế độ
địa chỉ trực tiếp đều là lệnh có độ dài 2 byte
2.2.4.3. Chế độ địa chỉ nguồn chỉ số.
Trong chế độ này thì dữ liệu của nguồn đợc truy suất trong RAM hoặc
không gian địa chỉ thanh ghi thông qua địa chỉ là giá trị hiện thời của thanh
ghi X cộng với một chỉ số. Kết quả đợc chỉ rõ trong lệnh là lu trong thanh ghi
X hay thanh ghi A. Lệnh có độ dài là 2 byte.
2.2.4.4. Chế độ địa chỉ đích trực tiếp (Destination Direct)
21
Những lệnh thuộc chế độ địa chỉ này có địa chỉ đợc lu trong mã máy của
lệnh, địa chỉ nguồn đợc chỉ rõ trong lệnh là thanh ghi A hay X. Tất cả những
lệnh sử dụng chế độ địa chỉ này đều là lệnh 2 byte.
2.2.4.5: Chế độ địa chỉ chỉ số (Destination Indexed)
Những lệnh thuộc chế độ địa chỉ này có đích đợc xác định bằng cách lấy
giá trị của thanh ghi X cộng với một chỉ số làm địa chỉ để truy xuất vào bộ
nhớ, nguồn đợc xác định trong lệnh là thanh ghi A hoặc một giá trị tức thời.
Những lệnh sử dụng chế độ địa chỉ này đều là lệnh có độ dài 2 byte.
2.2.4.6. Chế độ địa chỉ đích trực tiếp, nguồn tức thời tức thời (Destination

Direct, Source Immediate)
Những lệnh thuộc chế độ địa chỉ này có địa chỉ của đích đợc lu giữ
trong toán hạng 1 của lệnh. Giá trị của nguồn đợc lu trong toán hạng 2 câu
lệnh. Tất cả những lệnh thuộc chế độ địa chỉ này đều là lệnh có độ dài 3 byte.
2.2.4.7. Chế độ địa chỉ đích chỉ số, nguồn tức thời (Destination Indexed,
Source Immediate)
Trong chế độ này thì giá trị của thanh ghi X cộng với một chỉ số đợc lấy
làm địa chỉ để lấy dữ liệu trong bộ nhớ. Còn dữ liệu nguồn là một số trực tiếp.
Tất cả những lệnh thuộc chế độ địa chỉ này đều là lệnh 3 byte.
2.2.4.8. Chế độ địa chỉ đích trực tiếp, nguồn trực tiếp (Destination Direct ,
Source Direct)
Chỉ có duy nhất một lệnh sử dụng chế độ địa chỉ này, địa chỉ của đích đ-
ợc lu giữ trong toán hạng 1 của lệnh còn địa chỉ của nguồn đợc lu giữ trong
toán hạng 2 của lệnh. Tất cả những lệnh sử dụng chế độ địa chỉ này đều là
lệnh có độ dài 3 byte.
2.2.4.9. Chế độ địa chỉ sử dụng con trỏ tự động tăng địa chỉ
22
Con trỏ là toán hạng nguồn (Source Indirect Post Increment). Chỉ có duy
nhất một lệnh sử dụng chế độ địa chỉ này, địa chỉ nguồn lu giữ trong toán
hạng 1 hoạt động nh địa chỉ của một con trỏ. Trong suốt quá trình lệnh thi
hành thì giá trị của con trỏ sẽ quyết định xem dữ liệu nào trong Ram sẽ đợc
đọc. Sau khi đọc xong dữ liệu thì giá trị của con trỏ đợc tăng lên 1.
2.2.5. Ngắt và bộ điều khiển ngắt.
Address Name Bit7 Bit6 Bit5 Bit4 Bit3 Bit2 Bit1 Bit0 Access
0,DAh INT_CLR0 VC3 Sleep GPIO Analog3 Analog2 Analog1 Analog0 V
Monitor
RW:00
0,DBh INT_CLR1 DCB13 DCB12 DCB11 DCB110 DCB03 DCB02 DCB01 DCB00 RW:00
0,DDh INT_CLR3 I
2

C RW:00
0,DEh INT_MSK3 ENSWINT I
2
C RW:00
0,E0h INT_MSK0 VC3 Sleep GPIO Analog3 Analog2 Analog1 Analog0 V
Monitor
RW:00
0,E1h INT_MSK1 DCB13 DCB12 DCB11 DCB10 DCB03 DCB02 DCB01 DCB00 RW:00
0,E2h INT_VC Pending Interrupt [7:0 ] RC:00
X,F7h CPU_F XOI Carry Zero GIE RL:00
Bảng 2.9 : Các thanh ghi của bộ điều khiển ngắt.
Bộ điều khiển ngắt cho phép một đoạn mã của ngời lập trình đợc thực
hiện mỗi khi có một ngắt sinh ra từ các khối chức năng trong chíp PSoC. Mỗi
một khối số có một ngắt riêng và mỗi cột khối tơng tự cũng có một ngắt riêng.
Mỗi một ngắt cho nguồn cấp, chế độ ngủ, xung nhịp thay đổi, và một ngắt
toàn cục cho các chân vào ra đa chức năng.
Bộ điều khiển ngắt cùng với những thanh ghi của nó cho phép các ngắt
có thể bị vô hiệu hoá đồng thời hoặc độc lập nhau. Các thanh ghi cung cấp
một cách thức để ngời sử dụng có thể xóa tất cả những ngắt đang chờ và thông
báo ngắt, hoặc có thể xoá một cách độc lập hay riêng biệt thông báo ngắt và
ngắt chờ.
Mức u tiên ngắt Địa chỉ Tên ngắt
0(Cao nhất) 0000h Reset
1 0004h Supply Voltage Monitor
2 0008h Analog Column 0
3 000Ch Analog Column 1
4 0010h Analog Column 2
5 0014h Analog Column 3
23
6 0018h VC3

7 001Ch GPIO
8 0020h PSOC Block DBB 00
9 0024h PSOC Block DBB 01
10 0028h PSOC Block DBB 02
11 002Ch PSOC Block DBB 03
12 0030h PSOC Block DBB 10
13 0034h PSOC Block DBB 11
14 0038h PSOC Block DBB 12
15 003Ch PSOC Block DBB 13
24 0060h I
2
C
25(Thấp nhất) 0064h Sleep Timer
Bảng 2.10 : Bảng các vecter ngắt.
2.2.5.1: Mô tả cấu trúc của bộ điều khiển ngắt
Hình 2.2: Sơ đồ khối hoạt động của bộ điều khiển ngắt.
Interrupt Source: Nguồn ngắt (bộ định thời, các chân vào ra đa chức năng)
Interrupt Taken or INT_CLRx Write: Thi hành ngắt hoặc xoá ngắt
INT_MSKx: Lập mặt nạ che ngắt
Post Interrupt: Thông báo ngắt
Pending Interrupt: Ngắt chờ
24
Interrupt
Source
(Timer,
GPIO,
etc)
R
D Q
Priority

Encoder
Interrupt
Request
M8C
Core
INT_MSKx
Mask Bit Setting
Posted
Interrup
t
Pending
Interrupt
GIE
CPU_F[0]
Priority Encoder: Bộ mã hoá mức u tiên của ngắt
GIE(CPU_F[0]): Cho phép ngắt toàn cục (Global Interrupt Enable)
Interrupt Request: Yêu cầu ngắt
Dẫy các sự kiện xẩy ra khi một ngắt đợc thi hành nh sau:
1. Khi một ngắt đợc kích hoạt, có thể là do một điều kiện ngắt đợc sinh
ra (do tràn bộ đếm chẳng hạn) và trớc đó thông báo ngắt cho phép bởi thanh
ghi mặt nạ che ngắt, hoặc có một ngắt đang chờ đợc xử lý và GIE (global
Interrupt enable- cho phép ngắt toàn cục) đợc đặt từ 0 sang 1 trong thanh ghi
cờ của CPU.
2. Lệnh thi hành hiện thời kết thúc ở biên giới lệnh (biên giới lệnh là
thời điểm CPU chuyển từ lệnh này sang lệnh khác).
3. Thủ tục ngắt bên trong đợc thực hiện, tiêu tốn 13 chu kỳ máy. Trong
khoảng thời gian này CPU thực hịên những công việc sau:
- Lu byte cao, byte thấp của bộ đếm chơng trình (PCH và PCL) và thanh
ghi cờ (CPU_F) vào trong Stack theo thứ tự trên.
- Thanh ghi cờ đợc xoá trắng và từ đó bit GIE bị xoá về 0 và những ngắt

mới sinh ra tạm thời bị cấm.
- Byte cao của bộ đếm chơng trình (PC[15:8]) đợc xoá về 0.
- Vector ngắt đợc đọc từ bộ điều khiển vetor ngắt và giá trị của nó đợc
đặt vào trong byte thấp của bộ đếm chơng trình trỏ vào địa chỉ thích hợp trong
bảng vetor ngắt.
4. Chơng trình sẽ thi hành vetor trong bảng vetor ngắt. Nhìn chung thì
một lệnh LJMP trong bảng vetor ngắt sẽ chuyển sự thi hành của CPU tới trình
phục vụ ngắt của ngời dùng để phục vụ ngắt này.
5. Trình phục vụ ngắt đợc thi hành. Lu ý rằng tất cả các ngắt đều bị vô
hiệu hoá kể từ khi bit GIE= 0. Các ngắt khác có thể đợc mở lại trong trình
25

×