BÀI GIẢNG VI xử lý NGUYỄN hũu CHÂN THÀNH BÀI GIẢNG VI xử lý NGUYỄN hũu CHÂN THÀNH BÀI GIẢNG VI xử lý NGUYỄN hũu CHÂN THÀNH BÀI GIẢNG VI xử lý NGUYỄN hũu CHÂN THÀNH BÀI GIẢNG VI xử lý NGUYỄN hũu CHÂN THÀNH BÀI GIẢNG VI xử lý NGUYỄN hũu CHÂN THÀNH BÀI GIẢNG VI xử lý NGUYỄN hũu CHÂN THÀNH
Trang 1BỘ GIAO THÔNG VẬN TẢI TRƯỜNG ĐẠI HỌC GIAO THÔNG VẬN TẢI TP HỒ CHÍ MINH
VI XỬ LÝ
Giảng viên: TS NGUYỄN HỮU CHÂN THÀNH
Trang 2Đại Học Giao Thông Vận Tải Tp.HCM
Giảng viên: TS NGUYỄN HỮU CHÂN THÀNH
HỌC PHẦN
Khoa Điện – Điện Tử Viễn Thông
VI XỬ LÝ
Đánh giá:
2 Quá trình: 30% bao gồm các điểm sau
- Kiểm tra thường kỳ: 10%
Trang 3Nội dung gồm 5 chương:
Tài liệu tham khảo:
1 Muhammad Ali Mazidi, Janice Gillispie Mazidi; “The 8051
Microcontroller and Embedded Systems Using Assembly and
C”.
2 I.Scott Mackenzie; “The 8051 Microcontroller”.
3 Kenneth J.Ayala; “The 8051 Microcontroller”.
Trang 4Đại Học Giao Thông Vận Tải Tp.HCM
Giảng viên: TS NGUYỄN HỮU CHÂN THÀNH
Chương 1: Giới thiệu Vi Xử Lý
Khoa Điện – Điện Tử Viễn Thông
Trang 5I Tổng quan về hệ thống VXL
1 Quá trình phát triển của máy vi tính
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).
Trang 93 Sơ đồ khối của hệ VXL
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
Peripheral Devices: Thiết bị ngoại vi
3 Sơ đồ khối của hệ VXL
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).
Trang 1013
3 Sơ đồ khối của hệ VXL
- 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ột hệ vi xử lý gồm có các thành phần chính sau:
14
3 Sơ đồ khối của hệ VXL
NOTE:
1 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.
2 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.
Trang 11Phối ghép (giao tiếp) vào/ra (I/O).
4 CPU đọc thông tin từ bộ nhớ và ghi thông tin vào
6 Các thiết bị đầu ra đưa thông tin từ CPU đến
các đối tượng bên ngoài.
7 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.
Trang 1217
3 Sơ đồ khối của hệ VXL
NOTE
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 trong hệ thống VXL
Trang 131 BUS địa chỉ (Address Bus)
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ó.
1 BUS địa chỉ (Address Bus)
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
Trang 1421
1 BUS địa chỉ (Address Bus)
Đệm bus địa chỉ
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ỉ.
Trang 152 BUS dữ liệu
Có chức năng chuyển tải các thông tin về
dữ liệu đến/đi 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).
2 BUS dữ liệ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
Trang 16Bus dữ liệu
CP U
Bộ nhớ hoặc phối ghép vào/ra (I/O)
Trang 173 BUS điều khiển (Control Bus)
Gồm nhiều đường dây tín hiệu khác nhau
( …), 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ệ.
Trang 1829
3 BUS điều khiển (Control Bus)
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
30
3 BUS điều khiển (Control Bus)
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:
Đọc từ bộ nhớ
Ghi vào bộ nhớ
Đọc từ phối ghép đầu vào (Input)
Ghi vào phối ghép đầu ra (Output)
Nhận biết yêu cầu ngắt (Interrupt acknowledge)
Nhận biết yêu cầu treo (Hold acknowledge, phục vụ
DMA)
Trang 2033
MicroProcessor
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
34
MicroProcessor
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ỉ
Trang 21MicroProcessor
Khối đ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)
MicroProcessor
- Bộ giải mã lệnh: thông dịch (diễn dịch) các lệnh được nhận vào
CPU
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 đ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.
Trang 2237
MicroProcessor
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ử 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-8-bit, 32-bit hay 64-bit tùy thuộc vào loại P
38
MicroProcessor
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)
Thông tin có thể là 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)
Trang 23MicroProcessor
- 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ỉ.
MicroProcessor
Tìm nạp lệnh từ bộ nhớ
Trang 2441
MicroProcessor
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ớ
IV Bộ nhớ
Trang 251 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
Trang 2645
1 Phân loại
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 …)
46
1 Phân loại
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.
Trang 271 Phân loại
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.
1 Phân loại
Bộ nhớ truy xuất ngẫu nhiên – RAM (Random Access
Memory)
- 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
Trang 28-Có hai loại RAM chính:
+ 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.
50
2 Cấu trúc bên trong tiêu biểu
- 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 210ngăn nhớ, mỗi ngăn
nhớ có 8-bit.
Trang 29Data Output: Dữ liệu ra
Data Input: Dữ liệu vào
Address: Địa chỉ
Write: Ghi
2 Cấu trúc bên trong tiêu biểu
Các tín hiệu tiêu biểu trên một chip nhớ:
+ (Chip Select): tín hiệu chọn chip (cho phép chip).
+ (Output Enable): tín hiệu cho phép xuất dữ liệu (nhận
+ 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.
Trang 31Truy 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.
Trang 3257
3 Truy xuất bộ nhớ
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
A0 – A12 Wư ờ ná địa chl D0 – D7 Wư ờ ná dư õ liệï /CE Chọn chip /OE Cho phép ịïất /PGM Lập tìình
58
3 Truy xuất bộ nhớ
Quy trình đọc ROM:
Trang 333 Truy xuất bộ nhớ
Truy xuất RAM
Giới thiệu SRAM 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 Wư ờ ná địa chl
D0 – D7 Wư ờ ná dư õ liệï
/CE Chọn chip
/OE Cho phép ịïất
/WE Cho phép áhi
3 Truy xuất bộ nhớ
Quy trình đọc RAM:
Trang 3461
3 Truy xuất bộ nhớ
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.
62
3 Truy xuất bộ nhớ
Quy trình ghi RAM:
Trang 354 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.
4 Giải mã địa chỉ cho bộ nhớ
Kết nối mạch giải mã địa chỉ tổng quát:
Đến các chân chọn chip của các chip nhớ
Trang 3665
4 Giải mã địa chỉ cho bộ nhớ
Quan hệ giữa giải mã địa chỉ và bảng bộ nhớ:
Các bit địa chỉ
m bit
đến bộ giải mã địa chỉ
n bit
đến các chip nhớ
66
4 Giải mã địa chỉ cho bộ nhớ
Ví dụ: P có 16 đường địa chỉ (A15 A0) có thể quản lý 216=
Đưa đến các chân chọn chip của các chip nhớ
Trang 37- 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.
Trang 3869
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 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 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
70
2 Cấu trúc tiêu biểu của port I/O
PORT xuất:
Trang 392 Cấu trúc tiêu biểu của port I/O
PORT nhập:
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: và
-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
Trang 4073
3 Giải mã địa chỉ cho I/O
Ví dụ: Giải mã địa chỉ cho I/O
74
3 Giải mã địa chỉ cho I/O
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