intTypePromotion=1
zunia.vn Tuyển sinh 2024 dành cho Gen-Z zunia.vn zunia.vn
ADSENSE

Kỹ thuật vi xử lý - Chương 6

Chia sẻ: Nguyen Nhi | Ngày: | Loại File: PDF | Số trang:18

190
lượt xem
52
download
 
  Download Vui lòng tải xuống để xem tài liệu đầy đủ

Ngắt và xử lý ngắt trong hệ vi xử lý 8088 1. Sự cần thiết phải ngắt CPU Như đã biết, với cách tổ chức trao đổi dữ liệu với thiết bị ngoại vi bằng cách thăm dò trạng thái sẵn sàng của thiết bị ngoại vi, trước khi thực hiện bất kỳ một lệnh (hay một nhóm lệnh) trao đổi dữ liệu thì CPU phải dành toàn bộ thời gian vào việc kiểm tra (thăm dò) để xác định trạng thái sẵn sàng làm việc của thiết bị ngoại vi. Trong một hệ vi xử lý với...

Chủ đề:
Lưu

Nội dung Text: Kỹ thuật vi xử lý - Chương 6

  1. http://www.ebook.edu.vn Tr−êng ®¹i häc kü thuËt C«ng NghiÖp Ch−¬ng 6 Ng¾t vµ xö lý ng¾t trong hÖ vi xö lý 8088 1. Sù cÇn thiÕt ph¶i ng¾t CPU Nh− ®· biÕt, víi c¸ch tæ chøc trao ®æi d÷ liÖu víi thiÕt bÞ ngo¹i vi b»ng c¸ch th¨m dß tr¹ng th¸i s½n sµng cña thiÕt bÞ ngo¹i vi, tr−íc khi thùc hiÖn bÊt kú mét lÖnh (hay mét nhãm lÖnh) trao ®æi d÷ liÖu th× CPU ph¶i dµnh toµn bé thêi gian vµo viÖc kiÓm tra (th¨m dß) ®Ó x¸c ®Þnh tr¹ng th¸i s½n sµng lµm viÖc cña thiÕt bÞ ngo¹i vi. Trong mét hÖ vi xö lý víi c¸ch lµm viÖc nh− vËy, th«ng th−¬ng bé vi xö lý (CPU) chñ yÕu lµ ®−îc dµnh cho viÖc vµo/ra d÷ liÖu vµ thùc hiÖn mét vµi xö lý liªn quan. Nh−ng thùc tÕ th× søc m¹nh cña CPU trong mét hÖ vi xö lý lµ rÊt lín, nã lµm viÖc víi tèc ®é rÊt cao vµ tËp lÖnh phong phó (kh¶ n¨ng xö lý d÷ liÖu lín) mµ c«ng viÖc vµo/ra d÷ liÖu th× kh«ng tèn nhiÒu thêi gian (thêi gian thùc hiÖn c¸c lÖnh vËn chuyÓn d÷ liÖu). §Ó tËn dông kh¶ n¨ng lµm viÖc cña CPU ®Ó lµm thªm ®−îc nhiÒu c«ng viÖc kh¸c n÷a, ng−êi ta mong muèn: CPU kh«ng tèn nhiÒu thêi gian vµo viÖc th¨m dß tr¹ng th¸i s½n sµng cña thiÕt bÞ ngo¹i vi, chØ khi nµo thiÕt bÞ ngo¹i vi s½n sµng vµ cÇn trao ®æi d÷ liÖu víi hÖ thèng (CPU) th× thiÕt bÞ ngo¹i vi chñ ®éng yªu cÇu (th«ng b¸o) CPU t¹m dõng c«ng viÖc hiÖn t¹i ®Ó phôc vô cho viÖc trao ®æi d÷ liÖu. Sau khi hoµn thanh c«ng viÖc trao ®æi d÷ liÖu th× CPU quay vÒ thùc hiÖn tiÕp c«ng viÖc ®ang thùc hiÖn (c«ng viÖc 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 sù ho¹t ®éng cña CPU) ®Ó thùc hiÖn trao ®æi d÷ liÖu. Treen c¬ së nh− vËy, –ng¾t– ®−îc më réng cho hÇu hÕt c¸c øng dông kh¸c nh»m ®éc lËp ho¸ víi c«ng viÖc cña CPU vµ t¨ng thªm hiÖu suÊt cña hÖ thèng (nh− c¸c phôc vô cña DOS vµ cña BIOS). §Ó cã thÓ thùc hiÖn ®−îc ph−¬ng ph¸p ng¾t CPU cho vµo/ra d÷ liÖu th× ta ph¶i cã c¸ch tæ chøc hÖ thèng phÇn cøng vµ phÇn mÒm sao cho cã thÓ tËn dông ®−îc kh¶ n¨ng thùc hiÖn c¸c ch−¬ng tr×nh con phôc vô ng¾t (ISR – Interrupt Service Routine) t¹i c¸c ®Þa chØ x¸c ®Þnh cña CPU. Khi nghiªn cøu c¸c ch©n tÝn hiÖu cña 8088, ta thÊy vi m¹ch nµy cã c¸c ch©n tiÕp nhËn yªu cÇu ng¾t che ®−îc INTR vµ kh«ng che ®−îc NMI, chÝnh c¸c ch©n nµy sÏ ®−îc sö dông vµo viÖc ®−a c¸c yªu cÇu ng¾t tõ bªn ngoµi tíi CPU 8088. 2. Ng¾t trong vi xö lý 8088 a. C¸c lo¹i ng¾t trong hÖ 8088 Trong hÖ vi xö lý cã bé vi xö lý 8088 (vµ 80x86 family) cã thÓ ph©n lo¹i c¸c ng¾t theo nguyªn nh©n g©y ng¾t CPU thµnh 3 nhãm: Ng¾t cøng: §©y lµ c¸c yªu cÇu ng¾t CPU do m¹ch ngoµi (thiÕt bÞ ngo¹i vi hoÆc c¸c vi m¹ch ®iÒu khiÓn kh¸c) t¸c ®éng ®Õn ch©n INTR vµ NMI cña 8088. Ng¾t cøng NMI (Non Maskable Interrupt) lµ yªu cÇu ng¾t kh«ng che ®−îc t−¬ng øng víi ng¾t mÒm INT 2. Trong hÖ thèng, c¸c nguyªn nh©n g©y lçi nh− lçi bé nhí, ch½n lÎ, sù cè hÖ thèng nh− sôt ®iÖn ¸p, ch¸y m¸y, – sÏ ®−îc chuyÓn thµnh tÝn hiÖu b¸o vÒ ch©n NMI cña bé vi xö lý. C¸c lÖnh nh− CLI (xo¸ cê IF) STI (lËp cê IF) kh«ng ¶nh h−ëng tíi sù nhËn biÕt cña 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, STI cã ¶nh h−ëng trùc tiÕp tíi tr¹ng th¸i cña cê IF trong thanh ghi cê cña bé vi xö lý, tøc lµ ¶nh h−ëng tíi viÖc CPU cã thÓ nhËn biÕt ®−îc c¸c yªu cÇu ng¾t t¹i ch©n nµy hay kh«ng. Cô thÓ, nÕu IF=1 th× CPU nhËn biÕt ®−îc c¸c yªu cÇu ng¾t t¸c ®éng ch©n INTR cña nã; IF=0, ng−îc l¹i. Yªu cÇu ng¾t t¹i ch©n INTR cã thÓ cã kiÓu ng¾t N n»m trong kho¶ng 00h – FFh, kiÓu 92 NguyÔn TiÕn Duy – Trung t©m Kü thuËt m¸y tÝnh – Bé m«n Kü thuËt m¸y tÝnh
  2. http://www.ebook.edu.vn Tr−êng ®¹i häc kü thuËt C«ng NghiÖp ng¾t nµy ph¶i ®−îc ®−a vµo bus d÷ liÖu cña hÖ thèng ®Ó CPU cã thÓ ®äc ®−îc khi cã xung INTA (Interrupt Acknowledge) trong chu kú tr¶ lêi chÊp nhËn ng¾t. CLK T1 T2 T3 T4 T1 T1 T1 T2 T3 T4 ALE LOCK INTA N: KiÓu ng¾t AD0-AD7 Bus bÞ th¶ næi H×nh vÏ: Chu kú tr¶ lêi ng¾t cña 8088 Ng¾t mÒm: Khi CPU thùc hiÖn c¸c lÖnh ng¾t d¹ng INT N (lÖnh gäi ng¾t trong assembly) – trong ®ã N lµ sè hiÖu (kiÓu) ng¾t n»m trong kho¶ng 00h – FFh. Dùa vµo sè hiÖu ng¾t, theo c¸ch thiÕt kÕ mµ CPU sÏ t×m ®−îc ch−¬ng tr×nh con (phôc vô) ng¾t ®Ó thùc hiÖn th«ng qua b¶ng vector ng¾t (sÏ nãi trong phÇn sau). Ng¾t ngo¹i lÖ: §©y lµ c¸c ng¾t xuÊt hiÖn do c¸c lçi sinh ra trong qu¸ tr×nh ho¹t ®éng cña CPU. VÝ dô nh− chia cho 0, trµn khi tÝnh to¸n, – vµ mét sè lçi khi tÝnh to¸n víi sè thùc dÊu chÊm ®éng (trong c¸c bé vi xö lý tiªn tiÕn). C¸c yªu cÇu ng¾t, cuèi cïng còng dÉn ®Õn: CPU thùc hiÖn mét ®o¹n ch−¬ng tr×nh (ch−¬ng tr×nh con) – nã ®−îc coi nh− nh÷ng –®iÒu kiÖn cho rÏ nh¸nh– sù ho¹t ®éng cña CPU. C¸c yªu cÇu nµy ®−î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. §Ó ®−a sè hiÖu ng¾t vµo bus d÷ liÖu khi cã tÝn hiÖu yªu cÇu ng¾t t¸c ®éng vµo CPU (INTR hoÆc NMI) cña mét thiÕt bÞ ngo¹i vi nµo ®ã (®ay lµ ng¾t cøng), gi¶ thiÕt trong mét thêi ®iÓm nhÊt ®Þnh chØ cã mét yªu cÇu ng¾t IRQi (Interrupt ReQuest i) ®−îc t¸c ®éng vµ khi ®ã CPU sÏ tiÕp nhËn ®−îc yªu cÇu ng¾t vµ ®äc sè hiÖu ng¾t N. Ta cã thÓ sö dông s¬ ®å ®¬n gi¶n sau: A/D0 A/D1 D Bus A/D7 8088 OC1 74LS245 INTA +5V OC2 INTR NAND ... IRQ0 IRQ6 H×nh vÏ: Mét c¸ch ®¬n gi¶n ®Ó ®−a sè hiÖu ng¾t N vµo bus d÷ liÖu NguyÔn TiÕn Duy – Trung t©m Kü thuËt m¸y tÝnh – Bé m«n Kü thuËt m¸y tÝnh 93
  3. http://www.ebook.edu.vn Tr−êng ®¹i häc kü thuËt C«ng NghiÖp AD7 IRQ6 IRQ5 IRQ4 IRQ3 IRQ2 IRQ1 IRQ0 N 1 1 1 1 1 1 1 0 FEh (245) 1 1 1 1 1 1 0 1 FDh (253) 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) B¶ng quan hÖ gi÷a IRQi vµ sè hiÖu ng¾t N T¹i mét thêi ®iÓm nÕu cã 1 tÝn hiÖu yªu cÇu ng¾t IRQi nµo ®ã t¸c ®éng (møc thÊp – low) th× ®Çu ra cña m¹ch NAND sÏ cã xung yªu cÇu ng¾t ®Õn CPU. TÝn hiÖu IRQi ®−î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 nµy sÏ ®−îc CPU ®äc vµo khi nã ®−a tÝn hiÖu tr¶ lêi INTA (xung thø hai). Trong tr−êng hîp cã 2 hay nhiÒu h¬n c¸c yªu cÇu ng¾t t¸c ®éng th× víi m¹ch vÝ dô trªn kh«ng thÓ ®¸p øng ®−îc v× vìi mét xung yªu cÇu ng¾t nhËn ®−îc tõ ch©n INTR nh−ng sè hiÖu ng¾t th× kh«ng thuéc (kh«ng t−¬ng øng) yªu cÇu ng¾t nµo c¶! V× vËy cÇn cã sù xö lý tr−íc t×nh huèng ®ã. SÏ ®−îc nãi râ trong phÇn sau. b. §¸p øng cña CPU khi cã yªu cÇu ng¾t Khi cã yªu cÇu ng¾t víi sè hiÖu ng¾t N t¸c ®éng ®Õn ch©n tiÕp nhËn yªu cÇu ng¾t cña CPU vµ nÕu yªu cÇu ng¾t ®ã ®−îc chÊp nhËn (víi nh÷ng yªu cÇu ng¾t che ®−îc) th× CPU sÏ thùc hiÖn d·y c«ng viÖc sau: (a) SP SP-2; {SP} FR (*chØ ra ®Ønh míi cña Stack, cÊt thanh ghi cê vµo stack, trong ®ã {SP} lµ « nhí do SP l−u gi÷ ®Þa chØ (trá tíi)*) (b) IF 0; TF 0; (*cÊm c¸c ng¾t che ®−îc, ch¹y suèt*) (c) SP SP-2; {SP} CS; (*chØ ra ®Ønh míi cña Stack, cÊt ®Þa chØ segment cña ®Þa chØ trë vÒ vµo stack*) (d) SP SP-2; {SP} IP; (*chØ ra ®Ønh míi cña Stack, cÊt ®Þa chØ offset cña ®Þa chØ trë vÒ vµo stack*) (e) IP {N*4}; CS {N*4+2}; (*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 (sè hiÖu ng¾t N) t−¬ng øng trong b¶ng vector ng¾t*) (f) T¹i cuèi ch−¬ng tr×nh con phôc vô ng¾t, khi gÆp lÖnh IRET, CPU sÏ thùc hiÖn d·y c¸c c«ng viÖc trªn theo thø tù ng−îc l¹i, cô thÓ: • {SP} IP; SP SP+2 • {SP} CS; SP SP+2 • {SP} FR; SP SP+2 (*Bé vi xö lý quay l¹i thùc hiÖn ch−¬ng tr×nh chÝnh t¹i ®Þa chØ víi gi¸ trÞ cò vµ thanh ghi cê ®−îc lÊy ra tõ stakc*) 94 NguyÔn TiÕn Duy – Trung t©m Kü thuËt m¸y tÝnh – Bé m«n Kü thuËt m¸y tÝnh
  4. http://www.ebook.edu.vn Tr−êng ®¹i häc kü thuËt C«ng NghiÖp Ch−¬ng tr×nh hiÖn t¹i cña CPU ISR CPU tù: • CÊt FR LÖnh cÊt c¸c thanh ghi • Xo¸ IF, TF • CÊt CS, IP Yªu cÇu ng¾t • LÊy ®Þa chØ IR Th©n ISR CPU tù: • CÊt FR • Xo¸ IF, TF • CÊt CS, IP LÖnh lÊy c¸c thanh ghi • LÊy ®Þa chØ IR IRET H×nh vÏ: Minh ho¹ vÒ mÆt cÊu tróc ch−¬ng tr×nh cã ng¾t x¶y ra vµ sù liªn hÖ gi÷a ch−¬ng tr×nh chÝnh (CTC) vµ ch−¬ng tr×nh con phôc vô ng¾t (ISR) Trong thùc tÕ, c¸c ng¾t mÒm INT N ®· bao trïm c¸c lo¹i ng¾t kh¸c nhau bëi v× Intel ®· quy ®Þnh mét sè kiÓu ng¾t ®Æc biÖt ®−îc xÕp vµo ®Çu d·y ng¾t mÒm nh− sau: INT 0: Ng¾t mÒm do phÐp chia cho 0 g©y ra. • INT 1: Ng¾t mÒm ®Ó ch¹y tõng lÖnh víi tr−êng hîp cê TF=1. • 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Ø nµo ®ã. • INT 4: (HoÆc lÖnh INTO) lµ ng¾t mÒm øng víi tr−êng hîp trµn (OF=1). • C¸c kiÓu ng¾t kh¸c cßn l¹i ®−îc dµnh cho Intel vµ ng−êi sö dông (IBM kh«ng hoµn toµn tu©n thñ c¸c quy ®Þnh nµy khi chÕ t¹o c¸c m¸y tÝnh PC/XT, PC/AT): INT 5 – INT 1Fh: Dµnh riªng cho Intel trong c¸c bé vi xö lý cao cÊp. • INT 20h – INT FFh: Dµnh cho ng−êi sö dông (trong ®ã hÖ ®iÒu hµnh vµ • BIOS ®· sö dông mét phÇn). 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 ISR mµ ta cã thÓ tra (lÊy – hoÆc ®äc trùc tiÕp) trong b¶ng vector ng¾t. Intel quy ®Þnh b¶ng nµy n»m trong RAM b¾t ®Çu tõ ®Þa chØ 00000h vµ kÐo dµi 1 KB (kÝch th−íc nµy lµ v×: 8088 vµ 80x86 cã 256 kiÓu ng¾t, mçi kiÓu ng¾t øng víi mét vector ng¾t, mét vector ng¾t cÇn 4 byte ®Ó chøa ®Þa chØ ®Çy ®ñ cho CS vµ IP cña ch−¬ng tr×nh con phôc vô ng¾t, 2 byte ®Ó l−u CS, 2 byte kh¸c ®Ó l−u IP nªn: 256 (byte) x 4 = 1024 (byte) = 1 KB). B¶ng vector ng¾t t¹i 1 KB ®Çu tiªn c. Xö lý −u tiªn ng¾t Nh− ®· ®Ò cËp ®Õn, vÊn ®Ò trë nªn phøc t¹p lµ t¹i cïng mét thêi ®iÓm mµ cã nhiÒu tÝn hiÖu yªu cÇu ng¾t t¸c ®éng ®Õn CPU (thuéc c¸c kiÓu ng¾t kh¸c nhau). Khi ®ã CPU sÏ xö lý nh− thÕ nµo? Thùc hiÖn (phôc vô) ch−¬ng tr×nh con phôc vô ng¾t nµo? Thùc ra CPU xö lý c¸c yªu cÇu ng¾t theo møc −u tiªn (theo thiÕt kÕ) víi nguyªn t¾c ng¾t nµo 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 thiÕt kÕ vµ 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: NguyÔn TiÕn Duy – Trung t©m Kü thuËt m¸y tÝnh – Bé m«n Kü thuËt m¸y tÝnh 95
  5. http://www.ebook.edu.vn Tr−êng ®¹i häc kü thuËt C«ng NghiÖp C¸c ng¾t Møc −u tiªn Ng¾t néi bé: INT 0 (phÐp chia 0, INT N, INTO 0: Cao nhÊt Ng¾t NMI 1 Ng¾t INTR 2 Ng¾t ®Ó ch¹y tõng lÖnh (INT 1) 3: ThÊp nhÊt §Ó thÊy râ sù ho¹t ®éng cña CPU trong c¬ chÕ ng¾t −u tiªn nµy, ta cã thÓ lÊy m«tj vÝ dô cô thÓ nh− sau: Gi¶ sö t¹i mét thêi ®iÓm nµo ®ã, 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è chia b»ng 0, tai thêi ®iÓm nµy CPU còng nhËn ®−îc yªu cÇu ng¾t tõ ®Çu bµo INTR. Theo thø tù −u tiªn ngÇm ®Þnh trong viÖc xö lý ng¾t cña 8088 th× INT o cã møc −u tiªn cao h¬n ng¾t che ®−îc INTR nªn CPU sÏ thùc hiÖn ISR t−¬ng øng INT 0 ®Ó ®¸p øng víi lçi ®Æc biÖt do phÐp chia 0 g©y ra vµ cê IF ®−îc xo¸ vÒ 0 yªu cÇu ng¾t INTR sÏ (tù ®éng) bÞ cÊm cho tíi khi ISR t−¬ng øng INT 0 kÕt thóc vµ trë vÒ nhê lÖnh IRET, cê IF ®−îc kh«i phôc trë l¹i (toµn bé thanh ghi cê). TiÕp ®ã CPU sÏ ®¸p øng yªu cÇu ng¾t INTR b»ng c¸ch thùc hiÖn ISR t−¬ng øng INTR ®ã. d. 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 dùa trªn c¬ chÕ • ng¾t, – BÒ 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 nu«i (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 yª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 96 NguyÔn TiÕn Duy – Trung t©m Kü thuËt m¸y tÝnh – Bé m«n Kü thuËt m¸y tÝnh
  6. http://www.ebook.edu.vn Tr−êng ®¹i häc kü thuËt C«ng NghiÖp 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î). INT INTA D7-D0 §Öm Logic ®iÒu khiÓn bus IRQ0 RD IRQ1 Logic WR Ghi/®äc A0 ISR PR IRR CS IRQ7 Cas0 §Öm nèi tÇng vµ Cas1 so s¸nh IMR Cas2 (Interrupt Mask Register) SP/EN Internal bus H×nh vÏ: S¬ ®å khèi vµ s¬ ®å ®ãng vá DIP cña PIC 8259A 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 yª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. NguyÔn TiÕn Duy – Trung t©m Kü thuËt m¸y tÝnh – Bé m«n Kü thuËt m¸y tÝnh 97
  7. http://www.ebook.edu.vn Tr−êng ®¹i häc kü thuËt C«ng NghiÖp (3) ISR (In Service Register – Thanh ghi ng¾t ®ang ®−îc phôc vô): Thanh ghi nµy ghi nhí yªu cÇu ng¾t nµo ®ang ®−îc phôc vô trong sè c¸c yªu cÇu ng¾t IRQi. Víi mçi IRQi ®ang ®−îc phôc vô th× bit thø i t−¬ng øng víi nã trong ISR sÏ ®−îc lËp (=1). (4) PR (Priority Resolver – Bé xö lý −u tiªn): §©y lµ m¹ch xö lý −u tiªn ng¾t dùa trªn néi dung 3 thanh ghi: IRR, ISR vµ IMR ®Ó quyÕt ®Þnh mét yªu cÇu ng¾t IRQi nµo ®ã cã ®−îc göi tíi CPU 8088 th«ng qua ch©n INT cña khèi logic ®iÒu khiÓn t¹i (mét) thêi ®iÓm hiÖn t¹i hay b¾t nã ph¶i chê. (5) Control Logic – Logic ®iÒu khiÓn: Khèi nµy cã nhiÖm vô göi c¸c yªu cÇu ng¾t IRQi tíi ch©n INTR cña CPU 8088 khi cã tÝn hiÖu t¹i c¸c lèi vµo IRQi 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 sè hiÖu ng¾t N trªn bus d÷ liÖu (t¹i xung INTA thø hai). (6) §Öm bus d÷ liÖu: Dïng ®Ó phèi ghÐp 8259A víi bus d÷ liÖu cña CPU. (7) 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. (8) Khèi ®Öm nèi tÇng vµ so s¸nh: Ghi nhí vµ so s¸nh c¸c sè hiÖu cña c¸c m¹ch 8259A cã mÆt trong hÖ thèng vi xö lý. C¸c tÝn hiÖu cña PIC 8259: Mét sè tÝn hiÖu trong m¹ch PIC 8259A cã tªn gäi gièng nh− c¸c tÝn hiÖu tiªu chuÈn cña hÖ vi xö lý 8088 (h×nh vÏ – s¬ ®å khèi), ngoµi ra cßn cã mét sè tÝn hiÖu ®Æc biÖt sau: Cas0 – Cas2 [I/O]: §©y lµ ®Çu vµo ®èi víi m¹ch PIC thî vµ lµ ®Çu ra ®èi víi m¹ch PIC chñ. Chóng ®−îc sö dông khi nèi tÇng ®Ó t¨ng thªm sè l−îng c¸c yªu cÇu ng¾t cÇn xö lý. SP/EN [I/O]: Khi 8259 lµm viÖc ë chÕ ®é kh«ng cã ®Öm bus d÷ liÖu th× ®©y lµ tÝn hiÖu vµo ®Ó lËp tr×nh cho m¹ch 8259 thµnh m¹ch thî (SP = 0) hoÆc m¹ch chñ (SP =1). Khi 8259 lµm viÖc trong hÖ vi xö lý ë chÕ ®é cã ®Öm bus d÷ liÖu th× ®©y lµ tÝn hiÖu EN dïng ®Ó më ®Öm bus d÷ liÖu cho 8259 (vµ 8088) th«ng vµo bus d÷ liÖu cña hÖ thèng. Lóc nµy viÖc ®Þnh nghÜa m¹ch 8259 lµ m¹ch chñ hay m¹ch thî ph¶i thùc hiÖn th«ng qua tõ ®iÒu khiÓn ICW4 (sÏ nãi kü ë phÇn sau). INT [O]: Lµ tÝn hiÖu yªu cÇu ng¾t ®Õn ch©n INTR cña 8088. INTA [I]: Nèi víi ch©n b¸o chÊp nhËn ng¾t cña CPU. 8259 sö dông xung INTA thø nhÊt ph¸t ra tõ 8088 ®Ó thùc hiÖn mét sè thao t¸c néi bé (xö lý −u tiªn), tuú thuéc vµo mode ho¹t ®éng mµ nã ®−îc lËp tr×nh. Khi nhËn ®−îc xung INTA thø hai tõ 8088, 8259 sÏ xuÊt sè hiÖu ng¾t N t−¬ng øng yªu cÇu ng¾t IRQi lªn bus d÷ liÖu. Sè hiÖu ng¾t nµy ®−îc x¸c ®Þnh: thø nhÊt lµ IRQi, thø hai lµ sè hiÖu ng¾t mµ ng−êi lËp tr×nh viÕt cho 8259 khi khëi ®éng nã. RD/WR [I]: C¸c tÝn hiÖu ®iÒu khiÓn ®äc/ghi sÏ ®iÒu khiÓn c¸c qu¸ tr×nh truyÒn, nhËn tõ ®iÒu khiÓn vµ tõ tr¹ng th¸i gi÷a 8088 vµ 8259 th«ng qua bus d÷ liÖu khi CS ë møc thÊp. 98 NguyÔn TiÕn Duy – Trung t©m Kü thuËt m¸y tÝnh – Bé m«n Kü thuËt m¸y tÝnh
  8. http://www.ebook.edu.vn Tr−êng ®¹i häc kü thuËt C«ng NghiÖp D7-D0 IRQ0 IRQ1 RD Bus hÖ WR . PIC 8259 thèng cña A0 . 8088 ë . INT chÕ ®é INTA MIN IRQ7 A7-A1 CS SP/EN IO/M +5V H×nh vÏ: PIC 8259 lµm viÖc ®éc lËp (m¹ch chñ ë chÕ ®é kh«ng ®Öm bus) nèi víi 8088 lµm viÖc ë chÕ ®é MIN th«ng qua bus hÖ thèng, ®Þa chØ m¹ch PIC 8259A t¹i 0FEh – 0FFh. ë s¬ ®å nµy ta thÊy ch©n SP/EN cña 8259 ®−îc nèi víi +5V, CS ®−îc lÊy tõ m¹ch gi¶i m· ®Þa chØ. V× chØ cã mét m¹ch PIC trong hÖ thèng nªn cã thÓ xö lý ®−îc 8 yªu cÇu ng¾t ®ång thêi: IRQ0 – IRQ7. +5V RES AEN2 RDY1 A19-A0 3x‘373 CLK 8284 OC READY G Reset F/C CSYNC ‘245 AD7-AD0 DIR G A19-A15 +5V Reset AD7-AD0 READY CLK CS A0 8088 D7-D0 IRQ0 CEN AEN +5V S2-S0 IRQ1 ALE 8259 8288 INTR DT/R DT/R DEN SP/EN IORDC RD IRQ7 CLK IOWDC WR Cas0 INTA Cas1 INT Cas2 H×nh vÏ: 8259 chñ (lµm viÖc ®éc lËp) nèi víi 8088 ë chÕ ®é MAX NÕu hÖ vi xö lý 8088 lµm 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 hÖ thèng. M¹ch PIC 8259 ph¶i lµm viÖc ë chÕ ®é cã ®Öm bus ®Ó nèi ®−îc víi bus hÖ thèng nµy. Theo h×nh vÏ vÝ dô (8088 chÕ ®é MAX nèi víi PIC 8259) ta thÊy tÝn hiÖu ®Þa chØ cho 8259 ®−îc lÊy ra tõ bus hÖ thèng (chø kh«ng lÊy trùc tiÕp tõ 8088), trong khi ®ã tÝn hiÖu d÷ liÖu cña nã ®−îc nèi víi bus d÷ liÖu cña bé vi xö lý vµ tõ ®ã ®−îc th«ng qua c¸c ®Öm ®Ó nèi vµo bus hÖ thèng. NguyÔn TiÕn Duy – Trung t©m Kü thuËt m¸y tÝnh – Bé m«n Kü thuËt m¸y tÝnh 99
  9. http://www.ebook.edu.vn Tr−êng ®¹i häc kü thuËt C«ng NghiÖp LËp tr×nh cho PIC 8259 Vi m¹ch ®iÒu khiÓn ng¾t −u tiªn PIC 8259A lµ vi m¹ch lËp tr×nh cì lín lËp tr×nh ®−îc. §Ó m¹ch PIC 8259 ho¹t ®éng ®−îc theo yªu cÇu, sau khi bËt nguån cÊp ®iÖn cho nã, PIC cÇn ph¶i ®−îc lËp tr×nh (thiÕt lËp chÕ ®é ho¹t ®éng) b»ng c¸ch ghi vµo 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 (Initialization Control Word) vµ tiÕp sau ®ã lµ c¸c tõ ®iÒu khiÓn ho¹t ®éng OCW (Operation Control Word). C¸c tõ ®iÒu khiÓn khëi ®Çu dïng ®Ó t¹o nªn c¸c kiÓu lµm viÖc c¬ b¶n ho PIC, cßn c¸c tõ ®iÒu khiÓn ho¹t ®éng sÏ quyÕt ®Þnh c¸ch ICW1 thøc ho¹t ®éng cô thÓ cña PIC. Tõ ®iÒu khiÓn khëi ®Çu cÇn ®−îc ghi tr−íc khi PIC lµm viÖc (tøc lµ tr−íc khi PIC nhËn ®−îc c¸c yªu cÇu ng¾t ICW2 ®Ó xö lý) cßn tõ ®iÒu khiÓn ho¹t ®éng sÏ ®−îc ghi khi ta muèn thay ®æi (c¸ch thøc) ho¹t ®éng F cña PIC 8259. ICW1(2)=0? Cô thÓ c¸c tõ ®iÒu khiÓn nãi trªn nh− sau: T ICW3 i, C¸c tõ ®iÒu khiÓn khëi ®Çu: PIC 8259 cã tÊt c¶ 4 tõ ®iÒu khiÓn khëi ®Çu F lµ ICW1 – ICW4. Trong khi lËp tr×nh cho 8259 ICW1(1)=1? kh«ng ph¶i lóc nµo ta còng cÇn dïng c¶ 4 tõ T ®iÒu khiÓn khëi ®Çu ®ã (tøc lµ ghi tÊt c¶ chóng). Tuú theo c¸c tr−êng hîp øng dông cô thÓ mµ cã ICW4 lóc ta cÇn ghi liªn tiÕp c¶ 4 tõ ®iÒu khiÓn khëi ®Çu nh−ng cã lóc ta chØ cÇn ghi 2 hoÆc 3 tõ ®iÒu S½n sµng nhËn khiÓn khëi ®Çu (trong sè ®ã) lµ ®ñ. Thø tù vµ c¸c yªu cÇu ng¾t ®iÒu kiÖn ghi c¸c tõ ®iÒu khiÓn khëi ®Çu ICW vµo 8259 ®−îc thùc hiÖn theo l−u ®å sau: H×nh vÐ: L−u ®å ghi c¸c tõ ®iÒu khiÓn khëi ®Çu cho PIC 8259 ICW1: Nh− ®· biÕt, PIC 8259 chØ cã mét ®−êng ®Þa chØ vµo (A0), trong khi ®ã nã cã rÊt nhiÒu thanh ghi ®iÒu khiÓn vµ tr¹ng th¸i t−¬ng ®−¬ng (t−¬ng øng) víi c¸c cæng. Tuy nhiªn ®Ó ph©n biÖt c¸c thanh ghi trong ®ã (trong 8259) th× ®Çu vµo ®Þa chØ A0 vµ thø tù ghi sÏ gióp ta ph©n biÖt ra c¸ thanh ghi kh¸c nhau bªn trong 8259 ®Ó 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 (ghi) ®−a vµo thanh ghi cã ®Þa chØ ch½n trong PIC, cßn khi A0 = 1 th× c¸c tõ ®iÒu khiÓn ICW2, ICW3 vµ ICW4 sÏ ®−îc (ghi) ®−a vµo c¸c thanh ghi cã ®Þa chØ lÎ trong PIC. Khi giíi thiÖu tõng thanh ghi cô thÓ víi ý nghÜa c¸c bit d÷ liÖu, ta cßn ghi râ thªm c¶ gi¸ trÞ A0 t−¬ng øng cho mçi ICWi ®ã. Bit D0 cña ICW1 (IC4) quyÕt ®Þnh 8259 sÏ ®−îc nèi víi hÖ vi xö lý nµo. §Ó lµm viÖc víi hÖ 16, 32 bit (8088/x86) th× trong ICW1 nhÊt thiÕt ph¶i cã IC4 = 1 (tøc lµ ta lu«n cÇn ®Õn tõ ®iÒu khiÓn khëi ®Çu ICW4), cßn ®èi víi hÖ vi xö lý 8 bit (nh− khi xö dông 8080/8085) th× ta ph¶i cã IC4 = 0 (vµ nh− vËy c¸c bit cña ICW4 sÏ vÞ xo¸ vÒ 0). 100 guyÔn TiÕn Duy – Trung t©m Kü thuËt m¸y tÝnh – Bé m«n Kü thuËt m¸y tÝnh N
  10. http://www.ebook.edu.vn Tr−êng ®¹i häc kü thuËt C«ng NghiÖp A0 D7 D6 D5 D4 D3 D2 D1 D0 0 x x x 1 LTIM ADI SNGL IC4 • 1: CÇn ICW4 • 0: Bá ICW4 §Þa chØ cña vector ng¾t Single (ch−¬ng tr×nh con), kh«ng • 1: ChØ cã 1 m¹ch PIC cÇn ®Ó ý ®èi víi hÖ 16-32 bit • 0: Cã nhiÒu m¹ch PIC C¸ch t¸c ®éng cña xung yªu cÇu ng¾t: Kho¶ng c¸ch gi÷a c¸c vector ng¾t: • 1: T¸c ®éng theo møc d−¬ng • 1: C¸ch 4 byte (8088/x86) • 0: T¸c ®éng theo s−ên d−¬ng • 0: C¸ch 8 byte (8080/8085) H×nh vÏ: Thanh ghi khëi ®Çu ICW1 C¸c bit cßn l¹i cña ICW1 ®Þnh nghÜa c¸ch thøc lµm 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 cÇu ng¾t IRQi cña 8259 vµ viÖc bè trÝ c¸c m¹ch PIC 8259 kh¸c trong hÖ lµm viÖc ®¬n lÎ hay theo chÕ ®é nèi tÇng. Khi sö dông 8259 trong hÖ 16 – 32 bit (8088/x86), bit D2 (ADI) cã thÓ nhËn c¸c gi¸ trÞ tuú ý, nã chØ cã ý nghÜa khi lµm viÖc víi hÖ 8 bit nªn th−êng ®−îc chän lµ 0. NÕu chØ sö dông 1 vi m¹ch PIC 8259 trong hÖ, ®Æt bit D1 = 1 (SNGL (S) = 1). Cßn nÕu cã nhiÒu m¹ch PIC nèi tÇng trong hÖ thèng th× bit D1 cña ICW1 trong c¸c m¹ch PIC ph¶i ®−îc xo¸ vÒ 0. Bit D3 (LTIM) ®−îc dïng ®Ó x¸c lËp trigger theo møc hay trigger theo s−ên xung. Trong chÕ ®é trigger theo møc, ch−¬ng tr×nh ng¾t (yªu cÇu ng¾t) ®−îc yªu cÇu mçi khi xuÊt hiÖn møc ®iÖn ¸p cao trªn lèi vµo yªu cÇu ng¾t IRQ. Trong chÕ ®é trigger theo s−ên xung, tÝn hiÖu yªu cÇu ng¾t trªn c¸c lèi vµo IRQ ph¶i ®−îc chuyÓn tõ møc thÊp lªn møc cao vµ duy tr× ë møc cao cho ®Õn khi ch−¬ng tr×nh con phôc vô ng¾t thùc hiÖn. V× vËy cã thÓ nãi bit nµy quy ®Þnh c¸ch thøc t¸c ®éng cña xung yªu cÇu ng¾t lµ theo møc hay theo s−ên (d−¬ng). Khi ho¹t ®éng trong hÖ 16 – 32 bit th× kh«ng cÇn quan t©m tíi c¸c bit D5, D6 vµ D7 do ®ã th−êng ®Æt chóng b»ng 0 cho ®¬n gi¶n. Ngµy nay, th−êng sö dông bé vi xö lý 8088 hoÆc cao h¬n khi x©y dùng c¸c hÖ vi xö lý nªn cã thÓ sö dông gi¸ trÞ: 0000 1010 ®Ó ghi cho ICW1. ICW2: Trong mét hÖ vi xö lý 16 – 32 bit, tõ ®iÒu A0 D7 D6 D5 D4 D3 D2 D1 D0 khiÓn khëi ®Çu nµy ®−îc dïng ®Ó (cho phÐp) 1 T7 T6 T5 T4 T3 T2 T1 T0 chän kiÓu ng¾t (sè hiÖu ng¾t N) t−¬ng øng víi c¸c bit T7 – T3 cho c¸c ®Çu vµo yªu cÇu ng¾t. §Ó chän kiÓu (sè hiÖu) ng¾t øng víi m· cña yªu cÇu C¸c bit T2 – T0 ®−îc 8259 tù ®éng g¸n gi¸ trÞ cho m¹ch PIC ng¾t IRQ0-IRQ7 tuú theo ®Çu vµo yªu cÇu ng¾t IRQi cô thÓ. H×nh vÏ: Thanh ghi khëi ®Çu ICW2 Thùc chÊt chóng cã ý nghÜa nh− sau: Toµn bé c¸c bit cña ICW2 sÏ b¸o cho 8259 biÕt sè hiÖu ng¾t ph¶i göi (®i) ra bus d÷ liÖu ®Ó ®¸p øng tÝn hiÖu yªu cÇu ng¾t IRQ0. §Ó ®¸p øng c¸c yªu cÇu ng¾t kh¸c (IRQ1 – IRQ7), 8259 sÏ tù ®éng céng chØ sè lèi vµo víi gi¸ trÞ c¬ së nµy (–kh«ng trõ–) vµ göi kÕt qu¶ cho 8088 dïng lµm sè hiÖu ng¾t cho c¸c tÝn hiÖu yªu cÇu ng¾t ®ã. Do c¸c ng¾t cã sè hiÖu ng¾t tõ 0 – 31 hoÆc lµ c¸c ng¾t chuyªn dông hoÆc lµ ®Ó dù tr÷ nªn sè 32 (20h) lµ sè ng¾t thÊp nhÊt cho c¸c øng dông më réng cña ng−êi sö dông. Gi¶ sö, cho ICW2 = NguyÔn TiÕn Duy – Trung t©m Kü thuËt m¸y tÝnh – Bé m«n Kü thuËt m¸y tÝnh 101
  11. http://www.ebook.edu.vn Tr−êng ®¹i häc kü thuËt C«ng NghiÖp 0010 0000 = 32d, 8259 sÏ göi sè hiÖu ng¾t nµy lªn bus d÷ liÖu cho 8088 lµm sè hiÖu ng¾t cho IRQ0. Víi tÝn hiÖu yªu cÇu ng¾t trªn IRQ1, 8259 sÏ g¸n cho sè hiÖu ng¾t 0010 0001 = 33d (tiÕp tôc), t−¬ng tù nh− vËy cã: IRQ2 = 0010 0010 = 34d, IRQ3 = 0010 0011 = 34d, – Trong bÊt kú ICW2 nµo n¹p vµo 8259, 3 bit thÊp nhÊt lu«n lu«n b»ng 0 v× 8259 sÏ tù ®éng cÊp ph¸t c¸c bit nµy sao cho t−¬ng øng víi chØ sè lèi vµo yªu cÇu ng¾t IRQi. ICW3: A0 D7 D6 D5 D4 D3 D2 D1 D0 A0 D7 D6 D5 D4 D3 D2 D1 D0 1 1 0 0 0 0 0 ID2 ID1 ID0 1: §Çu vµo IRQi nèi víi m¹ch 8259 thî (tí) M· ho¸ sè hiÖu ID cña m¹ch thî 0: §Çu vµo IRQi kh«ng nèi víi m¹ch 8259 thî 0-7 nèi vµo IRQ0-IRQ7 ICW2 cña m¹ch chñ ICW2 cña m¹ch thî H×nh vÏ: Thanh ghi khëi ®Çu ICW2 Tõ ®iÒu khiÓn khëi ®Çu nµy chØ sö dông ®Õn khi bit D2 (SNGL – S) thuéc tõ ®iÒu khiÓn khëi ®Çu ICW1 cã gi¸ trÞ = 0, cã nghÜa lµ trong hÖ thèng cã nhiÒu m¹ch PIC 8259 lµm viÖc trong chÕ ®é nèi tÇng (chñ – tí). ChÝnh v× vËy mµ tån t¹i (cã) 2 lo¹i ICW3: ICW3 cho m¹ch 8259 chñ: tõ ®iÒu khiÓn nµy ®Ó chØ ra ®Çu vµo yªu cÇu ng¾t IRQi nµo cña nã cã (tÝn hiÖu INT cña) m¹ch tí nèi vµo. CÇn ph¶i ghi ICW3 vµo m¹ch chñ ®Ó nã biÕt víi c¸c lèi vµo IRQ th× ph¶i xuÊt ID cña c¸c vi m¹ch 8259 tí lªn c¸c ®−êng Cas0 – Cas2. ICW3 cho m¹ch 8259 tí: dïng lµm ph−¬ng tiÖn ®Ó c¸c m¹ch tí nµy ®−îc nhËn biÕt, v× vËy tõ ®iÒu khiÓn nµy (–ph¶i–) chøa m· sè i øng víi ®Çu vµo IRQi cña m¹ch chñ mµ m¹ch 8259 tí ®· nèi vµo. M· sè i (chÝnh lµ ID) ®−îc sö dông khi yªu cÇu ng¾t tõ 8259 tí. Khi vi m¹ch 8259 chñ nhËn mét yªu cÇu ng¾t tõ m¹ch tí nµo ®ã – nã sÏ biÕt ®−îc yªu cÇu ng¾t ®ã lµ t m¹ch tí nµo th«ng qua IRQ t−¬ng øng. Khi yªu cÇu ng¾t ®ã ®· ®−îc chÊp nhËn, m¹ch chñ sÏ yªu cÇu m¹ch tí ®ã xuÊt sè hiÖu ng¾t lªn bus d÷ liÖu b»ng c¸ch nã ®−a sè ID ra c¸c ch©n Cas0 – Cas 2, vi m¹ch 8259 tí sÏ so s¸nh ID cña nã víi sè ID trªn Cas0 – Cas2, vi m¹ch tí nµo thÊy trïng (cã nghÜa lµ nã ®· nhËn ra ID cña nã) th× nã sÏ ®−a sè hiÖu ng¾t lªn bus d÷ liÖu (Sù xö lý −u tiªn ë ®©y cã nghÜa lµ: T¹i mét thêi ®iÓm cã thÓ cã nhiÒu yªu cÇu ng¾t (tõ c¸c thiÕt bÞ ngo¹i vi) göi tíi m¹ch tí. Tr−íc hÕt chóng cïng göi c¸c yªu cÇu ng¾t tíi m¹ch chñ vµ chê xung INTA. NhËn ®−îc c¸c yªu cÇu ng¾t tõ c¸c m¹ch tí, m¹ch chñ còng göi xung yªu cÇu ng¾t qua ch©n INT tíi 8088. NÕu yªu cÇu ng¾t nµy ®−îc chÊp nhËn th× 8088 sÏ göi xung chÊp nhËn ng¾t thø nhÊt INTA tíi tÊt c¶ c¸c m¹ch 8259 (ch©n nµy t¹i c¸c m¹ch PIC chñ vµ tí ®−îc nèi chung). NhËn ®−îc xung INTA nµy, tÊt c¶ c¸c m¹ch PIC ®Òu cã nh÷ng xö lý −u tiªn ®Ó chuÈn bÞ ®−a sè hiÖu ng¾t (cña ng¾t cã chøa møc −u tiªn cao nhÊt) lªn bus d÷ liÖu khi cã xung INTA thø hai. Nh−ng khi cã xung INTA thø hai, c¸c m¹ch tí cßn ph¶i xem xÐt xem cã ®−îc sù –cho phÐp– tõ m¹ch chñ hay kh«ng th«ng qua viÖc so s¸nh ID cña nã víi ID cña m¹ch chñ –chØ ®Þnh– qua c¸c ch©n Cas0 – Cas2. Sè hiÖu ID nµy trïng víi mét trong nh÷ng chØ sè i cña IRQi trªn m¹ch chñ mµ tr−íc ®ã cã tÝn hiÖu yªu cÇu ng¾t tõ m¹ch tí göi ®Õn. Nh− vËy khi xung INTA thø hai xuÊt hiÖn th× sè hiÖu ng¾t (cña ng¾t nµo ®ã) tõ m¹ch thî ®−îc chÊp nhËn nµo ®ã sÏ ®−îc ®−a lªn bus d÷ liÖu ®Ó 8088 ®äc ®−îc. 102 guyÔn TiÕn Duy – Trung t©m Kü thuËt m¸y tÝnh – Bé m«n Kü thuËt m¸y tÝnh N
  12. http://www.ebook.edu.vn Tr−êng ®¹i häc kü thuËt C«ng NghiÖp VÝ dô: Trong mét hÖ INTA From 8088 vi xö lý ta cã mét m¹ch PIC 8259A chñ vµ 2 m¹ch INT INTA To 8088 8259A thî nèi vµo ch©n 8259 thî1 IRQ0 vµ IRQ2 cña m¹ch chñ. T×m gi¸ trÞ c¸c tõ ®iÒu 8259 chñ khiÓn khëi ®Çu ICW3 ®Ó Cas0 Cas1 g¸n cho c¸c m¹ch PIC. Cas2 Gi¶i: Cas0 Cas1 M¹ch chñ: ICW3 = Cas2 0000 0101b = 05h INTA M¹ch thî 1 (nèi vµo INT IRQ0 cña m¹ch chñ): ICW3 = 0000 0000b = 00h 8259 thî2 M¹ch thî 2 (nèi vµo IRQ2 cña m¹ch chñ): Cas0 ICW3 = 0000 0010b = 02h Cas1 Cas2 H×nh vÏ: S¬ ®å theo ®Çu bµi ICW4: A0 D7 D6 D5 D4 D3 D2 D1 D0 1 0 0 0 SFNM BUF M/S AEOI mPM • 1: Mode 8088/x86 • 0: Mode MCS, 8080/8085 • 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 1: EOI tù ®éng ®Æc biÖt (chÕ ®é kh¸c) • 0x: Mode kh«ng ®Öm • 10: 8259 thî – mode ®Öm • 11: 8259 chñ – mode ®Öm H×nh vÏ: Thanh ghi khëi ®Çu 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ã NguyÔn TiÕn Duy – Trung t©m Kü thuËt m¸y tÝnh – Bé m«n Kü thuËt m¸y tÝnh 103
  13. http://www.ebook.edu.vn Tr−êng ®¹i häc kü thuËt C«ng NghiÖp 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¹ A0 D7 D6 D5 D4 D3 D2 D1 D0 vµo thanh ghi mÆt n¹ ng¾t IMR. Khi mét bit 1 M7 M6 M5 M4 M3 M2 M1 M0 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Þ MÆt n¹ ng¾t t¹i c¸c yªu cÇu ng¾t che). Tõ ®iÒu khiÓn nµy ph¶i ®−îc (ghi) 1: Cã mÆt n¹ (yªu cÇu ng¾t t−¬ng øng bÞ che) 0: Kh«ng cã mÆt n¹ (yªu cÇu ng¾t t−¬ng øng ®−îc nhËn biÕt) ®−a ®Õn 8259 ngay sau khi c¸c tõ ®iÒu khiÓn khëi ®Çu ICWi ®−îc ghi vµo 8259 ®Ó H×nh vÏ: Thanh ghi ho¹t ®éng OCW1 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). 104 guyÔn TiÕn Duy – Trung t©m Kü thuËt m¸y tÝnh – Bé m«n Kü thuËt m¸y tÝnh N
  14. http://www.ebook.edu.vn Tr−êng ®¹i häc kü thuËt C«ng NghiÖp OCW2: A0 D7 D6 D5 D4 D3 D2 D1 D0 0 R SL EOI 0 0 L2 L1 L0 M· ho¸ møc −u tiªn ng¾t bÞ t¸c ®éng 000: møc 0 001: møc 1 ... 111: møc 7 R SL EOI Trong ®ã: (*): dïng tæ hîp L2L1L0 ý nghÜa 0 0 1 LÖnh EOI th−êng KÕt thóc ng¾t (EOI) 0 1 1 LÖnh EOI chØ ®Ých danh (*) 1 0 1 §æi møc −u tiªn khi cã EOI th−êng §æi møc −u tiªn 1 0 0 LËp chÕ ®é quay khi cã EOI tù ®éng tù ®éng (quay vßng) 0 0 0 Xo¸ chÕ ®é quay khi cã EOI tù ®éng 1 1 1 §æi møc −u tiªn khi cã EOI chØ ®Ých danh (*) §æi møc −u tiªn ®Ých danh (®Æc biÖt) 1 1 0 LÖnh lËp møc −u tiªn (*) 0 1 0 Kh«ng lµm g× H×nh vÏ: Thanh ghi ho¹t ®éng OCW2 C¸c bit: R, SL vµ EOI (theo b¶ng) phèi hîp nhau cho phÐp chän ra c¸ch thøc kÕt thóc yªu cÇu ng¾t kh¸c nhau. Trong ®ã, mét vµi c¸ch kÕt thóc yªu cÇu ng¾t cßn t¸c ®éng tíi c¸c yªu cÇu ng¾t ®−îc chØ ®Ých danh víi møc −u tiªn ®−îc m· ho¸ bëi 3 bit L2, L1, L0 (L2L1L0). Mét sè chÕ ®é lµm viÖc cña 8259: (a) ChÕ ®é −u tiªn cè ®Þnh: §©y lµ chÕ ®é lµm viÖc ngÇm ®Þnh cña 8259 sau khi nã ®· ®−îc n¹p c¸c tõ ®iÒu khiÓn khëi ®Çu. Trong chÕ ®é nµy, c¸c ®Çu vµo yªu cÇu ng¾t IRQ7 – IRQ0 ®−îc g¸n cho c¸c møc −u tiªn cè ®Þnh. Cô thÓ: IRQ0 ®−îc g¸n møc −u tiªn cao nhÊt, – IRQ7 ®−îc g¸n møc −u tiªn thÊp nhÊt. Thø tù møc −u tiªn nµy ®−îc gi÷ cè ®Þnh (kh«ng thay ®æi) cho ®Õn khi m¹ch 8259 ®−îc lËp tr×nh kh¸c ®i th«ng qua viÖc ghi tõ ®iÒu khiÓn ho¹t ®éng OCW2. 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 cã møc −u tiªn cao h¬n nµo ®ã cã thÓ ng¾t c¸c yªu cÇu ng¾t cã møc −u tiªn thÊp h¬n. (b) ChÕ ®é quay møc −u tiªn tù ®éng (−u tiªn lu©n phiªn): ë chÕ ®é nµy, sau khi mét yªu cÇu ng¾t nµo ®ã ®−îc phôc vô xong, 8259 sÏ xo¸ bit t−¬ng øng cña nã trong thanh ghi ISR vµ g¸n cho ®Çu vµo cña nã (IRQ) møc −u tiªn thÊp nhÊt ®Ó t¹o ®iÒu kiÖn cho c¸c yªu cÇu ng¾t kh¸c (víi møc −u tiªn thÊp) cã c¬ héi (thêi c¬) ®−îc phôc vô. (c) ChÕ ®é quay (®æi) møc −u tiªn chØ ®Ých danh: ë chÕ ®é nµy ta cÇn chØ râ (chØ ®Ých danh) ®Çu vµo yªu cÇu ng¾t IRQi nµo víi i = L2L1L0 ®−îc g¸n møc −u tiªn thÊp nhÊt, ®Çu vµo IRQi+1 sÏ ®−îc tù ®éng g¸n møc −u tiªn cao nhÊt. §ã lµ 3 chÕ ®é lµm viÖc tiªu biÓu cña 8259. Trªn c¬ së ®ã, nh×n l¹i sù phèi hîp gi÷a c¸c bit R, SL, EOI nh− thÕ nµo ®Ó t¹o ra c¸c lÖnh quy ®Þnh c¸c c¸ch thøc kÕt thóc yªu cÇu ng¾t cho c¸c chÕ ®é lµm viÖc kh¸c nhau nh− ®· nãi qua. (1) KÕt thóc yªu cÇu ng¾t th−êng: Trong ch−¬ng tr×nh con phôc vô ng¾t ph¶i cã lÖnh EOI ®Æt tr−íc lÖnh trë vÒ IRET cho 8259. M¹ch 8259 sÏ x¸c ®Þnh yªu cÇu ng¾t IRQi võa ®−îc phôc vô vµ xo¸ bit ISRi t−¬ng øng cña nã ®Ó t¹o NguyÔn TiÕn Duy – Trung t©m Kü thuËt m¸y tÝnh – Bé m«n Kü thuËt m¸y tÝnh 105
  15. http://www.ebook.edu.vn Tr−êng ®¹i häc kü thuËt C«ng NghiÖp ®iÒu kiÖn cho chÝnh yªu cÇu ng¾t nµy hoÆc c¸c ng¾t cã møc −u tiªn thÊp h¬n cã thÓ ®−îc t¸c ®éng (phôc vô). (2) KÕt thóc yªu cÇu ng¾t chØ ®Ých danh: Trong ch−¬ng tr×nh con phôc vô ng¾t ph¶i cã lÖnh EOI chØ ®Ých danh ®Æt tr−íc lÖnh trë vÒ IRET cho 8259. M¹ch 8259 sÏ xo¸ ®óng bit ISRi (i = L2L1L0) ®Ó t¹o ®iÒu kiÖn cho chÝnh yªu cÇu ng¾t nµy hoÆc c¸c yªu cÇu ng¾t cã møc −u tiªn thÊp h¬n cã thÓ ®−îc t¸c ®éng. (3) Quay (®æi) møc −u tiªn khi kÕt thóc yªu cÇu ng¾t th−êng: Trong ch−¬ng tr×nh con phôc vô ng¾t ph¶i cã lÖnh EOI ®Æt tr−íc lÖnh trë vÒ IRET cho 8259. M¹ch 8259 sÏ x¸c ®Þnh yªu cÇu ng¾t thø i võa ®−îc phôc vô, xo¸ bit ISRi t−ng øng vµ g¸n lu«n møc −u tiªn thÊp nhÊt cho ®Çu vµo IRQi nµy, cßn ®Çu vµo IRQi+1 sÏ ®−îc g¸n møc −u tiªn cao nhÊt. VÝ dô: Thanh ghi ISR tr−íc khi IRQ4 ®−îc chÊp nhËn (0: møc −u tiªn cao nhÊt, 7: møc −u tiªn thÊp nhÊt) C¸c bit IS7 IS6 IS5 IS4 IS3 IS2 IS1 IS0 Tr¹ng th¸i cña ISR 0 1 0 1 0 0 0 0 Møc −u tiªn 7 6 5 4 3 2 1 0 Thanh ghi ISR sau khi IRQ4 ®−îc chÊp nhËn vµ sau khi cã lÖnh quay ®æi C¸c bit IS7 IS6 IS5 IS4 IS3 IS2 IS1 IS0 Tr¹ng th¸i cña ISR 0 1 0 0 0 0 0 0 Møc −u tiªn 2 1 0 7 6 5 4 3 Thanh ghi ISR tr−íc khi IRQ5 ®−îc chÊp nhËn (0: møc −u tiªn cao nhÊt, 7: møc −u tiªn thÊp nhÊt) C¸c bit IS7 IS6 IS5 IS4 IS3 IS2 IS1 IS0 Tr¹ng th¸i cña ISR 0 0 1 0 0 1 0 0 Møc −u tiªn 7 6 5 4 3 2 1 0 Thanh ghi ISR sau khi IRQ4 ®−îc chÊp nhËn vµ sau khi cã lÖnh quay ®æi C¸c bit IS7 IS6 IS5 IS4 IS3 IS2 IS1 IS0 Tr¹ng th¸i cña ISR 0 0 0 0 0 1 0 0 Møc −u tiªn 1 0 7 6 5 4 3 2 (4) Quay (®æi) møc −u tiªn trong chÕ ®é kÕt thóc ng¾t tù ®éng: Trong chÕ ®é nµy chØ cÇn mét lÇn ®−a lÖnh chän chÕ ®é møc −u tiªn khi kÕt thóc yªu cÇu 106 guyÔn TiÕn Duy – Trung t©m Kü thuËt m¸y tÝnh – Bé m«n Kü thuËt m¸y tÝnh N
  16. http://www.ebook.edu.vn Tr−êng ®¹i häc kü thuËt C«ng NghiÖp ng¾t tõ ®éng. Cã thÓ chän lÖnh nµy b»ng lËp –chÕ ®é quay khi cã EOI tù ®éng–. Tõ ®ã trë ®i 8259 sÏ ®æi møc −u tiªn mçi khi kÕt thóc yªu cÇu ng¾t tù ®éng t−¬ng tù môc tr−íc. Muèn lo¹ bá chÕ ®é nµy ta cã thÓ dïng lÖnh xo¸ –chÕ ®é quay khi cã EOI tù ®éng–. (5) Quay (®æi) møc −u tiªn khi kÕt thóc yªu cÇu ng¾t chØ ®Ých danh: Trong ch−¬ng tr×nh con phôc vô ng¾t ph¶i cã lÖnh EOI ®Ých danh cho 8259 ®Æt tr−íc lÖnh trë vÒ IRET. M¹ch 8259 sÏ xo¸ ®óng bit ISRi (i = L2L1L0). (6) LËp møc −u tiªn: ChÕ ®é nµy cho phÐp thay ®æi møc −u tiªn cã ®Þnh hoÆc møc −u tiªn g¸n tr−íc ®ã b»ng c¸ch g¸n møc −u tiªn thÊp nhÊt cho yªu cÇu ng¾t IRQi chØ ®Ých danh øng víi tæ hîp m· i = L2L1L0. Yªu cÇu ng¾t IRQi+1 sÏ ®−îc g¸n møc −u tiªn cao nhÊt. OCW3: A0 D7 D6 D5 D4 D3 D2 D1 D0 0 0 ESMM SMM 0 1 P ERIS RIS 10: §äc IRR ë lÇn ®äc sau 11: §äc ISR ë lÇn ®äc sau Th¨m dß hiÖn tr¹ng cña yªu cÇu ng¾t 1: §äc m· møc −u tiªn cao nhÊt ë lÇn ®äc sau ChÕ ®é mÆt n¹ ®Æc biÖt 10: Xo¸ chÕ ®é mÆt n¹ ®Æc biÖt 11: LÆp chÕ ®é mÆt n¹ ®Æc biÖt H×nh vÏ: Thanh ghi ho¹t ®éng OCW3 Tõ ®iÒu khiÓn ho¹t ®éng OCW3 sau khi ®−îc n¹p vµo 8259 cho phÐp: • Chän ra c¸c thanh ghi ®Ó ®äc (tr¹ng th¸i) • Th¨m dß tr¹ng th¸i yªu cÇu ng¾t b»ng c¸ch ®äc tr¹ng th¸i cña ®©u vµo yªu cÇu ng¾t IRQi víi møc −u tiªn cao nhÊt cïng víi m· cña ®Çu vµo ®ã. • Thao t¸c víi mÆt n¹ ®Æc biÖt. C¸c thanh ghi IRR vµ ISR cã thÓ ®−îc n¹p sau khi n¹p tõ ®iÒu khiÓn OCW3 vµo 8259 víi bit ERIS = 1 (D1). Bit (D0) RIS = 0, cho phÐp ®äc IRR ë lÇn ®äc sau; RIS = 1, cho phÐp ®äc ISR ë lÇn ®äc sau. D7 D6 D5 D4 D3 D2 D1 D0 D7 D6 D5 D4 D3 D2 D1 D0 IR7 IR6 IR5 IR4 IR3 IR2 IR1 IR0 IS7 IS6 IS5 IS4 IS3 IS2 IS1 IS0 IRi=0: §Çu vµo IRQi kh«ng cã yªu cÇu ng¾t ISi=0: Yªu cÇu ng¾t i kh«ng ®−îc phôc vô IRi=1: §Çu vµo IRQi kh«ng cã yªu cÇu ng¾t ISi=1: Yªu cÇu ng¾t i ®ang ®−îc phôc vô (a) Thanh ghi yªu cÇu ng¾t: IRR (a) Thanh ghi phôc vô ng¾t: IRR B»ng viÖc ®−a vµo 8259 tõ ®iÒu khiÓn ho¹t ®éng OCW3 víi bit P = 1, ta cã thÓ ®äc ®−îc trªn bus d÷ liÖu ë lÇn ®äc tiÕp ngay sau ®Êy tõ th¨m dß, trong ®ã 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 ®ã theo d¹ng sau: NguyÔn TiÕn Duy – Trung t©m Kü thuËt m¸y tÝnh – Bé m«n Kü thuËt m¸y tÝnh 107
  17. http://www.ebook.edu.vn Tr−êng ®¹i häc kü thuËt C«ng NghiÖp Ta cã thÓ coi ®©y lµ D7 D6 D5 D4 D3 D2 D1 D0 chÕ ®é th¨m dß yªu cÇu I X X X X W2 W1 W0 ng¾t vµ chÕ ®é nµy th−êng ®−îc øng dông trong tr−êng hîp cã M· sè cña yªu cÇu ng¾t 1: §ang cã yªu cÇu ng¾t nhiÒu ch−¬ng tr×nh con 0: Kh«ng cã yªu cÇu ng¾t phôc vô ng¾t gièng nhau X: Don’t care cho mét yªu cÇu ng¾t vµ viÖc chän ch−¬ng tr×nh H×nh vÏ: D¹ng thøc cña tõ th¨m dß tr¹ng th¸I yªu cÇu ng¾t nµo ®Ó sö dông lµ (tr¸ch nhiÖm) c«ng viÖc cña ng−êi sö dông (ng−êi lËp tr×nh). VËy, muèn dïng chÕ ®é th¨m dß cña 8259 ®Ó x¸c ®Þnh yªu cÇu ng¾t hiÖn thêi ta cÇ thùc hiÖn lÇn l−ît d·y thao t¸c sau: CÊm c¸c yªu cÇu ng¾t che ®−îc b»ng lÖnh CLI (xo¸ IF). • Ghi tõ lÖnh OCW3 víi bit P=1. • §äc tõ th¨m dß tr¹ng th¸i yªu cÇu ng¾t trªn bus d÷ liÖu. • Bit ESMM = 1: Cho phÐp 8259 thao t¸c víi chÕ ®é mÆt n¹ ®Æc biÖt. Bit SMM = 1: cho phÐp chÕ ®é mÆt n¹ ®Æc biÖt. ChÕ ®é mÆt n¹ ®Æc biÖt ®−îc dïng ®Ó thay ®æi thø tù −u tiªn ngay bªn trong ch−¬ng tr×nh con phôc vô ng¾t. VÝ dô, trong tr−êng hîp cã mét yªu cÇu ng¾t bÞ cÊm (bÞ che bëi ch−¬ng tr×nh con phôc vô ng¾t víi tõ ®iÒu khiÓn ho¹t ®éng OCW1) mµ ta l¹i muèn cho phÐp c¸c yªu cÇu ng¾t víi møc −u tiªn thÊp h¬n so víi m−c −u tiªn cña yªu cÇu ng¾t bÞ cÊm ®ã ®−îc t¸c ®éng th× ta sÏ dïng chÕ ®é mÆt n¹ ®Æc biÖt. NÕu ®· ®−îc thiÕt lËp, chÕ ®é mÆt n¹ ®Æc biÖt sÏ tån t¹i cho ®Õn khi xo¸ ®i b»ng c¸ch ghi vµo 8259 mét tõ ®iÒu khiÓn OCW3 kh¸c víi bit SMM = 0. MÆt n¹ ®Æc biÖt kh«ng ¶nh h−ëng tíi c¸c yªu cÇu ng¾t cã møc −u tiªn cao h¬n. Tãm l−îc ho¹t ®éng cña 8259 trong hÖ vi xö lý 8088: (1) Khi cã yªu cÇu ng¾t tõ thiÕt bÞ ngo¹i vi t¸c ®éng vµo ch©n IRQi nµo ®ã cña 8259 th× nã sÏ göi xung INT = 1 ®Õn ch©n INTR cña CPU 8088. (2) NÕu chÊp nhËn, 8088 sÏ ®−a xung INTA (low active) ®Çu tiªn ®Õn 8259. (3) 8259 dïng xung INTA ®Çu nµy nh− lµ th«ng b¸o ®Ó nã hoµn tÊt c¸c xö lý néi bé cÇn thiÕt, kÓ c¶ viÖc xö lý −u tiªn nÕu cã nhiÒu yªu cÇu ng¾t cïng t¸c ®éng. (4) 8088 ®−a xung INTA thø hai khiÕn 8259 ®−a ra bus d÷ liÖu 1 byte lµ sè hiÖu ng¾t cña yªu cÇu ng¾t võa ®−îc chÊp nhËn (yªu cÇu ng¾t cã møc −u tiªn cao nhÊt (nÕu cã nhiÒu yªu cÇu ng¾t cïng t¸c ®éng) – tuú theo chÕ ®é lµm viÖc cña 8259). (5) 8088 tÝnh to¸n ®Þa chØ cña ch−¬ng tr×nh con phôc vô ng¾t dùa trªn sè hiÖu ng¾t, cô thÓ nh− sau: • CÊt FR; xo¸ IF, TF; cÊt CS, IP vµo Stack • LÊy CS, IP cña ch−¬ng tr×nh con phôc vô ng¾t tõ b¶ng vector ng¾t vµ thùc hiÖn nã. Tuú theo nh÷ng yªu cÇu kh¸c nhau vÒ sù ho¹t ®éng cña 8259 mµ trong ch−¬ng tr×nh con phôc vô ng¾t cã lÖnh ghi OCW1, OCW2 hay OCW3 vµo 8259. 108 guyÔn TiÕn Duy – Trung t©m Kü thuËt m¸y tÝnh – Bé m«n Kü thuËt m¸y tÝnh N
  18. http://www.ebook.edu.vn Tr−êng ®¹i häc kü thuËt C«ng NghiÖp Ch−¬ng 7 Vµo ra d÷ liÖu b»ng DMA 1. Nguyªn t¾c cña viÖc trao ®æi d÷ liÖu víi thiÕt bÞ ngo¹i vi b»ng c¸ch th©m nhËp trùc tiÕp vµo bé nhí (DMA) 2. DMAC 8237-5 trong hÖ vi xö lý 8088 a. TÝn hiÖu HOLD vµ HLDA trong CPU 8088 b. M¹ch DMAC 8237-5 cña Intel NguyÔn TiÕn Duy – Trung t©m Kü thuËt m¸y tÝnh – Bé m«n Kü thuËt m¸y tÝnh 109
ADSENSE

CÓ THỂ BẠN MUỐN DOWNLOAD

 

Đồng bộ tài khoản
2=>2