Tải bản đầy đủ (.pdf) (27 trang)

Nghiên cứu tìm hiểu về vi mạch điều khiển ưu tiên ngắt PIC 8259a

Bạn đang xem bản rút gọn của tài liệu. Xem và tải ngay bản đầy đủ của tài liệu tại đây (558.24 KB, 27 trang )

lOMoARcPSD|15963670

TRƯỜNG ĐẠI HỌC CÔNG NGHIỆP HÀ NỘI
KHOA CÔNG NGHỆ THÔNG TIN
*****

BÀI TẬP LỚN
KIẾN TRÚC MÁY TÍNH VÀ HỆ ĐIỀU HÀNH
CHỦ ĐỀ:
Nghiên cứu tìm hiểu về vi mạch điều khiển ưu tiên ngắt PIC 8259A
(Priority Interrupt Controller)
Thành viên

:

Nguyễn Văn Tuấn - 2020601830
Nguyễn Quang Huy - 2020603337
Trương Văn Cảnh - 2020600216
Hà Long Vũ - 2020602281
Vũ Đức Quảng - 2020603632
Hồ An Hải - 2020607641

Lớp

:

20211IT6067001

Khóa

:



K15

GIẢNG VIÊN HƯỚNG DẪN: NGUYỄN THANH HẢI

HÀ NỘI – 2021


lOMoARcPSD|15963670

TRƯỜNG ĐẠI HỌC CÔNG NGHIỆP HÀ NỘI
KHOA CÔNG NGHỆ THÔNG TIN
*****

BÀI TẬP LỚN
KIẾN TRÚC MÁY TÍNH VÀ HỆ ĐIỀU HÀNH
CHỦ ĐỀ:
Nghiên cứu tìm hiểu về vi mạch điều khiển ưu tiên ngắt PIC 8259A
(Priority Interrupt Controller)
Thành viên

:

Nguyễn Văn Tuấn - 2020601830
Nguyễn Quang Huy - 2020603337
Trương Văn Cảnh - 2020600216
Hà Long Vũ - 2020602281
Vũ Đức Quảng - 2020603632
Hồ An Hải - 2020607641


Lớp

:

20211IT6067001

Khóa

:

K15

GIẢNG VIÊN HƯỚNG DẪN: NGUYỄN THANH HẢI

HÀ NỘI – 2021


lOMoARcPSD|15963670

Mục Lục

Nội dung
PHẦN 1: MỞ ĐẦU........................................................................................................................................................1
PHẦN 2: NỘI DUNG....................................................................................................................................................2
I. Giới thiệu chung về phương pháp trao đổi tin bằng điều khiển ngắt, quá trình ngắt..............................................2
1.1. Khái niệm ngắt....................................................................................................................................................2
1.2 Phân loại ngắt.......................................................................................................................................................3
1.3. Quá trình ngắt......................................................................................................................................................5
II. Giới thiệu chung về vi mạch điều khiển ưu tiên ngắt PIC 8259A.............................................................................5
III. Nhiệm vụ của PIC 8259A........................................................................................................................................6

IV. Cấu tạo của PIC 8259A............................................................................................................................................7
4.1: Sơ đồ và chức năng các chân của PIC 8259A:....................................................................................................7
4.2 Sơ đồ và chức năng các khối................................................................................................................................9
V. Nguyên tắc ghép nối và nguyên tắc hoạt động........................................................................................................13
5.1. Nguyên tắc ghép nối..........................................................................................................................................13
5.2 Hoạt động...........................................................................................................................................................16
Tổng quát..............................................................................................................................................................16
Các sự kiện xảy ra như sau trong hệ thống MCS-80/85.......................................................................................17
Các sự kiện xảy ra trong hệ thống 8086 giống nhau cho đến bước 4...................................................................18
Đầu ra yêu cầu ngắt MCS-80, MCS-85................................................................................................................19
Chế độ 8086, 8088................................................................................................................................................19
Ví dụ......................................................................................................................................................................20
5.3. Các chế độ hoạt động........................................................................................................................................21
5.3.1: Chế độ hoạt động đầy đủ (Fully Nested Mode)..........................................................................................21
5.3.2: Chế độ hoán đổi thứ tự ưu tiên: (Rotating Priority Mode).........................................................................21
5.3.3: Chế độ tự động (Auto Mode)......................................................................................................................21
5.3.4: Chế độ không tự động (Specific Mode)......................................................................................................22
5.3.5: Chế độ che đặc biệt (Special Mask Mode - SMM).....................................................................................22
5.3.6: Chế độ quay vòng (Polled Mode)...............................................................................................................23
5.3.7: Cascading....................................................................................................................................................23
PHẦN 3: KẾT LUẬN..................................................................................................................................................24


lOMoARcPSD|15963670

PHẦN 1: MỞ ĐẦU

1.Nhiệm vụ chung: trình bày sơ đồ chân, chức năng chân tín hiệu. Sơ đồ khối, chức năng
các khối, các thanh ghi, sơ đồ ghép nối.
2.Bố cục chung bài báo cáo

Phần 1: Mở đầu
Phần 2: Nội dung
+ Giới thiệu về phương pháp trao đổi tin bằng điều khiển ngắt, quá trình ngắt
+ Giới thiệu chung về PIC 8259A
+ Nhiệm vụ của PIC 8259A
+ Cấu tạo của PIC 8259A
Sơ đồ chân
Sơ đồ khối
Cấu tạo chi tiết
+ Nguyên tắc ghép nối và nguyên tắc hoạt động:
Nguyên tắc ghép nối
Trình bày hoạt động
Các cơ chế hoạt động
Phần 3: Kết luận


lOMoARcPSD|15963670

PHẦN 2: NỘI DUNG

I. Giới thiệu chung về phương pháp trao đổi tin bằng điều khiển ngắt,
quá trình ngắt
1.1. Khái niệm ngắắt.
Trong thiết kế hệ thống máy tính yêu cầu các thiết bị
Vào/Ra như: Bàn phím, màn hình, cảm biến và các
thành phần khác phải được phục vụ một cách hiệu
quả để máy tính có thể tối ưu hóa số nhiệm vụ có thể
thực hiện mà khơng hoặc ít ảnh hưởng đến dung
lượng.
Phương pháp phổ biến nhất để phục vụ các thiết bị

như vậy là Polled Method. Đây là nơi CPU phải
kiểm tra từng thiết bị theo trình tự và “Hỏi” từng
thiết bị xem nó có cần phải trao đổi dữ liệu hay
khơng. Ta có thể nhận thấy rằng một phần lớn các
chương trình đang lặp lại chu kỳ yêu cầu cần trao đổi
dữ liệu đó và điều này gây ảnh hưởng rất lớn đến
dung lượng của hệ thống, do đó cần hạn chế các tác
vụ do CPU đảm nhận và giảm bớt tài nguyên sử
dụng của các thiết bị.
Một phương pháp mới đã được tạo ra để tăng dung
lượng của hệ thống và giúp cho CPU có thể đảm
nhận nhiều nhiệm vụ hơn để nâng cao hiệu quả của
nó, Người ta gọi đó là Phương pháp Ngắt. Phương
pháp Ngắt là một phương pháp cho phép CPU xử lý
những chương trình chính của nó và tạm thời dừng
lại cơng việc hiện tại để trao đổi dữ liệu với các thiết
bị ngoại vi khi nó được yêu cầu cần được phục vụ
của các thiết bị đó. Sau khi hồn thành việc trao đổi
dữ liệu thì CPU lại quay về để làm tiếp cơng việc bị
giám đoạn.

2

Nhóm 6 – KTMT và HDH


lOMoARcPSD|15963670

Bộ điều khiển ngắt có thể lập trình (PIC) hoạt động như một người quản lý trong môi
trường hệ thống theo hướng ngắt. Nó chấp nhận các yêu cầu từ các thiết bị ngoại vi, xác định yêu

cầu nào trong số các yêu cầu đến có tầm quan trọng cao nhất (ưu tiên), xác định xem yêu cầu đến
có giá trị ưu tiên cao hơn mức hiện đang được xử lý hay không và đưa ra ngắt cho CPU dựa trên
điều đó.
Mỗi thiết bị ngoại vi hoặc cấu trúc thường có một tín hiệu đặc biệt hoặc ''quy trình'' gắn
liền với các yêu cầu chức năng hoặc hoạt động cụ thể của nó; điều này được gọi là ''quy trình
phục vụ''. Sau khi đưa ra một tín hiệu ngắt cho CPU, PIC phải nhập thơng tin vào CPU để có thể
''trỏ'' bộ đếm chương trình đến quy trình dịch vụ được liên kết với thiết bị yêu cầu. ''Con trỏ'' này
là một địa chỉ trong bảng vectơ và thường được gọi là dữ liệu vectơ.

1.2 Phân loại ngắắt
NGẮT

Ngắt mềm

Ngắt hệ thống

DOS

BIOS

Ngắt cứng

Ngắt người sử
dụng

Ngắt trong

Ngắt tự động

Ngắt ngồi


Có cấm

Khơng cấm

Hình 1: Phân loại các loại ngắt
a) Ngắt mềm là loại ngắt được gọi bằng một lệnh trong chương trình ngơn ngữ máy. Ngắt mềm
được thực hiện trên hợp ngữ thông qua lệnh INT. Đối với các ngôn ngữ bậc cao hơn, vẫn cho
phép thực hiện gọi ngắt nhưng phải được biên dịch thành lệnh INT trong hợp ngữ rồi mời thực
hiện.
b) Ngắt cứng là sự kiện CPU phải tạm dừng tiến trình đang thực hiện để chuyển sang thực hiện
tiến trình phục vụ ngắt khi có u cầu ngắt từ phần mạch bên ngồi gửi đến CPU. Các tín hiệu
này đến từ các chân INTR và NMI.


lOMoARcPSD|15963670

- Ngắt cứng NMI là yêu cầu ngắt không che được tương đương với ngắt mềm INT2.
- Ngắt cứng INTR là yêu cầu ngắt che được. Yêu cầu ngắt tại chân INTR có thể có kiểu ngắt N
nằm trong khoảng 0-FFH. Kiểu ngắt này phải được đưa vào bus dữ liệu để CPU có thể đọc được
khi có xung INTA trong chu kì trả lời chấp nhận ngắt.
c) Ngắt tự động (các trường hợp ngoại lệ) là các ngắt do các lỗi nảy sinh trong quá trình hoạt
động của CPU như phép chia cho 0, xảy ra tràn khi tính tốn, …
* Một số lệnh liên quan:
- CLI: Xóa cờ ngắt
- STI: Đặt cờ ngắt
- INT XX: Gọi ngắt mềm số XX
- IRET: Câu lệnh trở về khi kết thúc chương trình xử lý ngắt
- HLT: Treo CPU cho đến khi có ngắt hoặc khởi động lại


4

Nhóm 6 – KTMT và HDH


lOMoARcPSD|15963670

1.3. Quá trình ngắắt.

SPFR

1. Lưu thanh ghi cờ

IF  0
TF  0

2. Cấm ngắt
3. Lưu đoạn lệnh
4. Lưu con trỏ lệnh

 SP  CS

SPIP

 IP  N * 4
 CS   N * 4  2

5. Nạp đoạn lệnh và con trỏ lệnh
Thực hiện
chương trình

ngắt

mới
6. Thực hiện chương trình ngắt
7. Khôi phục lại các thanh ghi
trước khi ngắt

Sai

Đúng
Kết
thúc

 IP   SP
 CS    SP  2
 FR   SP  4

II. Giới thiệu chung về vi mạch điều khiển ưu tiên ngắt PIC 8259A
PIC 8259A là một thiết bị được thiết kế đặc biệt để sử dụng trong thời gian thực có thể
điều khiển ngắt trong CPU giúp CPU có thể vào/ra dữ liệu bằng phương pháp ngắt cứng trong
trường hợp nhiều yêu cầu ngắt cần được phục vụ ta thường dùng vi mạch PIC 8259A để giải
quyết vấn đề ưu tiên.PIC 8259A có thể giải quyết được 8 yêu cầu ngắt với 8 mức ưu tiên khác
nhau và có các tính năng tích hợp để có thể mở rộng sang các 8259A khác (lên đến 64 cấp độ
ngắt khác nhau ). PIC 8259A là thiết bị điều khiển ưu tiên ngắt có thể lập trình được. Ta dùng các
ngơn ngữ lập trình khác nhau như asembly, C... để lập trình cho PIC 8259A. Vi mạch này có ưu
điểm là: sắp xếp và xử lí ngắt tốt.
Hình 2 mơ tả q trình làm việc của CPU khi có yêu cầu ngắt từ mạch phần cứng bên
ngồi gửi đến CPU và CPU chấp nhận ngắt:

5


Nhóm 6 – KTMT và HDH


lOMoARcPSD|15963670

Chương trình con phục vụ ngắt

Tiến trình bị ngắt

Tín hiệu yêu cầu ngắt IRQ từ
mạch phần cứng bên ngoài gửi tới CPU

Hình 2: Mơ tả khái niệm ngắt cứng và q trình ngắt cứng
Thơng thường q trình vào ra theo ngắt cứng được sự trợ giúp của thiết bị điều khiển ngắt PIC
(Programmable Interrupt Controller). Một trong những PIC được biết đến nhiều nhất, 8259A,
được đưa vào PC x86. Trong thời hiện đại, đây không phải là một chip riêng trong PC x86, mà là
một phần của chipset cầu nam của bo mạch chủ. (chip cầu nam thường triển khai các khả năng
chậm hơn của bo mạch chủ trong kiến trúc máy tính cầu bắc/ cầu nam.
(Nguồn: )

III. Nhiệm vụ của PIC 8259A.
PIC 8259A có chức năng nhận các yêu cầu ngắt IRQ , xử lý ưu tiên ngắt và cung cấp số hiệu
ngắt ưu tiên được cao nhất cho CPU , căn cứ vào số hiệu ngắt CPU sẽ lấy được địa chỉ của
chương trình con phục vụ ngắt này.8259A ngắt CPU mục đích để I/O hay CPU phải thực hiện
một vấn đề nào đó .Vấn đề đó được lập trình thành chương trình con phục vụ ngắt.Để gọi
chương trình con này cần xác định ngắt nào của 8259A phát sinh để gọi chương trình con tương
ứng .Tức là khi có phát sinh ngắt ở đầu vào IRQ thì gọi chương trình con phục vụ ngắt tương
6


Nhóm 6 – KTMT và HDH


lOMoARcPSD|15963670

ứng . Đây chính là nhiệm vụ của vi mạch điều khiển ưu tiên ngắt PIC 8259A (Priority Interrupt
Controller)

IV. Cấu tạo của PIC 8259A.
4.1: Sơ đồồ và chức nắng các chân của PIC 8259A:

Hình 3: Sơ đồ chân PIC
8259A
Kí hiệu

Vị trí
chân

Type

Tên và chức năng

Vcc

28

I

SUPPLY: Một nguồn cung cấp 5V


GND

14

I

GROUND

CS

1

I

CHIP SELECT: Mức thấp nhất trên chân này cho phép RD và
WR giữa CPU và 8259A. Các chức năng INTA độc lập với
CS.


lOMoARcPSD|15963670

WR

2

I

WRITE: Mức thấp trên chân này khi CS ở mức thấp cho phép
8259A chấp nhận các lệnh từ CPU.


RD

3

I

READ: Mức thấp trên chân này khi CS ở mức thấp cho phép
8259A giải phóng trạng thái lên bus dữ liệu cho CPU.

D7-D0

4 ->11

I/O

BIDIRECTIONAL DATA BUS: Thông tin điều khiển, trạng
thái và vector ngắt được chuyển qua bus này.

CAS0->CAS2

12-1315

I/O

CASCADE LINES: Các CAS tạo thành một bus 8259A riêng
để điều khiển một cấu trúc trúc 8259A đa nhiệm. Các chân
này là đầu ra cho 8259A chính và là đầu vào cho 8259A phụ.

SP/EN


16

I/O

SLAVE PROGRAM/ENABLE BUFFED: Đây là một chân có
chức năng kép. Khi ở Chế độ đệm, nó có thể được sử dụng
làm đầu ra để điều khiển bộ thu phát đệm (EN). Khi không ở
chế độ đệm, SP được dùng để xác định để xác định PIC chủ
hoặc PIC thợ (là chủ khi SP =1, thợ khi SP = 0) và EN được
dùng để mở dữ liệu đệm.

INT

17

O

INTERRUPT: chân này tăng cao bất cứ khi nào có yêu cầu
ngắt hợp lệ được xác nhận. Nó được sử dụng để ngắt CPU, do
đó nó được kết nối với chân ngắt của CPU.

IR0->IR7

18->25

I

INTERRUPT REQUESTS: các đầu vào không đồng bộ được
đánh số từ IR0 đến IR7. Yêu cầu ngắt được thực hiện bằng
cách nâng đầu vào IR (từ thấp đến cao) và giữ nó ở mức cao

cho đến khi được xác nhận (Edge Triggered Mode) hoặc chỉ ở
mức cao trên mỗi đầu vào IR (Level Triggered Mode).

INTA

26

I

INTERRUPT ACKNOWLEDGE: Chân này được sử dụng để
cho phép dữ liệu vector ngắt 8259A lên bus dữ liệu bằng một
chuỗi các xung xác nhận ngắt do CPU phát ra

A0

27

I

AO ADDRESS LINE: Chân này hoạt động cùng với các chân
CS, WRvà RD. Nó được sử dụng bởi 8259A để giải mã các
lệnh khác nhau mà CPU viết và trạng thái mà CPU muốn đọc.
Nó thường được kết nối với dịng địa chỉ CPU A0 (A1 cho
8086,8088)

8

Nhóm 6 – KTMT và HDH



lOMoARcPSD|15963670

4.2 Sơ đồồ và chức nắng các khồắi

Hình 4: Sơ đồ khối ghép nối PIC 8259

Khối

Tên

Thanh ghi yêu
cầu ngắt

Interupt Request
Register

Thanh ghi phục
vụ ngắt

In Service
Register

Vị trí
1, 3

Chức năng
Các ngắt ở các dòng đầu vào IR được xử lý bởi
hai thanh ghi: Thanh ghi Yêu cầu Ngắt (IRR) và
Thanh ghi phục vụ ngắt (ISR). IRR được sử dụng
để lưu trữ tất cả các mức ngắt đang yêu cầu phục

vụ; và ISR được sử dụng để lưu trữ tất cả các cấp
ngắt đang được phục vụ.


lOMoARcPSD|15963670

Khối xử lý mức
ưu tiên của ngắt

Priority Resolver

2

Ðây là khối logic có chức năng quyết định mức
độ ưu tiên của các bit trong thanh ghi IRR. Bit có
độ ưu tiên cao nhất sẽ được chọn và được gửi
đến bit tương ứng trong thanh ghi ISR trong
khoảng thời gian có xung INTA.

Thanh ghi che
ngắt

Interruption
Mask Register

4

Cho người lập trình biết ngắt có che được hay
không. IMR được sử dụng để che (Mask) hoặc
mở (Unmask) đầu vào yêu cầu ngắt riêng lẻ. Đây

là một Thanh ghi 8 bit. Mỗi bit trong thanh ghi
này tương ứng với ngắt đầu vào với cùng một số.
IMR hoạt động trên IRR. Che đầu vào với độ ưu
tiên cao hơn sẽ khơng ảnh hưởng đến các dịng
u cầu ngắt của đầu vào ưu tiên thấp hơn. Để
ngừng che bất kỳ tín hiệu ngắt nào, bit tương ứng
được đặt là "0" Các tín hiệu điều khiển CAS0
đến CAS2 (in, out): các ngõ vào chọn mạch
8259A tới (slave) từ mạch 8259A chủ (master)
trong trường hợp dùng nhiều mạch 8259A để
tăng yêu cầu ngắt.

5

Tạo các tín hiệu ghi và đọc các thanh ghi đệm. Nó
là trung tâm của bộ vi xử lý và điều khiển hoạt
động của mọi khối. Nó có chân INTA được kết
nối với bộ vi xử lý khác để nhận yêu cầu ngắt và
chân INT để đưa ra đầu ra. Nếu 8259A được bật
và cờ Ngắt của bộ vi xử lý khác ở mức cao thì
giá trị của đầu ra chân INT cao và theo cách này
8259A đáp ứng yêu cầu của bộ vi xử lý khác.

6

Tín hiệu ra này được đưa trực tiếp vào đầu vào
ngắt của CPU. Mức cao của tín hiệu này ln
tương thích với mức tín hiệu vào của 8088A,
8085A và 8086 ở các cấp độ.


7

Tín hiệu vào này được tạo ra bởi 8259A (System
controler and Bus controler) trong hệ thống. Các
xung NTA sẽ khiến 8259A giải phóng thơng tin
vectơ vào bus dữ liệu. Định dạng của dữ liệu này
phụ thuộc vào chế độ hệ thống (mPM) của
8259A.

Logic điều khiển

INT

INTA

10

Control logic

Interrupt

Interrupt
Acknowledge

Nhóm 6 – KTMT và HDH


lOMoARcPSD|15963670

Khối đệm bus dữ

liệu

Data bus Buffer

8

Ðây là bộ đệm 8 bit ,3 trạng thái, hai chiều được
sử dụng để ghép nối 8259 với Data bus. Các từ
điều khiển, thông tin trạng thái được trao đổi
thông qua bộ đệm này.

Khối logic điều
khiển đọc/ghi

Read /Write
control Logic

9

Chức năng của khối này là nhận lệnh điều khiển
từ CPU. Khối này bao gồm thanh ghi từ lệnh
khởi tạo (ICWR- Initionlize Command Word) và
thanh ghi lệnh hoạt động (OCWR - Operation
Command Word Register). Các thanh ghi này
chứa các từ lệnh điều khiển hoạt động của 8259.

Cascade Buffer/
Comparator

10


Khối này có chức năng lưu trữ và so sánh vai trò
của tất cả các vi mạch 8259 sử dụng trong hệ
thống. Các chân tín hiệu CAS0 -CAS2 là các đầu
ra khi vi mạch 8259 đóng vai trị master (SP =1)
và là các đầu vào khi các vi mạch này được sử
dụng làm slave (SP= 0). Khi hoạt động với vai
trị master, 8259A gửi tín hiệu ngắt của thiết bị ra
các đường CAS0- CAS2. Các vi mạch slave
tương ứng được chọn sẽ gửi địa chỉ của chương
trình ngắt của chúng lên bus dữ liệu

Khối so sánh và
xử lý song song

Trong trường hợp hệ thống có số lượng ngắt lớn hơn thì có thể mắc nhiều 8259A
liên tầng theo hình sau:


lOMoARcPSD|15963670

Hình 5 :8259A ghép liên tầng

V. Nguyên tắc ghép nối và nguyên tắc hoạt động.
5.1. Nguyên tắắc ghép nồắi.

Khi ghép vào CPU thì PIC 8259A được ghép như sau:
12

Nhóm 6 – KTMT và HDH



lOMoARcPSD|15963670

Hình 6: Sơ đồ ghép nối:

Thứ tự ưu tiên cố định và số hiệu ngắt tương ứng được thể hiện trong bảng sau:

IRQ

Interrupt type

DEVICE


lOMoARcPSD|15963670

0

08H

System timer

1

09H

Keyboard

2


0AH

Reserved (2nd 8259A)

3

0BH

Serial port (COM 1)

4

0CH

Serial port (COM 2)

5

0DH

Hard disk

6

0EH

Floppy Disk

7


0FH

Printer (LPT1)

Trong máy tính thế hệ cũ chỉ sử dụng một IC 8259A thì thứ tự ưu tiên là 0,1,2,3,4,5,6,7.
Trong các máy tính hiện đại sử dụng hai IC 8259A thì thứ tự ưu tiên là 0,1,
(8,9,10,11,12,13,14,15),3,4,5,6,7. Các IRQs từ 8 đến 15 thay thế IRQ2
Các IRQs cách sử dụng được thể hiện trong bảng sau:

IRQ

Đường Bus

Ưu tiên

Mặc định sử
dụng điển hình

Sử dụng thơng thường khác

0

No

1

Giờ hệ thống

None


1

No

2

Bộ điều khiển bàn
phím

None

2

No(rerouted)

N/a

Bộ điều khiển bàn
phím

Modem, card video, COM3(cổng nối
tiếp thứ 3), COM (cổng nối tiếp thứ 4)

3

8/16-bit

11


COM2(second
serial port)

COM4(cổng nối tiếp thứ 4), modem,
card âm thanh, mạng lưới thẻ,
accelerator thẻ

4

8/16-bit

12

COM1(first serial
port)

COM3(cổng nối tiếp thứ 3) Modem,
card âm thanh, mạng lưới thẻ,
accelerator thẻ

5

8/16-bit

13

Sound card

On old PC/XT


14

Nhóm 6 – KTMT và HDH


lOMoARcPSD|15963670

6

8/16-bit

14

Floppy disk
controller

LPT2 (hai cổng song song), LPT3 (cổng
song song thứ 3), COM3(cổng nối tiếp
thứ 3), COM4 (cổng nối tiếp thứ 4),
modem, card mạng, bộ điều khiển đĩa
cứng

7

8/16-bit

15

LTP1(first
parallel port)


LPT2(Hai cổng song song), COM3(cổng
nối tiếp thứ 3), COM4(cổng nối tiếp thứ
4), modem, thẻ âm thanh, mạng lưới thẻ,
băng accelerator thẻ.

8

No

3

Real-time clock

None

9

16- bit only

4

Card mạng, card âm thanh, SCSI bộ
thích ứng chủ, PCI thiết bị ấn định tuyến
đường lai IQR2 thiết bị

10

16-bit only


5

Card mạng, card âm thanh, SCSI bộ
thích ứng chủ, PCI thiết bị ẩn định tuyến
tương lai IRQ2 thiết bị

11

16-bit only

6

Card mạng, card âm thanh, máy chủ
SCSI, card màn hình, quatarnary kênh
IDE, thiết bị PCI

12

16-bit only

7

PS/2 mouse

Card mạng, card âm thanh máy chủ
SCSI, card màn hình, quaternarry kênh
IDE, thiết bị PCI

13


No

8

Floating Point
Unit
(EPU/NPU/Math
Coprocessor)

None

14

16-bit only

9

Primary IDE
channel

Bộ thích ứng chủ SCSI

15

16-bit only

10

Secondary IDE


Card mạng, SCS

channel


lOMoARcPSD|15963670

5.2 Hoạt động
Tổng quát

Khi có một hay nhiều yêu cầu ngắt từ các bộ phận ngoại vi ( IRQ0 – IRQ15 ), Thanh ghi
IRR của 8259A lưu trữ lại các yêu cầu ngắt đó, thanh ghi PR sẽ căn cứ vào các thanh ghi IRR,
IMR , ISR để chọn yêu cầu ngắt có độ ưu tiên cao nhất và gửi cho khối Control logic. Khối
Control logic nhận được yêu cầu và gửi tín hiệu INT =1 tới CPU thơng qua chân INTR.
CPU ghi nhận yêu cầu ngắt này và trả lời bằng cách phát đi một xung INTA. 8259A
nhận được tín hiệu INTA từ CPU và gửi ra bus dữ liệu một lệnh CALL(mã 11001101) dưới dạng
nhị phân 8 bit qua các đường dây dữ liệu của nó (chân D0-D7)
Lệnh CALL này sẽ yêu cầu CPU gửi thêm hai xung INTA đến PIC 8259A.
Hai xung INTA này cho phép 8259A giải phóng địa chỉ chương trình con được lập trình
trước của nó lên Bus dữ liệu. Chuỗi chương trình này được chuyển đến vị trí bộ nhớ được chỉ
định bởi lệnh CALL để xử lý ngắt. Sau đó, CPU sẽ tiến hành phục vụ yêu cầu của bộ phận ngoại
vi.
.

Chuỗi hoạt động trong việc xử lý ngắt phụ thuộc vào loại CPU sử dụng.
Các sự kiện xảy ra như sau trong hệ thốống MCS-80/85
1. Một hoặc nhiều dòng IR (IR7–0) được nâng lên mức cao, thiết lập (các) bit IRR tương ứng.
16

Nhóm 6 – KTMT và HDH



lOMoARcPSD|15963670

2. 8259 đánh giá các yêu cầu này bằng khối Priority Resolver (PR).
PR sẽ kiểm tra 3 thanh ghi IRR , IMR ,ISR để đưa ra yêu cầu có độ ưu tiên cao nhất và
gửi tín hiệu INT cho CPU thông qua chân INTA.
Ban đầu các bit ở thanh ghi IMR đươc thiết lập là 1.
Sau đó IMR sẽ bắt đầu bỏ che cho từng IRR một lần lượt từ IR0->IR7. Cho đến khi trên
thanh IRR ta nhận được bit 1 thì dừng lại. Và kiểm tra thanh ghi ISR xem có u cầu nào đang
được phục vụ khơng. Nếu có thì đợi q trình ngắt của u cầu đó xong đã. Nếu khơng thì PR sẽ
gửi tín hiệu phục vụ ngắt cho khối logic Control logic để gửi tín hiệu INT = 1 qua chân INTA
cho CPU.
3. CPU xác nhận INT và phản hồi bằng xung INTA.
4. Khi nhận được INTA từ nhóm CPU, bit ISR ưu tiên cao nhất được đặt và bit IRR tương ứng
được đặt lại. 8259A cũng sẽ phát hành mã lệnh CALL (11001101) lên Bus dữ liệu 8-bit thơng
qua các chân D7–0 của nó.
5. Lệnh CALL này sẽ bắt đầu thêm hai xung INTA được gửi đến 8259A từ nhóm CPU.
6. Hai xung INTA này cho phép 8259A giải phóng địa chỉ chương trình con được lập trình trước
của nó lên Bus dữ liệu. Địa chỉ 8-bit thấp hơn được giải phóng ở xung INTA đầu tiên và địa chỉ
8-bit cao hơn được giải phóng ở xung INTA thứ hai.
7. Điều này hồn thành lệnh CALL 3-byte được phát hành bởi 8259A. Trong AEOI mode, bit
ISR được đặt lại ở cuối xung INTA thứ ba. Nếu không, bit ISR vẫn được đặt cho đến khi lệnh
EOI thích hợp được đưa ra ở cuối chuỗi ngắt.


lOMoARcPSD|15963670

Các sự kiện xảy ra trong hệ thốống 8086 giốống nhau cho đếốn bước 4.
4. Khi nhận được INTA từ nhóm CPU, bit ISR ưu tiên cao nhất được đặt và bit IRR tương ứng

được đặt lại. 8259A không điều khiển Bus dữ liệu trong chu kỳ này.
5. 8086 sẽ bắt đầu một xung INTA thứ hai. Trong xung này, 8259A giải phóng một con trỏ 8-bit
vào Bus dữ liệu nơi nó được đọc bởi CPU.
6. Điều này hồn thành chu kỳ ngắt. Ở chế độ AEOI bit ISR được đặt lại ở cuối xung INTA thứ
hai. Nếu không, bit ISR vẫn được đặt cho đến khi lệnh EOI thích hợp được đưa ra ở cuối chương
trình con ngắt.
Nếu khơng có yêu cầu ngắt nào ở bước 4 của một
trong hai chuỗi (tức là yêu cầu có thời lượng quá
ngắn) thì 8259A sẽ đưa ra mức ngắt.

7. Cả byte vectơ và dòng CAS sẽ giống như mức
ngắt 7 đã được yêu cầu.
 Khi 8259A PIC nhận được một yêu cầu ngắt, INT sẽ hoạt động và một chu kỳ xác nhận
ngắt được bắt đầu. Nếu một yêu cầu ngắt ưu tiên cao hơn xảy ra giữa hai xung INTA,
dòng INT sẽ không hoạt động ngay sau xung INTA thứ hai. Sau một khoảng thời gian
không xác định, đường INT được kích hoạt trở lại để báo hiệu yêu cầu ngắt có mức ưu
tiên cao hơn đang chờ dịch vụ. Thời gian không hoạt động này không được chỉ định và có
thể khác nhau giữa các bộ phận. Người thiết kế nên lưu ý về vấn đề này khi thiết kế hệ
thống sử dụng 8259A. Khuyến nghị rằng các kỹ thuật thiết kế khơng đồng bộ thích hợp
nên được tn theo.
18

Nhóm 6 – KTMT và HDH


lOMoARcPSD|15963670

Đầầu ra yếu cầầu ngắốt MCS-80, MCS-85
Trình tự này được định thời bởi ba xung INTA. Trong xung INTA đầu tiên, mã opcode
CALL được kích hoạt trên bus dữ liệu.


Trong xung INTA thứ hai, địa chỉ thấp hơn của quy trình dịch vụ thích hợp được kích
hoạt trên bus dữ liệu. Khi Interval = 4, bit A5 – A7 được lập trình và A0 – A4 được 8259A chèn
tự động. Khi Interval = 8 chỉ A6 và A7 được lập trình và A0 – A5 được tự động đưa vào.
Trong xung INTA thứ ba, địa chỉ cao hơn của quy trình dịch vụ thích hợp được lập trình dưới
dạng byte 2 của chuỗi khởi tạo (A8 – A15), được kích hoạt trên bus.

Chếố độ 8086, 8088
Chế độ 8086 tương tự như chế độ MCS-80 ngoại trừ việc chỉ có hai chu kỳ. Thông báo
ngắt được cấp bởi bộ xử lý và khơng có mã lệnh CALL nào được gửi đến bộ xử lý. Chu kỳ xác
nhận ngắt đầu tiên tương tự như của hệ thống MCS-80, 85 trong đó 8259A sử dụng nó để đóng
băng nội bộ trạng thái của ngắt để giải quyết ưu tiên và như một hệ thống tổng thể, nó đưa ra mã
ngắt trên các dịng CAS ở cuối xung INTA. Trong chu kỳ đầu tiên này, nó khơng cấp bất kỳ dữ
liệu nào cho bộ xử lý và khiến bộ đệm bus dữ liệu của nó bị vơ hiệu hóa. Vào chu kỳ xác nhận
ngắt thứ hai ở chế độ 8086, chủ (hoặc phụ nếu được lập trình như vậy) sẽ gửi một byte dữ liệu
đến bộ xử lý với mã ngắt được thừa nhận được cấu tạo như sau (lưu ý trạng thái của điều khiển
chế độ ADI bị bỏ qua và A5 – A11 không được sử dụng trong chế độ 8086):


lOMoARcPSD|15963670

Ví dụ
2 dịng IRQ 0, 1 được nâng lên mức cao. Từ đó thiết lập các bit tương ứng ở IRR như
sau: 11000000. Trước đó, ta có ISR: 00000000 và IMR được lập trình như sau: 01111111.
Với thơng tin từ các thanh ghi, Priority Resolver xử lý các yêu cầu như sau: Đầu tiên, PR
xét thanh ghi IRR bằng thanh ghi IMR, bit IRR của yêu cầu 0 đi qua bộ lọc, ta lọc được yêu
cầu 0. PR xét thanh ghi ISR, so sánh nhận thấy yêu cầu 0 chưa được phục vụ trước đó =>
8259A xử lý yêu cầu 0.
PR gửi tín hiệu INT đến CPU. CPU nhận INT và phát xung thứ nhất ra chân INTA. Khi
nhận được INTA từ nhóm CPU, bit ISR tương ứng với yêu cầu 0 được đặt: 10000000 và bit

IRR tương ứng được đặt lại: 01000000. 8259A cũng sẽ phát hành mã lệnh CALL (11001101)
lên Bus dữ liệu 8-bit thông qua các chân D7–0 của nó.
Lệnh CALL này sẽ bắt đầu thêm hai xung INTA được gửi đến 8259A từ nhóm CPU. Hai
xung INTA này cho phép 8259A giải phóng địa chỉ chương trình con được lập trình trước của
nó lên Bus dữ liệu. Địa chỉ 8-bit thấp hơn được giải phóng ở xung INTA đầu tiên và địa chỉ
8-bit cao hơn được giải phóng ở xung INTA thứ hai.
 Điều này hồn thành lệnh CALL 3-byte được phát hành bởi 8259A. Trong AEOI mode,
bit ISR được đặt lại ở cuối xung INTA thứ ba. Nếu không, bit ISR vẫn được đặt cho đến
khi lệnh EOI thích hợp được đưa ra ở cuối chuỗi ngắt. Chu kỳ ngắt thứ nhất kết thúc.
Thanh ghi ISR sau chu kỳ ngắt thứ nhất là: 00000000 và thanh ghi IRR là: 01000000. Hệ
thống tiếp tục xử lý yêu cầu ngắt.
Lúc này, PR xét thanh ghi IRR bằng thanh ghi IMR, khơng có bit nào thơng qua bộ lọc,
đặt lại IMR thành: 10111111, bit IRR của yêu cầu 1 đi qua bộ lọc, lọc được yêu cầu 1, PR xét
ISR nhận thấy yêu cầu 1 chưa được phục vụ trước đó => 8259A xử lý yêu cầu 1.
PR gửi tín hiệu INT đến CPU. CPU nhận INT và phát xung thứ nhất ra chân INTA. Khi
nhận được INTA từ nhóm CPU, bit ISR tương ứng với yêu cầu 1 được đặt: 01000000 và bit
IRR tương ứng được đặt lại: 00000000. 8259A cũng sẽ phát hành mã lệnh CALL (11001101)
lên Bus dữ liệu 8-bit thông qua các chân D7–0 của nó.
20

Nhóm 6 – KTMT và HDH


lOMoARcPSD|15963670

Lệnh CALL này sẽ bắt đầu thêm hai xung INTA được gửi đến 8259A từ nhóm CPU. Hai
xung INTA này cho phép 8259A giải phóng địa chỉ chương trình con được lập trình trước của
nó lên Bus dữ liệu. Địa chỉ 8-bit thấp hơn được giải phóng ở xung INTA đầu tiên và địa chỉ
8-bit cao hơn được giải phóng ở xung INTA thứ hai.
=> Điều này hoàn thành lệnh CALL 3-byte được phát hành bởi 8259A. Trong AEOI

mode, bit ISR được đặt lại ở cuối xung INTA thứ ba. Nếu không, bit ISR vẫn được đặt cho
đến khi lệnh EOI thích hợp được đưa ra ở cuối chuỗi ngắt. Kết thúc chu kỳ ngắt số 2. Khơng
cịn u cầu nào cần được phục vụ, hệ thống ngừng hoạt động.

5.3. Các chếố độ hoạt động
5.3.1: Chếố độ hoạt động đầầy đủ (Fully Nested Mode)
8259A hoạt động trong chế độ này ngay sau khi thực hiện quá trình khởi tạo mà không
cần đến các từ điều khiển hoạt động OCW. Trong chế độ này, các yêu cầu ngắt được sắp xếp theo
các mức ưu tiên từ 0 đến 7. Khi một yêu cầu ngắt được chấp nhận, yêu cầu ngắt có mức ưu tiên
cao nhất được thực hiện và vector địa chỉ của nó được truyền lên bus dữ liệu. Ngồi ra, một bit
của thanh ghi phục vụ ngắt được đặt bằng 1. Bit này giữ nguyên giá trị cho đến khi 8088 phát
lệnh EOI ngay trước khi trở về từ chu trình phục vụ. Trong khi bit của thanh ghi ISR bằng 1, tất
cả các ngắt có mức ưu tiên thấp hơn (những ngắt này chỉ được chấp nhận nếu được 8088 chấp
nhận thông qua điều khiển bằng phần mềm) bị loại bỏ.
Sau khi thực hiện quá trình khởi tạo, tín hiệu u cầu ngắt vào IR0 có mức ưu tiên cao
nhất và vào IR7 sẽ có mức ưu tiên thấp nhất. Thứ tự ưu tiên có thể thay đổi trong chế độ hoán
đổi thứ tự ưu tiên được đề cập sau đây.

5.3.2: Chếố độ hoán đổi thứ tự ưu tiến: (Rotating Priority Mode)
8259A hoạt động trong chế độ này khi trong hệ thống có các thiết bị có các yêu cầu ngắt có mức
ưu tiên tương đương nhau như các kênh truyền thơng ...Có hai chế độ hốn đổi mức ưu tiên là
chế độ hoán đổi tự động và chế độ hoán đổi đặc biệt.

5.3.3: Chếố độ tự động (Auto Mode)
Trong chế độ này, thiết bị sau khi được phục vụ, được gán cho mức ưu tiên thấp nhất, vì
vậy một thiết bị yêu cầu ngắt phải đợi thậm chí có thể phải đợi cho đến khi 7 thiết bị khác được
phục vụ xong.


lOMoARcPSD|15963670


5.3.4: Chếố độ khống tự động (Specific Mode)
Trong chế độ này người lập trình viên có thể thay đổi thứ tự ưu tiên ngắt bằng cách lập
trình mức ngắt có ưu tiên thấp nhất và bằng cách này xác lập mức ngắt có ưu tiên cao nhất ví dụ
nếu IR5 được lập trình có mức ưu tiên thấp nhất thì IR6 sẽ có mức ưu tiên cao nhất. Lệnh điều
khiển được xác định trong OCW2, trong đó R =1, SEOI =1, các bit L2, L1, L0 xác định mức ưu
tiên (tính theo hệ thập phân) của thiết bị có mức ưu tiên thấp nhất.
Cần chú ý chế độ này hoạt động độc lập với lệnh EOI và q trình hốn đổi mức ưu tiên có thể
thực hiện trong khi thực hiện lệnh EOI.
-- EOI (End of Interupt) và SEOI (Specific EOI)
Một lệnh EOI luôn phải được đưa tới 8259A trước khi kết thúc chương trình ngắt để khởi
tạo bit tương ứng trong thanh ghi ISR. EOI và SEOI là hai dạng của lệnh EOI là non - specific
(không xác định) và specific (xác định). Khi 8259A trong chế độ hoạt động đầy đủ (Fully Neste
Mode) nó có thể xác định bit nào trong thanh ghi ISR cần khởi tạo bằng lệnh EOI. Khi nhận
được một lệnh non- specific EOI ,8259A sẽ tự động khởi tạo bit cao nhất trong số các bit đó
được xác lập. Tuy nhiên, khi một chế độ được xác lập nó sẽ gây ảnh hưởng đến chế độ hoạt động
đầy đủ như trong chế độ hoán đổi thứ tự ưu tiên (Rotating Priority Mode), 8259A sẽ xác định
mức ngắt cuối cùng được ghi nhận. Trong trường hợp này một lệnh một lệnh EOI xác định được
gửi đến 8259A trong đó bao gồm cả các bit cần khởi tạo trong thanh ghi IS. Lệnh EOI được thực
hiện khi thực hiện khi EOI = "1" trong từ điều khiển OCW2. Lưu ý rằng mặc dù lệnh hoán đổi có
thể thực hiện trong suốt q trình EOI=1 nhưng nó không cần thiết phải làm như vậy.

5.3.5: Chếố độ che đặc biệt (Special Mask Mode - SMM)
Chế độ này được sử dụng khi có một số bit được xác lập (che - mask) bởi thanh ghi mặt
nạ (Interrupt Mask Register) bằng từ lệnh OCW1. Trong chế độ này các mức ngắt ưu tiên thấp
hơn được cho phép hoạt động cho đến khi chế độ hoạt động được khởi tạo lại. Các mức ưu tiên
cao hơn khơng có tác dụng. Chế độ này được xác lập bằng từ điều khiển OSW3 trong đó
ESMM=1, SMM=1 và được khởi tạo lại khi ESSM=1 và SMM=0.

5.3.6: Chếố độ quay vòng (Polled Mode)

Trong chế độ này ,8088 cấm đường vào INT của nó. Các phục vụ dành cho thiết bị được
thực hiện bằng lệnh Poll.
Lệnh Poll được thực hiện bằng cách đặt bit P ="1" trong từ lệnh OCW3 trong suốt q
trình có xung WR .8259A coi xung RD tiếp theo như tín hiệu xác nhận ngắt, xác lập các mạch lật
tương ứng của nó nếu có một yêu cầu ngắt và đọc mức ưu tiên của ngắt. Từ điều khiển trên bus
dữ liệu trong q trình RD là:
22

Nhóm 6 – KTMT và HDH


×