Bài soạn vi xử lý - Chương 9: Một số phối ghép cơ bản

Tài liệu Bài soạn vi xử lý - Chương 9: Một số phối ghép cơ bản

doc62 trang | Chia sẻ: tranhong10 | Lượt xem: 958 | Lượt tải: 0download
Bạn đang xem trước 20 trang mẫu tài liệu Bài soạn vi xử lý - Chương 9: Một số phối ghép cơ bản, để tải tài liệu gốc về máy bạn click vào nút DOWNLOAD ở trên
CHÆÅNG 9 MÄÜT SÄÚ PHÄÚI GHEÏP CÅ BAÍN Phäúi gheïp våïi baìn phêm Baìn phêm laì mäüt thiãút bë vaìo ráút thäng duûng trong caïc hãû vi xæí lyï. Trong træåìng håüp dån giaín nháút âoï coï thãø laì mäüt cäng tàõc coï gàõn phêm ( maì ta chè thæåìng quan tám âãún kê hiãûu trãn baìn phêm) näúi vaìo moüt chán naìo âoï cuía bäü vi xæí lyï: åí mæïc phæïc taûp hån âoï coï thãø laì haìng chuûc cäng tàõc coï gàõn phêm âæåüc täø chæïc theo mäüt ma tráûn: phæïc taûp hån næîa, âoï laì mäüt hãû vi xæí lyï chuyãn duûng quaín lyï caí tràm cäng tàõc coï gàõn phêm våïi nhiãm vuûh nháûn ra phêm âæåüc goî vaì taûo maî âæa âãún hãû vi xæí lyï. Duì âån giaín hay mäüt täø håüp phêm, khi phäúi gheïp chuïng våïi bäü vi xæí lyï ta cuîng phaíi thoía maîn mäüt säú yãu cáöu âàûc biãût âãø âaím baío hãû thäúng laìm viãûc âuïng . Coï ráút nhiãöu cäng tàõc âæåüc duìng trong phäúi gheïp våïi bäü vi xæí lyï nhæng coï thãø xãúp chuïng vaìo hai nhoïm chênh: + cäng tàõc coï tiãúp xuïc ccå khê ( kiãøu âiãûn tråí: âiãûn tråí thay âäøi khi áún vaì khi nhaí phêm) + cäng tàõc khäng coï tiãúp xuïc cå khê kiãøu âiãûn dung: âiãûn dung thay âäøi khi áún vaì khi nhaí phêm hoàûc kiãøu hiãûu æïng Hall: âiãûn aïp thay âäøi khi áún vaì khi nhaí phêm). Trong caïc loaûi cäng tàõc âoï, loaûi cäng tàõc âiãûn tråí dæû trãn tiãúp xuïc cå khê laì ráút thäng duûng rong thæûc tãú. Trãn hçnh 9.1 laì caïc näúi cäng tàõc vaìo maûch âiãûn vaì âaïp æïng cuía noï khik coï læûc taïc âäüng vaìo phêm (áún phêm). F Ura +5V 1mN F t Ura 20ms .. t 20ms 20ms Hçnh 9.1 Aính hæåíng âäü rung cuía cäng tàõc Nhçn vaìo âaïp æïng vãö màût cå- âiãûn cuía cäng tàõc trãn hçnh 9.1. ta nháûn tháúy: vç cäng tàõc laì mäüt hãû thäúng coï quaïn tênh, do âoï khi ta áún phêm vaì nhaí phêm, xugn âiãûn thu âæåüc åí âáöu ra cuía noï khäng phaíi liãn tuûc maì bë ngàõt quaîng taûi caïc giai âoaûn quaï âäü( luïc bàõt âáöu áún phêm vaì luïc bàõt âáöu nhaí phêm). Âiãöu naìy xaíy ra laì do trong kãút cáúu cuía cäng tàõc coï caïc bäü pháûn âaìn häöi, khi bë taïc däüng cuía læûc bãn ngoaìi caïc kãút cáúu âäüng cuía cäng tàõc bë dao âäüng laìm cho bãö màût tiãúp xuïc cuía cäng tàõc bë biãún âäøi. Trong thæûc tãú thç mäùi quïa trçnh quaï âäü trãn keïo daìi khoaíng 10 -20 ms. Nãúu trong thåìi kç quaï âäü ta âoüc thäng tin tæì caïc cäng tàõc thç ráút dãù nháûn âæåüc thäng tin sai lãûch traûng thaïi cuía cäng tàõc, vç váûy ngæåìi ta thæåìng chåì khoaíng 10-20 ms sau khi cängt tàõc bë áún hay nhaí âãø âoüc traûng thaïi cuía cäng tàõc trong giai âoaûn xaïc láûp. Khi mäüt cäng tàõc âæåüc näúi træûc tiãúp vaì mäüt chán naìo âoï cuía bäü vi xæí lyï hoàûc caïc maûch phuû tråü, coï mäüt caïch khaïc âãø traïnh caïc hiãûu æïng khäng mong muäún coï thãø taïc âäüng lãn hoaût âäüng cuía bäü vi xæí lyï do cäng tàõc bë rung gáy laì duìng caïc maûch têch phán näúi bãn caûnh cäng tàõc nhæ trong træåìng håüp taûo tên hiãûu cho âáöu vaìo RESET cuía hãû vi xæí lyï ( xem hçnh 5.6). Tiãúp theo ta xeït truåìng håüp mäüt säú cäng tàõc nháút âënh âæåüc täø chæïc theo ma tráûn gäöm caïc haìng vaì caïc cäüt âãø taûo thaình baìn phêm cho mäüt hãû vi xæí lyï. Våïi täøng säú phêm khoíang 20-30 ( baìn phêm HEXA) thç âoï laì truåìng håüp thæåìng tháúy trong caïc hãû thäúng nhoí: caïc maïy vi tênh trãn mäüt baíng maûch in hoàûc caïc baíng maûch âiãöu khiãøn nhoí (hay âæåüc goüi laì “kit”). Trong caïc maïy tênh caï nhán nhæ IBM PC chàóng haûn thç säú phêm coï thãø laì tæì 80-101 phêm tuìy theo thãú hãû maïy. Âãø nháûn âæåüc thäng tin chênh xaïc vãö traûng thaïi cuía mäüt phêm trong caïc hãû thäúng nhæ váûy ta phaíi thæåìng laìm 3 khäúi cäng viãûc sau: +Phaït hiãûn coï áún phêm. + Chåì cäng tàõc åí traûng thaïi äøn âënh( chäúng rung). +Tçm phêm âæåüc áún vaì taûo maî cho phêm âoï. Vaì âãø coï âæåüc mäüt phäúi gheïp baìn phêm våïi bäü vi xæí lyï thæûc hiãûn caïc chæïc nàng âaî nãu åí trãn trong thæûc tãú ngæåìi ta coï thãø laìm theo 2 caïch: + duìng bäü vi xæí lyï âãø quaín lyï træûc tiãúp baìn phêm gheïp qua mäüt säú maûch cäøng. Coï thãø nháûn tháúy ràòng åí dáy CPU laìm viãûc theo chãú âäü thàm doì. Bàòng caïch naìy CPU phaíi âãø mäüt pháön thåìi gian âãø quaín lyï baìn phêm nhæng ta laûi âaût âæåüc sæû âån giaín vãö pháön cæïng. + duìng mäüt maûch quaín lyï baìn phêm chuyãn duûng âãø phäúi gheïp våïi baìn phêm. ÅÍ âáy CPU laìm viãûc våïi bäü quaín lyï baìn phêm qua yãu cáöu ngàõt. Bàòng caïch naìy ta coï thãø giaíi phoïng CPU âãø noï daình thåìi gian cho caïc viãûc khaïc quan troüng hån. D0 D1 D2 D3 D7 D6 D5 D4 D3 D2 D1 D0 +5V 1 0 3 2 C D E F 10K Cäøng ra 00 CPU Cäøng vaìo 01 Hçnh 9.2. Maûch phäúi gheïp baìn phêm CPU træûc tiãúp quaín lyï baìn phêm Trong caïch laìm naìy, âãø âån giaín trong trçnh baìy, ta giaí thiãút baìn phêm hãû 16 gäöm 16 cäng tàõc- phêm âaïnh dáúu tæì 0 - FH gheïp våïi bäü vi xæí lyï thäng qua caïc maûch cäøng nhæ trãn hçnh 9.2. Caïc maûhc cäøng coï thãø laì caïc maûch IC nhæ 74LS373 hoàûc mäüt pháönn cuía PPI 8255A âæåüc láûp trçnh thêch håüp. Thuáût toaïn cuía chæång trçnh âiãöu khiãøn viãûc phäúi gheïp CPU - baìn phêm theo så âäö pháön cæïng noïi trãn âæåüc trçnh baìy bàòng læu âäö trãn hçnh 9.3. Âáöu tiãn ta phaíi kiãøm tra tçnh traûng (täút, xáúu) cuía baìn phêm khi noï chæa âæåüc áún ( âuïng ra laì khi ta chæa këp áún phêm naìo hoàûc chæa këp áún phêm tiãúp theo) xem coï phêm naìo bë keûp ( dênh ) khäng bàòng caïch âæa ra caïc haìng vaì doüc caïc cäüt âãø queït toaìn bäü caïc phêm. Bàõt âáöu Âæa 0 ra mäüt haìng Âoüc caïc cäüt Phêm täút Âoüc caïc cäüt Coï phêm áún Chåì 20ms Âoüc caïc cäüt Coï phêm áún Âæa 0 ra mäüt haìng Âoüc caïc cäüt Tçm tháúy Taûo maî phêm Kãút thuïc Hçnh 9.3. Læu âäö thuáût toaïn chæång trçnh phäúi gheïp baìn phêm. Nãúu coï mäüt cäng tàõc naìo âoï näúi haìng vaì cäüt, mæïc âiãûn aïp 0 åí haìng seî truyãön sang cäüt vaì ta seî âoüc âæåüc åí cäüt tæång æïng mæïc âiãn aïp 0. Mäüt baìn phêm täút seî khäng coï caïc tiãúp âiãøm cuía mäüt cäng tàõc naì âæåüc näúi trong luïc naìy vaì ta seí âoüc âæåüc mæïc 1 åí táút caí caïc cäüt. Chæång trçnh cuía læu âäö trãn seî bë quáøn nãúu baìn phêm cuía ta bë dênh. Mäüt caíi tiãún coï thãø âæåüc thãm vaìo chæång trçnh trãn âãø thoaït ra khoíi voìng quáøn âoï vaì thäng baïo baìn phêm bë hoíng. Nãúu baìn phêm khäng bë hoíng thç ta måïi âi vaìo pháön phaït hiãûn xem liãûu coï mäüt phêm naìo âoï bë áún khäng. Nãúu phaït hiãûn ra coï mäüt phêm bë áún ta seî phaíi chåì cåî 10 ms âãø cho cäng tàõc coï thåìi gian äøn âënh hãû thäúng. Tiãúp theo laì ta phaíi xaïc âënh laûi xem coï âuïng laì coï mäüt phêm naìo âoï bë áún khäng, nãúu coï thç ta måïi tiãún haình xaïc âënh cuû thãø xem âoï laì phêm naìo trong säú caïc phêm. Ta laìm viãûc naìy bàòng caïch âæa 0 vaìo láön læåüt caïc haìng vaì doüc caïc cäüt. Khi âaî biãút toüa âäü haìng vaì ccäüt cuía mäüt phêm bë áún thç cäng viãûc tiãúp theo laì taûo maî cho phêm âoï. Trong så âäö âån giaín nhæ så âäö trãn hçnh 9.3 thç viãûc taûo maî cho phêm væìa tçm tháúy âæåüc thæûc hiãûn bàòng caïch âoüc 8 bêt tæì cäøng vaìo ( 4 bit cao chæïa thäng tin vãö toüa âäü haìng vaì 4 bit tháúp chæïa thäng tin vãö toüa âäü cäüt) räöi chuyãøn thaình maî hãû 16 tæång æïng våïi phêm bàòng caïch tra mäüt baíng thêch håüp. Sau âáy laì vàn baín chæång trçnh thæûc hiãûn thuáût toaïn âaî nãu dæûa trãn så âäö trãn hçnh 9.2 bàòng caïch duìng maûch PPI 8255A våïi âëa chè cå baín laì 60H. Cáön chuï yï ràòng âáy chè laì chæång trçnh duìng âãø mä taí thuáût toaïn. Chæång trçnh 8.1. CPU- HexKeyboard cpu_kbd.asm . Model Small . Stack 100 . Data ;0 1 2 3 4 5 6 7 Key DB 77H 7BH 7DH 7EH 0B7H 0BBH 0BDH 0BEH ;8 9 A B C D E F DB 0D7H 0DBH 0D0H 0DEH 0E7H 0EBH 0EDH 0EEH PA EQU 60H PB EQU 61H CWR EQU 63H CW EQU 68H ;Chãú âäü 0, PA : ra ; PB & PC : vaìo .Code Main Proc MOV AX , @Data ;khåíi âáöu DS MOW DS , AX MOW AL , CW ;khåíi âáöu 8255A OUT CRW, AL CALL RD_KBD ;goüi chæång trçnh âoüc phêm Xuly:... ; caïc xæí lyï tiãúp theo Main Endp RD_KBD Proc ; thuí tuûc âoüc vaì taûo maî cho phêm bë áún ; Ra : AL : maî phêm, ; AH=00H khi khäng coï läùi ; AH=01 khi coï läùi PUSHF ;cáút caïc thanh ghi PUSH BX PUSH CX PUSH DX MOV AL,00 ;âæa 0 ra moüi haìng OUT PA, LA MOV CX, 3 ;säú láön kiãøm tra dênh Wait_Open: IN AL, PB ;âoüc cäüt âãø kiãøm tra dênh AND AL, 0FH ;che caïc bit cao CMP AL, 0FH ;coï phêm dênh? LOOPNE Wait_Open ;âuïng, chåì khoíi dênh JCXZ Sai ;”quaï tam ba báûn” : phêm bë keût Wait_Pres: IN AL,PB ;âoüc cäüt âeí kiãøm tra áún phêm AND AL, 0FH ; che caïc bit cao CMP AL, 0FH ;coï phêm áún? JE Wait_Pres ;khäng, chåì áún phêm MOV CX, 5880 ;Coï, trãù 20ms âãø chäúng rung Tre: LOOP Tre ;âoüc âãø kiãøm tra laûi phêm bë áún IN AL, PB AND AL, 0FH ;che caïc bit cao CMP AL, 0FH ;coï phêm áún? JE Wait_Pres ;khäng, chåì áún phêm ; tçm phêm bë áún MOV AL, 0FEH ;máùu bit âãø âæa 0 ra tæìng haìng MOV CL,AL ;cáút máùu Hgsau: OUT PA, AL ;âoüc caïc cäüt vaì kiãøm tra AND AL, 0FH CMP AL, 0FH ;âaî tçm tháúy phêm bë áún JNE taoma ;âuïng, taûo maî ROL CL,1 ;khäng tháúy, âäùi máùu MOV AL, CL JMP Hgsau ;laìm tiãúp våïi haìng sau Taoma: MOV BX, 000FH ;BX chè vaìo maî cuía phêm F IN AL, PB ;âoüc toüa âäü haìng vaì cäüt Tiep: CMP AL, Key[ BX] ;âuïng våïi maî chuáøn JE Thoi ;âuïng, maî cuía phêm trong BX DEC BX ;sai, chè vaìo maî khaïc JNS Tiep ;tçm tiãúp Thoi: MOV AL, BL ;maî cuía phêm hãû 16 trong AL MOV AH, 00 ;AH âãø baïo khäng coï läùi Ra: POP DX ;láúy laûi caïc thanh ghi POP CX POP BX POPF RET ;tråí vãö chæång trçnh chênh RD_KBD Endp END Main Duìng maûch chuyuãn duûng âãø quaín lyï baìn phên Thê duû trãn cho tháúy mäüt caïch phäúi gheïp âån giaín giæîa CPU vaì baìn phêm. Trong træåìng håüp CPU coìn daình thåìi gian âãø laìm nhiãöu cäng viãûc khaïc cuía hãû thäúng hoàûc säú læûong phêm nhiãöu, thæåìng ngæåìi taïæí duûng nhæîng maûch quaín lyï coï sàôn âãø laìm caïc cäng viãûc âaî nãu liãn quan âãún baìn phêm.. Nhæ váûy bäü vi xæí lyï âæåüc giaíi phoïng khoíi cäng viãûc queït baìn phêm khi cáön thiãút noï chè viãûc âoüc maî cuía phêm bë áún do maûch quaín lyï chyãn duûng âæa âãún. Maûcd AY5-2376 cuía Genneral Instrument laì mäüt vi maûch chuyãn duûng nhæ váûy. Noï laìm viãûc âuïng theo caïch cuía mäüt chæång trçnh queït baìn phêm maì ta âaî mä taí åí thê duû trãn vaì khi âaî taûo xong maî xho phêm bë áún, noï âæa ra xung STB (xung cho pheïp chäút dæî liãûu) âãø baïo cho bäü vi xæí lyï biãút. Bäü vi xæí lyï coï thãø nháûn biãút xung STB khi laìm viãûc theo kiãøu thàm doì (polling) hoàûc coï thãø âaïp æïng theo xung STB theo kiãøu ngàõt nãúu xung naìy âæåüc sæí duûng nhæ mäüt xung taïc âäüng âãún âáöu vaìo yãui cáöu ngàõt che âæåüc INTR. Maûch AY5-2376 coìn coï khaí nàng quaín lyï khäng nháöm láùn âäúi våïi baìn phêm ngay caí træåìng håüp coï 2 phêm âæåüc áún gáön nhæ âäöng thåìi. Mäüt træåìng håüp âàûc biãût cuía viãûc quaín lyï baìn phêm duìng vi maûch chuyãn duûng laì baìn phêm cho caïc maïy IBM PC vaì caïc thiãút bë âáöu cuäúi. Taûi âáy ngæåìi ta sæí duûng mäüt hãû vi xæí lyï chuyãn duûng cho cäng viãûc quaín lyï baìn phêm. Htaû nhán cuía hãû naìy laì vi maûch 8048 - maïy vi tênh trong 1 voî, bao gäöm CPU 8 bit. ROM, RAM, cäøng I/O vaì mäüt boü âãúm/âënh thåìi gian láûp trçnh âæåüc. Chæång trçnh trong ROM cuía 8048 âiãöu khiãøn viãûc kiãøm tra caïc maûch âiãûn tæí cuía baìn phêm khi noï âæåüc näúi våïi nguäön âiãûn vaì thæûc hiãûn viãûc queït baìn phêm theo 3 cäng âoaûn âaî nãu åí trãn. Khi coï mäüt phêm âæåüc áún âãún CPU. Maî naìy âæåüc truyãön âi dæåïi daûng dæî liãûu näúi tiãúp âãø giaím båït säú âæåìng dáy cáön duìng cho viãûc truyãön tên hiãûu. Trong thæûc tãú coìn täön taûi nhæîng maûch kãút håüp caïc phoïi gheïp - âeìn LED trong mäüt vi maûch âãø taûo thuáûn låüi cho ngæåìi sæí duûng khi xáy dæûng cac kit vi xæí lyï. Âoï laì træåìng håüp maûch 8279 cuía Intel, mäüt vi maûch täø håüp cåî låïn láûp trçnh âæåüc. Sau khi CPU láûp trçnh (ghi tæì âiãöu khiãøn), maûch 8279 coï khaí nàng quaín lyï baìn phêm theo 3 cäng âoaûn kinh diãøn âaî nãu vaì âäöng thåìi coï khaí nàng âiãöu khiãøn bäü pháûn hiãøn thë coï nhiãöu nháút 16 âeìn LEN 7 neït åí chãú âäü âäüng. Phäúi gheïp våïi âeìn hiãøn thë LED ( âiäút phaït saïng) Âiäút phaït saïng - LED laì mäüt pháön tæí phäúi gheïp våïi bäü vi xæí lyï åí âáöu ra ráút thäng dung. Trong træåìng håüp âån giaín, âoï coï thãø laì mäü vaìi âeìn LED âån leí âãø baïo hiãûu mäüt vaìi traûng thaïi naìo âoï. Phæïc taûp hån âoï laì caïc âeìn LED âæåüc täø håüp thaình âeìn chè thë 7 neït hoàûc nhiãöu hån âãø hiãøn thë caïc thäng tin dæåïi daûng säú hoàûc chæí. Âãø âiãöu khiãøn âæåüc caïc âeìn LED naìy saïng, bäü vi xæí lyï hoàûc caïc maûch cäøng cuía noï cáön âæåüc tàng khaí nàng taíi bàòng caïc maûch khuãúch âaûi âãûm ( bàòng transitor, bàòng maûch SN7400hay SN7406) hoàûc caïc maûch âiãöu khiãøn âeìn LED 7 neït chuyãn duûng ( nhæ SN7447) âãø âaím baío âæa ra âæåüc tên hiãûu våïi cäng suáút nháút âënh cáön thiãút cho âeìn LED. CPU - SN7447 - LED 7 neït åí chãú âäü tènh Mäüt trong caïc phäúi gheïp giæîa vi xæí lyï vaì âeìn LED 7 neït thæåìng tháúy laì duìng maûch SN7447 âãø giaíi maî säú BCD ra 7 neït vaì âãø âiãöu khiãøn bäü âeìn chè thë (xem hçnh 9.4). Âáy laì kiãøu âiãöu khiãøn âeìn LED åí chãú âäü hiãøn thë ténh våïi âàûc âiãøm laì khaï âån giaín vãö kãút cáúu nhæng laûi ráút täún nàng læåüng: âãø thàõp saïng caïc neït cuía âeìn LED thç phaíi coï doìng âiãûn liãn tuûc âi qua. a B b B c C ’47 d D e LT f RBI BI g µP D0-D3 MAN7 a f b g e c d 150Ώ Hçnh 9.4. Phäúi gheïp vi xæí lyï våïi LED 7 neït thäng qua maûch SN7447. Ta coï thãø tênh så bäü âãø coï thãø tháúy sæû tiãu täún nàng læåüng cuía viãûc hiãøn thë theo caïch naìy. Mäüt âeìn LED 7 neït tiãu täún nàng læåüng nhiãöu nháút khi noï phaíi hiãûn ra säú 8 vaì luïc naìy noï tiãu thuû doing âiãûn khoaíng 140 mA (khoaíng 20mA/neït tuyì theo chuíng loaûi0. Baín than mäüt maûch SN7447 khi hoaût âoüng cuîng tiãu thuû doing âiãûn khoaíng 14mA. Nãúu tá duìng âeìn LED naìy âãø hiãøn thë 8 chæí säú (âëa chè vaì dæî liãûu) thç riãng maûch chè thë ta phaíi cung cáúp khoaíng 1.5mA. CPU 7447 - LED 7 neït åí chãú âäü âäüng - däön kãnh MAN7 a f b g e c d MAN7 a f b g e c d a b c b e f g LT RBI 7447 BI PB – PB6 8255A – Port B Bus D µP8088 PA7 8255A PortA PA2 PA1 PA0 T1 T3 T2 T8 +5V +5V Hçnh 9.5. Phäúi gheïp hiãøn thë åí chãú âäü âäüng vaì däön kãnh Âãø khàõc phuûc nhæåüc âiãøm cuía maûch phäúi gheïp hiãøn thë tènh nhæ âaî âæåüc nãu åí trãn, ngæåìi ta thæåìng sæí dung maûch phäúi gheïp hiãøn thë âäüng laìm viãûc theo nguyãn tàõc däön kãnh: toaìn bäü caï âeìn hiãøn thë duìng chung mäüt bäü âiãöu khiãøn SN7447 vaì caïc âeìn LED khäng âæåüc thàõp saïng liãn tuûc maì luán phiãn nhau saïng theo mäüt chu kyì nháút âënh. Cäng suáút tiãu thuû nhåì thãú maì giaím âi ráút nhiãöu maì váùn âaût âæåüc hiãûu quaí hiãøn thë. Så âäö maûch phäúi gheïp naìy âæåüc thãø hiãûn trãn hçnh 9.5. Nguyãn tàõc hoaût âäüng Giaï trë säú cáön hiãøn thë cuía mäùi con säú âæåüc gæíi âãún cäøng PB cuía 8255A tæì CPU dæåïi daûng maî BCD. Tæì âáy BCD âæåüc maûch SN7447 giaíi maî vaì taûo ra caïc tên hiãûu âiãöu khiãøn thêch håüp âæa âãún caïc chán catäút a.b,... g cuía LED. Mäùi giaï trë cáön hiãøn thë âæåüc âæa âãún cäøng PB cæï mäùi 2ms mäüt láön cho mäüt âeìn. Giaï trë säú noïi trãn âæåüc hiãûn ra trãn chæí säú tháûp phán naìo laûi laì do caïc bit cuía byte dæî liãûu tæì CPU âæa âãún cäøng PA cuía maûch 8255A quyãút âënh. Nhæ váûy cæï mäùi 2ms thç ta phaíi âæa dæî liãûu ra PB räöi PA vaì cho hiãûn ra mäüt giaï trë säú trãn mäüt âeìn. Nãúu caí thaíy coï 8 LED 7 neït thç ta máút 16ms âãø cho hiãûn säú ra caí daîy âeìn. Quaï trçnh trãn làûp âi làûp laûi (1 láön haut 16s hay 60 láön trong 1s) laìm cho ta coï caím giaïc laì âeìn saïng liãn tuûc màûc duì trong thæûc tãú chuïng âæåüc âiãöu khiãøn âãø saïng khäng liãn tuûc. Mäüt phæång phaïp phäúi gheïp giäúng nhæ trãn nhæng khäng duìng maûch giaíi maî SN7447 cuîng ráút hay âæåüc sæí dung. Thay vç maûch SN7447 nhæ trãn, taûi âáy ta duìng mäüt bäü khuãúch âaûi âãûm chè âãø náng cao khaí nàng taíi cuía cäøng PB. Vç thãú trong træåìng håüp naìy CPU phaíi âæa âãún PB khäng phaíi laì 4 bit maî BCD cuía giaï trë säú hiãøn thë maì laì caïc máùu 7 bit âãø laìm saïng caïc neït tæång æïng våïi giaï trë säú âoï. Nhæ váûy CPU phaíi âãø thç giåì âãø chuyãøn âäøi tæì giaï trë säú hãû16 sang máùu bit daình cho caïc net cuía LED vaì ta coï khaí nàng hiãøn thë caïc säú tæì 0 - FH . Âãø giaí phoïng hoaìn toaìn boü vi xæí lyï khoíi cäng viãûc âiãöu khiãøn âeìn LED ta coï thãø duìng maûch âiãöu khiãøn 8279 âaî âæåüc noïi âãún trong muûc træåïc. Phäúi gheïp våïi maìn hçnh Trong giai âoaûn hiãûn nay, maìn hiãøn thë bàòng tinh thãø loíng (liquid crystal display, LCD) vaì maìn hçnh bàòng äúng tia âiãûn tæí hay âeìn hçnh (cathode ray tube, CRT) laì caïc thiãút bë hiãøn thë ráút thäng duûng âäúi våïi maïy vi tênh loaûi xaïch tay hoàûc loaûi âãø baìn. Trong pháön naìy ta chè giåïi thiãûu caïc thäng säú vaì caïc phäúi gheïp maìn hçnh loaûi CRT vaì CPU. Maûch duìng cho caïch phäúi gheïp naìy coin âæåüc goüi laì bäü âiãöu khiãøn maìn hçnh (CT controller, CRTC) Maìn hçnh hiãûn chæí (chãú âäü vàn baín) QUEÏT MAÌNH VAÌ QUEÏT DOÌNG Âeìn hçnh thæûc cháút laì mäüt âeìn âiãûn tæí coï hai âáöu, trong âoï mäüt âáöu coï bãö màût loe räüng ra âãø laìm chäø quan saït hçnh aính cuía caïc tia âiãûn tæí vaì bãn caûnh laì læåïi kim loaûi näúi våïi âiãûn aïp ráút cao âãø gia täúc cho caïc tia âiãûn tæí phaït ra tæì mäüt suing âàût åí âáöu bãn kia cuía âeìn. Bãö màût phêa trong âáöu loe cuía âeìn âæåüc phuí mäüt låïp hoaï cháút( låïp huyình quang) coï khaí nàng phaït saïng khi coï âiãn tæí âáûp vaìo, maìu cuía âeìn saïng phaït ra phuû thuäüc vaìo thaình pháön hoaï hoüc cuía låïp huyình quang. Nãúu maìn hçnh laì loaûi mäüt maìu thç trãn bãö màût naìy chè coï mäüt cháút huyình quang duy nháút, coìn nãúu laì maìn hçnh maìu thç låïp huyình quang âæåüc hçnh thaình tæì ráú nhiãöu pháön tæí cuía 3 loaûi hoaï cháút khaïc nhau, khi oïc âiãûn tæí âáûp vaìo mäùi cháút liãûu coï thãø phaït ra mäüt trong 3 maìu cå baín: âoí (red,R), xanh lå hoàûc laì xanh næåïc biãøn (blue, B), vaì xanh laï cáy (green, G). Âiãûn tæí phaíi âi qua mäüt màût naû gäöm ráút nhiãöu läù âãø âæåüc âënh hæåïng chênh xaïc vaìo caïc pháön tæí phaït maìu. Khoaíng caïch giæîa caïc läù trãn màût naû (hay kêch thæåïc cuía caïc âiãøm aính( pitch) trãn maìn hçnh quyãú âënh âoü phán giaíi cuía mäüt maìn hçnh. Muäún thãø hiãûn hçnh aính trãn maìn hçnh ta phaíi âiãöu khiãøn tia âiãûn tæí, âæåüc phaït xaû ra tæì mäüt catäút bë nung noïng åí âuäi âeìn, di chuyãøn tæì traïi sang phaíi ( taûo ra doìng) vaì tæì cao xuäúng tháúp (taûo ra maình), âäöng thåìi ta phaíi âiãöu chãú cæåìng âäü cuía tia âiãûn tæí theo âäü saïng cuía hçnh aính muäún hiãûn trong suäút thåìi gian tia âiãûn tæí di chuyãøn âãún pháön loe ra cuía âeìn. Nhæîng luïc tia âiãûn tæí gàûp âáöu muït bãn phaíi cuing nhæ bãn dæåïi cuía maìn hçnh noï seî bë tàõt vaì âæåüc laïi ráút nhanh theo hæåïng ngæåüc laûi âãø laûi bàõt âáöu quaï trçnh “ queït “ taûo ra doìng måïi vaì maình måïi. Tuyì theo caïch thæûc hiãûn viãûc queït ta coï thãø coï caïch queït 1 maình hay 2 maình xen keî. Tuyì theo caïc tiãu chuáøn khaïc nhau taï cuîng coï caïc thäng säú vãö doìng queït cho mäüt maình, táön säú queït doìng hoàûc táön säú queït maình våïi caïc trë säú khaïc nhau. Cho duì coï caïc thäng säú khaïc nhau, mäüt maìn hçnh cho maïy vi tênh thäng thæåìng phaíi bao gäöm caïc maûch dao âäüng âãø taûo ra xung queït doìng, xung queït maình duìng vaìo viãûc âiãöu khiãøn chuyãøn âäüng cuía tia âiãûn tæí vaì maûch khuãúch âaûi tên hiãûu hçnh âãø âiãöu khiãøn ccæåìng âäü saïng cuía tia âiãûn tæí âoï. Âãø maìn hçnh naìy hiãøn thë âæåüc thäng tin, ta phaíi cung cáúp caïc tên hiãûu âäöng bäü cho caïc bäü taûo dao âäüng noïi trãn vaì cung cáúp tên hiãûu chæïa thäng tin vãö âäúi tæåüng cáön hiãøn thë (tên hiãûu hçnh) cho bäü khuãúch âaûi aính . Caí 3 tên hiãûu âiãöu khiãøn naìy phaíi âæåüc âäöng bäü våïi nhau âãø taûo ra âiãøm aính cuía hçnh âæåüc hiãûn ra taûi cuìng mäüt vë rê trãn maìn trong mäùi maình. CAÏCH HIÃØN THË KÊ TÆÛ Kê tæû hoàûc hçnh veî âæåüc hieenr thë lãn maìn hçnh bàòng caïch táûp håüp caïc âiãøm (âiäút) saïng hay täúi. Trong chãú âäü vàn baín (text mode) Caïc âiãøm naìy âæåüc hçnh thaình bàòng viãûc coï cho tia âiãûn tæí coï âáûp hay khäng âáûp vaìo maìn huyình quang theo mäüt khuän máùu coï sàôn, trong âoï caïc âiãøm âæåüc täø chæïc theo ma tráûn. Trãn hçnh 9.6 laì ts duû caïc ma tráûn âiãøm duìng laìm máùu chæï phuûc vuû cho viãûc hiãøn thë chæî E vaì chæí H trãn maìn hçnh. Cháúm âen âãø biãøu hiãûn cho nhæîng chäø coï âiãûn tæì âáûp vaìo maìn, cháúm tràõng âãø biãøu hiãûn cho nhæîng chäù khäng coï âiãûn tæí âáûp vaìo maìn hçnh (chæî tràõng tren nãön âen). Âáy laì ma trán âiãøm 5x7 cho caïc kê tæû. Caïc kêch thæåïc ma trán khaïc hay âæåüc duìng trong thæûc tãú laì 7x9, 7x12 hay 9x14. Caïc máùu nhæ váûy thæåìng âæåüc taûo sàôn cho mäùi kê tæû ASCII vaì âæåüc chæïa trong mäüt vi maûch nhåï ROM coï tãn laì ROM taûo chæî. Hçnh 9.6. Hiãn chæî E vaì H lãn maìn hçnh Bäü chia 80*: bäü âãúm kyï tæû (80 kyï tæû/haìng+ thåìi gian queït ngæåüc doìng) Bäü chia 14: bäü âãúm doìng queït (14 doìng / kyï tæû) Bäüü chia 25*: bäü âãúm haìng chæî (25 haìng/maình + thåìi gian queït ngæåüc maình) Trãn hçnh 9.7 laì så âäö khäúi cuía mäüt maûch âãø hiãøn thë âæåüc mäüt tang maìn hçnh vàn baín bao gäön 80 kyï tæû theo chiãöu ngang vaì 25 kyï tæû theo chiãöu doüc (80x25). Taûo xung 16.257 MHz Bäü ghi dëch RAM âãûm A0-A6 A7-11 D0-D8 A0-A7 ROM taûo chæî R0-R3 ÷9 ÷14 ÷25 ÷80 Hçnh 9.7. Så âäö khäúi maûch hiãûn chæí theo ma rán 9x14 trãn maìn hçnh Maî ASCII cuía caïc kyï tæû thuäüc mäùi trang maìn hçnh cáön hiãøn thë âæåüc chæïa sàôn trong mäüt bäü nhåï RAM âãûm maìn hçnh ( mäùi kyï tæû cáön 1 byte âãø ghi nhåï maî cuía noï). Nãúu ta cáön hiãøn thë mäüt trang maìn hçnh gäöm 80x25= 2000 kyï tæû thç ta cáön duìng âãún mäüt bäü nhåï RAM âãûm coï dung læåüng cåî 2KB. Näüi dung cuía bäü nhåï RAM âãûm naìy âæåüc boü âiãöu khiãøn maìn hçnh âæa ra âënh kyì âãø laìm tæåi maìn hçnh sau 1 khoaíng thåìi gian nháút âënh ( nhæ váûy maìn hçnh hiãûn thë thäng tin laìm viãûc åí chãú âäü âäüng). Trong thæûc tãú bäü nhåï RAM âãûm naìy coìn phait thám nháûp âæåüc bàòng bäü vi xæí lyï âãø ta coìn coï khaí nàng thay âäøi âæåüc näüi dung cáön hiãøn thë. Caïc âëa chè A0-A6 seî xaïc âënh vë trê cuía kyï tæû cáön hiãøn thë trong 1 haìng coìn caïc âëa chè tæí A7 - A11 seî xaïc âënh toaû âäü theo cäüt cuía caí mäüt haìng cáön hiãøn thë. Noïi caïch khaïc täø håüp caïc bit âëa chè tæì A0 - A11 cuía RAM âãûm seî quyãút âënh toaû âäü cuû thãø cuía mäüt kyï tæû trãn maìn hçnh. Trong thæûc tãú ma trán âiãøm 9x14 cuía bäü nhåï ROM taûo chæî coï daûng nhæ trãn hçnh 9.8. Caïc doìng âiãøm thæìa ra åí 4 phêa laì âãø taûo ra giaîn caïch chæî trong haìng vaì giaîn caïch giæîa caïc haìng våïi nhau. 0 0 0 0 0 0 0 0 0 0 0 0 0 0 01 0 0 1 0 0 0 1 1 0 1 0 0 0 1 0 1 0 1 1 0 0 1 1 1 1 0 0 0 1 0 0 1 1 0 1 0 1 0 1 1 1 1 0 0 1 1 0 1 0 1 1 1 1 1 1 1 0 0 1 0 0 0 0 0 1 0 0 1 0 0 0 0 0 1 0 0 1 0 0 0 0 0 1 0 0 1 1 1 1 1 1 1 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 1 1 1 0 0 0 0 1 1 0 0 0 1 0 0 0 1 0 0 0 0 1 0 0 0 1 0 0 0 0 1 0 0 0 1 1 0 0 0 1 0 0 0 1 0 1 1 1 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 Hçnh 9.8. Ma tráûn âiãøm 9x14 cho chæî P vaì chæî p Khi ROM taûo chæî nháûn âuåüc tên hiãûu âëa chè tæì RAM âãûm thç âoï chênh laì maî ASCII cuía kyï tæû cáön hiãøn thëvaì mäüt ma tráûn âiãøm tæång æïng cuía kyï tæû âæåüc choün âãø âæa ra maìn hçnh. Viãûc queït caïc doìng âiãøm trong ma trán âiãøm laì do caïc tên hiãûu queït doìng R3 - R0 quyãút âënh. Giaí sæí näüi dung cuía bäü âãúm kyï tæû luïc naìy laì 0. Kyï tæû âáöu tiãn åí goïc traïi maìn hçnh âæåüc choün âãø hiãøn thë. Maî ASCII cuía noï âæåüc âæa âãún bäü nhåï RPM taûo chæí. Giaí thiãút luïc âáöu bäü âãúm doìng queït coï R3 R2 R1 R0 =0000. ÅÍ âáöu ra cuía bäü nhåï Rom taûo chæí coï doìng âiãøm âáöu tiãn (9 âiãøm cho 1 kyï tæû) âæåüc âæa ra bäü ghi dëch, åí âáy dæî liãûu tæì daûng song song âæåüc biãún thaình daûng näúi tiãúp räöi âæa âãún bäü khuãúch âaûi våïi täúc âäü 16.257.000âiãøm/s âãø âiãöu chãú cæåìng âäü cuía tia âiãûn tæí phaït ra tæì catäút âeìn hçnh. Nãn nhåï ràòng khi queït doìng queït cho mäüt kyï tæû væìa xong thç bäü âãúm kyï tæû tæû âäüng tàng thãm âãø ta coï thãø láúy ra doìng âiãøm cuía kyï tæû tiãúp theo cáön hiãøn thë åí trong cuing mäüt haìng. Cäng viãûc cæï tiãúp tuûc nhæ váûy cho âãún khi thao taïc xong våïi kyï tæû 80, luïc naìy tia âiãûn tæí bë laïi ngæåüc laûi âãø bàõt âáöu laûi quaï trçnh trãn âäúi våïi doìng queït tiãúp theo. Khi âaî queït xong âæåüc 14 doìng âiãøm cho 80 kyï tæû nhæ trãn (tæïc laì cho mäüt haìng kyï tæû) thç bäü âãúm kyï tæû tæû âäüng tæng thãm 1 vaì haìng kyï tæû tiãúp theo laûi âæåüc queït nhæ âäúi våïi haìng kyï tæû træåïc âoï. Quaï rçnh seî tiãúp diãùn cho âãún khi thao taïc xong våïi haìng kyï tæû thæï 25. Luïc naìy tia âiãûn tæí bë laïi ngæåüc laûi âãø coï thãø bàõt âáöu laûi quaï trçnh laìm tæåi maìn hçnh tæì kyï tæû âáöu tiãn trãn goïc traïi cuía haìng kyï tæû thæï nháút trãn maìn hçnh. Bus A CPU Bus D Bus A A0 Đơn kênh địa chỉ Đệm vào chốt ra cho bus D 2KB RAM mã kí tự 2KB RAM mã kí tự Chốt 8 bit Chốt 8 bit CRTC 6845 ROM tạo chữ Giải mã thuộc tính Ghi dịch Logic xử lý tín hiệu hình địa chỉ làm tươi chọn dòng điểm các tín hiệu điều khiển hình tần số kí tự CS Xung nhịp tần số kí tự tần số điểm Hình 9.9. Sơ đồ khối bộ phối ghép màn hình một màu của IBM Hçnh 9.9.Så âäö khäúi bäü phäúi gheïp maìn hçnh mäüt maìu cuía IBM MAÌN HÇNH MÄÜT MAÌU CUÍA IBM Trãn hçnh 9.9 laì så âäö khäúi cuía vi âiãöu khiãøn maìn hçnh mäüt maìu (monochrome display adapter, MDA ) cuía IBM . Nhçn vaìo så âäö khäúi naìy ta coï thãø nháûn ra mäüt säú khäúi chæïc nàng âaî âæåüc giåïi thiãûu trãn hçnh 9.7. Táön säú âiãøm 16,257 MHz âæåüc chia cho 9 åí bãn trong khäúi logic xæí lyï tên hiãûu hçnh âãø taûo r táön säú kyï tæû 1,787,904 MHz, táön säú naìy âæåüc âæa âãún maûch âiãöu khiãøn maìn hçnh CRTC 6845 âãø taûo ra caïc xung âäöng bäü vaì caïc xung khaïc cáön thiãút cho viãûc laìm tæåi maìn hçnh. Maûch CRTC coï chæïc nàng bao truìm chæïc nàng chæïc nàng cuía caïc bäü âãúm kyï tæû, bäü âãúm säú doìng queït vaì bäü âãúm säú haìng kyï tæû cuía hçnh 9.7 cuìng mäüt säú chæïc nàng khaïc, nhæng våïi khaí nàng hoaût âäüng linh hoaût hån nhiãöu vç noï laì mäüt vi maûch ráút phæïc taûp láûp trçnh âæåüc. Khäúi logic xæí lyï tên hiãûu hçnh seî âæåüc xæí lyï caïc tên hiãûu tæì bäü ghi dëch cuing våïi caïc tên hiãûu âiãöu khiãøn hçnh ( âäöng bäü dong, âäöng bäü maình) âãø taûo ra tên hiãûu hçnh cuäúi cuing âæa ra âiãöu khiãøn træûc tiãúp maìn hçnh. Trong hçnh 9.9 bãn caûnh 2KB RAM âãûm chæïa caïc byte laì maî ASCII cuía caïc kyï tæû cáön hiãøn thë ta coìn tháúy coï 2 KB RAM âãûm khaïc duìng âãø chæïa caïc byte thuäüc tênh cuía caïc kyï tæû âoï. Byte thuäüc tênh (xem hçnh 9.10. )quy âënh caïch thæïc hiãøn thë kyï tæû âaî cho trãn maìn hçnh: âäü saïng cuía kyï tæû, kyï tæû hiãûn liãn tuûc hay nháúp nhaïy, quan hãû giæîa maìu nãön vaì maìu chæî ( vê duû hiãûn bçnh thæåìng thç chæí tràõng trãn nãön âen coìn ngæåüc thç chæî âen trãn nãön tràõng). Trong bäü nhåï thæûc, byte maî kyï tæû âàût âëa chè chàôn coìn byte thuäüc tênh âaût taûi âëa chè leí. Mäùi maîng nhåï 2KB RAM naìy âãöu thám nháûp âæåüc tæì CPU hoàûc tæì CRTC. Âãø khäng xaíy ra xung âäüt giæîa CPU vaì CRTC trong khi thám nháûp bäü nhåï, thäng thæåìng CPU chè âæåüc quyãön thám nháûp vaìo caïc RAM âãûm trong thåìi gian cuía caïc xung queït ngæåüc hoàûc caí CRTC vaì CPU âãöu chia 1/2 thåid gian liãn tiãúp cuía xung kyï tæû âãø thám nhaûp vaìo RAM âãûm. Âãø laìm tæåi maìn hçnh. CRTC liãn tuûc âæa âëa chè âeïn caïc ä cuía bäü nhåï maî kyï tæû vaì bäü nhåï thuäüc tênh. Mäùi xung kyï tæû seî cho pheïp chäút 1 byte maî kyï tæû vaì 1 byte thuäüc tênh âãø âæa âãún bäü ROM taûo chæî vaì bäü giaíi maî thuäüc tênh. Quaï trçnh naìy seî tiãúp tuûc cho caïc kyï tæû khaïc trong trang maìn hçnh vaì cæï làûp âi làûp laûi maîi. Byte mã ASCII Byte thuộc tính 7 6 5 4 3 2 1 0 7 6 5 4 3 2 1 0 a) Dữ liệu trong bộ nhớ RAM đệm Thuộc tính Các bit của byte thuộc tính Bình thường Đảo Màn đen không chữ Màn trắng không chữ 7 6 5 4 3 2 1 0 BL(chữ) Nền I Chữ BL 0 0 0 I 1 1 1 BL 1 1 1 I 0 0 0 BL 0 0 0 I 0 0 0 BL 1 1 1 I 1 1 1 b) dạng thức của byte thuộc tính I=1: chữ hiện ra sáng hơn BL=1:chữ nhấp nháy Hçnh 9.10. Byte maî kyï tæû vaì byte thuäüc tênh CAÏC XUNG NHËP VAÌ XUNG ÂÄÖNG BÄÜ Caïc bäü phäúi gheïp maìn hçnh khaïc nhau coï táön säú xung âäöng bäü doìng. Xung âäöng bäü maình vaì táön säú âiãøm khaïc nhau âeí phuì håüp våïi caïc loaûi maìn hçnh maì noï phaíi âiãöu khiãøn. Noïi chung caïc bäü phäúi gheïp maìn hçnh thäng thæåìng coï táön säú xung queït doìng maìn hçnhdaìi 15,50KHz, táön säú xung queït maình nàòm trong daîi 50 - 60 Hz vaì táön säú âiãøm nàòm trong daîi 10 - 100 MHz Ta láúy laûi vê duû bäü âiãöu khiãøn maìn hçnh mäüt maìu cuía IBM âãø phán têch caïc xung chênh. Hçnh 9.11 biãøu diãùn sæû phán chia thåìi gian cuía 2 loaûi xung queït. thời gian quét trội Màn hình Khung hình làm việc ( Tích cực ) thời gian quét mành tích cực thời gian quét trội và quét ngược thời gian quét dòng tích cực thời gian quét trội Hçnh 9.11. Phán chia thåìi gian caïc xung queït doìng vaì queït maình. Giaí thiãút ta phaíi hiãøn thë mäüt trang maìn hçnh gäöm 80x25 kyï tæû våïi ma tráûn âiãøm 9x14. Nhæ váûy trãn khung hçnh laìm viãûc cuía maìn hçnh ta phaíi coï 80x9=720 âiãøm/doìng queït vaì ta phaíi coï táút caí 25x14=350 voìng queït. Nãúu ta sæí dung táön säú âiãøm laì 16,257 MHz (16,257,000 âiãøm/s) thç våïi táön säú doìng 18,432 KHz (hoàûc doìng queït/s) ta seî coï (16,257,000âiãøm/s)/(18,432 doìng queït/s)=882 âiãøm/doìng queït. Nhæ thãú ta coï 162 âiãøm däi r, nghéa laì tæång æïng vãö màût thåìi gian ta coï thãm thåìi gian âãø buì vaìo caïc âoaûn queït träüi (ngoaìi vuìng laìm viãûc cuía maìn hçnh) vaì thåìi gian queït ngæåüc cuía tia âiãûn tæí theo chiãöu ngang. Tæång tæû ta cuîng coï táön säú xung queït màût laì 50Hz (50 maình/s), våïi táön säú doìng 18,432 kHz (hay doìng queït/s) ta seî coï (18,432 doìng queït/s)/(50 maình/s)=369 doìng queït/maình. Træåïc âay ta âaî tênh âæåüc khung hçnh laìm viãûc ta chè cáön 350 doìng queït/maình, tæïc laì coï däi thãm ra 19 doìng queït/maình. Våïi säú doìng queït däi ra naìy, tæång æïng vãö màût thåìi gian ta seî coï thãm thåìi gian âãø buì vaìo caïc âoaûn queït träüi (ngoaìi vuìng laìm viãûc cuía maìn hçnh) vaì thåìi gian queït ngæåüc cuía tia âiãûn tæí theo chiãöu doüc. Maìn hçnh âoì hoaû ( chãú âäü âäö hoaû) MAÌN HÇNH ÂÄÖ HOAÛ MÄÜT MAÌU Trong chãú âäü vàn baín, caïc cháúm åí âáöu ra cuía bäü ghi dëch laì hçnh aính cuía caïc doìng âiãøm cuía caïc kyï tæû âæåüc ghi sàôn trong ROM taûo chæî. Tæång tæû nhæ váûy, âãø thãø hiãûn mäüt hçnh aính báút kyì (trong âoï coï caí chæî, nhæng khäng tuán theo mäüt khuän máùu sàôn coï naìo) ta coï thãø âæa vaìo thanh ghi dëch caïc âiãøm thaình pháön cuía hçnh âoï. Âãø laìm âæåüc âiãöu naìy ta khäng cáön âãún bäü ROM taûo chæî næîa vaì bäü nhåï RAM âãûm luïc naìy, thay vç chæïa maî ASCII cuía kyï tæû, ta phaíi chæïa caïc âiãøm aính (pixel hay pel) maì täø håüp cuía chuïng chênh laì hçnh aính cáön phaíi thãø hiãûn. Chãú âäü laìm viãûc kiãøu naìy cuía maìn hçnh goüi laì chãú âäü âäö hoaû, maìn hçnh hiãøn thë hçnh aính theo baín âäö âiãøm aính (bit-map) Giaí thiãút ta phaíi thãø hiãûn trãn khung hçnh laìm viãûc 640 âiãøm aính theo chiãöu ngang vvaì 400 âiãøm theo chiãöu doüc thç caí khung hçnh laìm viãûc naìy tæång âæång våïi mäüt ma tráûn våïi 256000 âiãøm aính. Nãúu âãø ghi nhåï mäùi âiãøm aính nhæ váûy ta cáön 1 bit trong bäü nhåï RAM âãûm thç våïi toaìn bäü khung hçnh laìm viãûc ta cáön âãún bäü nhåï våïi dung læåüng cåí 32KB. Tæì âáy ta cuîng nháûn tháúy ràòng nãúu phaíi ghi nhåï thäng säú cho mäüt âiiãøm aính maìu thç ta phaíi täún thãm nhiãöu ä nhåï hån so våïi cho træoìng håüp âiãøm aính mäüt maìu. MAÌN HÇNH ÂÄÖ HOAÛ MAÌU Nhæ træåïc âáy âaî noïi, maìn hçnh (nhiãöu) maìu khaïc maìn hçnh mäüt maìu båíi sæû coï màût cuía caïc cum 3 pháön tæí trong låïp huyình quang phuí lãn bãö màût phêa tong cuía âeìn hçnh, mäùi tpháön tæí coï khaí nàng phaït ra 1 trong caïc maìu R, B vaì G. Maìu cuía mäüt âiãøm aính trãn maìn hçnh maìu laì cuía 3 âiãøm saïng phaït ra tæì 3 pháön tæí maìu âoï khi chuïng bë 3 tia âiãûn tæí âi ra tæì 3 suïng catäút âeìn hçnh bàõn vaìo. Nhæ váûy, âãø âiãöu khiãøn 1 âiãøm aính cuía maìn hçnh maìu ta phaíi coï 3 tên hiãûu âãø âiãöu khiãøn 3 tia R,B vaì G. keìm thãm 1 tên hiãûu âãø âiãöu khãøn cæåìng âäü saïng (I) cuía âiãøm aính. Maìn hçnh maìu loaûi naìy vç váûy coìn âæåüc goüi laì maìn hçnh RBG hoàûc maìn hçnh RBGI. Chuïng thæåìng âæåüc thiãút kãú âãø coï thãø laìm viãûc âæåüc våïi caïc khuän hçnh hiãøn thë khaïc nhauvaì våïi caïc táön säú cuía caïc xung âäöng bäü doìng vaì maình nàòm trong moüt daîi nháút âënh. Ta tháúy ngay ràòng âãø ghi nhåï thäng tin cho mäüt âiãøm saïng trãn maìn hçnh maìu nàòm trong bäü nhåï RAM âãûm theo kiãøu âaî laìm cho maìn hçnh mäüt maìu. A phaíi täún tåïi 4 bit (thay vç 1 bit nhæ trong træåìng håüp maìn hçnh 1 maìu) vaì nãúu ta phaíi hiãøn thë trãn khung hçnh laìmviãûc 640x400 âiãøm aính thç bäü nhåï RAM âãûm cho maìn hçnh maìu phaíi coï dung læåüng cåî 32KBx4=96KB. I R G B Màu 0 0 0 0 Đen 0 0 0 1 Xanh biển 0 0 1 0 Xanh lá cây 0 0 1 1 Xanh da trời 0 1 0 0 Đỏ 0 1 0 1 Tía 0 1 1 0 Nâu 0 1 1 1 Trắng 1 0 0 0 Ghi. Xám 1 0 0 1 Xanh biển nhạt 1 0 1 0 Xanh lá cây nhạt 1 0 1 1 Xanh da trời nhạt 1 1 0 0 Đỏ nhạt 1 1 0 1 Tía nhạt 1 1 1 0 Vàng 1 1 1 1 Trắng chói Hçnh 9.12. 16maìu cuía maìn hçnh maìu âäö hoaû CGA Våïi 4 bit âãø chæïa thäng tin vãö maìu cho mäüt âiãøm aính tacoï khaí nàng thãø hiãûn âæåüc âiãøm aính âoï våïi 16 maìu (xem hçnh 9.12) Âãø coï thãø hiãûn mäüt âiãøm aính våïi caïc gam maìu liãn tuûc hån ngæåìi ta âaî âæa vaìo sæí duûng caïc maìn hçnh tæång tæû.Caïc maìn hçnh naìy âæåüc näúi qua caïc maûch biãún âäøi säú_tæång tæû (DAC) åí âáöu vaìo vaì caïc bäü biãún âäøi naìy âæåüc näúi âãún caïc vi âiãöu khiãøn maìn hçnh laìm viãûc våïi tên hiãûu hçnh åí daûng säú âaî coï sàôn.Vê duû:nãúu ta duìng 2 bit âãø maî hoaï caïc gam khaïc nhau cho 1 maìu cå baín vaì nãúu ta duìng mäüt bäü DAC 2 bit cho mäùi maìu, ta coï thãø hiãøn thë mäüt âiãøm aính våïi 4x4x4=64 loaûi maìu khaïc nhau. BAÍNG MAÌU VAÌ MAÛT ÂIÃØM AÍNH Nhæ âaî noïi åí trãn, nãúu ta duìng mäüt bt trong bäü nhåï RAM âãûm âãø nhåï thäng tin cho mäüt âiãøm aính mäüt maìu thç ta phaíi duìng nhiãöu bit hån âãø chæïa thäng tin cho mäüt âiãøm aính maìu, vç caïc thäng tin cho caïc maìu R,B vaì G cuîng phaíi âæåüc læu træî. Vê duû, âãø hiãûn mäüt âiãøm aính maìu våïi 256 maìu khaïc nhau ta phaíi duìng âãún 8 bit læu træî thäng tin vãö âiãøm âoï. Nãúu ta láúy træåìng håüp phaíi hiãøn thë 640x400 âiãøm, mäùi âiãøm våïi 256 maìu khaïc nhau ta seî phaíi cáön bäü nhåï dung læåüng 256.000 byte. Âiãöu naìy gáy khoï khan trong viãûc thæûc hiãûn bäü nhåï RAM âãûm vãö màût giaï caí cuîng nhæ vãö khäng gian âëa chè daình cho pháön hiãøn thë trong caïc hãû vi xæí lyï 16 bit. Âãø haûn chãú säú bit cáön thiãút cho viãûc læu træî thäng tin cuía âiãøm aính maìu maì váùn âaím baío âæåüc gam maìu räüng ngæåìi ta âaî sæí dung viãûc maî hoaï thäng tin theo baíng maìu (palãtt). Âiãöu naìy coï nghéa laì trong mäüt thåìi âiãøm chuïng ta chè âæåüc sæí dung mäú säú maìu trong mäüt baíng maìu chæïa taut caí caïc maìu coï thãø coï. Vê duû, vi âiãöu khiãøn maìn hçnh CGA cuía haîng IBM coï khaí nàng hiãøn thë mäüt luïc 320x200 âiãøm våïi 4 maìu choün trong baíng maìu gäöm 16 maìu. Vç taûi mäüt thåìi âiãøm ta chè hiãûn 4 maìu nãn âãø læu træî thäng tin cho mäüt âiãøm aính ta chè cáön 2 bit. Vê duû khaïc, nãúu taûi mäüt thåìi âiãøm ta væìa loìng våïi viãûc hiãøn thë 640x400 âiãøm aính våïi 16 maìu trong baíng maìu gäöm 256 maìu, chæï khäng phaíi laì våïi 256 maìu cuing mäüt luïc, ta seî chè cáön âãún 4 bit âãø læu giæî thäng tin cho mäüt âiãøm aính våïi 1 rong 16 maìu. Bäü nhåï RAM âãûm seî nhoí âi âæåüc mäüt næía so våïi træåìng håüp hiãûn âuí 256 maìu, lyï do laì mäüt byte trong træåìng håüp naìy coï thãø chæa thäng tin cho 2 âiãøm maìu (xem hçnh 9.13a). Viãûc chè duìng mäüt säú maìu trong mäüt baíng maìu âãø laìm giaím kêch thæåïc bäü nhåï âãûm laì ráút coï låüi âäúi våïi caïc bäü âiãöu khiãøn maìn hçnh maìu coï âfäü phán giaíi cao (vaì nhæ váûy âoìi hoíi bäü nhåï låïn)., vç âiãöu naìy laìm giaím âæåüc táön säú truy nháûp bäü nhåï DRAM âãûm khi laìm tæåi maìn hçnh. Mäüt biãûn phaïp khaïc âãø laìm giaím táön säú truy nháûp bäü nhåï âãûm khi laìm tæåi maìn hçnh laì bàòng caïch täø chæïc bäü nhåï âãûm theo caïc màût nhåï song song âãø chæïa thäng tin cuía mäüt âiãøm. Caïch täø chæïc bäü nhåï cho kiãøu hiãøn thë naìy âæåüc minh hoaû trãn hçnh 9.13b. Trong caïch laìm naìy, 4 bit thäng tin cuía 1 âiãøm aính âæåüc âãø taûi caïc vë trê giäúng nhæ trong 4 byte liãn tiãúp cuía bäü nhåï DRAM âãûm. Âiãöu naìy tæång âæång viãûc mäùi thäng tin vã3f 1 maìu âæåüc âãø trong mäüt màût âiãøm (bit plan). Khi bäü âiãöu khiãøn maìn hçnh láúy 4 byte naìy vaìo caïc thanh ghi cuía noï thç coï âæåüc caí thaíy thäng tin cuía 8 âiãøm aính. Trong khi 8 âiãøm aính naìy âæåüc âæa ra maìn hçnh thç bäü nhåï DRAM coï thåìi gian häöi phuûc âãø laûi coï thãø âoüc tiãúp âæåüc. Våïi 4 bit thäng tin cho mäüt âiãøm aính trong 4 màût ta seî choün âæåüc 1 trong 16 thanh ghi tæång æïng våïi 1 trong 16 maìu cuía baíng maìu gäöm 64 maìu (thanh ghi naìy coï 6 bit cho maìu âoí nhaût, xanh biãøn vaì xanh biãøn nhaût, xanh laï cáy vaì xanh laï cáy nhaût). Âáy cuîng laì caïch hiãøn thë âiãøm maìu cuía vi âiãöu khiãøn maìn hçnh EGA ( enhanced graphics adapter, bäü phäúi gheïp âäö hoaû caíi tiãún). Caïc loaûi phäúi gheïp maìn hçnh thäng duûng Trãn hçnh 9.14 laì baín liãût kã caïc loaûi maûch phäüi gheïp maìn hçnh thäng duûng trong thæûc tãú vaì caïc thäng säú kyî thuáût chênh cuía chuïng. Hinh 9.14 cuîng giåïi thiãûu máùu hiãøn të cuía caïc vè phäúi gheïp maìn hçnh cho caïc maïy vi tênh caï nhán cuía haînh IBM hoàûc tæång thêch. Âiãøm 1 Âiãøm 0 R G B I R G B I P1 P0 Bäü nhåï âãûm hçnh a) Chæïa thäng tin theo âiãøm aính Bäü nhåï âãûm hçnh Màût 1 D0 Màût 1 D0 Màût 1 D0 Màût 1 D0 0 5 15 I B G R Âãún maìn hçnh RBGI b) Chæïa thäng tin theo kiãøu âiãøm aính Hçnh 9.13. Caïch chæïa thäng tin trong bäü nhåï RAM âãûm hçnh. Caïc maïy tênh caï nhán cuía IBM hoàûc caïc maïy tæång thêch thæåìng khäng coï sàón khaí nàng âäö hoaû gàõn trãn baíng meû. Ngæåìi duìng phaíi læûa choün âãø càõm vaìo baíng meû mäüt vi maûch phäúi gheïp (vè âiãöu khiãøn maìn hçnh) våïi khaí nàng hiãøn thë åí chãú âäü vàn baín/âäö hoaû thêch håüp vaì choün loaûi maìn hçnh âiãöu khiãøn phuì håüp våïi bäü âiãöu khiãøn âoï. Do váûy tãn cuía bäü âiãöu khãøn maìn hçnh cuîng duìng âãø goüi luän cho loaûi maìn hçnh tæong thêch âi keìm våïi noï. Bộ phối ghép Chãú Độ phân giải Màu/bộ màu Loại tín hiệu Có trong máy CGA Văn bản 80x25 4/16 số PC,XT,AT p.g. thấp 160x100 4/16 số PC,XT,AT p.g. vừa 320x200 4/16 số PC,XT,AT p.g. cao 640x200 2 (đen.trắng) số PC,XT,AT Hercules một màu 720x348 2 số PC,XT,AT màu 720x348 16/64 số PC,XT,AT EGA 640x350 16/64 số PC,XT,AT MCGA p.g vừa 320x200 256 Tương tự PS2-25,80 p.g cao 640x480 2 Tương tự PS2-25,80 VGA 11H 640x480 2 Tương tự PS2-25,80 12H 640x480 16/256K Tương tự PS2-25,80 13H 640x200 256/256K Tương tự PS2-25,80 Super VGA 640x480 256/256K Tương tự PS2-25,80 8514/A 1024x768 256/256K Tương tự PS2-25,80 Hçnh 9.14. Caïc loaûi phäúi gheïp maìn hçnh chênh cho maïy IBM VÈ CGA CUÍA IBM Vè phäúi gheïp maìn hinhgf maìu âäö hoaû (color graphics adapter, CGA) mäüt thåìi laì mäüt loaûi vè phäúi gheïp maìn hçnh thäng duûng, noï coï thãø âiãöu khiãøn maìn hçnh laìm viãûc åí chãú âäü vàn baín cuîng nhæ chãú âäü âäö hoaû. Haût nhán cuía vè naìy váùn laì vi maûch chuyãn duûng CRTC 6845 näùi tiãúng cuía Motorola. Maûch CRTC naìy cung cáúp caïc tên hiãûu âëa chè cho RAM âãûm âãø laìm tæåi maìn hçnh, tên hiãûu âãø queït doìng âiãøm cuía ma tráûn âiãøm trong ROM taûo chæî caïc tên hiãûu âäöng bäü doìng vaì âäöng bäü maình vaì mäüt säú tên hiãûu khaïc, Vè CGA coï thãø âiãöu khiãøn maìn hçnh maìu våïi caïc âáöu vaìo RBG taïch biãût hoàûc cung cáúp tên hiãûu hçnh täøng håüp âæowcj âiãöu chãú cao táön cho loaûi maìn hçnh maìu täøng håüp. Trong vè CGA coï bäü nhåï RAM âãûm hçnh våïi dung læåüng 16 KB vaì âæåüc bàõt âáöu tæì âëa chè 0B800H. ÅÍ chãú âäü vàn baín, maìn hçnh hiãøn htë âæåüc 80x25 kyï tæû theo ma tráûn âiãøm 8x8, mäùi kyï tæû cáön 2 byte liãn tiãúp âãø chæïa maî vaì thuäüc tênh giäúng nhæ åí bäü âiãö khiãøn cho maìn hçnh mäüt maìu ( xem hçnh 9.10a: trãn hçnh 9.10b caïc bit b2 b1 b0 tæong æïng våïi caïc maìu RGB cho chæî vaì b6 b5 b4 tæång æïng våïi caïc maìu RGB cho nãön). Âãø hiãøn thë kê tæû ta coï thãø âënh nghéa âæåüc 8 maìu nãön vaì 16 maìu chæí theo täø håüp våïi caïc bit thuäüc tênh (xem hçnh 9.12). bit BL=1 laì âãø hiãøn thë chæî nháúp nhaïy I=1 laì âãø hiãøn thë chæî våïi cæåìng âäü saïng låïn hån. Nhæ váûy, âãø læu giæî thäng tin cuía mäüt trang maìn hçnh vàn baín ta duìng haut $KB bäü nhåï vaì våïi 16KB RAM âãûm hçnh coï trãn vè CGA ta coï thãø læu giæî âæåüc 4 trang vàn baín. Khi laìm viãûc åí chãú âäü âäö hoaû, tên hiãûu tæì RAM âãûm âæåüc âæa træûc tiãúp âãún caïc thanh ghi dëch âãø âæa âãún âiãöu khiãøn riãng biãût mäùi suing âiãûn tæí. Vè CGA coï thãø laìm viãûc åí 3 mæïc âäü phán giaíi: tháúp (160x100 âiãøm, 4 maìu trong baíng 16 maìu), trung bçnh (320x200 âiãøm, 4 maìu trong baíng 16 maìu) vaì cao (640x200 âiãøm, 2 maìu âen vaì tràõng). VÈ IGA CUÍA IBM Vè phäúi gheïp âäö hoaû caíi tiãún (enhanced graphics adapter,EGA) coï bãn trong bäü âiãöu khiãøn maìn hçnh giäúng nhæ maûch CRTC 6845 nãn noï cho pheïp láûp trçnh âãø âënh nghéa ra táút caí caïc chãú âäü laìm viãûc nhæ vè CGA, ngoaìi ra noï coìn âënh nghéa âæåüc mäüt säú chãú âäü âàûc biãût khaïc. Vè EGA sæí duûng caïch bäú trê bäü nhåï âãûm theo kiãøu màût âiãøm aính vaì caïc thanh ghi baíng maìu (xem hçnh 9.13b). Trãn hçnh 9.13 biãøu diãùn chãú âäü hiãøn thë 640x350 âiãøm våïi 16 maìu trong baíng maìu gäöm 64 maìu. Bäü nhåï DRAM âãûm âæåüc sàõp xãúp thaình 4 màût naìy chæïa 1 bit mä táø thäng tin vãö maìu cuía 1 âiãøm. Mäüt nhoïm 4 bit âoüc âæåüc tæì 4 màût naìyâæåüc duìng âãø choün ra 1 trong 16 thanh ghi 8 bit cuía baíng maìu. Chè coï 6 bit tháúp cuía thanh ghi måïi âæåüc duìng âãø âæa ra âiãöu khiãøn maìn hçnh. Täø håüp cuía 6 bit naìy taûo rra caïc maìu cuía baíng 64 maìu, âoï laì caïc maìu trãn thæûc tãú hiãøn thë âæåüc hteo caïc giaï trë cuû thãø coï trong thanh ghi baíng maìu. BBÄÜ MCGA CUÍA IBM Bäü phäúi gheïp MCGA (multicolor graphics array) cuía IBM âæåüc cáúy ngay trãn baíng meû cuía maïy PS/2-30 cho pheïp láûp trçnh âãø hiãøn thë trong táút caí caïc chãú âäü cuía vè EGA vaì mäüt säú chãú âäü khaïc. Vê duû , ta coï thãø láûp trçnh âãø coï chãú âäü hiãøn thë 320x200 âiãøm våïi 256 maìu hoàûc 640x480 âiãøm âen tràõng. VÈ VGA CUÍA IBM Trong vè phäúi gheïp VGA (vidio gate array ) cuîng coï bäü CRTC cho pheïp láûp trçnh âãø choün ra caïc giaï trë thêch håüp cho táön säú âiãøm, säú doìng queït maình, táön säú queït maình, säú doìng queït träüi... Vè VGA coï thãø thæûc hiãûn âæåüc táút caí caïc chãú âäü hiãøn thë cuía caïc vè CGA vaì EGA cuing nhiãöu chãú âäü riãng biãût khaïc. Vê duû vè VGA våïi 8 bit âãø maî hoaï maìu cho mäüt âiãøm aính coï thãø âiãöu khiãøn hiãûn thë 256 maíutong 1 baíng maìu gäöm 262.144 (256K) maìu. Âãø laìm âæåüc âiãöu nhæ váûy, bäü nhåï cuía vè VGA âæåüc täø chæïc thaình 4 màût, mäùi maût chæïa 8 bit maî hoaï maìu cho 1 âiãøm. Âáöu ra cuía vè VGA laì tên hiãûu tæång tæû cho caïc maìu RGB. Coï 3 bäü DAC cho 6 bit âæåüc näúi vaìo 6 bit tæång æïng cho mäùi maìu cuía 1 trong 256 thanh ghi maìu 18 bit (hçnh 9.15a). Caïc thanh ghi maìu naìy âæåüc choün nhåì näüi dung 4 bit tháúp cuía thanh ghi baíng maìu , 4 bit cao cuía byte maî hoaï maìu cho 1 âiãøm choün ra caïc thanh ghi baíng maìu, coìn 4 bit tháúp cuía noï âæåüc duìng âãø chè ra âëa chè pháön cao cuía caïc thanh ghi maìu (âëa chè cuía mäüt vuìng caïc thanh ghi maìu). Nhæ váûy, våïi 64 mæïc maìu cho 1 maìu thç ta coï baíng maìu gäöm 64x64x64=256K maìu. Trãn hçnh 9.15b laì mäüt vê duû vãö chãú âäü hiãøn thë 640x400 âiãøm 16 maìu. Mäùi âiãøm aính âæåüc maî hoaï bàòng 4 bit âãø taûi 4 màût âiãøm, 4 bit naìy choün ra âæåüc 1 trong 16 thanh ghi baíng maìu. Thanh ghi chãú âäü chè cho pheïp 4 bit tháúp cuía thanh ghi baíng maìu choün ra 1 thanh ghi maìu trong nhoïm maìu., 4 bit htáúp cuía thanh ghi choün maìu seî choün 1 trong 16 nhoïm maìu. Nhæ váûy, ta coï thãø chuyãøn ráút nhanh giæîa caïc nhoïm 14 maìu naìy. Láûp trçnh cho caïc vè phäúi gheïp maìn hçnh Caïc vè phäúi gheïp maìn hçnh vãö màût láûp trçnh laì tæång âæång våïi caïc cäøng coï âëa chè xaïc âënh. Vç váûy âãø âiãöu khiãøn maìn hçnh laìm viãûc ta chè cáön ghi caïc thäng säú cáön thiãút vaìo thanh ghi âiãöu khiãøn, thanh ghi baíng maìu.. laì xong. Trong thæûc tãú coï nhiãöu caïch láûp trçnh âãø âiãöu khiãøn maìn hçnh laìm viãûc, trong âoï coï 2 caïch thäng duûng nháút: + Duìng caïc lãûnh håüp ngæî âãø ghi caïc thäng säú cáön thiãút vaìo caïc thanh ghi âiãöu khiãøn cuía vè phäúi gheïp âãø âiãöu khiãøn chãú âäü hiãøn thë vaì âãø ghi træûc tiãúp kyï tæû cáön hiãøn thë vaìo RAM âãûm âãø thay âäøi näüi dung. Âáy thæåìng laì caïch âãø âaût âæåüc täúc âäü hiãøn thë nhanh nháút. + Duìng caïc dikchj vuû ngàõt INT 10H cuía BIOS nãúu laìm viãûc våïi caïc maïy kiãøu IBM. Caïch naìy thæåìng cháûm hån caïch trãn nhæng coï låüi laì ta coï thãø sæí duûng caïc dëch vuû coï sàôn cuía BIOS vaì vç váûy coï thãø trao âäøi chæång trçnh giæîa caïc maïy. Vê duû Âãø minh hoaû cho viãûc láûp trçnh cho maìn hçnh duìng håüp ngæî bàòng caïch ghi træûc tiãúp vaìo vuìng RAM âãûm hiãûn thë, ta láúy mäüt vê duû hiãøn thë mäüt maìn hçnh 80 cäüt vaì 25 haìng kyï tæû ‘$’ (tæïc 80x25 = 2000 kyï tæû ‘$’) våïi maìu têa trãn nãön xanh da tråìi. Thán cuía chæång trçnh noïi trãn viãút dæåïi daûng thuí tuûc coï thãø nhæ sau: Disp Proc MOV AX, 0B800H ;cho DS chè vaìo vuìng RAM âãûm MOV DS, AX MOV CX, 2000 ;säú kyï tæû phaíi hiãûn MOV DI, 0 ;hiãøn thë kyï tæû taûi goïc traïi cao HIEN: MOV [DI] , 3524H ;$ têa trãn neìn tråìi xanh!!! ADD DI, 2 ;hiãûn kyï tæû tiãúp LOOP HIEN ;cho âãún haut MOV AH, 4CH ;vãö DOS INT 21H Disp Endp Thanh ghi maìu 18 bit Thanh ghi baíng maìu 0 Nhoïm1 Nhoïm2 Nhoïm 15 4 màût cuía bäü nhåï RAM âãûm hçnh D3- D0 15 31 4 240 255 4 DAC 6 bit R 1 1111 6 G Thanh ghi choün maìu Thanh ghi âiãöu khiãøn chãú âäü 6 B 6 a) Hiãûn 320x200 âiãøm våïi 256 maìu Thanh ghi maìu 18 bit Thanh ghi baíng maìu 0 0 15 D0- D3 D4-D7 4 màût cuía bäü nhåï RAM âãûm hçnh D0-D3 31 Adr 4 15 240 6 255 4 DAC 6 bit 6 R 6 G B 6 b) Hiãûn 640x480 âiãøm 16 maìu Hçnh 9.15 hiãøn thë âiãøm maìu trong vè VGA. Phäúi gheïp våïi thãú giåïi tæång tæû Viãûc phäúi gheïp hãû vi xæí lyï vaì caïc thiãút bë laìm viãûc våïi caïc âaûi læåüng tæång tæû laì mäüt nhu cáöu ráút hay gàûp trong thæûc tãú cuîng nhæ trong cäng nghiãûp. Caïc pháön tæí maì hãû vi xæí lyï cáön phaíi phäúi gheïp thæåìng laì caïc âáöu âo (bäü caím biãún hoàûc bäü biãún âäøi) åí âáöu vaìo vaì caïc cå cáúu cháúp haình caïc loaûi åí âáöu ra. Âãø gheïp näúi våïi caïc thiãút bë nhæ váûy, thäng thæåìng phaíi cáön âãún caïc bäü chuyãøn âäøi tæång tæû - säú (analog to digital converter, ADC), caïc bäü chuyãøn âäøi säú - tæång tæû (digital to analog converter, DAC). Trong mäüt säú træåìng håüp cuû thãø ta coìn cáön âãún moüt säú thiãút bë âiãûn tæí chuyãn duûng khaïc bäü khãúch âaûi âo, bäü chuyãøn maûch tæång tæû (bäü däön kãnh hoàûc bäü phán kãnh tæång tæû), maûch so saïnh säú, maûch trêch máùu vaì giæî máùu. Khuãúch âaûi cäng suáút... Hçnh 9.16. Så âäö khäúi cuía hãû thäúng âiãöu khiãøn duìng vi xæí lyï Caïc thiãút bë trãn thæåìng âæåüc gheïp näúi våïi nhau âãø taûo thaình caïc hãû tu tháûp dæî liãûu (data acquisition system, ADS), caïc bäü âiãöu khiãøn, caïc thiãút bë âo læåìng cao cáúp , caïc thiãút bë xæí lyï dæî liãûu thåìi gian thæûc..., táút caí âæåüc sæí duûng räüng raîi trong cäng nghiãûp cuîng nhæ trong âåìi säúng. Ta seî khäng âi sáu vaìo tæìng maûch phäúi gheïp trong caïc thiãút bë cuû thãø maì chè nãu åí âáy så âäö khäúi cuía mäüt hãû thäúng âiãöu khiãøn dæûa trãn cå såí vi xæí lyï nhæ laì mäüt vê duû âaûi diãûn (hçnh 9.16.) Hãû thu tháûp dæî liãûu coï nhiãûm vuû phäúi gheïp våïi caïc bäü caím biãún vãö màût âiãûn (phäúi håüp tråí khaïng, khuãúch âë mæïc tên hiãûu...) vaì biãún caïc tên hiãûu thu âæåüc tæì daûng tæång tæû ssang daûng säú âãø CPU coï thãø âoüc vaìo vaì xæí lyï. Baìn phêm vaì maìn hçnh laì hai thiãút bë vaìo/ra truyãön thäúng. Tuyì theo quy mä vaì tênh cháút cäng viãûc, chuïng coï thãø laì caïc thiãút bë ráút âån giaín nhæ baìn phêm hãû 16 vaì caïc âeìn hiãøn thë LED,LCD hoàûc phæïc taûp hån nhæ baìn phêm vaì maìn hçnh giäúng nhæ trong caïc maïy vi tênh thæûc thuû. Bäü vi xæí lyï åí âáy thæåìng laì loaûi chuyãn duûng, âæåüc chãú taûo âàûc biãût cho caïc cäng viãûc trong âiãöu khiãøn (vê duû nhæ caïc vi maûch 8051, 8096 cuía Intel). Chæång trçnh viãút cho CPU thäng thæåìng laì âãø thæûc hiãûn caïc thao taïc âiãöu khiãøn cuía caïc khäúi chæïc nàng theo kiãøu tyí lãû/têch phán/vi phán (PID) bàòng phæång phaïp säú. Mäüt âiãøm âàûc biãût næîa laì trong hãû thäúng diãöu khiãøn thæåìng coï mäüt âäöng häö thåìi gian thæûc (RTC) âãø hãû thäúng coï thãø thæûc hiãûn caïc yãu cáöu âiãöu khiãøn theo thåìi gian thæûc. Caïc cå cáúu cháúp haình thæåìng laì loaûi säú hay tæåüng tæû. Cå cáúu cháúp haình säú thæåìng laì caïc khoaï âiãûn tæí hoàûc khoaï cå âiãûn duìng âãø âoïng/ngàõt caïc maûch cáúp âiãûn cho âäúi tæåüng cáön âiãöu khiãøn, vç váûy caïc cå cáúu naìy chè cáön âæåüc cáúp tên hiãûu logic thêch håüp laì âæåüc.Caïc cå cáúu cháúp haình tæång tæû cáön âæåüc näúi våïi hãû vi xæí lyï qua caï bäü chuyãøn âäøi DAC vaì keìm theo caïc bäü khuãúch âaûi cäng suáút âãø thæûc hiãûn caïc thao taïc âiãu khiãøn do bäü vi xæí lyï âæa âãún. Phäúi gheïp CPU våïi maûch âãúm/âënh thåìi gian 8254 (8253) Maûch âënh thåìi gian láûp trçnh âæåüc 8254 (8253) laì mäüt maûhh phuû ráút quan troüng trong caïc hãûü vi xæí lyï cuía Intel. Noï coï thãø âaïp æïng âæåüc caïc yãu cáöu æïng duûng khaïc nhau trong hãû vi xæí lyï: âãúm thåìi gian, âãúm sæû kiãûn, chia táön säú, taûo ra daîy xung... Så âäö khäúi cuía vi maûch 8254 vaì caïch phäúi gheïp våïi CPU âæåüc thãø hiãûn trãn hçnh 9.17. Caïc tên hiãûu cuía vi maûch 8254 coï tãn vaì yï nghéa giäúng nhæ cuía 8088 nãn khaï quen thuäüc vaì ta seî khäng cáön phaíi giaíi thêch nhiãöu næîa. Chán choün voî cuía vi maûch 8254 phaíi âæåüc näúi våïi âáöu ra cuía mäüt bäü giaíi maî âãø âënh âëa chè cå baín cho maûch. Cuìng våïi âëa chè cå baín, caïc chán âëa chè A1 vaì A0 seî cung cáúp âëa chè cuû thãø cuía caïc thanh ghi åí bãn trong maûch 8254 khi ghi (láûp trçnh) hoàûc âoüc thäng tin cuía maûch (xem baíng 9.1). Âoï laì 3 thanh ghi cho 3 bäü âãúm vaì 1 thanh ghi cho tæì âiãöu khiãøn. Theo så âäö khäúi ta tháúy trong vi maûch 8254 coï 3 bäü âãúm luìi 16 bit, näüi dung ban âáöu cuía mäùi bäü âãúm âãöu coï thãø láûp trçnh tæì CPU âãø thay âäøi âæåüc. Ngoaìi ra ta coìn coï thãø âiãöu khiãøn âæåüc hoaût âäüng cuía caïc bäü âãúm bàòng tên hiãûu tæì bãn ngoaìi qua caïc chán cuía (GATE) âãø cho pheïp bàõt âáöu âãúm (GATE = 1) hay âãø buäüc kãút thuïc quaï trçnh âãúm (GATE = 0). D0-D7 CPU RD WR A0 A1 A2-A15 Âãûm bus dæî liãûu Thanh ghi tæì âiãöu khiãøn Bäü âãúm 0 RD Lägic WR diãöu A0 khiãøn A1 ghi/âoüc Bäü âãúm 2 Bäü âãúm 1 Clk2 Clk1 Clk0 Gate0 Gate1 Gate2 Out1 Out2 Out0 cs Hçnh 9.17. Så âäö khäúi cuía vi maûch 8254. Baíng 9.1. Choün caïc thanh ghi bãn trong 8254 A1 A0 Choün ra 0 0 1 1 0 1 0 1 Thanh ghi cho bäü âãûm säú 0 Thanh ghi cho bäü âãûm säú 1 Thanh ghi cho bäü âãûm säú 2 Thanh ghi tæì âiãöu khiãøn Khåíi âáöu cho 8254 Cuîng nhæ caïc vi maûch láûp trçnh âæåüc khaïc phuû tråü cho CPU âaî noïi træåïc nay, sau khi báût âiãûn maûch 8254 phaíi âæåüc khåíi âáöu âãø coï thãø hoaût âäüng theo âuïng yãu cáöu. Mäüt âiãöu cáön chuï yï laì traûng thaïi cuía 8254 sau khi báût âiãûn laì khäng xaïc âënh. ÂÃØ khåíi âáöu chomaûch 8254 ta phaíi gi tæì âiãöu khiãøn vaìo thanh ghi tæì âiãöu khiãøn cuía noï. Daûnh thæïc tæì âiãöu khiãøn cuía 8254 âæåüc biãøu diãùn trãn hçnh 9.18. Ghi/âoüc 00: lãûnh chäút bäü âãúm 01: chè âoüc/ghi byte LSB 10: chè âoüc/ghi byte MSB 0: Bäü âãúm HEX 4 säú 11: âoüc/ghi byte LSB, tiãúp theo laì MSB 1: Bäü âãúm BCD 4 säú D7 D6 D5 D4 D3 D2 D1 D0 SC1 SC0 RW1 RW0 M2 M1 M0 BCD Choün bäü âãúm Chãú âäü 00: âãø choün bäü âãúm 0 000: chãú âäü 0 - Taûo yãu cáöu ngàõt khi âãúm hãút 01: âãø choün bäü âãúm 1 001: chãú âäü 1 - Âa haìi âåüi láûp trçnh âæåüc 10: âãø choün bäü âãúm 2 010: chãú âäü 2 - Bäü chia táön säú cho N 11: âãø ra lãûnh âãúm ngæåüc 011: chãú âäü 3 - Taûo xung vuäng 100: chãú âäü 4 - Taûo xung cho pheïp mãöm 101: chãú âäü 5 - Taûo xung cho pheïp cæïng Hçnh 9.18. Daûng thæïc thanh ghi tæì âiãöu khiãøn cuía vi maûch 8254. Thanh ghi tæì âiãöu khãøn duìng âãø chæïa tæì âiãöu khiãøn cho caí 3 bäü âãúm. Våïi caïc bit SC1 - SC0 (theo maî hãû 2) ta coï thãø choün ra bäü âãúm laìm viãûc theo caïch thæïc do tæì âiãöu khiãøn quyãút âënh. Træåìng håüp âàûc biãût khi SC1 - SC0 =11 ta coï thãø duìng lãûnh âoüc ngæåüc âãø âoüc näüi dung hoàûc traûng thaïi cuía bäü âãúm trong thåìi âiãøm hiãûn taûi. Caïc bäü âãúm cuía maûch 8254 âãöu laìm viãûc åí chãú âäü âãúm luìi. Nhæ váûy säú âãúm låïn nháút maì ta coï thãø âæa vaìo âãø bàõt âáöu âãúm laì 10000H hoàûc 1000, vç sau khi luìi 1 ta coï näüi dung måïi cuía bäü âãúm laì FFFH hoàûc 9999 tuyì theo bit BCD=D0 laì 0 hay 1. Caïc bit M2 M1 M0 seî xaïc âënh caïc chãú âä laìm viãûc cuía bäü âãúm, trong âoï caïc âáöu vaìo GATE coï nhæîng taïc âäüng khaïc nhau âãún âáöu ra OUT. Maûch 8254 coï táút caí 6 chãú âäü laìm viãûc vaì caïc chãú âäü naìy âæåüc âaïnh säú tæì 0-5. Caïc bit RW1RW0 cho pheïp choün caïch thæïc ghi/âoüc våïi caïc bäü âãúm. Ta coï thãø ghi/âoüc taïch riãng tæìng byte cuía bäü âãúm. Nãúu muäún ghi/âoüc liãn tiãúp 2 byte cuía bäü âãúm thç ta phaíi tuán theo thæï tæû: byte tháúp træåïc vaì tiãúp theo laì byte cao. Âãø haûn chãú båït säú bit cáön thiãút cho viãûc læu træî thäng tin cuía âiãøm aính maìu maì váùn âaím baío âæåüc gam maìu räüng ngæåìi ta âaî sæí duûng viãûc maî hoaï thäng tin theo baíng maìu ( palette ) . Âiãöu naìy coï nghéa laì trong mäüt thåìi âiãøm chuïng ta chè âæåüc sæí duûng mäüt säú maìu trong baíng maìu chæïa táút caí caïc maìu coï thãø coï . Vê duû : vi âiãöu khiãøn maìn hçnh CGA cuía haîng IBM coï khaí nàng hiãøn thë mäüt luïc 320 x 200 âiãøm våïi 4 maìu choün trong baíng gäöm 16 maìu . Vç taûi mäüt thåìi âiãøm ta chè hiãûn 4 maìu nãn âãø læu giæî thäng tin cho 1 âiãøm aính ta chè cáön 2 bit . Vê duû khaïc : nãúu taûi 1 thåìi âiãøm ta væìa loìng våïi viãûc hiãøn thë 640 x 400 âiãøm aính våïi 16 maìu trong baíng maìu gäöm coï 256 maìu , chæï khäng phaíi laì 256 maìu cuìng mäüt luïc , ta seî chè cáön âãún 4 bit âãø læu giæî thäng tin cho 1 âiãøm aính våïi 1 trong 16 maìu . Bäü nhåï RAM âãûm seî nhoí âi mäüt næía so våïi træåìng håüp hiãûn âuí 256 maìu , lyï do laì 1 byte trong træåìng håüp naìy coï thãø chæïa thäng tin cho 2 âiãøm maìu ( xem hçnh 9.13a ). Viãûc chè duìng mäüt säú maìu trong 1 baíng maìu âãø laìm giaím kêch thæåïc bäü nhåï âãûm laì ráút coï låüi âäúi våïi caïc bäü âiãöu khiãøn maìn hçnh coï âäü phán giaíi cao ( vaì nhæ váûy âoìi hoíi bäü nhåï låïn ) . Vç âiãöu naìy laìm giaím âæåüc táön säú truy nháûp bäü nhåï RAM âãûm khi laìm tæåi maìn hçnh . Mäüt biãûn phaïp khaïc âã laìm giaím truy nháûp bäü nhåï âãûm khi laìm tæåi maìn hçnh laì bàòng caïch täø chæïc bäü nhåï âãûm theo caïc màût nhåï song song âãø chæïa thäng tin cuía mäüt âiãøm . Caïch täø chæïc bäü nhåï cho kiãøu hiãøn thë naìy âæåüc minh hoaû trãn hçnh 9.13b . Trong caïch laìm naìy , 4 bit thäng tin cuía 1 âiãøm aính âæåüc âãø taûi caïc vë trê giäúng nhau trong 4 byte liãn tiãúp cuía bäü nhåï DRAM âãûm . Âiãöu naìy tæång âæång viãûc mäùi thäng tin vãö 1 maìu âæåüc âãø trong 1 màût âiãøm ( bit plan ). Khi bäü âiãöu khiãøn maìn hçnh láúy 4 byte naìy vaìo caïc thanh ghi cuía noï thç noï coï âæåüc caí thaíy thäng tin cuía 8 âiãøm aính naìy âæåüc âæa ra maìn hçnh thç bäü nhåï DRAM coï thåìi gian häöi phuûc âãø laûi coï thãø âoüc tiãúp âæåüc . Våïi 4 bit thäng tin cho 1 âiãøm aính trong 4 màût ta seî choün âæåüc 1 trong 16 thanh ghi tæång æïng våïi 1 trong 16 maìu cuía baíng maìu gäöm 64 maìu ( thanh ghi naìy coï 6 bit cho caïc maìu âoí vaì âoí nhaût , xanh biãøn vaì xanh biãøn nhaût , xanh laï cáy vaì xanh laï cáy nhaût ) . Âáy cuîng laì caïch hiãûn âiãøm maìu cuía vé âiãöu khiãøn maìn hçnh EGA ( enhanced graphics adapter : bäü phäúi gheïp âäö hoaû caíi tiãún ) . * Caïc loaûi phäúi gheïp maìn hçnh thäng duûng : Trãn hçnh 9.14 laì baín liãût kã caïc loaûi maûch phäúi gheïp maìn hinh thäng duûng trong thæûc tãú vaì caïc thäng säú kyî thuáût chênh cuía chuïng . Hçnh 9.14 cuîng giåïi thiãûu caïc khuän máùu hiãùn thë cuía caïc vé phäúi gheïp maìn hçnh cho caïc maïy vi tênh caï nhán cuía haîng IBM hoàûc tæång thêch . P1 P0 Bäü nhåï âãûm hçnh D7 D0 âiãøm 1 âiãøm 0 R G B I R G B I chæïa thäng tin theo âiãøm aính Thanh ghi baíng maìu xxRIGIBIRGB 0 5 15 Âãún maìn hçnh RBGI RI.GI.BI.R.BG I B G R Màût 1 D0 Màût B D1 Màût G D2 Màût R D3 Âiãøm 1 Âiãøm 0 Bäü nhåï âãûm hçnh D7 D0 chæïa thäng tin theo kiãøu màût âiãøm Hçnh 9.13. caïch chæïa ï thäng tin trong bäü nhåï TAM âãûm hçnh Caïc maïy tênh caï nhán cuía IBM hoàûc caïc maïy tênh tæång thêch thæåìng khäng coï sàôn khaí nàng âäö hoaû gàõn trãn baíng meû .Ngæåìi ta phaíi læûa choün âãø càõm vaìo baíng meû mäüt vi maûch phäúi gheïp ( vè âiãöu khiãøn maìn hçnh ) våïi khaí nàng hiãøn thë åí chãú âäü vàn baín / âäü hoaû thêch håüp vaì choün loaûi maìn hçnh phuì håüp våïi bäü âiãöu khiãøn âoï . Do váûy tãn mäüt bäü âiãöu khiãøn maìn hçnh cuîng duìng âãø goüi luän caïc loaûi maìn hçnh tæång thêch âi keìm våïi noï . Coï trong maïy Maìu / bäü maìu Loaûi tên hiãûu Âäü phán giaíi Bäü phäúi gheïp Chãú âäü CAG Vàn baín 80x25 4/16 säú PC.XT.AT p.g tháúp 160x100 4/16 säú PC.XT.AT p.g væìa 320x200 4/16 säú PC.XT.AT p.g cao 640x200 2(âen , tràõng) säú PC.XT.AT Hercules mäüt maìu 720x348 2 säú PC.XT.AT maìu 720x348 16/64 säú PC.XT.AT EGA 640x350 16/64 säú PC.XT.AT MCGA p.g væìa 320x200 256 tæång tæû PS2-25.80 p.g cao 640x480 2 tæång tæû PS2-25.80 VGA 11H 640x480 2 tæång tæû PS2-50.80 12H 640x480 16/256K tæång tæû PS2-50.80 13H 640x200 256/256K tæång tæû PS2-50.80 Super VGA 640x480 256/256K tæång tæû PS2-50.80 8514/A 1024x768 256/256K tæång tæû PS2-50.80 Hçnh 9.14 : Caïc loaûi phäúi gheïp maìn hçnh chênh cho maïy IBM VÈ CGA CUÍA IBM Vè phäúi gheïp maìn hçnh maìu âäö hoaû ( color grahêc a dapter : CGA ) mäüt thåìi laì mäüt loaûi vè phäúi gheïp maìn hçnh ráút thäng duûng , noï coï thãø âiãöu khiãøn maìn hçnh laìm viãûc åí chãú âäü vàn baín cuîng nhæ chãú âäü âäö hoaû . Haût nhán cuía vè CGA váùn laì vi maûch chuyãn duûng CRTC naìy cung cáúp caïc tên hiãûu âëa chè cho RAM âãûm âãø laìm tæåi maìn hçnh , tên hiãûu âãø queït doìng âiãøm cuía ma tráûn âiãøm trong ROM taûo chæî , caïc tên hiãûu âäöng bäü doìng vaì âäöng bäü maình vaì mäüt säú tên hiãûu khaïc . Vè CGA coï thãø âiãöu khiãøn maìn hçnh våïi caïc âáöu vaìo RBG taïch biãût hoàûc cung cáúp tên hiãûu hçnh täøng håüp âæåüc âiãöu chãú cao táön cho caïc loaûi maìn hçnh maìu täøng håüp . Trong vè CGA coï bäü nhåï RAM âãûm hçnh våïi dung læåüng 16 KB vaì âæåüc bàõt âáöu tæì âëa chè OB800H . ÅÍ chãú âäü vàn baín , maìn hçnh hiãûn âæåüc 80x25 kyï tæû theo ma tráûn âiãøm 8x8 , mäùi kyï tæû cáön 2 byte liãn tiãúp âãø chæïa maî vaì thuäüc tênh giäúng nhæ åí bäü âiãöu khiãøn cho maìn hçnh mäüt maìu ( xem hçnh 9.10a , trãn hçnh 9.10b caïc bit b2b1b0 tæång æïng våïi caïc maìu RGB cho chæî vaì b6b5b4 tæång æïng våïi caïc maìu RGB cho nãön ) . Âãø hiãûn thë kyï tæû ta coï thãø âënh nghéa âæåüc 8 maìu nãön vaì 16 maìu chæî theo täø håüp våïi caïc bit thuäüc tênh ( xem hçnh 9.12 ) . Bit BL = 1 laì hiãûn chæî nháúp nhaïy . I = 1 laì âãø hiãûn chæî våïi cæåìng âäü saïng låïn hån . Nhæ váûy , âãø læu giæî thäng tin cuía 1 trang maìn hçnh vàn baín ta duìng hãút 4 KB bäü nhåï vaì våïi 16 KB RAM âãûm hçnh coï trãn vè CGA ta coï thãø læu giæî âæåüc 4 trang vàn baín . Khi laìm viãûc åí chãú âäü âäö hoaû , tên hiãûu tæì RAM âãûm âæåüc âæa træûc tiãúp âãún caïc thanh ghi dëch âãø âæa âãún âiãöu khiãøn riãng biãût mäùi suïng âiãûn tæí . Vè CGA coï thãø laìm viãûc åí 3 mæïc âäü phán giaíi : tháúp ( 160x100 âiãøm , 4 maìu trong baíng 16 maìu ) ,trung bçnh ( 320x200 âiãøm , 4 maìu trong baíng 16 maìu ) vaì cao ( 640x200 âiãøm , 2 maìu âen vaì tràõng ). VÈ EGA CUÍA IBM Vi phäúi gheïp âäö hoaû caíi tiãún ( enhanced graphics adapter : EGA ) coï bãn trong bäü âiãöu khiãøn maìn hçnh giäúng nhæ maûch CRTC 6845 nãn noï cho pheïp láûp trçnh âãø âënh nghéa ra táút caí caïc chãú âäü laìm viãûc åí vè CGA , ngoaìi ra coìn âënh nghéa âæåüc mäüt säú chãú âäü âàûc biãût khaïc . Vè EGA sæí duûng caïch bäú trê bäü nhåï âãûm theo kiãøu màût âiãøm aính vaì caïc thanh ghi baíng maìu ( xem hçnh 9.13b). Trãn hçnh 9.13 bieíu hiãûn chãú âäü hiãûn thë 640x350 âiãøm vaì 16 maìu trong bnaíg maìu gäöm 64 maìu . Bäü nhåï DRAM âãûm âæåüc xàõp xãúp thaình 4 màût âiãøm , mäùi màût chæïa 1 bit mä taí thäng tin vãö maìu cuía 1 âiãøm . Mäüt nhoïm 4 bit âoüc âæåüc tæì 4 màût , mäùi màût chæïa 1 bit trong 16 thanh ghi 8 bit cuía baíng maìu . Chè coï 6 bit tháúp cuía thanh ghi måïi âæåüc duìng âãø âæa ra âiãöu khiãøn maìn hçnh . Täø håüp cuía 6 bit naìy taûo ra caïc maìu cuía baíng 64 maìu , âoï laì caïc maìu trãn thæûc tãú hiãûn thë theo caïc giaï trë cuû thãø coï trong 16 thanh ghi trong baíng maìu . BÄÜ MCGA CUÍA IBM Bäü phäúi gheïp MCGA ( multicolor graphics array ) cuía IBM âæåüc cáúy ngay trãn baíng meû cuía maïy PS/2-25 hoàûc PS/2-30 cho pheïp láûp trçnh âãø hiãûn thë trong táút caí caïc chãú âäü cuía vè EGA vaì mäüt säú chãú âäü khaïc . Vê duû , ta coï thãø láûp trçnh âãø coï chãú âäü hiãûn thë 320x200 âiãøm våïi 256 maìu hoàûc 640x480 âiãøm tràõng âen . VÈ VGA CUÍA IBM Ttrong vè phäúi gheïp VAG( video gate array) cuîng coï bäü CRTC cho pheïp láûp trçnh âãø choün ra caïc giaï trë thêch håüp cho táön säú âiãøm , säú doìng queït maình , táön säú queït maình , säú doìng queït träüi. Vè VGA coï thãø thæûc hiãûn âæåüc táút caí caïc chãú âäü hiãûn thë cuía caïc vi CGA vaì EGA cuìng nhiãöu chãú âäü riãng biãût khaïc . Vê duû : vè VGA våïi 8 bit âãø maî hoaï maìu cho 1 âiãøm aính coï thãø âiãöu khiãøn hiãûn thë 256 maìu trong 1 bnaíg maìu gäöm 262.144 ( 256 K ) maìu . Âãø laìm âæåüc nhæ váûy , bäü nhåï cuía vè VGA âæåüc täø chæïc thaình 4 màût , mäùi màût chæïa 8 bit maî hoaï maìu cho 1 âiãøm .Âáöu ra 1 vè VGA laì tên hiãûu tæång tæû cho caïc maìu RGB . Coï 3 bäü DAC 6 bit âæåüc näúi vaìo 6 bêt tæång æïng cho mäùi maìu cuía 1 trong 256 thanh ghi maìu 18 bêt (hçnh 9.15a). Caïc thanh ghi maìu naìy âæåüc choün nhåì näüi dung 4 bêt tháúp cuía thanh ghi baín maìu, 4 bêt cao cuía byte maî hoïa maìu cho 1 âiãøm choün ra caïc thanh ghi baín maìu coìn 4 bêt tháúp cuía noï âæåüc duìng âãø chè ra âëa chè pháön cao cuía caïc thanh ghi maìu (âëa chè cuía mäüt vuìng caïc thanh ghi maìu). Nhæ váûy, våïi 64 mæïc maìu cho 1 maìu thç ta coï baín maìu gäöm 64 x 64 x 64 = 256K maìu. Trãn hçnh 9.15b laì mäüt vê duû vãö chãú âäü hiãûn thë 640 x 400 âiãøm 16 maìu. Mäùi âiãøm aïnh âæåüc maî hoïa bàòng 4 bêt âãø taûo 4 màût âiãøm, 4 bêt naìy choün ra âæåüc 1 trong 16 thanh ghi baín maìu. Thanh ghi chãú âäü chè cho pheïp 4 bit tháúp cuía thanh ghi baín maìu choün ra 1 thanh ghi maìu trong nhoïm maìu, 4 bêt tháúp cuía thanh ghi choün maìu seî choün 1 trong 16 nhoïm maìu. Nhæ váûy, ta coï thãø chuyãøn ráút nhanh giæîa caïc nhoïm 14 maìu naìy. * Láûp trçnh cho caïc vé phäúi gheïp maìn hçnh Caïc vé phäúi gheïp maìn hçnh vãö màût láûp trçnh laì tæång âæång våïi caïc cäøng coï âëa chè xaïc âënh. Vç váûy âãø âiãöu khiãøn maìn hçnh laìm viãûc ta chè cáön ghi caïc thäng säú cáön thiãút vaìo caïc thanh ghi âiãöu khiãøn, thanh ghi baíng maìu ... laì xong . Trong thæûc tãú coï nhiãöu caïch láûp trçnh âãø âiãöu khiãøn maìn hçnh laìm viãûc, trong âoï coï 2 caïch thäng duûng nháút : + Duìng caïc lãûnh håüp ngæî âãø gi caïc thäng säú cáön thiãút vaìo caïc thanh ghi âiãöu khiãøn cuía vè khäúi gheïp âãø âiãöu khiãøn chãú âäü hiãûn thë vaì ghi træûc tiãúp kê tæû cáön hiãûn thë vaìo RAM âãûm âãø thay âäøi näüi dung. Âáy laì caïch âãø âaût âæåüc chãú âäü hiãûn thë nhanh nháút. + Duìng caïc dëch vuû cuía ngàõt INT 10H cuía BIOS nãúu laìm viãûc våïi caïc maïy kiãøu IBM . Caïch naìy thæåìng cháûm hån caïch trãn nhæng coï låüi laì ta coï thãø sæí duûng caïc dëch vuû coï sàôn cuía BIOS vaì vç váûy coï thãø trao âäøi chæång trçnh giæîa caïc maïy. Vê duû : Âãø minh hoüa cho viãûc láûp trçnh cho maìn hçnh duìng håüp ngæî bàòng caïch ghi træûc tiãúp vaìo vuìng RAM âãûm hiãûn thë, ta láúy mäüt vê duû hiãûn thë mäüt maìn hçnh 80 cäüt vaì 25 haìng kê tæû “S” (tæïc laì 80 x 25 = 2000 kê tæû “S” ) våïi maìu têa trãn nãön xanh da tråìi D4-D7 Bäún màût cuía bäü nhåï RAM âãûm hçnh D0-D3 Thanh ghi Baíng maìu Thanh ghi cuía 18bit R G B 0 15 31 240 a) Hiãûn 320x200 âiãøm våïi 256 maìu Thanh ghi Baíng maìu Thanh ghi cuía 18bit R G B 0 15 31 240 4 màût cuía bäü nhåï Ram âãûm hçnh b) Hiãûn 640x480 âiãøm 16 maìu 255 DAC 6 Bit 255 DAC 6 Bit 0 15 D0 - D3 4 Nhoïm 0 Nhoïm 2 Nhoïm15 I Thanh ghi âiãöu chènh chãú âäü Thaûnh ghi choün maìu Thán cuía chæång trçnh noïi trãn viãút dæåïi daûng thuí tuûc coï thãø nhæ sau : Aïp suáút Nhiãût âäü Âäü áøm Âäü PH mæïc Täúc âäü Råle Âiãûn tæí DAC Kdcs & ccch DAS DAS Cäøng vaìo Cäøng vaìo Hãû vi sæí lyï Maìng hçnh hiãøn thë Baìn phêm Caïc âáöu do RTC Disp Proc MOV AX,OB800H; Cho DS chè vaìo vuìng RAM âãûm MOV DS, AX MOV CX, 2000 ; Säú kê tæû phaíi hiãûn MOV DI, 0 ; Hiãûn tæì kê tæû taûi goïc traïi cao HIEN :MOV {DI , 3524h ; S têa trãn nãön tråìi xanh !!! ADD DI,2 : Hiãûn kê tæû tiãúp LOOP HIEN ; Cho âãún hãút MOV AH, 4CH ; vãö DOS INT 21H Disp Endp 4. Phäúi gheïp våïi thãú giåïi tæång tæû : Viãûc phäúi gheïp hãû vi xæí lê vaì caïc thiãút bë laìm viãûc våïi caïc âaûi læåüng tæång tæû laì mäüt nhu cáöu ráút hay gàûp trong thæûc tãú âåìi säúng cuîng nhæ trong cäng nghiãûp. Caïc pháön tæí maì hãû vi xæí lê cáön phaíi phäúi gheïp thæåìng laì caïc âáöu âo (bäü caím biãún hoàûc bäü biãún âäøi) åí âáöu vaìo vaì caïc cå cáúu kãút thaình åí caïc loaûi åí âáöu ra . âãø gheïp näúi caïc thiãút bë nhæ váûy, thäng thæåìng ta phaíi cáön âãún caïc bäü chuyãøn âäøi tæång tæû säú (analog to digital converter :ADC). Caïc bäü chuyãøn âäøi säú tæång tæû (digital to analog converter: DAC). Trong mäüt säú træåìng håüp cuû thãø ta coìn cáön âãún mäüt säú thiãút bë âiãûn tæí chuyãn duûng khaïc: Bäü khuyãúch âaûi âo, bäü chuyãøn maûch tæång tæû (bäü däön kãnh hoàûc phán kãnh tæång tæû) maûch so saïnh säú, maûch trêch máùu vaì giæî máùu, khuyãúch âaûi cäng suáút ... DAS: hãû thu nháûp dæî liãûu Kdes &ccch: khuãúch âaûi cäng suáút xa cå cáúu cháúp haình Hçnh 9.16. Så âäö khäúi cuía hãû thäúng âiãöu khiãøn duìng vi sæí lyï Caïc thiãút bë trãn thæåìng âæåüc gheïp näúi våïi nhau âãø taûo thaình caïc hãû thu tháûp dæû liãûu (data acquisition system: DAS) caïc bäü âiãöu khiãøn, caïc thiãút âo læåìng cao cáúp, caïc thiãút bë xæí lê dæî liãûu thåìi gian thæûc ... táút caí âæåüc sæí duûng räüng raîi trong cäng nghiãûp cuîng nhæ trong âåìi säúng. Ta seî khäng âi sáu vaìo tæìng maûch phäúi gheïp trong caïc thiãút bë cuû thãø maì chè nãu åí âáy så âäö khäúi cuía mäüt hãû thäúng âiãöu khiãøn dæûa trãn cå såí vi xæí lê nhæ laì mäüt vê duû âaûi diãûn (hçnh 9.16) Hãû thu tháûp dæî liãûu coï nhiãûm vuû phäúi gheïp caïc bäü caím biãún vãö màût diãûn (phäúi håüp tråí khaïng, khuãúch âaûi mæïc tên hiãûu...) vaì biãún caïc tên hiãûu thu âæåüc tæì daûng tæång tæû sang daûng säú âãø CPU coï thãø âoüc vaìo vaì xæí lê. Baìn phêm vaì maìn hçnh laì 2 thiãút bë vaìo /ra truyãön thäúng. Tuìy theo quy mä vaì tênh cháút cäng viãûc, chuïng coï thãø laì caïc thiãút bë ráút âån giaín nhæ baìn phêm hãû 16 vaì caïc âeìn hiãûn thë LED, LCD hoàûc phæïc taûp nhæ baìn phêm vaì maìn hçnh giäúng nhæ trong caïc maïy vi tênh thæûc thuû. Bäü vi xæí lê åí âáy thæåìng laì loaûi chuyãn duûng, âæåüc chãú taûo âàûc biãût cho caïc cäng viãûc trong âiãöu khiãøn. (vê duû : Nhæ caïc vi maûch 8051, 8096 hoàûc 80186 cuía INTEL) chæång trçnh viãút cho CPU thäng thæåìng laì âãø thæûc hiãûn caïc thao taïc âiãöu khiãøn cuía caïc khäúi chæïc nàng theo kiãøu tyí lãû/ têch phán/ vi phán (PID) bàòng phæång phaïp säú. Mäüt âiãøm âàûc biãût næîa laì trong hãû thäúng âiãöu khiãøn thæåìng coï mäüt âäöng häö thåìi gian thæûc (RTC) âãø hãû thäúng coï thãø thæûc hiãûn caïc yãu cáöu âiãöu khiãøn theo thåìi gian thæûc. Caïc cå cáúu cháúp haình thæåìng laì loaûi säú hay tæång tæû . Cå cáúu cháúp haình säú thæåìng laì caïc khoïa âiãûn tæí hoàûc khoïa cå âiãûn duìng âãø âoïng/ ngàõt càõt maûch cuïp âiãûn cho âäúi tæåüng cáön âiãöu khiãøn, vç váûy caïc cå cáúu naìy chè cáön âæåüc cáúp tên hiãûu lägic thêch håüp laì âæåüc. Caïc cå cáúu cháúp haình tæång tæû cáön âæåüc näúi væoïi hãû vi xæí lê qua caïc bäü chuyãøn âäøi DAC vaì keìm theo caïc bäü khuãúch âaûi cäng suáút âãø thæûc hiãûn caïc thao taïc âiãöu khiãøn do bäü vi xæí lyï âæa âãún. 5. Phäúi gheïp CPU våïi maûch âãúm/ âënh thåìi gian 8254 (8253) Maûch âënh thåìi gian láûp trçnh âæåüc 8254/8253 laì mäüt maûch phuû ráút quan troüng tring caïc hãû vi xæí lê cuía Intel. Noï coï thãø dãù âaïp æïng âæåüc caïc yãu cáöu æïng duûng khaïc nhau trong hãû vi xæí lyï : âãúm thåìi gian, âãúm sæû kiãûn, chia táön säú, taûo ra daîy xung ... Så âäö khäúi cuía vi maûch 8254 vaì caïch phäúi gheïp våïi CPU âæåüc thãø hiãûn trãn hçnh 9.17 . Caïc tên hiãûu cuía vi maûch 8254 coï tãn vaì yï nghéa giäúng nhæ cuía 8088 nãn khaï quen thuäüc vaì ta seî khäng cáön giaíi thêch nhiãöu næîa. Chán choün voí cuía vi maûch 8254 phaíi âæåüc näúi våïi âáöu ra cuía mäüt bäü giaíi maî âãø âënh âëa chè cå baín cho maûch . Cuìng våïi âëa chè cå baín, caïc chán âëa chè A1 vaì A0 seî cung cáúp âëa chè cuû thãø cuía caïc thanh ghi åí bãn trong maûch 8254 khi ghi (láûp trçnh) hoàûc doüc thäng tin cuía maûch (xem aính 9.1). Âoï laì 3 thanh ghi cho 3 bäü âãúm vaì 1 thanh ghi cho tæì âiãöu khiãøn . Theo så âäö khäúi ta tháúy trong vi maûch 8254 coï 3 bäü âãúm luìi 16 bit, näüi dung ban âáöu cuía mäùi bäü âãúm âãöu coa thãø láûp trçnh tæì CPU âãø thay âäøi âæåüc. Ngoaìi ra ta coìn coï thãø âiãöu khiãøn âæåüc hoaût âäüng cuía caïc bäü âãúm bàòng tên hiãûu tæì bãn ngoaìi qua caïc chán cæía (GATE) âãø cho pheïp bàõt âáöu âãúm (Gate = 1) hay âãø buäüc kãút thuïc quaï trçnh âãúm (Gate = 0). RD Login WR âiãöu A0 khiãøn A1 ghi/âoüc Clk Gate Out Clk Gate Out Gate Out Clk o 1 2 o o 1 1 2 2 Cx Âãûm Bus Dæî liãûu Bäü âãûm 0 Bäü âãûm 1 Bäü âãûm 2 Thanh ghi tæì Diãöu khiãøn D0-D7 CPU RD WR A0 A1 A2-A15 Hçnh 9.17. Så âäö khäúi vi maûch 8254 Baïnh 9.1. choün caïc thanh ghi bãn trong 8254 A1 A0 Choün ra 0 0 1 1 0 1 0 1 Thanh ghi cho bäü âãúm säú 0 Thanh ghi cho bäü âãúm säú 1 Thanh ghi cho bäü âãúm säú 2 Thanh ghi tæì âiãöu khiãøn * Khåíi âáöu cho 8254 Cuîng nhæ caïc vi maûch láûp trçnh âæåüc khaïc phuû tråü cho CPU âaî noïi tæì træåïc tåïi nay, sau khi báûc âiãûn maûch 8254 phaíi âæåüc khåíi âáöu âãø coï thãø hoaût âäüng theo âuïng yãu cáöu. Mäüt âiãöu cáön chuï yï laì traûng thaïi cuía 8254 sau khi báût âiãûn laì khäng xaïc âënh. Âãø khåíi âáöu cho maûch 8254 ta phaíi ghi tæì âiãöu khiãøn vaìo thanh ghi tæì âiãöu khiãøn cuía noï. Daûng thæïc tæì âiãöu khiãøn cuía 8254 âæåüc biãøu hiãûn trãn hçnh 9.18 Ghi/âoüc : 00: lãûnh chäút bäü âãúm 01: chè âoüc/ ghi byte LSB 10: chè âoüc/ ghi byte MSB 0: bäü âãúm HEX 4 säú 11: âoüc/ghi byte LSB, tiãúp theo laì MSB 1: bäü âãúm BCD 4 säú D7 D6 D5 D4 D3 D2 D1 D0 SC1 SC0 RW1 RW0 M2 M1 M0 BCD Chãú âäü Choün bäü âãúm 000:chãú âäü 0-Taûo yãu cáöu ngàõt khi âãúm hãút 00:âãø choün bäü âãúm 0 001:chãú âäü1-Âa haìi âåüi láûp trçnh âæåüc 01: âãø choün bäü âãúm 1 010: chãú âäü 2 - bäü chia tán säú cho N 10:âãø choün bäü âãúm 2 011:chãú âäü 3- Taûo xung vuäng 11: âãø ra lãûnh âoüc ngæåüc 100:chãú âäü 4-Taûo xung cho pheïp mãöm 101:chãú âäü 5-Taûo xung cho pheïp cæïng Hçnh 9.18.Daûng thæïc thanh ghi tæì âiãöu khiãøn cuía vi maûch 8254. Thanh ghi tæì âiãöu khiãøn duìng âãø chæïa tæì âiãöu khiãøn cho caí 3 bäü âãúm våïi caïc bit SC1 - SC0 (theo maî hãû 2 ) ta coï thãø choün ra bäü âãúm âãø laìm viãûc theo caïch thæïc do tæì âiãöu khiãøn quyãút âënh. Træåìng håüp âàûc biãût khi SC1 - SC0 = 11 ta coï thãø duìng lãûnh âoüc ngæåüc âãø âoüc âæåüc näüi dung hoàûc traûng thaïi cuía bäü âãúm trong thåìi gian hiãûn taûi. Caïc bäü âãúm cuía maûch 8254 âãöu laìm viãûc åí chãú âäü âãúm luìi. Nhæ váûy säú âãúm låïn nháút maì ta coï thãø âæa vaìo âãø bàõt âáöu âãúm laì 10.000H hoàûc 10.000, vç sau khi luìi 1 ta coï näüi dung måïi cuía bäü âãúm laì FFFFH hoàûc 9999 tuìy theo bit BCD = D0 laì 0 hoàûc 1 . Caïc bit M2 M1 M0 seî xaïc âënh caïc chãú âäü laìm viãûc cuía caïc bäü âãúm, trong âoï caïc âáöu vaìo GATE coï nhæîng aïtc âäüng khaïc nhau âãún caïc âáöu ra OUT . Maûch 8254 coï táút caí 6 chãú âäü laìm viãûc vaì caïc chãú âäü naìy âæåüc âaïnh säú tæì 0-5 . Caïc bit RW1 RW0 cho pheïp choün caïch thæïc ghi /âoüc våïi caïc bäü âãúm. Ta coï thãø ghi / âoüc taïch riãng tæìng byte cuía bäü âãúm. Nãúu muäún ghi/âoüc liãn tiãúp 2 Byte cuía bäü âãúm thç ta phaíi tuán theo thæï tæû : Byte tháúp træåïc vaì tiãúp theo laì Byte cao . Caïc chãú âäü laìm viãûc cuía 8254 Caïc chãú âäü laìm viãûc cuía 8254 âæåüc mä taí roî nháút thäng qua caïc biãøu âäö thåìi gian (soaûn theo taìi liãûu tra cæïu cuía Intel) . Trong khi xem caïc biãøu âäö âoï ta chuï yï caïc quy âënh vaì caïc kê hiãûu sau : Caïc bäü âãúm âæåüc láûp trçnh âãø laìm viãûc theo hãû 16 vaì åí chãú âäü chè âoüc/ ghi LSB cuía säú âãúm . CW : Tæì âiãöu khiãøn biãùu diãùn theo hãû 16. Caïc con säú nàòm dæåïi âäö thë thåìi gian - N : säú báút kç - Säú trãn : Cho MSB - Säú dæåïi: cho NSB Chãú âäü 0 - taûo yãu cáöu ngàõt khi âãúm xong (Terminal count: TC) Biãøu âäö thåìi gian cuía chãú âäü 0 âæåüc thãø hiãûn trãn hçnh 9.19 . Taûi âæåìng biãøu diãùn xung WR coï caïc giaï trë CW vaì LSB æïng våïi thåìi âiãøm xung ghi têch cæûc. Âoï chênh laì caïc thåìi âiãøm âãø ghi tæì thåìi âiãøm CW cho maûch vaì Byte tháúp cuía säú âãúm cho bäü âãúm âaî choün. Taûi nhoïm xung thæï nháút, CW = 10H tæïc laì ta muäún âënh nghéa chãú âäü 0, chè âoüc/ghi LSB vaì chãú âäü âãúm theo hãû 16 cho bäü âãúm säú 0. Sau khi ghi tæì âiãöu khiãøn vaìo thanh ghi tæì âiãöu khiãøn thç OUT = 0. Tiãúp theo ta ghi LSB = 4 laì pháön tháúp cuía säú âãúm cho bäü âãúm. Giaï trë naìy seî âæåüc chuyãøn vaìo bäü âãúm åí chu kyì âäöng häö sau. Luïc naìy GATE = 1 nãn tæì âáy laì bàõt âáöu cuía quaï trçnh âãúm ngæåüc. Khi bäü âãúm âaût tåïi 0 thç OUT = 1. Âiãöu âoï coï nghéa laì nãúu ta naûp vaìo LSB = N thç sau N + 1 xung âäöng häö ta coï OUT = 1. Ta cuîng nháûn tháúy ràòng bäü âãúm sau khi âaût 0000H thç seî tiãúp tuûc âãúm luìi tæì FFFFH nãúu nhæ noï khäng naûp giaï trë âãúm måïi. Xung OUT coï thãø âæåüc duûng nhæ laì xung yãu cáöu ngàõt âäúi våïi CPU âãø baïo laì âaî âaût âæåüc säú âãúm (TC) Taûi nhoïm xung thæï 2 ta tháúy âæåüc taïc duûng cuía xung âiãöu khiãøn cæía GATE. Khi bäü âãúm âang laìm viãûc maì GATE = 0 thç näüi dung cuía bäü âãúm âæåüc giæî khäng âäøi cho âãún khi GATE = 1, luïc naìy bäü âãúm laûi tiãúp tuûc âãúm luìi. Taûi nhoïm xung thæï 3 ta tháúy âæåüc hoaût âäüng cuía bäü âãúm khi noï âang âãúm maì ta coï xung âiãöu khiãøn naûp näüi dung säú âãúm måïi. Näüi dung måïi chè âæåüc âæa âãún bäü âãúm taûi xung âäöng häö tiãúp theo. Sau âoï bäü âãúm laûi tiãúp tuûc âãúm luìi våïi säú âãúm måïi. Chãú âäü 1 - Âa haìi âåüi våïi thåìi gian láûp trçnh âæåüc Ta âaî gàûp caïc maûch âa haìi âåüi (âa haìi mäüt traûng thaïi äøn âënh) våïi hàòng säú thåìi gian do chè säú cuía caïc linh kiãûn R vaì C quyãút âënh. Maûch 8254 åí chãú âäü 1 coï khaí nàng laìm viãûc nhæ 1 maûch âa haìi âåüi nhæng våïi hàòng säú thåìi gian láûp trçnh âæåüc tè lãû væoïi chu kyì xung âäöng häö åí âáöu vaìo. Biãøu âäö thåìi gian cuía 8254 åí chãú âäü 1 âæåüc thãø hiãûn trãn hçnh 9.20 Hçnh 9.19. Thê duû biãøu âäö thåìi gian cuía 8254 åí chãú âäü 0 Taûi nhoïm xung thæï nháút CW = 12H tæïc laì ta muäún âënh nghéa chãú âäü chè âoüc/ ghi LSB vaì chãú âäü âãúm theo hãû 16 cho bäü âãúm 0. Sau khi ghi tæì âiãöu khiãøn vaìo thanh ghi tæì âiãöu khiãøn thç OUT = 1. Tiãúp theo ta ghi LSB = 3 laì pháön tháúp cuía säú âãúm cho bäü âãúm. Giaï trë naìy seî âæåüc chuyãøn vaìo bäü âãúm. Luïc naìy GATE = 0 nãn bäü âãúm khäng laìm viãûc . Khi xung kêch GATE = 1 thç bäü âãúm âæåüc xuáút phaït âãø bàõt âáöu laìm viãûc åí chu kyì âäöng häö sau . Tæì âáy OUT = 0 vaì bàõt âáöu quaï trçnh âãúm ngæåüc khi bäü âãúm âaût tåïi 0 thç OUT = 1. Âiãöu âoï coï nghéa laì nãúu ta naûp vaìo LSB = N vaì GATE = 1 thç OUT = 0 trong N xung âäöng häö. Âæåìng dæït neït biãøu hiãûn laì GATE coï thãø coï giaï trë 0 báút kyì luïc naìo trong thåìi âoaûn naìy. Ta cuîng nháûn tháúy ràòng bäü âãúm sau khi âaût 0000H thç seî tiãúp tuûc luìi tæì FFFFH nãúu nhæ noï khäng âæåüc naûp giaï trë âãúm måïi. Vaì mäùi khi coï xung GATE = 1 thç noï laûi taûo ra xung OUT = 0 keïo daìi N xung âäöng häö. Taûi nhoïm xung thæï 2 ta tháúy âæåüc taïc duûng cuía xung âiãöu khiãøn åí cæía GATE âãø taûo ra khaí nàng kêch làûûp laûi âæåüc cuía bäü âãúm. Khi bäü âãúm âang laìm viãûc vaì chæa âaût âæåüc säú âãúm maì coï xung GATE = 1 thç säú âãúm cuî âæåüc naûp laûi cho bäü âãúm åí chu kyì âäöng häöi sau. Tæì luïc naìy bäü âãúm laûi tiãúp tuûc âãúm luìi. OUT = 0 cho tåïi khi âãún hãút . Taûi nhoïm xung thæï 3 ta tháúy âæåüc hoaût âäüng cuía bäü âãúm khi noï âang âãún säú OUT = 0 maì ta coï xung âiãöu khiãøn naûp säú âãúm måïi. Näüi dung måïi chè âæåüc âæa âãún bäü âãúm taûi xung âäöng häö tiãúp theo sau khi coï xung GATE = 1. Chãú âäü 2 - Taûo ra xung coï táön säú Fin /N Biãøu âäö thåìi gian cuía chãú âäü 2 âæåüc biãöu hiãûn trãn hçnh 9.21 Taûi nhoïm xung thæï nháút CW = 14H tæïc laì ta muäún âënh nghéa chãú âäü 2 chè âoüc /ghi LSB vaì chãú âäü âãúm theo hãû 16 cho bäü âãúm säú 0 . Sau khi ghi tæì âiãöu khiãøn vaìo thanh ghi tæì âiãöu khiãøn thç OUT = 1. Tiãúp theo ta ghi LSB = 3 laì pháön tháúp cuía säú âãúm cho 1 bäü âãúm . Giaï trë naìy seî âæåüc chuyãøn vaìo bäü âãúm taûi xung âäöng häö sau. Luïc naìy GATE = 1 nãn bäü âãúm bàõt âáöu laìm viãûc. Tæì âáy bàõt âáöu quaï trçnh âãúm nægåüc. Khi bäü âãúm âaût tåïi 1 thç OUT = 0 trong thåìi gian 1 xung âäöng häö vaì quaï trçnh âãúm laûi âæåüc bàõt âáöu våïi OUT = 1 vaì våïi säú âãúm cuî. Âiãöu âoï coï nghéa laì sau khi ta naûp LSB = N vaìo bäü âãúm thç cæï sau N xung âäöng häö, ta coï åí âáöu ra OUT = 0 trong thåìi gian 1 xung âäöng häö. Taûi nhoïm xung thæï 2 ta tháúy âæåüc taïc duûng cuía xung âiãöu khiãøn cæía GATE âäúi våïi bäü âãúm. Khi bäü âãúm âang laìm viãûc vaì chæa âaût âæåüc säú âãúm maì coï xung GATE = 0 thç giaï trë hiãûn thåìi cuía bäü âãúm cuî âæåüc giæî nguyãn trong suäút thåìi gian GATE = 0. Khi GATE = 1 thç bäü âãúm laûi tiãúp tuûc âãúm luìi. Taûi nhoïm xung thæï 3 ta tháúy âæåüc hoaût âäüng cuía bäü âãúm khi noï âang âãúm vaì chæa âaût säú âãúm maì at coï xung âiãöu khiãøn naûp säú âãúm måïi. Ta tháúy bäü âãúm váùn tiãúp tuûc væoïi säú âãúm cuî, chè tåïïi khi bäü âãúm âaî âãúm âãún 1 thç säú âãúm måïi âæåüc aïp duûng . Chãú âäü 3 - taûo ra daîy xung vuäng Biãöu âäö thåìi gian cuía chãú âäü 3 âæåüc thãø hiãûn trãn hçnh 9.22 Taûi nhoïm xung thæï nháút CW = 16H tæïc laì ta muäún âënh nghéa chãú âäü 3, chè âoüc/ ghi LSB vaì chãú âäü âãúm theo hãû 16 cho bäü âãúm säú 0. Sau khi ghi tæì âiãöu khiãøn vaìo thanh ghi tæì âiãöu khiãøn thç OUT = 1. Tiãúp theo ta ghi LSB = 4 laì pháön tháúp cuía säú âãúm cho bäü âãúm. Giaï trë naìy seî âæåüc chuyãøn vaìo bäü âãúm taûi xung âäöng häö sau. Luïc naìy GATE = 1 nãn bäü âãúm bàõt âáöu ngay quaï trçnh âãúm ngæåüc. Khi bäü âãúm âaût tåïi (4/2) = 2 thç OUT = 0 trong thåìi gian (4/2) = 2 xung âäöng häö coìn laûi vaì quaï trçnh âãúm laûi âæåüc bàõt âáöu våïi OUT = 1 vaì væoïi säú âãúm cuî. Âiãöu âoï coï nghéa laì sau khi ta naûp LSB = N (säú chàôn) vaìo bäü âãúm thç cæï sau N xung häö ta coï OUT = 1 trong N/2 xung âäöng häö vaì OUT = 0 trong N/2 xung âäöng häö coìn laûi. Taûi nhoïm xung thæï 2 ta tháúy caïc bäü âãúm laìm viãûc træåìng håüp säú âãúm N laì säú leí (N = 5). Sau khi ta naûp LSB = N vaìo bäü âãúm thç cæï sau N xung âäöng häö ta coï OUT = 1 trong (N/2)+1 xung âäöng häö vaì OUT = 0 trong N/2 xung âäöng häö coìn laûi. Taûi nhoïm xung thæï 3 ta tháúy âæåüc hoaût âäüng cuía bäü âãúm khi noï âang âãúm maì ta coï xung GATE = 0. Ta tháúy bäü âãúm khäng thay âäøi näüi dung chæìng naìo coìn coï GATE = 0 . Sau khi GATE = 1 noï laûi tiãúp tuûc âãúm luìi tæì giaï trë hiãûn thåìi . Chãú âäü 4 :Taûo ra xung cho pheïp bàòng chæång trçnh Biãøu âäö thåìi gian cuía chãú âäü 4 âæåüc thãø hiãûn trãn hçnh 9.23 Taûi nhoïm xung thæï nháút. CW = 18H tæïc laì ta muäún âënh nghéa chãú âäü 4. Chè âoüc/ghi LSB vaì chãú âäü âãúm theo hãû 16 cho bäü âãúm säú 0. Sau khi ghi tæì âiãöu khiãøn vaìo thanh ghi tæì âiãöu khiãøn thç OUT = 1. Tiãúp theo ta ghi LSB = 3 laì pháön tháúp cuía säú âãúm cho bäü âãúm. Giaï trë naìy seî âæåüc chuyãøn vaìo bäü âãúm taûi xung âäöng häö sau luïc naìy GATE = 1 nãn bäü âãúm bàõt âáöu ngay quaï trçnh âãúm ngæåüc. Khi bäü âãúm âaût tåïi 0 thç OUT = 0 trong thåìi gian 1 xung âäöng häö vaì quaï trçnh âãúm luìi tiãúp tuûc tæì FFFFH våïi OUT = 1. Tæïc laì nãúu ta naûp säú âãúm N thç sau N +1 xung âäöng häö ta seî coï âæåüc xung cho pheïp têch cæûc tháúp keïo daìi 1 xung âäöng häö. Taûi nhoïm xung thæï 2 ta tháúy âæåüc taïc duûng cuía xung âiãöu khiãøn (måí cæía ) cuía GATE âäúi våïi bäü âãúm. Sau khi bäü âãúm âæåüc naûp säú âãúm noï váùn chæa laìm viãûc chæìng naìo chæa coï xung GATE = 1 . Taûi nhoïm xung thæï 3 ta tháúy âæåüc hoaût âäüng cuía bäü âãúm khi noï âang âãúm vaì chæa âaût säú âãúm maì ta coï xung âiãöu khiãøn naûp säú âãúm måïi. Ta tháúy bäü âãúm seî âæåüc naûp säú âãúm måïi vaì noï bàõt âáöu âãúm luìi taûi xung âäöng häö tiãúp ngay sau âoï. Chãú âäü 5 - Taûo ra xung cho pheïp bàòng xung âiãöu khiãøn GATE Biãøu âäö thåìi gian cuía chãú âäü 5 âæåüc thãø hiãûn trãn hçnh 9.24 Taûi nhoïm xung thæï nháút CW = 1 AH tæïc laì at muäún âënh nghéa chãú âäü 5, chè âoüc/ghi LSB vaì chãú âäü âãúm theo hãû 16 cho bäü âãúm säú 0. Sau khi ghi tæì âiãöu khiãøn vaìo thanh ghi tæì âiãöu khiãøn OUT = 1. Tiãúp theo ta ghi LSB = 3 laì pháön tháúp cuía säú âãúm cho bäü âãúm. Luïc naìy GATE = 0 nãn bäü âãúm chæa laìm viãûc. Khi coï xung kêch GATE = 1 Hçnh 9.20. Thê duû biãøu âäö thåìi gian cuía 8254 åí chãú âäü 1 Ghi chuï: Sæû thay âäøi cuía xung GATE phaíi xaíy ra træåïc khi bäü âãúm âaût säú âãúm êt nháút laì 2 xung. Hçnh 9.21. Thê duû biãøu âäö thåìi gian cuía 8254 åí chãú âäü 2 thç åí chu kyì âäöng häö sau :Bäü âãúm âæåüc xuáút phaït âãø bàõt âáöu quaï trçnh âãúm ngæåüc. Khi bäü âãúm âaût tåïi 0 thç OUT = 0 trong thåìi gian mäüt xung âäöng häö vaìo quaï trçnh âãúm luìi tiãúp tuûc tæì FFFFH våïi OUT = 1 Nãúu khäng coï xung GATE = 1 måïi. Tæïc laì, nãúu ta naûp säú âãúm laì N vaì xuáút phaït bäü âãúm bàòng xung GATE = 1 thç sau N + 1 thç xung âäöng häö ta seî coï âæåüc xung cho pheïp têch cæûc tháúp keïo daìi 1 xung âäöng häö. Taûi nhoïm xung thæï 2 ta tháúy âæåüc taïc duûng cuía xung âiãöu khiãøn (måí cæía) cuía GATE âäúi våïi bäü âãúm khi noï âang âãúm luìi vaì chæa âaût säú âãúm. Khi coï xung GATE = 1 bäü âãúm âæåüc naûp laûi säú âãúm cuî vaì noï bàõt âáöu âãúm luìi taûi xung âäöng häö tiãúp theo sau âoï. Taûi nhoïm xung thæï 3 ta tháúy âæåüc hoaût âäüng cuía bäü âãúm khi noï âang âãúm vaì chæa âaût säú âãúm maì ta coï xung âiãöu khiãøn naûp säú âãúm måïi. Luïc âáöu, Xung GATE = 1 seî xuáút phaït hoaût âäüng cuía bäü âãúm nhæ thæåìng lãû. Khi coï lãnhj naûp säú âãúm måïi bäü âãúm váùn tiãúp tuûc âãúm luìi våïi säú âãúm cuî, chè tåïi khi bäü âãúm nháûn âæåüc xung måí cæía måïi GATE = 1 thç säú âãúm måïi måïi âæåüc aïp duûng, táút nhiãn laì våïi thåìi gian trãù laì mäüt xung âäöng häö. Mäüt âiãöu chung nháút cáön noïi thãm laì : Âãø âæa tæì âiãöu khiãøn hoàûc säú âãúm vaìo caïc bäü âãúm ta seî phaíi duìng caïc lãûnh sau : + Lãûnh MOV âãø naûp tæì âiãöu khiãøn vaìo thanh ghi AL + Lãûnh OUT âãø âæa näüi dung thanh ghi AN ra cäøng tæång æïng våïi thanh ghi tæì âiãöu khiãøn hoàûc thanh ghi säú âãúm cuía bäü âãúm. Âoüc säú âãúm trong 8254 Bçnh thæåìng ta coï thãø âoüc âæåüc giaï trë tæïc thåìi cuía caïc bäü âãúm bãn trong maûch 8254 ngay caí khi noï âang hoaût âäüng maì khäng laìm aính hæåíng tåïi näüi dung cuía bäü âãúm. Âiãöu naìy coï âæåüc laì nhåì åí âáöu ra cuía caïc bäü âãúm coï caïc màût chäút vaì ta coï thãø duìng lãûnh âãø chäút näüi dung cuía bäü âãúm laûi räöi sau âoï âoüc ra . Láúy bäü âãúm 0 cuía maûch 8254 våïi âëa chè cå baín FF00H laìm vê duû, caïc lãûnh chênh âãø âoüc näüi dung tæïc thåìi cuía bäü âãúm 0 coï thãø nhæ sau: MOV AL,40H ;CW âãø chäút vaì âoüc bäü âãúm 1 MOV DX,0FF03H ;DX chæïa âëa chè cuía CWR OUT DX,AL ; MOV DX,0FF01H ;DX chæïa âëa chè cuía bäü âãúm 1 IN AL,DX ;Âoüc LSB cuía bäü âãúm MOV AH,AL ;Cáút tam LSB IN AL,DX ; Âoüc MSB cuía bäü âãúm XCHG AH,AL ;AX chæïa giaï trë tæïc thåìi khi bäü âãúm nháûn âæåüc lãûnh chäút thç giaï trë tæïc thåìi cuía noï taûi thåìi âiãøm âoï âæåüc chäút laûi. Sau khi âoüc xong thanh ghi säú âãúm thç maûch chäút seî laûi chæïa giaï trë hiãûn taûi cuía bäü âãúm. Maûch 8254 coìn cho pheïp chãú âäü âoüc ngæåüc (Read-back) âãø láúy âæåüc giaï trë tæïc thåìi cuía säú âãúm vaì mäüt säú thäng säú khaïc. Âáy chênh laì âàûc âiãøm taûo nãn sæû khaïc biãût cå baín giæîa maûch 8254 vaì 8253 hay âæåüc duìng træåïc âáy(åí 8253 ta khäng coï âæåüc khaí nàng naìy) . Daûng thæïc tæì âiãöu khiãøn cuía 8254 âãø âënh chãú âäü âoüc ngæåüc âæåüc thãø hiãûn trãn hçnh 9.25 D7 D6 D5 D4 D3 D2 D1 D0 1 1 COUNT SATUTUS CNT2 CNT1 CNT0 0 1: Choün bäü âãúm tæång æïng 0: Chäút säú âãúm cuía bäü âãúm âaî choün 0: Chäút traûng thaïi cuía bäü âãúm âaî choün Hçnh 9.25. Daûng thæïc cuía thanh ghi âiãöu khiãøn âãø âoüc ngæåüc Coï thãø nháûn tháúy ràòng nãúu duìng chãú âäü âoüc ngæåüc ta coï thãø ra lãûnh chäút caïc thäng tin cáön thiãút cho mäùi bäü âãúm hoàûc cho táút caí caïc bäü âãúm. ClK0 Out Gate0 Clk1 Out Gate1 Clk2 Out Gate2 18.,2 Hz âãún IRQ0 cuía 8259A 66278 Hz âãún DRQ0 cuía 8237A 896 Hz âãún khuyãch âaûi cho loa Cho pheïp loa kãu (tæì 8255A) 1.19318 MHz 5V Hçnh 9.26. Maûch 8254 trong caïc maïy IBM PC. Qua caïc mä taí chãú âäü laìm viãûc cuía maûch 8254 åí trãn ta tháúy æïng duûng cuía 8254 laì ráút âa daûng. Tuìy theo træåìng håüp æïng duûng cuû thãø ta coï choün âæåüc 1 chãú âäü thêch håüp . Mäüt vê duû viãûc æïng duûng maûch 8254 trong caïc maïy IBM PC âæåüc thãø hiãûn trãn hçnh 9.26 Trong maïy IBM PC bäü âãúm säú 0 âæåüc láûp trçnh âãø laìm viãûc åí chãú âäü 3 vaì âæåüc duìng vaìo viãûc taûo ra xung chuáøn cho âäöng häö thåìi gian thæûc. Xung 2.83MHZ cuía 8284 âæåüc chia 2 âãø taûo ra caïc xung âäöng häö cho 8254. Xung naìy âæåüc chia cho 65536 âãø thu âæåüc xung 18.2 Hz åí OUT0 xung OUT0 seî taûo ra yãu cáöu IRQ0 âãø hãû thäúng cáûp nháût dæî lëãu cho bäü pháûn tênh thåìi gian . Bäü âãúm säú 1 âæåüc láûp trçnh åí chãú âäü 2 âãø taûo ra xung yãu cáöu treo CPU thäng qua DMAC khi phaíi laìm tæåi DRAM. Nhæ âaî noïi åí chæång 5 viãûc laìm tæåi 1 pháön tæí nhåï cuía DRAM phaíi âæåüc thæûc hiãûn sau mäùi 15MS mäüt láön hay væoïi táöng säú 66.278HZ. Coï thãø thu âæåüc táöng säú naìy bàòng caïch láúy xung âäöng häö DK1 : 18 Bäü âãúm säú 3 âæåüc láûp trçnh åí chãú âäü 3 âãø taûo ra xung ám táön 896Hz duìng cho loa. Coï thãø thu âæåüc táön säú naìy bàòng caïch láúy xung âäöng häö DK2 : 1331 6. Phäúi gheïp CPU våïi maûch thäng tin näúi tiãúp 8250 vaì 8254 Truyãön thäng näúi tiãúp Træåïc khi noïi vãö viãûc phäúi gheïp CPU våïi caïc maûch thäng tin näúi tiãúp ta phaíi giåïi thiãûu qua xem thäng tin näúi tiãúp laì gç caïc khaïi niãûm cå baín vaì cå chãú hoaût âäüng cuía phæång phaïp thäng tin naìy . Nhæ ta âaî biãút åí caïc chæång træåïc . Viãûc truyãön thäng tin giæîa caïc bäü pháûn nàòm gáön nhau trong hãû thäúng vi xæí lyï coï thãø thæûc hiãûn thäng qua bus song song måí räüng hoàûc qua caïc maûch phäúi gheïp song song trong âoï caïc byte hoàûc âæåüc chuyãøn tæì bäü pháûn naìy sang bäü pháûn khaïc trãn mäüt táûp caïc âæåìng dáùn bàòng maûch in hoàûc dáy caïp trong træåìng håüp cáön phaíi truyãön thäng tin giæîa caïc thiãút bë åí caïch xa nhau, ta khäng thãø duìng caí táûp caïc âæåìng dáy nhæ trãn maì phaíi coï caïch truyãön khaïc âãø laìm sao tiãút kiãûm âæåüc säú âæåìng dáy dáùn cáön thiãút cho viãûc truyãön . Tæì yãu cáöu trãn ra âåìi phæånng phaïp truyãön thäng tin näúi tiãúp, tên hiãûu näúi tiãúp sau âoï âæåüc truyãön âi liãn tiãúp tæìng bit trãn mäüt âæåìng dáy (nhæ âæåìng âiãûn thoaûi chàóng haûn) . ÅÍ âáöu thæ tên hiãûu näúi tiãúp seî âwocj biãún âäøi ngæåüc laûi âãø taïi taûo hiãûu daûng song song thêch håüp cho viãûc xæí lyï tiãúp theo . Trong thæûc tãú coï 2 phæång phaïp truyãön thäng tin kiãøu näúi tiãúp : âäöng bäü vaì khäng âäöng bäü . Trong phæång phaïp truyãön âäöng bäü. Dæî liãûu âæåüc truyãön theo tæìng maíng (khäúi ) vaì mäüt täúc âäü xaïc âënh. Maíng dæî liãûu træåïc khi âæåüc truyãön âi seî âæåüc gàõn thãm åí âáøu maíng vaì åí cuäúi maíng. Caïc Byte (hoàûc mäüt nhoïm bit) âaïnh dáúu âàûc biãût. Hçnh 9.27 biãøu diãùn khuän màût mäüt baín in âãø truyãön âäöng bäü theo giao thæïc BISINC (giao thæïc truyãön thäng tin âäöng bäü, binary synchonous communication protocol). Âáy thæûc cháút laì giao thæïc âiãöu khiãøn theo Byte vç caïc Byte âàûc biãût âæåüc duìng âãø âaïnh dáúu caïc pháön khaïc nhau trong baín tin. SYN SYN SOH HEADER STX TEXT ETXhayETB BCC Chiãöu cuía doìng dæî liãûu SYN: Kyï tæû âäöng häö TEXT:thán vàn baín SOH kyï tæ bàõt âáöu pháönmaìo âáöu ETX: kyï tæû kãút thuïc vàn baín HEADER: pháön maìo âáöu ETB:kyï tæû kãút thuïc khäúi vàn baín STX: Kyï tæû bàõt âáöu vàn baín BCC: Kyï tæû kiãøm tra khäúi. Hçnh 9.27. Khuän daûng cuía baín tin truyãön âäöng bäü Trong caïch truyãön thäng âäöng bäü, dæî liãûu âæåüc truyãön âi theo tæìng kyï tæû . Kyï tæû cáön truyãön âi âæåüc gàõn thãm 1 bit âaïnh dáúu åí âáöu âãø baïo bàõt âáöu kê tæû laì mäüt hoàûc 2 bit âaïnh dáu åí cuäúi âãø baïo kãút thuïc kê tæû . Vç mäùi kê tæû âæåüc nháûn daûng riãng biãût nãn noï coï thãø âæåüc truyãön âi vaìo báút kç luïc naìo tæïc laì giæîa caïc kê tæû truyãön âi coï thãø coï caïc khoaíng caïch vãö thåìi gian. Daûng thæïc cuía dæî liãûu truyãön âi theo phæång phaïp khäng âäöng bä âæåüc thãø ü hiãûn trãn hçnh 9.28 . Chiãöu cuía doìng dæî liãûu Luän åí mæïc tháúp Luän åí mæïc cao Tuìy theo loaûi maì âæåüc choün duìng trong khi truyãön (baudot ASCII, EBÂCIC) âoü daìi cho maî kê tæû coï thãø laì 5.6.7.8 bit. Tuìy theo hãû thäúng truyãön tin bãn caûnh caïc bit maì dæî liãûu coï thãø tuìy choün coï hay khäng coï 1 bit parity âãø kiãøm tra läùi khi truyãön. Coï thãø tuìy choün 1 hoàûc 2 bit STOP. Nhæng bàõt buäüc phaíi coï 1 bit start. Nhæ váûy âãø truãön âi 1 kê tæû theo phæång phaïp khäng âäöng bäü, ngoaìi kê tæû mang tin ta phaíi truyãön thãm êt nháút laì 2 vaì nhiãöu nháút laì 4bit phuû âãø taûo ra khung cho kê tæû âoï .Vç thãú phæång phaïp truyãön naìy tuy âån giaín nhæng coï hiãûu suáút khäng cao. Täúc âäü truyãön dæî liãûu theo phæång phaïp näúi tiãúp âæåüc âo bàòng bit/CT. Ngoaìi ra ngæåìi ta cuîng hay duìng âån vë bout. Âoï laì giaï trë nghëch âaûo cuía thåìi gian giæîa caïc láön thay âäøi mæïc tên hiãûu, våïi dæî liãûu chè co hai mæïc (0vaì1)vaì mäùi thay âäøi mæïc tên hiãûu chè maî hoaï mäüt bit thç coï thãø hiãøu baut=bit/s.caïc giaï trë täúc âäü truyãön thæåìng gàûp trong thæûc tãú laì 110.150.300.600.1.200.2.400.4.800.9.600 19.200 baut Âãø taûo âiãöu kiãûn dãù daìng cho viãûc phäúi gheïp âæåìng truyãön näúi tiãúp våïi hãû vi xæí lyï vaì âãø giaím täúi âa caïc maûch phuû thãm åí ngoaìi . ngæåìi ta âaî chãú taûo ra caïc vi maûch täø håüp cåî låïn láûp trçnh coï khaí nàng hoaìn thaình caïc cäng viãûc cáön thiãút trong khi phäúi gheïp âoï laì caïc maûch thu phaït dë bäü vaûn nàng (N8250/16450 cuía National Semiconductor universal asynchronous receiver - transmitter USART) vaì maûch thu phaït âäöng bäü - dë boí vaûn nàng 8251A cuía Intel (universal synchronous - asynchronous receiver - transmitter USART). Ngay nhæ tãn goüi âaî cho tháúy maûch 8251A vãö màût chæïc nàng âaî bao gäöm caí maûch 8250A bãn trong noï . Våïi caïc maûch phäúi gheïp nhæ trãn, viãûc truyãön tin dë bäü chàóng haûn seî âæåüc thæûc hiãûn nhåì 1URAT åí âáöu phaït vaì 1 URAT khaïc åí âáöu thu. Khi coï kê tæû âãø phaït 8251A taûo ra khung cho kê tæû bàòng caïch gàõn thãm vaìo maî kê tæû caïc bit start , parity vaì stop vaì gæè liãn tiãúp tæìng bit ra âæåìng truyãön. Bãn phêa thu, 1 8521A khaïc seî nháûn kê tæû thaïo boí khung, kiãøm tra parity , räöi chuyãøn sang daûng song song âãø CPU âoüc. Caïc tên hiãûu näúi tiãúp våïi daûng xung nhæ nhæ trãn hçnh 9.27 hoàûc 8.28 coï phäø biãún ráút räüng nãn âãø truyãön âæåüc thäng tin âi xa trãn âæåìng âiãûn thoaûi våïi daîi táöng coï haûn åí âáöu phaït caïc xung 0.1 phaíi âæåüc âiãöu chãú thaình caïc xung ám táön âãø truyãön âi. Coìn âáöu thu caïc xung ám táön phaíi âæåüc giaíi âiãöu chãú âãø âæåüc khäi phuûc laûi tên hiãûu säú ban âáöu. Thiãút bë hoaìn thaình viãûc naìy coï tãn laì modem (viãút tàõc tæì chæî modulator : Bäü âiãöu chãú vaì demodulatdor : Bäü giaíi âiãöu chãú). Vç váûy âãø coï thãø truyãön thäng tin näúi tiãúp giæîa caïc thiãút bë ta cáön näúi chung våïi nhau theo caïch thæïc trãn hçnh 9.29. Caïc tên hiãûu trãn hçnh 2.29 laì mäüt pháön cuía caïc tên hiãûu duìng trong chuáøn phäúi gheïp quäúc tãú trong truyãön dæî liãûu RS 323C. Caïch hoaût âäüng cuía truyãön dæî liãûu theo så âäö nhæ sau : + Luïc bàõt âáöu laìm viãûc DTE1 âæa ra xung DTR=0 âãø baïo cho CDEt biãút laì noï sàông saìng laìm viãûc. DCE1 cuîng váûy, khi bàõt âáöu laìm viãûc noï âæa ra xung DSR=0 âãø baïo cho DTE1 biãút laì noï sàôn saìng thu phaït thäng tin. Sau âoï DCE1 âæåüc âiãöu khiãøn âãø phaït xung goüi sang phêa bãn kia. + Nãúu DTE2 sàôn saìng laìm viãûc noï seî gåíi traí låìi sang phêa DTE1 nhæîng xung ám táöng. DTE : Data terminal equipment (thiãút bë âáöu cuäúi coï dæî liãûu cáön thu/phaït). DCE : Data Communication equipment (thiãút bë thäng tin âãø truyãön dæî liãûu âi xa) RTS : Request to Send (0 : thiãút bë âáöu cuäúi coï kyï tæû cáön truyãön) CTS : Clear to Send (0 : thiãút bë thäng tin sàôn saìng truyãön) DTR : Data terminal ready (0 : thiãút bë âáöu cuäúi sàôn saìng laìm viãûc) DSR : Data Set Ready (0 : thiãút bë thäng tin sàôn saìng laìm viãûc) CD : Carrier Detect (0 : thiãút bë thäng tin tçm tháúy soïng maûng âaî liãn laûc âæåüc våïi phêa bãn kia) RxD : Dæî liãûu thu TxD : Dæî liãûu phaït Hçnh 9.29 Maûch truyãön dæî liãûu bàòng modem trãn âæåìng dáy âiãûn thoaûi. + Khi DTE1 coï kyï tæû cáön gåíi, noï âæa ra RTS=0, DCE1 seî âæa ra CD=0 âãø baïo laì âæåìng truyãön âaî thäng vaì khi noï ssaîn saìng nháûn dæî liãûu âãø chuyãøn âi noï seî âæa ra CTS=0. Nháûn âæåüc thäng tin naìy DTE1 gåíi caïc kyï tæû sang DCE1. Sau khi truyãön xong DTE1 âæa ra RTS=1 âãø kãút thuïc. DCE1 cuîng kãút thuïc cäng viãûc vaì âæa ra CTS=1. Hçnh9.30 Phäúi gheïp UART qua âáöu caïp chuáøn RS 232C. Trong thæûc tãú giæîa TDE vaì DCE thæåìng coï caïc dáy caïp vaì âáöu näúi caïp theo tiãu chuáøn RS 232C. Trãn hçnh 9.30 laì vê duû så âäö näúi âån giaín CPU-UART våïi MODEM qua caïc âáöu caïp chuáøn RS 232C bàòng caïc bäü khuyãúch âaûi âæåìng dáy phaït MC 1488 vaì khuyãúch âaûi âæåìng dáy thu MC 1489. Maûch USART 8251A Trong pháön naìy ta seî giåïi thiãûu maûch 8251A, âoï laì maûch USART coï thãø duìng cho hai kiãøu truyãön thäng tin näúi tiãúp âäöng bäü. Så âäö khäúi cuía maûch 8251A cuía Intel âæåüc biãøu diãùn trãn hçnh 9.31. Caïc tên hiãûu cuía maûch 8251A háöu hãút laì giäúng tên hiãûu cuía 8088 hoàûc caïc tên hiãûu tiãu chuáøn cuía RS 232C âaî nãu træåïc âáy. Chán choün voí cuía 8251A phaíi âæåüc näúi våïi âáöu ra cuía mäüt maûch giaíi maî âëa chè âãø âàût maûch 8251A vaìo mäüt âëa chè cå baín naìo âoï. Caïc tên hiãûu cáön âæåüc giaíi thêch thãm gäöm: + CLK [I] : Chán näúi âãún xung âäöng häö cuía hãû thäúng. + TxRDY [0] : Tên hiãûu baïo âãûm giæî räùng (sàôn saìng nháûn kyï tæû måïi tæì CPU) + RxRDY [0] : Tên hiãûu baïo âãûm thu âáöy ( coï kyï hiãûu nàòm chåì CPU âoüc vaìo) + TxEMPTY [0] : Tên hiãûu baïo caí âãûm thu vaì âãûm phaït âãöu räùng. + C/D [I] : CPU thao taïc våïi thanh ghi lãûnh / thanh ghi dæî liãûu cuía 8251A , khi C/D=1 thç thanh ghi lãûnh âæåüc choün laìm viãûc. Chán naìy thæåìng âæåüc näúi våïi A0 cuía bus âëa chè âãø cuìng våïi caïc tên hiãûu WR vaì RD choün ra 4 thanh ghi bãn trong 8251A. + RxC [I] vaì TxC [I] : Xung âäöng häö cung cáúp cho caïc thanh ghi dëch cuía pháön thu vaì pháön phaït. Thæåìng 2 thanh naìy näúi chung âãø pháön thu vaì pháön phaït laìm viãûc våïi cuìng táöng säú nhëp. Táön säú cuía caïc khung âäöng häö âæa âãún chán RxC vaì TxC âæåüc choün sao cho laì bäü säú ( cuû thãø laì gáúp 1, 16 hoàûc 64 ) cuía täúc âäü thu hay täúc âäü phaït theo yãu cáöu. + SYNDET/BRKDET [O]: khi 8251A laìm viãûc åí chãú âäü khäng âäöng bäü, nãúu R x D = 0 keïo daìi hån thåìi gian cuía 2 kyï tæû thç chán naìy coï mæïc cao âãø baïo laì viãûc truyãön hoàûc âæåìng truyãön bë giaïn âoaûn. Khi 8251A laìm viãûc åí chãú âäü âäöng bäü, nãúu pháön thu tçm tháúy kyï tæû âäöng bäü rong baín tin thu âæåüc thç chán naìy coï mæïc cao. Âãûm åí pháön phaït cuía maûch 8251A laì loaûi âãûm keïp, bao gäöm âãûm giæî vaì âãûm phaït. Trong khi 1 kyï tæû âang âæåüc chuyãøn âi åí âãûm phaït thç mäüt kyï tæû khaïc coï thãø âæa tæì CPU sang âãûm giæî. Caïc tên hiãûu T x RDY vaì T x EMPTY seî cho biãút traûng thaïi cuía caïc âãûm naìy khi maûch 8251A hoaût âäüng. Khi âãûm åí pháön thu âáöy thç seî coï tin shiãûu R x RDY = 1. Nãúu cho âãún khi pháön thu nháûn âæåüc kyï tæû måïi maì CPU khäng këp thåìi âoüc âæåüc kyï tæû cuî seî bë máút do bë âeì båíi kyï tæû måïi nháûn âæåüc. Hiãûn tæåüng naìy goüi laì thu âeì. Caïc thanh ghi bãn trong cuía 8251A Nhæ âaî noïi åí trãn chán C/D (giaíi sæí noï âæåüc näúi vaìo A0 cuía bus âëa chè) cuìng caïc tên hiãûu WR vaì RD seî choün ra 4 thanh ghi bãn trong cuía maûch USART, thanh ghi âãûm dæî liãûu thu, thanh ghi âãûm dæî liãûu phaït, thanh ghi traûng thaïi vaì thanh ghi âiãöu khiãøn (xem baïnh 9.2) Baïnh 9.2 choün caïc thanh ghi bãn trong cuía 8251A A0 RD WR Choün ra 0 0 1 Thanh ghi âãûm dæî liãûu thu 0 1 0 Thanh ghi âãûm dæî liãûu phaït 1 0 1 Thanh ghi traûng thaïi 1 1 0 Thanh ghi âiãöu khiãøn Våïi cuìng mäüt âëa chè cuía thanh ghi âiãöu khiãøn ta coï thãø thám nháûp âæåüc 2 thanh ghi khaïc nhau: thanh ghi chãú âäü vaì thanh ghi lãûnh. Sau khi coï xung reset thç ta pha

Các file đính kèm theo tài liệu này:

  • docchuong 9.doc
Tài liệu liên quan