Chương 7 - Ngắt và xử lý ngắt trong hệ 8088 pps

27 990 2
Chương 7 - Ngắt và xử lý ngắt trong hệ 8088 pps

Đ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

Chơng 7 ngắt v xử lý ngắt trong hệ 8088 1. Sự cần thiết phải ngắt CPU Trong cách tổ chức trao đổi dữ liệu thông qua việc thăm dò trạng thái sẵn sng của thiết bị ngoại vi nh đã đợc trình by ở chơng trớc, trớc khi tiến hnh bất kỳ một cuộc trao đổi dữ liệu no CPU phải để ton bộ thời gian vo việc xác định trạng thái sẵn sng lm việc của thiết bị ngoại vi. Trong hệ thống vi xử lý với cách lm việc nh vậy, thông thờng CPU đợc thiết kế chủ yếu chỉ l để phục vụ cho việc vo/ra dữ liệu v thực hiện các xử lý liên quan. Trong thực tế ngời ta rất muốn tận dụng khả năng của CPU để lm thêm đợc nhiều công việc khác nữa, chỉ khi no 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 hon thnh việc trao đổi dữ liệu thì CPU lại phải quay về để lm tiếp công việc hiện đang bị gián đoạn. Cách lm việc theo kiểu ny gọi l ngắt CPU (gián đoạn hoạt động của CPU) để trao đổi dữ liệu. Một hệ thống với cách hoạt động theo kiểu ny có thể đáp ứng rất nhanh với các yêu cầu trao đổi dữ liệu trong khi vẫn có thể lm đợc các công việc khác. Muốn đạt đợc điều ny ta phải có cách tổ chức hệ thống sao cho có thể tận dụng đợc khả năng thực hiện các chơng trình phục vụ ngắt tại các địa chỉ xác định của CPU. Khi nghiên cứu các tín hiệu của CPU 8088, chúng ta đã thấy vi mạch ny có các chân tín hiệu cho các yêu cầu ngắt che đợc INTR v không che đợc NMI, 205 chính các chân ny sẽ đợc sử dụng vo việc đa các yêu cầu ngắt từ bên ngoi đến CPU. 2. Ngắt trong hệ vi xử lý 8088 2.1. Các loại ngắt trong hệ 8088 Trong hệ vi xử lý 8088 có thể xếp các nguyên nhân gây ra ngắt CPU vo 3 nhóm nh sau: + nhóm các ngắt cứng: đó l các yêu cầu ngắt CPU do các tín hiệu đế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 INT 2. Các lệnh CLI (xoá cờ IF) v STI (lập cờ IF) không có ảnh hởng đến việc nhận biết tín hiệu yêu cầu ngắt NMI. Ngắt cứng INTR l yêu cầu ngắt che đợc. Các lệnh CLI v STI có ảnh hởng trực tiếp tới trạng thái của cờ IF trong bộ vi xử lý, tức l ảnh hởng tới việc CPU có nhận biết yêu cầu ngắt tại chân ny hay không. 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 ny phải đợc đa vo 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. Biểu đồ thờì gian của các xung liên quan đến quá trình trên đợc mô tả trên hình 7.1. T1 T2 T3 T4 T1 T1 T1 T2 T3 T4 ALE LOCK N INTA AD0-AD7 bus bị thả nổi (kiểu ngắt) Hình 7.1. Chu kỳ trả lời ngắt của CPU 8088. 206 + nhóm các ngắt mềm: khi CPU thực hiện các lệnh ngắt dạng INT N, trong đó N l số hiệu (kiểu) ngắt nằm trong khoảng 00-FFH (0-255). + nhóm các hiện tợng 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 ra trn khi tính toán Yêu cầu ngắt sẽ đợc CPU kiểm tra thờng xuyên tại chu kỳ đồng hồ cuối cùng của mỗi lệnh. Trên hình 7.2 trình by một cách đơn giản để đa đợc số hiệu ngắt N vo bus dữ liệu trong khi cũng tạo ra yêu cầu ngắt đa vo chân INTR của bộ vi xử lý 8088. +5v 8088 AD7 AD6 AD5 AD4 AD3 AD2 AD1 AD0 INTA INTR OC1 OC2 'LS244 IR0 IR3 IR6 Hình 7.2. Một cách đơn giản để đa số hiệu ngắt vo bus dữ liệu Giả thiết trong một thời điểm nhất định chỉ có một yêu cầu ngắt IRi đợc tác động v khi đó ở đầu ra của mạch NAND sẽ có xung yêu cầu ngắt đến CPU. Tín hiệu IRi đợc đồng thời đa qua mạch khuếch đại đệm để tạo ra số hiệu ngắt tơng ứng, số hiệu ngắt ny sẽ đợc CPU đọc vo khi nó đa ra tín hiệu trả lời INTA. Bảng 7.1 cho ta quan hệ giữa IRi v số hiệu ngắt N tơng ứng. Bảng 7.1 Quan hệ giữa IRi v số hiệu ngắt N AD7 IR6 IR5 IR4 IR3 IR2 IR1 IR0 N 1 1 1 1 1 1 1 0 FEH (254) 1 1 1 1 1 1 0 1 FDH (253) 207 1 1 1 1 1 0 1 1 FBH (251) 1 1 1 1 0 1 1 1 F7H (247) 1 1 1 0 1 1 1 1 EFH (239) 1 1 0 1 1 1 1 1 DFH (223) 1 0 1 1 1 1 1 1 BFH (191) Ta sẽ còn đề cập đến việc xử lý trờng hợp có 2 yêu cầu ngắt IRi cùng một lúc v cách đa các giá trị N của INT N vo bus dữ liệu một cách tự động bằng mạch điều khiển ngắt PIC ở phần sau. 2.2. Đáp ứng của CPU khi có yêu cầu ngắt Khi có yêu cầu ngắt kiểu N đến chân CPU v nếu yêu cầu đó đợc phép, CPU thực hiện các công việc sau: 1. SP SP-2, {SP} FR, trong đó {SP} l ô nhớ do SP chỉ ra. (chỉ ra đỉnh mới của ngăn xếp, cất thanh ghi cờ vo đỉnh ngăn xếp) 2. IF 0 , TF 0. (cấm các ngắt khác tác động vo CPU, cho CPU chạy ở chế độ bình thờng) 3. SP SP-2, {SP} CS. (chỉ ra đỉnh mới của ngăn xếp, cất phần địa chỉ đoạn của địa chỉ trở về vo đỉnh ngăn xếp) 4. SP SP-2, {SP} IP. (chỉ ra đỉnh mới của ngăn xếp, cất phần địa chỉ lệch của địa chỉ trở về vo đỉnh ngăn xếp) 5. {N*4} IP, {N*4+2} CS. (lấy lệnh tại địa chỉ mới của chơng trình con phục vụ ngắt kiểu N tơng ứng trong bảng vectơ ngắt) 6. Tại cuối chơng trình phục vụ ngắt, khi gặp lệnh IRET {SP} IP, SP SP+2 {SP} CS, SP SP+2 {SP} FR, SP SP+2 (bộ vi xử lý quay lại chơng trình chính tại địa chỉ trở về v với giá trị cũ của thanh ghi cờ đợc lấy ra từ ngăn xếp). Về mặt cấu trúc chơng trình, khi có ngắt xảy ra thì chơng trình chính (CTC) liên hệ với chơng trình con phục vụ ngắt (CTCPVN) nh mô tả trên hình 7.3. Trong thực tế các ngắt mềm INT N đã bao trùm các loại khác bởi vì Intel đã quy định một số kiểu ngắt đặc biệt đợc xếp vo đầu dãy ngắt mềm INT N nh sau: + INT 0: Ngắt mềm do phép chia cho số 0 gây ra, + INT 1: Ngắt mềm để chạy từng lệnh ứng với trờng hợp cờ TF=1, 208 + INT 2: Ngắt cứng do tín hiệu tích cực tại chân NMI gây ra, + INT 3: Ngắt mềm để đặt điểm dừng của chơng trình tại một địa chỉ no đó + INT 4 (hoặc lệnh INTO): ngắt mềm ứng với trờng hợp cờ trn OF=1. Các kiểu ngắt khác còn lại thì đợc dnh cho Intel v cho ngời sử dụng (IBM không hon ton tuân thủ các quy định ny khi chế tạo các máy PC/XT v PC/AT): + INT 5-INT 1FH: dnh riêng cho Intel trong các bộ vi xử lý cao cấp khác, + INT 20H-INT FFH: dnh cho ngời sử dụng. Các kiểu ngắt N trong INT N đều tơng ứng với các địa chỉ xác định của CTCPVN m ta có thể tra đợc trong bảng các vectơ ngắt. Intel quy định bảng ny nằm trong RAM bắt đầu từ địa chỉ 00000H v di 1 KB (vì 8088 có tất cả 256 kiểu ngắt, mỗi kiểu ngắt ứng với 1 vectơ ngắt, 1 vectơ ngắt cần 4 byte để chứa địa chỉ đầy đủ cho CS:IP của CTCPVN). CTC (Thân CTC) ctcpvn CPU tự: + cất thanh ghi F + xoá IF v TF lệnh cất các thanh ghi + cất CS, IP + lấy địa chỉ chơng trình phục vụ ngắt (Thân ctcpvn) CPU tự: + lấy lại IP, CS + lấy lại thanh ghi F lệnh lấy các thanh ghi IRET Hình 7.3. Liên hệ giữa CTC v CTCPVN khi có ngắt Bảng 7.2. Bảng vectơ ngắt của 8088 tại 1KB RAM đầu tiên 03FEH-03FFH CS của CTPVN INT FFH 03FCH-03FDH IP của CTPVN INT FFH 0082H- 0083H CS của CTPVN INT 20H 0080H- 0081H IP của CTPVN INT 20H 000AH- 000BH CS của CTCPVN INT 2 209 0008H- 0009H IP của CTCPVN INT 2 0006H- 0007H CS của CTCPVN INT 1 0004H- 0005H IP của CTCPVN INT 1 0002H- 0003H CS của CTCPVN INT 0 0000H- 0001H IP của CTCPVN INT 0 Trên bảng 7.2 giới thiệu một phần của bảng vectơ ngắt của CPU 8088. 2.3. Xử lý u tiên khi ngắt Có một vấn đề rất thực tế đặt ra l nếu tại cùng một thời điểm có nhiều yêu cầu ngắt thuộc các loại ngắt khác nhau cùng đòi hỏi CPU phục vụ thì CPU xử lý các yêu cầu ngắt đó nh thế no? Câu trả lời l CPU xử lý các yêu cầu ngắt theo thứ tự u tiên với nguyên tắc ngắt no có mức u tiên cao nhất sẽ đợc CPU nhận biết v phục vụ trớc. Ngay từ khi đợc chế tạo (thờng gọi l ngầm định) CPU 8088 có khả năng phân biệt các mức u tiên khác nhau cho các loại ngắt (theo thứ tự từ cao xuống thấp) nh sau: Mức u tiên + ngắt nội bộ: INT 0 (phép chia cho 0), INT N, INTO cao nhất + ngắt không che đợc NMI + ngắt che đợc INTR + ngắt để chạy từng lệnh INT 1 thấp nhất Để thấy rõ hoạt động của CPU trong cơ chế ngắt u tiên ny ta có thể lấy một ví dụ cụ thể nh sau. Giả thiết tại một thời điểm no đó, trong khi CPU (ở trạng thái cho phép ngắt với cờ IF=1) đang thực hiện phép chia v có lỗi xảy ra do số bị chia bằng 0, đúng vo lúc đó CPU cũng nhận đợc yêu cầu ngắt từ đầu vo INTR. CPU sẽ xử lý ra sao trong trờng hợp ny? Theo thứ tự u tiên ngầm định trong việc xử lý ngắt của CPU 8088 thì INT 0 có mức u tiên cao hơn INTR, vì vậy đầu tiên CPU sẽ thực hiện chơng trình phục vụ ngắt INT 0 để đáp ứng với lỗi đặc biệt do phép chia cho 0 gây ra v cờ IF bị xoá về 0. Yêu cầu ngắt INTR sẽ tự động bị cấm cho tới khi chơng trình phục vụ ngắt INT 0 đợc hon tất v trở về nhờ IRET, cờ IF cũ đợc trả lại. Tiếp theo đó CPU sẽ đáp ứng yêu cầu ngắt INTR bằng cách thực hiện chơng trình phục vụ ngắt dnh cho INTR. 210 2.4. Mạch điều khiển ngắt u tiên 8259A Trong trờng hợp có nhiều yêu cầu ngắt che đợc từ bên ngoi phải phục vụ ta thờng dùng vi mạch có sẵn 8259A để giải quyết vấn đề u tiên. Mạch 8259A đợc gọi l mạch điều khiển ngắt u tiên (priority interrupt controller, PIC). Đó l một vi mạch cỡ lớn lập trình đợc, có thể xử lý trớc đợc 8 yêu cầu ngắt với 8 mức u tiên khác nhau để tạo ra một yêu cầu ngắt đa đến đầu vo INTR (yêu cầu ngắt che đợc) của CPU 8088. Nếu nối tầng 1 mạch 8259A chủ với 8 mạch 8259A thợ ta có thể nâng tổng số các yêu cầu ngắt với các mức u tiên khác nhau lên thnh 64. Bus nội bộ INTA INT D0-D7 RD Đệm bus D Logic điều khiển Logic ghi/đọc WR IR 0 A0 IR1 : CS IR7 Cas 0 Cas 1 Cas 2 SP/EN Ghi chú: IR0-IR7: Các yêu cầu ngắt IRR: Thanh ghi yêu cầu ngắt PR: Bộ xử lý u tiên SP/EN: Slave program/Enable buffer (lập trình thnh mạch thợ/mở đệm bus dữ liệu) ISR: Thanh ghi các 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 Hình 7.4. Sơ đồ khối của PIC 8259A. Các khối chức năng chính của 8259A Đệm nối tầng v so sánh IMR (thanh ghi mặt nạ ngắt) ISR PR IRR 211 + Thanh ghi IRR: ghi nhớ các yêu cầu ngắt có tại đầu vo IRi. + Thanh ghi ISR: ghi nhớ các yêu cầu ngắt đang đợc phục vụ trong số các yêu cầu ngắt IRi. + Thanh ghi IMR: ghi nhớ mặt nạ ngắt đối với các yêu cầu ngắt IRi. + Logic điều khiển: khối ny có nhiệm vụ gửi yêu cầu ngắt tới INTR của 8088 khi có tín hiệu tại các chân IRi v nhận trả lời chấp nhận yêu cầu ngắt INTA từ CPU để rồi điều khiển việc đa ra kiểu ngắt trên bus dữ liệu. + Đệm bus dữ liệu: dùng để phối ghép 8259A với bus dữ liệu của CPU. + Logic điều khiển ghi/đọc: dùng cho việc ghi các từ điều khiển v đọc các từ trạng thái của 8259A. + Khối đệm nối tầng v so sánh: ghi nhớ v so sánh số hiệu của các mạch 8259A có mặt trong hệ vi xử lý. Các tín hiệu của 8259A: Một số tín hiệu trong mạch 8259 có tên giống nh các tín hiệu tiêu chuẩn của hệ vi xử lý 8088. Ta có thể thấy rõ v hiểu đợc ý nghĩa của chúng ngay trên hình 7.4. Ngoi các tín hiệu ny ra, còn có một số tín hiệu đặc biệt khác của 8259A cần phải giới thiệu thêm gồm: + Cas 0 -Cas 2 [I,O]: l các đầu vo đối với các mạch 8259A thợ hoặc các đầu ra của mạch 8259A chủ dùng khi cần nối tầng để tăng thêm các yêu cầu ngắt cần xử lý. + SP/EN[I,O]: Khi 8259A lm việc ở chế độ không có đệm bus dữ liệu thì đây l tín hiệu vo dùng lập trình để biến mạch 8259A thnh mạch thợ (SP=0) hoặc chủ (SP=1); khi 8259A lm việc trong hệ vi xử lý ở chế độ có đệm bus dữ liệu thì chân ny l tín hiệu ra EN dùng mở đệm bus dữ liệu để 8088 v 8259A thông vo bus dữ liệu hệ thống. Lúc ny việc định nghĩa mạch 8259A l chủ hoặc thợ phải thực hiện thông qua từ điều khiển khởi đầu ICW4. + INT [O]: Tín hiệu yêu cầu ngắt đến chân INTR của CPU 8088. + INTA [I]: Nối với tín hiệu báo chấp nhận ngắt INTA của CPU. PIC 8259A chủ (ở chế độ không đệm) nối với CPU 8088 ở chế độ MIN Trên hình 7.5 l sơ đồ nối mạch PIC 8259A lm việc độc lập (mạch chủ) với bus của CPU 8088 lm việc ở chế độ MIN. PIC 8259A chủ nối với CPU 8088 ở chế độ MAX Nếu hệ vi xử lý 8088 lm việc ở chế độ MAX thờng ta phải dùng mạch điều khiển bus 8288 v các đệm bus để cung cấp các tín hiệu thích hợp cho bus hệ thống. Mạch 8259A phải lm việc ở chế độ có đệm để nối đợc với bus hệ thống ny. 212 Trên hình 7.6 l ví dụ một sơ đồ CPU 8088 chế độ MAX nối với PIC 8259A. Trong mạch ny ta nhận thấy tín hiệu địa chỉ cho 8259A đợc lấy ra từ bus hệ thống, trong khi đó tín hiệu dữ liệu của nó đợc nối với bus dữ liệu của vi xử lý v từ đó đợc thông qua các đệm để nối vo bus hệ thống. D0-D7 Bus : hệ RD : các yêu cầu ngắt thống WR của A0 8088 ở INTR +5V 8259A D0-D7 IR0 RD WR IR7 A0 INTA CS chế INTA độ A1-A7 MIN IO/M Hình 7.5. Nối BUS 8088 chế độ MIN với PIC 8259A (địa chỉ cổng FE-FFH) +5V Bus hệ thống A0-A19 D0-D7 A0 Xung chọn + 5V các +5V yêu cầu ngắt AEN2 Res 8284 RDY1 AEN1 CLK READY Reset CSYNC F/C RESET A16-19 READY A8-15 AD0-AD7 8088 S0-S2 MN/MX INTR CLK DI0-DI7 DO0-DO7 OC G 3X'373 '245 DIR G CEN S0-S2 AEN ALE 8288 DT/R IORDC DEN CLK AIOWC IOB INTA A0 CS D0-D7 IR0 8259A : IR7 CAS2 RD SP/EN CAS0 CAS1 WR INTA INT INT SP/EN 213 Hình 7.6. Nối CPU 8088 chế độ MAX với PIC 8259A Lập trình cho PIC 8259A Để mạch PIC 8259A có thể hoạt động đợc theo yêu cầu, sau khi bật nguồn cấp điện PIC cần phải đợc lập trình bằng cách ghi vo các thanh ghi (tơng đơng với các cổng) bên trong nó các từ điều khiển khởi đầu (ICW) v tiếp sau đó l các từ điều khiển hoạt động (OCW). Các từ điều khiển khởi đầu dùng để tạo nên các kiểu lm việc cơ bản cho PIC, còn các từ điều khiển hoạt động sẽ quyết định cách thức lm việc cụ thể của PIC. Từ điều khiển hoạt động sẽ đợc ghi khi ta muốn thay đổi hoạt động của PIC. Các từ điều khiển nói trên sẽ đợc giới thiệu cụ thể trong các mục sau. Các từ điều khiển khởi đầu ICW PIC 8259A có tất cả 4 từ điều khiển khởi đầu l ICW1-ICW4. Trong khi lập trình cho PIC không phải lúc no ta cũng cần dùng cả 4 từ điều khiển đó. Tuỳ theo các trờng hợp ứng dụng cụ thể m có lúc ta cần ghi liên tiếp cả 4 từ điều khiển khởi đầu nhng có lúc ta chỉ cần ghi vo đó 2 hay 3 từ l đủ (xem hình 7.7 để thấy rõ thứ tự ghi v điều kiện để ghi các từ điều khiển ICW vo 8259A). Dạng thức của các thanh ghi điều khiển khởi đầu ICW đợc biểu diễn trên hình 7.8. Trên hình ny ta thấy bên cạnh các bit dữ liệu của từ điều khiển khởi đầu ICW ta còn ghi rõ thêm cả giá trị cụ thể của A0 tơng ứng cho mỗi ICW đó. Đầu vo địa chỉ A0 v thứ tự ghi sẽ giúp ta phân biệt ra các thanh ghi khác nhau bên trong PIC để ghi dữ liệu cho các từ điều khiển. Ví dụ A0=0 l dấu hiệu để nhận biết rằng ICW1 đợc đa vo thanh ghi có địa chỉ chẵn trong PIC, còn khi A0=1 thì các từ điều khiển khởi đầu ICW2, ICW3, ICW4 sẽ đợc đa vo các thanh ghi có địa chỉ lẻ trong mạch PIC. ICW1 Bit D0 của ICW1 quyết định 8259A sẽ đợc nối với họ vi xử lý no. Để lm việc với hệ 16 - 32 bit (8088 hoặc họ 80x86) thì ICW1 nhất thiết phải có IC4 =1 (tức l ta luôn cần đến ICW4), còn đối với hệ 8 bit nh họ 8080/85 thì phải có IC4 = 0 (v nh vậy các bit của ICW4 sẽ bị xoá về 0). Các bit còn lại của ICW1 định nghĩa cách thức tác động của xung yêu cầu ngắt (tác động theo sờn hay theo mức) tại các chân yêu 214 [...]... điều khiển khởi đầu ny cho phép chọn kiểu ngắt (số hiệu ngắt) ứng với các bit T3-T7 cho các đầu vo yêu cầu ngắt Các bit T0-T2 đợc 8259A tự động gán giá trị tuỳ theo đầu vo yêu cầu ngắt cụ thể IRi Ví dụ nếu ta muốn các đầu vo của mạch 8259A có kiểu ngắt l 4 0-4 7H ta chỉ cần ghi 40H vo các bit T3-T7 Nếu lm nh vậy thì IR0 sẽ có kiểu ngắt l 40H, IR1 sẽ có kiểu ngắt l 41H 215 ICW3 Từ điều khiển khởi đầu... tất các xử lý nội bộ cần thiết, kể cả xử lý u tiên nếu nh có nhiều yêu cầu ngắt cùng xảy ra 4 8088 đa ra xung INTA thứ hai đến 8259A 5 Xung INTA thứ hai khiến 8259A đa ra bus dữ liệu 1 byte chứa thông tin về số hiệu ngắt của yêu cầu ngắt vừa đợc nhận biết 6 8088 dùng số hiệu ngắt để tính ra địa chỉ của vectơ ngắt tơng ứng 7 8088 cất FR, xoá các cờ IF v TF v cất địa chỉ trở về CS:IP vo ngăn xếp 8 8088. .. ngắt hiện thời rồi dùng lệnh để che các yêu cầu ngắt khác đi v chỉ để yêu cầu ngắt IR3 đợc nhận biết Sau khi xử lý xong các công việc ta phải trả lại giá trị mặt nạ ngắt cũ cho 8259A rồi mới trở về chơng trình chính 3 Ngắt trong máy IBM PC Vì các máy IBM PC đợc sử dụng rất rộng rãi nên tại cuối chơng ny ta sẽ trình by sơ lợc cấu trúc ngắt trong các máy đó 3.1 Ngắt trong máy IBM PC/XT Bảng 7 3 Các ngắt. .. INT0BH INT0CH INT0DH INT0EH INT0FH INT70H INT71H INT72H INT73H INT74H INT75H INT76H INT77H Dnh cho bộ đếm 8254 đạt TC bn phím yêu cầu ngắt từ 8259A thợ COM2 COM1 cổng máy in song song LPT2 điều khiển đĩa mềm cổng máy in song song LPT1 CMOS của đồng hồ thời gian thực định hớng lại bằng chơng trình về INT 0AH dnh cho ngời sử dụng dnh cho ngời sử dụng chuột của PS/2 đồng xử lý toán học ổ đĩa cứng dnh cho ngời... ICW3 D2=0 lm việc với hệ 8086/88 D3=1 đầu vo IR ăn theo mức D4=1 bắt buộc với ICW1 D5=D6=D7=0 gán bằng 0 cho hệ 8086/88 223 ICW2=01010000=50H Vì các bit T7-T3 của ICW2 phải mã hoá trị số 50H để IR0-IR7 đợc mã hoá tiếp bởi các bit T2-T0=000 ICW3 không cần đến ICW4=00001101=0DH D0=1 lm việc với hệ 8086/88 D1=0 EOI thờng (phải có EOI trớc IRET) D3D2=11 lm việc ở chế độ chủ trong hệ có đệm bus D4=0 chế... nạ đặc biệt không ảnh hởng tới các yêu cầu ngắt với mức u tiên cao hơn Cuối cùng để có cái nhìn một cách có hệ thống về hoạt động của hệ vi xử lý với CPU 8088 v PIC 8259A khi có yêu cầu ngắt, ta tóm lợc hoạt động của chúng nh sau: 1 Khi có yêu cầu ngắt từ thiết bị ngoại vi tác động vo một trong các chân IR của PIC, 8259A sẽ đa INT=1 đến chân INTR của 8088 2 8088 đa ra xung INTA đầu đến 8259A 3 8259A... ;kiểu ngắt 8 ;có đệm, 8086, EOI trớc IRET Các ngắt dnh cho ngời sử dụng ứng với INT 60H - INT 66H Nếu sử dụng các ngắt ny cho các công việc của mình, ngời sử dụng phải có thêm các mạch phụ để đa yêu cầu ngắt đến CPU v để đa số hiệu ngắt N vo bus dữ liệu cho CPU đọc khi có trả lời chấp nhận yêu cầu ngắt INTA 3.1 Ngắt trong máy IBM PC/AT Trong các máy IBM PC/AT (với các CPU từ 80286 trở đi) cấu trúc ngắt. .. INTR 8259A chủ SE/EN CAS0-CAS2 80x86, Pentium +5v NMI lỗi parity từ I/O lỗi parity từ bộ nhớ D7 của cổng 70 H Hình 7. 14 Nối 2 mạch PIC 8259A chủ v thợ trong các máy IBM PC/AT Việc gán các yêu cầu ngắt IRQ cho các ngắt INT N đợc thể hiện trên bảng 7. 4 Các ngắt INT N còn lại cũng giống nh của máy IBM PC/XT Bảng 7. 4 Các IRQ của các máy PC/AT IRQ IRQ0 IRQ1 IRQ2 IRQ3 IRQ4 IRQ5 IRQ6 IRQ7 IRQ8 IRQ9 IRQ10 IRQ11... dò, trong đó có các thông tin về yêu cầu ngắt với mức u tiên cao nhất đang hoạt động v mã tơng ứng với yêu cầu ngắt ấy theo dạng thức đợc biểu diễn trên hình 7. 12 D7 Đ6 D5 D4 D3 D2 D1 D0 I x x x x W2 W1 W0 1: đang có yêu cầu ngắt 0: không có yêu cầu ngắt Mã hoá số của yêu cầu ngắt (x: không để ý) Hình 7. 12 Dạng thức của từ thăm dò trạng thái yêu cầu ngắt Có thể gọi đây l chế độ thăm dò yêu cầu ngắt. .. yêu cầu ngắt bằng cách trạng thái của đầu vo yêu cầu ngắt IRi với mức u tiên cao nhất cùng mã của đầu vo đó, v + thao tác với mặt nạ đặc biệt D7 Đ6 D5 D4 D3 D2 D1 D0 IR7 IR6 IR5 IR4 IR3 IR2 IR0 IR0 a) IRR D7 IRi=0: đầu vo i không có yêu cầu ngắt IRi=1: đầu vo i có yêu cầu ngắt Đ6 D5 D4 D3 D2 D1 D0 221 IS7 IS6 IS5 b) ISR IS4 IS3 IS2 IS1 IS0 ISi=0: yêu cầu ngắt i không đợc phục vụ ISi=1: yêu cầu ngắt i . Reset CSYNC F/C RESET A1 6-1 9 READY A 8-1 5 AD0-AD7 8088 S0-S2 MN/MX INTR CLK DI0-DI7 DO0-DO7 OC G 3X' 373 '245 DIR G CEN S0-S2 AEN ALE 8288 DT/R. cầu ngắt che đợc INTR v không che đợc NMI, 205 chính các chân ny sẽ đợc sử dụng vo việc đa các yêu cầu ngắt từ bên ngoi đến CPU. 2. Ngắt trong hệ vi xử lý 8088 2.1. Các loại ngắt trong hệ. hệ 8088 Trong hệ vi xử lý 8088 có thể xếp các nguyên nhân gây ra ngắt CPU vo 3 nhóm nh sau: + nhóm các ngắt cứng: đó l các yêu cầu ngắt CPU do các tín hiệu đến từ các chân INTR v NMI. Ngắt

Ngày đăng: 28/07/2014, 17:22

Từ khóa liên quan

Mục lục

  • 1. Sự cần thiết phải ngắt CPU

  • 2. Ngắt trong hệ vi xử lý 8088

    • 2.1. Các loại ngắt trong hệ 8088

    • 2.2. Đáp ứng của CPU khi có yêu cầu ngắt

    • 2.3. Xử lý ưu tiên khi ngắt

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

    • Một số ví dụ lập trình với 8259A

    • 3. Ngắt trong máy IBM PC

      • 3.1. Ngắt trong máy IBM PC/XT

      • 3.1. Ngắt trong máy IBM PC/AT

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

Tài liệu liên quan