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

Bài giảng vi xử lý potx

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.28 MB, 118 trang )

Bài giảng VI XỬ LÝ Chương 1: Giới thiệu vi xử lý
1
CHƯƠNG 1: GIỚI THIỆU VI XỬ LÝ


I. TỔNG QUAN VỀ HỆ THỐNG VI XỬ LÝ
1. Quá trình phát triển của máy vi tính (tham khảo [LQĐ-p.7 ÷ 9])
- Máy vi tính bao gồm những máy tính dùng bộ vi xử lý (họ Intel, Motorola, AMD…) làm cốt
lõi, các vi điều khiển (microcontroller) hay máy vi tính trong một vi mạch (one-chip
microcomputer).
2. Ứng dụng của vi xử lý (tham khảo [LQĐ-p.9])
3. Sơ đồ khối của hệ vi xử lý
Sơ đồ khối tiêu biểu của hệ vi xử lý: (hệ thống vi xử lý có kiến trúc 3-bus) [LQĐ-p.11]

Một hệ vi xử lý gồm có các thành phần chính sau:
-
μ
P (microprocessor hay còn gọi là CPU): đọc mã lệnh từ bộ nhớ (được ghi dưới dạng các
bit 0 và 1), sau đó giải mã và thực thi lệnh.
- Bộ nhớ (Memory): chứa các chương trình điều khiển hoạt động của toàn hệ và các dữ liệu,
kết quả trung gian. (Có hai loại bộ nhớ: RAM (Random Access Memory) là loại bộ nhớ truy
xuất ngẫu nhiên và ROM (Read-Only Memory) là loại bộ nhớ chỉ đọc).
μP (Microprocessor): Vi xử lý
CPU (Central Processing Unit): Đơn vò xử lý trung tâm
Address bus: Bus đòa chỉ
Data bus: Bus dữ liệu
Control bus: Bus điều khiển
RAM (Random Access Memory): Bộ nhớ truy xuất ngẫu nhiên
ROM (Read-Only Memory): Bộ nhớ chỉ đọc
I/O Interface: Khối giao tiếp nhập/xuất
Peri


p
heral Devices: Thiết b
ò
n
g
oa
ï
i vi



μP
(CPU)
Data bus
Control bus
RAM ROM I/O Interface
Address bus
Input
Devices
Memory
Hình 1.1
Output
Devices
Peripheral Devices
Bài giảng VI XỬ LÝ Chương 1: Giới thiệu vi xử lý
2
- Khối giao tiếp nhập/xuất (Input/Output - I/O): tạo ra khả năng giao tiếp giữa hệ vi xử lý với
các thiết bò ngoại vi như bàn phím, chuột … (thiết bò nhập), màn hình, máy in, loa … (thiết bò
xuất), các ổ đóa… (thiết bò xuất/nhập)
- Bus: ba khối chức năng trên liên hệ với nhau thông qua một tập các đường dây để truyền

thông tin gọi là bus. Trong hệ thống vi xử lý thường bao gồm 3 loại bus: bus đòa chỉ, bus dữ
liệu và bus điều khiển.

Mọi nguồn thơng tin vào CPU, nếu khơng là bộ nhớ thì là thiết bị đầu vào.
Mọi đích đến của thơng tin từ CPU, nếu khơng là bộ nhớ thì là thiết bị đầu ra.
Tổng kết lại các điểm quan trọng từ sơ đồ 1.1:
1.

Hệ vi xử lý có 3 khối chính:

Bộ nhớ

CPU

Phối ghép (giao tiếp) vào/ra (I/O)
2.

CPU đọc thơng tin từ bộ nhớ và ghi thơng tin vào bộ nhớ
3.

Các thiết bị đầu vào đưa thơng tin từ bên ngồi vào hệ vi xử lý
4.

Các thiết bị đầu ra đưa thơng tin từ CPU đến các đối tượng bên ngồi
5.

Thơng tin khơng chạy trực tiếp từ bộ nhớ đến các phối ghép vào/ra (I/O) và ngược lại, trước
tiên thơng tin phải đi qua CPU
Có thể thấy rằng vi xử lý chỉ trao đổi thơng tin với bộ nhớ và các phối ghép vào/ra I/O. Dù hệ thống sau
này có phức tạp như thế nào hoặc chương trình có dài đến đâu thì vi xử lý chỉ làm những việc sau:

1.

Đọc từ bộ nhớ
2.

Ghi vào bộ nhớ
3.

Đọc từ các đầu vào
4.

Ghi vào các đầu ra
5.

Thực hiện các lệnh nội bộ như lệnh cộng (ADD), lệnh trừ (SUB) …

II. CÁC LOẠI BUS
1. Bus đòa chỉ
- Có chức năng chuyển tải các thông tin về đòa chỉ.
- Khi đọc/ghi bộ nhớ hay thiết bò I/O, μP sẽ đưa ra các bit đòa chỉ trên bus đòa chỉ để chọn
chính xác một ngăn nhớ (word) hay một thiết bò I/O cụ thể nào đó sẽ được giao tiếp với nó.
- Số lượng đòa chỉ mà μP có thể quản lý phụ thuộc vào số bit (số đường dây) của bus đòa chỉ
(16, 20, 24, 32 … bit).
Ví dụ:
Một μP có số đường dây của bus đòa chỉ là N = 16
→ có khả năng quản lý: 2
N
= 2
16
= 2

6
.2
10
= 64.2
10
= 64 K = 65356 đòa chỉ.
- Bus đòa chỉ là loại bus một chiều (xuất phát từ
μ
P).
¾ Đệm bus đòa chỉ [LQĐ – p.60+61]
Do tất cả các thiết bò ngoại vi và bộ nhớ đều được nối với bus đòa chỉ nên về mặt điện có thể
vượt quá tính chòu tải (fan-out) của vi xử lý. Trong trường hợp các mạch nối vào bus đòa chỉ
tiêu thụ dòng điện lớn hơn khả năng chòu tải của vi xử lý thì hệ thống sẽ không hoạt động
hay hoạt động không ổn đònh. Để giải quyết vấn đề này ta sử dụng các bộ đệm trung gian
được gọi là bộ đệm đòa chỉ.
Bài giảng VI XỬ LÝ Chương 1: Giới thiệu vi xử lý
3
Ví dụ: Đệm đòa chỉ cho CPU có bus đòa chỉ 16-bit:

Hình 1.2
2. Bus dữ liệu
- Có chức năng chuyển tải các thông tin về dữ liệu đến/từ μP.
- Số lượng đường dây của bus này quyết đònh số bit dữ liệu mà μP có khả năng xử lý cùng
một lúc (8, 16, 32, 64 … bit).
- Bus dữ liệu là loại bus hai chiều.
Tuy nhiên tại một thời điểm nhất đònh thì dữ liệu chỉ được truyền theo một hướng duy nhất.
Hình 1.3 Dữ liệu di chuyển 2 chiều trên bus dữ liệu
Lưu ý: Hoạt động của bus đòa chỉ và bus dữ liệu hoàn toàn độc lập với nhau (hình 1.4).



Hình 1.4
¾ Đệm bus dữ liệu [LQĐ – p.62]
Tương tự như bus đòa chỉ, bus dữ liệu cũng cần được đệm để tăng fan-out khi cần thiết. Lưu
ý là cần dùng kỹ thuật đệm 2 chiều (hình 1.5) (IC 74LS245).



CPU
Bộ nhớ hoặc
phối ghép
vào/ra (I/O)

Bus dữ liệu


CPU
Bộ nhớ hoặc
phối ghép

vào/ra (I/O)
Bus dữ liệu
a
)
Đ

c - Read
b) Ghi - Write
Bài giảng VI XỬ LÝ Chương 1: Giới thiệu vi xử lý
4
Hình 1.5

Kỹ thuật đệm 2 chiều sử dụng
thêm một tín hiệu điều khiển, tín
hiệu này sẽ quy định chiều dữ liệu
sẽ được đệm.
A
B
BD0 đi vào
hệ thống
D0 đến CPU
Điều khiển hướng

3. Bus điều khiển
- Gồm nhiều đường dây tín hiệu khác nhau ( RD,WR …), mỗi tín hiệu điều khiển có một
chiều nhất đònh. Khi hoạt động, μP có thể đưa tín hiệu điều khiển đến các khối khác nhau
trong hệ, đồng thời nó cũng có thể nhận các tín hiệu từ các khối khác để phối hợp hoạt động
của toàn hệ.
Lưu ý: Bus điều khiển ở khối I/O vẽ dạng 2 chiều để chỉ tính 2 chiều của cả nhóm tín hiệu,
chứ không phải của mỗi tín hiệu.
- Có 6 loại truyền thông tiêu biểu mà bus điều khiển phải xác đinh bằng tín hiệu điện:
[LQĐ – p.63]
1. Đọc từ bộ nhớ
2. Ghi vào bộ nhớ
3. Đọc từ phối ghép đầu vào (Input)
4. Ghi vào phối ghép đầu ra (Output)
5. Nhận biết u cầu ngắt (Interrupt acknowledge)
6. Nhận biết u cầu treo (Hold acknowledge, phục vụ DMA)

Giải thích về truyền thông trong cấu trúc 3-bus dựa vào sơ đồ khối hình 1.1: đọc và ghi.

III. VI XỬ LÝ (μP – MICROPROCESSOR)

Sơ đồ khối của một μP được cho trên hình 1.6.
Có ba khối chức năng chính: khối thực thi (Execution Unit), khối điều khiển tuần tự
(Sequencer) và khối giao tiếp bus (Bus Interface).
- Bộ điều khiển tuần tự (Sequencer): nhận lệnh từ bộ nhớ, sau đó giải mã lệnh và truyền
lệnh đã giải mã đến khối thực thi.
+ Bộ đếm chương trình: là một thanh ghi lưu giữ đòa chỉ của lệnh kế tiếp sẽ được thực thi.

Mỗi khi một lệnh được thực thi, bộ đếm chương trình sẽ được tăng lên 1 để chỉ ra đòa chỉ
của lệnh kế tiếp sẽ được thực thi. Nội dung của bộ đếm chương trình được đặt lên bus đòa
chỉ để tìm và nhận lệnh mong muốn. Như vậy,
μ
P thực hiện các lệnh của chương trình một
cách tuần tự, trừ khi gặp các lệnh chuyển điều khiển (lệnh nhảy, gọi chương trình con …)
làm thay đổi nội dung PC. Trong một số vi xử lý, bộ đếm chương trình còn được gọi là con
trỏ lệnh IP (Instruction Pointer).

+ Bộ giải mã lệnh: thông dòch (diễn dòch) các lệnh được nhận vào μP.
Bài giảng VI XỬ LÝ Chương 1: Giới thiệu vi xử lý
5
Có thể xem bộ giải mã lệnh như một từ điển lưu trữ nghóa của mỗi lệnh và các bước mà
μ
P cần thực hiện đối với mỗi lệnh được nhận vào. Giống như từ điển nếu có càng nhiều
trang thì có thể đònh nghóa được nhiều từ hơn, một
μ
P có thể hiểu càng nhiều lệnh hơn nếu
có bộ giải mã lệnh càng lớn.

- Thanh ghi lệnh IR: lưu giữ mã nhò phân của lệnh đang được thực thi.

- Khối thực thi (Execution Unit): thực thi và ghi kết quả câu lệnh. Các toán hạng (operand)

liên quan có mặt ở các thanh ghi (registers) hoặc có từ bus nội (internal bus).
+ ALU (Arithmetic Logic Unit): là một mạch điện tử có khả năng thực hiện các phép
toán số học (+, -, *, / …) và logic (AND, OR, NOT, XOR…).
+ Thanh ghi (Register): là một bộ nhớ cực nhanh, có dung lượng hạn chế nằm bên trong
μP. Các thanh ghi thường được dùng để lưu trữ các thông tin tạm thời. Mỗi thanh ghi có
một đòa chỉ để truy xuất tới nó. Các thanh ghi được nối với nhau hoặc đến các phần tử
Execution Unit: Khối thực thi
Control Unit: Khối điều khiển
Registers: Các thanh ghi
ALU (Arithmetic & Logic Unit): Khối logic - số học
Sequencer: Bộ điều khiển tuần tự
Instruction Register: Thanh ghi lệnh
Instruction Decoder: Bộ giải mã lệnh
Program Counter: Bộ đếm chương trình
Internal bus: Bus nội
Bus interface: Giao tiếp bus
Data bus driver: Bộ điều khiển bus dữ liệu
Control bus driver: Bộ điều khiển bus điều khiển
Address bus driver: Bộ điều khiển bus đòa chỉ
Address bus
Data bus
Control bus
Registers
(data, address)
ALU
Address bus
driver
Data bus
driver
Control bus

driver
Program Counter
Internal bus
B
us
Interface
E
xecution Uni
t
Sequence
r
Hình 1.6
Control
Unit
Instruction Decoder
Instruction Register
Bài giảng VI XỬ LÝ Chương 1: Giới thiệu vi xử lý
6
khác của μP hay nối với bus ngoài nhờ bus nội. Độ rộng của các thanh ghi có thể là 8-
bit, 16-bit, 32-bit hay 64-bit tùy thuộc vào loại μP.

Thông tin có thể là 2 giá trò cần được xử lý hay đòa chỉ chứa giá trò cần được xử lý nhận từ
bộ nhớ (hay I/O).
μ
P có càng nhiều thanh ghi và độ rộng càng lớn thì càng tốt vì lúc này chương trình
không phải thực hiện nhiều phép truyền thông tin giữa
μ
P và bộ nhớ do có thể truy xuất
trực tiếp từ thanh ghi, từ đó làm giảm thời gian truy xuất cũng như độ dài lệnh.


+ Khối điều khiển: tạo ra các tín hiệu điều khiển hoạt động của các bộ phận bên trong
và bên ngoài μP (tùy theo mã lệnh).
- Giao tiếp bus (Bus Interface): gồm ba bộ điều khiển bus để giao tiếp với bus bên ngoài
tương ứng: bus dữ liệu, bus điều khiển và bus đòa chỉ.

Việc tìm nạp lệnh từ bộ nhớ là một trong các thao tác cơ bản nhất mà
μ
P thực hiện, gồm các
bước như sau:
- Nội dung của PC được đặt lên bus đòa chỉ.
- Tín hiệu điều khiển READ được xác lập (chuyển sang trạng thái tích cực).
- Mã lệnh được đọc từ bộ nhớ và đưa lên bus dữ liệu.
- Mã lệnh được chốt vào thanh ghi lệnh IR bên trong.
- PC được tăng lên để chuẩn bò tìm nạp lệnh kế từ bộ nhớ.
Hình 1.7 minh họa luồng thông tin cho việc tìm nạp lệnh.



Hình 1.7

IV. BỘ NHỚ (MEMORY)
¾ Nhắc lại các đơn vò bit, nibble, byte, word [HTM – p.29]
− 1 nibble = 4 bit
− 1 byte = 8 bit
− Word là một nhóm gồm nhiều byte. Theo qui ước 1 word = 2 byte và 1 word dài = 4
byte (theo thế hệ vi xử lý 16-bit, 32-bit …)
Bài giảng VI XỬ LÝ Chương 1: Giới thiệu vi xử lý
7
1. Phân loại
Bộ nhớ thường được chia làm hai loại: bộ nhớ cơ bản (hay bộ nhớ chính – main memory) và

bộ nhớ lưu trữ (storage memory).
- Bộ nhớ chính: ROM và RAM.
- Bộ nhớ lưu trữ: băng từ, đóa mềm, đóa cứng…
Thông thường bộ nhớ lưu trữ được xem như là thiết bò I/O.
a. Bộ nhớ chỉ đọc – ROM (Read-Only Memory)
- Là bộ nhớ chỉ đọc, không thể sửa đổi thông tin trong các hoạt động thông thường.
- Thông tin ghi trong ROM sẽ không bò mất đi khi mất nguồn cung cấp.
- ROM được ghi bằng thiết bò chuyên dụng.
- ROM thường được dùng để chứa các chương trình và dữ liệu cố đònh (chương trình khởi
động, dữ liệu tra bảng …)
- Các loại ROM:
+ ROM: thông tin được ghi lúc chế tạo.
+ PROM (Programable ROM): là ROM trắng, chỉ cho phép ghi thông tin một lần duy
nhất.
+ EPROM (Erasable ROM): có thể ghi và xóa thông tin nhiều lần. Loại này được xóa
bằng cách rọi tia cực tím vào cửa sổ thủy tinh trên bề mặt.
+ EEPROM (Electrically EPROM): còn gọi là ROM điện, có thể ghi và xóa thông tin
bằng xung điện.
+ Flash ROM: tương tự EEPROM.
b. Bộ nhớ truy xuất ngẫu nhiên – RAM (Random Access Memory)
- Cho phép đọc/ghi thông tin bất kỳ lúc nào trong quá trình làm việc mà không cần thiết
bò đặc biệt.
- Thông tin trong RAM sẽ bò mất khi mất nguồn cung cấp.
- Có hai loại RAM chính:
+ RAM động – DRAM (Dynamic RAM): có cấu tạo từ các transistor MOSFET và tụ
điện (1 phần tử nhớ), lưu trữ thông tin bằng điện tích trong tụ nên thông tin có thể
mất đi (rò ró hết) nếu không có biện pháp duy trì thích hợp. Do đó cần có quá trình
làm tươi (refresh) đònh kì để phục hồi nội dung của các ô nhớ trước khi nó mất đi (rò
ró hết). DRAM có thể tích hợp với dung lượng lớn.
+ RAM tónh – SRAM (Static RAM): cấu tạo từ những Flipflop (FF) (1 phần tử nhớ),

mỗi FF lưu trữ một bit thông tin nên SRAM không cần quá trình làm tươi để duy trì
nội dung. Tuy nhiên, nó khó tích hợp với dung lượng lớn.
2. Cấu trúc bên trong tiêu biểu của bộ nhớ
- Bộ nhớ gồm các phần tử nhớ hay ô nhớ (memory cell) được tổ chức dưới dạng ma trận.
Mỗi ô nhớ chứa một bit thông tin.
- Mảng nhớ được phân chia thành một chuỗi các ngăn nhớ hay từ nhớ (word).
- Mỗi ngăn nhớ đều có một đòa chỉ duy nhất.
- Một ngăn nhớ có thể có 4-bit, 8-bit, 16-bit …
- Ký hiệu: số ngăn nhớ x độ rộng mỗi ngăn nhớ
Ví dụ: bộ nhớ 1024 x 8 bao gồm 2
10
ngăn nhớ, mỗi ngăn nhớ có 8-bit.

- Cấu trúc bên trong tiêu biểu của bộ nhớ:
Bài giảng VI XỬ LÝ Chương 1: Giới thiệu vi xử lý
8


- Các tín hiệu tiêu biểu trên một chip nhớ:
+
CS (Chip Select): tín hiệu chọn chip (cho phép chip).
+
OE
(Output Enable): tín hiệu cho phép xuất dữ liệu (nhận xung kích RD từ
μ
P).
+ WE (Write Enable): tín hiệu cho phép ghi dữ liệu (nhận xung kích WR từ
μ
P).
+ Address: các tín hiệu đòa chỉ (từ bus đòa chỉ) để chọn ngăn nhớ cần thao tác.

+ Data: các tín hiệu dữ liệu đọc ra (data output) hay ghi vào (data input), được nối với
bus dữ liệu.

3. Truy xuất bộ nhớ
* Các quy ước trên giản đồ thời gian: Hình 1.9
Hình 1.8



Memory
array
Write
Row
address
decoder

Column
address
decoder

EN
Three
State
driver

Data
Output
Data
Input
Data

OE )RD(
WE )WR(
CS
Address
Memory cell
Memory array: Mảng ô nhớ
Row address decoder: Bộ giải mã đòa chỉ hàng
Column address decoder: Bộ giải mã đòa chỉ cột
Memory cell: Ô nhớ
Three state driver: Bộ điều khiển ngõ ra 3 trạng thái
Data Output: Dữ liệu ra
Data Input: Dữ liệu vào
Address: Đòa chỉ
Write: Ghi
Bài giảng VI XỬ LÝ Chương 1: Giới thiệu vi xử lý
9



Bài giảng VI XỬ LÝ Chương 1: Giới thiệu vi xử lý
10
a. Truy xuất ROM
Giới thiệu EPROM 2764:
Đây là IC nhớ 28 chân 8K (8192 x 8) với 13 đường đòa chỉ và 8 đường dữ liệu. Chú ý
rằng chân /PGM không được điều khiển bởi vi xử lý, chỉ dùng cho bộ nạp dữ liệu vào
ROM. Điện áp VPP chỉ sử dụng khi nạp ROM, còn điện áp VCC = 5V là điện áp hoạt
động của ROM.








Quy trình đọc ROM:
1. Xác đònh đòa chỉ của ngăn nhớ cần truy xuất. CPU sẽ
đưa đòa chỉ này lên bus đòa chỉ đến ROM.
2. Kích hoạt tín hiệu chọn chip cho phép dữ liệu được xuất
ra bus dữ liệu.
3. CPU đợi 1 khoảng thời gian ngắn gọi là thời gian truy
cập để vi mạch nhớ giải mã đòa chỉ và xuất dữ liệu ra
đường dữ liệu. CPU xuất xung nhòp nạp dữ liệu vào thanh
ghi bên trong.
4. Tín hiệu chọn chip được đặt ở mức không tích cực và
xóa dữ liệu từ ROM vào CPU.


Hình 1.10
b. Truy xuất RAM
Giới thiệu RAM 6264
Đây là IC nhớ cho phép đọc ghi tùy ý, 28 chân 8K (8192 x 8) với 13 đường đòa chỉ và 8
đường dữ liệu.
Quy trình đọc RAM: tương tự như đọc dữ liệu từ ROM.


A0 – A12 Đường đòa chỉ
D0 – D7 Đường dữ liệu
/CE Chọn chip
/OE Cho phép xuất
/PGM Lập trình

A0
10
A1
9
A2
8
A3
7
A4
6
A5
5
A6
4
A7
3
A8
25
A9
24
A10
21
A11
23
A12
2
CE
20
OE
22

PGM
27
VPP
1
D0
11
D1
12
D2
13
D3
15
D4
16
D5
17
D6
18
D7
19
2764
Bài giảng VI XỬ LÝ Chương 1: Giới thiệu vi xử lý
11


















Hình 1.11

Hình 1.12
Quy trình ghi RAM:
1. Các đường địa chỉ được kết nối với RAM xác định ngăn nhớ nào trong RAM sẽ được kết nối.
2. Dữ liệu cần ghi vào RAM được xuất đến các đường dữ liệu vào của RAM.
3. Hệ thống phải đợi một khoảng thời gian nhỏ. Trong khoảng thời gian này RAM sẽ giải mã địa chỉ
và chọn ngăn nhớ mang địa chỉ nhận được. Khoả
ng thời gian này gọi là thời gian ghi vào RAM.
4. Đường dẫn R/W sẽ được đặt ở mức logic tương ứng với thao tác ghi vào RAM. Tín hiệu này cho
phép dữ liệu được ghi vào RAM
5. Chú ý rằng ở đây ta nói về các đường dẫn dữ liệu ra từ RAM và các đường dẫn dữ liệu vào RAM.
Trong thực tế vì rằng trong một khoảng khắc nhất định thì ta chỉ thực hiện một thao tác là đọc
hoặc ghi, nên cả hai loại
đường dẫn trên được thực hiện bằng một đường dẫn hai chiều chung.
A0 – A12 Đường đòa chỉ
D0 – D7 Đường dữ liệu
/CE Chọn chip
/OE Cho phép xuất
/WE Cho phép ghi

A0
10
A1
9
A2
8
A3
7
A4
6
A5
5
A6
4
A7
3
A8
25
A9
24
A10
21
A11
23
A12
2
CE
20
CS
26

WE
27
OE
22
D0
11
D1
12
D2
13
D3
15
D4
16
D5
17
D6
18
D7
19
6264
Bài giảng VI XỬ LÝ Chương 1: Giới thiệu vi xử lý
12

Hình 1.13
4. Giải mã đòa chỉ cho bộ nhớ
Trong một hệ thống vi xử lý, bộ nhớ có thể được tạo thành từ nhiều chip nhớ. Các chip này
đều dùng chung bus dữ liệu để trao đổi với μP. Do đó để tránh xung đột trên bus, cần phải
giải mã đòa chỉ để tại mỗi thời điểm chỉ cho phép một chip có thể kết nối với bus dữ liệu để
trao đổi với μP.

Kết nối mạch giải mã đòa chỉ tổng quát:

Hình 1.14
Quan hệ giữa giải mã đòa chỉ và bảng bộ nhớ:
Hình 1.15
Ví dụ: μP có 16 đường đòa chỉ (A
15
→ A
0
) → có thể quản lý 2
16
= 2
6
.2
10
= 64 K = 65536
đòa chỉù:
+ 3 bit cao (A
15
→ A
13
) được đưa đến bộ giải mã (ở đây dùng IC 74LS138).
+ 13 bit thấp (A
12
→ A
0
) được đưa đến các chip nhớ.
→ có 2
3
= 8 vùng, mỗi vùng có 2

13
= 2
3
.2
10
= 8 K = 8192 đòa chỉ.
Các bit đòa ch

m bit
đến bộ
giải mã
đòa chỉ
n bit
đến các
chip nhớ
MSB LSB
……
2
n

đòa chỉ
2
m

vùng
Bảng bộ nhớ



μP


Mạch giải mã
đòa chỉ

Bus đòa chỉ
Đến các chân đòa chỉ
của các chip nhớ
CS1
CSn
Đến các chân
chọn chip của
các chip nhớ
Bài giảng VI XỬ LÝ Chương 1: Giới thiệu vi xử lý
13

V. NHẬP/XUẤT (I/O – INPUT/OUTPUT)
1. Phân loại
- Theo chiều trao đổi dữ liệu:
+ Thiết bò xuất
+ Thiết bò nhập
+ Thiết bò nhập/xuất
- Theo dạng truyền dữ liệu:
+ Nối tiếp: đồng bộ và bất đồng bộ (thêm bit start, stop)
+ Song song
2. Cấu trúc tiêu biểu của port I/O
- Các port nhập (I) và xuất (O) giao tiếp μP với các thiết bò ngoài không thể nối trực tiếp
đến các bus.
- Về cơ bản, một port xuất chỉ là một thanh ghi (hình 1.17). Khi μP ghi ra đòa chỉ được gán
cho port, port sẽ chứa dữ liệu có từ bus dữ liệu. Như vậy nó cung cấp ngõ ra có chốt cho các
thiết bò ngoài.

- Một port nhập thông thường là một bộ đệm 3 trạng thái (hình 1.18). Khi μP đọc vào từ đòa
chỉ được gán cho port, bộ đệm 3 trạng thái sẽ đưa dữ liệu từ các ngõ nhập ngoài vào bus dữ
liệu rồi μP đọc dữ liệu từ bus.
Hình 1.17

A14
A13
74LS138
A
B
C
Y0
Y1
Y2
Y3
Y4
Y5
Y6
Y7
G1
G2A
G2B
+5V
0
A15
0000 → 1FFF
2000 → 3FFF
4000 → 5FFF
6000 → 7FFF
8000 → 9FFF

A000 → BFFF
C000 → DFFF
E000 → FFFF
Đưa đến
các chân
chọn chip
của các
chip nhớ
Hình 1.16
Q outputs
(Register)
D inputs
EN

μP
STB
Bus dữ liệu


Luồng dữ liệu
Các tín hiệu xuất
đến các TB ngoài
Bài giảng VI XỬ LÝ Chương 1: Giới thiệu vi xử lý
14
Hình 1.18
3. Giải mã đòa chỉ cho I/O
a. I/O trực tiếp (Đònh đòa chỉ I/O theo kiểu trực tiếp)
- Các đòa chỉ thiết bò I/O tách khỏi các đòa chỉ bộ nhớ.
- μP cung cấp hai đường điều khiển đọc và ghi riêng cho I/O: IOR và IOW .
- Giải mã đòa chỉ cho I/O tương tự như giải mã đòa chỉ cho bộ nhớ.

Lưu ý: Một số thiết bò I/O có thể không có các tín hiệu đòa chỉ.
Ví dụ:
Giải mã đòa chỉ cho I/O:
Hình 1.20
Address bus



μP
MEMR
IOR
IOW
MEMW
Đến bộ nhớ
Đến I/O
Hình 1.19
I/O
0

Bộ đệm
dữ liệu
0 CS
IOW
IOR
I/O
1
Bộ đệm
dữ liệu
1 CS
IOW

IOR
I/O
n

Bộ đệm
dữ liệu
n CS
IOW
IOR




μP
Bus dữ lie
ä
u
Bus điều khiển
Mạch giải mã
chọn thiết bò
Bus đ
ò
a chỉ
Inputs
(3-state buffer)
Outputs
EN

μP
STB

Bus dữ liệu


Luồng dữ liệu
Các tín hiệu nhập
từ các TB ngoài
Bài giảng VI XỬ LÝ Chương 1: Giới thiệu vi xử lý
15
Khi μP cần trao đổi dữ liệu với một thiết bò I/O nào đó, nó phát tín hiệu đòa chỉ của thiết
bò lên bus đòa chỉ. Một số trong các tín hiệu đòa chỉ này được đặt vào mạch giải mã chọn
thiết bò. Mạch giải mã này sẽ kích hoạt chỉ một tín hiệu chọn chip tương ứng với thiết bò
được chọn, do đó chỉ có bộ đệm dữ liệu của thiết bò này được nối với bus dữ liệu để trao
đổi với μP. Trong quá trình này, tín hiệu điều khiển đọc hay ghi cũng được phát trên bus
điều khiển để xác đònh thao tác tương ứng.
b. I/O được ánh xạ như bộ nhớ
- μP xem các thiết bò I/O như các vò trí bộ nhớ. Các vò trí này không được trùng với các
đòa chỉ có trong các thiết bò nhớ như ROM và RAM.
- μP không có các tín hiệu điều khiển đọc và ghi riêng cho I/O.

Sau đây là hai ví dụ minh họa việc tạo ra các tín hiệu đọc/ghi I/O từ các đường điều khiển
đọc/ghi bộ nhớ:

Ví dụ 1: Giả sử μP có 16 đường đòa chỉ, tín hiệu đọc/ghi I/O tích cực mức 0:

Trong ví dụ này đường đòa chỉ A15 được dùng như là bit chọn đọc/ghi bộ nhớ hay I/O.
Nếu A15 = 1, ngõ ra
IOR và IOW luôn là mức 1 nên thao tác được chọn là đọc/ghi bộ
nhớ. Ngược lại khi A15 = 0, ngõ ra
IOR hay IOW sẽ là mức 0 khi có tín hiệu RD hay
WR tương ứng từ bộ xử lý.

Ví dụ 2: Mức tích cực của các tín hiệu đọc/ghi I/O là mức 1:

CSx : tín hiệu chọn thiết bò I/O từ mạch giải mã đòa chỉ.
3. Các phương pháp điều khiển I/O
Có 3 phương pháp cơ bản: hỏi vòng hay kiểm tra tuần tự (polling), điều khiển ngắt (interrupt)
và DMA (Direct Access Memory). Ngoài ra cũng có thể kết hợp các phương pháp trên.

)RD(
)WR(
MEMR
IOR
IOW
MEMW
A15
0: bộ nhớ
1: I/O
μP
Tích cực
mức 0

Hình 1.21
RD
WR
X
CS
IOR
IOW
Hình 1.22
Bài giảng VI XỬ LÝ Chương 1: Giới thiệu vi xử lý
16

a. Polling (Hỏi vòng)
- μP lần lượt kiểm tra từng I/O xem có yêu cầu dòch vụ không thông qua các cờ (flag).
- Tất cả các việc chuyển dữ liệu đến và từ các thiết bò I/O được thực hiện bằng chương
trình → polling là cơ chế đồng bộ (synchronous) với việc thực thi chương trình.
- Kỹ thuật polling có các hạn chế:
+ Mất thời gian của μP (do kiểm tra trạng thái của tất cả các ngoại vi thường xuyên).
+ Chậm trong các hệ thống thời gian thực (real-time), không thỏa mãn cho các thiết
bò yêu cầu tốc độ đáp ứng nhanh.
+ Người sử dụng có thể gặp khó khăn trong trong vấn đề lập trình vì phải luôn canh
chừng I/O.
- Lưu đồ hoạt động của polling:


μP
I/O
0
I/O
1
I/O
n
……
Memory
Bus
?
?
?
Hình 1.23
I/O
0
yêu cầu

dòch vụ?
Trình dòch vụ cho I/O
0

I/O
1
yêu cầu
dòch vụ?
Trình dòch vụ cho I/O
1

I/O
n
yêu cầu
dòch vụ?
Trình dòch vụ cho I/O
n

……
Y
N
Y
N
Y
N
Hình 1.24
Bài giảng VI XỬ LÝ Chương 1: Giới thiệu vi xử lý
17
b. Interrupt (Ngắt)


Ngắt là một q trình xử lý thơng tin của vi xử lý tương tự như con người xử lý thơng tin. Ví dụ khi
bạn đang nói chuyện với một người. Người thứ ba đến và gọi tên bạn. Đây là dấu hiệu rằng có một
người khác u cầu sự quan tâm của bạn. Người thứ ba này có thể được coi như là một u cầu
ngắt bên ngồi (external interrupt request).
Người này u cầu bạn ngắt cuộc nói chuyện của mình. Bạ
n có thể xử lý u cầu này bằng các cách
như sau:
1.

Bạn có thể bỏ qua u cầu và coi như người thứ ba là khơng tồn tại.
2.

Bạn có thể dừng một cách thích hợp đối thoại đang diễn ra, rồi bắt đầu quan tâm đến người
thứ ba. Lúc này bạn bắt đầu nói chuyện với người này chứ khơng nói chuyện với người đầu
tiên nữa.
3.

Bạn tức khắc dừng nói chuyện với người thứ nhất và bắt đầu nói chuyện ngay với người thứ
ba.
Khi bạn nói chuyện xong với người thứ ba, bạn muốn quay lại tiếp tục cuộc đối thoại với người thứ
nhất tại điểm mà u cầu ngắt xuất hiện.
Q trình trên diễn ra tương tự với kỹ thuật ngắt trong hệ thống vi x
ử lý.
Lúc này CPU đóng vai trò của bạn. Người thứ nhất là chương trình chính đang được thực hiện.
Người thứ ba là một u cầu ngắt bên ngồi. Đây là một thiết bị phần cứng bên ngồi u cầu CPU
quan tâm đến nó. CPU phải xử lý u cầu ngắt này bằng cách nào đó. Có nhiều cách xử lý ngắt, các
cách được nêu ở ví dụ trên là các cách xử lý thơng dụng nhất.

Ví dụ như ta có một cảm biến báo cháy. Thơng thường khi khơng có lửa thì cả
m biến xuất ra số 1,

lúc có lửa thì cảm biến xuất số 0 báo cho vi xử lý kích hoạt chương trình báo động. Vi xử lý có thể
ln ln đọc trạng thái của cảm biến bằng lệnh IN từ cổng nối với cảm biến. Sau đó vi xử lý kiểm
tra trạng thái cảm biến và gọi chương trình báo động khi trạng thái cảm biến là 0. Tuy vậy đây là
một thao tác lặp đi lặp lại nhiều lần m
ột cách khơng hiệu quả, vì phần lớn thời gian cảm biến khơng
báo cháy. Một cách xử lý hiệu quả hơn là đưa tín hiệu của cảm biến vào chân u cầu ngắt của vi
xử lý. Chỉ khi chân u cầu ngắt này được kích hoạt thì vi xử lý mới gọi chương trình báo động.
[LQĐ – p.100]

- Ngắt là cơ chế bất đồng bộ (asynchronous) với việc thực thi chương trình. Nó được
dùng với mục đích là tránh tối đa hoặc loại bỏ hẳn cơ chế hỏi vòng để kiểm tra trạng
thái thiết bò.
Hình 1.25

μP
I/O
0
I/O
1
I/O
n
……
Memory
Bus
INT
0
INT
1
INT
n

Bài giảng VI XỬ LÝ Chương 1: Giới thiệu vi xử lý
18
- Mỗi thiết bò I/O hay bộ điều khiển của nó được nối với một đường interrupt.
- Khi I/O có yêu cầu trao đổi dữ liệu nó sẽ phát ra một tín hiệu báo cho μP. Tín hiệu đó
được gọi là tín hiệu yêu cầu ngắt IRQ (interrupt request). Khi μP nhận được yêu cầu
ngắt đó, nếu đồng ý trao đổi thông tin với I/O, nó sẽ trả lời với bộ điều khiển nhập/xuất
bằng tín hiệu chấp nhận ngắt INTA (interrupt acknownledge) đồng thời ngừng chương
trình đang làm và gọi chương trình phục vụ ngắt cho I/O. Sau khi phục vụ xong, nó quay
về tiếp tục thực hiện chương trình đang làm tại nơi bò ngắt.
- Khi có nhiều I/O yêu cầu ngắt đồng thời → cần có mạch điều khiển ưu tiên ngắt.
- Lưu đồ hoạt động của ngắt:

- Thủ tục interrupt về nguyên tắc tương tự với gọi chương trình con, ngoại trừ:
1. Interrupt được khởi động từ 1 tín hiệu bên trong hoặc bên ngoài thay vì từ những
thực thi lệnh.
2. Đòa chỉ của chương trình phục vụ interrupt được xác đònh bằng thủ tục hardware
thay vì từ vùng đòa chỉ của lệnh. (bảng vector ngắt được xác đònh trước của từng
loại vi xử lý).
3. Khi đáp ứng 1 interrupt cần lưu tất cả các thông tin đònh nghóa trạng thái hiện
hành của hệ thống thay vì chỉ lưu trữ bộ đếm chương trình PC.

Như vậy để thực hiện thao tác ngắt vi xử lý cần có một phần cứng báo ngắt và một phần mềm
gọi là chương trình phục vụ ngắt (interrupt service routines). Phần cứng báo ngắt để tạo tín hiệu
điện thơng báo cho vi xử lý u cầu ngắt. Phần mềm phục vụ ngắt thực hiện thao tác cần thiết như
là câu trả lời cho u cầu ngắt.

c. DMA (Direct Memory Access)
- Thông thường khi chương trình muốn chuyển một byte dữ liệu từ ngoại vi vào bộ nhớ,
nó phải thực hiện thông qua μP gồm một thao tác nhập và sau đó là thao tác ghi bộ nhớ.
Hoặc ngược lại, khi muốn đưa thông tin từ bộ nhớ ra ngoại vi, μP phải làm thao tác đọc

bộ nhớ rồi xuất ra ngoại vi. Trong trường hợp này, chức năng của μP chỉ là chuyển dữ
liệu mà không xử lý gì cả. Điều này lặp đi lặp lại nhiều lần sẽ làm lãng phí việc sử dụng
μP vì chức năng chủ yếu của μP là xử lý dữ liệu.
Yêu cầu
ngắt?
Thực thi lệnh
Y
N
Chương trình phục
vụ ngắt (ISR)
Lệnh ke
á
Hình 1.26
Bài giảng VI XỬ LÝ Chương 1: Giới thiệu vi xử lý
19

- DMA là cơ chế điều khiển cho phép truy xuất bộ nhớ trực tiếp, không thông qua μP.
- Cơ chế DMA được thực hiện bởi một mạch phần cứng được gọi là bộ điều khiển DMA
(DMAC - DMA Controller).
- DMA giúp rút ngắn thời gian truy xuất giữa bộ nhớ và I/O. Cơ chế này rất tiện dụng
cho các thiết bò ngoại vi có khối lượng thông tin trao đổi lớn (trao đổi một khối dữ liệu
lớn trong một thời gian ngắn) ví dụ như card màn hình, đóa cứng … trong máy tính.
- Quá trình DMA bắt đầu khi có tín hiệu yêu cầu DMA (DRQ) từ thiết bò I/O đến
DMAC. DMAC tiếp tục gởi tín hiệu yêu cầu μP nhường bus (HRQ) đến chân HOLD của
μP để nó thực thi việc trao đổi dữ liệu trực tiếp giữa bộ nhớ và I/O. Khi μP đồng ý
nhường bus, nó trả lời cho DMAC bằng tín hiệu chấp nhận nhường bus (HLDA) đồng
thời tạm ngưng mọi hoạt động, tự tách ra khỏi hệ thống. Đến lượt DMAC gởi tín hiệu
thông báo cho phép trao đổi dữ liệu theo kiểu DMA (DACK) đến thiết bò I/O. Khi
DMAC chuyển hết dữ liệu, nó trả quyền điều khiển các bus lại cho μP, quá trình DMA
kết thúc.

- Trong thực tế, việc sử dụng cơ chế DMA khá phức tạp và qua nhiều công đoạn vì
DMAC không thi hành bất kì lệnh nào, chương trình nào (không thực thi phần mềm) để
chuyển dữ liệu mà nó thực hiện hoàn toàn bằng phần cứng nên cần phải có trước đầy đủ
các thông tin về vò trí dữ liệu của I/O, vò trí bộ nhớ chứa dữ liệu và số lượng byte cần
chuyển để μP nạp cho DMAC. Ngoài ra, DMAC còn phải có khả năng tạo ra các tín hiệu
điều khiển cần thiết giống như các tín hiệu của μP.

VI. VI XỬ LÝ VÀ VI ĐIỀU KHIỂN
- Về cấu trúc phần cứng:
+ Vi xử lý: là một CPU đơn chip (như trong sơ đồ khối ở trên).
+ Vi điều khiển: gồm CPU và một số thành phần khác như bộ nhớ ROM, RAM,
các port I/O
và một số mạch chức năng như mạch đònh thời (timer), mạch điều khiển
ngắt (interrupt controller), mạch giao tiếp nối tiếp (serial interface)…
- Về ứng dụng:
+ Vi xử lý: thường dùng làm CPU trong các máy vi tính.
+ Vi điều khiển: thường dùng trong các thiết kế nhỏ, hướng điều khiển.
- Đặc trưng về tập lệnh:
+ Vi xử lý: mạnh về các kiểu đònh đòa chỉ, số lệnh nhiều.
+ Vi điều khiển: có thể thao tác với từng bit đơn (đònh hướng bit).
Hình 1.27

μP
I/O
0
I/O
n
……
Memory
Bus

HOLD
DMAC
HLDA
HRQ
HACK
DACK
0
DACK
n
DRQ
0
DRQ
n

Bài giảng VI XỬ LÝ Chương 1: Giới thiệu vi xử lý
20




CÂU HỎI VÀ BÀI TẬP CHƯƠNG 1

1.1. Hãy nêu các thành phần cơ bản trong một hệ vi xử lý? Chức năng của từng thành phần?
1.2. Vi xử lý là gì? Các thành phần cơ bản trong một chip vi xử lý?
1.3. Phân biệt bộ nhớ ROM và RAM?
1.4. Phân biệt bộ nhớ DRAM và SRAM?
1.5. Cấu trúc tiêu biểu của một port nhập/xuất?
1.6. So sánh các phương pháp điều khiển I/O?
1.7. Các thiết bò/linh kiện 3 trạng thái là gì? Tại sao chúng lại cần thiết trong các hệ thống
dùng bus?

1.8. Cần bao nhiêu byte để làm thành một word (từ) 32 bit?
1.9. Có bao nhiêu vò trí bộ nhớ có thể được đòùnh đòa chỉ bởi một μP có 20 đường đòa chỉ?
1.10. Nếu một chip bộ nhớ có kích thước là1024 x 4 bit thì phải cần bao nhiêu chip như vậy để
tạo 2K (2048) byte bộ nhớ?
1.11. Nếu một chip bộ nhớ có kích thước là 256 x 1 bit thì phải cần bao nhiêu chip như vậy để
tạo 1 KB bộ nhớ?
1.12. Cần phải có bao nhiêu đường đòa chỉ trên một chip bộ nhớ có kích thước 2K x 8 bit?
1.13. Một chip nhớ 4 KB có đòa chỉ bắt đầu là 2000H trong bảng đòa chỉ bộ nhớ. Xác đònh đòa
chỉ cuối cùng của chip và số trang trong chip (giả sử chọn kích thước một trang là 256 byte)?
Bài giảng VI XỬ LÝ Chương 1: Giới thiệu vi xử lý
21
1.14. Trong bộ giải mã 4 sang 16 ở hình a, ngõ ra nào xuống mức thấp nếu các ngõ vào của bộ
giải mã có giá trò như hình vẽ?
1.15. Trong hình b, hãy tìm ngõ ra nào xuống mức thấp nếu các giá trò vào (bao gồm các
đường cho phép) của bộ giải mã 3 sang 8 (74LS138) là:

A7 A6 A5 A4 A3 A2 A1 A0
1 1 1 1 0 1 1 1


0
1
0
4-to-16 decoder
74LS154
LSB
MSB
Y0
Y1
Y2

Y3
Y4
Y5
Y6
Y7
Y8
Y9
Y10
Y11
Y12
Y13
Y14
Y15
A
B
C
D
G1
G2
1
0
Hình a)
A2
A5
A7
A6
A0
A4
3-to-8 decoder
74LS138

A
B
C
Y0
Y1
Y2
Y3
Y4
Y5
Y6
Y7
G1
G2A
G2B
A1
A3
Hình b)
Bài giảng VI XỬ LÝ Chương 2: Phần cứng họ MCS-51
1
CHƯƠNG 2: PHẦN CỨNG HỌ MCS-51

I. GIỚI THIỆU CHUNG VỀ VI ĐIỀU KHIỂN
Q trình phát triển nhanh của các loại vi xử lý cho phép ứng dụng chúng trong các q trình sản
xuất như các bộ điều khiển. Khác với các loại vi xử lý sử dụng để xử lý thơng tin (các máy tính PC
xử lý văn bản, cơ sở dữ liệu, tính tốn khoa học kỹ thuật), các vi điều khiển (microcontroller) được
thiết kế để lắp đặt trực tiếp vào ứng dụng cụ thể. Trong đó suốt q trình vận hành củ
a mình vi
điều khiển chỉ thực hiện duy nhất một chức năng. Việc ứng dụng rộng rãi các bộ vi điều khiển dẫn
đến u cầu sản xuất tất cả các vi mạch trong một vỏ. Việc tích hợp nhiều vi mạch trên một vỏ
làm giảm giá thành và làm tăng tính tin cậy của vi điều khiển.

u cầu tăng cao tốc độ xử lý dẫn đến các cấu trúc c
ủa vi điều khiển khác với các cấu trúc của các
bộ vi xử lý như Z80, 8086 và các vi xử lý dùng cho máy tính PC. Cấu trúc của vi điều khiển cho
phép truy cập nhanh bộ nhớ dữ liệu, truy cập và xử lý nhanh các dữ liệu, truy cập nhanh các thiết
bị (phép nhân và chia dấu phẩy đứng, các phép tốn đại số Boole với 1 bit … )
Tổng qt ta có thể nói rằng vi điều khiển là một máy tính trong một chip (monolithic
microcomputer). Trong đó đã bao gồm CPU, bộ nhớ, các thiết v
ị vào/ra phổ biến. Cấu trúc của vi
điều khiển được thiết kế để phục vụ một mục đích cụ thể mà chỉ cần tối thiểu các mạch phụ trợ.
Chức năng của vi điều khiển được xác định bởi chương trình lưu trong bộ nhớ ROM hoặc EPROM.
Chương trình được nạp một lần và khơng thay đổi trong suốt q trình hoạt động.
B
ộ nhớ của các vi điều khiển có cấu trúc khác với bộ nhớ của vi xử lý Z80 cùng loại. Tại các họ vi
xử lý ta dùng cấu trúc bộ nhớ Neuman, trong đó bản đồ bộ nhớ dùng chung cho cả chương trình
(thường trong ROM- Read only memory) và dữ liệu (RWM – read write memory). Các bộ vi điều
khiển sử dụng cấu trúc Harward. Tại đây bộ nhớ được chia làm hai loại: bộ nhớ chương trình
(ROM) và bộ nhớ dữ liệ
u (RWM).
Hình 2.1: Cấu trúc Neuman Hình 2.2: Cấu trúc Harward
Việc phân biệt này được suy ra từ thực tế rằng bộ nhớ ROM dùng để lưu chương trình khơng thể
ghi vào được, và bộ nhớ này thường có độ dài vài kB (u cầu 10 đến 16 bit địa chỉ). CPU truy cập
bộ nhớ này chủ yếu để đọc lệnh. Bộ nhớ dữ liệu để lưu các kết quả tạm thời thơng thường bé
hơn, chỉ cần 8 bit địa chỉ hoặc thậm chí 4 bit
địa chỉ. Với địa chỉ bộ nhớ dữ liệu nhỏ, tốn hạng sẽ
có địa chỉ ngắn và nhiều khi có thể lọt vào vào mã lệnh (object code) có độ dài 8 bit.
Cấu trúc bộ
nhớ Harward là cơ sở cho việc xử lý nhanh thơng tin trong các ứng dụng điều khiển.

Cấu trúc khơng đổi của các loại vi điều khiển lại là giới hạn đối với việc áp dụng trong thực tế. Tuy
vậy trên thị trường có rất nhiều loại vi điều khiển cho các loại ứng dụng cụ thể khác nhau, mỗi loại

tự phân biệt bằng lượng tối thiểu thiết bị được tích hợp bên trong.
CPU
Bộ nhớ
chương trình
+
Bộ nhớ
dữ liệu
CPU
Bộ nhớ
chương trình

Bộ nhớ
dữ liệu

Bài giảng VI XỬ LÝ Chương 2: Phần cứng họ MCS-51
2
* HỌ VI ĐIỀU KHIỂN X51
Vi điều khiển 8051 ra đời vào năm 1980 và đã là loại vi điều khiển tương đối “lớn tuổi”. Tuy vậy
8051 đã nhận được sự mến chuộng đặc biệt của các nhà thiết kế hệ thống đến nỗi hiện nay tồn
tại rất nhiều nhà sản xuất tập trung phát triển các sản phẩm trên cơ sở 8051 và phát triển thêm
các thi
ết bị ngoại vi khác. Ví dụ chỉ riêng Philips đã sản xuất 24 loại vi điều khiển trên cơ sở 8051
như được thể hiện trên hình 2.1. Các vi điều khiển này khác nhau như sau: bộ nhớ chương trình
từ 2kB đến 32 kB, bộ nhớ này có loại có thể nạp một lần hoặc nhiều lần (EPROM), bộ nhớ
EEPROM để nhớ các hằng số, bộ nhớ dữ liệu mở rộng
đến 256 kB, bộ ADC 8 hoặc 10 bit với bộ
chọn 8 kênh, các cổng vào/ra mở rộng, bộ so sánh hoặc lưu dữ liệu, bus 2 dây I
2
C. Các nhà sản
xuất cung cấp các vi điều khiển có tần số từ 12MHz đến 33 MHz với loại vỏ DIL, PLCC đến loại nhỏ

PQFP. Một số nhà sản xuất tập trung vào các vi điều khiển với các phép tính số học (Siemens
80C537) hoặc việc định thời khác nhau (Dallas DS80C320). Tổng kết các hướng phát triển cụ thể
của vi điều khiển trên cơ sở 8051 được tổng kết như trên hình 2.3.


Hình 2.3: Các thành phần mở rộng của họ vi điều khiển trên cơ sở 8051


Trên thị trường Việt nam hiện tại loại vi điều khiển AT89C51 của hãng Atmel rất được phổ biến. Vi
điều khiển này có thể mua được với giá 25,000 đ/1đv. Kèm theo với vi điều khiển này là rất nhiều
các thiết bị phụ trợ như bộ lập trình, các board mạch cơ bản, các phần mềm phụ trợ… Vi điều
khiển AT89C51 và các loại cùng họ của hãng Atmael có bộ
nhớ chương trình bên trong là EEPROM
là bộ nhớ có thể xố là nạp được bằng tín hiệu điện. Điều này cho phép người lập trình có thể thử
nghiệm, nạp chương trình vào vi điều khiển nhiều lần. Thiết bị nạp chương trình (programmer)
cho vi điều khiển này là tương đối đơn giản và có thể tự làm được. Có thể tham khảo tại trang chủ
của hãng Atmel tại địa

chỉ www.atmel.com.

Bài giảng VI XỬ LÝ Chương 2: Phần cứng họ MCS-51
3
II. CẤU TRÚC CỦA VI ĐIỀU KHIỂN 8051
Các vi mạch của họ MCS-51 gồm: 8031/8032, 8051/8052, 8751/8752, 8951/8952, 892051 …
Vi mạch tiêu biểu của họ MCS-51 là 8031/8051 có các đặc điểm sau:
- 4 KB ROM nội (0 KB đối với 8031).
- 128 byte RAM nội.
- 4 port nhập/xuất 8 bit (I/O port).
- 2 bộ đònh thời 16 bit (timer).
- Mạch giao tiếp nối tiếp (serial port) 2 chiều.

- Bộ điều khiển ngắt xử lý 5 nguồn yêu cầu ngắt trong đó có 2 nguồn ngắt ngoài, 2 nguồn
ngắt bên trong từ hai timer và 1 nguồn ngắt từ kênh nối tiếp. Mức độ ưu tiên của các ngắt
được quy đònh cụ thể.
- 64 KB không gian bộ nhớ chương trình ngoài.
- 64 KB không gian bộ nhớ dữ liệu ngoài.
- 210 bit được đòa chỉ hoá.
- Bộ nhân/chia 4 μs (với tần số thạch anh 12MHz).

Chip Bộ nhớ chương
trình trên chip
Bộ nhớ dữ liệu
trên chip
Số bộ đònh thời
(timer)
8031 0 KB 128 byte 2
8051 4 KB ROM 128 byte 2
8751 4 KB EPROM 128 byte 2
8951 4 KB Flash ROM 128 byte 2
8032 0 KB 256 byte 3
8052 8 KB ROM 256 byte 3
8752 8 KB EPROM 256 byte 3
8952 8 KB Flash ROM 256 byte 3
Bảng 2.1: Một số thông số của các chip tiêu biểu của họ MCS-51.

III. SƠ LƯC CÁC CHÂN (PINOUT) CỦA 8051
Sơ đồ chân 8031/8051:
8051
29
30
40 20

31
19
18
9
39
38
37
36
35
34
33
32
1
2
3
4
5
6
7
8
21
22
23
24
25
26
27
28
10
11

12
13
14
15
16
17
PSEN
ALE
VCC VSS
EA
XTAL1
XTAL2
RST
P0.0/AD0
P0.1/AD1
P0.2/AD2
P0.3/AD3
P0.4/AD4
P0.5/AD5
P0.6/AD6
P0.7/AD7
P1.0
P1.1
P1.2
P1.3
P1.4
P1.5
P1.6
P1.7
P2.0/A8

P2.1/A9
P2.2/A10
P2.3/A11
P2.4/A12
P2.5/A13
P2.6/A14
P2.7/A15
P3.0/RXD
P3.1/TXD
P3.2/INT0
P3.3/INT1
P3.4/T0
P3.5/T1
P3.6/WR
P3.7/RD

Hình 2.4

Bài giảng VI XỬ LÝ Chương 2: Phần cứng họ MCS-51
4
Sơ đồ khối của 8051:

Hình 2.5
1. Port 0
Port 0 (P0.0 ÷ P0.7) là port hai chức năng trên các chân từ 32 đến 39. Trong các thiết kế cỡ
nhỏ (không dùng bộ nhớ ngoài) nó có chức năng như các đường I/O. Đối với các thiết kế lớn
với bộ nhớ ngoài, port 0 được dồn kênh giữa bus dữ liệu (D0 ÷ D7) và byte thấp của bus đòa
chỉ (A0 ÷ A7).
2. Port 1
Port 1 (P1.0 ÷ P1.7) là một port I/O trên các chân từ 1 đến 8. Port 1 không có chức năng

khác, nó chỉ được dùng cho giao tiếp với thiết bò ngoài.
3. Port 2
Port 2 (P2.0 ÷ P2.7) là port có công dụng kép trên các chân từ 21 đến 28. Nó được dùng như
các đường I/O hoặc là byte cao của bus đòa chỉ (A8 ÷ A15) đối với các thiết kế dùng bộ nhớ
ngoài.
4. Port 3
Port 3 (P3.0 ÷ P3.7) là một port công dụng kép trên các chân từ 10 đến 17. Các chân của
port này vừa có chức năng là các đường I/O vừa có chức năng riêng khác tùy từng chân.
Bảng sau mô tả các chức năng riêng của từng chân:
Bit Tên Chức năng
P3.0 RXD Dữ liệu nhận cho port nối tiếp
P3.1 TXD Dữ liệu phát cho port nối tiếp
P3.2
INT0
Ngắt ngoài 0
P3.3
INT1
Ngắt ngoài 1

Tài liệu bạn tìm kiếm đã sẵn sàng tải về

Tải bản đầy đủ ngay
×