© DHBK 2005
Nội dung môn học
1.
2.
3.
4.
5.
6.
7.
Giới thiệu chung về hệ vi xử lý
Bộ vi xử lý Intel 8088/8086
Lập trình hợp ngữ cho 8086
Tổ chức vào ra dữ liệu
Ngắt và xử lý ngắt
Truy cập bộ nhớ trực tiếp DMA
Các bộ vi xử lý trên thực tế
1
/Chapter4
© DHBK 2005
2
/Chapter4
Chương 4: Tổ chức vào ra dữ liệu
•
•
•
•
Các tín hiệu của 8086 và các mạch phụ trợ 8284, 8288
Ghép nối 8088 với bộ nhớ
Ghép nối 8086 với bộ nhớ
Ghép nối với thiết bị ngoại vi
© DHBK 2005
3
/Chapter4
Chương 4: Tổ chức vào ra dữ liệu
•
Các tín hiệu của 8086 và các mạch phụ trợ 8284, 8288
•
•
•
Các tín hiệu của 8086
Phân kênh và việc đệm cho các bus
Mạch tạo xung nhịp 8284 và mạch điều khiển bus 8288
Biểu đồ thời gian của các lệnh ghi/đọc
Ghép nối 8088 với bộ nhớ
Ghép nối 8086 với bộ nhớ
Ghép nối với thiết bị ngoại vi
© DHBK 2005
4
/Chapter4
Chương 4: Tổ chức vào ra dữ liệu
•
Các tín hiệu của 8086 và các mạch phụ trợ 8284, 8288
•
•
•
Các tín hiệu của 8086
Phân kênh và việc đệm cho các bus
Mạch tạo xung nhịp 8284 và mạch điều khiển bus 8288
Biểu đồ thời gian của các lệnh ghi/đọc
Ghép nối 8088 với bộ nhớ
Ghép nối 8086 với bộ nhớ
Ghép nối với thiết bị ngoại vi
© DHBK 2005
Các chân tín hiệu của 8086
M/IO (S2)
AD0-AD15
DT/R(S1)
Tín hiệu điều
khiển hệ thống
RD
WR (LOCK)
DEN (S0)
SS0
READY
BHE/S7
Tín hiệu điều
khiển CPU
đồng hồ
và nguồn
NMI
INTR
RESET
MN/MX
TEST
CLK
Vcc
GND
GND
5
/Chapter4
16 đường
địa chỉ thấp/dữ liệu
A16/S3
A17/S4
A18/S5
A19/S6
4 đường
bus C/ địa chỉ cao
8086
HOLD(RQ/GT0)
HLDA(RQ/GT1)
INTA(QS1)
ALE(QS0)
Tín hiệu điều
khiển bus
© DHBK 2005
Các chân tín hiệu của 8086
•
AD0-AD15:
ALE =1: 16 chân địa chỉ cho bộ nhớ hoặc I/O
ALE=0: 16 đường dữ liệu
•
A19/S6-A16/S3
4 bit địa chỉ cao
4 bit trạng thái:
S6 luôn bằng 1
S5: trạng thái của IF
S4, S3: bit trạng thái về thanh ghi đoạn
đang truy cập
•
READY: input pin,
S4 S3
0
0
ES
0
1
SS
1
0
CS or No
1
1
DS
0 => vi xử lý vào trạng thái đợi
1: has no effect
•
INTR: interrupt request
IF=1 và INTR=1=> cho phép ngắt
•
TEST
nếu =0, CPU ở trạng thái đợi và thực hiện lệnh NOP
=1, lệnh WAIT đợi đến khi TEST=0
6
/Chapter4
© DHBK 2005
Các chân tín hiệu của 8086
•
•
•
•
•
•
7
/Chapter4
NMI (Non-maskable interrupt)
NMI=1 => thực hiện INT 2
RESET
1: khởi động lại hệ thống và thực hiện lệnh tại ô nhớ FFFF0H
MN/MX
1: chế độ min
0: chế độ max
BHE/S7:
0: cho phép truy cập byte cao dữ liệu
Trạng thái S7 luôn bằng 1
RD
0: CPU đọc dữ liệu từ bộ nhớ hoặc thiết bị ngoại vi
Các chân ở chế độ min
M/IO
1: truy cập bộ nhớ
0: truy cập thiết bị ngoại vi I/O
WR
0: dữ liệu hợp lệ tại bus dữ liệu để đưa ra bộ nhớ hoặc thiết bị ngoại vi
© DHBK 2005
Các chân tín hiệu của 8086
•
8
/Chapter4
Các chân ở chế độ min
INTA: interrupt acknowledge
0: khi INTR=1 và IF=1
ALE: address latch enable
DT/R: data transmit/receive
1: bus dữ liệu đang truyền dữ liệu đi
0: bus dữ liệu đang nhận dữ liệu
DEN: Data enable
0: kích hoạt đệm dữ liệu ngoài
HOLD
1: CPU tạm dừng hoạt động để nhường quyền điều khiển cho DMA, các bus
được đặt ở trạng thái trở kháng cao
HLDA (Hold Acknowledge)
khi HOLD=1, HLDA=1
© DHBK 2005
Các chân tín hiệu của 8086
•
Các chân ở chế độ Max
S2, S1, S0
ghép nối với điều khiển bus 8288
S2
S1
S0
0
0
0
chấp nhận yêu cầu ngắt
0
0
1
đọc thiết bị ngoại vi
0
1
0
Ghi thiết bị ngoại vi
0
1
1
Dừng
1
0
0
đọc mã lệnh
1
0
1
đọc bộ nhớ
1
1
0
ghi bộ nhớ
1
1
1
bus rỗi
chu kỳ điều khiển của bus
9
/Chapter4
© DHBK 2005
Các chân tín hiệu của 8086
•
10
/Chapter4
Các chân ở chế độ Max
RQ/GT0 và RQ/GT1: Request/Grant
Tín hiệu yêu cầu dùng bus của các bộ vi xử lý khác/chấp nhận treo bus của
CPU
GT0 có mức ưu tiên cao hơn GT1
LOCK
0: cấm các bộ vi xử lý khác dùng bus
QS0 và QS1:
trạng thái của hàng đợi lệnh
QS1 QS0
Trạng thái hàng đợi lệnh
0
0
không hoạt động
0
1
đọc byte mã lệnh đầu tiên
1
0
hàng đợi rỗng
1
1
đọc byte tiếp theo
© DHBK 2005
11
/Chapter4
Chương 4: Tổ chức vào ra dữ liệu
•
Các tín hiệu của 8086 và các mạch phụ trợ 8284, 8288
•
•
•
Các tín hiệu của 8086
Phân kênh và việc đệm cho các bus
Mạch tạo xung nhịp 8284 và mạch điều khiển bus 8288
Biểu đồ thời gian của các lệnh ghi/đọc
Ghép nối 8088 với bộ nhớ
Ghép nối 8086 với bộ nhớ
Ghép nối với thiết bị ngoại vi
© DHBK 2005
Phân kênh và đệm cho các bus
•
Vì sao phải phân kênh và khuyếch đại đệm:
Các bus địa chỉ và dữ liệu dùng chung chân
Nâng cao khả năng tải của bus
•
Các vi mạch phân kênh và đệm:
74LS373: phân kênh
74LS245: đệm dữ liệu 2 chiều
74LS244: đệm 3 trạng thái theo 1 chiều
12
/Chapter4
© DHBK 2005
Phân kênh và đệm cho các bus
M/IO
RD
WR
BHE/S7
A19/S6
A16/S3
13
/Chapter4
M/IO
RD
WR
BH
A19
‘244
74LS373
A16
A15
G
A8
A7
8086
A0
ALE
G
74LS373
G
74LS373
D15
AD15
‘245
AD8
AD7
G DIR
D8
D7
‘245
AD0
DEN
DT/R
G DIR
D0
© DHBK 2005
14
/Chapter4
Chương 4: Tổ chức vào ra dữ liệu
•
Các tín hiệu của 8086 và các mạch phụ trợ 8284, 8288
•
•
•
Các tín hiệu của 8086
Phân kênh và việc đệm cho các bus
Mạch tạo xung nhịp 8284 và mạch điều khiển bus 8288
Biểu đồ thời gian của các lệnh ghi/đọc
Ghép nối 8088 với bộ nhớ
Ghép nối 8086 với bộ nhớ
Ghép nối với thiết bị ngoại vi
© DHBK 2005
15
/Chapter4
Mạch tạo xung nhịp 8284 và mạch điều
khiển bus 8288
© DHBK 2005
16
/Chapter4
Chương 4: Tổ chức vào ra dữ liệu
•
Các tín hiệu của 8086 và các mạch phụ trợ 8284, 8288
•
•
•
Các tín hiệu của 8086
Phân kênh và việc đệm cho các bus
Mạch tạo xung nhịp 8284 và mạch điều khiển bus 8288
Biểu đồ thời gian của các lệnh ghi/đọc
Ghép nối 8088 với bộ nhớ
Ghép nối 8086 với bộ nhớ
Ghép nối với thiết bị ngoại vi
© DHBK 2005
Biểu đồ thời gian
17
/Chapter4
© DHBK 2005
18
/Chapter4
Biểu đồ thời gian
•
Các ký hiệu trong biểu đồ thời gian:
Min
CS
1
CS hold time
2
CS to data
valid
3
Data hold time
max
60
Units
ns
1
Data
2
3
5
30
ns
10
ns
© DHBK 2005
Biểu đồ thời gian
•
19
/Chapter4
Một chu kỳ ghi/đọc của CPU (chu kỳ bus): 4 chu kỳ xung nhịp T
5 MHz: 4*200 ns=800 ns
T1:
CPU đưa ra địa chỉ của bộ nhớ hoặc I/O, DT/R, M/IO, ALE
T2:
CPU đưa ra RD hoặc WR, DEN và dữ liệu trên D0-D15 nếu là lệnh ghi
CPU đọc tín hiệu READY tại cuối chu kỳ của T2 để xử lý trong chu kỳ tiếp
theo khi nó làm việc với bộ nhớ hay I/O chậm
T3:
Nếu READY=0 => T3 trở thành chu kỳ đợi: Tw=n*T
Tại cuối T3, CPU sẽ đọc dữ liệu nếu là lệnh đọc dữ liệu
T4:
Các tín hiệu trên bus được giải phóng
WR chuyển từ 0 lên 1 kích hoạt quá trình ghi của bộ nhớ
© DHBK 2005
Biểu đồ thời gian
20
/Chapter4
© DHBK 2005
Biểu đồ thời gian
21
/Chapter4
© DHBK 2005
22
/Chapter4
Chương 4: Tổ chức vào ra dữ liệu
•
•
Các tín hiệu của 8086 và các mạch phụ trợ 8284, 8288
Ghép nối 8088 với bộ nhớ
Các loại bộ nhớ bán dẫn
Giải mã địa chỉ cho bộ nhớ
Ghép nối 8088 với bộ nhớ
•
•
Ghép nối 8086 với bộ nhớ
Ghép nối với thiết bị ngoại vi
© DHBK 2005
23
/Chapter4
Chương 4: Tổ chức vào ra dữ liệu
•
•
Các tín hiệu của 8086 và các mạch phụ trợ 8284, 8288
Ghép nối 8088 với bộ nhớ
Các loại bộ nhớ bán dẫn
Giải mã địa chỉ cho bộ nhớ
Ghép nối 8088 với bộ nhớ
•
•
Ghép nối 8086 với bộ nhớ
Ghép nối với thiết bị ngoại vi
© DHBK 2005
Các loại bộ nhớ bán dẫn
•
Bộ nhớ không bị mất dữ liệu (non-volatile)
•
ROM (Read Only Memory)
PROM (Programmable ROM)
EPROM (Electrically programmable ROM)
Flash
EEPROM (Electrically Erasable Programmable ROM)
FeRAM (Ferroelectric Random Access Memory)
MRAM (Magnetoelectronic Random Access Memory)
Bộ nhớ bị mất dữ liệu (volatile)
SRAM (Static RAM)
SBSRAM (Synchronous Burst RAM)
DRAM (Dynamic RAM)
FPDRAM (Fast Page mode Dynamic RAM)
EDO DRAM (Extended Data Out Dynamic RAM)
SDRAM (Synchronous Dynamic RAM)
DDR-SDRAM (Double Data Rate SDRAM)
RDRAM (Rambus Dynamic RAM)
24
/Chapter4
© DHBK 2005
Các loại bộ nhớ bán dẫn
A0
Tín hiệu
địa chỉ
WR
A1
A2
D0
D1
D2
Am
Dn
Dữ liệu
WE
CS
OE
WR: write
WE: Write enable
chọn chip
RD
OE: Output enable
CS: Chip Select
RD: read
25
/Chapter4