Tài liệu Bài soạn vi xử lý - Chương 5: Ghép 8088 với bộ nhớ và tổ chức vào/ra dữ liệu
46 trang |
Chia sẻ: tranhong10 | Lượt xem: 1263 | Lượt tải: 0
Bạn đang xem trước 20 trang mẫu tài liệu Bài soạn vi xử lý - Chương 5: Ghép 8088 với bộ nhớ và tổ chức vào/ra dữ liệu, để tải tài liệu gốc về máy bạn click vào nút DOWNLOAD ở trên
CHÆÅNG 5
GHEÏP 8088 VÅÏI BÄÜ NHÅÏ VAÌ TÄØ CHÆÏC
VAÌO/RA DÆÎ LIÃÛU
1. Giåïi thiãûu caïc tên hiãûu cuía 8088 vaì caïc maûch phuû tråü 8284, 8288
1.1. Caïc tên hiãûu cuía 8088
Hçnh 5.1 thãø hiãûn viãûc chia caïc tên hiãûu cuía 8088 theo caïc nhoïm âãø ta dãù nháûn diãûn. Så âäö bäú trê cuû thãø caïc chán cuía vy xæí lyï 8088 âæåüc thãø hiãûn trong hçnh 5.2.
Sau âáy ta seî thãø hiãûn chæïc nàng cuía tæìng tên hiãûu taûi caïc chaïn cuû thãø.
+ ADO - AD7 [I;O : tên hiãûu vaìo vaì ra] : Caïc chán däön kãnh cho caïc tên hiãûu pháön tháúp cuía bus dæî liãûu vaì bus âëa chè. Xung ALE seî baïo cho maûnh ngoaìi biãút khi naìo trãn caïc âæåìng âoï coï tên hiãûu dæî liãûu (ALE = 0) hoàûc âëa chè (ALE = 1). Caïc chán naìy åí traûng thaïi tråí khaïng cao khi cháúp nháûn treo.
+ A8 - A15 [O] : Caïc bit pháön cao cuía bus âëa chè. Caïc chán naìy åí traûng thaïi tråí khaïng cao khi cháúp nháûn treo.
+ A16/S3, A17/S4, A18/S5, A19/S6 [O] : Caïc chán däön kãnh cuía âëa chè pháön cao vaì traûng thaïi. Âëa chè A16 - A19 seî coï màût taûi caïc chán âoï khi ALE = 1 coìn khi AEL = 0 thç trãn caïc chán âoï coï caïc tên hiãûu traûng thaïi S3 - S6. Caïc chán naìy åí traûng thaïi tråí khaïng cao khi cháúp nháûn treo.
IO/() A/D0
DT/R() A/D1
A/D2
() A/D3
() A/D4
A/D5
READY A/D6
HOLD (/) A/D7
HLDA (/) A8
(QS1) A9
ALE (QS0) A10
NMI A11
INTR A12
RESET A13
MN/) A14
TEST A15
CLK A16/S3
Vcc A17/S4
GND A18/S5
GND 8088 A19/S6
Tên hiãûu âiãöu
khiãøn
hãû thäúng
8 âæåìng
däön kãnh
cuía bus A/D pháön tháúp
Tên hiãûu âiãöu
khiãøn
bus
8
âæåìng cuía bus A
pháön cao
Âiãöu
khiãøn
CPU
4 âæåìng
däön kãnh cuía bus C/Acao
Âäöng häö
Vaì
nguäön
Hçnh 5.1. caïc tên hiãûu cuía 8088 åí chãú âäü MIN vaì (MAX).
Baíng 5.1. caïc bit traûng thaïi vaì viãûc truy nháûp caïc thanh ghi âoaûn.
S4
S3
Truy nháûp âãún
0
0
Âoaûn dæî liãûu phuû
0
1
Âoaûn ngàn xãúp
1
0
Âoaûn maî hoàûc khäng âoaûn naìo
1
1
Âoaûn dæî liãûu
Bit S6 = 0 liãn tuûc, bit S5 phaín kaïnh giaï trë bit IF cuía thanh ghi cåì. Hai bit S3 vaì S4 phäúi håüp våïi nhau âãø chè ra viãûc truy nháûp caïc thanh ghi âoaûn (baíng 5.1)
+ [O] : Xung cho pheïp âoüc. Khi = 0 thç bus dæî liãûu sàôn saìng nháûn säú liãûu tæìi bäü nhåï hoàûc thiãút bë ngoaûi vi. Chán åí traûng thaïi tråí khaïng cao khi cháúp nháûn treo.
+ READY [I] : Tên hiãûu baïo cho CPU biãút tçnh traûng sàôn saìng cuía thiãút bë ngoaûi vi hay bäü nhåï. Khi READY = 1 thç CPU thæûc ghi/âoüc maì khäng cáön cheìn thãm caïc chu kyì âåüi. Ngæåüc laûi khi thiãút bë ngoaûi vi hay bäü nhåï coï täúc âäü hoaût âäüng cháûm, chuïng coï thãø âæa tên hiãûu READY = 0 âãø baïo cho CPU biãút maì chåì chuïng. Luïc naìy CPU tuåü keïo daìi thåìi gian thæûc hiãûn lãûnh ghi/âoüc bàòng caïch cheìn thãm caïc chu kyì âåüi.
1 40
2 39
3 38
4 37
5 36
6 35
7 34
8 33
9 32
10 31
11 30
12 29
13 28
14 27
15 26
16 25
17 24
18 23
19 22
20 21
AND
A14
A13
A12
A11
A10
A9
A8
A/D7
A/D6
A/D5
A/D4
A/D3
A/D2
A/D1
A/D0
NMI
INTR
CLK
GND
Vcc
A15
A16/S3
A16/S4
A16/S5
A16/S6
MN/)
HOLD
HLDA
IO/
DT/
ALE
READY
RESET
Chãú âäü
MIN
Chãú âäü
MAX
(High)
(/)
(/)
()
()
()
()
(QS0)
(QS1)
Intel
8088
Hçnh 5.2. Så âäö chán cuía CPU 8088.
+ INTR [I] : Tên hiãûu yãu cáöu ngàõt che âæåüc. Khi coï yãu cáöu ngàõt maì cåì cho pheïp ngàõt IF = 1 thç CPU kãút thuïc lãûnh âang laìm dåí, sau âoï noï âi vaìo chu kyì cháúp nháûn ngàõt vaì âæa ra bãn ngoaìi tên hiãûu INTA = 0.
+ [I] : Tên hiãûu taûi chán naìy âæåüc kiãøm tra båíi lãûnh WAIT. Khi CPU thæûc hiãûn lãûnh WAIT maì luïc âoï tên hiãûu =1, noï seî chåì cho âãún khi tên hiãûu = 0 thç måïi thæûc hiãûn lãûnh tiãúp theo.
+ NMI [I] : Tên hiãûu yãu cáöu ngàõt khäng che âæåüc. Tên hiãûu naìy khäng bë khäúng chãú båíi cåì IF vaì noï seî âæåüc CPU nháûn biãút bàòng caïc taïc âäüng cuía sæåìn lãn cuía xung yãu cáöu ngàõt. Nháûn âæåüc yãu cáöu naìy CPU kãút thuïc lãûnh âang laìm dåí, sau âoï noï chuyãøn sang thæûc hiãûn chæång trçnh phuûc vuû ngàõt kiãøu INT2.
+ RESET [I] : tên hiãûu khåíi âäüng laûi 8088. khi RESET = 1 keïo daìi êt nháút trong thåìi gian 4 chu kyì âäöng häö thç 8088 bë buäüc phaíi khåíi âäüng laûi : noï xoaï caïc thanh ghi DS, ES, SS, IP vaì FR vãö 0 vaì bàõt âáöu thæûc hiãûn chæång trçnh taûi âëa chè CS:IP = FFFF:0000H (chuï yï cåì IF ¬ 0 âãø cáúm caïc yãu cáöu ngàõt khaïc taïc âäüng vaìo CPU vaì cåì TF ¬ 0 âãø bäü vi xæí lyï khäng -bë âàût trong chãú âäü chaûy tæng lãûnh).
+ CLK [I] : Tên hiãûu âäöng häö (xung nhëp). Xung nhëp coï âäü räùng laì 77% vaì cung cáúp nhëp laìm viãûc cho CPU.
+ Vcc [I] : Chán nguäön. Taûi âáy CPU âæåüc cung cáúp +5V±10%.340mA
+ GND [O] : Hai chán nguäön âãø näúi våïi âiãøm OV cuía nguäön nuäi.
+ MN/MX [I] : Chán âiãöu khiãøn hoaût âäüng cuía CPU theo chãú âäü MIN/MAX.
Do 8088 coï thãø laìm viãûc åí 2 chãú âäü khaïc nhau nãn coï mäüt säú chán tên hiãûu phuû thuäüc vaìo caïc chãú âäü âoï.
Chãú âäü MIN (Chán MN/MX cáön âæåüc näúi thàóng vaìo +5V maì khäng qua âiãûn tråí !)
Trong chãú âäü MIN táút caí caïc tên hiãûu âiãöu khiãøn liãn quan âãún caïc thiãút bë ngoaûi vi truyãön thäúng vaì bäü nhåï giäúng nhæ trong hãû 8085 âãöu coï sàôn trong 8088. Vç váûy viãûc phäúi gheïp våïi caïc thiãút bë âoï seî ráút dãù daìng vaì chênh vç táûn duûng âæåüc caïc phäúi gheïp ngoaûi vi sàôn nãn coï thãø giaím giaï thaình hãû thäúng.
+ IO/ [O] : Tên hiãûu naìy phán biãût trong thåìi âiãøm âaî âënh pháön tæí naìo trong caïc thiãút bë vaìo/ra (IO) hoàûc bäü nhåï (M) âæåüc choün laìm viãûc våïi CPU. Trãn bus âëa chè luïc âoï seî coï caïc âëa chè tæång æïng cuía caïc thiãút bë âoï. Chán naìy åí traûng thaïi tråí khaïng cao khi cháúp nháûn treo.
+ WR [O] : Xung cho pheïp ghi. Khi CPU âæa ra WR=0 thç trãn bus dæî liãûu caïc dæî liãûu âaî äøn âënh vaì chuïng seî âæåüc ghi vaìo bäü nhåï hoàûc thiãút bë ngoaûi vi taûi thåìi âiãøm âoüt biãún = 1. Chán åí traûng thaïi tråí khaïng cao khi cháúp nháûn treo.
+ INTA [O] : Tên hiãûu baïo cho caïc maûch bãn ngoaìi biãút CPU cháúp nháûn yãu cáöu ngàõt INTR. Luïc naìy CPU âæa ra INTA = 0 âãø baïo laì noï âang chåí maûch ngoaìi âæa vaìo säú hiãûu ngàõt (kiãøu ngàõt) trãn bus dæî liãûu.
+ ALE [O] : Xung cho pheïp chäút âëa chè. Khi ALE = 1 coï nghéa laì trãn bus däön kãnh AD coï caïc âëa chè cuía thiãút bë vaìo/ra hay cuía ä nhåï. ALE khäng bao giåì bë thaí näúi (trong traûng thaïi tråí khaïng cao) khi CPU bë treo thç ALE = 0.
+ DT/ [O] : Tên hiãûu âiãöu khiãøn caïc âãûm 2 chiãöu cuía bus dæî liãûu âãø choün chiãöu chuyãøn cuía váûn dæî liãûu trãn bus D. Chán naìy åí traûng thaïi tråí khaïng cao khi cháúp nháûn treo.
+ [O] : Tên hiãûu baïo cho bãn ngoaìi biãút laì luïc naìy trãn bus däön kãnh AD coï dæî liãûu äøn âënh. Chán naìy åí traûng thaïi tråí khaïng cao khi cháúp nháûn treo.
+ HOLD [I] : Tên hiãûu yãu cáöu treo CPU âãø machj ngoaìi thæûc hiãûn viãûc trao âäøi dæî liãûu våïi bäü nhåï bàòng caïch thám nháûp træûc tiãúp (direct memory access, DMA). Khi HOLD = 1. CPU 8088 seî tæû taïch ra hãû thäúng bàòng caïch treo táút caí caïc bus A, bus D, bus C cuía noï ( caïc bus åí traûng thaïi tråí khaïng cao) âãø bäü âiãöu khiãøn DMA (DMA contrroller, DMAC) coï thãø láúy âæåüc quyãön âiãöu khiãøn hãû thäúng âãø laìm caïc cäng viãûc trao âäøi dæî liãûu.
Baíng 5.2. Caïc chu kyì cuía bus qua caïc tên hiãûu , IO/, DT/
IO/
DT/
Chu kyì âiãöu khiãøn cuía bus
0
0
0
Âoüc maî lãûnh
0
0
1
Âoüc bäü nhåï
0
1
0
Ghi bäü nhåï
0
1
1
Bus räé (nghé)
1
0
0
Cháúp nháûn yãu cáöu ngàõt
1
0
1
Âoüc thiãút bë ngoaûi vi
1
1
0
Ghi thiãút bë ngoaûi vi
1
1
1
Dæìng (halt)
+ HLDA [O] : Tên hiãûu baïo cho bãn ngoaìi biãút yãu cáöu treo CPU âãø duìng caïc bus âaî âæåüc cháúp nháûn , vaì CPU 8088 âaî treo caïc bus A, bus D vaì mäüt säú tên hiãûu cuía bus C.
+ [O] : Tên hiãûu traûng thaïi. Tên hiãûu naìy giäúng nhæ trong chãú âäü MAX vaì âæåüc duìng kãút håüp våïi IO/M vaì DT/ âãø giaíi maî caïc chu kyì hoaût âäüng cuía bus (xem baíng 5.2).
Chãú âäü MAX (Chán MN/MX näúi âáút)
Trong chãú âäü MAX mäüt säú tên hiãûu âiãöu khiãøn cáön thiãút âæåüc taûo ra trãn cå såí caïc tên hiãûu traûng thaïi nhåì duìng thãm åí bãn ngoaìi mäüt maûch âiãöu khiãøn bus 8288. Chãú âäü MAX âæåüc sæí duûng khi trong hãû thäúng coï màût bäü âäöng xæí lyï toaïn hoüc 8087
+ vaì [O] : Caïc chán traûng thaïi duìng trong chãú âäü MAX âãø gheïp våïi maûch âiãöu khiãøn bus 8288. Caïc tên hiãûu naìy âæåüc 8288 duìng âãø taûo ra caïc tên hiãûu âiãöu khiãøn trong caïc chu kyì hoaût âäüng cuía bus. Caïc tên hiãûu âiãöu khiãøn âoï âæåüc chè ra trong baíng 5.3.
Baíng 5.3. Caïc tên hiãûu âiãöu khiãøn cuía 8288.
Chu kyì âiãöu khiãøn cuía bus
Tên hiãûu
0
0
0
Cháúp nháûn yãu cáöu ngàõt
INTA
0
0
1
Âoüc thiãút bë ngoaûi vi
IORC
0
1
0
Ghi thiãút bë ngoaûi vi
IOWC,
0
1
1
Dæìng (halt)
Khäng
1
0
0
Âoüc maî lãûnh
MRDC
1
0
1
Âoüc bäü nhåï
MRDC
1
1
0
Ghi bäü nhåï
MWTC,
1
1
1
Bus räùi (nghé)
Khäng
+ / vaì / [I/O] : Caïc tên hiãûu yãu cáöu duìng bus cuía caïc bäü xæí lyï khaïc hoàûc thäng baïo cháúp nháûn treo cuía CPU âãø cho caïc bäü vi xæí lyï khaïc duìng bus. / coï mæïc æu tiãn hån /.
+ [O] : Tên hiãûu do CPU âæa ra âãø cáúm caïc bäü xæí lyï khaïc trong hãû thäúng duìng bus trong khi noï âang thi haình mäüt lãûnh naìo âoï âàût sau tiãúp âáöu LOCK.
+ QS0 vaì QS1 [O] : Tên hiãûu thäng baïo caïc traûng thaïi khaïc nhau cuía âãûm lãûnh (haìng âåüi lãûnh). Baíng 5.4 cho biãút caïc traûng thaïi cuía âãûm lãûnh âæåüc maî hoaï bàòng caïc tên hiãûu trãn.
Trong hãû vi xæí lyï våïi sæû coï màût cuía bäü âäöng häö xæí lyï toaïn hoüc 8087, caïc tên hiãûu naìy âæåüc maûch 8087 duìng âãø âäöng bäü quaï trçnh hoaût däüng cuía noï våïi bäü vi xæí lyï 8088.
Baíng 5.4. Caïc traûng thaïi cuía lãûnh âãûm
QS1
QS0
Traûng thaïi lãûnh âãûm
0
0
Khäng hoaût âäüng
0
1
Âoüc byte maî lãûnh âáöu tiãn tæì âãûm lãûnh
1
0
Âoüc lãûnh räùng
1
1
Âoüc byte tiãúp theo tæì âãûm lãûnh
1.2. Phán kãnh âãø taïch thäng tin vaì viãûc âãûm cho caïc bus
Âãø giaím båït khoï khàn vãö màût cäng nghãû do viãûc phaíi chãú taûo nhiãöu chán cho caïc tên hiãûu cuía vi maûch CPU, ngæåìi ta âaî tçm caïch haûn chãú säú chán cuía vi maûch bàòng caïch däön kãnh nhiãöu tên hiãûu trãn cuìng mäüt chán. Vê duû caïc chán AD0 - AD8 cuía 8088 âæåüc däön kãnh âãø coï thãø âæa ra bãn ngoaìi caïc thäng tin vãö âëa chè pháön tháúp vaì dæî liãûu pháön tháúp. Khi nháûn âæåüc caïc tên hiãûu âoï åí bãn ngoaìi vi maûch, ta phaíi tiãún haình taïch caïc tên hiãûu âãø taïi taûo laûi caïc tên hiãûu gäúc cho caïc bus âäüc láûp (bus âëa chè vaì bus dæî liãûu). Viãûc naìy thæûc hiãûn bàòng caïch sæí duûng caïc vi maûch chæïc nàng thêch håüp åí bãn ngoaìi (thäng thæåìng thç âoï laì caïc maûch chäút). Ta cuîng phaíi laìm tæång tæû nhæ váûy âäúi våïi caïc chán däön âëa chè/traûng thaïi. Âãø häù tråü cho viãûc taïch thäng tin naìy, CPU âæa ra thãm xung ALE sao cho khi ALE åí mæïc cao seî coï taïc duûng baïo cho bãn ngoaìi biãút luïc naìy thäng tin vãö âëa chè taûi caïc chán däön kãnh coï giaï trë. Xung ALE âæåüc duìng âãø måí caïc maûch chäút vaì taïch âæåüc caïc thäng tin vãö âëa chè bë däön kãnh.
Muäún náng cao taíi cuía caïc bus âãø âaím nháûn viãûc nuäi caïc maûch bãn ngoaìi. Caïc tên hiãûu ra vaì vaìo CPU cáön phaíi âæåüc khuãúch âaûi thäng qua caïc maûch âãûm mäüt chiãöu hoàûc hai chiãöu våïi caïc âáöu ra thæåìng hoàûc âáöu ra 3 traûng thaïi.
Hçnh 5.3 cho tháúy mäüt vê duû âån giaín caïc täø chæïc viãûc taïch tên hiãûu âëa chè tæì caïc tên hiãûu däön kãnh chè/dæî liãûu hoàûc âëa chè/âiãöu khiãøn bàòng caïc maûch chäút 74LS373 vaì viãûc sæí duûng caïc bäü khuãúch âaûi âãûm 74LS244 vaì 74LS245 cho caïc tên hiãûu cuía bäü vi xæí lyï 8088 laìm viãûc åí chãú âäü MIN.
Hçnh 5.5 cung cáúp cho ta hçnh aính tè mè hån vãö caïch täø chæïc cuû thãø khaïc cuía bus âëa chè, dæî liãûu vaì âiãöu khiãøn thäng qua læåüc âäö cuía maïy IBM PC/XT. Trong âoï bäü vi xæí lyï 8088 laìm viãûc åí chãú âäü MAX.
Bãn caûch CPU trãn hçnh 5.4 ta coìn tháúy sæû coï màût cuía caïc maûch phuû tråü cuía intel nhæ :
+ Bäü âiãöu khiãøn bus 8288.
+ Bäü taûo ra caïc xung âäöng häö 8284.
+ Bäü phäúi gheïp ngoaûi vi song song 8255.
+ Bäü âiãöu khiãøn trao âäøi dæî liãûu bàòng caïch thám nháûp træûc tiãúp vaìo bäü nhåï 8237.
+ Bäü âiãöu khiãøn ngàõt æu tiãn 8259.
+ Bäü âãúm/âënh thåìi gian 8253 vaì
+ Chäù càõm daình cho bäü âäöng xæí lyï toaïn hoüc 8087.
Mäüt säú maûch trong caïc maûch kãø trãn cuîng seî âæåüc giåïi thiãûu trong chæång trçnh naìy vaì caïc chæång trçnh sau âãø ta coï thãø hiãøu âæåüc hoaût âäüng cuía tæìng hãû.
Trãn så âäö naìy ta cuîng tháúy viãûc sæí duûng caïc maûch chäút vaì maûch khuãúch âaûi âãûm thäng duûng ( caïc maûch 74LS373, 74LS244 vaì 74LS245) taûi nhæîng chäù cáön thiãút cuía bus âëa chè, bus dæî liãûu vaì bus âiãöu khiãøn nhæ âaî noïi åí trãn.
Bus
âiãöu khiãøn
LS244
IO/
A19/S6
A18/S5
A17/S4
A16/S3
A15
A14
A13
A12
A11
A10
A9
A8
ALE
A7
A6
A5
A4
A3
A2
A1
A0
IO/
A19
A18
A17
A16
A15
A14
A13
A12
A11
A10
A9
A8
A7
A6
A5
A4
A3
A2
A1
A0
D7
D6
D5
D4
D3
D2
D1
D0
LS373
G/
OC1, 2
LS244
Bus
Âëa chè
LS373
G OC
LS245
DIR
Bus
Dæî liãûu
Hçnh 5.3. Bus hãû thäúng coï khuãúch âaûi âãûm.
1.3. Maûch taûo xung nhëp 8284.
Cho duì laìm viãûc trong chãú âäü MIN hay MAX, CPU 8088 luän cáön xung nhëp (xung âäöng häö) tæì maûch taûo xung nhip 8284. Maûch taûo xung nhëp khäng nhæîng cung cáúp xung nhëp våïi táön säú thêch håüp cho toaìn hãû maì noï coìn coï aính hæåíng tåïi viãûc âäöng bäü tên hiãûu RESET vaì tên hiãûu READY cuía CPU.
YÏ nghéa cuía caïc tên hiãûu
+ , : Tên hiãûu cho pheïp choün âáöu vaìo tæång æïng RDY1, RDY2 laìm tên hiãûu baïo tçnh traûng sàôn saìng cuía bäü nhåï hoàûc thiãút bë ngoaûi vi.
+ RDY1, RDY2 : cuìng våïi , duìng âãø gáy ra caïc chu kyì âåüi åí CPU.
+ : Choün âäöng bäü hai táöng hoàûc âäöng bäü mäüt táöng cho tên hiãûu RDY1, RDY2. Trong chãú âäü âäöng bäü mäüt táöng (= 1) tên hiãûu RDY coï aính hæåíng âãún tên hiãûu READY tåïi táûn sæåìn xuäúng cuía xung âäöng häö tiãúp theo. Coìn trong chãú âäü âäöng bäü hai táöng (= 0) tên hiãûu RDY chè coï aính hæåíng âãún tên hiãûu READY khi coï sæåìn xuäúng cuía xung âäöng häö tiãúp theo.
+ READY : Näúi âãún âáöu READY cuía CPU. Tên hiãûu naìy âæåüc âäöng bäü våïi caïc tên hiãûu RDY1, RDY2.
+ X1, X2 : Näúi våïi hai chán cuía thaûch anh våïi táön säú fx, thaûch anh naìy laì mäüt bäü pháûn cuía mäüt maûch dao âäüng bãn trong 8284 coï nhiãûm vuû taûo xung chuáøn duìng laìm tên hiãûu âäöng häö cho toaìn hãû thäúng.
+ F/ : Duìng âãø choün nguäön tên hiãûu chuáøn cho 8284. Khi chán naìy åí mæïc cao thç xung âäöng häö bãn ngoaìi seî âæåüc duìng laìm xung nhëp cho 8284, ngæåüc laûi thç xung âäöng häö cuía maûch dao âäüng bãn trong duìng thaûch anh seî âæåüc choün âãø laìm xung nhëp.
+ EFI : läúi vaìo cho xung tæì bäü dao âäüng ngoaûi.
+ CLK : Xung nhëp fCLK=fx/3våïi âäü räùng 77% näúi âãún chán cuía CLK cuía 8088.
+ PCLK : Xung nhëp fCLK=fx/6våïi âäü räùng 50% daình cho thiãút bë ngoaûi vi.
+ OSC : Xung nhëp âaî âæåüc khuãúch âaûi coï táön säú bàòng fx cuía bäü dao âäüng.
+ : Chán khåíi âäüng, näúi våïi maûch RC âãø 8284 âãø tæû khåíi âäüng khi báût nguäön.
+ RESET : Näúi vaìo RESETcuía 8088 vaì laì tên hiãûu khåíi âäüng laûi cho toaìn hãû
+ CSYNC : Läúi vaìo cho xung âäöng bäü chung khi trong hãû thäúng coï caïc 8284 duìng dao âäüng ngoaìi taûi chán naìy (hçnh 5.6)
+ Hçnh 5.6 biãøu diãùn caïc âæåìng näúi tên hiãûu chênh cuía 8088 vaì 8284. Maûch 8284 nháûn âæåüc xung khåíi âäüng tæì bãn ngoaìi thäng qua maûch RC khi bàõt âáöu báût âiãûn
X1 CLK
X2
8284
RES RESET
F/ CSYNC
CLK
+5V 8088
10k RESET
K +
Khåíi âäüng hãû thäúng
Hçnh 5.6. Maûch 8284 näúi våïi 8088.
hoàûc xung khåíi âäüng laûi khi báúm cäng tàõc K. Tæì xung naìy 8284 coï nhiãûm vuû âæa ra xung khåíi âäüng âäöng bäü cho CPU cuìng våïi táút caí caïc thaình pháön khaïc cuía hãû thäúng.
1.4. Maûch âiãöu khiãøn bus 8288
Nhæ âaî giåïi thiãûu åí pháön træåïc, vi maûch 8288 laì maûch âiãöu khiãøn bus, noï láúy 1 säú tên hiãûu âiãöu khiãøn cuía CPU vaì cung cáúp táút caí caïc tên hiãûu âiãöu khiãøn cáön thiãút cho hãû vi xæí lyï khi CPU 808aìm viãûc åí chãú âäü MAX.
Så âäö chán vaì caïc tên hiãûu cuía 8288 âæåüc thãø hiãûn trãn hçnh 5.7.
Caïc tên hiãûu chênh cuía 8288 bao gäöm :
: address enable
CEN : command enable
IOB : input/output bus mode
: memory read comm
: memory write comm
: advanced
: i/o read command
: i/o write command
: advanced
DT/: data transmit/receive
DEN : data enable
Vcc
MCE/
DEN
CEN
1 20
2 19
3 18
4 17
5 16
6 15
7 14
8 13
9 12
10 11
IOB
CLK
DT/
ALE
8288
MCE/PDEN : master cascade enable/peripheral data enable
Hçnh 5.7. Maûch taûo xung âiãöu khiãøn 8288.
+ ,, [I, I, I] : laì caïc tên hiãûu traûng thaïi láúy thàóng tæì CPU. Tuyì theo caïc tên hiãûu naìy maì maûch 8288 seî taûo ra caïc tên hiãûu âiãöu khiãøn khaïc nhau taûi caïc chán ra cuía noï âãø âiãöu khiãøn hoaût âäüng cuía caïc thiãút bë näúi våïi CPU. Baíng 5.3 mä taí caïc tên hiãûu vaìo vaì ra âoï.
+ CLK [I] : Âáy laì âáöu vaìo näúi våïi xung âäöng häö hãû thäúng (tæì maûch 8284) vaì duìng âãø âäöng bäü toaìn bäü caïc xung âiãöu khiãøn âi ra tæì maûch 8288.
+ CEN [I] : Laì tên hiãûu âáöu vaìo âãø cho pheïp âæa ra tên hiãûu DEN vaì caïc tên hiãûu âiãöu khiãøn khaïc cuía 8288.
+ IOB [I] : tên hiãûu âãø âiãöu khiãøn maûch 8288 laìm viãûc åí caïc chãú âäü bus khaïc nhau.
Khi IOB = 1 8288 laìm viãûc åí chãú âäü bus vaìo/ra, khi IOB = 0 maûch 8288 laìm viãûc åí chãú âäü bus hãû thäúng (nhæ trong caïc maïy IBM PC).
+ [O] : tên hiãûu âiãöu khiãøn âoüc bäü nhåï. Noï kêch hoaût bäü nhåï âæa dæî liãûu ra bus.
+ [O][O] : laì caïc tên hiãûu âiãöu khiãøn ghi bäü nhåï hoàûc ghi bäü nhåï keïo daìi.
Âoï thæûc cháút laì caïc tên hiãûu giäúng nhæ , nhæng (advanced memory write command) hoaût âäüng såïm lãn mäüt chuït âãø taûo ra khaí nàng cho caïc bäü nhåï cháûm coï thãm âæåüc thåìi gian ghi.
+ [O] : tên hiãûu âiãöu khiãøn âoüc thiãút bë ngoaûi vi. Noï kêch hoaût caïc thiãút bë âæåüc choün âãø caïc thiãút bë naìy âæa dæî liãûu ra bus.
+ [O][O] : laì caïc tên hiãûu âiãöu khiãøn âoüc thiãút bë ngoaûi vi hoàûc âoüc thiãút bë ngoaûi vi keïo daìi.
Âoï thæûc cháút laì caïc tên hiãûu giäúng nhæ , nhæng (advanced I/O write command) hoaût âäüng såïm lãn mäüt chuït âãø taûo ra khaí nàng cho caïc bäü nhåï cháûm coï thãm âæåüc thåìi gian ghi.
+ [O] : laì âáöu ra âãø thäng nbaos laì CPU cháúp nháûn yãu cáöu ngàõt cuía thiãút bë ngoaûi vi vaì luïc naìy caïc thiãút bë ngoaûi vi phaíi âæa ra säú hiãûu ngàõt ra bus âãø CPU âoüc.
+ DT/ [O] : laì tên hiãûu âãø âiãöu khiãøn hæåïng âi cuía dæî liãûu trong hãû vaìo hay ra so våïi CPU (DT/ = 0 : CPU âoüc dæî liãûu, DT/ = 1 CPU ghi dæî liãûu).
Trong caïc maïy IBM PC thç tên hiãûu naìy âæåüc näúi âãún caïc chán DIR cuía maûch âãûm 2 chiãöu 74LS245 âãø âiãöu khiãøn dæî liãûu âi tæì CPU âãún bus hãû thäúng khi ghi hoàûc ngæåüc laûi, tæì bus hãû thäúng âãún CPU khi âoüc.
+ DEN [O] : âáy laì tên hiãûu âãø âiãöu khiãøn bus dæî liãûu tråí thaình bus cuûc bäü hay bus hãû thäúng.
Trong caïc maïy IBM PC thç tên hiãûu naìy âæåüc sæí duûng cuìng våïi tên hiãûu cuía maûch âiãöu khiãøn ngàõt PIC 8259 âãø taûo ra tên hiãûu âiãöu khiãøn cæûc G cuía maûch âãûm 2 chiãöu 74LS245.
+ MCE/[O] : âáy laì tên hiãûu duìng âãø âënh chãú âäü laìm viãûc cho maûch âiãöu khiãøn ngàõt PIC 8259 âãø noï laìm viãûc åí chãú âäü chuí.
+ ALE [O] : âáy laì tên hiãûu cho pheïp chäút âëa chè taûi caïc chán däön kãnh âëa chè - dæî liãûu AD0 - AD7, tên hiãûu naìy thæåìng âæåüc näúi våïi chán G cuía maûch 74LS373 âãø âiãöu khiãøn maûch naìy chäút láúy âëa chè.
1.5. Biãøu âäö thåìi gian cuía caïc lãûnh ghi/âoüc
Trãn hçnh 5.8 vaì 5.9 laì caïc biãøu âäö thåìi gian âaî âæåüc âån giaín hoaï cuía caïc tên hiãûu cå baín trong CPU 8088 cho caïc lãûnh ghi/âoüc bäü nhåï hoàûc thiãút bë ngoaûi vi.
Trong træåìng håüp bçnh thæåìng mäüt chu kyì ghi/âoüc (coìn goüi laì chu kyì bus) cuía CPU keïo daìi 4 chu kyì âäöng häö. Caïc chu kyì âäöng häö âæåüc âaïnh dáúu laì T1, T2, T3 vaì T4. Nãúu CPU laìm viãûc våïi táön säú âäöng häö 5MHz thç mäüt chu kyì âäöng häö keïo daìi T=200ns vaì mäüt chu kyì bus keïo daìi 4*T=800ns.
Mäüt chu kyì cuía bus
T1 T2 T3 T4
CLK
Tw
ALE
A/S
A16/S3
A19/S6
Tên hiãûu traûng thaïi
Âëa chè
A
(A8-A15)
Âëa chè äøn âënh
A/D
(AD0-AD7
Âëa chè
Dæî liãûu ghi
tgiæî W
TWr
Hçnh 5.8. Caïc tên hiãûu cuía CPU 8088 trong chu kyì ghi âån giaín hoaï.
Mäüt chu kyì cuía bus
T1 T2 T3 T4
CLK
Tw
ALE
ttrãùâëachè
ADRS
A16/S3
A19/S6
Tên hiãûu traûng thaïi
Âëa chè
ADR
(A8-A15)
Âëa chè äøn âënh
tgiæîK
Dæî liãûu âoüc
ADRD
(AD0-AD7
Âëa chè
TWr
Hçnh 5.9. Caïc tên hiãûu cuía CPU 8088 trong chu kyì âoüc âån giaín hoaï.
Chuïng ta mä taí toïm tàõt caïc hiãûn tæåüng xaíy ra trong mäüt chu kyì T noïi trãn.
+ Chu kyì T1 :
Trong chu kyì naìy âëa chè cuía bäü nhåï hay thiãút bë ngoaûi vi âæåüc âæa ra trãn caïc âæåìng âëa chè, hoàûc âëa chè/dæî liãûu vaì âëa chè/ traûng thaïi. Caïc tên hiãûu âiãöu khiãøn ALE. DT/. IO/cungx âæåüc âæa ra âãø giuïp viãûc hoaìn táút viãûc giæî thäng tin âëa chè naìy.
+ Chu kyì T2 :
Trong chu naìy CPU âæa ra caïc tên hiãûu âiãöu khiãøn hoàûc . vaì tên hiãûu dæî liãûu trãn D0 - D7 nãúu laì lãûnh ghi. thæåìng duìng âãø måí caïc bäü âãûm cuía bus dæî liãûu nãúu nhæ chuïng âæåüc duìng trong hãû. Taûi cuäúi kyì T2 (vaì giæîa mäùi chu kyì T cuía Tw , nãúu coï) CPU láúy máùu tên hiãûu READY âãø xæí lyï trong chu kyì tiãúp theo khi noï phaíi laìm viãûc våïi bäü nhåï hoàûc thiãút bë ngoaûi vi cháûm.
+ Chu kyì T3 :
Trong chu kyì naìy CPU daình thåìi giåì cho bäü nhåï hay thiãút bë ngoaûi vi khi nháûp dæî liãûu. Nãúu laì chu kyì âoüc dæî liãûu thç taûi cuäúi T3 CPU seî láúy máùu tên hiãûu cuía bus dæî liãûu.
Nãúu taûi cuäúi chu kyì âäöng häö T2 (hoàûc giæîa mäùi chu kyì T cuía Tw) maì CPU phaït hiãûn ra tên hiãûu READY=0 (do bäü nhåï hay thiãút bë ngoaûi vi âæa âãún) thç CPU tæû xen vaìo sau T3 mäüt vaìi chu kyì T âãø taûo chu kyì âåüi Tw = n*T nhàòm keïo daìi thåìi gian thæûc hiãûn lãûnh, taûo âiãöu kiãûn cho bäü nhåï hoàûc thiãút bë ngoaûi vi. coï âuí thåìi gian hoaìn táút viãûc ghi/âoüc dæî liãûu.
+ Chu kyì T4 :
Trong chu kyì naìy caïc tên hiãûu trãn bus âæåüc giaíi hoaût (âæa vãö traûng thaïi khäng têch cæûc) âãø chuáøn bë cho chu kyì bus måïi. Tên hiãûu trong khi chuyãøn traûng thaïi tæì 0 lãn 1 seî kêch hoaût âäüng quaï trçnh âæa vaìo bäü nhåï hay thiãút bë ngoaûi vi.
Trãn caïc hçnh veî 5.8 vaì 5.9 cuîng biãøu diãùn caïc thäng säú quang troüng vãö màût thåìi gian liãn quan âãún täúc âäü hoaût âäüng täúi thiãøu cáön thiãút cuía caïc bäü nhåï hoàûc thiãút bë ngoaûi vi nãúu chuïng muäún laìm viãûc våïi CPU 5MHz.
Trong biãøu âäö thåìi gian âoüc (hçnh 5.9) ta tháúy viãûc truy nháûp bäü nhåï keïo daìi trong khoaíng thåìi gian tæì T1 - T3 (gáön 3 chu kyì âäöng häö 3*T = 600 ms). Trong täøng säú thåìi gian naìy phaíi tênh âãún thåìi gian trãù khi chuyãön âëa chè ttrãù dëa chè = 110ns, thåìi gian giæî cuía dæî liãûu khi âoüc tgiæîR = 30 ns vaì thåìi gian trãù do viãûc truyãön tên hiãûu qua caïc maûch âãûm nhiãöu nháút laì ttrãù âãûm = 40ns. Nhæ váûy caïc bäü nhåï näúi våïi 8088 - 5MHz cáön phaíi coï thåìi gian thám nháûp nhoí hån :
3*T - ttrãù dëa chè - tgiæîR - ttrãù âãûm = 600 - 110 - 30 - 40 = 420ns.
Màût khaïc våïi CPU 8088 5MHz thç âäü räüng xung âoüc laì TRD = 325ns, âoï laì thåìi gian âuí daìi âãø cho bäü nhåï våïi thåìi gian thám nháûp cåî 420ns laìm viãûc.
Trong biãøu âäö thåìi gian ghi ( hçnh 5.8) ta tháúy phaíi coï mäüt thåìi gian giæî dæî liãûu täúi thiãøu âãø ghi tgiæîW = 88ns sau khi âäüt biãún tæì 0 lãn 1. trong thæûc tãú thåìi gian naìy gáön nhæ bàòng 0 âäúi våïi bäü nhåï thäng duûng. Âäü daìi cuía xung ghi âäúi våïi CPU 8088 - 5MHz laì TWR = 340ns cuîng laì phuì håüp våïi caïc bäü nhåï våïi thåìi gian thám nháûp cåî 450ns.
Trãn hçnh 5.10 laì mäüt maûch duìng âãø xem thãm chu kyì âåüi våïi thåìi gian âåüi tuyì choün nT (n=0-7). Bàòng caïch thay âäøi âáöu näúi âãún caïc âáöu ra cuía maûch vaìo song song ra näúi tiãúp 74LS164 cho âãún khi coï sæåìn dæång cuía T2.
2. Phäúi gheïp 8088 våïi bäü nhåï
2.1. Bäü nhåï baïn dáùn
Træåïc khi noïi vãö phäúi gheïp 8088 våïi bäü nhåï ta noïi qua mäüt chuït vãö caïc bäü nhåï baïn dáùn thæåìng duìng våïi bäü vi xæí lyï.
Caïc bäü nhåï baïn dáùn thæåìng duìng våïi bäü vi xæí lyï bao gäöm :
+ Bäü nhåï cäú âënh ROM (read only memory, bäü nhåï coï näüi dung ghi sàôn chè âãø âoüc ra). Thäng tin ghi trong maûch khäng bë máút khi máút nguäön âiãûn nuäi cho maûch.
+ Bäü nhåï baïn cäú âënh EPROM (aerraseble programmable ROM laì bäü nhåï ROM coï thãø láûp trçnh âæåüc bàòng xung âiãûn vaì xoaï âæåüc bàòng tia cæûc têm).
+ Bäü nhåï khäng cäú âënh RAM ( random access memory, bäü nhåï ghi/âoüc) thäng tin ghi trong maûch bë máút khi máút nguäön âiãûn nuäi cho maûch. Trong caïc bäü nhåï RAM ta coìn phán biãût ra loaûi RAM ténh (stiatic RAM hay SRAM, trogn âoï mäùi pháön tæí nhoí laì mäüt maûch láût hay traûng thaïi äøn âënh) vaì loaûi RAM âäüng (dyamic RAM hay DRAM, trong âoï mäùi pháön tæí nhåï laì mäüt tuû âiãûn ráút nhoí âæåüc chãú taûo bàòng cäng nghãû MOS).
Mäüt bäü nhåï thæåìng âæåüc chãú taûo nãn tæì nhiãöu vi maûch nhåï. Mäüt vi maûch nhåï thæåìng coï daûng cáúu truïc tiãu biãøu nhæ sau (hçnh 5.11)
Tên hiãûu dæî liãûu
Tên hiãûu âëa chè
A0 D0
A1 D1
A2 D2
Am Dn
CS OE
WR : Write
WE : write enable
OE : Output enable
CS : Chip select
RD : Read
Choün voí
Hçnh 5.11. så âäö khäúi 1 vi maûch nhåï.
Theo så âäö khäúi naìy ta tháúy mäüt lvi maûnh nhåï coï caïc nhoïm tên hiãûu sau :
Nhoïm tên hiãûu âëa chè :
Caïc tên hiãûu âëa chè coï taïc duûng choün ra mäüt ä nhåï (tæì nhåï cuû thãø âãø ghi/âoüc. Caïc ä nhåï coï âäü daìi khaïc nhau tuyì theo nhaì saín xuáút : 1, 4, 8, bit. Säú âæåìng tên hiãûu âëa chè coï liãn quan âãún dung læåüng cuía maûch nhåï. Våïi mäüt maûch nhåï coï m bit âëa chè thç dung læåüng cuía maûnh nhåï âoï laì 2m tæì nhåï. Vê duû, våïi m = 10 ta coï dung læåüng maûch nhåï laì 1K ä nhåï (1 kilä = 210 = 1024) vaì våïi m=20 ta coï dung læåüng maûch nhåï laì 1M ä nhåï (1 Mãga = 220 = 1048576).
Nhoïm tên hiãûu dæî liãûu :
Caïc tên hiãûu dæî liãûu thæåìng laì âáöu ra âäúi våïi maûch ROM hoàûc âáöu vaìo/ra dæî liãûu chung (hai chiãöu) âäúi våïi maûch RAM. Cuîng täön taûi maûch nhåï RAM våïi âáöu ra vaì âáöu vaìo dæî liãûu riãng biãût. Âäúi våïi RAM loaûi naìy, khi duìng trong maûch cuía bus dæî liãûu ngæåìi sæí duûng phaíi näúi hai âáöu âoï laûi. Caïc maûch nhåï thæåìng coï âáöu ra dæî liãûu kiãøu 3 traûng thaïi. Säú dæåìng dáy dæî liãûu quyãút âënh âäü daìi tæì nhåï cuía maûch nhåï. Thäng thæåìng ngæåìi ta hay noïi roî dung læåüng vaì âäü daìi tæì nhåï cuìng mäüt luïc. Vê duû maûch nhåï dung læåüng 1 Kx8 (tæïc laì 1KB) hoàûc 16Kx4 ...
Nhoïm tên hiãûu choün vi maûch (choün voí) :
Caïc tên hiãûu choün voî laì (chip select) hoàûc (Chip enable) thæåìng âæåüc duìng âãø taûo ra vi maûch nhåï cuû thãø âãø ghi/âoüc. Tên hiãûu choün voî åí caïc maûch RAM thæåìng la , coìn åí maûch ROM thæåìng laì . Caïc tên hiãûu choün voî thæåìng âæåüc näúi våïi âáöu ra cuía bäü giaíi maî âëa chè. Khi mäüt maûnh nhåï khäng âæåüc choün thç bus dæî liãûu cuía noï bë treo (åí traûng thaïi tråí khaïng cao)
Nhoïm tên hiãûu âiãöu khiãøn :
Tên hiãûu âiãöu khiãøn cáön coï trong táút caí caïc maûch nhåï. Caïc maûch nhåï ROM thæåìng coï mäüt âáöu vaìo âiãöu khiãøn (output enable) âãø cho pheïp dæî liãûu âæåüc âæa ra bus. Mäüt màût nhåï khäng âæåüc måí båíi thç bus dæî liãûu cuía noï bë treo.
Mäüt maûch nhåï Ram nãúu chè coï mäüt tên hiãûu âiãöu khiãøn thç thæåìng âoï laì / âãø âiãöu khiãøn quaï trçnh ghi/âoüc. Nãúu maûch nhåï RAM coï hai tên hiãûu âiãöu khiãøn âoï thæåìng laì (write enable) âãø âiãöu khiãøn ghi vaì âãø âiãöu khiãøn âoüc. Hai tên hiãûu naìy phaíi ngæåüc pha nhau âãø âiãöu khiãøn viãûc ghi/âoüc maûch nhåï.
Mäüt thäng säú âàûc træng khaïc cuía bäü nhåï laì thåìi gian thám nháûm tac. Noïi chung noï âæåüc âënh nghéa nhæ laì thæoìi gian kãø tæì khi coï xung âëa chè trãn bus âëa chè cho âãún khi coï dæî liãûu ra äøn âënh trãn bus dæî liãûu. Thåìi gian thám nháûm bäü nhåï phuû thuäüc ráút nhiãöu vaìo cäng nghãû chãú taûo nãn noï. Caïc bäü nhåï laìm bàòng cäng nghãû læåîng cæûc coï thåìi gian thám nháûp nhoí (10 - 30ns) coìn caïc bäü nhåï laìm bàòng cäng nghãû MOS coï thåìi gian thám nháûp låïn hån nhiãöu (cåî 150ms hoàûc hån næîa).
Sau âáy laì vê duû mäüt säú loaûi bäü nhåï thæåìng duìng :
Bäü nhåï EPROM :
Caïc bäü nhåï EPROM thäng duûng täön taûi dæåïi nhiãöu kiãøu maûch khaïc nhau. Hoü 27xxx coï caïc loaûi makchj sau : 2708 (1Kx8), 2716 (2Kx8), 2732 (4Kx8), 2764 (8Kx8), 27128 (16Kx8), 27256 (32Kx8), 27512 (64Kx8) våïi tac = 250-450ns tuyì theo loaûi cuû thãø. Trãn hçnh 5.12 laì så âäö caïc tên hiãûu vaì baíng chæïc nàng cuía 2716.
Maûch nhåï 2716 coï thåìi gian thám nháûp tac = 450ns, nhæ váûy âãø gheïp vaì laìm viãûc âæåüc våïi CPU 8088 5MHz noï cáön phaíi thãm chu kyì âåüi. Ngæåüc laûi maûch nhåï 2716 - 1 laûi coï tac = 250ns nãn khäng cáön thãm chu kyì âåüi.
Cáön læu yï laì trong chãú âäü duy trç cäng suáút tiãu thuû cuía maûch giaím âæåüc 75% so våïi cäng suáút khi noï åí chãú âäü têch cæûc
Chuí
A0 - A10
D0 - D7
Vpp
/PGM
Chãú âäü
/PGM
Vpp
[V]
Vcc
[V]
D0 - D7
Âoüc
0
0
+5
+5
Dout
Duy trç
1
X
+5
+5
HZ
Ghi
50ms
1
+25
+25
Din
Kiãøm tra
0
0
+25
+5
Dout
Cám ghi
0
1
+25
+5
HZ
A0 - A10 : Âëa chè x : khäng quan tám
D0 - D7 HZ : Traûng thaïi tråí khaïng cao
: cho pheïp âæa dæî liãûu ra
/PGM : âiãûn aïp ghi
Hçnh 5.12. Bäü nhåï EPROM 2716 (2Kx8)
Bäü nhåï RAM ténh (SRAM) :
Bäü nhåï SRAM coï khaí nàng læu giæî thäng tin trong noï chæìng naìo noï coìn âæåüc cáúp âiãûn. Caïc bäü nhåï SRAM vaì EPROM cuìng dung læåüng thæåìng coï caïch bäú trê chán giäúng nhau âãø dãø bãö daìy thay thãú láùn trong qua trçnh phaït triãøn hãû thäúng. Trãn hçnh 5.13 laì vê duû maûch nhåï TMS 4014 (2Kx8) våïi thåìi gian thám nháûp tac = 250ns.
Âaî täön taûi trong thæûc tãú maûch nhåï SRAM dung læåüng 32Kx8 (62256LP-10) våïi thåìi gian thám nháûp cåî 100ns chãú taûo theo cäng nghãû CMOS vaì mäüt loaûi SRAM khaïc chãs taûo theo cäng nghãû læåîng cæûc 8KB - 120KB coï thåìi gian thám nháûp 15ns.
A0 - A10 : Âëa chè x : khäng quan tám
D0 - D7 : Dæî liãûu HZ : Traûng thaïi tråí khaïng cao
: cho pheïp âæa dæî liãûu ra
: Cho pheïp ghi
: Choün voí
A0 - A10
D0 - D7
Hçnh 5.13. Bäü nhåï RAM ténh TMS 4016 (2Kx8).
Bäü nhåï RAM âäüng (DRAM) :
Bäü nhåï DRAM læu giæî thäng tin bàòng caïch naûp hay khäng naûp âiãûn têch lãn caïc tuû âiãûn cäng nghãû MOS. Mäùi pháön tæì nhåï cuía bäü nhåï DRAM vç váûy cáön âæåüc laìm tæåi laûi (bàòng caïch ghi hay âoüc pháön tæí âoï) sau mäüt khoaíng thåìi gian cåî 15,6 , nãúu khäng âiãûn têch trãn caïc tuû âiãûn seî bë tiãu taïn vaì dáùn âãún máút thäng tin. Caïc maûch DRAM cáön coï caïc maûch logic phuû âãø âaím baío viãûc laìm tæåi vaì vç thãú viãûc phäúi gheïp âoï våïi bäü vi xæí lyï laì ráút phæïc taûp. Buì laûi nhæåüc âiãøm naìy caïc maûch nhåï DRAM laûi coï æu âiãøm laì coï thãø chãú taûo âæåüc mäüt säú læåüng ráút låïn caïc pháön tæí nhåï trãn 1 âån vë âiãûn têch, caïc vi maûch naìy do váûy cuîng cáön ráút nhiãöu chán cho caïc tên hiãûu âëa chè. Âãø laìm giaím båït säú læåüng chán âëa chè trãn mäüt vi maûch nhåï, ngæåìi ta thæåìng chia âëa chè ra laìm hai nhoïm : âëa chè haìng vaì âëa chè cäüt däön kãnh chuïng trãn caïc chán âëa chè, âäöng thåìi cung cáúp thãm caïc tên hiãûu cho pheïp chäút giæî riãng leî âëa chè haìng () vaì cäüt () åí bãn trong vi maûch nhåï (hçnh 5.14).
A0 - A7 : Âëa chè x : khäng quan tám
D0 - D3 : Dæî liãûu
: xung cho pheïp chäút âëa chè cäüt
: xung cho pheïp chäút âëa chè haìng
: cho pheïp âæa dæî liãûu ra
: Cho pheïp ghi
A0 - A7
D0 - D3
Âc cäüt
Âc haìng
A0 - A7
Hçnh 5.14. Bäü nhåï RAM âäüng TMS 4464 (64Kx4).
Caïc maûch nhåï DRAM thæåìng âæåüc chãú taûo våïi âäü daìi 1 hoàûc 4 bit. Âaî täön taûi trong thæûc tãú maûch nhåï DRAM dung læåüng 1 Mx1, 4 Mx1, vaì 16 Mx1 vaì chuïng thæåìng âæåüc täø håüp thaình bäü nhåï kiãøu SIMM (single in-line memory module) hay SIP (single in-line package) duìng trong caïc maïy tênh thãú hãû måïi. Trãn hçnh 5.15 laì vê duû cuía vi maûch nhåï TMX4C1024 dung læåüng 1 Mx1 våïi thåìi gian thám nháûp 60ns.
2.2. Giaíi maî âëa chè cho bäü nhåï
A0 - A9 : Âëa chè x : khäng quan tám
Di : Dæî liãûu vaìo
D0 : Dæî liãûu ra
: xung cho pheïp chäút âëa chè cäüt
: xung cho pheïp chäút âëa chè haìng
: cho pheïp ghi
: Cho pheïp ghi
Di
A0 - A9
D0
Hçnh 5.15. Bäü nhåï RAM âäüng TMX 4C1024 (1Mx1)
Mäùi maûch nhåï näúi gheïp våïi CPU cáön phaíi âæåüc CPU qui chiãúu tåïi mäüt caïch chênh xaïc khi thuûc hiãûn caïc thao taïc ghi/âoüc. Âiãöu âoï coï nghéa laì mäùi maûch nhåï phaíi âæåüc gaïn cho mäüt vuìng riãng biãût coï âëa chè xaïc âënh nàòm trong khäng gian âëa chè täøng thãø cuía bäü nhåï. Viãûc gaïn âëa chè cuû thãø cho maûch nhåï âæåüc thæûc hiãûn nhåì mäüt xung choün voí láúy tæì maûch giaíi maî âëa chè. Viãûc phán âënh khäng gian âëa chè täøng thãø thaình caïc cuìng nhåï khaïc nhau âãø thæûc hiãûn nhæîng chæïc nàng nháút âënh goüi laì phán vuìng bäü nhåï. Vê duû, âäúi våïi CPU 8088 thç khäng gian âëa chè täøng thãø daình cho bäü nhåï laì 1MB, trong âoï vuìng nhåï dung læåüng 1 KB kãø tæì âëa chè tháúp nháút 00000H nháút thiãút phaíi âæåüc daình cho RAM (vç tai âáy ta phaíi coï chäù âãø cho mäüt baíng gäöm 256 vectå ngàõt cuía 8088), taûi coìn vuìng nhåï coï chæïa âëa chè FFFF0H thç laûi nháút thiãút phaíi daình cho ROM hay EPROM ( vç FFFF0H laì âëa chè khåíi âäüng cuía CPU).
Vãö nguyãn tàõc mäüt bäü giaíi maî âëa chè thæåìng coï cáúu taûo nhæ trãn hçnh 5.16.
Tên hiãûu âëa chè
Caïc tên hiãûu choün voí
Maûch giaíi maî âëa chè
Tên hiãûu â/khiãøn
Hçnh 5.16. Maûch giaíi maî âëa chè täøng quaït.
Âáöu vaìo cuía bäü giaíi maî laì caïc tên hiãûu âëa chè vaì tên hiãûu âiãöu khiãøn. Caïc tên hiãûu âëa chè gäöm caïc bit âëa chè coï quan hãû nháút âënh våi caïc tên hiãûu choün voí åí âáöu ra. Tên hiãûu âiãöu khiãøn thæåìng laì tên hiãûu IO/duìng âãø phán biãût âäúi tæåüng maì CPU choün laìm viãûc laì bäü nhåï hay thiãút bë vaìo/ra. Maûch giaíi maî laì mäüt trong nhæîng kháu gáy ra viãûc trãù thåìi gian cuía tên hiãûu tæì CPU tåïi bäü nhåï hoàûc thiãút bë ngoaûi vi maì trong khi choün maûch nhåï/ngoaûi vi ta phaíi tênh âãún. Tuyì theo quy mä cuía maûch giaíi maî maì ta coï thãø coï åí âáöu ra mäüt hay nhiãöu tên hiãûu choün voí.
Giaíi maî âáöy âuí cho mäüt maûch nhåï âoìi hoíi ta phaíi âæa âãún âáöu vaìo cuía maûch giaíi maî caïc tên hiãûu âëa chè sao cho tên hiãûu åí âáöu ra cuía noï chè choün riãng maûch nhåï âaî âënh. Trong træåìng håüp naìy ta phaíi duìng täø håüp âáöu âuí cuía caïc âáöu vaìo âëa chè tæång æïng âãø choün âæåüc maûch nhåï, vç xung nháûn âæåüc tæì maûch giaíi maî ngoaìi viãûc choün maûch nhåï åí vuìng âaî âënh seî coï thãø chon ra caïc maûch nhåï åí caïc vuìng nhåï khaïc næîa.
Nhæ váûy, giaíi maî thiãúu thç tiãút kiãûm âæåüc linh kiãûn khi thæûc hiãûn bäü giaíi maî nhæng laûi laìm máút tênh âån trë cuía xung choün thu âæåüc åí âáöu ra.
Thäng thæåìng khi thiãút kãú maûch giaíi maî ngæåìi ta hay tênh âäi ra mäüt chuït âãø dæû phoìng, sao cho sau naìy nãúu coï sæû thay âäøi do phaíi tàng thãm dung læåüng cuíabäü nhåï thç váùn coï thãø sæí duûng âæåüc maûch giaíi maî âaî âæåüc thiãút kãú .
Thæûc hiãûn maûch giaíi maî baìng caïc maûch NAND
Baìng caïc maûch kiãøu maûch cæía NAND ta coï thãø xáy dæûng âæåüc maûch giaíi maî âëa chè âån giaín våïi säú âáöu ra haûn chãú, ta phaíi âæa âãún âaìu vaìo cuía maûch cæía nhiãöu läúi vaì mäüt täø håüp thêch håüp cuía caïc bit âëa chè âãø nháûn âæåüc åí âáöu ra cuía noï tên hiãûu choün voí cho maûch nhåï.
Trong maûch giaíi maî âån giaín cho EPROM naìy, xung choün voí seî coï taïc âäüng khi ta âoüc bäü nhåï taûi âëa chè nàòm trong khoaíng EF800H - FFFFFH, tæïc laì vuìng âëa chè coï chæïa âëa chè khåíi âäüng cuía CPU 8088. 9 bit âëa chèpháön cao cuía bus âëa chè (A11-A19) åí mæïc 1 seî phäúi håüp cuìng xung IO/ (âaî âæåüc âaío) âãø taûo ra xung choün vuìng nhåï 2 KB âàût taûi âëa chè cao nháút trong khäng gian âëa chè cuía 8088. mäùi ä nhåï cuû thãø trong 2 KB cuía maûch nhåï EPROM 2716-1 seî do caïc bit tháúp coìn laûi cuía bus âëa chè (A0 - A10) choün ra. Âãø kiãøm chæïng nhanh âiãöu naìy ta cáön nhåï ràòng våïi caïc bit âëa chè A10 ta choün ra âæåüc caïc maûch nhåï 1KB vaì våïi bit A11 ta choün ra âæåüc caïc maûch nhåï 2 KB caïc maîng nhåï naìy nàòm raîi raïc trong khäng gian cuía bäü nhåï.
Thæûc hiãûn bäü giaíi maî duìng maûch giaíi maî kiãøu 74LS138 :
Khi ta muäún coï nhiãöu âáöu ra choün voí tæì bäü giaíi maî maì váùn duìng caïc maûch logic âån giaín thç thiãút kãú seî tråí nãn ráút cäöng kãönh do säú læåüng caïc maûch cæía tàng lãn. Trong træåìng håüp nhæ váûy ta thæåìng sæí duûng caïc maûch giaíi maî coï sàôn. Mäüt trong caïc maûch giaíi maî hay dæåüc sæí duûng laì 74LS138, maûch giaíi maî 3-8 (hçnh 5.18)
A0 - A9
2764-15
D0 - D7
Bus A
Bus B
F0000-F1FFF
A
B
C
LS138
A13
A14
A15
Caïc chán choün voí cho 7 maûch 2764-15 khaïc
A17 A16
A18
FE000-FFFFF
IO/
A19
Hçnh 5.19. så âäö bäü giaíi maî duìng 74LS138.
Vê duû
Giaí thiãút ta cáön duìng riãng vuìng nhåï 64 KB coï âëa chè F0000H-FFFFFH. Cho caïc maûch nhåï EPROM 8 KB (duìng 8x2764-15, tac = 150ns). Haîy duìng maûch giaíi maî kiãøu 74LS138 âãø thæûc hiãûn.
A
B
C
138
Caïc âáöu vaìo choün
Caïc âáöu ra cuía maûch giaíi maî
Caïc âáöu vaìo cho gheïp
Hçnh 5.18. så âäö khäúi cuía 74LS138
Giaíi
Ta coï thãø duìng maûch 74LS138 vaì bäú trê caïc âæåìng âëa chè nhæ trãn hçnh 5.19.
Åí thê duû naìy ta cáön læu yï ràòng bit âëa chè A13 coï khaí nàng choün ra caïc maîng nhåï 8 KB nàòm raîi raïc trong khäng gian nhåï cuía 8088. chênh vç váûy ta duìng noï nhæ âáöu vaìo A cuía 74LS138, cuìng våïi caïc âëa chè bit A14 vaì A15 taûi caïc chán B vaì C ta seî choün ra âæåüc 8 vuìng nhåï liãön nhau, mäùi vuìng coï dung læåüng laì 8 KB hay toaìn vuìng laì 64 KB naìy åí pháön cao nháút trong khäng kgian nhåï.
Âiãöu naìy coï thãø âaût âæåüc mäüt caïch dãø daìng bàòng viãûc duìng täø håüp 4 bit âëa chè cao nháút A16 - A19 åí traûng thaïi 1 (A19 thäng qua âaìu vaìo G1 vaì A16 -A18 qua 1 maûch NAND 3 âáöu vaìo âãø âæa âãún G2A cuía maûch 74LS138).
Taûi thê duû naìy ta tháúy maûch giaíi maî coï sàôn 74LS138 coï säú læåüng âáöu vaìo âëa chè vaì âáöu vaìo cho pheïp haûn chãú. Nãúu ta coï säú læåüng âáöu vaìo cho âëa chè låïn maì ta laûi phaíi giaíi maî âáöy âuí âãø thæûc hiãûn bäü giaíi maî âaî hoaìn chènh ta váùn phaíi duìng thãm caïc maûch logic phuû. Âáy cuîng laì lyï do âãø ngæåìi ta thay thãú caïc bäü giaíi maî kiãøu naìy bàòng caïc bäü giaíi maî duìng PROM hoàûc PLA (programable logic array) våïi æu âiãøm chênh laì chuïng coï ráút nhiãöu âáöu vaìo cho caïc bit âëa chè vaì vç thãú ráút thêch håüp trong caïc hãû vi xæí lyï sau naìy våïi khäng gian âëa chè låïn.
Thæûc hiãûn bäü giaíi maî duìng PR OM :
Âãø trçnh baìy æïng duûng cuía PROM trong viãûc thæûc hiãûn caïc bäü giaíi maî ta láúy laûi vê duû phán vuìng bäü nhåï cho 64 KB EPROM trong pháön træåïc. Taûi âáy ta duìng maûch PROM loaûi TPB 28L42 våïi dung læåüng 512 byte âãø laìm bäü giaíi maî. Trong baíng 5.5 laì máùu caïc bit âãø ghi vaìo PROM TPB 58L42 cho træåìng håüp æïng duûng cuû thãø naìy.
Theo baíng 5.5 ta tháúy ràòng âãø thæûc hiãûn bäü giaíi maî cho bäü nhåï theo yãu cáöu âaî noïi åí trãn ta måïi chè sæí duûng hãút 8 byte âáöu tiãn trong täøng säú 512 byte cuía maûch nhåï PROM âãø ghi caïc giaï trë cáön thiãút. Caïc ä nhåï taûi âëa chè khaïc vç thãú âãöu chæïa cuìng giaï trë nhæ nhau laì FFH.
A0 - A12
2764-15
D0 - D7
Bus A
Bus D
A0 O0
A1 O1
A2 O2
A3 O3
A4 O4
A5 O5
A6 O6
A7 O7
A8 O8
A13
A14
A15
A16
A17
A18
A19
A20
F0000-F1FFF
Caïc chán choün voí cho 7 maûch 2764-15 khaïc
FE000-FFFFF
IO/
Hçnh 5.20. Så âäö bäü giaíi maî duìng PROM
Maûch giaíi maî cho bäü nhåï EPROM 64 KB duìng PROM âæåüc thãø hiãûn trãn hçnh 5.20. so våïi caïch thæûc hiãûn bäü giaíi maî bàòng 74LS138 chuïng ta khäng phaíi duìng âãún caïc maûch phuû âiãöu naìy laìm giaím âaïng kãø kêch thæåïc váût lyï cuía bäü giaíi maî.
Trong caïc maïy vi tênh caï nhán thæång pháøm viãûc phán chia vuìng vaì giaíi maî âëa chè cho bäü nhåï thæåìng âaî âæåüc thæûc hiãûn hoaìn chènh. Viãûc làõp chung caïc modun RAM vaìo mäüt hãû thäúng cuîng âæåüc nhaì saín xuáút tênh toaïn tæì træåïc âãø taûo thuaûn låüi täúi âa cho ngæåìi sæí duûng.
2.3. Päúi gheïp CPU 8088 - 5MHz våïi bäü nhåï
Sau khi âaî giåïi thiãûu caïc phæång phaïp giaíi maî cho maûch nhåï trong pháön naìy ta seî giåïi thiãûu caïch phäúi gheïp 8088 våïi bäü nhåï. Coï thãø noïi täøng quaït ràòng nãúu -khäng coï xung âäüt giæîa täúc âäü thám nháûp maûch nhåï vaì täúc âäü CPU thç viãûc phäúi gheïp CPU våïi bäü nhåï âån giaín chè laì viãûc giaíi maî âëa chè trong maûch nhåï. Trong pháön låïn caïc træåìng håüp âiãöu naìy coï thãø âuïng cho caïc maûch nhåï RAM vaì caïc maûch nhåï EPRAM coï thåìi gian thám nháûp nhoí hoen hoàûc bàòng 250 ms, caïch phäúi gheïp CPU våïi cac maûch naìy vãö cå baín laì giäúng nhau. Âäúi våïi caïc maûch nhåï EPROM nhæ 2716, 2732 ... loaûi täúc âäü 450 ms khi thæûc hiãûn phäúi gheïp våïi 8088 - 5MHz thç cáön phaíi tênh toaïn tháûn troüng hån.
Trong pháön âáöu cuía chæång naìy ta âaî tênh âæåüc ràòng muäún phäúi gheïp âæåüc våïi CPU 8088 - 5MHz thç caïc maûch nhåï phaíi coï thåìi gian thám nháûp daìi nháút laì cåî 450 ms, vç váûy nãúu ta muäún gheïp EPROM 2732 täúc âäü 450ms vaìo bäü nhåï thç chàõc chàõn phaíi coï caïch âãø baïo cho CPU xen thãm chu kyì âåüi trãn hçnh 5.21 laì så âäö maûch phäúi gheïp EPROM 2732 coï thãm maûch NAND âãø taûo tên hiãûu cho pheïp maûch giaíi maî vaì tên hiãûu yãu cáöu âåüi âãø âæa âãún chán RDI1 cuía 8284 (âaî âæåüc trçnh baìy åí pháön træåïc). Bàòng caïch naìy mäùi khi CPU âåüi EPROM 2732 täúc âäü cháûm thç 1 chu kyì âåüi seî âæåüc tæû âäüng xen thãm.
A0 - A11
2732
D0 - D7
Bus A
Bäü taûo Tw
Bus D
Tåïi
RYD1
Cuía
8284
F0000-F1FFF
A
B
C
LS138
A12
A13
A14
Caïc chán choün voí cho 7 maûch 2764-15 khaïc
A15 CS
A16
A17
FE000-FFFFF
A18
A19 Vcc
IO/
Hçnh 5.21. Phäúi gheïp EPROM 2732 - 450 ns våïi CPU 8088 - 5MHz.
Viãûc phäúi gheïp SRAM våïi 8088 thæåìng âån giaín hån so våïi EPROM vç SROM coï täúc âäü nhanh nãn khäng cáön maûch xen thãm chu kyì âåüi.
Trong hçnh 5.23 ta coï thãø tháúy viãûc gheïp 16KB SRAM våïi CPU coï duìng mäüt bäü giaíi maî kiãøu 74LS138. khäúi 16KB SRAM naìy bàõt âáöu taûi âëa chè tháúp nháút laì 00000H bao truìm vuìng nhåï chæïa baíng vectå ngàõt cuía CPU 8088.
Váún âãö kiãøm tra parity âãø phaït hiãûn läùi trong bäü nhåï RAM :
Do caïc bäü nhåï baïn dáùn DRAM duìng cho maïy vi tênh ngaìy nay coï giaï caí ngaìy caìng reî nãn ngæåìi ta âaî âæa vaìo sæí duûng caïc vuìng nhåï dung læåüng ngaìy caìng låïn vaì vç váûy viãûc kiãøm tra parity âãø phaït hiãûn läùi trong thiãút bë nhåï laì mäüt váún dãö bæïc thiãút. Baín cháút cuía váún âãö åí âáy laì ngæåìi ta phaíi duìng thãm 1 bit nhåï (bit thæï 9) âãø laìm kiãøm tra parity cho 8 bè dæî liãûu thæûc vaì ngæåìi ta so saïnh bit parity khi nghé vaì biãút parity khi âoüc âãø phaït hiãûn läùi. Ta coï thãø duìng 1 trong 2 kiãøu parity : parity chàôn hoàûc parity leî.
Nãúu ta duìng parity chàôn thç khi täøng säú bit 1 trong 8 bit seî laì chàôn thç ta ghi vaìo bit säú 9 laì 0 trong træåìng håüp ngæåüc laûi ta ghi vaìo bit säú 9 laì 1. Nãúu ta duìng parity leî thç khi täøng säú bit 1 trong 8 bit seî laì chàôn thç ta ghi vaìo bit säú 9 laì 1 trong træåìng håüp ngæåüc laûi ta ghi vaìo bit säú 9 laì 0.
Caïc cäng viãûc trãn coï thãø thæûc hiãûn bàòng chæång trçnh nhæng nãúu thæûc hiãûn bàòng maûch âiãûn tæí chuyãn duìng thç seî thu âæåüc kãút quaí nhanh hån ráút nhiãöu.
Trong thæûc tãú ngæåìi ta âaî chãú taûo ra nhæîng vi maûch chuyãn duìng âãø duìng trong viãûc kiãøm tra parity nhàòm xaïc âënh läùi cuía bäü nhåï khi hoaût âäüng mäüt trong nhæîng vi maûch naìy laì maûch taûo parity vaì phaït hiãûn läùi parity 74AS280. chæïc nàng cuía maûch âæåüc mä taí trãn hçnh 5.22.
Caïch hoaût âäüng cuía maûch nhæ sau : nãúu ta âæa 9 bit dæî liãûu vaìo 9 âáöu vaìo cuía vi maûch naìy thç tuyì theo säú læåüng caïc bit 1 cuía dæî liãûu maì ta 0seî thu âæåüc åí âáöu ra Even (chàôn) vaì âáöu ra Odd (leî) caïc giaï trë nhæ âæåüc cho trong baíng bãn caûnh
maî 74LS139 coï chæïc nàng gáön giäúng 74LS138 maì chuïng ta âaî noïi åí pháön træåïc. Trong så âäö naìy ta duìng parity leí. tæïc laì khi säú bêt 1 taûi caïc âáöu vaìo A-H cuía 74AS280 A laì chàôn (âáöu vaìo mäüt näúi âáút) thç ta ghi 1 bäü nhåï parity, ngæåüc laûi thç ta ghi 0 taûi âoï. Khi âoüc säú liãûu, bêt paraty âæåüc âæa âãún âáöu vaìo I cuía 74AS280 B. Nhæ váûy nãúu caïc bêt âoüc âæåüc taûi caïc chán tæì A-H laì khäng âäøi thç åí âáöu ra SEven cuía 74AS280 B laì 0 vaì khäng xuáút hiãûn yãu cáöu ngàõt MNI.
Våïi så âäö maûch trãn hçnh 5.23 ta coï khaí nàng phaït hiãûn sai taûi 1 bêt naìo âoï cuía tæì nhåï.
Hçnh 5.23. Så âäö 16KBSRAM coï trang bë bäü kiãøm tra parity.
Trong thæûc tãú täön taûi nhæîng maûch ráút phæïc taûp coï khaí nàng phaït hiãûn sai vaì sæía sai âãø duìng cho caïc bäü nhåï cho caïc vi maïy tênh (vê duû maûch 74LS636, våïi 5 bêt parity ghi thãm vaìo tæì nhåï 8 bêt cuía bäü nhåï, coï khaí nàng phaït hiãûn sai taûi 2 bêt vaì tæû âäüng sæía sai âäúi våïi træåìng håüp coï läùi taûi mäüt bêt).
Nãúu so saïnh våïi SRAM thç viãûc phäúi gheïp CPU våïi DRAM seî phæïc taûp hån vç ta cáön phaíi coï thãm caïc maûch däön kãnh âëa chè vaì maûch laìm tæåi. Nhæ ta âaî biãút åí pháön træåïc, muäún cho caïc thäng tin læu giæî taûi DRAM (trãn caïc pháön tæí nhåï kiãøu tuû âiãûn MOS) âæåüc baío toaìn thç theo âënh kyì 15,6 ms mäùi pháön tæí nhoí cuía DRAM phaíi âæåüc laìm tæåi laûi mäüt láön.
Caïc maûch nhåï DRAM thæåìng coï 2 chãú âäü laìm tæåi.
+ Laìm tæåi caí maíng: mäüt maíng caïc pháön tæí gäöm 128-256 (hoàûc 512) hàòng âæåüc choün ra âãø âæåüc laìm tæåi cæï 2-4ms (hoàûc 8ms) 1 láön.
+ Laìm tæåi tæìng haìng: våïi täúc âäü sao cho âaím baío mäùi pháön tæí âãöu âæåüc laìm tæåi trong giåïi haûn 15,6 ms.
Viãûc laìm tæåi mäùi pháön tæí nhåï thæûc hiãûn bàòng caïch ghi hoàûc âoüc mäüt loaût caïc ä nhåï. Säú læåüng bêt âæåüc laìm tæåi cuìng mäüt luïc phuû thuäüc vaìo täø chæïc bãn trong cuía mäùi maûch nhåï. Mäüt chu kyì laìm tæåi âàûc biãût laì mäüt chu kyì khi viãûc laìm tæåi laì cäng viãûc näüi bäü cuía DRAM vaì âæåüc hoaìn táút trong khi caïc bäü pháûn khaïc cuía bäü nhåï váùn âang laìm viãûc. Âiãöu naìy âæåüc thæûc hiãûn nhåì viãûc âæa ra caïc tên hiãûu âëa chè haìng vaì duìng xung nhàòm choün ra mäüt haìng caïc pháön tæí cáön âæåüc laìm tæåi (RAS only refresh). Xung seî khiãún cho doìng âënh choün laìm tæåi âæåüc âoüc vaì ghi laûi. Âëa chè laìm tæåi âæåüc láúy tæì mäüt bäü âãúm 7,8 (hoàûc 9) bêt tuyì theo kêch thæåïc cuía maûch nhåï cáön laìm tæåi, näüi dung cuía bäü âãúm naìy âæåüc tàng lãn sau mäùi chu kyì laìm tæåi sao cho táút caí caïc doìng âãöu âæåüc laìm tæåi trong thåìi gian âaî âënh (hçnh 5.24). Kiãøu laìm tæåi naìy coìn âæåüc goüi laì laìm tæåi áøn vç trong luïc laìm tæåi mäüt vuìng naìo âoï cuía DRAM thç bäü vi xæí lyï váùn âæåüc ghi/âoüc åí vuìng nhåï khaïc..
Âäúi våïi DRAM noïi chung caïc nhaì chãú taûo âaî cáúu truïc maûch sao cho thåìi gian laìm tæåi cho 1 pháön tæí laì 1,5 ms.
Caïc cäng viãûc phaíi laìm khi phäúi gheïp DRAM våïi vi xæí lyï laì:
+ Däön kãnh 2 loaûi tên hiãûu âëa chè cho mäùi maûch nhåï vaì cung cáúp xung cho pheïp chäút âëa chè vaì .
+ Cung cáúp caïc tên hiãûu âiãöu khiãøn viãûc ghi/ âoüc bäü nhåï.
+ Laìm tæåi mäùi haìng trong thåìi gian thêch håüp.
+ Âaím baío khäng coï trang cháúp trong hoaût âäüng ghi/âoüc bçnh thæåìng cuía CPU våïi cäng viãûc laìm tæåi.
Âãø laìm âån giaín viãûc phäúi gheïp CPU-DRAM, caïc nhaì saín xuáút vi maûch âaî cung cáúp caïc bäü âiãöu khiãøn DRAM thæûc hiãûn caïc chæïc nàng cuía maûch däön kãnh cho âëa chè haìng, cäüt vaì maûch laìm tæåi maì khäng aính hæåíng nhiãöu âãún hoaût âäüng bçnh thæåìng cuía hãû vi xæí lyï.
Hçnh 5.24. Chu kyì laìm tæåi cho RAM TM34464 (64K´4).
Bäü âiãöu khiãøn DRAM
Chuïng ta seî giåïi thiãûu så qua taûi âáy bäü âiãöu khiãøn DRAM TMS 4500A.
Trãn hçnh 5.25 laì så âäö khäúi cuía bäü âiãöu khiãøn DRAM. Trong TMS 4500A coï bäü däön kãnh âëa chè, bäü âãúm âëa chè laìm tæåi vaì caïc bäü pháûn taûo xung riãng cáön thiãút cho viãûc laìm tæåi.
Mä taí caïc chán tên hiãûu cuía bäü âiãöu khiãøn DRAM TMS 4500A
+ RA0-RA7 [I]: Âëa chè haìng., thæåìng âæåüc näúi våïi buï âëa chè taûi caïc chán âëa chè tháúp A0-A7.
+ CA0- CA7 [I]: âëa chè cäüt, thæåìng âæåüc näúi våïi bus âëa chè taûi caïc chán âëa chè cao.A8- A15.
+ MA0-MA7[O]: Âëa chè cho vi maûch nhåï, âæåüc näúi træûc tiãúp våïi DRAM taûi caïc chán âëa chè A0-A7.
+ ALE [I]: Cho pheïp chäút caïc tên hiãûu âëa chè haìng, âëa chè cäüt REN1 vaì .
+ .[I]: Xung choün maûch âãø bàõt âáöu viãûc ghi/âoüc DRAM, âæåüc näúi qua bäü âiãöu khiãøn trong thåìi âiãøm sæåìn xuäúng cuía xung ALE.
+ REN1 [I] : Choün 1 trong 2 khäúi nhåï DRAM näúi våïi bäü âiãöu khiãøn (REN=1) thç choün , REN1=0 thç chon 1
+ [I]: Sæåìn lãn cuía xung naìy kãút thuïc viãûc âoüc. Thæåìng âæåüc näúi våïi trong chãú âäü MN.
+ [I]: Sæåìn lãn cuía xung naìy kãút thuïc viãûc ghi. Thæåìng âæåüc näúi våïi trong chãú âäü MN.
+ CLK [I]: âáöu vaìo cho xung âäöng häö (näúi våïi CLK cuía PCU).
Hçnh 5.25. Bäü âiãöu khiãøn DRAM TMS 4500A
+ : Xung vaìo âiãöu khiãøn viãûc bàõt âáöu chu kyì laìm tæåi hoàûc xung ra âãø baïo cho bãn ngoaìi biãút bäü nhæï âang âæåüc laìm tæåi.
+ : Caïc chán cho pheïp chäút âëa chè haìng cuía RAM.
+ [O]: Chán cho pheïp chäút âëa chè cäüt cuía DRAM.
+ RDY [O]: RDY = 0 khi DRAM âang âæåüc laìm tæåi (näúi âãún RDY cuía 8284).
+ TWST [I]: (Timing/wait strap) choün traûng thaïi chåì vaì caïc thäng säú thåìi gian khaïc khi TWST = 1 thç CPU seî phaíi xen thãm 1 traûng thaïi chåì khi ghi/âoüc.
+ FSO,FS1 [I]: cuìng våïi TWST choün chãú âäü vaì táön säú laìm viãûc (baíng 5.6).
Hoaût âäüng cuía TMS 4500A
Trãn hçnh 5.26 laì mäüt thê duû æïng duûng cuía bäü âiãöu khiãøn DRAM TMS 4500A trong maûch nhåï gäöm 4´4464 âãø taûo nãn bäü nhåï 128 KB bàõt âáöu taûi âëa chè 00000H. Cáön læu yï caïch sæí duûng caïc chán REN1 näúi våïi A16 âãø choün ra 2 maính 64KB vaì näúi våïi maûch NAND âãø âàût 2 maíng nhåï vaìo vuìng âëa chè âaî âënh. Caïc chán TWST FS1 vaì FSO âæåüc âàût laì 0,1 vaì 1 âãø khäng coï traûng thaïi chåì vaì viãûc laìm tæåi âæåüc tiãún haình sau 61 chu kyì âäöng häö vaì keïo daìi trong 4 nhëp cuía xung laìm tæåi. Våïi táön säú fCLK = 5 MHz thç nhëp âäü laìm tæåi cho mäùi haìng laì 12,2 ms (xáúp xè våïi giaï trë âaî âæåüc noïi âãún taûi pháön træåïc laì 15,6ms). Khi bäü âiãöu khiãøn laìm tæåi nhåï thç RDY = 0 vaì CPU bë âæa vaìo traûng thaïi chåì.
Baíng 5.6. Choün chãú âäü cuía TMS 4500A.
TWST
FS1
FSO
Säú traûng thaïi chåì
Chu kyì laìm tæåi
Táön säú xung laìm tæåi(KHz)
Säú nhëp cho 1 láön laìm tæåi
0
0
0
0
ngoaìi
REFREQ
4
0
0
1
0
Tclk ´ 31
64-95
3
0
1
0
0
Tclk ´ 46
64-85
3
0
1
1
0
Tclk ´ 61
64-82
4
1
0
0
1
Tclk ´ 46
64-85
3
1
0
1
1
Tclk ´ 61
64-80
4
1
1
0
1
Tclk ´ 76
64-77
4
1
1
1
1
Tclk ´ 76
64-88
4
Hçnh 5.26. TMS 4500A vaì 128 KB DRAM taûi âëa chè 00000FH-1FFFFH
Hçnh 5.27 mä taí caïc xung cuía bäü âiãöu khieenr khi noï hoaût âäüng. Cáön læu yï laì xung yãu cáöu laìm tæåi coï tæì bãn trong maûch, âæåüc taûo ra sau 61 chu kyì âäöng häö vaì phaíi chåì cho chu kyì bus hiãûn taûi âæåüc hoaìn táút thç måïi coï taïc duûng.
Hçnh 5.27. Biãøu âäö thåìi gian cuía bäü âiãöu khiãøn TMS 4500A
3. Phäúi gheïp 8088 våïi thiãút bë ngoaûi vi
3.1. Caïc kiãøu phäúi gheïp vaìo/ra
Âäúi våïi 8088 (hay hoü 80x86 noïi chung) coï 3 caïch phäúi gheïp CPU våïi caïc thiãút bë ngoaûi vi (caïc cäøng vaìo/ra, I/O) : a) thiãút bë ngoaûi vi coï khäng gian âëa chè taïch biãût våïi bäü nhåï vaì b) thiãút bë ngoaûi coï khäng gian âëa chè chung våïi bäü nhåï.
Thiãút bë vaìo/ra coï khäng gian âëa chè taïch biãût
Trong caïch phäúi gheïp naìy, bäü nhåï âæåüc âäüc quyãön duìng khäng gian 1MB maì CPU daình cho noï. Caïc thiãút bë ngoaûi vi (caïc cäøng) seî âæåüc daình riãng mäüt khäng gian 64KB cho mäùi loaûi cäøng vaìo hoàûc ra. Táút nhiãn ta phaíi duìng tên hiãûu IO/M, vaì caïc lãûnh trao âäøi dæî liãûu mäüt caïch thêch håüp cho mäùi khäng gian âoï (xem hçnh 5.28a).
Thiãút bë vaìo/ra vaì bäü nhåï coï chung khäng gian âëa chè
Trong caïch phäúi gheïp naìy, bäü nhåï vaì thiãút bë ngoaûi vi cuìng chia nhau khäng gian âëa chè 1MB maì CPU 8088 coï khaí nàng âëa chè hoïa. Caïc thiãút bë ngoaûi vi seî chiãúm mäüt vuìng naìo âoï trong khäng gian 1MB, pháön coìn laûi laì cuía bäü nhåï. Táút nhiãn trong træåìng håüp naìy ta duìng chung tên hiãûu IO/=0 vaì lãûnh trao âäøi dæî liãûu kiãøu lãûnh MOV cho caí bäü nhåï vaì thiãút bë ngoaûi vi (xem hçnh 5.28.b)
3.2. Giaíi maî âëa chè cho thiãút bë vaìo/ra
Viãûc giaíi maî âëa chè cho thiãút bë vaìo/ra cuîng gáön giäúng nhæ giaíi maî âëa chè cho maûch nhåï. Ta seî nháún maûnh åí âáy viãûc giaíi maî âëa chè cho caïc cäøng. Thäng thæåìng caïc cäøng coï âëa chè 8 bit taûi A0-A7, trong mäüt säú hãû vi xæí lyï khaïc (nhæ caïc maïy IBM PC) caïc cäøng coï 16 bit taûi A0 - A15. Tuyì theo âäü daìi cuía toaïn haûng trong lãûnh laì 8 hay 16 bit ta saín xuáút coï 1 cäøng 8 bit coï âëa chè liãn nhau âãø taûo nãn tæì våïi âäü daìi tæång æïng. Trong thæûc tãú êt coï hãû sæí duûng hãút 256 cäøng vaìo/ra khaïc nhau nãn ta chè xeït åí âáy caïc bäü giaíi maî âëa chè 8 bit A0-A7 vaì maûch giaíi maî thäng duûng coï sàôn 9nhæ 74LS138 chàóng haûn) âãø taûo ra caïc xung choün thiãút bë.
Caïc maûch giaíi maî âån giaín coï thãø taûo âæåüc tæì maûch NAND nhæ hçnh 5.29.
Trong træåìng håüp cáön nhiãu xung choün åí âáöu ra cho caïc cäøng vaìo/ra coï âëa chè liãn tiãúp, ta coï thãø duìng caïc maûch giaíi maî coï sàôn kiãøu 74LS138. Thê duû trãn hçnh 5.30 trçnh baìy 2 maûch tæång tæû nhau duìng 74LS138 âãø giaíi maî âëa chè cho 8 cäøng vaìo vaì 8 cäøng ra. Trãn cå såí maûch naìy ta cuîng coï thãø phäúi håüp våïi caí hai tên hiãûu âoüc vaì ghi âãø taûo ra tên hiãûu choün cho viãûc âoüc/ghi tæìng cäøng vaìo/ra ra cuû thãø. Bäü giaíi maî nhæ váûy âæåüc minh hoaû trãn hçnh 5.31.
Hçnh 5.30. Caïc bäü giaín maî våïi âëa chè 00-07 cho a) cäøng vaìo ; b) cäøng ra.
Hçnh 5.31. Mäüt bäü giaíi maî cho cäøng vaìo vaì cäøng ra våïi âëa chè 7CH-7FH
3.3. Caïc maûch cäøng âån giaín
Trong thæûc tãú coï ráút nhiãöu vi maûch täø håüp cåî væìa coï thãø âæåüc duìng laìm cäøng phäúi gheïp våïi bäü vi xæí lyï âãø vaìo/ra dæî liãûu. Caïc maûch naìy thæåìng âæåüc cáúu taûo nãn tæì caïc maûch chäút 8 bit coï âáöu ra 3 traûng haï (74LS373: kêch theo mæïc; 74LS374: kêch theo sæåìn), caïc maûch khuãúch âaûi âãûm 2 chiãöu 8 bit âáöu ra 3 traûng thaïi (74LS245). Chuïng âæåüc duìng trong caïc phäúi gheïp âån giaín âãø laìm cho CPU vaì thiãút bë ngoaûi vi hoaût âäüng tæång thêch våïi nhau, vê duû nhæ âãø âãûm bus hoàûc caïc maûch cäøng âãø taûo ra caïc tên hiãûu moïc näúi...
Trãn hçnh 5.32 laì vê duû mäüt maûch phäúi gheïp âån giaín duìng maûch 74LS373 âãø âæa tên hiãûu ra âiãöu khiãøn caïc âeìn LED bàòng lãûnh OUT 7CH, AL.
Hçnh 5.32. Mäüt maûch phäúi gheïp ra âån giaín duìng 74LS373
Trãn hçnh 5.33 laì vê duû mäüt maûch phäúi gheïp âån giaín duìng maûch 74LS244 âãø âoüc tên hiãûu tæì thiãút bë ngoaûi vi vaìo CPU bàòng lãûnh IN Al,7CH.
Hçnh 5.33. Mäüt maûch phäúi gheïp ra âån giaín duìng 74LS244
Ngoaìi caïc maûch phäúi gheïp âån giaín åí trãn, trong thæûc tãú coìn coï caïc maûch phäúi gheïp láûp trçnh âæåüc duìng cho caïc cäng viãûc täø chæïc vaìo/ra dæî liãûu phæïc taûp hån.
3.4. Maûch phäúi gheïp vaìo/ra song song láûp trçnh âæåüc 8255A
Maûch 8255A thæåìng âæåüc goüi laì maûch phäúi gheïp vaìo/ra láûp trçnh âæåüc (program mable peripheral interface, PPI). Do khaí nàng mãöm deío trong caïc æïng duûng thæûc tãú noï laì maûch phäúi gheïp âæåüc duìng ráút phäø biãún cho caïc hãû vi xæí lyï 8-16 bit. Så âäö khäúi mä taí chæïc nàng bãn trong cuía 8255A âæåüc thãø hiãûn trãn hçnh 5.34.
Caïc chán tên hiãûu cuía 8255A coï yï nghéa khaï roî raìng. Chán Reset phaíi âæåüc näúi våïi tên hiãûu reset chung cuía toaìn hãû (khi reset thç caïc cäøng âæåüc âënh nghéa laì cäøng vaìo âãø khäng gáy ra sæû cäú cho caïc maûch âiãöu khiãøn). CS âæåüc näúi våïi maûch taûo xung choün thiãút bë âãø âàût maûch 8255A vaìo mäüt âëa chè cå såí naìo âoï. caïc tên hiãûu âëa chè A0, A1 seî choün ra 4 thanh ghi bãn trong 8255A 1 thanh ghi âãø ghi tæì âiãöu khiãøn cho hoaût âäüng cuía 8255A (viãút tàõt laì CWR, control word register) vaì 3 thanh ghi khaïc æïng våïi caïc cäøng (port) laì PA, PB, PC âãø ghi/âoüc dæî liãûu (xem baíng 5.7). Theo baíng naìy ta nháûn tháúy âëa chè cho PA cuîng chênh laì âëa chè cå såí cuía 8255A.
Coï 2 loaûi tæì âiãöu khiãøn cho 8255A:
+ Tæì âiãöu khiãøn âënh nghéa cáúu hçnh cho caïc cäøng PA, PB, PC
+ Tæì âiãöu khiãøn láûp/xoïa tæìng bit åí âáöu ra cuía PC
Hçnh 5.34. Så âäö khäúi cáúu truïc bãn trong cuía 8255A
A1
A0
Choün ra
1
x
x
khäng choün
0
0
0
PA
0
0
1
PB
0
1
0
PC
0
1
1
CWR
Tæì âiãöu khiãøn âënh nghéa cáúu hçnh
Daûng thæïc cuía tæì âiãöu khiãøn âãø âënh cáúu hçnh âæåüc thãø hiãûn trãn hçnh 5.35.
· Tæì âiãöu khiãøn láûp/xoaï bit ra PCi:
Daûng thæïc cuía tæì âiãöu khiãøn âãø láûp/xoaï PCi âæåüc thãø hiãûn trãn hçnh 5.36.
Láûp/xoaï
0
0
0
0
S/R
Maî hoaï PCi 1: láûp PCi
000 : PC0 0: xoaï PCi
...
111 : PC7
Nhæ ta tháúy åí trãn, caïc chãú âäü (mode) laìm viãûc cuía maûch cäøng 8255A coï thãø âæåüc âënh nghéa bàòng tæì âiãöu khiãøn CWR. Cuû thãø 8255A coï 4 chãú âäü laìm viãûc:
+ Chãú âäü 0: "Vaìo/ra cå såí" (coìn goüi laì "vaìo ra âån giaín"). Trong chãú âäü naìy mäùi cäøng PA. PB. PCH vaì PCL âãöu coï thãø âæåüc âënh nghéa laì caïc cäøng vaìo hoàûc ra.
+ Chãú âäü 1: "Vaìo/ra coï xung cho pheïp". Trong chãú âäü naìy mäùi cäøng PA. PB coï thãø âæåüc âënh nghéa thaình cäøng vaìo hoàûc ra våïi tên hiãûu moïc näúi (handshaking) do caïc bit tæång æïng cuía cäøng PC trong cuìng nhoïm âaím nhiãûm.
+ Chãú âäü 2: "Vaìo ra 2 chiãöu".Trong chãú âäü naìy chè riãng cäøng PA coï thãø âæåüc âënh nghéa thaình cäøng vaìo/ra 2 chiãöu våïi caïc tên hiãûu moïc näúi do caïc bit cuía cäøng PC âaím nhiãûm. Cäøng PB coï thãø laìm viãûc trong chãú âäü 0 hoàûc 1.
+ Láûp/xoaï caïc bit PCi: chãú âäü naìy coï thãø tháúy roî trãn hçnh 5.36.
Sau âáy ta seî giåïi thiãûu cuû thãø caïc chãú âäü laìm viãûc 0, 1 vaì 2 cuía 8255A.
Chãú âäü 0: "Vaìo/ra cå såí"
Trong chãú âäü naìy, bäún cäøng PA, PB, PCH, PCL âãöu coï thãø âæåüc âënh nghéa laì cäøng vaìo hoàûc cäøng ra. Nhæ váûy, våïi täø håüp táút caí caïc khaí nàng vaìo/ra cho 4 cäøng âoï ta coï âæåüc 16 cáúu hçnh khaïc nhau.
Chãú âäü 1: "Vaìo/ra coï xung cho pheïp"
Hçnh 5.37. Maûch 8255A åí chãú âäü 1 vaì caïc tên hiãûu traûng thaïi.
Âãø âån giaín ta coi PA vaì PB cuìng âæåüc âënh nghéa laì cäøng ra hoàûc cäøng vaìo.
Ra dæî liãûu trong chãú âäü 1 (hçnh 5.37 a)
ÅÍ âáy PA vaì PB cuìng âæåüc âënh nghéa laì cäøng ra vaì coï tên hiãûu moïc näúi tæång âæång nhau cho viãûc trao âäøi dæî liãûu. Ta chè cáön giåïi thiãûu åí âáy caïc tên hiãûu cho PA, caïc tên hiãûu cho PB cuîng tæång tæû:
+ (Âãûm ra cuía PA âáöy). Tên hiãûu baïo cho thiãút bë ngoaûi vi biãút CPU âaî ghi dæî liãûu vaìo cäøng âãø chuáøn bë âæa ra. Tên hiãûu naìy thæåìng âæåüc näúi våïi cuía thiãút bë nháûn.
+ (Traí låìi âaî nháûn âæåüc dæî liãûu). Âáy laì tên hiãûu cuía thiãút bë ngoaûi vi cho biãút laì noï âaî nháûn âæåüc dæî liãûu tæì PA cuía 8255A.
+ INTRA (Yãu cáöu ngàõt tæì PA). Âáy laì kãút quaí thu âæåüc tæì quan hãû giæîa caïc tên hiãûu khaïc cuía 8255A trong quaï trçnh âäúi thoaûi våïi thiãút bë ngoaûi vi, noï âæåüc duìng âãø phaín aính yãu cáöu ngàõt cuía PA tåïi CPU (xem biãøu âäö quan hãû giæîa caïc tên hiãûu trong hçnh 5.38).
+ INTEA laì tên hiãûu cuía mäüt maûch láût bãn trong 8255A âãø cho pheïp/cáúm yãu cáöu ngàõt INTRA cuía PA. INTEA âæåüc láûp/xoaï thäng qua bit PC6 cuía PC.
Caïc tên hiãûu âäúi thoaûi-traûng thaïi kãø trãn âãöu coï thãø láúy træûc tiãúp âæåüc tæì caïc chán tæång æïng cuía vi maûch hoàûc âæåüc âoüc vaìo CPU thäng qua viãûc âoüc cäøng PC (xem hçnh 5.37c âãø tháúy traûng thaïi âoüc âæåüc khi 8255A âæåüc âënh nghéa åí chãú âäü 1).
Vaìo dæî liãûu trong chãú âäü 1 (hçnh 5.37 b)
ÅÍ âáy PA vaì PB âæåüc âënh nghéa laì cäøng vaìo vaì coï caïc tên hiãûu moïc näúi tæång âæång nhau cho viãûc trao âäøi dæî liãu. Ta chè cáön giåïi thiãûu åí âáy caïc tên hiãûu cho PA, caïc tên hiãûu cho PB cuîng tæång tæû:
+ (Cho pheïp chäút dæî liãûu): Khi dæî liãûu âaî sàôn saìng âãø âæåüc âoüc vaìo bàòng PA, thiãút bë ngoaûi vi phaíi duìng âãø baïo cho 8255A biãút maì chäút dæî liãûu.
+ IBF (Âãûm vaìo âáöy): Sau khi 8255A chäút âæåüc dæî liãûu do thiãút bë ngoaûi vi âæa âãún noï âæa ra tên hiãûu IBF âãø baïo cho thiãút bë ngoaûi vi biãút laì âaî chäút xong.
+ INTRA (yãu cáöu ngàõt tæì cäøng PA): Tên hiãûu âãø baïo cho CPU biãút laì âaî coï dæî liãûu sàôn saìng âãø âoüc tæì PA. Âáy laì kãút quaí thu âæåüc tæì quan hãû giæîa caïc tên hiãûu khaïc cuía 8255A trong quaï trçnh âäúi thoaûi våïi thiãút bë ngoaûi vi (xem biãøu âäö quan hãû giæîa caïc tên hiãûu trong hçnh 5.39).
+ INTEA laì tên hiãûu cuía mäüt maûch laût bãn trong 8255A âãø cho pheïp/cáúm yãu cáöu ngàõt INTRA cuía PA. INTEA âæåüc láp/xoaï thäng qua bit PC4 cuía PC.
Mäüt säú trong caïc tên hiãûu âäúi thoaûi-traûng thaïi kãø trãn âãöu coï thãø láúy âæåüc træûc tiãúp tæì chán tæång æïng cuía vi maûch hoàûc coï thãø âæåüc âoüc vaìo CPU thäng qua viãûc âoüc PC (xem hçnh 5.37d).
CaÏc tên hiãûu âäúi thoaûi-traûng thaïi coï thãø âæåüc sæí duûng laìm tên hiãûu moïc näúi cho caïc kiãøu vaìo/ra dæî liãûu bàòng caïch ngàõt CPU hay bàòng caïch thàm doì traûng thaïi sàôn saìng cuía thiãút bë ngoaûi vi (seî âæåüc trçnh baìy trong caïc pháön sau).
Chãú âäü 2: "Bus 2 chiãöu" (hçnh 5.40)
Trong chãú âäü naìy chè riãng cäøng PA âæåüc âënh nghéa âãø laìm viãûc nhæ mäüt cäøng 2 chiãöu coï caïc tên hiãûu moïc näúi do mäüt säú bit cuía PC âaím nhiãûm, coìn PB thç coï thãø laìm viãûc åí chãú âäü 1 hoàûc 0 tuyì theo caïc bit âiãöu khiãøn trong CWR. Caïc chán tên hiãûu coìn laûi cuía PC coï thãø âæåüc âënh nghéa âãø laìm viãûc nhæ caïc chán vaìo hoàûc ra, hoàûc phuûc vuû cho cäøng PB.
Hçnh 5.40. 8255A åí chãú âäü "Bus hai chiãöu".
Mäüt säú tên hiãûu moïc näúi âàûc biãût cáön giåïi thiãûu cuía PA gäöm:
+ INTRA: Yãu cáöu ngàõt cho dæî liãûu theo hai chiãöu vaìo vaì ra.
+ INTE1 vaì INTE2 laì 2 tên hiãûu cuía 2 maûch láût bãn trong 8255A âãø cho pheïp/cáúm yãu cáöu ngàõt cuía cäøng PA. Caïc bit naìy âæåüc láûp/xoaï båíi caïc bit PC6 vaì PC4 cuía cäøng PC.
Biãøu âäö thåìi gian cuía caïc tên hiãûu moïc näúi cuía 8255A âæåüc biãøu hiãûn trãn hçnh 5.41.
Mäüt säú trong caïc tên hiãûu âäúi thoaûi-traûng thaïi kãø trãn âãöu coï thãø láúy âæåüc træûc tiãúp tæì chán tæång æïng cuía vi maûch hoàûc coï thãø âoüc âæåüc vaìo CPU tæì cäøng PC vaì cho pheïp âiãöu khiãøn viãûc trao âäøi dæî liãûu bàòng caïch thàm doì caïc tên hiãûu naìy.
Khi duìng 8255A trong chãú âäü bus 2 chiãöu âãø trao âäøi dæî liãûu theo caïch thàm doì ta phaíi kiãøm tra xem bit coï bàòng 1 (âãûm ra räùng) hay khäng træåïc khi duìng lãûnh IN âãø âoüc dæî liãûu vaìo tæì cäøng PA.
Sau âáy laì mäüt vaìi vê duû vãö caïch láûp trçnh cho 8255A.
· Vê duû 1: Giaí thiãút maûch 8255A coï caïc âëa chè sau:
Âëa chè Thanh ghi (cäøng)
7Ch PA
7Dh PB
7Eh PC
7Fh CWR
Láûp trçnh âãø âënh nghéa chãú âäü 0 cho 8255A våïi cáúu hçnh caïc cäøng nhæ sau:
PA: Ra
PB: Vaìo
PCH: Ra
PCL: Vaìo
Sau âoï âoüc caïc giaï trë dæî liãûu coï taûi PB räöi âæa ra PA vaì
PCL räöi âæa ra PCH.
Giaíi: Coï thãø âënh nghéa caïc hàòng cho cäøng, thanh ghi tæì âiãöu khiãøn vaì cho tæì âiãöu khiãøn nhåì lãûnh giaí EQU:
PA EQU 7CH
PB EQU 7DH
PC EQU 7EH
CWR EQU 7FH
CW EQU 83H ; tæì âiãöu khiãøn cho yãu
; cáöu trãn 83H=10000011
vaì sau âoï duìng hàòng âoï vaìo viãûc âënh nghéa cáúu hçnh cho 8255A:
MOV AL, CW ; tæì âiãöu khiãøn trong AL
OUT CWR, AL ; âæa CW vaìo CWR
IN AL, PB ; âoüc cäøng PB
OUT PA, AL ; âæa dæî liãûu âoüc âæåüc ra cäøng PA
IN AL, PC ; âoüc cäøng PCL
MOV CL, 4 ; säú láön quay AL
ROL AL, CL ; chuyãøn 4 bit tháúp thaình 4 bit cao
OUT PC, AL ; âæa dæî liãûu âoüc âæåüc ra cäøng PCH
· Vê duû 2: Láûp trçnh âãø bit PC4 cuía 8255A åí vê duû trãn taûo ra 256 xung våïi T=50ms, âäü räüng 50%. Giaí thiãút âaî coï sàôn chæång trçnh con trãù 25ms laì TRE25MS.
Giaíi: Sæí duûng caïc kyï hiãûu åí vê duû trãn vaì caïc âënh nghéa måïi
PC4ON EQU 09H ; tæì âiãöu khiãøn âãø PC4=1 (On): 00001001B
PC4OF EQU 08H ; tæì âiãöu khiãøn âãø PC4=0 (Off): 00001000B
ta coï máùu chæång trçnh sau:
MOV CX, 100H ; säú xung phaíi taûo ra
CLI ; cáúm ngàõt âãø yãn tám maì
; taûo xung
Lap: MOV AL, PC4ON ; tæì âiãöu khiãøn cho PC4=1.
OUT PC, AL ; PC4=1
CALL TRE25MS ; keïo daìi 25ms.
MOV AL,PC4OFF ; PC4=0
CALL TRE25MS ; Làûp cho âuí säú xung
STI ; cho pheïp ngàõt tråí laûi
...
Trong vê duû trãn ta chuï yï lãûnh CLI (âãø cáúm ngàõt) vaì leûnh STI (âãø cho pheïp ngàõt) åí âáöu vaì cuäúi âoaûn chæång trçnh tênh thåìi gian taûo ra daîy xung. Âiãöu naìy laì cáön thiãút vç ta duìng chæång trçnh âãø taûo ra caïc khoaíng thåìi gian vaì vç thãú ta muäún caïc yãu cáöu ngàõt (nãúu coï) khäng aính hæåíng tåïi viãûc taûo ra caïc khoaíng thåìi gian âoï.
· Vê duû 3: coï maûch 8255A våïi âëa chè cå såí laì 30H näúi våïi caïc pháön tæí ngoaûi vi âån giaín (hçnh 5.42). Láûp trçnh âãø coï U1>U2 thç âoüc traûng thaïi cäng tàõc K, nãúu K âoïng thç cho âeìn LED tàõt, K måí thç cho âeìn LED saïng.
Giaíi:
Ta phaíi âënh nghéa caïc hàòng vaì tæì âiãöu khiãøn âãø âënh nghéa cáúu hçnh: PA laì vaìo, PB laì vaìo vaì PCH laì ra. Khi U1>U2 thç ta âoüc âæåüc PB7=1 (coìn khi thç PB7=0). Luïc naìy ta phaíi âoüc traûng thaïi cäng tàõc K âãø âiãöu khiãøn âeìn LED, nãúu K âoïng thç ta âoüc âæåüc PB7=0 vaì ta phaíi âæa ra PC4=) âãø tàõt âeìn.
Âënh nghéa caïc hàòng
PA EQU 30H
PB EQU 31H
PC EQU 32H
CWR EQU 33H
CW EQU 92H ; tæì âiãöu khiãøn cho yãu
; cáöu trãn 92H=10010010
âoaûn chæång trçnh coìn laûi laì:
MOV AL, CW ; tæì âiãöu khiãøn trong AL
OUT CWR, AL ; âæa CW vaìo CWR
DocPB: IN AL, PB ; âoüc cäøng PB
AND AL, 80H ; PB7=1?
JZ DocPB ; âoüc laûi
IN AL, PA ; âoüc cäøng PA
And AL, 01H ; khoaï K âoïng (PA1=0)?
JZ Tat ; âuïng, tàõt âeìn
MOV CL, 4
ROL AL, CL ; âäøi bit0 lãn bit4
OUT PC, AL ; âæa tên hiãûu thàõp âeìn
Tat: OUT PC, AL ; âæa tên hiãûu tàõt âeìn
Ra:...
Các file đính kèm theo tài liệu này:
- chuong 5.doc