24/05/2018, 15:57

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ữ
  1. 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 (114) 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 (1825) 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

  1. Bộ đệm dữ liệu (Data Buffer) được sử dụng khuếch đại dữ liệu
  2. Logic đọc ghi (read/write Logic) Điều khiển đọc ghi
  3. Bộ đệm và so sánh nối tầng:Nối PIC 8259A thành PIC tớ
  4. Logic điều Khiển (Control Logic)tạo các tín hiệu ghi và đọc các thanh ghi đệm
  5. thanh ghi ISR(In Service Register): chứa các chương trinhf con xử lí ngắt
  6. PR (Priority Resolver) Giải quyết ưu tiên
  7. IRR(Interupt Request Register ):thanh ghi tám mức ưu tiên từ TBNV
  8. 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ừ ICW1ICW4 (Intialization Control Word) và ba từ điều khiển hoạt động từ OCW1OCW3 (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ỉ A5A7 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 M0M7 cho các lối vào ngắt IR0IR7 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ừ IRQ0IRQ15

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

0