4. 4
VI XỬ LÝ LÀ GÌ ?
Sự kết hợp của 2 kỹ thuật:
Máy tính kỹ thuật số và
Các mạch vi điện tử.
5. 5
LỊCH SỬ PHÁT TRIỂN VI XỬ LÝ
Lịch sử phát triển gắn liền với sự phát triển của
các vi mạch điện tử.
Giai đoạn 1 (1971 - 1973) đây là giai đoạn khởi
đầu của vi xử lý. Các vi xử lý này đều có độ dài
từ dữ liệu ngắn, tốc độ làm việc thấp, tập lệnh
đơn giản như 4004, 8008.
Giai đoạn 2 (1974 - 1977) tập lệnh phong phú
hơn và có khả năng phân biệt địa chỉ bộ nhớ và
dung lượng đến 64 K byte, tốc độ xử lý tăng lên
vài Mhz. Đại diện cho giai đoạn này như 6800,
6809 của Motorola; 8085, 8080 của Intel và Z80
của Zilog.
6. 6
LỊCH SỬ PHÁT TRIỂN VI XỬ LÝ
Giai đoạn 3 (1978 - 1982) các bộ vi xử lý
giai đoạn này là các vi xử lý 16 Bit tốc độ
làm việc lên đến 10 Mhz.
Giai đoạn 4 (1984 đến nay)
VXL 32 bit 80386/80486 và 64 bit Pentium/
Pentium II / Pentium III của Intel, Core Duo..
VXL 32 bit 68020/ 68030/ 68040/ 68060 của
Motorola.
Đặc điểm của VXL trong giai đoạn này là bus
địa chỉ đều là 32 bit và có khả năng làm việc
với bộ nhớ ảo.
7. 7
HỆ THỐNG VI XỬ LÝ LÀ GÌ?
Để sử dụng vi xử lý cần phải thiết kế hệ
thống gồm có các thành phần sau:
Vi xử lý
Các bộ nhớ
Các IC ngoại vi
Để thiết kế được hệ thống vi xử lý cần
phải biết yêu cầu điều khiển là gì!
8. 8
HỆ THỐNG VI XỬ LÝ
Vi Xöû Lyù: thöïc hieän chöông trình
vaø ñieàu khieån
Boä nhô:ù chöùa chöông trình vaø döõ
lieäu.
Ngoaïi vi: duøng ñeå xuaát nhaäp döõ
lieäu vôùi beân ngoaøi.
Caùc khoái naøy lieân keát vôùi nhau taïo
thaønh moät heä thoáng vi xöû lyù.
Yeâu caàu ñieàu khieån caøng nhieàu thì
heä thoáng caøng phöùc taïp
Duø nhu caàu ñieàu khieån ñôn giaûn – thì
heä thoáng cuõng phaûi coù ñaày ñuû caùc
khoái treân.
9. 9
SƠ ĐỒ KHỐI HỆ THỐNG VI XỬ LÝ
CPU
ROM RAM Mạch giao tiếp
ngoại vi (IO)
Bus dữ liệu (Data Bus)
Bus địa chỉ (Address Bus)
Bus điều khiển (Control Bus)
Input Output
10. 10
Năng Lực Của Vi Xử Lý
Chiều dài của từ dữ liệu của VXL:
Mỗi vxl làm việc với các từ dữ liệu có độ
dài cố định.
Từ dữ liệu thường dùng 8 bit ứng với 1
byte.
Độ dài từ dữ liệu trong bộ nhớ bằng độ
dài từ dữ liệu trong vxl.
11. 11
Năng Lực Của Vi Xử Lý
Số lượng ô nhớ mà VXL có thể truy
xuất:
Mỗi từ dữ liệu chứa trong 1 ô nhớ
Mỗi ô nhớ trong bộ nhớ có một địa chỉ.
• VXL muốn truy xuất dữ liệu trong ô nhớ phải tạo
địa chỉ của ô nhớ đó.
VXL có thể giao tiếp với bộ nhớ có dung
lượng càng lớn thì vxl đó càng mạnh.
Ví Dụ:
• 8 bit có 16 đường địa chỉ: 216
= 65.536 ô nhớ
• 16 bit có 20 đường địa chỉ: 220
= 1.024.000 ô nhớ
• 32 bit (386) truy xuất 4G ô nhớ.
12. 12
Năng Lực Của Vi Xử Lý
Tốc độ làm việc của vi xử lý:
Tần số xung clock quyết định.
Tần số xung clock được nhà sản
xuất qui định
Tốc độ càng nhanh khả năng xử
lý lệnh càng nhanh.
13. 13
CẤU TRÚC CỦA VI XỬ LÝ
Đơn vị xử lý logic số học ALU:
Arithmetic Logic Unit:
Các thanh ghi:
Accumulator,
PC: Program Counter,
SR: Status Register,
SP: Stack Pointer,
Thanh ghi địa chỉ ô nhớ,
Thanh ghi lệnh (IR: Instruction Register)
Khối điều khiển logic (Control logic) và
khối giải mã lệnh (Instruction Decoder).
14. 14
CÁC THANH GHI QUAN TRỌNG
Thanh ghi là gì?
Thanh ghi: phần quan trọng trong vxl.
Dùng để xử lý dữ liệu, có chiều dài
theo từng chức năng trong vxl.
Số lượng thanh ghi càng lớn người
lập trình càng dễ dàng, tốc độ xử lý
chương trình nhanh.
Mỗi loại vxl có số lượng thanh ghi và
chức năng thanh ghi khác nhau.
15. 15
THANH GHI DỊCH
Thanh ghi có cấu tạo gồm các trigger nối
tiếp với nhau
Chức năng:
Để lưu trữ tạm thời thông tin
Dịch chuyển thông tin
Lưu ý: cả thanh ghi và bộ nhớ đều dùng
để lưu trữ thông tin, nhưng thanh ghi có
chức năng dịch chuyển thông tin.
16. 16
PHÂN LOẠI THANH GHI DỊCH
Vào nối tiếp ra nối tiếp
SIPI
Vào nối tiếp ra song song
SIPO
Vào song song ra nối tiếp
PISO
Vào song song ra song song
PIPO
0 1 0 1 0 0 11
0 1 0 1 0 0 11
0 1 0 1 0 0 11
0 1 0 1 0 0 11
18. 18
THANH GHI A
Thanh ghi A (Accumulator: thanh chứa)
Quan trọng, luôn có trong mọi vxl, chứa dữ
liệu khi tính toán và xử lý.
Các phép toán số học, logic đều xảy ra giữa ALU
và A
Truyền dữ liệu từ bộ nhớ hay từ các thanh
ghi bên trong vxl ra các thiết bị ngoại vi thì
dữ liệu phải chứa trong thanh ghi A.
Số bit của thanh ghi A là đơn vị đo của vxl,
nếu vxl 8 bit thì thanh ghi A có độ dài là 8 bit.
19. 19
THANH GHI PC (Program Counter)
PC: thanh ghi quan trọng nhất của vi xử lý
Quản lý lệnh mà vxl đang thực hiện và
điều khiển việc lấy lệnh thực hiện kế tiếp.
Thanh ghi PC trong vxl có độ dài lớn hơn
chiều dài từ dữ liệu của vxl.
Nội dung chứa trong thanh ghi PC chính
là nội dung chứa trong thanh ghi địa chỉ.
Trước khi vxl thực hiện chương trình thì
PC phải được nạp 1 con số.
Số đó là: địa chỉ của ô nhớ chứa lệnh đầu tiên
của chương trình.
20. 20
Thao tác tìm nạp lệnh và thực hiện lệnh
NPC
Mã lệnh
Mã lệnh
Mã lệnh N
N+1
N+2
IR
Vi Xử Lý
(CPU)
Bộ Nhớ (ROM)
Bus địa chỉ
Bus dữ liệu
Mã lệnh
TGĐC N
21. 21
THANH GHI IR
Thanh ghi IR dùng để chứa lệnh vxl
đang thực hiện.
Một chu kỳ lệnh bao gồm đón lệnh từ
bộ nhớ và thực hiện lệnh.
Trong quá trình thực hiện lệnh, bộ giải
mã lệnh đọc nội dung của thanh ghi
lệnh IR.
Maõ leänh töø thanh ghi IR
ñöôïc ñöa vaøo ñôn vò giaûi maõ
leänh vaø ñieàu khieån.
22. 22
THANH GHI SR (Status Rigester)
Thanh ghi SR là thanh ghi cờ, dùng để lưu kết quả của
một số lệnh kiểm tra.
Zero bit: bit Z = 1 khi kết quả là 0, ngược lại Z =0
Negative bit: bit N=1 khi bit MSB của thanh ghi =1
Carry/Borrow bit: là bit carry khi thực hiện phép cộng C =1 khi tràn
ngược lại C = 0.
Là bit Borrow khi thực hiện phép trừ, borrow=0 khi số bị trừ lớn hơn
số trừ
Intermediate carry: giống bit C nhưng có tác dụng với cộng /trừ 4 bit
thấp.
Interrupt Flag: Bit IF =1 khi người lập trình cho phép ngắt.
Overflow: bit này bằng 1 khi bit tràn của phép cộng với bit dấu của dữ
liệu.
Parity: bit P=1 khi cho phép kiểm tra chẳn.
Z N C I IF O P 1
23. 23
THANH GHI CON TRỎ (STACK POINTER)
Chức năng của thanh ghi SP gần giống
với PC, dùng để quản lý bộ nhớ ngăn
xếp khi muốn lưu trữ dữ liệu tạm thời
vào ngăn xếp.
SP tự động di chuyển đến ô nhớ kế
tiếp
Người lập trình phải thiết lập giá trị ban
đầu cho SP.
Tổ chức SP là LIFO: LAST IN FIRST
OUT.
24. 24
HỆ THỐNG BUS
Bus ñòa chæ (Address bus):
Ñeå chuyeån taûi caùc bit ñòa chæ.
Laø loaïi bus 1 chieàu (CPU-MEM hay
I/O).
Ñeå xaùc ñònh boä nhôù hoaëc thieát
bò ngoaïi vi maø CPU caàn trao ñoåi
thoâng tin.
Ñeå xaùc ñònh dung löôïng boä nhôù
hoaëc ngoaïi vi maø CPU coù khaû
naêng truy xuaát.
25. 25
HỆ THỐNG BUS
Bus döõ lieäu (Data bus):
Ñeå chuyeån taûi caùc bit döõ lieäu.
Laø loaïi bus 2 chieàu (CPU ↔
MEM-I/O).
Ñeå xaùc ñònh soá bit döõ lieäu
maø CPU coù khaû naêng xöû lyù
cuøng moät luùc.
26. 26
HỆ THỐNG BUS
Bus ñieàu khieån (Control bus):
Ñeå chuyeån taûi caùc bit ñieàu
khieån (moãi ñöôøng daây laø moät
tín hieäu ñieàu khieån khaùc nhau).
Laø loaïi bus 1 chieàu (CPU →
MEM-I/O hoaëc MEM-I/O → CPU).
Đeå ñieàu khieån caùc khoái khaùc
trong heä vaø nhaän tín hieäu ñieàu
khieån töø caùc khoái ñoù ñeå phoái
27. 27
SUY NGHĨ
Mu n vxl làm vi c gì ng i dùngố ệ ườ
ph i l p trình (viả ậ t ch ng trình)ế ươ .
Ch ng trình l u âu vxlươ ư ở đ để
l y l nh và th c hi n l nh ó?ấ ệ ự ệ ệ đ
Trong lúc làm vi c vxl c n c tệ ầ ấ
t m các d li u, khi c n vxl dạ ữ ệ để ầ ữ
li u l y ra th c hi n ti p cácệ ấ ự ệ ế
công vi c.ệ
Nh v y các d li u này ph iư ậ ữ ệ ả
c l u âuđượ ư ở đ ?
28. 28
BỘ NHỚ BÁN DẪN
ROM: bộ nhớ chương trình, lưu trữ
chương trình điều khiển hoạt động của
toàn hệ thống.
RAM: bộ nhớ dữ liệu, lưu trữ dữ liệu
tạm thời, các ứng dụng và kết quả tính
toán.
29. 29
Hoạt Động Của Bộ Nhớ
Nhận địa chỉ để chọn ô nhớ cần truy
xuất.
Nhận tín hiệu điều khiển để thực
hiện việc truy xuất (xuất / nhập).
Nhập dữ liệu để lưu vào ô nhớ (GHI:
WRITE)
Xuất dữ liệu ra (ĐỌC:READ)
Kiểm tra tín hiệu cho phép để biết bộ
nhớ có được phép truy xuất không.
30. 30
Bố Trí Chân Theo Chức Năng Bộ Nhớ
I7 I6 I5 I4 I3 I2 I1 I0
DATA INPUT
A0
A1
A2
A3
A4
A5
A6
ĐIA CHỈ
O7 O6 O5 O4 O3 O2 O1 O0
DATA OUTPUT
READ / WRITE
CS (CHỌN CHIP)
31. 31
Bố Trí Chân Theo Chức Năng Bộ Nhớ
OE RW
ĐIA CHỈ
A0
A1
A2
A3
A4
A5
A6
DATA
D0
D1
D2
D3
D4
D5
D6
CS
32. 32
Cách Xác Định Bộ Nhớ
Dựa vào số đường địa chỉDựa vào số đường địa chỉ
VD: Bộ nhớ có 10 đường địa chỉVD: Bộ nhớ có 10 đường địa chỉ
• 221010
=1024bit = 1KBIT=1024bit = 1KBIT
Dựa vào mã số bộ nhớ; Mã số: XX YYYYDựa vào mã số bộ nhớ; Mã số: XX YYYY
XX: loại bộ nhớXX: loại bộ nhớ
27: UV-EPROM27: UV-EPROM 28: EEPROM28: EEPROM
61,62: SRAM61,62: SRAM 40,41: DRAM40,41: DRAM
YYYY: dung lượng của bộ nhớYYYY: dung lượng của bộ nhớ
Dung lượng = YYYY (Kbit) hoacDung lượng = YYYY (Kbit) hoac
Dung lượng = YYYY / 8 (KByte)Dung lượng = YYYY / 8 (KByte)..
33. 33
Cách Xác Định Bộ Nhớ
VD: Bộ nhớ 27256,VD: Bộ nhớ 27256,
27 Bộ nhớ UV-EPROM27 Bộ nhớ UV-EPROM
256 Dung lượng = 256 (Kbit) = 32 (KB)256 Dung lượng = 256 (Kbit) = 32 (KB)
15 Đường địa chỉ15 Đường địa chỉ..
34. 34
BỘ NHỚ ROM
Phaân loaïi bộ nhớ ROM:
PROM (Programmable ROM): ROM laäp
trình ñöôïc
EPROM (Eraseable PROM): ROM laäp trình
vaø xoùa ñöôïc
UV-EPROM (Ultra Violet EPROM): ROM
laäp trình, xoùa baèng tia cöïc tím
EEPROM (Electric EPROM): ROM laäp trình
vaø xoùa baèng tín hieäu ñieän
Flash ROM: ROM laäp trình vaø xoùa baèng
tín hieäu ñieän.
37. 37
BỘ NHỚ RAM
RAM(Random Access Memory): bộ
nh d li uớ ữ ệ
SRAM (Static RAM): RAM t nhĩ
DRAM (Dynamic RAM): RAM ngđộ
Các chân Data k t h p I/Oế ợ .
39. 39
Bảng Trạng Thái
Chế độ WR CS OE Data
Không chọn X 1 X Tổng trở cao
Cấm xuất 1 0 1 Tổng trở cao
Đọc Data 1 0 0 Dout
Ghi Data 0 0 1 Din
A0
A1
A2
A3
A4
A5
A6
A7
A9
A10
WR
OE
CS
D0
D1
D2
D3
D4
D5
D6
D7
40. 40
Kết Nối Bộ Nhớ Và VXL
µPµPµPµP
IC NHỚ
ROM
IC NHỚ
ROM
IC NHỚ
RAM
IC NHỚ
RAM
BUS ĐỊA CHỈ
BUS DỮ LIỆU
BUS ĐIỀU KHIỂN
41. 41
Hoạt Động Ghi Dữ Liệu
µPµPµPµP
IC NHỚ RAMIC NHỚ RAM
BUS ĐỊA CHỈ
BUS DỮ LIỆU
BUS ĐIỀU KHIỂN
1.Tạo địa chỉ cần lưu, đặt lên bus địa chỉ
2. Đưa data cần lưu lên bus dữ liệu
3. VXL tác động tín hiệu điều khiển ghi
4. IC nhớ xác định địa chỉ
ô nhớ cần lưu
5. Data từ bus truyền vào ô nhớ
WRData
42. 42
Hoạt Động Đọc Dữ Liệu
µPµPµPµP
IC NHỚ RAM / ROMIC NHỚ RAM / ROM
BUS ĐỊA CHỈ
BUS DỮ LIỆU
BUS ĐIỀU KHIỂN
1.Tạo địa chỉ cần đọc, đặt lên bus địa chỉ
5. Đưa dữ liệu cần đọc vào VXL
2. VXL tác động tín hiệu điều khiển đọc
3. IC nhớ xác định địa chỉ
ô nhớ cần đọc
4. Data từ ô nhớ đặt lên bus
OEData
43. 43
Sơ Đồ Nguyên Lý Kết Nối
D
74LS373ALE
P0.0
P0.7
PSEN
A0
A7
D0
D7
P2.0
P2.7
A8
A15
OE
CE
EA
G
8031 ROM
45. 45
Hoạt Động Xuất Địa Chỉ Tới ROM
D
74LS373ALE
P0.0
P0.7
PSEN
A0
A7
D0
D7
P2.0
P2.7
A8
A12
OE
CE
EA
G
8051 ROM
1. Gửi địa chỉ tới ROM
2. 74373 chốt địa chỉ
và gửi sang ROM
Địa chỉ
46. 46
Hoạt Động Đọc Dữ Liệu Từ ROM
D
74LS373ALE
P0.0
P0.7
PSEN
A0
A7
D0
D7
P2.0
P2.7
A8
A12
OE
CE
EA
G
8051 ROM
Address
3. ROM gửi lệnh về
VĐK
47. 47
VXL Kết Nối Nhiều Bộ Nhớ
µP
74138
74138
A10 ÷ A0
D7÷D0
CS1
OE
2716
ROM1
CS8
OE
2716
ROM8
6116
Ram1
6116
Ram8
CS8CS1
OE OE
WR WRWR
RD RDRDRD
WR
Đến CS1 Ram1
Đến CS8 Ram8
Đến CS1 Rom1
Đến CS1 Rom8
A
B
C
A
B
C
A11
A12
A13
49. 49
Hệ thống VXL có phù hợp điều khiển trong công
nghiệp không?
Vxl xử lý dữ liệu theo byte, word.
• Hệ thống Vi Xử Lý : Vi xử lý + Bộ Nhớ + Thiết bị ngoại vi
Các đối tượng điều khiển trong công nghiệp
theo từng bit.
1 Relay, 1 động cơ, 1 tiếp điểm…
Caùc nhaø cheá taïo ñaõ tích hôïp:
o Boä nhôù vaø
o Caùc thieát bò ngoaïi vi
o VXL – caûi tieán cho phuø hôïp vôùi ñieàu
khieån CN
Taïo thaønh moät IC goïi laø vi ñieàu khieån
(Microcontroller).
51. 51
ƯU ĐIỂM CỦA VI ĐIỀU KHIỂN
Deã söû duïng trong caùc öùng duïng.
Khoâng ñoøi hoûi ngöôøi söû duïng phaûi
hieåu bieát löôïng kieán thöùc quaù
nhieàu nhö ngöôøi söû duïng VXL.
Vôùi ngöôøi baét ñaàu thì söû duïng VXL
laø ñieàu raát khoù, maát nhieàu thôøi
gian, trong khi ñoù mong muoán laø söû
duïng ñöôïc ngay.
52. 52
CÁC HỌ VI ĐIỀU KHIỂN THÔNG DỤNG
Haõng ATMEL:
AT89C51, AT89S51, AT89S8252, AT89S52
AVR: 8515, ATMega8, ATMega16...…
Haõng PHILIPS: 89V51RD1, 89V51RD2
Haõng MICROCHIP:
PIC: 16F84, 16F877A, 18F452...
53. 53
HỆ THỐNG SỬ DỤNG VI ĐIỀU KHIỂN
CPU
ROM RAM ngoại vi (IO)
Bus dữ liệu (Data Bus)
Bus địa chỉ (Address Bus)
Bus điều khiển (Control Bus)
Input Output
54. 54
ĐẶC TRƯNG CÁC HỌ VI ĐIỀU KHIỂN
Nguồn cung cấp
Xung clock
Bộ định thời (timer)
Watchdog
Reset
Ngắt
ADC
Truyền thông nối tiếp
Bộ so sánh analog
PWM.
57. 57
ÔN TẬP HỆ THỐNG SỐ
Các hệ thống số học:
Thập phân (decimal)
Nhị phân (binary)
Bát phân (octal)
Thập lục phân (hexadecimal)
BCD
Chuyển đổi giữa các số:
Decbinary
Binary hex
Hex binary
Hex dec
Dec hex.
67. 67
Cách Tìm Số Âm
VD: -6
0110 +6
1001 bù
1 cộng 1
––––
1010 là số - 6.
68. 68
Cộng 2 Số Nhị Phân
Công thức:
0 + 0 = 0
0 + 1 = 1
1 + 0 = 1
1 + 1 = 10 tạo ra một bit nhớ là (1)
1 + 1 + 1 = 11 tạo ra một bit nhớ là (1).
70. 70
Trừ 2 Số Nhị Phân
Chuyển số bị trừ thành số âm
Cộng hai số với nhau
VD: 0110 trừ cho số 0010
0010 số bị trừ
1101 bù
1 cộng 1
––––
1110
Cộng lại:
0110 số trừ
+ 1110 số âm của số bị trừ
––––––
0100.
71. 71
Nhân và Chia 2 Số Nhị Phân
Công thức nhân:
0 x 0 = 0
0 x 1 = 0
1 x 0 = 0
1 x 1 = 1
Nhân bình thường như nhân số thập phân
Chia: Tương tự như chia 2 số thập phân.