A/D phần thấp
8 đ−ờng dồn kênh của bus kênh của bus
A phần cao
4 đ−ờng dồn kênh của bus kênh của bus
A/C phần cao tín hiệu điều khiển hệ thống tín hiệu điều khiển bus tín hiệu điều khiển CPU tín hiệu đồng hồ (clock) và nguồn S6=0 liên tục, S5 phản ánh cờ IF. S3, S4 cùng phối hợp để chỉ ra việc truy nhập các thanh ghi đoạn
READY [I]: Tín hiệu báo cho CPU biết tính trạng (trạng thái) sẵn sàng của thiết bị ngoại vi hoặc của bộ nhớ. Khi READY=1 CPU thực hiện ghi/đọc mà không cần xen thêm các chu kỳ đợi. Ng−ợc lại khi TBNV hay bộ nhớ có tốc độ chậm chúng có thể đ−a ra tín hiệu READY=0 để báo cho CPU chờ. Khi này CPU tự kéo dài thời gian thực hiện ghi/đọc bằng cách xen thêm các chu kỳ đợi.
INTR [I]: Đây là chân tiếp nhận tín hiệu yêu cầu ngắt che đ−ợc. Khi có yêu cầu ngắt tác động đến chân này mà cờ cho phép ngắt IF=1 thì CPU kết thúc lệnh đang thi hành dở (kết thúc chu kỳ lệnh), sau đó nó đi vào chu kỳ chấp nhận ngắt và đ−a ra tí hiệu INTA=0 tại chân INTA (24).
TEST [I]: Tín hiệu tại chân này đ−ợc kiểm tra bằng lệnh WAIT. Khi CPU thực hiện lệnh WAIT mà khi đó TEST=1 thì CPU sẽ chờ cho đến khi TEST=0 thì mới thực hiện lệnh tiếp theo.
NMI [I]: Tín hiệu yêu cầu ngắt không che đ−ợc. Tín hiệu này không bị khống chế bởi cờ IF và nó sẽ đ−ợc CPU nhận biết tại d−ờn d−ơng của xung yêu cầu ngắt. Nhận đ−ợc yêu cầu này CPU kết thúc lệnh đang làm dở, sau đó chuyển sang thực hiện ch−ơng trình con phục vụ ngắt INT2 (ISR: Interrupt Service Routine). RESET [I]: Tín hiệu Reset lại 8088 (Trong chừng mực nào đó có thể coi tín hiệu
này là tín hiệu yêu cầu ngắt không che đ−ợc). Khi tín hiệu RESET=1 và kéo dài ít nhất 4 chu kỳ đồng hồ (4 xung clock) thì 8088 bị buộc phải khởi động lại, nó xoá các thanh ghi: DS, ES, SS, IP và FR về 0 và bắt đầu thực hiệu ch−ơng trình tại địa chỉ CS:IP =FFFF:0000 (nh− khi khởi động, IF0 để cấm các ngắt, TF0 để 8088 không bị đặt trong chế độ chạy từng lệnh chạy suốt).
CLK [I]: Tín hiệu xung đồng hồ (xung nhịp). Xung nhịp có độ rỗng 77% và cung cấp nhịp làm việc cho CPU (và các mạch khác của hệ thống).
Vcc [I]: Chân nguồn. Nguồn cung cấp cho CPU là +5V±10%, 340mA. GND [O]: 2 chân nguồn nối với 0V của nguồn nuôi.
MN/MX [I]: Chân điều khiển hoạt động của CPU theo chế độ Min/Max (8088 có thể làm việc ở 2 chế độ khác nhau nên có một số chân tín hiệu phụ thuộc vào chế độ làm việc đó).
Chế độ MIN (chân MN/MX cần đ−ợc nối thẳng vào +5V mà không qua điện trở)
Khi 8088 ở chế độ Min, tất cả các tín hiệu điều khiển liên quan đến các thiết bị ngoại vi truyền thống và bộ nhớ giống nh− trong hệ 8085, đều có sẵn bên trong 8088 cho nên việc phối ghép với các thiết bị ngoại vi và bộ nhớ sẽ rất dễ dàng. Vì vậy có thể tận dụng đ−ợc các phối ghép ngoại vi có sẵn giảm giá thành hệ thống.
IO/M [O]: Tín hiệu này phân biệt tại một thời điểm cụ thể nào đó phần tử nào trong các thiết bị vào/ra (I/O) hoặc bộ nhớ (M: Memory) đ−ợc chọn để trao đổi dữ liệu với CPU. Trên Address bus lúc đó sẽ có các địa chỉ t−ơng ứng thiết bị. Chân này ở trạng thái trở kháng cao khi CPU chấp nhận treo.
WR [O]: Xung cho phép (giống nh− RD). Khi CPU đ−a ra tín hiệu WR=0 thì dữ liệu đã ổn định và chúng sẽ đ−ợc ghi vào bộ nhớ hoặc thiết bị vào/ra tại thời điểm chuyển mức WR=1. Chân WR sẽ ở trạng thái trở kháng cao khi 8088 chấp nhận treo.
INTA [O]: Tín hiệu điều khiển báo cho mạch bên ngoài biết CPU đã chấp nhận yêu cầu ngắt (INTR). Lúc này CPU đ−a ra tín hiệu INTA=0 để báo cho TBNV biết nó đang chờ mạch ngoài đ−a lên Data bus số hiệu ngắt (kiểu ngắt).
ALE [O]: Xung cho phép chốt địa chỉ (Address Latch Enable). Khi ALE=1 cso nghĩa trên bus dồn kênh A/D là địa chỉ của thiết bị ngoại vi hay bộ nhớ. ALE
không bao giờ bị thả nổi (trạng thái trở kháng cao), khi CPU chấp nhận treo thì ALE=0.
DT/R [O]: Tín hiệu điều khiển các đệm bus 2 chiều của Data bus để chọn chiều vận chuyển dữ liệu trên bus D. Chân này ở trạng thái trở kháng cao khi 8088 chấp nhạn treo.
DEN [O]: Tín hiệu báo cho bên ngoài biết khi này trên bus dồn kênh A/D có dữ liệu ổn định. Chân này ở trạng thái trở kháng cao kho 8088 chấp nhận treo.
HOLD [I]: Tín hiệu yêu cầu treo CPU để mạch ngoài thực hiện trao đổi dữ liệu với bộ nhớ bằng cách truy nhập trực tiếp bộ nhớ (DMA – Direct Memory Access). Khi HOLD=1, 8088 sẽ tự tách khỏi hệ thống bằng cách treo các bus A, D, C của nó (các bus ở trạng thái trở kháng cao) để bộ điều khiển DMA là DMAC (DMA Controler) có thể lấy đ−ợc quyền điều khiển hệ thống để thực hiện công việc trao đổi dữ liệu.
HLDA [O]: Tín hiệu báo cho bên ngoài biết yêu cầu treo CPU đã đ−ợc CPU chấp nhận và CPU đã treo các bus A, D và một số tín hiệu điều khiển trên bus C.
SS0 [O]: Đây là tín hiệu trạng thái. Tín hiệu này giống nh− S0 trong chế độ Max và dùng kết hợp với IO/M, DT/R để giải mã các chu kỳ hoạt động của bus.
IO/M DT/R SS0 Chu kỳ điều khiển của bus
0 0 0 Đọc mã lệnh 0 0 1 Đọc bộ nhớ 0 1 0 Ghi bộ nhớ 0 1 1 Bus rỗi (nghỉ) 1 0 0 Chấp nhận yêu cầu ngắt 1 0 1 Đọc thiết bị ngoại vi
1 1 0 Ghi thiết bị ngoại vi
1 1 1 Dừng (Halt)
Bảng quan hệ một số tín hiệu điều khiển
Chế độ MAX (chân MN/MX cần đ−ợc nối thẳng vào 0V)
Khi 8088 làm việc ở chế độ Max, một số tín hiệu điều khiển cần đ−ợc tạo ra trên cơ sở các tín hiệu trạng thái nhờ dùng thêm ở bên ngoài một mạch điều khiển bus 8288. Chế độ Max đ−ợc sử dụng trong hệ thống có mặt bộ đồng xử lý toán học 8087.
S2, S1 và S0 [O]: Là các tín hiệu trạng thái dùng trong chế độ Max để ghép nối với mạch điều khiển bus 8288. Các tín hiệu này đ−ợc 8288 dùng để tạo ra các tín hiệu điểu khiển trong các chu kỳ hoạt động của bus. Các tín hiệu điều khiển đó nh− trong bảng sau:
S2 S1 S0 Chu kỳ điều khiển của bus Tín hiệu
0 0 0 Chấp nhận yêu cầu ngắt INTA
0 0 1 Đọc thiết bị ngoại vi IORC
0 1 0 Ghi thiết bị ngoại vi IOWC,AIOWC
0 1 1 Dừng (Halt) Không
1 0 0 Đọc mã lệnh MRDC
1 0 1 Đọc bộ nhớ MRDC
1 1 0 Ghi bộ nhớ MWTC, AMWC
RQ/GT0 và RQ/GT1 [O]: Là các tín hiệu yêu cầu dùng bus của các bộ vi xử lý khác trong hệ thống hoặc thông báo chấp nhận treo của CPU để cho phép các bộ vi xử lý khác trong hệ thống dùng bus. RQ/GT0 có các mức −u tiên cao hơn RQ/GT1.
LOCK [O]: Tín hiệu do CPU đ−a ra để cấm các bộ vi xử lý khác trong hệ thống dùng bus trong khi nó đang thi hành lệnh nào đó đặt sau tiếp đầu LOCK.
QS0 và QS1 [O]: Tín hiệu thông báo trạng thái khác nhau của đệm lệnh (hàng đợi lệnh). Trong các hệ vi xử lý có mặt bộ đồng xử lý toán học 8087 thì các tín hiệu này dùng để đồng bộ quá trình hoạt động của nó với 8088.
QS1 QS0 Trạng thái đệm lệnh
0 0 Không hoạt động
0 1 Đọc byte mã lệnh đầu tiên từ đệm lệnh
1 0 Đệm lệnh rỗng
1 1 Đọc byte tiếp theo từ đệm lệnh
b. Phân kênh để tách thông tin và đệm bus
Để giảm bớt số chân cho các tín hiệu (khó khăn về công nghệ cũng nh− khi sử dụng) của CPU, ng−ời ta th−ờng thực hiện bằng cách dồn kệnh nhiều tín hiệu trên một chân của CPU (ví dụ nh− 8 đ−ờng dồn kênh của bus A, D phần thấp của 8088). Khi nhận đ−ợc tín hiệu ở bên ngoài, ta phải tiến hành tách thông tin (dữ liệu hoặc địa chỉ). Việc này đ−ợc thực hiện bằng các vi mạch chuyên dung có chức năng thích hợp (th−ờng thì đó là các mạch chốt – latch). Để hỗ trợ cho việc tách thông tin, CPU đ−a ra tín hiệu ALE sao cho khi ALE=1 (mức cao) báo cho bên ngoài biết tại các chân dồn kênh là thông tin về địa chỉ và khi ALE=0 thì tại các chân đó là tín hiệu dữ liệu. Xung ALE đ−ợc dùng để mở các mạch chốt và tách đ−ợc các thông tin về địa chỉ bị dồn kênh. Để nâng cao khả năng tải của các bus (chống suy giảm tín hiệu do đảm nhận nhiều việc nuôi các mạch bên ngoài) các tín hiệu vào/ra CPU phải đ−ợc khuếch đại thông qua các mạch đệm 1 chiều hoặc 2 chiều với các đầu ra: th−ờng hoặc 3 trạng thái.
Các mạch: 74LS373 chốt, 74LS244 khuếch đại đệm 1 chiều, 74LS245 khuếch đại đệm 2 chiều.
c. Mạch tạo xung nhịp 8284
Dù cho 8088 làm việc ở chế độ Max hay chế độ Min thì nó vẫn luôn cần xung nhịp (xung clock) từ mạch tạo xung nhịp 8284. Mạch tạo xung clock ngoài việc cung 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.
1 18 2 17 3 16 4 15 Vcc X1 X2 ASYN C EFI FC OSC CSYN PCLK AEN1 RDY1 READ Y RDY2 AEN2 Hình vẽ:Mạch 8284
Hình vẽ: L−ợc đồ máy IBM PC/XT
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.
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 ‘LS244 G OC oc1 oc2 ‘LS373 ‘LS373 G 74LS373 OC 7 4 L S 2 4 4 Control Bus Address Bus Data Bus
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.
d. 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 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 X1 CLK X2 8284 RES RESET F/C CSYNC +5 K 10K 10à CLK 8088 RESET F/C CSYNC Reset hệ thống Hình vẽ: 8284 nối với 8088 1 20 2 19 3 18 4 17 5 Vcc S0 S2 MCE/PDEN DEN CEN INTA IORC AIOWC IOB CLK S1 DT/R ALE AEN MRDC AMWC MWTC Hình vẽ:Mạch tạo xung nhịp 8288
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.
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ỉ.
e. 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,