1. Trang chủ
  2. » Luận Văn - Báo Cáo

Nghiên cứu tìm hiểu về vi mạch điều khiển ưu tiên ngắt PIC 8259A, cơ chế hoạt động của hệ thống ngắt cứng với PIC 8259A (Priority Interrupt Controller)

27 656 3

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

THÔNG TIN TÀI LIỆU

Thông tin cơ bản

Định dạng
Số trang 27
Dung lượng 1,32 MB

Các công cụ chuyển đổi và chỉnh sửa cho tài liệu này

Nội dung

Nhiệm vụ chung: Cần tìm hiểu nhiệm vụ, cấu tạo của PIC 8259Avà nguyên tắc hoạt động của PIC 8259A.Bài tập lớn bao gồm những vấn đề quan trọng sau:+ 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, nhiệm vụ và cấu tạo về PIC 8259A.+ Nguyên tắc ghép nối và nguyên tắc hoạt động.+ Lập trình cho PIC 8259A.Yêu cầu:Mọi thành viên và đọc giả nắm bắt được các nội dung quantrọng và tìm hiểu thêm về các vấn đề có liên quan để có thể hiểu rõhơn về vi mạch điều khiển ưu tiên ngắt PIC 8259A, cơ chế hoạt độngcủa hệ thống ngắt cứng với PIC 8259A (Priority Interrupt Controller)

Trang 1

MỤC LỤC

MỤC LỤC 1

LỜI NÓI ĐẦU 3

Chương 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 và PIC 8259A 4

1 Khái niệm và phân loại ngắt 4

1.1 Khái niệm ngắt: 4

1.2 Phân loại ngắt: 4

2 Quá trình xử lý ngắt: 6

3 Bộ điều khiển ngắt PIC 8259A: 6

Chương II: Giới thiệu chung, nhiệm vụ, cấu tạo về vi mạch điều khiển ưu tiên ngắt của PIC 8259A: 7

1.Giới thiệu chung: 7

2 Nhiệm vụ của PIC 8259A: 8

3 Cấu tạo của PIC 8259A: 8

Chương III: Sơ đồ ghép nối, nguyên tắc ghép nối và nguyên tắc hoạt động của PIC 8259A: 9

1.Sơ đồ ghép nối: 9

2 Nguyên tắc ghép nối và nguyên tắc hoạt động 11

2.1 Nguyên tắc ghép nối 11

2.2 Nguyên tắc hoạt động: 14

2.2.2 ICW2 at port 21h ch ọn số hiệu ngắt: 16 2.2.3 ICW3: thường được sử dụng khi có ghép tầng nhiều PIC 17

Trang 2

2.2.5 Operation control word 1: 18

2.2.6 Operation control word 2: 19

2.2.7 Operation Control word 3: 20

3 Các chế độ hoạt động: 21

3.1 Chế độ hoạt động đầy đủ (Fully Nested Mode): 21

3.2 Chế độ hoán đổi thứ tự ưu tiên (Rotating Priority Mode): 22

3.3 Chế độ tự động (Auto Mode): 22

3.4 Chế độ không tự động (Specific Mode): 22

3.5: Chế độ che đặc biệt (Special Mask Mode - SMM): 23

3.6: Chế độ quay vòng (Polled Mode): 23

3.7: Cascading: 24

Chương IV: Lập trình cho vi mạch PIC 8259A 25

1.Các bước lập trình: 25

2.Địa chỉ các thanh ghi 25

KẾT LUẬN 27

Trang 3

LỜI NÓI ĐẦU

Nhiệm vụ chung: Cần tìm hiểu nhiệm vụ, cấu tạo của PIC 8259A

và nguyên tắc hoạt động của PIC 8259A

Bài tập lớn bao gồm những vấn đề quan trọng sau:

+ 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, nhiệm vụ và cấu tạo về PIC 8259A

+ Nguyên tắc ghép nối và nguyên t ắc hoạt động

+ Lập trình cho PIC 8259A

Yêu cầu:

Mọi thành viên và đ ọc giả nắm bắt được các nội dung quan trọng và tìm hiểu thêm về các vấn đề có liên quan để có thể hiểu rõ hơn về vi mạch điều khiển ưu tiên ngắt PIC 8259A, cơ chế hoạt động của hệ thống ngắt cứng với PIC 8259A (Priority Interrupt Controller)

Nhóm sinh viên thực hiện!

Trang 4

Chương 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 và PIC 8259A

1 Khái niệm và phân loại ngắt

1.1 Khái niệm ngắt:

Trong thực tế người ta rất muốn tận dụng khả năng của CPU để làm thêm được nhiều công việc khác nữa, chỉ khi nào có yêu cầu trao đổi dữ liệu thì mới yêu cầu CPU tạm dừng công việc hiện tại để phục

vụ việc trao đổi dữ liệu Sau khi hoàn thành vi ệc trao đổi dữ liệu thì CPU lại phải quay về để làm tiếp công việc đang bị gián đoạn Cách

làm việc theo kiểu này gọi là ngắt CPU (gián đoạn hoạt động của

CPU) để trao đổi dữ liệu

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 như báo lỗi, trao đổi dữ liệu với thiết bị ngoại

vi, phục vụ yêu cầu khẩn, … Sau khi thực hiện xong thì quay trở lại

thực hiện tiếp công việc đang tạm dừng ở trên

1.2 Phân loại ngắt:

Hình 1.1: Phân l oại các l oại ngắ t

Ngắt cứng Ngắt tự động Ngắt mềm

Trang 5

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ó yêu cầu ngắt từ phần mạch bên ngoài gửi đến CPU Các tín hiệu này đến từ các chân INTR và NMI

- 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

- 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

Trang 6

2 Quá trình xử lý ngắt:

Hình 1.2: Quá trình xử l ý n gắt

3 Bộ điều khiển ngắt PIC 8259A:

Hình 1.3: Bộ đi ều khiển ng ắt

1: Lưu thanh ghi cờ

7: Khôi phục lại các thanh

ghi trước khi ngắt

+ D0 – D7: Dữ liệu

+ RD, WR: Đọc, ghi (mức thấp)

+ A0: Địa chỉ thanh ghi

+ CS: Chọn Chip

+ CAS0-2: Ghép tầng với PIC khác

+ SP: Xác định PIC chủ (master SP =1) thợ (slave SP =0) + EN: Mở đệm dữ liệu

+ INT: Yêu cầu ngắt

+ INTA: Chấp nhận ngắt

Trang 7

Lưu lại thông tin tiến trình bị ngắt

Phục hồi thông tin tiến trình bị ngắt

Chương II: Giới thiệu chung, nhiệm vụ, cấu tạo về vi mạch điều

khiển ưu tiên ngắt của PIC 8259A:

1.Giới thiệu chung:

PIC 8259A là một thiết bị đ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 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

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

Tiến trình bị ngắt

Tiến t rình bị n gắt tiếp tụ c thi hành

Tín hiệu yêu cầu ngắt IR Q t ừ

mạch ph ần cứng bên ngoài g ửi đ ến CP U

Hình 2.1 : Mô tả khái ni ệm ng ắt cứng và quá t rình ng ắt cứn g

Thông thường quá 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ó PIC 8259A

Trang 8

2 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 ứ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)

3 Cấu tạo của PIC 8259A :

Hình 2.2 : Tổng quan PIC 8259A

PIC 8259A gồm có 27 chân, bao gồm:

- 8 chân IR được đánh số từ IR0 đến IR7 là các chân được đánh

Trang 9

- 1 chân SP/ EN (SP: xác định PIC chủ, chủ SP=1, thợ SP=0 EN: mở đệm dữ liệu) là chân thứ 16

- 1 chân INT (yêu cầu ngắt) là chân thứ 17

- 1 chân CS (chọn chip) là chân thứ nhất

- 1 chân WR (ghi) là chân thứ 2

- 1 chân RD (đọc) là chân thứ 3

- 1 chân INTA (chấp nhận ngắt) là chân thứ 26

- 1 chân A0 (địa chỉ thanh ghi) là chân thứ 27

Chương III: Sơ đồ ghép nối, nguyên tắc ghép nối và nguyên tắc

hoạt động của PIC 8259A:

1.Sơ đồ ghép nối:

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

Trang 10

Các khối chức năng:

+ 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 hợ

+ 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 trình 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á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

+ SP/ EN (In/out): (slave program/Enable buffer): Nếu 8259A hoạt động ở chế độ không dùng đệm dữ liệu thì tín hiệu này dùng để xác định mạch 8259A là mạch chủ (SP = 1) hay tới (SP = 0) Nếu

8259A hoạt động ở chế độ có đệm dữ liệu thì tín hiệu này dùng để cho phép giao tiếp giữa 8259A và CPU, khi đó mạch 8259A là master hay slave phải dựa vào từ lệnh khởi động ICW4

+ Int (out): Tín hiệu yêu cầu ngắt đưa đến CPU (INTR)

+ INTA (In): Nhận trả lời chấp nhận ngắt hay không từ CPU

(chân INTA)

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:

Trang 12

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

2 0AH reserved (2n d 8259A)

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

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

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

COM4 (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ứ tư), modem, card âm thanh, mạng lưới thẻ, accelerator thẻ

Trang 13

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

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ứ ba) COM4 (cổng nối tiếp thứ tư), modem, card mạng, bộ điều khiển đĩa cứng

7 8/16-bit 15 LPT1 (first

parallel port)

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

10 16-bit only 5

Card mạng, card âm thanh, SCSI bộ thích ứng chủ, trung kênh IDE, thiết bị PCI

11 16-bit only 6

Card mạng, card âm thanh, máy chủ SCSI, card màn hình, quaternary kênh

Trang 14

12 16-bit only 7 PS/2 mouse

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

Floating Point Unit (FPU / 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 channel Card mạng, SCS

2.2 Nguyên tắc h oạt động:

Khi có một yêu cầu ngắt từ bộ phận ngoại vi (IRQo - IRQ15), 8259A sẽ đưa ra thông báo ngắt bằng tín hiệu INT=1, tín hiệu này được nối với bộ VXL qua chân yêu c ầu ngắt INTR Bộ VXL sau khi nhận được thông báo ngắt sẽ báo lại cho 8259A bằng tín hiệu chấp nhận ngắt INTA= 0 PIC 8259A (chủ) nhận được tín hiệu INTA từ bộ VXL sẽ hoàn tất các xử lý nội bộ theo thứ tự mức ưu tiên Bộ VXL đưa ra xung INTA lần thứ hai và 8259A sẽ trả lời bằng cách đưa ra bus thông tin v ề

số hiệu ngắt (8 bit) Bộ VXL dùng số hiệu ngắt để định vị trí của

chương trình ngắt trong bảng vector ngắt Quy trình xử lý ngắt trong VXL tiếp tục được thực hiện

Trang 16

2.2.2 ICW2 at port 21h chọn số hiệu ngắt:

Ví dụ: Nếu ta muốn các đầu vào của mạch 8259A có số hiệu ngắt

là 40h 47h ứng với IR0 IR7, ta chỉ cần ghi 40h vào ICW2 Khi đó IR0 có số hiệu ngắt là 40h, IR7 là 47h

Số hiệu ngắt được đưa lên bus dữ liệu để CPU phân biệt được các ngắt của 8259A.Một vấn đề vướng mắc ở đây là: làm cách nào để nhận biết có tín hiệu ngắt đến tại đầu vào IRi để gọi chương trình con ph ục

vụ ngắt tương ứng

Hình 3.7: IC W2 v ới 8088/ 8086

Trang 17

2.2.3 ICW3: thường được sử dụng khi có ghép tầng nhiều PIC

Hình 3.8: IC W3 2.2.4 ICW4 thiết lập các kết thúc ngắt:

Hình 3.9: IC W4

Trang 18

ICW4 là thanh ghi quan tr ọng dùng để quyết định cách kết thúc ngắt của 8259A Bình thường, khi đang thực hiện ngắt thì xung

INTA=0, lúc xung INTA=1 nếu ta không lập trình đưa OCW2 vào đ ể kết thúc ngắt thì CPU vẫn dành thời gian cho ngắt đó

Tuy nhiên nếu set bit 1 bằng 1 tức là chọn chế độ kết thúc ngắt tự động, khi có xung INTA=1 thì sẽ tự động kết thúc ngắt luôn, không cần lập trình OCW2 đ ể kết thúc

Điều này khá quan trọng vì khi có xung yêu cầu ngắt điều hòa vào IRi thì ta không th ể biết lúc nào sẽ hết yêu cầu ngắt Do đó ta nên kết thúc ngắt một cách tự động

Bit1= 1

AEOI (AUTO END OF INTERUPT) = T Ự ĐỘNG KẾT THÚC NGẮT

Thường chỉ quan tâm đến bit 0 và bit 1 Các bit còn lại cứ cho 0 ICW4=00000011b = 03h

Tiếp theo là các thanh ghi đi ều khiển Chúng được ghi vào trong quá trình đang hoạt động Tức là lúc đang phát sinh ngắt Có nghĩa là lúc hoạt động, nếu ta có yêu cầu gì thì đưa vào thô ng qua các OCW (Operation Control Word) Các OCW thường được lập trình trong

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

2.2.5 Operation control word 1:

Hình 3.10: OC W1 -T hiết lập và đ ọc tr ạng thái yêu c ầu ngắ t

Trang 19

Thường trong bài tập, ở bit Iri nào có đầu vào yêu cầu ngắt thì bit tương ứng trong OCW1 set bằng 0 Các bit còn lại set bằng 1

Ví dụ: đưa yêu cầu ngắt từ 8253 vào bit IR7 của 8259A Thì thiết lập OCW1 = 01111111b = 7F h

2.2.6 Operation control word 2:

Xác định cách PIC xử lý yêu cầu ngắt:

- Chế độ ưu tiên cố định: IR0>…>IR7

- Đổi mức ưu tiên tự động: Quay vòng

- Ưu tiên đích danh: Gán mức độ ưu tiên cho từng yêu cầu ngắt

Hình 3.11: Quay vòng ưu ti ên

Trang 20

Hình 3.12: OC W2 -Xác định việc xử lý yêu c ầu ngắ t của PIC

2.2.7 Operation Control word 3 :

Hình 3.13: OC W3

Nếu ai chưa hiểu nhiều về OCW3 lắm thì chưa thấy nó quan

trọng Thực ra đối với bài tập thì nó khá quan trọng Chúng ta chỉ nên quan tâm đến các bit1 và bit2 Các bit còn lại có thể cho bằng 0, trừ bit

3 luôn bằng 1

Trang 21

Sở dĩ OCW3 quan trọng là vì OCW3 dùng để đọc trạng thái đầu vào ngắt IRQ hoặc thanh ghi ISR ở xung RD tiếp theo Tức là thăm dò trạng thái của thanh ghi IRQ ho ặc thanh ghi ISR, đ ể từ đó gọi chương trình con phục vụ ngắt

Hình 3.14: Thăm dò IRR và ISR

3 Các chế độ hoạt động :

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 Ngoà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

Trang 22

Sau khi thực hiện quá trình khởi tạo, tín hiệu yê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

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ế độ hoán đổi mức ưu tiên là ch ế độ hoán đổi

tự động và chế độ hoán đổi đặc biệt

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

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à quá

trình hoá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

Ngày đăng: 03/05/2020, 11:20

TỪ KHÓA LIÊN QUAN

TÀI LIỆU CÙNG NGƯỜI DÙNG

TÀI LIỆU LIÊN QUAN

🧩 Sản phẩm bạn có thể quan tâm

w