Phương pháp trao đổi tin bằng điều khiển ngắt~
Khái niệm và phân loại ngắt Khái niệm ngắt Ngắt là quá trình CPU tự ngưng hoạt động hiện tại khi có một yêu cầu ngắt gửi đến để chuyển sang thực hiện một chương trình con phục vụ ngắt tương ứng. Sau ...
Khái niệm và phân loại ngắt
Khái niệm ngắt
Ngắt là quá trình CPU tự ngưng hoạt động hiện tại khi có một yêu cầu ngắt gửi đến để chuyển sang thực hiện một chương trình con phục vụ ngắt tương ứng. Sau khi thực hiện xong thì quay trở lại thực hiện tiếp công việc đang dở trên.
Phân loại ngắt.
Hình 2-1: Phân loại các loại ngắt
Ngắt mềm là loại ngắt do phần mềm gây nên.Nó gồm hai loại
- Ngắt hệ thống:ngắt do các chương trình hệ thống gây nên.
+ Ngắt của DOS ngắt trong chương trình hệ thống gây nên ;
+ Ngắt BIOS ngắt trong hệ điều hành vào ra cơ sở.
-
- Ngắt của người sử dụng là loại ngắt do người lập trình viết ra bằng các ngôn ngữ bậc cao hay viết bằng hợp ngữ
- Ngắt cứng:là loại ngắt do các thành phần cứng gây ra.Gồm các loại
- Ngắt trong:Ngắt bên trong CPU (ví dụ Phép chia cho 0)
- Ngắt ngoài là loại ngắt do các thành phần cứng khác và các thiết bị ngoại vi gây ra.Nó bao gồm hai loại sau ngắt có cấm không cấm
+Ngắt có cấm (ngắt che được Maskable Interupt):là các loại ngắt chỉ thực hiện khi cờ IF =1;
+ Ngắt không cấm (không thể che được Non Maskable Interupt) là loại ngắt thực hiện được ngay cả khi cờ IF=0;
Cơ chế thực hiện ngắt
- TBNV gửi yêu cầu tới CPU
- CPU thực hiện lệnh đang dở dang
- Sao chép nội dung vào Stack
Hình 2-2: Cơ chế thực hiện ngắt
Gửi tín hiệu chấp nhận ngắt cho KGN nếu có thực hiện được. Sau đó quay sang thực hiện chương trình co phục vụ ngắt tương ứng
- Sau khi thực hiện xong CPU thu hồi lại giá
trị cho bộ đếm chương trình,thanh ghi trạng
thái thực hiện tiếp sau lệnh ngắt.
Đặc điểm của ngắt
- Ngắt là cơ chế phục vụ ngoại vi,các chương trình con phục vụ ngắt là ngắn
- Ngắt mang tính ngẫu nhiên vì vậy có thể xảy ra đồng thời,nên phải có thứ tự ưu tiên để xử lí cho hợp lí bằng mạch ưu tiên ngắt
Sơ đồ điều khiển ngắt
Sơ đồ ngắt cứng của IBM – PC
1/ Sơ đồ
Hình 2-3: Sơ đồ điều khiển ngắt cứng của IBM-PC
2/ Giải thích sơ đồ
a) ý nghĩa của các thành phần
- CPU: Central Processing Unit (Đơn vị sở lí trung tâm )
- PIC: Priority Interupt Controller (điều khiển ưu tiên ngắt )
- IVT: Interupt Vector Table (Bảng vector ngắt )
- ISR: In Service Register chương trình phục vụ ngắt
- Arbitor: Trọng tài điều khiển
- Stack:ngăn xếp
- INT - INTerrupt (Ngắt)
- IRQ - Interrupt ReQuest (Yêu cầu ngắt)
- INTA - INTerrupt Acknowleadge (Chấp nhận ngắt)
b) Hoạt động của sơ đồ;
(1) Thiết bị ngoại vi có nhu cầu trao đổi thông tin. Gửi tín hiệu INTR (INTERUPT REQUEST) tới khối ghép nối (KBN)
(2) Mạch KGN phát ra một tín hiệu (xung lớn) ngang với một chu kì lệnh (>= 20ns) tới 8259A. Nếu thanh ghi chắn ngắt (Mask Interupt) trong 8259A tương ứng bằng 1 thì thôi. Nếu Bằng 0 thì thực hiện bước (3)
(3) PIC 8259A phát ra một xung INT tới CPU để xử lí ngắt
- Nếu cờ IF =1 thì CPU thực hiện một lệnh tiếp theo.
- Nếu cờ IF =0 thì CPU sẽ lờ đi không thực hiện
(4) CPU cất bộ đệm vào thanh ghi trạng thái vào Stack
(5) 82x86 Arbitor gửi tín hiệu chấp nhận ngắt INTA (Interupt Acknowleadge) về cho 8259A để xác định chế độ ưu tiên hoá
(6) PIC 8259A xem xét mức ưu tiên ngắt ở đâu và trỏ đến bảng ưu tiên ngắt IVT
(7) Kiểm tra địa chỉ ngắt
(8) Chương trình ngắt trỏ tới BIOS hoặt IRS (DOS) và thực hiện chương trình conphục vụ ngắt.Sau đó khi có tín hiệu kết thúc chương trình ngắt EOI(End Of Interupt) thì quay trở lại Stack lấy lại trạng thái ban đầu và trở về chương trình chính
Bộ điều khiển ngắt cứng PIC 8259A
Trên thực tế có nhiều loại vi xử lý ngắt của nhiều hãng nổi tiếng như ZILOG, MOTOROLA,INTEL.... Nhưng vi mạch xử lý ngắt sử dụng trong máy tính IBM PC và tương thích là bộ vi điều khiển PIA 8259A.
Vi mạch này có các ưu điểm là: sắp xếp và xử lí
ngắt được tốt.
Có hai dạng PIC 8259S là:
- DIP (Dual Inline Package): Loại hai hàng chân
- PLCC:loại có 4 hàng chân
Hìn 2-4: Sơ đồ chân của PIC 8259A
Trong đó:
CS (1) :Chip select chọn mạch điều khiển
WR (2): Write (lối vào của lệnh Ghi )
RD (3) : Read (lối vào lệnh đọc )
D0 D7 (114) các bit dữ liệu hai chiều
CAS0 (12), CAS1 (13), CAS2 (15) Lối vào mắc tầng của PIC chủ với PIC tớ
SP/EN (16) Slave Programming /ANble
INT (17) Lối ra yêu cầu ngắt
IR0 IR7 (1825) các vào lối yêu cầu ngắt
INTA (26):Lối ra yêu cầu ngắt
A0 (27):Địa chỉ chọn thanh ghi lệnh
Vcc (28): Nguồn nuôi
Sơ đồ cấu trúc
Hình 2-5: Sơ đồ khối của 8259A
- Bộ đệm dữ liệu (Data Buffer) được sử dụng khuếch đại dữ liệu
- Logic đọc ghi (read/write Logic) Điều khiển đọc ghi
- Bộ đệm và so sánh nối tầng:Nối PIC 8259A thành PIC tớ
- Logic điều Khiển (Control Logic)tạo các tín hiệu ghi và đọc các thanh ghi đệm
- thanh ghi ISR(In Service Register): chứa các chương trinhf con xử lí ngắt
- PR (Priority Resolver) Giải quyết ưu tiên
- IRR(Interupt Request Register ):thanh ghi tám mức ưu tiên từ TBNV
- IMR (Interrupt Mask Register)cho người lập trình biết ngắt có che được hay không
Cổng và các từ điều khiển
Hình 2-6: Lưu đồ hoạt động
PIC 8259A có 4 từ điều khiển khởi động từ ICW1ICW4 (Intialization Control Word) và ba từ điều khiển hoạt động từ OCW1OCW3 (Operation Control Word). Các từ điều khiển có ý nghĩa như sau:
a/ Từ điều khiển khởi động
Vi mạch PIC 8259A được khởi động để hoạt động từ điều khiển khởi động ICW1 ICW4 sự hoạt động này theo lưu đồ sau:
- ICW1 chỉ một hay nhiều vi mạch 8259A và các địa chỉ A5A7 của chương trình con xử lí ngắt
+ Nếu D1=S1=1 thì chỉ có một mạch (SNGL=1)
+ Nếu D1=S1 =0 thì chỉ có nhiều mạch
- ICW2 chỉ các địa chỉ từ A6 A15 và A0 =1của chương trình con xử lí ngắt
- ICW3 được sử dụng khi có từ hai PIC trở lên ICW1
ICW2
ICW3 được sử dụng khi có từ 2 PIC trở nên (Một PIC chủ có thể ghép thêm 8 PIC tớ )
+)ICW 3 cho PIC chủ
+) ICW3 cho PIC tớ
ID0 ID2 (tại bít ID0 ID2 ) ghi thứ tự của PIC tớ
+)IW4
Hình 2-7: Dạng từ điều khiển khởi động
b/ các từ điều khiển hoạt động
OCW1 ;có A0 =1 để ghi chắn 8 bit ngắt M0M7 cho các lối vào ngắt IR0IR7 với Mi=1 => xác lập chuẩn Mi=0 => xoá OCW2 ghi sự phục vụ ngắt theo ưu tiên vòng với A0=0 OCW3 Ghi sự che ngắt đặc biệt cho các chế độ đặc biệt SNM và ESMM với A0=0;D3=3;
* OCW1
* OCW2
OCW3
Hình 2-8: Dạng bit của các từ điều khiển hoạt động
1.2.3 Sơ đồ điều kiển ngắt của 8086
Hình 2-9: Sơ đồ ngắt cứng của 80x86
- Mức ưu tiên cao nhất là NMI ngắt không che được
- Mức ưu tiên thấp nhất từ IRQ0IRQ15
Mạch 8259A
Master Slave chức năng
IRQ0 Lối ra bộ đệm thời gian
IRQ1 Bàn phím bộ đệm ra
IRQ2 ngắt từ 8259A thứ 2
IRQ8 Ngắt thời gian thực
IRQ9 tương tự IRQ2 (coi là dành riêng)
IRQ10
IRQ11 Dành riêng
IRQ12
IRQ13 Đồng xử lí
IRQ14 Điều khiể đĩa cứng
IRQ15 Dành riêng
COM2.COM4 IRQ3 cổng nối tiếp thứ 2 không đồng bộ
COM1,COM3 IRQ4 cổng nối tiếp thứ không đồng bộ
LPT2,LPT4 IRQ5 cổng song song thứ 2 trong máy AT
IRQ6 Điều khỉên đĩa mềm (FDC)
LPT1,LPT3 IRQ7 cổng song song thứ 1 trong máy AT