Mạch điều khiển ngắt ưu tiên PPI 8259A

Một phần của tài liệu BÀI GIẢNG KỸ THUẬT VI XỬ LÝ (Trang 99 - 100)

DIV nguồn (Unsigned Divide)

G A8 A7 A6 A5 A4 A3 A2 A1 A0 O0 O1 O2 O3 O4 O5 O6 O7 00010110000111

6.2.4. Mạch điều khiển ngắt ưu tiên PPI 8259A

Khi vào/ra dữ liệu với thiết bị ngoại vi theo nguyên tắc ngắt (ngắt cứng), tín hiệu yêu cầu ngắt (yêu cầu phục vụ ngắt) hay tín hiệu sẵn sàng (ready) từ phía thiết bị ngoại vi nối với lối vào tiếp nhận yêu cầu ngắt INTR của CPU. Theo đó (mà) máy tính có thể thực hiện được các cơng việc khác cho tới khi nó bị ngắt bởi tín hiệu này từ một thiết bị ngoại vi nào đó. Chương trình con phục vụ ngắt tương ứng sẽ nhập hoặc xuất dữ liệu trong vòng một vài micro giây rồi kết thúc để CPU quay trở về chương trình (cơng việc) đã bị gián đoạn. Như vậy, các thao tác nhập/xuất dữ liệu chỉ chiếm một phần nhỏ thời gian của bộ vi xử lý. Có nhiều ứng dụng được sử dụng ngắt cứng như việc đọc vào mã ASCII các ký tự của các phím trên bàn phím.

• Đếm số ngắt từ một bộ định thời để tạo thành một đồng hồ thời gian thực theo giờ, phút, giây.

• Phát hiện các tình huống khẩn cấp hay kiểm tra cơng việc nào đó dựa trên cơ chế ngắt, …

Về nguyên tắc, mỗi ứng dụng này yêu cầu một lối vào ngắt riêng biệt (cụ thể) để CPU nhận biết đúng ứng dụng đó, nhưng với bộ vi xử lý 8088 và 80x86 nói chung chỉ có 2 chân (lối vào) tiếp nhận yêu cầu ngắt là INTR và NMI. Nếu (hầu hết) dành lối vào NMI cho ngắt khi mất nguồn ni (sụt áp) thì cịn lại duy nhất một lối vào INTR cho tất cả các ứng dụng còn lại (Các ngắt INTR chỉ là một mức ưu tiên trong 4 mức ưu tiên ngầm định mà 8088 có thể xử lý được). Do đó, khi có nhiều yêu cầu ngắt che được của các thiết bị ngoại vi khác nhau cùng gửi đến CPU yêu cầu phục vụ (trao đổi dữ liệu) thì CPU khơng thể nhận biết được yêu cầu đó là của thiết bị nào. Trong trường hợp đó, phải sử dụng một mạch bổ trợ để “dồn” các tín hiệu ngắt cứng từ các thiết bị ngoại vi khác nhau vào một lối vào duy nhất INTR của bộ vi xử lý, đồng thời có thể xử lý ưu tiên cho các tín hiệu u cầu ngắt đó gọi là bộ điều khiển ngắt ưu tiên: PIC – Priority Interrupt Controller.

Trong các máy tính IBM PC, PC XT/AT, … (và các hệ vi xử lý khác nói chung) thường dùng vi mạch PIC có sẵn 8259. Đó là một vi mạch cỡ lớn lập trình được, nó có thể xử lý được 8 yêu cầu ngắt đồng thời gửi đến với 8 mức ưu tiên khác nhau để tạo ra một yêu cầu

ngắt duy nhất (có mức ưu tiên cao nhất trong số đó) đưa tới chân INTR của CPU (là yêu cầu ngắt che được ứng với một thiết bị nào đó.

Khi hệ thống có số lượng thiết bị ngoại vi lơn hơn 8, cần mở rộng khả năng tiếp nhận và xử lý ngắt thì 8259 cho phép nối tầng. Nếu nối tầng một mạch 8259 chủ và 8 mạch 8259 thợ thì có thể xử lý được 64 ngắt đồng thời gửi đến với 64 mức ưu tiên khác nhau (Với các máy PC XT/AT: thường nối tầng một 8259 chủ và một 8259 thợ).

Một số ký hiệu trên sơ đồ:

• IRQ0 – IRQ7 (IRQi) – Interrupt ReQuest: các yêu cầu ngắt.

• IRR – Interrupt Request Register: thanh ghi yêu cầu ngắt.

• PR – Priority Resolver: bộ xử lý ưu tiên.

• SP/EN – Slave Program/ENable buffer: lập trình thành mạch thợ/mở đệm bus dữ liệu.

• ISR – In Service Register: thanh ghi yêu cầu ngắt đang được phục vụ.

• Cas0 – Cas2: tín hiệu nối tầng giữa các PIC với nhau.  Các khối chức năng chính của 8259A bao gồm

(Các) yêu cầu ngắt từ các thiết bị ngoại vi gửi tới IRQi được xử lý bởi 3 thanh ghi 8 bit, mỗi bit tương ứng với một yêu cầu ngắt IRQi (i=0-7).

(1) IMR (Interrupt Mask Register – Thanh ghi che ngắt): Thanh ghi này dùng để cấm (che) hoặc cho phép (không che) từng lối vào yêu cầu ngắt riêng biệt. Mỗi bit của nó tương ứng với một lối vào có cùng chỉ số i. Để cho phép một lối vào ngắt, phải gửi đi (ghi) một từ lệnh có bit tương ứng lối vào ấy bằng 0.

(2) IRR (Interrupt Request Register – Thanh ghi yêu cầu ngắt): Thanh ghi này có nhiệm vụ ghi nhớ để theo dõi các yêu cầu ngắt đang yêu cầu phục vụ (có tại các IRQi). Tín hiệu u cầu ngắt có tại lối vào nào thì bit tương ứng với lối vào đó của IRR sẽ được lập. Tín hiệu yêu cầu ngắt phải tồn tại trên lối vào IRRQ cho tới khi xuất hiện sườn xuống của xung INTA thứ nhất.

Logic điều khiển

Một phần của tài liệu BÀI GIẢNG KỸ THUẬT VI XỬ LÝ (Trang 99 - 100)