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

Nghiên cứu tìm hiểu chip PSoC ứng dụng vào thiết kế mạch điện tử

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.17 MB, 83 trang )

BỘ GIÁO DỤC VÀ ĐÀO TẠO
TRƯỜNG ĐẠI HỌC BÁCH KHOA HÀ NỘI

ĐỖ BÁ THÁI

NGHIÊN CỨU TÌM HIỂU CHÍP PSOC ỨNG DỤNG VÀO THIẾT
KẾ MẠCH ĐIỆN TỬ

LUẬN VĂN THẠC SĨ
NGÀNH KỸ THUẬT ĐIỆN TỬ

Hà Nội, 2006


BỘ GIÁO DỤC VÀ ĐÀO TẠO
TRƯỜNG ĐẠI HỌC BÁCH KHOA HÀ NỘI

ĐỖ BÁ THÁI

NGHIÊN CỨU TÌM HIỂU CHÍP PSOC ỨNG DỤNG VÀO THIẾT KẾ
MẠCH ĐIỆN TỬ

LUẬN VĂN THẠC SĨ
NGÀNH KỸ THUẬT ĐIỆN TỬ

NGƯỜI HƯỚNG DẪN :
TS.NGUYỄN NAM QUÂN

Hà Nội, 2006



Mục lục
Lời mở đầu .................................................................................................1

30T

30 T

Phần1. Tổng quan về chip PSoC. .............................................................3

30T

30T

Chương 1. Đặc điểm chung ....................................................................4

30T

30 T

1.1 Bộ vi xử lý. .....................................................................................4

30T

30 T

1.2 Các khối tương tự OnChip ..............................................................5

30T

3 0T


1.3 Các khối số OnChip ........................................................................5

30T

30 T

1.4 Khối vào ra đa chức năng. ...............................................................5

30T

30 T

1.5 Ngắt. ...............................................................................................6

30T

30T

1.6 Xung nhịp hệ thống. ........................................................................6

30T

30T

1.7 Một số module được thiết lập sẵn từ bộ phần mềm PSoC

30T

Designer. .................................................................................................6

30T

1.8 Sơ lược về phần mềm thiết kế PSoC Designer ................................7

30T

30T

Chương 2. Đặc điểm cấu trúc của bộ vi điều khiển ..............................9

30T

30T

2.1 Bộ vi xử lý ......................................................................................9

30T

30T

2.1.1 CPU ..........................................................................................9

30T

30T

2.1.2 Hệ thống các thanh ghi ...........................................................10

30T


30 T

2.1.3 Tập lệnh của bộ vi xử lý .........................................................11

30T

30 T

2.1.4 Chế độ định địa chỉ .................................................................12

30T

30T

2.2 Bộ điều khiển ngắt ........................................................................14

30T

3 0T

2.2.1 Cấu trúc bộ điều khiển ngắt ....................................................15

30T

30 T

2.2.2 Các thanh ghi của bộ điều khiển ngắt ......................................15

30T


30T

2.3 Cổng vào ra đa chức năng (General Purpose IO – GPIO ) .............17

30T

30T

2.3.1 Hệ thống các thanh ghi điều khiển vào ra ...............................18

30T

30T

2.3.2 Phân loại các chân vào ra ........................................................19

30T

30 T

2.3.3 Ngắt GPIO ..............................................................................20

30T

30 T


Chương 3. Hệ thống các khối PSoC số ................................................22

30T


30 T

3.1 Hệ thống các thanh ghi ..................................................................23

30T

30 T

3.2 Các liên kết số toàn cục. ................................................................25

30T

30T

3.3 Liên kết dãy các khối số ................................................................27

30T

30T

3.4 Liên kết các khối số theo hàng. .....................................................28

30T

30T

3.5 Nguồn xung nhịp dùng cho các khối số .........................................29

30T


30T

Chương 4. Hệ thống các khối PSoC tương tự .....................................31

30T

30T

4.1 Giao diện tương tự ........................................................................33

30T

30T

4.1.1 Giao diện ABUS .....................................................................33

30T

30T

4.1.2 Giao diện với CBUS ...............................................................33

30T

30 T

4.1.3 Giao diện giữa hệ thống tương tự với chân vào ra ...................34

30T


30T

4.2 Nguồn xung nhịp cho các hệ thống tương tự .................................35

30T

30T

4.3 Nguồn tham chiếu cho các hệ thống tương tự. ..............................35

30T

30T

4.4 Hệ thống các thanh ghi ..................................................................36

30T

30 T

Phần 2 Thiết kế hệ thống khóa điện tử sử dụng thẻ chip điện tử. .........38

30T

Mục đích thiết kế ..................................................................................38

30T

30T


Chương 5. Thiết kế phần cứng ............................................................39

30T

30 T

5.1 Sơ đồ khối tổng quát. ....................................................................39

30T

30T

5.2. Chức năng chi tiết của các khối. ...................................................39

30T

30 T

5.2.2 Nguồn nuôi. ............................................................................40

30T

30T

5.2.3 Đồng hồ ..................................................................................40

30T

30T


5.2.4 Module nhớ. ..........................................................................41

30T

30T

5.2.5 Thẻ nhớ ..................................................................................42

30T

3 0T

5.2.6 Khối bàn phím. ......................................................................44

30T

30 T

5.2.6.1 Thuật tốn chương trình điều khiển phím bấm ..................45

30T

30 T

5.2.6.2 Thuật tốn ngắt qt bàn phím 16 phím .............................46

30T

30T


5.2.6.3 Chương trình điều khiển qt phím. ..................................47

30T

30 T


5.2.7 Khối màn hình LCD ...............................................................53

30T

30 T

5.2.8 Khối giao tiếp với máy tính ....................................................55

30T

30T

5.2.9 Switch .....................................................................................58

30T

30 T

5.2.10 Mạch cơng suất, khóa cửa và cảm biến .................................59

30T


30 T

5.3 Sơ đồ nguyên lý của board mạch chính .........................................61

30T

30T

5.4 Thiết kế lựa chọn các module Onchip. ..........................................62

30T

30T

5.4.1 Lựa chọn các User module ......................................................63

30T

30T

5.4.2 Sơ đồ kết nối giữa các module ................................................64

30T

30 T

5.4.2 Cấu hình các tham số hệ thống: ..............................................64

30T


30 T

Chương 6. Thiết kế phần mềm ............................................................67

30T

30T

6.1 Hệ thống các lưu đồ thuật tốn ......................................................67

30T

30T

6.1.1 Thuật tốn chương trình chính. ...............................................68

30T

30 T

6.1.2 Thuật tốn xử lý bàn phím ......................................................69

30T

30T

6.1.3 Thuật tốn giao tiếp máy tính .................................................70

30T


30 T

6.1.4 Thuật tốn kiểm tra sự kiện cắm thẻ .......................................71

30T

30T

6.1.5 Thuật toán xử lý thẻ ................................................................72

30T

30 T

6.1.6 Một số xử lý khác ...................................................................73

30T

30T

6.2 Phần mềm máy tính giao tiếp với hệ thống. ..................................75

30T

30 T

Kết luận. ...................................................................................................77

30T


30 T

Tài liệu tham khảo. ..................................................................................78

30T

Phụ lục

30T

Tóm tắt luận văn

30T

30 T


1

Lời mở đầu
Ngày nay, các thiết bị điện tử hoạt động theo chương trình có lẽ là rất phổ
biến trong đời sống sinh hoạt, trong công nghiệp cũng như trong rất nhiều các
lĩnh vực khác.Chính vì vậy ngày nay có rất nhiều các kỹ sư điện tử cũng như
các tổ chức cá nhân nghiên cứu và thiết kế các sản phẩm dựa trên các họ vi xử
lý, vi điều khiển. Phổ biến như PIC của hãng Microchip, 8051 của Intel,
Atmel, Philip... Chip PSoC có lẽ có mặt ở Việt chậm hơn một thời gian, vì
vậy nó vẫn chưa có được nhiều sự quan tâm của các kỹ sư thiết kế, cũng như
các bạn sinh viên. Với mục đích tìm hiểu và nghiên cứu chip PSoC để ứng
dụng vào việc thiết kế mạch điện tử, tác giả nhận thấy chip PSoC là một hệ
thống rất là hoàn thiện đối với hầu hết các thiết kế điều khiển hiện nay. Đặc

biệt với sự trỡ giúp rất hoàn hảo của nhà cung cấp (hãng Cypress) thông qua
phần mềm PSoC Designer người thiết kế sẽ rất nhanh chóng để tiếp cận cũng
như làm chủ được nó.
Trong đề tài tốt nghiệp này, với mục đích nắm bắt được chip PSoC để có
thể làm chủ được nó trong tương lai gần. Tác giả đã thực hiện thiết kế bộ
khóa điện tử sử dụng thẻ nhớ thay cho chìa khóa và ổ khóa cơ khí thơng
thường. Với sự giúp đỡ và chỉ dẫn nhiệt tình của thầy giáo – TS Nguyễn Nam
Quân – khoa Điện tử Viễn thông – trường Đại học Bách Khoa Hà nội, tác giả
đã hoàn thành được đề tài luận văn với kết quả thu được thỏa mãn yêu cầu đặt
ra.
Nội dung của đề tài luận văn bao gồm:
Phần 1. Tổng Quan về Chip PSoC
Phần 2. Trình bày về thiết kế hệ thống khóa điện tử sử dụng thẻ chip.


2

Do thời gian thực hiện đề tài có hạn cũng như kinh nghiệm của tác giả có
được chưa nhiều, nên chắc đề tài sẽ cịn rất nhiều thiếu sót. Tác giả kính được
sự góp ý, chỉ dẫn vá đánh giá của các thầy cô
Tác giả bày tỏ lời cảm ơn chân thành tới thày giáo TS. Nguyễn Nam Quân
cùng tất cả các thầy cô trong khoa Điện Tử Viễn thông và toàn thể các bạn
đồng nghiệp đã giúp đỡ tác giả hoàn thành bản luận văn này.
Hà Nội, tháng 10 năm 2006
Tác giả

Đỗ Bá Thái


3


Phần1. Tổng quan về chip PSoC.
PSoC (Programable System on Chip) – Hệ thống có khả năng lập trình
trên một chíp đơn. Giống như các họ Vi điều khiển khác, PSoC cũng là một
họ với đầy đủ tính năng của một chip vi điều khiển. Điểm khác biệt lớn nhất
của PSoC so với một số họ Vi điều khiển phổ biến hiện nay như : PIC,
MCS51, AVR … đó là khả năng cấu hình rất mềm dẻo. Do được tích hợp sẵn
rất nhiều các khối chức năng từ chức năng số đến chức năng tương tự, do vậy
mà PSoC có thể đảm nhận chức năng của một hệ thống điều khiển mà chỉ cần
một chíp đơn.
Bộ nhớ chương trình Flash ROM và bộ nhớ dữ liệu có kích thước tương
đối lớn rất phù hợp với các bài tốn có quy mơ. Việc lập trình cho bộ nhớ
Flash sử dụng chuẩn giao tiếp ISP.
Làm việc với chíp PSoC, có lẽ người thiết kế sẽ nhận thấy sự rất thoải mái
với sự hỗ trỡ tối đa từ nhà sản xuất thông qua phần mềm miễn phí PSoC
Designer. Rất nhiều các hàm chức năng đã được cũng cấp sẵn thông qua các
thư viện, và được khởi tạo một cách tự động khi thiết kế. Sẽ rất linh hoạt
trong việc lập trình bởi việc tích hợp sẵn mơi trường lập trình C trong PSoC
Designer.


4

Chương 1. Đặc điểm chung
1.1 Bộ vi xử lý.
- Bộ vi xử lý được thiết kế với cấu trúc Harvard, Hai bộ nhớ chương
trình Flash Rom và RAm được giao tiếp với Vi xử lý trên hai Bus độc
lập.
- CPU hoạt động ở rất nhiều tần số khác nhau từ 93Khz đến 24MHz.
- Tích hợp bộ nhân 8 bit, thanh ghi tích lũy độ rỗng 32 bit.

- Tiêu hao cơng suất thấp.
- Điện áp hoạt động thấp từ 3V – 5.25 V.
- …

Hình 1.1 Cấu trúc tổng qt của chíp PSoC (họ CY8C29x66)


5

1.2 Các khối tương tự OnChip
Tích hợp sẵn bên trong 12 khối chức năng tương tự có khả năng cấu hình
hết sức mềm dẻo để trở thành các khối module như:
- ADC từ 6 – 14bits.
- DAC đến 9bits.
- Các module khuyếch đại với hệ số khuyếch đại có thể lập trình được.
- Các module so sánh.
- Các bộ lọc thông thấp (LPF) hay thông dải (BPF).

1.3 Các khối số OnChip
Số lượng các khối chức năng số Onchip phụ thuộc vào các họ khác
nhau nhứ 8 khối ở họ CY8C27x43 hay 16 khối với họ CY8C29x66..
Các khối số này có thể cấu hình thành rất nhiều các module chức năng
khác nhau.
- Các bộ đếm, bộ định thời, các bộ điều chế độ rộng xung PWM từ 8 –
32 bits.
- Các khối truyền thông : RS232, hồng ngoại, khối truyền thông I2C
master/slave…

1.4 Khối vào ra đa chức năng.
- Tất cả các chân vào ra của chip đều có thể được cấu hình một cách độc

lập nhau thơng qua hệ thống các thanh ghi vào ra đa chức năng.
- Tất cả các chân vào ra đa chức năng đều có thể thực hiện ngắt tới CPU,
các trạng thái ngắt thay đổi được bằng phần mềm.


6

- Có sẵn các điện trở treo nguồn (Pullup) hoặc kéo đất (PullDown) cung
cấp dòng đầu ra số tới 25mA Logic, và 40 mA với các dòng đầu ra
tương tự.
- Các chân ra có thể cấu hình ở nhiều trạng thái khác nhau:
(PullUp/PullDown/HighZ…).

1.5 Ngắt.
- Tất cả các chân của chip đều có thể thực hiện yêu cầu ngắt (Ngắt
GPIO).
- Tất cả các khối số đều có thể đưa ra yêu cầu ngắt.
- Tất cả các khối tương tự cũng đều có thể đưa ra yêu cầu ngắt.

1.6 Xung nhịp hệ thống.
Hệ thống có thể sử dụng nguồn xung đồng hồ có sẵn ở bên trong hoặc
cũng có thể sử dụng nguồn phát xung cấp từ bên ngoài.
Với bộ tạo xung nhip trong chíp ta khơng cần phải có bất kỳ một ngoại vị
nào để tạo ra xung nhịp 24/48MHz với độ chính xác 2.5%.

1.7 Một số module được thiết lập sẵn từ bộ phần mềm PSoC
Designer.
- Module điều khiển màn LCD.
- Module điều khiển Led đơn.
- Module điều khiển Led 7 thanh

- Module I2C.
- Module E2PROM


7

Hình 1.2 Module E2PROM
E2PROM có lẽ là một đặc điểm rất là đặc biệt của chíp PSoC. Đây là
một module giả lập bộ nhớ EEPROM trong không gian bộ nhớ chương
trình của chip. Ta có thể sử dụng nó như một bộ nhớ EEPROM gắn thêm
vào hệ thống. Việc truy xuất vào không gian bộ nhớ này được thực hiện
thông qua các hàm API có sẵn từ phần mềm PSoC Designer.

1.8 Sơ lược về phần mềm thiết kế PSoC Designer
Về cơ bản phần mềm PSoC Designer bao gồm 3 phần cơ bản như sau:
- Device Editor:
Để bắt đầu thực hiện một project thì Device Editor là bước đấu tiên.
Trong giai đoạn này người thiết thực hiện các thao tác lựa chọn các module sẽ
được sử dụng trong project, thiết lập các kết nối giữa các khối chức năng,
thiết lập các chân chức năng cho các chân sẽ sử dụng, đặt các tham số cho
từng module và cả hệ thống.
Nếu giai đoạn này thực hiện tốt thì việc cấu hình từ chương trình bằng
lện sẽ giảm thiểu đi rất nhiều. Và như vậy người thiết kế sẽ không cần thiết
phải nhớ được tất cả các hệ thống thanh ghi rất đồ sộ của chip.
- Application Editor.


8

Đây là mơi trường để người lập trình viết lệnh cho project và biên dịch

chương trình. PSoC Designer hỗ trọ khả năng viết chương trình bằng ngơn
ngữ C hoặc Assembly.
- Debugger.
Đây là bộ mô phỏng gỡ rối được sử dụng kết hợp với board mạch mô
phong do hãng Cypress sản xuất.

Hình 1.3 Trình tự thực hiện một project


9

Chương 2. Đặc điểm cấu trúc của bộ vi điều khiển
2.1 Bộ vi xử lý
2.1.1 CPU

Hình 2.1 Cấu trúc lõi của chíp PSoC
Chíp PSoC của hãng Cypress được thiết kế dựa trên bộ vi xử lý 8 bit với
cấu trúc Harvard – Cấu trúc bộ nhớ chương trình và bộ nhớ dữ liệu có Bus địa
chỉ và bus dữ liệu là hoàn toàn độc lập nhau:


10

Hình 2.2 Tổ chức bộ nhớ của chip PSoC

2.1.2 Hệ thống các thanh ghi
Hầu hết mọi hoạt động của CPU đều có sự tham gia của 5 thanh ghi chức
năng sau:
- Thanh ghi chứa (CPU_A - Accumulator )
- Thanh ghi chỉ số (CPU_X - Index)

- Thanh ghi bộ đếm chương trình (CPU_PC Program Counter)
- Con trỏ ngăn xếp (CPU_SP - Stack Pointer)
- Thanh ghi cờ (CPU_F – Flag)
 Thanh ghi chứa: Là một thanh ghi đa chức năng, sử dụng để lưu giữ kết
quả của các lệnh sử dụng chế độ định địa chỉ nguồn.
 Thanh ghi chỉ số được sử dụng lưu giá trị độ lệch (Offset) trong chế độ địa
chỉ chỉ số


11

2.1.3 Tập lệnh của bộ vi xử lý
Bảng 2.1 Tập lênho của chip PSoC.


12

Tập lệnh của chíp PSoC bao gồm hơn 130 lệnh với định dạng câu lệnh và
chế độ định địa chỉ trong câu lệnh như sau:
- Lện 1 byte đây là câu lệnh thực thi mà không cần dùng đến địa chỉ hay
dữ liệu, lệnh sử dụng 1 byte mã lệnh:

- Lệnh 2 byte là lệnh sử dụng duy nhất 1 toán hạng là dữ liệu hay địa chỉ.
Byte thứ nhất của lệnh là mã lệnh, byte thứ hai chứa dữ liệu hoặc địa chỉ.
Cũng có thể nó sử dụng 4 bit đầu cho mã lệnh và 12 bít sau cho địa chỉ.

- Lệnh 3 byte, cấu trúc lệnh này bao gốm byte đầu là mã lệnh, byte thứ
hai dữ liệu byte thứ 3 là địa chỉ ô nhớ - lệnh này thực hiện việc ghi dữ liệu
vào ô nhớ, hoặc cả hai byte thứ hai và thứ 3 đều là địa chỉ ô nhớ - đây là lệnh
thực hiện di chuyển dữ liệu giữa các ô nhớ. Hay 2 byte sau là byte thấp và

byte cao của địa chỉ ô nhớ trong bộ nhớ chương trình. – đây là câu lệnh thay
đổi địa chỉ thực thi chương trình.

2.1.4 Chế độ định địa chỉ
Trong PSoC có đến 10 chế độ định địa chỉ khác nhau đó là:
- Địa nguồn chỉ tức thời (Source Immediate)

- Địa chỉ nguồn trực tiếp (Source Direct)


13

- Địa chỉ nguồn chỉ số (Source Indexed)

- Địa chỉ đích trực tiếp (Destination Direct)

- Địa chỉ đích chỉ số (Destination Indexed)

- Địa chỉ đích trực tiếp, nguồn tức thời (Destination Direct, Source
Immediate)

- Địa chỉ đích chỉ số, nguồn tức thời (Destination Indexed, Source
Immediate)

- Địa chỉ đích trực tiếp, nguồn trực tiếp( Destination Direct, Source
Direct)

- Địa chỉ nguồn gián tiếp sử dụng con trỏ tự động tăng địa chỉ( Source
Indirect Post Increment)


- Địa chỉ đích gián tiếp sử dụng con trỏ tự động tăng địa chỉ( Source
Indirect Post Increment)


14

2.2 Bộ điều khiển ngắt
Bảng 2.2 Bảng vector ngắt của CY8C29466:
Mức ưu tiên
ngắt
0
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19

20
21
22
23
24
25

Địa chỉ
ngắt
0000h
0004h
0008h
000Ch
0010h
0014h
0018h
001Ch
0020h
0024h
0028h
002Ch
0030h
0034h
0038h
003Ch
0040h
0044h
0048h
004Ch
0050h

0054h
0058h
005Ch
0060h
0064h

Tên ngắt
Reset (Khởi đồng)
Supply Voltage Monitor
Analog Column 0 Interrupt Vector
Analog Column 1 Interrupt Vector
Analog Column 2 Interrupt Vector
Analog Column 3 Interrupt Vector
VC3 Interrupt Vector
GPIO Interrupt Vector
PSoC Block DBB00 Interrupt Vector
PSoC Block DBB01 Interrupt Vector
PSoC Block DBB02 Interrupt Vector
PSoC Block DBB03 Interrupt Vector
PSoC Block DBB10 Interrupt Vector
PSoC Block DBB11 Interrupt Vector
PSoC Block DBB12 Interrupt Vector
PSoC Block DBB13 Interrupt Vector
PSoC Block DBB20 Interrupt Vector
PSoC Block DBB21 Interrupt Vector
PSoC Block DBB22 Interrupt Vector
PSoC Block DBB23 Interrupt Vector
PSoC Block DBB30 Interrupt Vector
PSoC Block DBB31 Interrupt Vector
PSoC Block DBB32 Interrupt Vector

PSoC Block DBB33 Interrupt Vector
PSoC I2C Interrupt Vector
Sleep Timer Interrupt Vector

Bộ điều khiển ngắt yêu cầu chương trình đang chạy phải dừng lại để
thực hiện một đoạn mã theo yêu cầu của người lập trình khi có ngắt sinh ra từ
các khối chức năng của chip.


15

Trong chip PSoC thì mỗi khối số đều có khả năng sinh ra một ngắt
riêng đến CPU, và mỗi một cột của khối tương tự có khả năng sinh ra 1 ngắt.
Đối với ngắt ngồi thì tất cả các chân vào ra của chíp đều có thể sinh ra ngắt
(ngắt GPIO), tuy nhiên tất cả các ngắt do các chân vào ra sinh ra đều có chung
1 địa ngắt duy nhất.

2.2.1 Cấu trúc bộ điều khiển ngắt

Hình 2.3 Sơ đồ khối của bộ điều khiển ngắt

2.2.2 Các thanh ghi của bộ điều khiển ngắt
Toàn bộ hoạt động của bộ điều khiển ngắt được điều khiển hệ thống các
thanh ghi điều khiển ngắt. Sử dụng các thanh ghi này giúp ta kiểm soát và
điều khiển được các ngắt hết sức thuận tiện dễ dàng.
Bảng 2.3 Hệ thống thanh ghi của 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 DBB11 DBB10
DCB03
DCB02
DBB01
DBB00
RW:00
0,DCh
INT_CLR2
DCB33

DCB32 DBB31 DBB30
DCB23
DCB22
DCB21
DCB20
RW:00
0,DDh
INT_CLR3
I2C
RW:00
0,DEh
INT_MSK3
ENSWINT
I2C
RW:00
0,DFh
INT_MSK2
DCB33
DCB32 DBB31 DBB30
DCB23
DCB22
DCB21
DCB20
RW:00
0,E0h
INT_MSK0
VC3
Sleep
GPIO
Analog3

Analog2
Analog1
Analog0
V Monitor
RW:00
0,E1h
INT_MSK1
DCB13
DCB12 DBB11 DBB10
DCB03
DCB02
DBB01
DBB00
RW:00
0,E2h
INT_VC
Pending Interrupt[7:0]
RC:00
x,F7h
CPU_F
XOI
Carry
Zero
GIE
RL:00
LEGEND
L: The AND, OR , and XOR flag inftructions can be used to modify this register
C: Cearable Register or bits
x: An”x” before the comma in the address field indicates that this register can be accessed or written to no matter what bank is used.



16

- Các thah ghi INT_CLRx (x=0,1,2,3) là các thanh ghi ghi / xóa ngắt.
Việc thao tác trên các thanh ghi này có thể hủy đi một số ngắt nào đó
hoặc cũng có thể tạo ra một số ngắt nào đó. Hoặc có thể xác định được
các thơng báo ngắt hiện tại là của khối phần cứng nào.
- Xong việc ghi hay xóa các bít trong các thanh ghi INT_CLRx có tác
dụng gì thì cịn phụ thuộc vào giá trị của bit ENSWINT ( Enable
Software Interrupt – Cho phép ngắt phần mềm) trong thanh ghi
INT_MSK3.
- Các thanh ghi INT_MSKx (x=0,1,2,3) là các thanh ghi mặt nạ ngắt
việc ghi 1 hay xóa về 0 các bit trong các thanh ghi này (trừ bít
ENSWINT) sẽ cho phép hay cấm một ngắt tương ứng nào đó.
- Thanh ghi INT_VC đây là thanh ghi lưu thơng tin về ngắt chờ thực
hiện có mức ưu tiên cao nhất trong số các ngắt đang yêu cầu thực hiện.
Khi ngắt được thực hiện thanh ghi sẽ bị xóa.
- Bit GIE trong thanh ghi CPU_F có ảnh hưởng tới toàn bộ hệ thống
ngắt của chip. Khi bit này bị xóa về 0 thì tồn bộ các u cầu ngắt đều
bị CPU bỏ qua. Các yêu cầu ngắt chỉ có thể được thực hiện khi bít GIE
được set bằng 1.


17

2.3 Cổng vào ra đa chức năng (General Purpose IO – GPIO )
Các cổng vào ra đa chức năng cung cấp khả năng giao tiếp với các
ngoại vi bên ngoài chíp. Mỗi cổng vào ra đa chức năng đều có độ rộng 8 bít,
và được điều khiển bởi một hệ thống rất nhiều các thanh ghi. Mỗi một chân
vào ra của các cổng vào ra đều có thể cầu hình hoạt động ở nhiều chế độ khác

nhau.

Hình 2.4 Cấu trúc của một chân vào ra đa chức năng


18

2.3.1 Hệ thống các thanh ghi điều khiển vào ra
Các cổng vào ra được điều khiển thông qua hệ thống các thanh ghi điều
khiển cổng.
Bảng 2.4 Các thanh ghi điều khiển cổng vào ra
Address
0,xxh
0,xxh
0,xxh
0,xxh
1,xxh
1,xxh
1,xxh
1,xxh

Name
PRTxDR
PRTxIE
PRTxGS
PRTxDM2
PRTxDM0
PRTxDM1
PRTxIC0
PRTxIC1


Bit7

Bit6

Bit5

Bit4 Bit3 Bit2
Data Register
Bit Interrupt Enables
Global Select
Drive Mode 2
Drive Mode 0
Drive Mode 1
Interrupt Control 0
Interrupt Control 1

Bit1

Bit0

Access
RW:00
RW:00
RW:00
RW:FF
RW:00
RW:FF
RW:00
RW:00


- Thanh ghi PRTxDR là thanh ghi dữ liệu cổng. Việc ghi vào một bít
trong thanh ghi PRTxDR sẽ làm trạng thái của chân tương ứng ở mức
cao hoặc mức thấp. Việc đọc giá trị của PRTxDR sẽ trả về giá trị thực
về trạng thái của chân.
- Thanh ghi PRTxIE là thanh ghi cho phép/ không cho phép ngắt ở các
chân GPIO (x là chân ở cổng x, x=0,1,2..).
- Thanh ghi PRTxGS là thanh ghi dùng để lựa chọn khối cho sự kết nối
tới đầu vào hoặc đầu ra toàn cục.
- PRTxDM0/1 là các thanh ghi điều khiển chế độ cho mỗi chân của
cổng. (Chế độ hoạt động của các chân GPIO cho ở bảng 2.5)
- Thanh ghi PRTxICx (PRT0IC0,PRT1IC1)…là các thanh ghi thiết lập
chế độ ngắt cho các chân ngắt, các cặp bit tương ứng ở hai thanh ghi
(IM0,IM1)sẽ quyết định chế độ ngắt cho chân GPIO tương ứng. (Các
chế độ ngắt của chân GPIO được thiết lập như bảng 2.6)


19

2.3.2 Phân loại các chân vào ra
Các chân vào ra của chip PSoC có thể được cấu hình để trở thành
- Chân vào ra số: Các chân vào ra số là các chân được điều khiển thông
qua phần mềm. Việc đọc hay ghi các thanh ghi này thực hiện thông
qua thanh ghi dữ liệu cổng. Tất cả các chân vào ra đa chức năng đều là
các chân vào ra số.
- Chân vào ra toàn cục: Là các chân vào ra được nối đến các khối số
thông qua các vào ra toàn cục. Tất cả các chân vào ra đa chức năng đều
có thể cấu hình để trở thành vào ra toàn cục.
- Chân vào ra tương tự: Là các chân cung cấp tín hiệu tương tự cho
chip hoặc là chân ra cảu các khối tương tự. Các chân này được nối với

CPU thông qua các khối AOUT của khối tương tự. Chỉ có một số chân
vào ra của chip có thể được thiết lập để trở thành các chân vào hoặc ra
tương tự.
Các chế độ của các chân có thể được cấu hình thơng qua các thanh ghi
cấu hình (PRTxDM0, PRTxDM 1, PRTxDM 2) bằng cách ghi trực tiếp
giá trị vào các thanh ghi này hoặc có thể cấu hình trực tiếp trong khi lựa
chon các user module trong phần Device Editor.
Bảng 2.5 Các chế độ hoạt động của chân GPIO
Drive Mode
DM[2:0]
000b
001b
010b
011b
100b
101b
110b
111b

Pin Stae

Description

Resistive pull down
Strong drive
High impedance
Resistive pull up
Open drain high
Slow strong drive
High impedance,

analog (reset state)
Open
drain
low

Strong high, resistive low
Strong high, strong low
Hi-Z high and low, digital input enabled
Resistive high, strong low
Slow strong high, Hi-Z low
Slow strong high, slow strong low
Hi-Z high and low, digital input disabled
(for zero power) (reset state)
Slow strong low, Hi-Z high


20

2.3.3 Ngắt GPIO
Tất cả các chân vào ra của chip đều có thể sinh ra ngắt. Và tất cả các
ngắt này đều có chung một vector ngắt duy nhất. Do đó để xác định được
chân nào đã sinh ra ngắt khi có nhiều hơn một ngắt GPIO được thiết lập thì
chương trình phải kiểm tra bằng các đọc giá trị tại các chân ngắt.
Để một chân vào ra có khả năng sinh ra ngắt tới CPU thì cần phải tiến
hành các bước sau:
- Đặt chế độ ngắt cho chân GPIO.
- Mở bít ngắt cho chân GPIO.
- Mở bit mặt nạ ngắt cho chân GPIO.
- Set bít ngắt tồn cục GIE.


Hình 2.5 Sơ đồ khối chế độ ngắt của chân GPIO


×