Tr−êng ®¹i häc kü thuËt C«ng NghiÖp

http://www.ebook.edu.vn

Ch−¬ng 5 Vµo ra d÷ liÖu b»ng c¸ch th¨m dß

1. Giíi thiÖu chung vÒ c¸c ph−¬ng ph¸p ®iÒu khiÓn vµo/ra d÷ liÖu

Qua ch−¬ng 4, chóng ta ®· t×m hiÓu vÒ mét sè m¹ch th−êng dïng cho viÖc phèi ghÐp CPU víi thiÕt bÞ ngo¹i vi. Ta ®· tiÕn hµnh c¸c ph−¬ng ph¸p (ph−¬ng thøc) ®iÒu khiÓn viÖc trao ®æi d÷ liÖu. C¸c m¹ch phèi ghÐp vµo/ra ®· tr×nh bµy tr−íc ®©y cã thÓ ®−îc øng dông ®Ó phôc vô cho môc ®Ých nµy.

M¸y tÝnh trao ®æi th«ng tin (vµo/ra d÷ liÖu) víi thieets bÞ ngo¹i vi theo mét trong 2 chÕ

®é sau:

Kh«ng héi tho¹i (trùc tiÕp)

Th¨m dß (polling)

Vµo/ra theo ch−¬ng tr×nh:

Cã héi tho¹i

Ng¾t (Interrupt)

Truy nhËp trùc tiÕp bé nhí (DMA – Direct Memorry Access

Víi c¸ch vµo/ra d÷ liÖu theo ch−¬ng tr×nh cã thÓ ph©n thµnh c¸c ph−¬ng ph¸p cô thÓ

h¬n lµ:

(cid:1) §ång bé (Kh«ng ®iÒu kiÖn – kh«ng héi

tho¹i)

Vµo/ra d÷ liÖu

ngo¹i vi, CPU viÖc thiÕt bÞ hay kh«ng. Nã mét OUT)

Sau khi ®· khëi ®éng (khëi t¹o) thiÕt bÞ (vµ thiÕt bÞ ngo¹i vi) kh«ng –quan t©m– tíi ngo¹i vi cã s½n sµng cho viÖc trao ®æi d÷ liÖu lu«n thùc hiÖn c¸c lÖnh trao ®æi d÷ liÖu (IN, c¸ch trùc tiÕp. Ph−¬ng ph¸p nµy yªu cÇu:

ThiÕt bÞ ngo¹i vi lu«n s½n sµng trao ®æi d÷ liÖu. Tèc ®é trao ®æi d÷ liÖu cña CPU vµ thiÕt bÞ ngo¹i vi lµ phï hîp nhau (TBNV

cã tèc ®é lµm viÖc nhanh).

VÝ dô, trong mét hÖ ®o nhiÖt ®é ghÐp nèi víi m¸y tÝnh, ®iÖn ¸p trªn cÆp nhiÖt ®iÖn ®−îc khuÕch ®¹i lªn, tiÕp theo lµ ®−îc biÕn ®æi thµnh tÝn hiÖu sè råi ®−îc ®äc vµo m¸y tÝnh. Ta thÊy r»ng tÝn hiÖu nµy lóc nµo còng s½n sµng cho CPU ®äc v× nhiÖt ®é lµ mét ®¹i l−îng biÕn ®æi rÊt chËm so víi tèc ®é cña m¸y tÝnh vµ cïng víi nã, CPU còng cã thÓ bÊt kú lóc nµo ®−a sè liÖu hiÓn thÞ sè ®o ®ã. §©y gäi lµ qu¸ tr×nh vµo/ra ®ång bé hay kh«ng cã mãc nèi (kh«ng cã héi tho¹i).

(cid:1) Kh«ng ®ång bé (Cã ®iÒu kiÖn – cã héi tho¹i)

Polling: CPU vµ thiÕt bÞ ngo¹i vi chØ trao ®æi d÷ liÖu khi cã tÝn hiÖu mãc nèi b¸o s½n sµng (Ready/Akc) cña c¸c phÝa. Sau khi m¸y tÝnh khëi ®éng thiÕt bÞ ngo¹i vi (khèi

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

86

Tr−êng ®¹i häc kü thuËt C«ng NghiÖp

http://www.ebook.edu.vn

ghÐp nèi), m¸y tÝnh lu«n chê vµ kiÓm tra tr¹ng th¸i s½n sµng cña thiÕt bÞ ngo¹i vi gåm c¸c b−íc:

(1) §äc th«ng tin vÒ tr¹ng th¸i s½n sµng cña thiÕt bi ngo¹i

vi

§äc th«ng tin

(2) KiÓm tra: NÕu thiÕt bÞ ngo¹i vi s½n sµng th× trao ®æi d÷

liÖu, ng−îc l¹i th× vÒ b−íc (1) ®Ó kiÓm tra l¹i.

F

TNNV s½n sµng?

Ph−¬ng ph¸p nµy ®−îc dïng khi tèc ®é trao ®æi d÷ liÖu cña c¸c bªn (CPU vµ thiÕt bÞ ngo¹i vi) rÊt kh«ng b»ng nhau vµ nã cã mét sè ®Æc ®iÓm sau:

T

ViÖc trao ®æi th«ng tin lµ tin cËy v× chØ trao ®æi khi thiÕt

bÞ ngo¹i vi s½n sµng.

Vµo/ra d÷ liÖu

Tèn thêi gian CPU v× ph¶i kiÓm tra tr¹ng th¸i s½n sµng cña thiÕt bÞ ngo¹i vi (viÖc kiÓm tra nµy co CPU ®¶m nhiÖm) nªn gi¶m hiÖu suÊt cña hÖ thèng.

Phï hîp víi nh÷ng hÖ thèng kh«ng ®ßi hái cao vÒ tèc

®é trao ®æi d÷ liÖu, hÖ thèng cã Ýt thiÕt bÞ ngo¹i vi.

Chóng ta sÏ xem xÐt cô thÓ ph−¬ng ph¸p vµo/ra nµy trong phÇn sau.

Vµo/ra d÷ liÖu ®iÒu khiÓn b»ng ng¾t ch−¬ng tr×nh (ng¾t bé vi xö lý –

Ch−¬ng tr×nh hiÖn t¹i cña CPU

®ã. d÷

Yªu cÇu ng¾t

cho cÇu vµo

Ch−¬ng tr×nh con phôc vô ng¾t (trao ®æi d÷ liÖu)

cÇu

®ã

Interrupt): B×nh th−êng m¸y tÝnh thùc hiÖn mét ch−¬ng tr×nh (c«ng viÖc) nµo Khi thiÕt bÞ ngo¹i vi cã yªu cÇu trao ®æi liÖu, nã sÏ göi tÝn hiÖu yªu cÇu ng¾t CPU dõng c«ng viÖc hiÖn t¹i, phôc vô trao ®æi d÷ liÖu th«ng qua tÝn hiÖu yªu ng¾t IRQ (Interrupt Request) t¸c ®éng ch©n INTR (ch©n tiÕp nhËn yªu cÇu ng¾t) cña CPU. CPU nhËn ®−îc yªu ng¾t, nÕu chÊp nhËn nã sÏ ®−a ra xung INTA x¸c nhËn tíi thiÕt bÞ ngo¹i vi, sau CPU t×m ch−¬ng tr×nh con phôc vô ng¾t t−¬ng øng sè hiÖu ng¾t vµ thùc hiÖn nã. §ã chÝnh lµ ch−¬ng tr×nh con thùc hiÖn trao ®æi (vµo/ra) d÷ liÖu do thiÕt bÞ ngo¹i vi yªu cÇu. Khi trao ®æi xong (ISR – Interrupt Service Routine) kÕt thóc th× CPU tiÕp tôc c«ng viÖc (ch−¬ng tr×nh) ®· bÞ gi¸n ®o¹n.

(cid:1) Vµo/ra d÷ liÖu ®iÒu khiÓn b»ng phÇn cøng phô ®Ó th©m nhËp trùc tiÕp bé nhí (DMA – Direct Memorry Access): Trong c¸c ph−¬ng ph¸p vµo/ra d÷ liÖu b»ng ch−¬ng tr×nh kÓ trªn, d÷ liÖu ph¶i ®−îc chuyÓn qua l¹i tõ bé nhí ®Õn CPU råi ®Õn thiÕt bÞ ngo¹i vi hoÆc ng−îc l¹i b»ng viÖc thùc hiÖn tõng lÖnh (MOV, IN hoÆc OUT) cña CPU víi sù tham gia cña c¸c thanh ghi. D÷ liÖu cña mçi lÇn vËn chuyÓn lµ byte hoÆc word (2 byte), tèc ®é trao ®æi d÷ liÖu phô thuéc rÊt nhiÒu vµo tèc ®é thùc hiÖn c¸c lÖnh trao ®æi d÷ liÖu kÓ trªn. Nãi chung, tèc ®é trao ®æi d÷ liÖu lµ kh«ng thÓ nhanh ®−îc. Víi c¸c thiÕt bÞ lµm viÖc víi bé nhí khèi nh− mµn h×nh, æ ®Üa, ... yªu cÇu trao ®æi c¶ m¶ng d÷ liÖu th× ph−¬ng ph¸p vµo/ra d÷ liÖu b»ng ch−¬ng tr×nh lµ kh«ng phï hîp. Khi ®ã ng−êi ta nghÜ ®Õn viÖc ®iÒu khiÓn d÷ liÖu vµo/ra trùc tiÕp tõ bé nhí ®Õn thiÕt bÞ ngo¹i vi hoÆc ng−îc l¹i mµ kh«ng th«ng qua CPU b»ng nh÷ng lÖnh trao ®æi d÷ liÖu nh− MOV, IN hoÆc OUT. §ã lµ ph−¬ng ph¸p vµo/ra d÷ liÖu b»ng c¸ch truy nhËp trùc tiÕp bé nhí (DMA – Direcr Memory Access). Trong tr−ê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

87

Tr−êng ®¹i häc kü thuËt C«ng NghiÖp

http://www.ebook.edu.vn

hîp nµy CPU trao quyÒn ®iÒu khiÓn cho mét m¹ch phÇn cøng phô ®iÒu khiÓn viÖc vµo/ra d÷ liÖu, ®ã lµ DMAC – DMA Controller. Chi tiÕt vÒ ph−¬ng ph¸p nµy sÏ ®−îc tr×nh bµy kü trong phÇn sau.

Qua viÖc tr×nh bµy s¬ l−îc vÒ c¸c ph−¬ng ph¸p ®iÒu khiÓn viÖc vµo/ra d÷ liÖu trªn ta thÊy mçi ph−¬ng ph¸p cã nh÷ng ®Æc ®iÓm kh¸c nhau (−u nh−îc ®iÓm), chóng ®−îc øng dông phï hîp trong nh÷ng hoµn c¶ch cô thÓ kh¸c nhau. Mét trong nh÷ng ph−¬ng ph¸p ®iÒu khiÓn ®¬n gi¶n nhÊt mµ chóng ta xem xÐt trong ch−¬ng nµy lµ ph−¬ng ph¸p trao ®æi kh«ng ®ång bé (cã héi tho¹i) hay gäi lµ ph−¬ng ph¸p th¨m dß tr¹ng th¸i s½n sµng cña thiÕt bÞ ngo¹i vi (polling) tr−íc khi thùc hiÖn vµo/ra d÷ liÖu.

2. Vµo/ra d÷ liÖu b»ng c¸ch th¨m dß tr¹ng th¸i s½n sµng cña thiÕt bÞ

Ch−¬ng tr×nh ®iÒu khiÓn

F

Ph−¬ng ph¸p vµo/ra d÷ liÖu b»ng c¸ch th¨m dß tr¹ng th¸i s½n sµng cña thiÕt bÞ ngo¹i vi lµ ph−¬ng ph¸p ®iÒu khiÓn vµo/ra d÷ liÖu b»ng ch−¬ng tr×nh – cã héi tho¹i. TÝn hiÖu héi tho¹i (handshaking signal) ë ®©y lµ tÝn hiÖu b¸o tr¹ng th¸i s½n sµng cña thiÕt bÞ ngo¹i vi.

TNNV1 s½n sµng?

T

Vµo/ra d÷ liÖu víi TBNV1

F

TNNV1 s½n sµng?

T

Vµo/ra d÷ liÖu víi TBNV1

...

F

TNNV1 s½n sµng?

T

Vµo/ra d÷ liÖu víi TBNV1

H×nh vÐ: L−u ®å ®iÒu khiÓn cña Ph−¬ng ph¸p th¨m dß tr¹ng th¸i s½n sµng

ViÖc ®iÒu khiÓn vµo/ra d÷ liÖu sÏ trë nªn rÊt ®¬n gi¶n nÕu thiÕt bÞ ngo¹i vi lóc nµo còng s½n sµng chê lµm viÖc (trao ®æi d÷ liÖu) víi CPU – Nh− ®· ®Ò cËp ®Õn trong phÇn giíi thiÖu – ®ã lµ ph−¬ng ph¸p vµo/ra d÷ liÖu ®ång bé (trùc tiÕp – kh«ng héi tho¹i). Tuy nhiªn trong thùc tÕ kh«ng ph¶i lóc nµo CPU còng lµm viÖc víi c¸c thiÕt bÞ ngo¹i vi –liªn tôc s½n sµng– nh− trªn, v× tèc ®é lµm viÖc cña thiÕt bÞ ngo¹i vi vµ CPU lµ rÊt chªnh lÖch. Th«ng th−êng khi CPU muèn trao ®æi d÷ liÖu víi mét thiÕt bÞ ngo¹i vi nµo ®ã, th«ng qua ch−¬ng tr×nh nã liªn tôc kiÓm tra tr¹ng th¸i s½n sµng cña thiÕt bÞ ngo¹i ®Ó xem cã yªu cÇu trao ®æi d÷ liÖu (yªu cÇu phôc vô) hay kh«ng? §Õn khi cã mét thiÕt bÞ ngo¹i vi nµo ®ã cã yªu cÇu trao ®æi d÷ liÖu (tøc lµ cã tÝn hiÖu b¸o tr¹ng th¸i s½n sµng – readly) th× ch−¬ng tr×nh sÏ chuyÓn sang thùc hiÖn viÖc trao ®æi d÷ liÖu (c«ng viÖc trao ®æi nµy cã thÓ lµ c¸c lÖnh ngay trong ch−¬ng tr×nh chÝnh hoÆc lµ mét ch−¬ng tr×nh con phôc vô – hoÆc ISR) råi l¹i tiÕp tôc kiÓm tra thiÕt bÞ ngo¹i vi kÕ tiÕp. Qu¸ tr×nh nµy ®−îc thùc hiÖn tiÕp tôc ®Õn thiÕt bÞ ngo¹i vi cuèi cïng råi l¹i ®−îc lÆp l¹i tõ ®Çu. VËy, nÕu lµm viÖc theo ph−¬ng ph¸p th¨m dß th× th«ng th−êng CPU ph¶i ®−îc dµnh riªng cho c«ng viÖc trao ®æi d÷ liÖu v× nã ph¶i liªn tôc kiÓm tra tr¹ng th¸i s½n sµng cña thiÕt bÞ ngo¹i vi th«ng qua c¸c tÝn hiÖu mãc nèi. C¸c tÝn hiÖu nµy ®−îc lÊy tõ m¹ch phèi ghÐp, do ng−êi thiÕt kÕ m¹ch t¹o ra ®Ó cho ch−¬ng tr×nh cã thÓ kiÓm tra nã. ViÖc nµy ®−îc tÝnh to¸n ®ång bé khi x©y dùng m¹ch vµ ch−¬ng tr×nh ®iÒu khiÓn.

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

88

Tr−êng ®¹i häc kü thuËt C«ng NghiÖp

http://www.ebook.edu.vn

Nãi chung, ph−¬ng ph¸p nµy ®¬n gi¶n trong tæ chøc phÇn cøng vµ phÇn mÒm nh−ng gÆp ph¶i nh−îc ®iÓm lµ khi sè l−îng thiÕt bÞ ngo¹i vi t¨ng lªn th× sÏ lµm l·ng phÝ thêi gian CPU cho viÖc kiÓm tra tr¹ng th¸i s½n sµng vµ kh¶ n¨ng ®¸p øng tøc thêi víi phôc vô cña CPU lµ rÊt thÊp.

H×nh vÏ cho thÊy l−u ®å cña ch−¬ng tr×nh ®iÒu khiÓn theo ph−¬ng ph¸p th¨m dß khi

sè l−îng sè thiÕt bÞ ngo¹i vi > 1.

NÕu th«ng tin ®−îc ph¸t hoÆc nhËn tõ mét thiÕt bÞ ngo¹i vi nµo ®ã sÏ thiÕt lËp mét cê tr¹ng th¸i thÝch hîp (th«ng th−êng lµ b»ng mét m¹ch lËt tr¹ng th¸i bëi xung STB cña thiÕt bÞ ngo¹i vi). Bé vi xö lý sÏ kiÓm tra cê tr¹ng th¸i nµy vµ sÏ thùc hiÖn modul ch−¬ng tr×nh trao ®æi d÷ liÖu khi cê tr¹ng th¸i b¸o r»ng thiÕt bÞ ngo¹i vi s½n sµng cho viÖc trao ®æi d÷ liÖu. Nã nh− mét tÝn hiÖu yªu cÇu phôc vô (thô ®éng) cho viÖc vµo/ra d÷ liÖu.

Sau ®©y lµ mét vÝ dô vÒ c¸ch t¹o tÝn hiÖu mãc nèi trong tæ chøc phÇn cøng vµ l−u ®å thuËt to¸n (ch−¬ng tr×nh ®iÒu khiÓn) dïng cho viÖc trao ®æi d÷ liÖu gi÷a CPU vµ thiÕt bÞ ngo¹i vi.

D0 D1 ... D7

STB

ISP01

Bus d÷ liÖu M¹ch chèt 8 bit /G Input Device (1) M¹ch 3 tr¹ng th¸i /OC

§Ó ®¬n gi¶n, trong vÝ dô nµy ta gi¶ thiÕt CPU chØ lµm viÖc víi 1 thiÕt bÞ ngo¹i vi vµ vµ 1 thiÕt bÞ ngo¹i vi ra. ViÖc tæ chøc phèi ghÐp phÇn cøng ®−îc thùc hiÖn trªn c¸c vi m¹ch (IC) cì võa ®Ó dÔ theo dâi c¸c tÝn hiÖu.

+5V pr Q D

ISP00

ISP01

lck clr

ACK

OSP02

M¹ch Chèt 8 bit /G M¹ch 3 tr¹ng th¸i /OC Output Device (2)

+5V pr Q D

OSP00

lck clr

Mét cæng vµo cã ®Þa chØ 00 ®−îc dïng ®Ó ®äc tr¹ng th¸i s½n sµng cña thiÕt bÞ ngo¹i vi sè 1 vµ sè 2. (TB1: vµo; TB2: ra). TÝn hiÖu b¸o s½n sµng cña thiÕt bÞ ngo¹i vi sè 1 (cã ®Þa chØ 01) ®−îc ®Æt vµo bit D0 vµ tÝn hiÖu b¸o s½n sµng cña thiÕt bÞ ngo¹i vi sè 2 (cã ®Þa chØ 02) ®−îc ®Æt vµo biit D1 cña bus d÷ liÖu. C¸c bit tÝn hiÖu nµy sÏ cã gi¸ trÞ b»ng 1 khi thiÕt bÞ ngo¹i vi t−¬ng øng ë tr¹ng th¸i s½n sµng trao ®æi d÷ liÖu víi CPU vµ chóng sÏ ®−îc ®−a vµo bus d÷ liÖu khi CPU ®äc nã b»ng lÖnh ®äc cæng cã ®Þa chØ 00. Ch−¬ng tr×nh ®iÒu khiÓn trao ®æi d÷ liÖu sÏ kiÓm tra c¸c bit b¸o s½n sµng nµy vµ cã c¸c ®¸p øng thÝch hîp.

OSP02

H×nh vÏ: S¬ ®å m¹ch phÇn cøng t¹o tÝn hiÖu mãc nèi

Cô thÓ ho¹t ®éng cña phÇn m¹ch vµo d÷ liÖu nh− sau: Khi thiÕt bÞ vµo (TB1) cã (1 byte) d÷ liÖu cÇn (trao ®æi) ®−a vµo hÖ thèng, nã ®−a ra xung STB ®Ó cho phÐp m¹ch chèt 8 bit chèt lÊy d÷ liÖu ®ã ®ång thêi kÝch cho m¹ch lËt D (m¹ch t¹o tÝn hiÖu s½n sµng) lµm viÖc (cid:5) ®Çu ra Q = 1. Bé vi xö lý (CPU) th«ng qua lÖnh ®äc cæng 00 ®Ó th¨m dß tr¹ng th¸i s½n sµng cña thiÕ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

89

Tr−êng ®¹i häc kü thuËt C«ng NghiÖp

http://www.ebook.edu.vn

bÞ ngo¹i vi sè 1 th«ng qua bit D0. Khi thÊy D0 = 1, nã ®äc 1 byte d÷ liÖu vµo ®ång thêi xo¸ lu«n Q (Q = 0, thiÕt bÞ ngo¹i vi kh«ng s½n sµng) ®Ó chuÈn bÞ lÇn ®äc byte d÷ liÖu kh¸c.

T−¬ng tù nh− vËy ta cã thÓ thÊy ®−îc sù ho¹t ®éng cña phÇn m¹ch ra d÷ liÖu – thiÕt bÞ ngo¹i vi sè 2.

Begin

Begin

§äc cæng 00 §äc cæng 00

D0=1?

D1=1?

F F

T T

§äc cæng 01 Ghi cæng 01

HÕt d÷ liÖu?

HÕt d÷ liÖu?

F F

T T

End

End

(a) L−u ®å ®äc d÷ liÖu tõ cæng 01 (a) L−u ®å ghi d÷ liÖu vµo 02

Yªu LËp cÇu: tr×nh theo l−u ®å (a) – ®−êng nÐt liÒn ®Ó thùc hiÖn viÖc ®äc vµo mét byte d÷ liÖu mçi khi cæng 01 b¸o s½n sµng råi hiÓn thÞ byte d÷ liÖu ®ã. Gi¶ thiÕt cã 100 byte d÷ liÖu ph¶i ®äc vµ cã s½n thñ tôc thùc hiÖn hiÓn thÞ gi¸ trÞ trong thanh ghi al mµn lªn h×nh cã tªn lµ hien_thi.

H×nh vÐ: L−u ®å ®iÒu khiÓn vµo/ra d÷ liÖu

– Mov cx, 100

;Sè byte d÷ liÖu c©n ®äc tro

;§äc cæng 00 ;D0 = 1? ;kh«ng, ®äc l¹i cæng 00 ;ph¶i, ®äc cæng 01 ;hiÓn thÞ kÕt qu¶ ;ch−a hÕt d÷ liÖu, quay l¹i

LÆp: Ra:

In al, 0 Test al, 1 Jz LÆp In al, 1 Call Hien_thi Loop LÆp –

Trong tr−êng hîp thiÕt bÞ ngo¹i vi vµo/ra ho¹t ®éng theo c¸ch kh¸c: mçi khi cê b¸o tr¹ng th¸i s½n sµng, cho phÐp CPU ®äc/ghi nhiÒu byte d÷ liÖu cïng lóc th× ta cã nh¸nh ®i theo ®−êng nÐt ®øt trªn l−u ®å. Khi nµy ta cÇn thiÕt söa ®æi c¶ tæ chøc phÇn cøng vµ ch−¬ng tr×nh ®Ó hÖ thèng ho¹t ®éng chÝnh x¸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

90

Tr−êng ®¹i häc kü thuËt C«ng NghiÖp

http://www.ebook.edu.vn

Trë vÒ vÝ dô 4 trong ch−¬ng tr−íc ta thÊy: tæ chøc phÇn cøng vµ ch−¬ng tr×nh ®iÒu khiÓn vµo/ra lµ theo ph−¬ng ph¸p nµy (polling – th¨m dß tr¹ng th¸i s½n sµng cña thiÕt bÞ ngo¹i vi). ë ®ã ta sö dông vi m¹ch cæng chuyªn dông PPI 8255 lµm viÖc trong chÕ ®é 1 (mode 1) vµ b¶n th©n vi m¹ch nµy cã kh¶ n¨ng t¹o ra c¸c tÝn hiÖu mãc nèi ®−îc c¶ víi CPU vµ thiÕt bÞ ngo¹i vi. ViÖc ®äc (th¨m dß) ®¬n gi¶n chØ lµ ®äc bit PC3 cña cæng PC (theo vÝ dô ®ã). TÝn hiÖu cña bit nµy chÝnh lµ tÝn hiÖu INTR. NÕu ta kh«ng kiÓm tra bit nµy b»ng c¸ch ®äc cæng PC mµ nèi th¼ng nã tíi ch©n tiÕp nhËn yªu cÇu ng¾t cña CPU lµ ch©n INTR th× ta cã mét ph−¬ng ph¸p phèi ghÐp kh¸c ®Ó vµo/ra d÷ liÖu – ®ã lµ ®iÒu khiÓn vµo/ra d÷ liÖu b»ng c¸ch ng¾t CPU. Ph−¬ng ph¸p nµy sÏ ®−îc tr×nh bµy chi tiÕt trong ch−¬ng sau.

PA PC4 PC5

D7-D0 STB ACK

CPU 8088

PPI 8255

A0 Input device A1 D7-D0

RD WR

PC1 PC2

Reset

PC3, PC0

STB ACK D7-D0

PB

Output device INTR IRQi A19-A2

CS Decoder

S¬ ®å ghÐp nèi dïng PPI 8255 – Mode 1

NÕu kiÓm tra PC3, PC0 (lµ tÝn hiÖu b¸o s½n sµng t−¬ng øng cho c¸c cæng PA vµ PB), b»ng lÖnh ®äc cæng PC trong ch−¬ng tr×nh th× ta cã ph−¬ng ph¸p vµo/ra d÷ liÖu lµ th¨m dß tr¹ng th¸i s½n sµng cña thiÕt bÞ ngo¹i vi.

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

91