BTL Kĩ thuật máy tính nhóm 14

27 438 0
BTL Kĩ thuật máy tính nhóm 14

Đ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

TRƯỜNG ĐẠI HỌC CÔNG NGHIỆP HÀ NỘI KHOA CÔNG NGHỆ THÔNG TIN BÁO CÁO BÀI TẬP LỚN MÔN HỌC KIẾN TRÚC MÁY TÍNH Nhóm 14 Lê Thái Gặp Đinh Gia Hoàn Nguyễn Hữu Ánh Lê Hữu Linh MỤC LỤC PHẦN 1: MỞ ĐẦU PHẦN 2: NỘI DUNG I Giới thiệu chung phương pháp trao đổi tin điều khiển ngắt, trình ngắt Khái niệm phân loại ngắt 1.1 Khái niệm ngắt 1.2 Phân loại ngắt II Giới thiệu chung vi mạch điều khiển ưu tiên ngắt PIC 8259A .5 2.Giới thiệu chung .5 III Nhiệm vụ PIC 8259A .6 IV Cấu tạo PIC 8259A Tổng quan 4.1 Cấu tạo .8 V Nguyên tắc ghép nối nguyên tắc hoạt động 10 Nguyên tắc ghép nối 10 5.1 Hoạt động .14 5.1.1: ICW1 at port 20h thiết lập ban đầu 15 5.1.2: ICW2 at port 21h chọn số hiệu ngắt 16 5.1.3: ICW3 at port 21h(chỉ dùng cho phép tần nhiều PIC) 16 5.1.4: ICW4 at port 21h thiết lập kết thúc ngắt .17 5.1.5: Operationi control word 1/ Interrupt Mask Reg.(Ports 21h) 18 5.1.6: Operationi control word 2/ Interrupt Mask Reg.(Ports 20h) 18 5.1.7: Operation Control word 3(Ports 20h) 19 5.2: Các chế độ hoạt động 20 5.2.1: Chế độ hoạt động đầy đủ (Fully Nested Mode) 20 5.2.3: Chế độ tự động (Auto Mode) .21 5.2.4: Chế độ không tự động (Specific Mode) 21 5.2.5: Chế độ che đặc biệt (Special Mask Mode - SMM) .22 5.2.6: Chế độ quay vòng (Polled Mode) 22 5.2.7: Cascading 22 VI Lập trình cho vi mạch PIC 8259A 23 PHẦN 1: MỞ ĐẦU 1.Nhiệm vụ chung: cần tìm hiểu nhiệm vụ, cấu tạo PIC 8259A nguyên tắc hoạt động PIC 8259A 2.Bố cục chung báo cáo Phần 1: Mở đầu Phần 2: Nội dung + Giới thiệu phương pháp trao đổi tin điều khiển ngắt, trình ngắt + Giới thiệu chung PIC 8259A + Nhiệm vụ PIC 8259A + Cấu tạo PIC 8259A Tổng quan Cấu tạo chi tiết + Nguyên tắc ghép nối nguyên tắc hoạt động: Nguyên tắc ghép nối Trình bày hoạt động Các chế hoạt động + Lập trình cho PIC 8259A Phần 3: Kết luận PHẦN 2: NỘI DUNG I Giới thiệu chung phương pháp trao đổi tin điều khiển ngắt, trình ngắt Khái niệm phân loại ngắt 1.1 Khái niệm ngắt Trong thực tế người ta muốn tận dụng khả CPU để làm thêm nhiều công việc khác nữa, có yêu cầu trao đổi liệu u cầu CPU tạm dừng cơng việc để phục vụ việc trao đổi liệu Sau hoàn thành việc trao đổi liệu CPU lại phải quay để làm tiếp cơng việc bị gián đoạn Cách làm việc theo kiểu gọi ngắt CPU(gián đoạn hoạt động CPU) để trao đổi liệu Ngắt trình CPU tự ngưng hoạt động có yêu cầu ngắt gửi đến để chuyển sang thực chương trình phục vụ ngắt tương ứng báo lỗi, trao đổi liệu với thiết bị ngoại vi, phục vụ yêu cầu khẩn,… Sau thực xong quay trở lại thực tiếp cơng việc dở dang 1.2 Phân loại ngắt NGẮT Ngắt mềm Ngắt hệ thống DOS Ngắt người sử dụng Ngắt cứng Ngắt BIOS Ngắt tự động Ngắt ngồi Có cấm Hình 1: Phân loại loại ngắt Khơng cấm a) Ngắt mềm loại ngắt gọi lệnh chương trình ngơn ngữ máy Ngắt mềm thực hợp ngữ thông qua lệnh INT Đối với ngôn ngữ bậc cao hơn, cho phép thực gọi ngắt phải biên dịch thành lệnh INT hợp ngữ mời thực b) Ngắt cứng kiện CPU phải tạm dừng tiến trình thực để chuyển sang thực tiến trình phục vụ ngắt có u cầu ngắt từ phần mạch bên ngồi gửi đến CPU Các tín hiệu đến từ chân INTR NMI - Ngắt cứng NMI yêu cầu ngắt không che tương đương với ngắt mềm INT2 - Ngắt cứng INTR yêu cầu ngắt che Yêu cầu ngắt chân INTR có kiểu ngắt N nằm khoảng 0-FFH Kiểu ngắt phải đưa vào bus liệu để CPU đọc có xung chu trả lời chấp nhận ngắt c) Ngắt tự động(các trường hợp ngoại lệ) ngắt lỗi nảy sinh trình hoạt động CPU phép chia cho 0, xảy tràn tính tốn,… * Một số lệnh liên quan: - CLI: Xóa cờ ngắt - STI: Đặt cờ ngắt - INT XX: Gọi ngắt mềm số XX - IRET: Câu lệnh trở kết thúc chương trình xử lý ngắt - HLT: Treo CPU có ngắt khởi động lại 1.3 Quá trình ngắt Lưu ghi cờ  SP   FR Cấm ngắt IF  TF  Lưu đoạn lệnh Lưu trỏ lệnh Nạp đoạn lệnh trỏ  SP  CS  SP  IP  IP  N *  CS  N *  lệnh Thực chương trình ngắt Thực chương trình ngắt Khơi phục lại Sai Kết thúc ghi trước ngắt Đúng  IP   SP  CS   SP  2  FR   SP  4 II Giới thiệu chung vi mạch điều khiển ưu tiên ngắt PIC 8259A 2.Giới thiệu chung PIC 8259A thiết bị điều khiển ngắt CPU giúp CPU vào/ra liệu phương pháp ngắt cứng trường hợp nhiều yêu cầu ngắt cần phục vụ ta thường dùng vi mạch PIC 8259A để giải vấn đề ưu tiên.PIC 8259A giải yêu cầu ngắt với mức ưu tiên khác PIC 8259A thiết bị điều khiển ưu tiên ngắt lập trình Ta dùng ngơn ngữ lập trình khác asembly, C để lập trình cho PIC 8259A Vi mạch có ưu điểm là: xếp xử lí ngắt tốt Hình mơ tả q trình làm việc CPU có yêu cầu ngắt từ mạch phần cứng bên gửi đến CPU CPU chấp nhận ngắt: Chương trình phục vụ ngắt Tiến trình bị ngắt Tín hiệu yêu cầu ngắt IRQ từ mạch phần cứng bên ngồi gửi tới CPU Hình 2:Mơ tả khái niệm ngắt cứng q trình ngắt cứng Thơng thường trình vào theo ngắt cứng trợ giúp thiết bị điều khiển ngắt PIC (Programmable Interrupt Controller).Một PIC có PIC 8259A III Nhiệm vụ PIC 8259A PIC 8259A có chức nhận yêu cầu ngắt IRQ , xử lý ưu tiên ngắt cung cấp số hiệu ngắt ưu tiên cao cho CPU , vào số hiệu ngắt CPU lấy địa chương trình phục vụ ngắt này.8259A ngắt CPU mục đích để I/O hay CPU phải thực vấn đề Vấn đề lập trình thành chương trình phục vụ ngắt.Để gọi chương trình cần xác định ngắt 8259A phát sinh để gọi chương trình tương ứng Tức có phát sinh ngắt đầu vào IRQ gọi chương trình phục vụ ngắt tương ứng Đây nhiệm vụ vi mạch điều khiển ưu tiên ngắt PIC 8259A (Priority Interrupt Controller) IV Cấu tạo PIC 8259A Hình : Tổng quan PIC 8259A Tổng quan PIC 8259A gồm có 27 chân (như hình vẽ) Gồm có : chân IR đánh số từ IR0 đến IR7 chân đánh số thứ tự 18,19, 20,21,22,23, 24,25 chân D đánh số từ D0 đến D7 chân đánh số theo thứ tự 4,5,6,7,8,9,10,11 chân CAS đánh số từ CAS0 đến CAS2(ghép tầng với PIC khác) chân 12,13,15 chân SP / EN(SP: xác định PIC chủ, chủ SP=1, thợ SP=0 EN: mở đệm dwxx liệu) chân thứ 16 chân INT(yêu cầu ngắt) chân thứ 17 chân CS(chọn chip) chân thứ chân WR(ghi) chân thứ chân RD(đọc) chân thứ chân INTA(chấp nhận ngắt) chân thứ 26 chân A0(địa ghi) chân thứ 27 4.1 Cấu tạo Hình 4: Sơ đồ khối ghép nối PIC 8259A Các khối chức năng: Bộ đệm liệu (Data Buffer) sử dụng khuếch đại liệu Logic đọc ghi (read/write Logic) điều khiển đọc ghi Bộ đệm so sánh nối tầng: Nối PIC 8259A thành PIC thợ Logic điều khiển (Control Logic) tạo tín hiệu ghi đọc ghi đệm 10 Thứ tự ưu tiên cố định số hiệu ngắt tương ứng thể bảng sau: IRQ Interrupt type 08H 09H 0AH 0BH 0CH 0DH 0EH 0FH DEVICE System timer Keyboard reserved (2nd 8259A) serial port (COM 1) Serial port (COM 2) Hard disk Floppy Disk Printer(LPT1) Trong máy tính hệ cũ sử dụng IC 8259A thứ tự ưu tiên 0,1,2,3,4,5,6,7.trong máy tính đại sử dụng hai IC 8259A thứ tự ưu tiên 0,1, (8,9,10,11,12,13,14,15),3,4,5,6,7.Các IRQs từ đến 15 thay IRQ2 Các IRQs cách sử dụng thể bảng sau: 13 IR Q Đường BUS no Ưu tiên no(rerouted) Giờ hệ thống None Bộ điều khiển bàn phím None Bộ điều khiển bàn phím Modem,card video,COM3(cổng nối tiếp thứ 3),COM4 (cổng nối tiếp thứ 4) COM2 (second serial port) COM4 (cổng nối tiếp thứ tư),modem,card âm thanh, mạng lưới thẻ,accelerator thẻ COM1 (first serial port) COM3(cổng nối tiếp thứ 3) Modem, card âm thanh, mạng lưới thẻ,accelerator thẻ Sound card on old PC/XT Floppy disk controller LPT2(hai cổng song 2 Sử dụng thông thường khác no Mặc định sử dụng điển hình n/a 11 8/16-bit 12 8/16-bit 13 8/16-bit 8/16-bit 14 14 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 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 11 No 16-bit only 16-bit only 16-bit only Real-time clock None Card mạng,card âm thanh,SCSI thích ứng chủ,PCI thiết bị ấn định tuyến đường lai IRQ2 thiết bị Card mạng,card âm thanh,SCSI thích ứng chủ,trung kênh IDE,thiết bị PCI Card mạng ,card âm thanh,máy chủ SCSI,card hình,quaternary kênh IDE,thiết bị PCI 15 12 16-bit only 13 No PS/2 mouse Card mạng,card âm thanh,máy chủ SCSI,card hình, quaternary kênh IDE,thiết bị PCI Floating Point Unit (FPU / NPU / Math Coprocessor) None Primary IDE channel Bộ thích ứng chủ SCSI 14 16-bit only 10 15 16-bit only Secondary IDE channel Card mạng, SCS 5.1 Hoạt động Khi có yêu cầu ngắt từ phận ngoại vi (IRQo-IRQ15),8259A đưa thông báo ngắt tín hiệu INT=1 , tín hiệu nối với VXL qua chân yêu cầu ngắt INTR Bộ VXL sau nhận thơng báo ngắt báo lại cho 8259A tín hiệu chấp nhận ngắt INTA= PIC 8259A(chủ) nhận tín hiệu INTA từ VXL hoàn tất xử lý nội theo thứ tự mức ưu tiên Bộ VXL đưa xung INTA lần thứ hai 8259A trả lời cách đưa bus thông tin số hiệu ngắt (8 bit ) Bộ VXL dùng số hiệu ngắt để định vị trí chương trình ngắt bảng vector ngắt.Quy trình xử lý ngắt VXL tiếp tục thực 5.1.1: ICW1 at port 20h thiết lập ban đầu (có nghĩa địa sở 8259A 20h,ta ghi ICW1 vào địa 20h).Nếu 8259A có địa sở khác (ví dụ 300h)thì ghi vào địa sở đó.(300h) 16 0 LTIM ADI SNGL ICW4 LTIM = kích theo mức; LTIM = kích theo sườn ADI = khoảng cách vector ngắt byte =0 byte (8086 dùng byte nên ADI =1) SNGL=1 single,=0 nhiều |7|6|5|4|3|2|1|0| ICW1 | | | | | | | ` 1=ICW4 is needed, 0=KHÔNG CẦN ICW4 | | | | | | ` - 1=single 8259A, 0=GHÉP NHIỀU 8259A | | | | | ` 1= byte (8086), 0= byte int vectors(KO DÙNG) | | | | ` - 1=KÍCH THEO MỨC, 0=KÍCH THEO SƯỜN | | | ` must be for ICW1 (port must also be 20h) ` - must be zero for PC systems Các bít thường chọn ICW1=00010111b=17h Có sử dụng ICW4, PIC đơn 5.1.2: ICW2 at port 21h chọn số hiệu ngắt T7 T6 T5 T4 T3 17 T2 T1 T0 |7|6|5|4|3|2|1|0| ICW2 | | | | | ` 000= on 80x86 systems ` - A7-A3 of 80x86 interrupt vector ICW2 ghi chọn số hiệu ngắt Có tất 256 ngắt, đánh số từ $00 đến $FF theo hệ hexa,gọi số hiệu ngắt thường số hiệu ngắt cho trước , khơng tự cho vào Các bit đến 8259A tự động gán giá trị tùy theo đầu vào ngắt cụ thể IRi Ví dụ :Nếu ta muốn đầu vào mạch 8259A có số hiệu ngắt 40h -> 47h ứng với IR0 > IR7 ,ta cần ghi 40h vào ICW2 Khi IR0 có số hiệu ngắt 40h, IR7 47h Số hiệu ngắt đưa lên bus liệu để CPU phân biệt ngắt 8259A.Một vấn đề vướng mắc :làm cách để nhận biết có tín hiệu ngắt đến đầu vào IRi để gọi chương trình phục vụ ngắt tương ứng 5.1.3: ICW3 at port 21h(chỉ dùng cho phép tần nhiều PIC) ICW3 thường sử dụng có ghép tầng nhiều PIC |7|6|5|4|3|2|1|0| ICW3 for Master Device | | | | | | | ` 1=interrupt request has slave, 0=no slave | | | | | | ` - 1=interrupt request has slave, 0=no slave | | | | | ` 1=interrupt request has slave, 0=no slave | | | | ` - 1=interrupt request has slave, 0=no slave | | | ` 1=interrupt request has slave, 0=no slave | | ` - 1=interrupt request has slave, 0=no slave | ` 1=interrupt request has slave, 0=no slave ` - 1=interrupt request has slave, 0=no slave |7|6|5|4|3|2|1|0| ICW3 for Slave Device | | | | | ` master interrupt request slave is attached to ` - must be zero 5.1.4: ICW4 at port 21h thiết lập kết thúc ngắt 18 ICW4 ghi mà nhiều sách không đề cập tới.Tuy nhiên, ghi quan trọng dùng để định cách kết thúc ngắt 8259A Tức , bình thường, thực ngắt xung INTA=0, lúc xung INTA=1 ta khơng lập trình đưa OCW2 vào để kết thúc ngắt CPU dành thời gian cho ngắt Tuy nhiên set bit tức chọn chế độ kết thúc ngắt tự động, có xung INTA\=1 tự động kết thúc ngắt ln, khơng cần lập trình OCW2 để kết thúc Điều quan trọng có xung u cầu ngắt điều hòa vào IRi ta biết lúc hết yêu cầu ngắt Do ta nên kết thúc ngắt cách tự động Bit1= 1 0 SFNM BUF M/S AEOI AEOI (AUTO END OF INTERUPT) = TỰ ĐỘNG KẾT THÚC NGẮT |7|6|5|4|3|2|1|0| ICW4 | | | | | | | ` for 80x86 mode, = MCS 80/85 mode | | | | | | ` - = auto EOI, 0=normal EOI | | | | ` slave/master buffered mode (see below) | | | ` - = special fully nested mode (SFNM), 0=sequential ` unused (set to zero) Thường ta quan tâm đến bit bit Các bit lại cho ICW4=00000011b = 03h Tiếp theo ghi điều khiển chúng ghi vào trình hoạt động tức lúc phát sinh ngắt.Có nghĩa lúc hoạt động, ta có u cầu đưa vào thông qua OCW (Operation Control Word) Các OCW thường lập trình chương trình phục vụ ngắt 5.1.5: Operationi control word 1/ Interrupt Mask Reg.(Ports 21h) M7 M6 M5 M4 M3 |7|6|5|4|3|2|1|0| OCW1 – IMR Interrupt Mask Register | | | | | | | ` = service IRQ0, = mask off | | | | | | ` - = service IRQ1, = mask off 19 M2 M1 M0 | | | | | ` = service IRQ2, = mask off | | | | ` - = service IRQ3, = mask off | | | ` = service IRQ4, = mask off | | ` - = service IRQ5, = mask off | ` = service IRQ6, = mask off ` - = service IRQ7, = mask off Thường tập, bit Iri có đầu vào u cầu ngắt bit tương ứng OCW1 set Các bit lại set Ví dụ đưa yêu cầu ngắt từ 8253 vào bit IR7 8259A Thì thiết lập OCW1 = 01111111b = 7Fh MOV AL,7FH MOV DX, 21H OUT DX, AL 5.1.6: Operationi control word 2/ Interrupt Mask Reg.(Ports 20h) R SL EOI 0 L2 L1 L0 Bit SL hiểu Specific Level Tức mức ưu tiên xác định Khi bit SL=1 cần sử dụng bit L2, L1, L0 để xác định Iri (thường tiếp theo) có mức ưu tiên cao Nếu SL=0 khơng quan tâm Bit L2, L1, L0 Bit R=1 quay mức ưu tiên tự động Bit EOI=1 cho yêu cầu kết thúc ngắt Các bit R, SL, EOI phối hợp với bên đọc thêm tài liệu khác Trong tập thường không quan tâm đến R, SL, L2,…,L0 Ta cần Set Bit EOI=1 đủ Nhưng ICW4 lập trình u cầu ngắt tự động ta khơng cần lập trình OCW2 OCW2 dùng để yêu cầu 8259A kết thúc q trình ngắt (khi thực xong nhiệm vụ đó) NẾU ICW4 chọn bit1=0 (không cho phép kết thúc ngắt tự động) 20 Bits 765 EOI – End Of Interrupt code (PC specific) 2.non-specific EOI command 010 NOP 011 specific EOI command 100 rotate in automatic EOI mode 101 rotate on non-specific EOI command 110 set priority command (uses bits 2-0) 111 rotate on specific EOI command 5.1.7: Operation Control word 3(Ports 20h) 0 ESMM SMM P ERIS RIS |7|6|5|4|3|2|1|0| OCW3 | | | | | | | ` - 1=read IRR on next read, 0=read ISR on next read | | | | | | ` 1=act on value of bit 0, 0=no action if bit set | | | | | ` - 1=poll command issued, 0=no poll command issued | | | | ` must be for OCW3 | | | ` - must be for OCW3 | | ` 1=set special mask, 0=reset special mask | ` - 1=act on value of bit 5, 0=no action if bit set ` not used (zero) Nếu chưa hiểu nhiều OCW3 chưa thấy quan trọng.Thực tập quan trọng Chúng ta nên quan tâm đến bit1 bit2 Các bit lại cho 0, trừ bit Sở dĩ OCW3 quan trọng OCW3 dùng để đọc trạng thái đầu vào ngắt IRQ ghi ISR xung RD Tức thăm dò trạng thái ghi IRQ ghi ISR, để từ gọi chương trình phục vụ ngắt Có lẽ vấn đề vướng mắc Và cách giải là: 21 Trong lúc hoạt động (trong chương trình chính), lập trình đưa OCW3 vào địa 20h OCW3 = 0000 1010b Xác định tất yêu cầu ngắt phục vụ xung RD Đọc ISR vào AL Kiểm tra xem AL so với 1000 0000b (giả sử có yêu cầu ngắt IR7 nên u cầu ngắt phục vụ ghi ISR = 1000 0000) Nếu gọi chương trình phục vụ ngắt Nếu khơng 5.2: Các chế độ hoạt động 5.2.1: Chế độ hoạt động đầy đủ (Fully Nested Mode) 8259A hoạt động chế độ sau thực trình khởi tạo mà khơng cần đến từ điều khiển hoạt động OCW Trong chế độ ,các yêu cầu ngắt xếp theo mức ưu tiên từ đến Khi yêu cầu ngắt chấp nhận ,yêu cầu ngắt có mức ưu tiên cao thực vector địa truyền lên bus liệu Ngoài ,một bit ghi phục vụ ngắt đặt Bit giữ nguyên giá trị 8088 phát lệnh EOI trước trở từ chu trình phục vụ Trong bit ghi ISR ,tất ngắt có mức ưu tiên thấp (những ngắt chấp nhận 8088 chấp nhận thông qua điều khiển phần mềm) bị loại bỏ Sau thực q trình khởi tạo , tín hiệu u cầu ngắt vào IR0 có mức ưu tiên cao vào IR7 có mức ưu tiên thấp Thứ tự ưu tiên thay đổi chế độ hoán đổi thứ tự ưu tiên đề cập sau 5.2.2: Chế độ hoán đổi thứ tự ưu tiên: (Rotating Priority Mode) 8259A hoạt động chế độ hệ thống có thiết bị có yêu cầu ngắt có mức ưu tiên tương đương kênh truyền thơng Có hai chế độ hoán đổi mức ưu tiên chế độ hoán đổi tự động chế độ hoán đổi đặc biệt 5.2.3: Chế độ tự động (Auto Mode) 22 Trong chế độ ,thiết bị sau phục vụ ,được gán cho mức ưu tiên thấp , thiết bị u cầu ngắt phải đợi chí phải đợi thiết bị khác phục vụ xong 5.2.4: Chế độ không tự động (Specific Mode) Trong chế độ người lập trình viên thay đổi thứ tự ưu tiên ngắt cách lập trình mức ngắt có ưu tiên thấp cách xác lập mức ngắt có ưu tiên cao ví dụ IR5 lập trình có mức ưu tiên thấp IR6 có mức ưu tiên cao Lệnh điều khiển xác định OCW2 , R =1 , SEOI =1 , bit L2,L1,L0 xác định mức ưu tiên ( tính theo hệ thập phân ) thiết bị có mức ưu tiên thấp Cần ý chế độ hoạt động độc lập với lệnh EOI q trình hốn đổi mức ưu tiên thực thực lệnh EOI EOI ( End Of Interupt ) SEOI ( Specific EOI) Một lệnh EOI phải đưa tới 8259A trước kết thúc chương trình ngắt để khởi tạo bit tương ứng ghi ISR EOI SEOI hai dạng lệnh EOI non specific ( không xác định ) specific (xác định) Khi 8259A chế độ hoạt động đầy đủ ( Fully Neste Mode) xác định bit ghi ISR cần khởi tạo lệnh EOI Khi nhận lệnh non- specific EOI ,8259A tự động khởi tạo bit cao số bit xác lập Tuy nhiên ,khi chế độ xác lập gây ảnh hưởng đến chế độ hoạt động đầy đủ chế độ hoán đổi thứ tự ưu tiên (Rotating Priority Mode ),8259A xác định mức ngắt cuối ghi nhận Trong trường hợp lệnh lệnh EOI xác định gửi đến 8259A bao gồm bit cần khởi tạo ghi IS Lệnh EOI thực thực EOI = "1" từ điều khiển OCW2 Lưu ý lệnh hốn đổi thực suốt q trình EOI=1 khơng cần thiết phải làm 5.2.5: Chế độ che đặc biệt (Special Mask Mode - SMM) Chế độ sử dụng có số bit xác lập (che - mask) ghi mặt nạ ( Interrupt Mask Register ) từ lệnh OCW1 Trong chế độ mức ngắt ưu tiên thấp cho phép hoạt động chế độ hoạt động khởi tạo lại Các mức ưu tiên cao tác dụng Chế độ xác lập từ điều khiển OSW3 ESMM=1 ,SMM=1 khởi tạo lại ESSM=1 SMM=0 23 5.2.6: Chế độ quay vòng (Polled Mode) Trong chế độ ,8088 cấm đường vào INT Các phục vụ dành cho thiết bị thực lệnh Poll Lệnh Poll thực cách đặt bit P ="1" từ lệnh OCW3 suốt q trình có xung WR 8259A coi xung RD tín hiệu xác nhận ngắt , xác lập mạch lật tương ứng có yêu cầu ngắt đọc mức ưu tiên ngắt.Từ điều khiển bus liệu trình RD là: Chế độ có ưu có chu trình lệnh thơng dụng vài mức ưu tiên nên khơng cần đến tín hiệu INTA Các ứng dụng khác thường sử dụng chế độ để mở rộng số lượng mức ưu tiờn ngắt lớn 64 mức 5.2.7: Cascading Trong chế độ vi mạch 8259A nối với vi mạch 8259A có vai trò master nhằm tăng số mức ưu tiên ngắt lên tới 64 mức hình vẽ sau: Trong hệ thống vi mạch 8259A đóng vai trò master điều khiển vi mạch slave thơng qua đường tín hiệu CAS0- CAS2 Các đường tín hiệu yêu cầu ngắt nối với đầu vào tín hiệu yêu cầu ngắt vi mạch master Khi slave có u cầu phục vụ ngắt sau có tín hiệu chấp nhận ,vi mạch master phát lệnh CALL 24 khoảng byte thứ INTA cho phép slave tương ứng đưa địa chương trình ngắt thiết bị khoảng byte thứ hai thứ ba INTA Các đường dây cascade thông thường mức thấp chứa địa slave khoảng thời gian từ sườn lên xung INTA sườn lên xung INTA thứ ba Như vi mạch 8259A hệ thống phải hoạt động riêng biệt ,và lập trình hoạt động chế độ khác Một lệnh EOI phải phát hai lần ,một lệnh cho master cho slave tương ứng đồng thời vi mạch 8259A hệ thống cần phải giải mã địa qua tín hiệu CS VI Lập trình cho vi mạch PIC 8259A CÁC BƯỚC LẬP TRÌNH: MOV AL, 00001010B; NẠP OCW3 VÀO AL MOV DX, 20H OUT DX, AL; NẠP AL VÀO CỔNG 20H IN AH, 20H; ĐỌC THANH GHI ISR VÀO AH; -; KIỂM TRA ISR VỚI GIÁ TRỊ 1000 0000B CMP AL, #10000000B;SO SÁNH JE PhucvuIR7; nhảy đến nhãn (chương trình phục vụ IR7) Giải thích lệnh CMP đích, gốc: dùng để so sánh hai tốn hạng đích gốc, sau so sánh tốn hạng khơng thay đổi, lệnh tạo cờ, không lưu kết Sau lệnh CMP, sử dụng lệnh JE nhãn (JUMP IF EQUAL = nhảy đến nhãn bằng).Ngồi lệnh JI JG (JL = JUMP IF LESS THEN = nhảy nhỏ hơn,JG = JUMP IF GREATER THAN = nhảy lớn hơn) Địa ghi Đây trường hợp mà địa sở 8259A 20h Địa Thanh ghi ICW1 20h OCW2 OCW3 25 OCW1 ICW2 21H ICW3 ICW4 Khi lập trình, việc ghi ghi vào địa tương ứng, 8259A tự hiểu Ví dụ: MOV AL,#17H ;ICW1, ĐƯA GIÁ TRỊ 17H VÀO AL MOV DX,20H ;ĐƯA GIÁ TRỊ CỔNG 20H VÀO DX (ĐÂY LÀ BƯỚC TRUNG GIAN) OUT DX,AL ;GHI GIÁ TRỊ 17H Ở TGHI AL VÀO CỔNG 20H (ĐƯỢC THỰC HIỆN BẰNG LỆNH OUT) GHI CHÚ: để hiểu rõ PIC 8259A (Priority Interrupt Controller) tham khảo thêm Datasheet PHẦN 3: KẾT LUẬN PIC 8259A thiết bị vi mạch điều khiển ưu tiên ngắt cho CPU Thiết bị giúp xác định ưu tiên ngắt cho CPU , giúp giải tốn có nhiều nhiệm vụ u cầu cung lúc , giúp CPU hoạt động với công suất lớn Sau thực tập lớn thành viên nhóm I lớp khoa học máy tính I khóa V thu kiến thức cấu tạo , chức nguyên tắc hoạt động PIC 8259A , thiết bị vi xử lý điều khiển ưu tiên ngắt PIC 8259A (Priority Interrupt Cntroller).Rèn luyện cho thành viên nhóm khả làm việc theo nhóm, khả tìm chia sẻ tài liệu Danh mục tài liệu tham khảo 1.Kiến trúc máy tính – Thầy Vương Quốc Dũng 26 2.Thư viện số ĐH CNHN http://haui.tailieu.vn/cong-nghe-thong-tin/ky-thuat-maytinh/tat-ca-tai-lieu-cong-nghe-thong-tin-ky-thuat-may-tinh-4580-4604.html 3.Datasheet_VXL_8259A: intel-8259A-pic : http://alldatasheet.com/ 27 ... thông thường khác no Mặc định sử dụng điển hình n/a 11 8/16-bit 12 8/16-bit 13 8/16-bit 8/16-bit 14 14 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... khiển ưu tiên ngắt PIC 8259A (Priority Interrupt Cntroller).Rèn luyện cho thành viên nhóm khả làm việc theo nhóm, khả tìm chia sẻ tài liệu Danh mục tài liệu tham khảo 1.Kiến trúc máy tính – Thầy... ghép nối nguyên tắc hoạt động 10 Nguyên tắc ghép nối 10 5.1 Hoạt động .14 5.1.1: ICW1 at port 20h thiết lập ban đầu 15 5.1.2: ICW2 at port 21h chọn số hiệu ngắt

Ngày đăng: 20/03/2018, 17:17

Từ khóa liên quan

Mục lục

  • PHẦN 1: MỞ ĐẦU

  • PHẦN 2: NỘI DUNG

    • 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

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

        • 1.2 Phân loại ngắt

        • II. Giới thiệu chung về vi mạch điều khiển ưu tiên ngắt PIC 8259A

          • 2.Giới thiệu chung

          • III. Nhiệm vụ của PIC 8259A.

          • IV. Cấu tạo của PIC 8259A.

            • 4. Tổng quan

              • 4.1 Cấu tạo

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

                • 5. Nguyên tắc ghép nối.

                  • 5.1 Hoạt động

                    • 5.1.1: ICW1 at port 20h thiết lập ban đầu

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

                    • 5.1.3: ICW3 at port 21h(chỉ dùng khi cho phép tần nhiều PIC)

                    • 5.1.4: ICW4 at port 21h thiết lập các kết thúc ngắt.

                    • 5.1.5: Operationi control word 1/ Interrupt Mask Reg.(Ports 21h)

                    • 5.1.6: Operationi control word 2/ Interrupt Mask Reg.(Ports 20h)

                    • 5.1.7: Operation Control word 3(Ports 20h)

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

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

                      • 5.2.3: Chế độ tự động (Auto Mode)

                      • 5.2.4: Chế độ không tự động (Specific Mode)

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

                      • 5.2.6: Chế độ quay vòng (Polled Mode)

                      • 5.2.7: Cascading

                      • VI. Lập trình cho vi mạch PIC 8259A

Tài liệu cùng người dùng

Tài liệu liên quan