Giải mã đầy đủ và giải mã thiếu.+ Giải mã đầy đủFull Decoding: - Tất cả các đường địa chỉ có nghĩa đều được sử dụng.. - Mỗi ô nhớ có duy nhất một địa chỉ vật lý.. + Giải mã thiếuPartial
Trang 1TỔ CHỨC VÀO/RA DỮ LIỆU
Trang 2 Các mạch chốt và đệm.
IO/M RD WR
A16/S3 - A19/S6
A8 – A15 ALE AD0 – AD7
A16 - A19
A8 – A15
A0 – A7
D0 – D7
Trang 3 Mạch tạo xung nhịp 8284.
X1
CLK X2
Trang 4 Chu kỳ ghi đơn giản hóa.
CLK ALE A16/S3 – A19/S6
A8 – A15
AD0 – AD7
WR DEN
Tw
Trang 5 Chu kỳ đọc đơn giản hóa.
CLK ALE A16/S3 – A19/S6
A8 – A15
AD0 – AD7
RD DEN
Tw
Trang 6 Bộ nhớ bán dẫn.
* Các loại:
- Bộ nhớ cố định: ROM, PROM
- Bộ nhớ bán cố định: EPROM, EEPROM
- Bộ nhớ không cố định: SRAM, DRAM
* Cấu trúc tiêu biểu của một vi mạch nhớ:
A0 - An-1
D0 - Dm-1WE
OE CS
Bus A
Bus DWR
Trang 7Trường hợp bộ nhớ đầy đủ 1MB:
D0 - D7
A0 - A19
OE WE
CS
14 7D 3C : :
FE 25 00000
00001
20021 20022 20023
FFFFF FFFFE FFFFD
F9 53 75 : :
xxxx 0023 xxxx
xxxx xxxx
xxxx
xxxx 2000
IO/M
µP8088
Vấn đề gì xảy ra khi phối ghép với vi mạch nhớ 1MB?
Trang 80 1 1 1
0 0 0 0 : : :
1 1 1 1
0 0 0 0 : : :
1 1 1 1
0 0 0 0 : : :
1 1 1 1
0 0 0 0 : : :
1 1 1 1
0 0 0 0 : : :
1 1 1 1
0 0 0 0 : : :
1 1 1 1
0 0 0 0 : : :
1 1 1 1
0 0 0 0 : : :
1 1 1 1
Trường hợp bộ nhớ 512KB → gồm 2 vùng:
- Vùng 1 với dải địa chỉ: 00000 ÷ 7FFFFh (bit A19 = 0)
- Vùng 2 với dải địa chỉ: 80000 ÷ FFFFFh(bit A19 = 1)
Trang 914 7D 3C : :
FE 25 00000
00001
20021 20022 20023
7FFFF 7FFFE 7FFFD
F9 53 75 : :
xxxx 0023 xxxx
xxxx xxxx
xxxx
xxxx 2000
RD WR
IO/M
µP8088
?
Trang 10Nếu phối ghép với 2 vi mạch nhớ 512KB như hình vẽ:
Điều gì sẽ xảy ra?
Cách giải quyết?
xxxx 0023 xxxx
xxxx xxxx
xxxx
xxxx 2000
RD WR
IO/M
D0 - D7
A0 - A18 OE
WE
CS
14 : :
FE 25 00000
00001
20022 20023
7FFFF
F9 53 : :
A0 - A18 OE
WE
CS
23 : :
6E 77 00000
00001
20022 20023
7FFFF
14 F3 : :
#1
#2
Trang 11Cách giải quyết: sử dụng A19 để chọn 1 trong 2 vi mạch 512KB.
RD WR
IO/M
D0 - D7
A0 - A18 OE
WE
CS
14 : :
FE 25 00000
00001
20022 20023
7FFFF
F9 53 : :
A0 - A18 OE
WE
CS
23 : :
6E 77 00000
00001
20022 20023
7FFFF
14 F3 : :
#1
#2
Trang 12Nếu chỉ phối ghép với #1.
Có gì khác nhau khi đọc ô nhớ 20023h và A0023h?
RD WR
IO/M
D0 - D7
A0 - A18 OE
WE
CS
14 : :
FE 25 00000
00001
20022 20023
7FFFF
F9 53 : :
µP8088
#1
Trang 13Giải mã đầy đủ và giải mã thiếu.
+ Giải mã đầy đủ(Full Decoding):
- Tất cả các đường địa chỉ có nghĩa đều được sử dụng.
- Mỗi ô nhớ có duy nhất một địa chỉ vật lý.
+ Giải mã thiếu(Partial Decoding):
- Chỉ sử dụng một số đường địa chỉ có nghĩa.
- Một ô nhớ có hơn một địa chỉ vật lý.
Trang 14Giải mã đầy đủ.
#1 được chọn khi làm việc với vùng nhớ 00000 - 7FFFFh(A19 = 0)
#1 không được chọn khi làm việc với vùng nhớ 80000 - FFFFFh(A19 = 1)
=> Mỗi ô nhớ có duy nhất một địa chỉ vật lý.
RD WR
IO/M
D0 - D7
A0 - A18 OE
WE
CS
14 : :
FE 25 00000
00001
20022 20023
7FFFF
F9 53 : :
µP8088
#1
Trang 15Giải mã thiếu:
D0 - D7
A0 - A18
OE WE
CS
14 7D 3C : :
FE 25 00000
00001
20021 20022 20023
7FFFF 7FFFE 7FFFD
F9 53 75 : :
xxxx 0023 xxxx
xxxx xxxx
xxxx
xxxx 2000
RD WR
IO/M
#1 được chọn khi làm việc với cả hai vùng nhớ: 00000 - 7FFFFh và
80000 - FFFFFh Bit A19 không có ý nghĩa với #1
=> Mỗi ô nhớ có hai địa chỉ vật lý.
Trang 160 0 1 1
0 0 0 0 : : :
1 1 1 1
0 0 0 0 : : :
1 1 1 1
0 0 0 0 : : :
1 1 1 1
0 0 0 0 : : :
0 1 1 1
0 0 0 0 : : :
1 1 1 1
0 0 0 0 : : :
1 1 1 1
0 0 0 0 : : :
1 1 1 1
0 0 0 0 : : :
1 0 1 1
0 0 0 0 : : :
1 1 1 1
0 0 0 0 : : :
1 1 1 1
0 0 0 0 : : :
1 1 1 1
0 0 0 0 : : :
1 1 1 1
0 0 0 0 : : :
1 1 1 1
0 0 0 0 : : :
1 1 1 1
0 0 0 0 : : :
1 1 1 1
0 0 0 0 : : :
1 1 1 1
Trường hợp bộ nhớ 256KB → gồm 4 vùng:
Trang 17Bộ nhớ gồm 4 chip 256KB.
A0 - A17 A18 A19
WR RD
IO/M
A0 - A17 WE OE
CS
256KB
#1
A0 - A17 WE OE
CS
256KB
#2
A0 - A17 WE OE
CS
256KB
#3
A0 - A17 WE OE
O1 EN
O2
O3
Trang 18Mạch giải mã 74LS138: Các tín hiệu.
ABC
G2AG2BG1
Y0Y1Y2Y3Y4Y5Y6Y7
Trang 20Xét ví dụ:
Sử dụng 74LS138 để dành riêng vùng nhớ 64KB với dải địa chỉ 00000h - FFFFFh cho 8 chip nhớ 8KB
Các bước thực hiện:
- Tính số đường địa chỉ của chip nhớ 8KB, rút ra địa chỉ của byte thấp nhất
và byte cao nhất trong chip nhớ(dưới dạng Hex hoặc nhị phân)
- Lập bảng phân vùng địa chỉ của 8 chip nhớ trong vùng nhớ 64KB có dải địa chỉ 00000h - FFFFFh Rút ra quy luật chọn các vùng nhớ
- Vẽ sơ đồ giải mã địa chỉ cho các chip nhớ sử dụng 74LS138
Trang 21Bước 1:
- Địa chỉ của byte thấp nhất và byte cao nhất:
Trang 220 0 0 0
0 0 0 0 : : :
0 0 0 1
0 0 0 0 : : :
1 1 1 1
0 0 0 0 : : :
1 1 1 1
0 0 0 0 : : :
0 0 0 0
0 0 1 0 : : :
0 0 1 1
0 0 0 0 : : :
1 1 1 1
0 0 0 0 : : :
1 1 1 1
0 0 0 0 : : :
1 1 1 1 : : : : : : : : : : : : : : : : : :
0E000
: : :
0FFFF
0 0 0 0 : : :
0 0 0 0
1 1 1 0 : : :
1 1 1 1
0 0 0 0 : : :
1 1 1 1
0 0 0 0 : : :
1 1 1 1
0 0 0 0 : : :
1 1 1 1
Bước 2: Lập bảng phân vùng địa chỉ và tìm quy luật chọn vùng nhớ
Trang 24Bước 3: Vẽ sơ đồ giải mã sử dụng 74LS138.
ABC
G2AG2BG1
Y0Y1Y2Y3Y4Y5Y6Y7
Trang 25 Các kiểu phối ghép vào/ra.
Kiểu lệnh và tín hiệu
điều khiển dùng chung
MOV, IO/M = 0
Kiểu lệnh: MOV Tín hiệu: IO/M = 0
Kiểu lệnh: IN, OUT Tín hiệu: IO/M = 1
Trang 26- Chỉ xét trường hợp cổng I/O có không gian địa chỉ tách biệt.
- Giải mã địa chỉ cho các cổng cụ thể, mỗi cổng một địa chỉ.
- Địa chỉ cổng thường là 8 bit: A0 - A7.
- Hai cổng khác loại(I và O) có thể có cùng một địa chỉ.
- Tín hiệu chọn cổng ký hiệu là: ISP và OSP.
- Phương pháp tương tự như giải mã địa chỉ cho bộ nhớ.
Trang 27OSP (00h)
Trang 28Y0Y1Y2Y3Y4Y5Y6Y7
74LS138
00h
07h
RD IO/M
A0
A1
A2
Trang 29Y0Y1Y2Y3Y4Y5Y6Y7
74LS138
00h
07h
WR IO/M
A0
A1
A2
Trang 30Sử dụng 74LS138:
4 cổng vào và 4 cổng ra cùng có địa chỉ từ 00h - 03h
ISP
ABC
G2AG2BG1
Y0Y1Y2Y3Y4Y5Y6Y7
74LS138
00h
03h 00h
03h
OSP
?
?