0: Đầu vào IRQi không nối với mạch 8259 thợ
A0
ICW2 của mạch chủ
1 0 0 0 0 0
D7 D6 D5 D4 D3 D2 D1 D0
Mã hoá số hiệu ID của mạch thợ 0-7 nối vào IRQ0-IRQ7 A0
ID2 ID1 ID0
Ví dụ: Trong một hệ vi xử lý ta có một mạch PIC 8259A chủ và 2 mạch 8259A thợ nối vào chân IRQ0 và IRQ2 của mạch chủ. Tìm giá trị các từ điều khiển khởi đầu ICW3 để gán cho các mạch PIC. Giải: Mạch chủ: ICW3 = 0000 0101b = 05h Mạch thợ 1 (nối vào IRQ0 của mạch chủ): ICW3 = 0000 0000b = 00h Mạch thợ 2 (nối vào IRQ2 của mạch chủ): ICW3 = 0000 0010b = 02h ICW4:
Từ điều khiển khởi đầu này chỉ dùng đến khi trong từ điều khiển khởi đầu ICW1 có bit IC4 = 1 (cần thêm ICW4).
Bit àPM (Microprocessor Mode): Cho phép các bộ vi xử lý 8088/86 hoặc cao hơn (80x86) làm việc với 8259. Nếu àPM = 0 thì cho phép các bộ vi xử lý 8080/85 làm việc với 8259.
Bit SFNM = 1, cho phép ta chọn chế độ −u tiên cố định đặc biệt. Trong chế độ này yêu cầu ngắt với mức −u tiên cao nhất hiện thời từ một mạch thợ làm việc theo kiểu nối tầng sẽ đ−ợc mạch chủ nhận biết ngay cả khi mạch chủ còn đang phục vụ một yêu cầu ngắt ở mạch thợ khác nh−ng với mức −u tiên thấp hơn (nh− đã biết, khi 8088 nhận đ−ợc yêu cầu ngắt, nếu yêu cầu ngắt đó đ−ợc chấp nhận thì trong các công việc nó làm để chuẩn bị thực hiện ISR có công đoạn: Xoá cờ IF và TF, điều này có
Cas0 Cas1 Cas2 Cas0 Cas1 Cas2 Cas0 Cas1 Cas2 INT INTA INTA INTA 8259 chủ 8259 thợ1 8259 thợ2 INT To 8088 From 8088
Hình vẽ: Sơ đồ theo đầu bài
Hình vẽ: Thanh ghi khởi đầu ICW4 1 0 0 0 SFNM BUF M/S AEOI mPM
D7 D6 D5 D4 D3 D2 D1 D0
•1: Chế độ −u tiên cố định đặc biệt (Chế độ −u tiên vòng cố định)
•0: Không phải chế độ −u tiên cố định đặc biệt (chế độ khác) •0x: Mode không đệm •10: 8259 thợ – mode đệm •11: 8259 chủ – mode đệm 1: EOI tự động •1: Mode 8088/x86 •0: Mode MCS, 8080/8085 A0
nghĩa là khi nó đang thực hiện một ISR thì nó cấm các ngắt che đ−ợc khác tác động. Tuy nhiên, nếu ngay đầu ISR lại có các lệnh lập cờ IF thì nó vẫn có thể nhận biết các yêu cầu ngắt che đ−ợc khác ngay khi đang thực hiện một ISR nào đó, vấn đề này còn đ−ợc đề cập đến trong phần sau). Sau khi các yêu cầu ngắt đ−ợc phục vụ xong thì ch−ơng trình con phục vụ ngắt phải có lệnh kết thúc yêu cầu ngắt (EOF) đặt tr−ớc lệnh (IRET) trở về để đ−a đến cho mạch PIC chủ.
Khi bit SFNM = 0 thì chế độ −u tiên cố định đ−ợc chọn (IRQ0: mức −u tiên cao nhất, –, IRQ7: mức −u tiên thấp nhất). Thực ra đối với mạch 8259 nếu không dùng ICW4 thì chế độ này đ−ợc chọn nh− là ngầm định. Trong chế độ −u tiên cố định, tại một thời điểm chỉ có một yêu cầu ngắt i đ−ợc phục vụ (bit ISRi = 1), lúc này tất cả các yêu cầu ngắt khác với mức −u tiên thấp hơn đều bị cấm và các yêu cầu ngắt khác với mức −u tiên cao hơn có thể ngắt yêu cầu ngắt khác với mức −u tiên thấp hơn.
Bit BUF (Buffer): Cho phép định nghĩa mạch 8259 để làm việc với CPU trong tr−ờng hợp có đệm hoặc không có đệm nối với bus hệ thống. Khi BUF = 1: 8259 làm việc ở chế độ có đệm bus, bit M/S = 1/0 cho phép ta chọn mạch 8259 để làm việc ở chế độ chủ/thợ (Master/Slave). SP/EN trở thành đầu ra cho phép mở đệm bus để PIC 8259 và CPU thông với bus hệ thống.
Bit AEOI (Automatic End Of Interrupt): Cho phép chọn cách kết thúc yêu cầu ngắt tự động.
• AEOF = 1 thì 8259 tự động xoá ISRi = 0 khi xung INTA cuối cùng chuyển lên mức cao mà không làm thay đổi thứ tự −u tiên.
• Ng−ợc lại, khi ta chọn cách kết thúc yêu cầu ngắt th−ờng (AEOF = 0) thì ch−ơng trình con phục vụ ngắt phải có thêm lệnh EOI đặt tr−ớc lệnh IRET để kết thúc cho 8259.
Những vấn đề liên quan đến chế độ −u tiên và kết thúc yêu cầu ngắt còn đ−ợc nói thêm trong phần giới thiệu về các thanh ghi từ điều khiển hoạt động.
ii, Các từ điều khiển hoạt động:
Các từ điều khiển hoạt động OCWi sẽ quyết định 8259 hoạt động nh− thế nào sau khi nó đã đ−ợc khởi đầu bằng các từ điều khiển khởi đầu ICWi. Tất cả các từ điều khiển hoạt động sẽ đ−ợc ghi vào các thanh ghi trong PIC khi A0 = 0, trừ OCW1 đ−ợc hi khi A0 = 1 (chỉ số các thanh ghi và địa chỉ là ng−ợc lại với các thành ghi điều khiển khởi đầu).
OCW1:
Thanh ghi này để ghi các bit mặt nạ vào thanh ghi mặt nạ ngắt IMR. Khi một bit mặt nạ nào đó của thanh ghi IMR đ−ợc lập thì yêu cầu ngắt t−ơng ứng với mặt nạ đó sẽ không đ−ợc 8259 nhận biết nữa (bị che). Từ điều khiển này phải đ−ợc (ghi) đ−a đến 8259 ngay sau khi các từ điều khiển khởi đầu ICWi đ−ợc ghi vào 8259 để cho các lối vào yêu cầu ngắt IRTQi muốn
đáp ứng. Ta cũng có thể đọc lại IMR bất kỳ lúc nào để xác định tình trạng mặt nạ ngắt hiện tại (có nghĩa, kiểm tra xem trong thời điểm hiện tại yêu cầu ngắt nào đ−ợc phép, yêu cầu ngắt nào bị che).
Hình vẽ: Thanh ghi hoạt động OCW1 D7 D6 D5 D4 D3 D2 D1 D0
Mặt nạ ngắt tại các yêu cầu ngắt