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