Chương 1 Hệ vi xử lý
1.1. Vi xử lý là gì?
1.2. Các thế hệ của bộ vi xử lý
1.2.1. Thế hệ 1 (1971 đến 1973)
1.2.2. Thế hệ 2 (1974 đến 1977)
1.2.3. Thế hệ 3 (1978 đến 1982)
1.3. Thế hệ 4 (1983 đến nay)
1.4. Giới thiệu cấu trúc của hệ vi xử lý
1.3.1. CPU - Bộ xử lý trung tâm
1.3.2. Bộ nhớ bán dẫn (ROM, RAM)
1.3.3. Hệ thống vào ra (I/O)
1.3.4. Liên hệ giữa các khối
Chương 2 Bộ vi xử lý 8088 của Intel
2.1. Giới thiệu hoạt động của bộ vi xử lý 8088
2.1.1. Giới thiệu chung
2.1.2. Cấu trúc và hoạt động của bộ VXL 8088
2.2. Chế độ địa chỉ của 8088
2.2.1. Chế độ địa chỉ thanh ghi
2.2.2. Chế độ địa chỉ tức thì
2.2.3. Chế độ địa chỉ tực tiếp
2.2.4. Chế độ địa chỉ gián tiếp qua thanh ghi
2.2.5. Chế độ địa chỉ tương đối cơ sở
2.2.6. Chế độ địa chỉ tương đối chỉ số
2.2.7. Chế độ địa chỉ tương đối chỉ số cơ sở
2.3. Mô tả tập lệnh của 8088
2.3.1. Nhóm lệnh chuyển dữ liệu
2.3.2. Nhóm lệnh số học
2.3.3. Nhóm lệnh logic, dịch và quay
2.3.4. Nhóm lệnh so sánh
2.3.5. Nhóm lệnh rẽ nhánh (nhảy), lặp
2.3.6. Nhóm các lệnh đặc biệt
Chương 3 Lập trình bằng hợp ngữ cho 8088 trên máy tính IBM PC và
các máy tương thích IBM PC
3.1. Giới thiệu chung
3.2. Giới thiệu khung chương trình
3.2.1. Cấu trúc của một lệnh hợp ngữ
3.2.2. Dữ liệu cho chương trình hợp ngữ
3.2.3. Biến và hằng
3.2.4. Khung của một chương trình hợp ngữ
3.3. Cách tạo và cho chạy một chương trình hợp ngữ
3.4. Các cấu trúc lập trình cơ bản trong assembly
3.4.1. Cấu trúc tuần tự
3.4.2. Cấu trúc lựa chọn
3.4.3. Cấu trúc lặp
3.5. Truyền tham số
3.6. Một số ngắt của DOS và của BIOS
Chương 4 Ghép 8088 với bộ nhớ và tổ chức vào ra dữ liệu
4.1. Giới thiệu tín hiệu chân của 8088 và các mạch phụ trợ
4.1.1. Bảy nhóm tín hiệu
4.1.2. Phân kênh để tách thông tin và đệm bus
4.1.3. Mạch tạo xung nhịp 8284
4.1.4. Mạch điều khiển bus 8288
4.1.5. Biều đồ thời gian của các lệnh đọc/ghi
4.2. Phối ghép 8088 với bộ nhớ
4.2.1. Bộ nhớ bán dẫn
4.2.2. Giải mã địa chỉ cho bộ nhớ
4.2.3. Phối ghép 8088 với bộ nhớ
4.3. Phối ghép 8088 với thiết bị ngoại vi
4.3.1. Các kiểu phối ghép vào ra
4.3.2. Giải mã địa chỉ cho thiết vị vào/ra
4.3.3. Các mạch cổng đơn giản
4.3.4. Mạch phối ghép vào/ra song song lập trình được PPI 8255
Chương 5 Vào ra dữ liệu bằng cách thăm dò
5.1. Giới thiệu chung về các phương pháp điều khiển vào/ra dữ liệu
5.2. Vào/ra dữ liệu bằng cách thăm dò trạng thái sẵn sàng của thiết bị ngoại
vi
Chương 6 Ngắt và xử lý ngắt trong hệ vi xử lý 8088
6.1. Sự cần thiết phải ngắt CPU
6.2. Ngắt trong vi xử lý 8088
6.2.1. Các loại ngắt trong hệ 8088
6.2.2. Đáp ứng của CPU khi có yêu cầu ngắt
6.2.3. Xử lý ưu tiên ngắt
6.2.4. Mạch điều khiển ngắt ưu tiên PPI 8259A
Chương 7 Vào ra dữ liệu bằng DMA
7.1. Nguyên tắc của việc trao đổi dữ liệu với thiết bị ngoại vi bằng cách
thâm nhập trực tiếp vào bộ nhớ (DMA)
7.2. DMAC 8237-5 trong hệ vi xử lý 8088
7.2.1. Tín hiệu HOLD và HLDA trong CPU 8088
7.2.2. Mạch DMAC 8237-5 của Intel
112 trang |
Chia sẻ: trungkhoi17 | Lượt xem: 511 | Lượt tải: 0
Bạn đang xem trước 20 trang tài liệu Giáo trình môn học Kỹ thuật vi xử lý, để xem tài liệu hoàn chỉnh bạn click vào nút DOWNLOAD ở trên
1
X2
ASYN
C
EFI
FC
OSC
RES
RESET
CSYN
PCLK
AEN1
RDY1
READ
Y
RDY2
AEN2
CLK
GND
Hình vẽ:Mạch 8284
TRƯỜNG ĐẠI HỌC KỸ THUẬT CÔNG NGHIỆP
Nguyễn văn Huy- Bài giảng Kỹ thuật vi xử lý 51
cấp xung clock cho 8088, nó còn cung cấp xung nhịp có tần số thích hợp cho toàn hệ và nó
còn đồng bộ tín hiệu RESET và tín hiệu READY của CPU.
Các tín hiệu
AEN1, AEN2 (Address ENable) [I]: Tín hiệu cho phép chọn đầu vào tương ứng
RDY1, RDY2 làm tín hiệu báo trạng thái sẵn sàng của bộ nhớ hoặc thiết bị ngoại
vi.
RDY1, RDy2 (Bus Ready): Các tín hiệu này cùng với AEN1, AEN2 dùng để tạo
ra các chu kỳ đợi (Tw) ở CPU.
Hình vẽ: Lược đồ máy IBM PC/XT
IO/M
RD
WR
A19/S6
A18/S5
A17/S4
A16/S3
A15
A14
A13
A12
A11
A10
A9
A8
CPU 8088
ALE
A/D7
A/D6
A/D5
A/D4
A/D3
A/D2
A/D1
A/D0
DT/R DEN
„LS244
G OC
oc1 oc2
„LS373
„LS373
G OC
G 74LS373 OC
7
4
L
S
2
4
4
Control
Bus
Address
Bus
Data
Bus
TRƯỜNG ĐẠI HỌC KỸ THUẬT CÔNG NGHIỆP
Nguyễn văn Huy- Bài giảng Kỹ thuật vi xử lý 52
ASYNC (Ready Synchronisation Setect) [I]: Chọn đồng bộ hai tầng hoặc đồng bộ
một tầng cho tín hiệu RDY1, RDY2. Trong chế độ đồng bộ một tầng
(ASYNC=1) tín hiệu RDY có ảnh hưởng tới các tín hiệu READY tới tận sườn âm
của xung đồng hồ tiếp theo. Còn trong chế độ đồng bộ hai tầng (ASYNC = 0), tín
hiệu RDY chỉ có ảnh hưởng đến tín hiệu READY khi có sườn xuống (sườn âm)
của xung đồng hồ tiếp theo.
READY [O]: Nối đến đầu vào READY của 8088. Tín hiệu này được đồng bộ với
các tín hiệu RDY1, RDY2.
X1, X2 (Crystal) [I]: Nối với 2 chân của thạch anh với tần số fx. Thạch anh này là
một bộ phận của mạch dao động bên trong 8284 có nhiệm vụ tạo xung chuẩn làm
tín hiệu đồng bộ cho toàn bộ hệ thống.
F/C (Frequency/Crystal) [I]: Dùng để chọn nguồn tín hiệu chuẩn cho 8284. Khi
chân này ở mức cao thì xung đồng hồ bên ngoài sẽ được dùng làm xung nhịp cho
8284, ngược lai thì xung đồng hồ của mạch dao động bên trong sẽ được chọn làm
xung nhịp.
EFI (External Frequency Input) [I]: Lối vào cho xung từ bộ dao động ngoài.
CLK [O]: Xung nhịp, fclk = fx/3, với độ rỗng 77% nối đến chân CLK của 8088.
PCLK (Peripheral Clock) [O]: Xung nhip fpclk = fx/6, với độ rỗng 50% dành cho
thiét bị ngoại vi.
OSC (OSC Input) [O]: Xung nhịp có tần số fx đã được khuếch đại.
RES (Reset Input) [I]: Chân khởi động, nối với mạch RC để 8284 có thể tự khởi
động khi bật nguồn.
RESET (Reset Output) [O]: Nối vào Reset của 8088, là tín hiệu khởi động lại
(Reset) cho toàn hệ thống.
CSYNC (Clock Synchronisation) [O]: Lối vào cho xung đồng bộ chung khi trong
hệ thống có các 8284 dùng dao động ngoài tai chân EFI. Khi dùng mạch dao động
trong thì phải nối đất chân này.
4.1.4. M
ạch điều khiển bus 8288
Vi mạch 8288 là mạch điều khiển bus, nó nhận
một số tín hiệu điều khiển từ CPU (8088) và cung
X1 CLK
X2
8284
RES RESET
F/C CSYNC
+5v
K
10K
10ỡ
CLK
8088
RESET
F/C CSYNC
Reset hệ thống
Hình vẽ: 8284 nối với 8088
Vcc
S0
S2
MCE/PDEN
DEN
CEN
INTA
IORC
AIOWC
IOWC
1 20
2 19
3 18
4 17
5 16
6 15
7 14
8 13
9 12
10 11
IOB
CLK
S1
DT/R
ALE
AEN
MRDC
AMWC
MWTC
GND
TRƯỜNG ĐẠI HỌC KỸ THUẬT CÔNG NGHIỆP
Nguyễn văn Huy- Bài giảng Kỹ thuật vi xử lý 53
cấp tất cả các tín hiệu điều khiển cần thiết cho hệ vi xử lý khi CPU 8088 làm việc ở chế độ
MAX.
Trong đó có một số tín hiệu mang tên:
AEN: Address ENable
CEN: Command ENable
IOB: Input/Output Bus mode
MRDC: Memory ReaD Command
MWTC: Memory WriTe Command
AMWC: Advanced MWTC
IORC: Input/Output Read Command
AIOWC: Advanced IOWC
DT/R: Data transmit/Receive
DEN: Data Enable.
MCE/PDEN: Master Cascade Enable/Peripheral Data Enable
Các tín hiệu của 8288 gồm:
S2, S1, S0 [I] (Status): Là tín hiệu trạng thái lấy trực tiếp từ CPU. Tuỳ theo các
tín hiệu này mà 8288 sẽ tạo ra các tín hiệu điều khiển khác nhau tại các chân ra
của nó để điều khiển sự hoạt động của các thiết bị nối với CPU (Bảng tín hiệu
trạng thái Si của 8088 ở chế độ MAX, bao gồm cả vào và ra của các tín hiệu).
CLK [I] (Clock): Nối với xung đồng hồ của hệ thống (từ 8284) và dùng để đồng
bộ các xung điều khiển đi ra từ mạch 8284.
ANE [I] (Address Enable): Đây là tín hiệu vào, sau khoảng thời gian trễ cỡ 150
ms thì sẽ kích hoạt các tín hiệu điều khiển đầu ra của 8288.
CEN [I] (Command Enable): Tín hiệu vào để cho phép đea ra tín hiệu DEN và
các tín hiệu điều khiển khác của 8288.
IOB [I] (Input/Output bus mode): Tín hiệu để điều khiển mạch 8284 làm việc ở
các chế độ bus khác nhau.
o Khi IOB = 1 thì 8288 làm việc ở chế độ bus vào/ra.
o Khi IOB = 0 thì 8288 làm việc ở chế độ bus hệ thống.
(Như trong các máy IBM PC)
MRDC [O] (Memory Read Command): Là tín hiệu điều khiển đoc bộ nhớ, nó sẽ
kích hoạt bộ nhớ đưa dữ liệu ra bus.
MWTC, AMWC [O] (Memory Write Command – Advanced MWTC): Là các tín
hiệu ghi bộ nhớ hoặc ghi bộ nhớ kéo dài. Chúng giống như MEMW, nhưng
AMWC hoạt động sớm lên một chút để tạo ra khả năng cho các bộ nhớ chậm có
thêm thời gian.
IORC [O] (I/O Read Command): Là các tín hiệu điều khiển đọc thiết bị ngoại vi.
Nó kích hoạt các thiết bị ngoại vi được chọn để các thiết bị này đưa dữ liệu ra
bus.
IOWC, AIOWC [O] (I/O Write Command, Advanced IOWC): Là các tín hiệu
điều khiển ghi thiết bị ngoại vi hoặc ghi thiết bi ngoại vi kéo dài. Chúng là các tín
hiệu giống như IOW, nhưng AIOWC hoạt động sớm lên một chút để cho các thiết
bị ngoại vi chậm được kéo dài thêm thời gian ghi.
TRƯỜNG ĐẠI HỌC KỸ THUẬT CÔNG NGHIỆP
Nguyễn văn Huy- Bài giảng Kỹ thuật vi xử lý 54
INTA [O] (Interrupt Acknowledge): Là đầu ra để thông báo cho thiết bị ngoại vi
biết là CPU đã chấp nhận yêu cầu ngắt (yêu cầu của thiết bị ngoại vi). Và khi này
thiết bị ngoại vi phải đưa số hiệu ngắt ra bus dữ liệu để CPU đọc lấy.
DT/R [O] (Data Transmit/Receive): Là tín hiệu để điều khiển chiều của dữ liệu
trong hệ thống là vào hay ra so với CPU.
o DT/R = 1: CPU đọc dữ liệu.
o DT/R = 0: CPU ghi dữ liệu.
Trong các máy IBM PC thì tín hiệu này được nối đến chân DIR của mạch đệm 2
chiều 74LS245 để điều khiển hướng đi của dữ liệu.
DEN [O] (Data Enable): Là tín hiệu để điều khiển dữ liệu trở thành bus cục bộ
hay bus hệ thống. Trong các máy IBM PC thì tín hiệu này được sử dụng cùng với
tín hiệu của mạch điều khiển ngắt PIC 8259 để tạo ra tín hiệu điều khiển cực G
của mạch đệm 2 chiều 74LS245.
MCE/PDEN [O] (Master Cascade Enable/Peripheral Data ENable): Đây là tín
hiệu dùng để đặt chế độ làm việc cho mạch điều khiển ngắt PIC 8259 để nó làm
việc ở chế độ chủ (Master).
ALE [O] (Address Latch Enable): Là tín hiệu báo cho phép chốt địa chỉ có tại các
chân dồn kênh A/D (A/D0 – A/D7), tín hiệu này thường nối với chân G của mạch
chốt 74LS373 để điều khiển mạch mày chốt lấy địa chỉ.
4.1.5. Biều đồ thời gian của các lệnh đọc/ghi
Chu kỳ bus là một chu kỳ vận chuyển dữ liệu hoàn thành, điều này còn phụ thuộc vào số
lượng các tín hiệu điều khiển (của CPU điều khiển hay DMAC, ...). Một chu kỳ bus thường
tốn khoảng 4 chu kỳ xung clock. Cụ thể những hiện tượng xảy ra trong một chu kỳ bus (đã
được đơn giản hoá) như sau:
T1: Trong chu kỳ này tín hiệu địa chỉ của bộ nhớ hay thiết bị ngoại vi được đưa ra
các chân địa chỉ, các chân dồn kênh A/D, A/S. Các tín hiệu điều khiển như ALE,
DT/R, IO/M cũng được đưa ra để giúp cho việc chốt địa chỉ này (20 bit địa chỉ).
T2: Trong chu kỳ này, CPU 8088 đưa ra các tín hiệu điều khiển RD, hoặc WR,
DEN (Data Enable) và các tín hiệu dữ liệu: D7 – D0 (nếu là lệnh ghi). Tín hiệu
DEN thường dùng để mở các bộ đệm của bus dữ liệu (nếu các mạch đệm này có
mặt trong hệ thống). Tại cuối chu kỳ T2 (và giữa mỗi chu kỳ Ti cả Tw nếu có),
CPU lây mẫu tín hiệu READY để xử lý trong các chu kỳ tiếp theo khi nó phải
làm việc với bộ nhớ hoặc thiết bị ngoại vi hoạt động chậm.
T3: Trong chu kỳ T3, CPU dành thời gian cho bộ nhớ hay thiết bị ngoại vi truy
nhập dữ liệu. Nếu là chu kỳ đọc dữ liệu thì tại cuối T3, CPU sẽ lấy mẫu tín hiệu
của bus dữ liệu. Nếu tại cuối chu kỳ T2 (hoặc giữa mỗi chu kỳ Ti của Tw) mà
Cpu phát hiện ra tín hiệu READY = 0 (do bộ nhớ hoặc thiết bị ngoại vi đưa đên)
thf CPU tự xen vào sau T3 một vai chu kỳ T để tạo chu kỳ đợik Tw (Tw (wait) =
n*T) nhằm kéo dài thời gian thực hiện lệnh, tạo điều kiện cho bộ nhớ hoặc thiết
bị ngoại vi chậm có đủ thời gian hoàn thành việc ghi/đọc dữ liệu.
T4: Trong chu kỳ này các tín hiệu điều khiển được đưa về trạng thái không tích
cực để chuẩn bị cho chu kỳ bus mới. Tín hiệu điều khiển WR trong khi chuyển
trạng thái từ 0 => 1 sẽ kích hoạt việc ghi dữ liệu vào bộ nhớ hay thiết bị ngoại vi.
TRƯỜNG ĐẠI HỌC KỸ THUẬT CÔNG NGHIỆP
Nguyễn văn Huy- Bài giảng Kỹ thuật vi xử lý 55
Hình vẽ: Các tín hiệu của 8088 trong một chu kỳ ghi (đã được đơn giản hoá)
Chu kỳ bus
T3 T2 T1 T4
Twr
Address Status Signal
Address ổn định
Data ghi Address
Tw (Chu kỳ đợi – Wait)
T giữa w
Low active
Low active
CLK
ALE
A/S
A/D
A
WR
DEN
Hight active
TRƯỜNG ĐẠI HỌC KỸ THUẬT CÔNG NGHIỆP
Nguyễn văn Huy- Bài giảng Kỹ thuật vi xử lý 56
Hình vẽ: Các tín hiệu của 8088 trong một chu kỳ đọc (đã được đơn giản hoá)
Ví dụ:
Xét với CPU 8088 làm việc ở tần số = 5MHz, mỗi Ti kéo dài 200 ns (nano giây).
Theo hình vẽ chu kỳ đọc bộ nhớ: việc truy nhập bộ nhớ kéo dài trong khoảng từ T1 đến
T3 mất khoảng 600 ns.
Ttrễ địa chỉ = 110 ns, Tgiữ R = 30 ns (thời gian giữ của dữ liệu khi đọc)
Ttrễ đệm = 40 ns (trễ khi truyền dữ liệu qua các mạch đệm)
==> thời gian thâm nhập = 3*T - Ttrễ địa chỉ - Tgiữ R - Ttrễ đệm = 420 ns
==> Bộ nhớ nối với 8088/5MHz cần có thời gian thâm nhập ≤ 420 ns thì hiệu quả (8088
không phải xen thêm các chu kỳ đợi).
Hơn nữa, với CPU 8088 thì TRD (độ rộng xung đọc) = 325 ns, là khoảng thời gian đủ
dài để cho bộ nhớ với thời gian thâm nhập 420 ns.
Trong hình vẽ chu kỳ ghi dữ liệu: Cần có thời gian giữ dữ liệu tối thiểu Tgiữ W = 88 ns
sau khi WR chuyển từ 0 --> 1. Thực tế thời gian này xấp xỉ bằng 0 đối với các bộ nhớ thông
dụng. Độ dài xung ghi đối với 8088/5 MHz là TWR = 340 ns cũng phù hợp với các bộ nhớ
có thời gian thâm nhập cỡ 420 ns.
T1 T2 T3 T4
Chu kỳ bus
Trd
Address Status Signal
Address ổn định
Tw
Low active
Low active
CLK
ALE
A/S
A/D
A
RD
DEN
Hight active
T trễ địa chỉ
TRƯỜNG ĐẠI HỌC KỸ THUẬT CÔNG NGHIỆP
Nguyễn văn Huy- Bài giảng Kỹ thuật vi xử lý 57
Hình vẽ: Mạch tạo 0 .. 7 trạng thái đợi và biểu đồ thời gian
4.2. Phối ghép 8088 với bộ nhớ
4.2.1. Bộ nhớ bán dẫn
Các vi mạch nhớ thường dùng với các hệ vi xử lý gồm:
ROM (Read Only Memory – Bộ nhớ cố định): Bộ nhớ loại này thường có nội
dung được ghi săn từ khi sản xuất và chỉ có thể đọc ra nên chúng được gọi là bộ
nhớ cố định. Loại này còn được gọi là ROM mặt nạ vì thông tin trong ROM được
ghi thông qua một mặt nạ. Khi mất nguồn nuôi cung cấp cho vi mạch thì thông tin
vẫn còn (nội dung trong RM không bị mất đi).
o PROM (Programmable ROM): Loại này ra ROM trắng (chưa ghi thôngo tin)
sau khi sản xuất. Người sử dụng có thể ghi thông tin vào ROM theo ý mình
một lần duy nhất bằng máy nạp ROM (máy ghi ROM chuyên dụng).
o EPROM (Erasable ROM): Loại ROM này có thể ghi (“lập trình”) bằng xung
điện và xoá bằng tia cực tím (UV – Untra Violete), từ một máy nạp ROM.
RDY1
AEN1
RDY2
CLK
READY
QA QB QC QD DE QF QG GH
CLK
CLR SI
1T 3T 4T 5T 6T 7T 8T
READY
CLK
8088
RD
WR
INTA
READY
CS của mạch nhớ
T1 T2 T3 TW T5
CLK
QA
QB
QC
QD
TRƯỜNG ĐẠI HỌC KỸ THUẬT CÔNG NGHIỆP
Nguyễn văn Huy- Bài giảng Kỹ thuật vi xử lý 58
o EEPROM (Electric EPROM): Giống như EPROM, nhưng việc ghi/xoá ROM
có thể thực hiện ngay trong mạch làm việc mà không đòi hỏi phải thông qua
máy nạp ROM.
RAM (Random Access Memory – Bộ nhớ ghi/đọc): Đặc trưng của loại bộ nhớ
này là thông tin sẽ bị mất đi khi mất nguồn nuôi cấp cho vi mạch.
o SRAM (Static RAM – RAM tĩnh): Mỗi phần tử nhớ của loại này được cấu tạo
từ mạch lật (flip – flop) nên có đặc điểm là tác động nhanh, thông tin ổn định.
Kèm theo đó là tốn nhiều transistor cho một đơn vị nhớ nên đắt tiền. Chúng
thường được dùng vào những thành phần nhớ quan trọng như thanh ghi,
cache, ...
o DRAM (Dynamic RAM): Mỗi phần tử nhớ của loại này được cấu tạo từ một
tụ điện nhỏ, được chế tạo bằng công nghệ PMOS. Loại này có đặc điểm là tác
động chậm, thông tin không ổn định vì có sự dò điện tích giữa 2 bản tụ (1: tụ
được tích điện, 0: tụ không được tích điện) nên cần các mạch phụ trợ để bù lại
lượng điện tích bị dò – gọi là các mạch làm tươi. Loại này rẻ hơn SRAM và có
thể sản xuất vi mạch nhớ với dụng lượng lớn.
Một bộ nhớ (hay một modul nhớ nói chung) được cấu tạo (tạo nên) từ nhiều vi mạch nhớ
ghép lại. Mỗi vi mạch nhớ thường
có cấu tạo như sau:
Am-1 – A0: m bit địa chỉ
Dn-1 – D0: n bit dữ liệu
Dung lượng tính theo bit: 2m*n
(bits).
Nếu n = 8 thì dung lượng là: 2m
(bytes)
WR [I] (WRite): Tín hiệu điều
khiển ghi, với ROM thường là
WE: Write Enale
RD [I] (ReaD): Tín hiệu điều
khiển đọc, với ROM thường là OE: Output Enale
CS [I] (Chip Select): Tín hiệu chọn chip, với ROM thường là CE: Chip Enale
Nhóm tín hiệu địa chỉ (Am-1 – A0): Dùng để chọn ra ô nhớ cụ thể được ghi/đọc.
Các ô nhớ có độ dài khác nhau tuỳ từng loại vi mạch nhớ, từng nhà sản xuất: 1, 4,
8, ... bit. Số lượng các đường dây địa chỉ xác định dung lượng của vi mạch nhớ.
Dung lượng = 2m (ô nhớ).
Nếu m = 10 thì dung lượng là: 210 = 1 Kilo ô nhớ (kilo = 1024)
Nếu m = 20 thì dung lượng là: 220 = 1 Mega ô nhớ (kilo = 1024*1024 = 1048576)
Nhóm tín hiệu dữ liệu (Dn-1 – D0): Các đường tín hiệu này là đầu ra đối với vi
mạch ROM và là vào/ra đối với vi mạch RAM, cũng có thể đặt riêng nhóm đường
vào và ra của các tín hiệu này, khi nối vào bus dữ liệu: là nối chung vì các mạch
nhớ thường có đầu ra đữ liệu 3 trạng thái. Số đường dữ liệu (n) xác định độ dài
của ô nhớ (ngăn nhớ – từ nhớ). Thường ghi rõ 1Kx8 hoặc 16Kx4 hoặc 1Kx1.
A0 D0
A1 D1
Am-1 Dn-1
WE
OE
CS
WR
RD
RD
RD
CS
Address Data
TRƯỜNG ĐẠI HỌC KỸ THUẬT CÔNG NGHIỆP
Nguyễn văn Huy- Bài giảng Kỹ thuật vi xử lý 59
Tín hiệu chọn vi mạch: Người ta thường dùng ký hiệu CS (Chip Select) cho các
vi mạch RAM và CE (Chip Enable) cho các vi mạch ROM. Tín hiệu này dùng để
chọn ra (cho phép) vi mạch nhớ nào trong bộ nhớ làm việc thì mới tiến hành
ghi/đọc ô nhớ của vi mạch đó. Tín hiệu này thường được nối với đầu ra của mạch
giải mã địa chỉ. Khi một số vi mạch nhớ có tín hiệu này ở trạng thái không tích
cực thì bus dữ liệu của nó (Am-1 – A0) bị treo (trạng thái trở kháng cao).
Nhóm tín hiệu điều khiển: Các tín hiệu điều khiển đọc RD và WR (OE và WE đối
với ROM) luôn ngược pha nhau để cho phép dữ liệu từ bus dữ liệu được đi vào bi
mạch hoặc ngược lại từ vi mạch nhớ ra bus dữ liệu. Cũng có những RAM chỉ có 1
đường tín hiệu điều khiển cho cả ghi và đọc: R/W. Khi này: R/W=1: đọc, R/W=1:
ghi.
Một đặc trưng quan trọng của vi mạch nhớ là thời gian thâm nhập tac (taccess). Có thể
định nghĩa rằng thời gian thâm nhập của một vi mạch nhớ là khoảng thời gian kể từ khi có
(xung) địa chỉ trên bus địa chỉ cho đến khi dữ liệu ra ổn định trên bus dữ liệu. Thông số này
phụ thuộc vào công nghệ chế tạo vi mạch nhớ.
Với công nghệ lưỡng cực, có thể sản xuất các vi mạch nhớ có tac = 10 – 30 ns.
Với công nghệ MOS, có thể sản xuất các vi mạch nhớ có tac lớn hơn, cỡ 150 ns hoặc
hơn nữa.
Bộ nhớ EPROM
Các vi mạch EPROM thông dụng tồn tại dưới nhiều kiểu khác nhau. Hệ 27xxx có một số
loại sau:
2708 (1Kx8); 27256 (32Kx8);
2732 (2Kx8); 27512 (64Kx8);
2764 (8Kx8); 27128 (16Kx8);
Với tac = 250 – 450 ns tùy từng loại cụ thể.
Ví dụ: Xét vi mạch nhớ EPROM 2716 có tac = 450 ns. Vậy để ghép với bộ vi xử lý 8088
– 5 MHz cần có thêm các chu kỳ đợi (Tw). Ngược lại mạch 2716-1 lại có tac = 250 ns nên
không cần có thêm các chu kỳ đợi.
Chú ý: Trong chế độ duy trì công suất tiêu thụ của mạch giảm được tới 75% so với công
suất tiêu thụ khi nó ở chế độ tích cực.
Bộ nhớ EPROM 2716 (2Kx8)
x: Don‟t care
Chân
(pins)
Chế độ
(Mode)
CE/PGM OE
Vpp
[V]
Vcc
[V]
D7–D0
Đọc 0 0 +5 +5 Dout
Duy trì 1 x +5 +5 HZ
Ghi
Xung ghi
kéo dài
50 ns
1 +25 +5 Din
Kiểm
tra ghi
0 0 +25 +5 Dout
Cấm
ghi
0 1 +25 +5 HZ
WR
RD
RD
RD
CS
A11-A0 D7-D0
OE
CE
PGM (Vpp)
TRƯỜNG ĐẠI HỌC KỸ THUẬT CÔNG NGHIỆP
Nguyễn văn Huy- Bài giảng Kỹ thuật vi xử lý 60
HZ: Trạng thái trở kháng cao.
A10-A0: 11 bit địa chỉ.
D7-D0: 8 bit dữ liệu.
OE (Output Enable): Cho phép đưa dữ liệu ra.
CE/PGM: Chọn chip/điều khiển ghi.
Vpp: Điện áp ghi.
Bộ nhớ SRAM (RAM tĩnh)
Bộ nhớ được cấu tạo từ các phần tử nhớ là các mạch lật (flip – flop) nên nó sẽ lưu giữ
thông tin một cách ổn định chừng nào nó còn được cấp điện (nguồn nuôi). Các bộ nhớ
SRAM và các bộ nhớ EPROM có dung lượng bằng nhau thường có cách tổ chức (bố trí) các
chân giống nhau để dễ dàng thay thế cho nhau trong quá trình phát triển hệ thống.
Trong thực tế đã tồn tại các mạch nhớ SRAM với dung lượng:
32Kx8 (62256 LP – 10), tac = 100ns, công nghệ CMOS.
SRAM được chế tạo theo công nghệ lưỡng cực (8KB – 128 KB) có thời gian trao đổi dữ
liệu (thâm nhập): tac = 15 ns.
Ví dụ: Xét vi mạch nhớ SRAM TMS 4014
(2Kx8), tac = 250 ns.
A10-A0 : 11 bit địa chỉ
D7-D0 : 8 bit dữ liệu
OE/WE : Cho phép đọc/cho phép ghi.
CS : Chọn chip.
Bộ nhớ DRAM (RAM động)
Bộ nhớ DRAM được cấu tạo từ các phần tử nhớ là các tụ điện. Nó lưu trữ thông tin bằng
cách nạp tụ (1) hay không nạp (0) điên tích trên tụ. Vì có sự dò điện tích trên 2 bản cực tụ
điện mà thông tin lưu trữ trong bộ nhớ loại này không ổn định. Vì vậy DRAM cần được làm
tươi (refresh) bằng cách ghi hay đọc lại DRAM theo chu kỳ sau mỗi quãng thời gian khoảng
15,6 s. Các mạch nhớ SRAM cần có thêm các mạch logic phụ để đảm bảo điều khiển việc
làm tươi nên việc phối ghép nó với bộ vi xử lý là rất phức tạp. Nhưng DRAM có ưu điểm là
có thể chế tạo được một số lượng rất lớn các phần tử nhớ trên một đơn vị diện tích (vì mỗi
phần tử nhớ cần rất ít transistor – 1). Và vì vậy các vi mạch nhớ này cũng cần rất nhiều chân
địa chỉ. Để giảm bớt số chân địa chỉ trên vi mạch nhớ (để dễ chế tạo mạch in và lắp ráp)
người ta thường chia địa chỉ thành 2 nhóm là địa chỉ hàng và địa chỉ cột và dồn kênh chúng
trên các chân địa chỉ. Vì vậy các phần tử nhớ của bộ nhớ được tổ chức theo ma trận mà mỗi
ô nhớ là một phần tử của ma trận nhớ. Việc dồn kênh địa chỉ trên các chân địa chỉ cần thêm
các tín hiệu báo thời điểm nào là địa chỉ hàng và thời điểm nào là địa chỉ cột trên các chân
địa chỉ, các tín hiệu đó là:
RAS (Row Access) : Cho phép chốt địa chỉ hàng.
CAS (Column Access): Cho phép chốt địa chỉ cột.
WR
RD
RD
RD
CS
A10-A0 D7-D0
TSM
4014
OE
CE
PGM (Vpp)
TRƯỜNG ĐẠI HỌC KỸ THUẬT CÔNG NGHIỆP
Nguyễn văn Huy- Bài giảng Kỹ thuật vi xử lý 61
Các mạch nhớ DRAM thường được chế tạo với
độ dài 1 hoặc 4 bit trên một ngăn nhớ. Thực tế đã có các mạch nhớ 1Mx1, 4Mx1, 16Mx1 và
chúng được xây dựng thành các modul nhớ kiểu SIMM (Single Inline Memory Modul) hay
SIP (Single Inline Package) dùng trong các máy 80268, 80386, ...
4.2.2. Giải mã địa chỉ cho bộ nhớ
Mỗi vi mạch nhớ hay một modul nhớ khi ghép với bộ vi xử lý cần phải được bộ vi xử lý
tham chiếu tới một cách chính xác khi thực hiện các thao tác ghi/đọc. Có nghĩa là mỗi
“modul” nhớ cần được gán cho một vùng không gian riêng biệt cụ thể (trong không gian
quản lý chung của bọ vi xử lý), có địa chỉ xác định. Việc gán địa chỉ cụ thể cho modul nhớ
được thực hiện nhờ một xung chọn chip từ mạch giải mã địa chỉ. Việc phân chia không gian
tổng thể của bộ vi xử lý thành các vùng khác nhau dành cho các mục đích khác nhau gọi là
phân vùng bộ nhớ.
Ví dụ:
Với 8088 vì có 20 bit địa chỉ (A19 – A0) nên không gian tổng thể dành cho bộ nhớ là 2
20
= 2
10
*2
10
= 1 MB (1 byte/ngăn nhớ). Trong không gian tổng thể đó:
1) Vùng không gian 1 KB đầu, kể từ địa chỉ thấp nhất: 00000h – là phải được
dành cho RAM vì tại đây phải có chỗ dành cho bảng vector ngắt gồm 256
(ngắt)*4 (byte)= 1KB).
2) Vùng nhớ có địa chỉ FFFF0h thì nhất thiết phải được dành cho ROM hoặc
EPROM – chứa chương trình khởi động hệ thống. Vì sau khi bật nguồn, CS sẽ
mạng giá trị FFFF0h (là địa chỉ
khởi động của CPU).
Bộ giải mã địa chỉ để tạo ra xung chọn chip
thường có cấu tạo như hình vẽ bên:
Đầu vào bộ (mạch) giải mã là các tín hiệu địa
chỉ và các tín hiệu điều khiển khác nữa (nếu cần
thiết). Các tín hiệu địa chỉ gồm các bit địa chỉ có
quan hệ nhất định với các tín hiệu chọn chip ở
đầu ra. Tín hiệu điều khiển thường là tín hiệu
IO/M dùng để phân biệt đối tượng mà bộ vi xử
lý chọn làm việc là bộ nhớ hay thiết bị vào/ra (I/O device). Mạch giải mã là khâu gây ra việc
trễ thời gian từ bộ vi xử lý đên thiết bvị ngoại vi mà trong khi chọn mạch nhớ/thiết bị ngoại
vi ta cần tính đến. Tuỳ theo quy mô (yêu cầu) của mạch giải mã mà ở đầu ra ta có thể có
nhiều tín hiệu chọn chip (CS).
Giải mã đầy đủ cho một modul nhớ yêu cầu ta phải đưa đến đầu vào của mạch giải mã
các tín hiệu địa chỉ sao cho tín hiệu đầu ra của nó chỉ chọn riêng mạch nhớ đã định trước.
RAS
CAS
A7-A0
Hình vẽ: DRAM TMS 4464 (64Kx8)
WR
RD
RD
RD
A7-A0 D7-D0
TSM
4464
OE
CE
CAS RAS
Address
Decode
Address
Control
CS0
CS1
CSn-1
Hình vẽ: Sơ đồ khối giải mã địa chỉ cho
modul nhớ
TRƯỜNG ĐẠI HỌC KỸ THUẬT CÔNG NGHIỆP
Nguyễn văn Huy- Bài giảng Kỹ thuật vi xử lý 62
Trong trường hợp này ta phải dùng tổ hợp đầy đủ cả các đầu và địa chỉ tương ứng để chọn
mạch nhớ. Nếu ta bỏ bớt đi một tín bit địa chỉ nào đó thì đó là việc giải mã thiếu cho modul
nhớ, vì xung chọn chip ở đầu ra mạch giải mã ngoài việc chọn mạch nhớ ở vùng đã định sẽ
có thể chọn ra các mạch nhớ ở vùng khác nữa. Vậy, việc giải mã thiếu thì có thể tiết kiệm
được linh kiện khi xây dựng mạch giải mã nhưng lại không đảm bảo tính đơn trị theo ý
nghĩa của việc giải mã.
Trong thực tế, thông thường khi thiết kế mạch giải mã địa chỉ cho modul nhớ người ta
thường tính dôi ra một chút để dự phòng sự phát triển tăng thêm dung lượng của bộ nhớ mà
vẫn có thể tận dụng (sử dụng) được mạch giải mã sẵn có.
Xây dựng mạch giải mã bằng các mạch NAND (các mạch logic đơn giản)
Bằng các gates logic kiểu NAND, ta có thể xây dựng được mạch giải mã địa chỉ đơn
giản với số lượng tín hiệu chọn chip ở đầu ra là hạn chế. Ta phải đưa đến đầu vào của mạch
cửa NAND nhiều lối vào một tổ hợp thích hợp của các bit địa chỉ để nhận được ở đầu ra của
nó tín hiệu chọn chip cho modul nhớ.
Ví dụ: Cho modul nhớ SRAM có dung lượng 32 KB (32Kx8). Xây dựng mạch giải mã
để ghép modul trên với 8088 tại địa chỉ 08000h.
Chú ý: Một địa chỉ bắt đầu cho một modul nhớ cần đảm bảo sao cho có giá trị các bit
địa chỉ đưa vào modul nhớ để chọn ra ô nhớ cần tham chiếu phải bằng 0, chúng sẽ “chạy”
lần lượt tới 1 để chọn hết đủ tất cả các ô nhớ.
Giải:
Modul nhớ 32 KB cần có 15 bit địa
chỉ để chọn các ô nhớ.
Không gian địa chỉ của 8088 gồm 20
bit địa chỉ: A19 – A0.
Nên phải sử dụng các bit địa chỉ
thấp: A14 – A0 để đưa vào modul nhớ,
còn lại 5 bit địa chỉ phần cao và các tín
hiệu điều khiển IO/M sẽ đi vào mạch
giải mã. Vậy ta có sơ đồ như sau:
Triển khai địa chỉ của modul nhớ ta
có:
0000 1000 0000 0000 0000=08000h
0000 1000 0000 0000 0001=08001h
0000 1111 1111 1111 1111=0FFFFh
Phần cố định Phần thay đổi
Các tín hiệu điều khiển vào mạch NAND nhiều đầu vào phải đồng thời bằng 1 thì đầu ra
CS = 0.
Vậy ta có sơ đồ như bên:
SRAM
32KB
NAND
A14 – A0
D7 – D0
WR
RD
A19 – A15
IO/M
CS
NAND
A15
CS A16
A17
A18
A19
IO/M
TRƯỜNG ĐẠI HỌC KỸ THUẬT CÔNG NGHIỆP
Nguyễn văn Huy- Bài giảng Kỹ thuật vi xử lý 63
Hoặc ta có thể sử dụng các mạch logic đơn
giản khác để xây dựng mạch giải mã sau cho có
nhiều đầu ra CS = 0 như sau:
Kết luận: Để thực hiện mạch giải mã kiểu này,
có nhiều cách sắp xếp các phần tử logic (gates) để
đưa ra được tín hiệu CS = 0 ở đầu ra. Tuy nhiên
người thiết kế cần phân tích hàm đầu vào và tín
hiệu đầu ra và tối giản các phần tử để sao cho số
lượng các gates logic sử dụng trong mạch giải
mã là ít nhất (tối ưu mạch giải mã). Ví dụ, mạch
giải mã trên có thể thay thế bằng mạch giải mã
bên:
Mạch này cũng thực hiện đúng yêu cầu như
mạch giải mã trên, tuy nhiên tốn nhiều phần tử
gates logic hơn nên chưa tốt.
Giải thích: Trong mạch giải mã cho modul nhớ này, xung chọn chip (CS) sẽ có tác động
(CS = 0 – tích cực thấp) khi ta truy xuất bộ nhớ (ghi/đọc) tại địa chỉ nằm trong phạm vi
08000h – 0FFFFh, 5 bit địa chỉ phần cao (A19 – A15) phối hợp cùng tín hiệu điều khiển
IO/M (= 0
Các file đính kèm theo tài liệu này:
- giao_trinh_mon_hoc_ky_thuat_vi_xu_ly.pdf