Chương 4: Ghép nối bộ nhớ và tổ chức vào ra dữ liệu cho 80x86
4.1. Giới thiệu các mạch phụ trợ cho 80x86
Hình 4.1 Sơ đồ chân IC 8284
Cho dù làm việc trong chế độ MIN hay MAX, CPU 8086 luôn cần xung nhịp ( xung đồng hồ ) từ mạch tạo xung nhip 8284. Mạch tạo xung nhịp không những cung cấp xung nhịp với tần số thích hợp cho toàn hệ mà nó còn có ảnh hưởng tới việc đồng bộ tín hiệu RESET và tín hiệu READY của CPU.
- Sơ đồ chân của vi mạch tạo xung nhịp 8284:
- ý nghĩa của các tín hiệu:
+ AEN1, AEN2 : 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 tình trạng sẵn sàng của bộ nhớ hoặc thiết bị ngoại vi.
+ RDY1, RDY2 : cùng với AEN1, AEN2dùng để gây ra các chu kỳ đợi ở CPU.
+ ASYNC : 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 đến tín hiệu READY tới tận sườn xuống 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 của xung đồng hồ tiếp theo.
+ READY : Nối đến đầu READY của CPU. Tín hiệu này được đồng bộ với các tín hiệu RDY1, RDY2.
+ X1, X2 : Nối với hai 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ột mạch dao động bên trong 8284 có nhiệm vụ tạo xung chuẩn dùng làm tín hiệu đồng hồ cho toàn hệ thống.
1 2 3 4 5 6 7 8 9
18 17 16 15 14 13 12 11
Vcc X1 X2 ASYNC EFI F/ C OSC
RES RESET CSYNC
PCLK AEN1
RDY1 READY RDY2 AEN2
CLK
8 2 8 4
+ F/C : 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 lại thì xung
đồng hồ của mạch dao động bên trong dùng thạch anh sẽ được chọn để làm xung nhịp.
+ EFI : lối vào cho xung từ bộ dao động ngoại.
+ CLK : Xung nhịp fCLK=fx/3với độ rỗng 77% nối đến chân của CLK của 8088.
+ PCLK : Xung nhịp fCLK=fx/6với độ rỗng 50% dành cho thiết bị ngoại vi.
+ OSC : Xung nhịp đã được khuếch đại có tần số bằng fx của bộ dao động.
+ RES : Chân khởi động, nối với mạch RC để 8284 để tự khởi động khi bật nguồn.
+ RESET : Nối vào RESETcủa 8088 và là tín hiệu khởi động lại cho toàn hệ + CSYNC : Lối vào cho xung đồng bộ chung khi trong hệ thống có các 8284 dùng dao động ngoài tại chân này (hình 5.6)
- Ghép nối tín hiệu chính của 8086 và 8284.
Hình 4.2 Ghép nối tín hiệu của 8086 và 8284
Mạch 8284 nhận được xung khởi động từ bên ngoài thông qua mạch RC khi bắt đầu bật điện oặc xung khởi động lại khi bấm công tắc . Từ xung này 8284 có nhiệm vụ đưa ra xung khởi động đồng bộ cho CPU cùng với tất cả các thành phần khác của hệ thống.
4.1.2. Mạch điều khiển bus 8288
Vi mạch 8288 lấy 1 số tín hiệu điều khiển của CPU và cung 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 8086 làm việc ở chế độ MAX.
X1 CLK X2 8284
RES RESET F/C CSYNC
CLK 8086
RESET
- Sơ đồ chân và các tín hiệu của 8288
Hình 4.3 Sơ đồ chân IC 8288 - Các tín hiệu chính của 8288 bao gồm :
+ S2,S1,S0 [I, I, I] : là các tín hiệu trạng thái lấy thẳng từ CPU. Tuỳ theo các tín hiệu này mà mạch 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 hoạt động của các thiết bị nối với CPU. Bảng 5.3 mô tả các tín hiệu vào và ra đó.
+ CLK [I] : Đây là đầu vào nối với xung đồng hồ hệ thống (từ mạch 8284) và dùng để đồng bộ toàn bộ các xung điều khiển đi ra từ mạch 8288.
+ CEN [I] : Là tín hiệu đầu vào để cho phép đưa ra tín hiệu DEN và các tín hiệu
điều khiển khác của 8288.
+ IOB [I] : tín hiệu để điều khiển mạch 8288 làm việc ở các chế độ bus khác nhau.
Khi IOB = 1 8288 làm việc ở chế độ bus vào/ra, khi IOB = 0 mạch 8288 làm việc ở chế độ bus hệ thống (như trong các máy IBM PC).
+ MRDC[O] : tín hiệu điều khiển đọc bộ nhớ. Nó kích hoạt bộ nhớ đưa dữ liệu ra bus.
+ MWTC[O]AMWC[O] : là các tín hiệu điều khiển ghi bộ nhớ hoặc ghi bộ nhớ kéo dài.
Đó thực chất là các tín hiệu giống như MEMW , nhưng AMWC(advanced memory write command) 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 được thời gian ghi.
+ IORC [O] : 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ị
được chọn để các thiết bị này đưa dữ liệu ra bus.
1 20
2 19
3 18
4 17
5 16
6 15
7 14
8 13
9 12
10 11
8288 IOB CLK
1 S
DT/R
ALE AEN
MRDC MWTCAMWC GND
Vcc S0 2 S
MCE/PDEN
DEN CEN
INTAIORC AIOWC IOWC
AEN : address enable CEN : command enable IOB : input/output bus mode
MRDC: memory read comm
MWTC : memory write comm
AMWC: advanced MWTC IORC: i/o read command
IOWC: i/o write command
AIOWC: advanced IOWC
DT/R: data transmit/receive DEN : data enable
MCE/PDEN : master cascade enable/peripheral data enable
+ IOWC[O]AIOWC[O] : là các tín hiệu điều khiển đọc thiết bị ngoại vi hoặc
đọc thiết bị ngoại vi kéo dài.
Đó thực chất là các tín hiệu giống như IOW, nhưng AIOWC (advanced I/O write command) 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 được thời gian ghi.
+ INTA [O] : là đầu ra để thông báo là CPU chấp nhận yêu cầu ngắt của thiết bị ngoại vi và lúc này các thiết bị ngoại vi phải đưa ra số hiệu ngắt ra bus để CPU đọc.
+ DT/R [O] : là tín hiệu để điều khiển hướng đi của dữ liệu trong hệ vào hay ra so với CPU (DT/R = 0 : CPU đọc dữ liệu, DT/R = 1 CPU ghi dữ liệu).
Trong các máy IBM PC thì tín hiệu này được nối đến các chân DIR của mạch
đệm 2 chiều 74LS245 để điều khiển dữ liệu đi từ CPU đến bus hệ thống khi ghi hoặc ngược lại, từ bus hệ thống đến CPU khi đọc.
+ DEN [O] : đây là tín hiệu để điều khiển bus 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] : đây là tín hiệu dùng để định chế độ làm việc cho mạch điều khiển ngắt PIC 8259 để nó làm việc ở chế độ chủ.
+ ALE [O] : đây là tín hiệu cho phép chốt địa chỉ tại các chân dồn kênh địa chỉ - dữ liệu AD0 - AD7, tín hiệu này thường được nối với chân G của mạch 74LS373 để
điều khiển mạch này chốt lấy địa chỉ.