Professional Documents
Culture Documents
May Tinh Giao Tiep TELETYPE
May Tinh Giao Tiep TELETYPE
ÑEÀ TAØI:
...................................................................................................................................
...................................................................................................................................
...................................................................................................................................
...................................................................................................................................
...................................................................................................................................
...................................................................................................................................
...................................................................................................................................
...................................................................................................................................
...................................................................................................................................
...................................................................................................................................
...................................................................................................................................
...................................................................................................................................
...................................................................................................................................
...................................................................................................................................
...................................................................................................................................
...................................................................................................................................
...................................................................................................................................
...................................................................................................................................
...................................................................................................................................
...................................................................................................................................
NHAÄN XEÙT CUÛA GIAÙO VIEÂN PHAÛN BIEÄN
...................................................................................................................................
...................................................................................................................................
...................................................................................................................................
...................................................................................................................................
...................................................................................................................................
...................................................................................................................................
...................................................................................................................................
...................................................................................................................................
...................................................................................................................................
...................................................................................................................................
...................................................................................................................................
...................................................................................................................................
...................................................................................................................................
...................................................................................................................................
...................................................................................................................................
...................................................................................................................................
...................................................................................................................................
...................................................................................................................................
...................................................................................................................................
...................................................................................................................................
LÔØI NOÙI ÑAÀU
Thoâng tin lieân laïc laø moät vaán ñeà raát quan troïng trong giai ñoaïn
hieän nay vaø cuõng ñang ñöôïc phaùt trieån moät caùch maïnh meõ. Hieän
nay coù raát nhieàu hình thöùc thoâng tin lieân laïc nhö : voâ tuyeán, höõu
tuyeán … Trong moãi hình thöùc laïi coù nhieàu daïng truyeàn nhö : truyeàn
hình aûnh, truyeàn thoaïi, truyeàn maõ soá …
Teletype laø moät trong nhöõng daïng truyeàn maõ soá ñöôïc phaùt trieån
töø kieåu ñieän tín ngaøy xöa. Töø hai tín hieäu tích vaø te ñeå hieåu ñöôïc
moät töø hay moät chöõ coù moät maõ rieâng bieät nhoùm caùc tín hieäu aáy
laïi vôùi nhau.
Sau ñoù vì löôïng thoâng tin ngaøy caøng nhieàu maø kieåu truyeàn tín
hieäu coù toác ñoä quaù chaäm so vôùi nhu caàu ngöôøi ta môùi nghó ra vieäc
truyeàn nhöõng choãi xung vôùi hai möùc: MARKING vaø SPACING trong
moät khung töø goïi laø maõ BAUDOT. Nhöõng xung naøy ñöôïc truyeàn ñi
vôùi taàn soá quy öôùc ñöôïc goïi laø toác ñoä BAURATE ñöôïc ñònh nghóa
laø soá xung truyeàn ñi trong moät giaây. Ñaây chính laø phöông phaùp
truyeàn cuûa Teletype. Maùy Teletype ñöôïc caûi tieán raát nhieàu töø loaïi
Teletype ñaàu tieân baèng cô khí raát coàng keành, oàn aøo vaø khoù thao taùc
ñeán nhöõng maùy Teletype goïn nheï, deã thao taùc.
Vôùi söï buøng noå heä thoáng caùc maùy vi tính nhö hieän nay, chuùng
em duøng maùy tính ñeå trao ñoåi döõ lieäu nhö maùy Teletype. Ñaây laø ñeà
taøi ñeå chuùng em hoaøn thaønh luaän vaên toát nghieäp. Ñeà taøi neâu leân
ñöôïc hình thöùc truyeàn soá lieäu giöõa hai maùy tính (giaû maùy Teletype),
khoâng neâu baät heát öu dieåm cuûa maùy tính vì truyeàn theo daïng Teletype
chæ truyeàn 5 bit kyù töï (trong khi ñoù maùy tính truyeàn ñöôïc toái ña tôùi 7
bit kyù töï).
LÔØI CAÛM TAÏ
Chuùng em xin chaân thaønh caûm ôn Ban Giaùm Hieäu vaø caùc thaày
coâ Tröôøng Ñaïi Hoïc Sö Phaïm Kyõ Thuaät ñaõ chæ daãn chuùng em trong
nhöõng thaùng naêm hoïc taäp taïi tröôøng.
Trong quaù trình thöïc hieän taäp luaän vaên toát nghieäp chuùng em xin
chaân thaønh caûm ôn thaày Quaùch Thanh Haûi, giaùo vieân höôùng daãn,
caùc thaày coâ trong Khoa ñieän vaø caùc baïn trong vaø ngoaøi lôùp ñaõ
ñoäng vieân giuùp ñôõ chuùng em hoaøn thaønh luaän vaên toát nghieäp.
Tuy nhieân, do khaû naêng coøn haïn cheá vaø thôøi gian coù haïn, chaéc
chaén trong taäp luaän vaên khoâng traùnh khoûi thieáu soùt, mong ñöôïc söï
thoâng caûm vaø ñoùng goùp yù kieán cuûa quyù thaày coâ vaø caùc baïn ñeå
taäp luaän vaên hoaøn chænh hôn.
Chuùng em xin chaân thaønh caûm ôn.
Hình 2
c. Maïch caàn khoái gheùp noái song song noái tieáp vaø noái
tieáp song song (Hình 3):
Ñaây laø tröôøng hôïp trao ñoåi tin giöõa vi xöû lyù vôùi thieát bò ngoaøi
trao ñoåi tin song song. Tröôøng hôïp naøy xaûy ra khi maùy vi tính ñaët caùch
xa thieát bò ngoaøi vaø khoâng theå thöïc hieän trao ñoåi tin song song ñöôïc
vì toán nhieàu ñöôøng daây. Coù hai tröôøng hôïp:
- Neáu khoaûng caùch giöõa maùy vi tính vaø thieát bò ngoaøi gaàn
(döôùi 300m) khoâng caàn Modem.
- Neáu khoaûng caùch giöõa maùy vi tính vaø thieát bò ngoaøi xa
(treân 300m) caàn coù Modem ñeå ñieàu cheá tín hieäu soá thaønh aâm taàn
(traùnh nhieãu) vaø tín hieäu aâm taàn ñieàu cheá thaønh tín hieäu soá.
Hình 5a 14 25 (DB_25)
: Boä noái 25 chaân
1 5
6 9
Hình 5b : Boä noái 9 chaân (DB_9)
Trong ñoù :
AA : Protective Ground (noái ñaát baûo veä)
TxD : Transmitter Data (truyeàn döõ lieäu)
RxD : Received Data (nhaän döõ lieäu)
RTS :Request To Send (yeâu caàu gôûi)
CTS : Clear To Send (xoùa vieäc gôûi)
DSR : Data Set Ready (döõ lieäu saün saøng)
SG : Signal Ground (noái ñaát)
CD : Carrier Detect (doø soùng mang)
ST : Select Stanty
SCF : Secondary Recived Line Signal Det
SCB : Secondary Clear To Send
SBA : Secondary Transmitter Data
DB : Transmitter Signal Element Timing
SBB :Secondary Received Data
DD : Received Signal Element Timing
SCA : Secondary Request To Send
DTR : Data Terminal Ready ( traïm ñaàu cuoái thieát bò saün saøng)
CG : Signal Quality Detector
RI : Ring Indicator ( boä chæ thò voøng)
CH : Data Signal Rate Selector
CI : Data Signal Rate Selector
DA : Transmitter Signal Element Timing
2. Ñaëc ñieåm kyõ thuaät veà ñieän cuûa RS_232C:
Möùc ñieän aùp logic cuûa RS_232C laø hai khoaûng ñieän aùp giöõa
+15 V vaø -15 V. Caùc ñöôøng döõ lieäu söû duïng möùc logic aâm, logic 1
coù ñieän theá giöõa -5V vaø -15V, logic 0 coù ñieän theá giöõa +5V vaø
+15V. Tuy nhieân caùc ñöôøng ñieàu khieån söû duïng möùc logic döông, giaù
trò TRUE töø +5V ñeán +15V, giaù trò FALSE töø -5V ñeán -15V. ÔÛ chuaån
giao tieáp naøy, giöõa ngoõ ra boä kích phaùt vaø ngoõ vaøo boä thu coù möùc
nhieãu ñöôïc giôùi haïn laø 2V. Do vaäy ngöôõng lôùn nhaát cuûa ngoõ vaøo
laø 3V, traùi laïi möùc 5V laø ngöôõng nhoû nhaát ñoái vôùi ngoõ ra. Ngoõ
ra boä kích phaùt khi khoâng taûi coù ñieän aùp laø 25V.
Caùc ñaëc ñieåm veà ñieän khaùc bao goàm:
- RL (ñieän trôû taûi) ñöôïc nhìn töø boä kích phaùt phaûi coù giaù trò
giöõa 7K vaø 3K.
- CL (ñieän dung taûi) ñöôïc nhìn töø boä kích phaùt khoâng ñöôïc vöôït
quaù 2500 pF.
- Ñeå ngaên caûn söï dao ñoäng quaù möùc, toác ñoä thay ñoåi cuûa
ñieän aùp khoâng ñöôïc vöôït quaù 30 V/us.
- Ñoái vôùi caùc ñöôøng ñieàu khieån, thôøi gian chuyeån cuûa tín hieäu
khoâng ñöôïc vöôït quaù 1ms. Ñoái vôùi caùc ñöôøng döõ lieäu, thôøi gian
chuyeån phaûi khoâng vöôït quaù 4% thôøi gian cuûa 1 bit hoaëc 1 ms.
3. Caùc IC kích phaùt vaø thu cuûa RS_232C:
Nhôø tính phoå bieán cuûa giao tieáp RS_232C, ngöôøi ta ñaõ cheá taïo
caùc IC kích phaùt vaø thu. Hai vi maïch nhö vaäy ñöôïc Motorola saûn xuaát
laø IC kích phaùt MC1488 vaø IC thu 1489 coù daïng voû vuoâng. Hình 6 cho
thaáy 1port RS_232C ñöôïc keát noái vôùi ACIA 6850 söû duïng MC1488 vaø
MC1489. Moãi IC kích phaùt 1488 nhaän moät tín hieäu möùc TTL vaø
chuyeån thaønh tín hieäu ôû ngoõ ra töông thích vôùi möùc ñieän aùp cuûa
RS_232C, IC thu 1489 phaùt hieän caùc möùc vaøo cuûa RS_232C vaø
chuyeån thaønh caùc ngoõ ra coù möùc TTL.
+5V
Enable
Rx/Tx CLK
RS_232C
+12V
TxD
+5V 1488
TxCLK -12V
CS0 RxCLK RxD
TxD 1489
SELACIA CS1
A0 CS2 RxD CD
RS 1489
DATA BUS
D0 - D7 CD
R/W
R/W 1489 CTS
IRQ IRQ RTS CTS
+12V
RTS
2 1488
-12V
Logic1 -60V
(MARK)
Logic 0 +60V
(SPACE)
Start 5 bit kyù töï Stop
Hai kyù töï LETTER vaø FIGURE duøng ñeå chuyeån ñoåi boä chöõ
cuûa Teletype töø maët chöõ sang maët soá (daáu).
IV. Tieâu chaån giao tieáp maùy Teletype:
1. Nguyeân lyù keát noái giöõa hai maùy Teletype:
Caùc ñöôøng tín hieäu cuûa maùy Teletype goàm coù nhö sau:
- Moät ñöôøng vaøo laø ñöôøng thu Rx.
- Moät ñöôøng ra laø ñöôøng phaùt Tx.
- Moät ñöôøng mass.
Khi môû maùy, ñöôøng phaùt seõ töø möùc logic 0 (+60V) seõ ñöôïc
naâng leân möùc logic 1 (-60V). Toång ñaøi viba hoaëc maùy Teletype ñoái
phöông khi nhaän ñöôïc tín hieäu naøy (ñöôøng thu cuûa maùy ñoái phöông
ñöôïc Set leân möùc logic 1) thì seõ gôûi traû tín hieäu traû lôøi cuõng baèng
caùch Set ñöôøng phaùt cuûa maùy hoï leân möùc logic 1. Ñöôøng thu cuûa
maùy ta seõ nhaän ñöôïc möùc logic 1. Luùc naøy coi nhö hai maùy ñaõ ñöôïc
baét tay vaø baét ñaàu truyeàn soá lieäu cho nhau.
Tröôøng hôïp maùy ta khoâng nhaän ñöôïc tín hieäu traû lôøi töùc laø coù
söï coá ñöôøng daây hoaëc vì maùy ñoái phöông khoâng môû maùy. Ñöôøng
phaùt cuûa maùy ta seõ töï ñoäng traû veà möùc logic 0 (+60V) vaø thoâng
baùo hôû maïch.
Nhö vaäy ta coù theå phaân tích maïch keát noái vôùi maùy Teletype nhö
hình 7 :
- Khi khoâng baét tay: E 2 ñöôïc noái vôùi nguoàn -60V Q2 khoâng
daãn Q3 cuõng khoâng daãn. coøn Q1 ñöôïc daãn baõo hoøa. do ñoù, nguoàn
+60 V qua R2 D3 (Led D3 saùng baùo hôû maïch) R1 ñeán ñöôøng daây
thu cuûa maùy ñoái phöông ( Nhö vaäy ñöôøng daây thu cuûa maùy ñoái
phöôngñang ôû möùc logic 0).
- Töông töï ñöôøng daây phaùt cuûa maùy ñoái phöông cuõng ôû möùc
logic 0, neân ñöôøng daây thu cuûa maùy ta cuõng ôû möùc logic 0, cöïc B
cuûa Q4 ñöôïc ñaët vaøo moät ñieän aùp döông neân Q 4 taét ñieän aùp ôû
M2 laø -60V (D4 saùng).
- Khi caàn goïi, ta cho E2 noái ñaát Q2 daãn Q3 daãn Q1 taét. Do ñoù
töø Relay cuûa maùy ñoái phöông moät doøng ñieän töø mass qua D 2 Q3
veà nguoàn -60V. Luùc naøy, ñoái phöông seõ traû lôøi baèng caùch gôûi ñeán
ñöôøng daây thu cuûa ta möùc logic 1 (doøng-20mA). Do ñoù, Q4 daãn vaø M2
coi nhö noái ñaát (D2 saùng). Nhaän ñöôïc tín hieäu naøy töùc laø ñöôøng daây
ñaõ ñöôïc keát noái vaø saün saøng truyeàn soá lieäu.
+60V
R2 R4
DZ
D2 Q1
R1 R5 R8 E2
Q2
Ñeán Rx cuûa
maùy Teletype D3
R3
Q3
R6 R9
- 60V
R10 M2
Töø Tx cuûa
maùy Teletype
R7 R8
Q4
R25
D4 D5
Hình 7 : Ground
I. Giôùi thieäu veà vieäc truyeàn thoâng tin noái tieáp cuûa maùy vi
tính:
Nhö ñaõ giôùi thieäu ôû phaàn tröôùc, tín hieäu Teletype laø tín hieäu
noái tieáp. Do ñoù, ñeå giao tieáp vôùi maùy vi tính thì phaûi qua heä thoáng
phoái hôïp noái tieáp cuûa maùy vi tính. Bôûi vì trong maùy tính chæ söû
duïng maõ ASCII ñeå nhaän bieát caùc kyù töï vaø CPU laøm vieäc treân caùc
thanh ghi duøng 8 hoaëc 16 bit döõ lieäu CPU laøm vieäc vôùi caùc Chíp
laø song song.
Ñeå thu phaùt noái tieáp töø caùc thieát bò song song, chuùng ta phaûi
bieán ñoåi tin song song thaønh noái tieáp vaø noái tieáp thaønh song song vaø
cheá taïo moät khoái gheùp noái coù ñoàng thôøi 2 chöùc naêng treân ñeå trao
ñoåi tin thu, phaùt giöõa moät thieát bò song song vôùi ñöôøng daây noái tieáp.
Boä phoái gheùp noái tieáp trong maùy vi tính cho pheùp nhaän moät tín
hieäu töø beân ngoaøi vaøo vaø bieán ñoåi thaønh song song ñeå ñöa vaøo
CPU hoaëc ngöôïc laïi nhaän döõ lieäu song song töø CPU bieán ñoåi thaønh
tín hieäu noái tieáp gôûi ra ngoaøi.
Sau ñaây, chuùng em xin giôùi thieäu sô löôïc veà boä phoái gheùp noái
tieáp - song song trong maùy vi tính IBM PC_AT (vì chæ caàn phaàn noái
tieáp neân khoâng giôùi thieäu phaàn song song cuûa noù).
Phaàn noái tieáp cuûa boä phoái gheùp noái tieáp trong maùy vi tính AT
ñöôïc chöông trình hoùa moät caùch ñaày ñuû ñeå trôï giuùp cho vieäc lieân
laïc thoâng tin dò boä.
Boä phoái gheùp naøy seõ töï ñoäng theâm hoaëc laáy ra nhöõng bit Start,
Stop vaø caùc bit chaün leû. Noù coù moät chöông trình ñaëc bieät taïo ra maõ
BAUD_RATE cho pheùp vaän haønh töø 50 9600 bps. Noù cho pheùp
thieát laäp 1 Frame vôùi 5, 6, 7 hoaëc 8 bit kyù töï vôùi 1; 1,5 hoaëc 2 bit Stop.
Noù coù moät heä thoáng ngaét öu tieân duøng ñeå ñieàu khieån phaùt, thu,
baùo loãi, traïng thaùi ñöôøng daây. . .
II. Nhieäm vuï cuûa khoái gheùp noái song song - noái tieáp vaø noái
tieáp song song khoâng ñoàng boä:
Khoái gheùp noái coù nhieäm vuï sau: (Hình 9)
- Thu tin song song töø maùy vi tính, thieát bò ñaàu cuoái ñeå bieán
thaønh tin noái tieáp ñeå truyeàn treân ñöôøng daây TxD.
- Thu tin noái tieáp töø ñöôøng daây RxD ñeå bieán thaønh tin song
song cho maùy vi tính, thieát bò ñaàu cuoái.
- Cheøn vaø loaïi tröø caùc bit khung Start, Stop cuûa khung tin.
- Ñieàu khieån Modem vôùi caùc tín hieäu hoäi thoaïi (phaùt cho
modem DTR, RTS vaø nhaän DSR, CTS töø modem)
- Ñieàu khieån caùc cheá ñoä ñoàng boä, khoâng ñoàng boä, soá bit
tin, soá bit Stop. .
(1) Stop (6) Start
WR
TxC RxC
IV. Vi maïch trao ñoåi tin song song - noái tieáp khoâng ñoàng boä
8251A:
8251A laø moät USART coù khaû naêng thöïc hieän Protocol ñoàng boä
hoaëc baát ñoàng boä. ÔÛ ñaây ta chæ söû duïng ñeå truyeàn baát ñoàng boä.
Haõng Intel moâ taû 8251A nhö sau :8251A ñöôïc thieát keá ñeå truyeàn
döõ lieäu vôùi hoï P cuûa Intel. USART nhaän caùc kyù töï döõ lieäu töø P
ôû daïng song song, sau ñoù ñoåi chuùng thaønh daïng döõ lieäu noái tieáp ñeå
phaùt ñi. Ñoàng thôøi 8251A coù theå thu doøng döõ lieäu noái tieáp vaø ñoåi
chuùng thaønh caùc kyù töï döõ lieäu song song gôûi ñeán P. USART seõ
baùo cho P khi naøo coù theå nhaän 1 kyù töï môùi töø P ñeå phaùt hoaëc
khi naøo ñaõ thu ñöôïc moät kyù töï ñeå cho P ñoïc.
1. Sô ñoà chaân vaø sô ñoà khoái cuûa 8251A:
Sô ñoà chaân vaø sô ñoà khoái cuûa USART 8251A nhö hình 11 a, b vaø
caùc thanh ghi nhö hình 11c.
8251A ñöôïc cheá taïo baèng kyõ thuaät NMOS vaø coù 28 chaân, toác
ñoä truyeàn döõ lieäu leân tôùi 64 Kpbs. Khaùc vôùi 6402, ôû 8251A taát caû
döõ lieäu ñeán vaø töø P ñeàu ñi qua Bus döõ lieäu (Data Bus) noái vôùi caùc
chaân D7 - D0.
D2 1 28 D1
D3
D0
RxD Vcc
GND RxC
D4 DTR
D5
RTS
D6 8251A DS
D7 R
Reset
TxC
CLK
WR TxD
CS TxEMPTY
C/D CTS
RD Syndet/BR
RxRDY 14 15 TxRDY
Hình 11a
D0 - D7
Reset
Logic Bieán ñoåi
CLK TxD
ñieàu song song noái
C/D tieáp TxRDY
khieån
RD Ñieàu khieån
vaø logic TxE
WR phaùt
ghi TxC
CS
TxRDY
DTR Ñieàu Ñieàu khieån Syndet/Brk
khieån thu
DSR RxC
modem
RTS Bieán ñoåi
RxD
CTS Hình 11b : noái tieáp
song song
CS
RD Thanh ghi truyeàn TxD
WR
C/D
D0 Thanh ghi ñeäm
D1 truyeàn
Thanh ghi nhaän RxD
D2
D3
D4 Thanh ghi ñeäm
nhaän
D5
D6
Thanh ghi cheá ñoä
D7
Thanh ghi leänh
CLK
RST
RxRDY Thanh ghi traïng
TxRDY thaùi
TxEMPTY
GND DSR DTR CTS RST Syn/brk TxC RxC
Vcc Hình 11c :
Trong ñoù:
CS : Chip Select - choïn vi maïch
RD : Read - ñoïc
WR : Write - ghi
C/D : Control/Data - ñieàu khieån/soá lieäu
CLK : Clock - Nhòp
D0 - D7 : Data bus I/O - Bus döõ lieäu vaøo/ra
TxC : Transmit Clock - Nhòp truyeàn
RxC : Receiver Clock - Nhòp nhaän
RST : Reset - Xoùa
DTR : Data Terminal Ready - Soá lieäu cuûa TBÑC saün saøng
DSR : Data Set Ready - Boä soá lieäu saün saøng
RTS : Request To Send - yeâu caàu gôûi
CTS : Clear To Send - Xoùa gôûi
TxD : Transmit Data - Soá lieäu truyeàn
RxD : Receiver Data - Soá lieäu nhaän
TxRDY : Transmit Ready - Saün saøng truyeàn
RxRDY : Receiver Ready - Saün saøng nhaän
TxEMTY : Transmit Register Emty - Thanh ghi truyeàn roãng
Syn/BRK : Synch / Break Detect - Ñoàng boä / phaùt hieän ñöùc
ñoaïn tin.
a. Nhoùm tín hieäu gheùp noái vôùi vi xöû lyù goàm:
- CS (chaân 11) noái vôùi boä giaûi maõ ñòa chæ (A 1 - An) ñeå choïn hai
thanh ghi (A0 ñieàu khieån traïng thaùi, A0 = 0 ñeäm soá lieäu).
- C/D (chaân 12) noái vôùi ñöôøng daây ñòa chæ A0 ñeå choïn moät trong
hai caëp thanh ghi treân.
- WR (chaân 10) noái vôùi ñöôøng daây WR cuûa vi xöû lyù.
- RD (chaân13) noái vôùi ñöôøng daây RD cuûa vi xöû lyù.
- CLK (chaân 20) noái vôùi ñöôøng daây CLK cuûa vi xöû lyù.
- Reset (chaân 21) noái vôùi ñöôøng daây Reset cuûa vi xöû lyù.
- D0 - D7 (chaân 27, 28, 1, 2, 5, 6, 7, 8) noái vôùi caùc ñöôøng daây soá
lieäu D0 - D7 cuûa vi xöû lyù.
b. Nhoùm tín hieäu gheùp noái vôùi Modem:
- DTR (chaân 24), RTS (chaân 23)
- DSR (chaân22), CTS (chaân 17)
c. Nhoùm tín hieäu gheùp noái vôùi ñöôøng daây truyeàn - nhaän
vaø khoái gheùp noái:
- TxEMPTY (chaân 18) thanh ghi ñeäm truyeàn roãng.
- TxD (chaân 19) cho soá lieäu truyeàn.
- RxD (chaân 3) cho soá lieäu nhaän.
- TxRDY (chaân 15) baùo soá lieäu truyeàn saün saøng.
- RxRDY (chaân 14) baùo soá lieäu nhaän saün saøng.
- Syn/Break : chæ ñoàng boä/ ñöùt doøng tin.
d. Nhoùm tín hieäu gheùp noái vôùi maùy phaùt xung nhòp:
- TxC : nhòp truyeàn.
- RxC : nhòp nhaän.
2. Khôûi ñoäng 8251A:
Sau khi Chip 8251A ñöôïc Reset, moät Byte ñöôïc ghi vaøo thanh ghi
choïn Mode ñeå choïn Protocol mong muoán. Coù theå Reset baèng caùch
duøng chaân RST (Reset cöùng luùc baät nguoàn) hoaëc khi ghi bit D 1 = 1
vaøo thanh ghi leänh (Reset meàm).
Sau khi thieát laäp Mode hoaït ñoäng vieäc phaùt vaø thu ñöôïc ñieàu
khieån baèng caùch ghi ñònh kyø töø ñieàu khieån leänh vaøo thanh ghi leänh
bao goàm caùc böôùc sau:
- Reset chip 8251A (baèng phaàn cöùng hoaëc phaàn meàm)
- Ghi töø choïn Mode mong muoán vaøo thanh ghi Mode.
- Ghi töø leänh mong muoán vaøo thanh ghi leänh.
Phaùt moät kyù töï : Ñeå phaùt moät kyù töï, bit TxEN trong
thanh ghi leänh phaûi ôû möùc logic 1 vaø chaân CTS phaûi ôû möùc 0:
+ Ñôïi cho ñeán khi chaân TxRDY ôû möùc cao hoaëc cho ñeán khi bit
TxRDY trong thanh ghi traïng thaùi laø 1.
+ Ghi kyù töï caàn phaùt vaøo thanh ghi ñeäm phaùt.
Thu moät kyù töï : Ñeå thu moät kyù töï vaø kieåm tra traïng
traùi loãi cuûa kyù töï naøy, ta caàn thöïc hieän caùc böôùc sau :
+ Ñôïi cho ñeán khi chaân RxRDY ôû möùc cao hoaëc cho ñeán khi
bit RxRDY trong thanh ghi traïng thaùi laø moät.
+ Ñoïc traïng thaùi loãi töø thanh ghi traïng thaùi (coù theå keát hôïp
vôùi caùc böôùc tröôùc - khi ñoïc bit RxRDY).
+ Ñoïc kyù töï töø thanh ghi ñeäm thu.
+ Reset traïng thaùi loãi baèng caùch ghi bit ER = 1 trong thanh ghi
leänh.
Toác ñoä phaùt vaø thu ñöôïc quyeát ñònh bôûi taàn soá cuûa xung Clock
ñöa vaøo chaân RxC/TxC chia theo heä soá (1, 16 hoaëc 64) ñaõ choïn trong
töø choïn Mode.
3. Caùc thanh ghi cuûa chip 8251A :
Cuõng nhö CPU, Chip UART chöùa ñöïng moät soá thanh ghi hoaëc boä
nhôù trong, coù ba kieåu thanh ghi:
- Nhöõng thanh ghi ñieàu khieån: Chuùng nhaän nhöõng leänh töø CPU
vaø khoâng töï ñoäng thay ñoåi traïng thaùi.
- Nhöõng thanh ghi traïng thaùi: Chuùng thoâng baùo ñeán CPU nhöõng
gì xaûy ra trong UART.
- Nhöõng thanh ghi ñeäm: Chuùng löu giöõ nhöõng kyù töï chuaån bò
phaùt ñi hoaëc chôø xöû lyù.
Caùch truy xuaát caùc thanh ghi phuï thuoäc vaøo caáu truùc cuûa maùy
tính maø UART ñöôïc caøi ñaët. Trong tröôøng hôïp maùy IBM PC, nhöõng
giaù trò ñöôïc ñaët vaøo beân trong caùc thanh ghi nghóa laø duøng leänh OUT
töø chip CPU gôûi ñeán nhöõng ñòa chæ töông öùng cuûa caùc thanh ghi.
töông töï, nhöõng thanh ghi ñöôïc truy xuaát theo caùch ñoïc nghóa laø duøng
leänh IN vôùi caùc ñòa chæ töông öùng.
a. Caùc thanh ghi ñieàu khieån:
Coù 4 thanh ghi ñieàu khieån duøng ñeå nhaän leänh töø CPU:
a1. Thanh ghi ñieàu khieån ñöôøng daây:) (Line Control
Register)
Thanh ghi naøy ñöôïc duøng ñeå SET caùc thoâng soá lieân laïc. Moãi bit
cuûa thanh ghi naøy coù yù nghóa vaø ñöôïc moâ taû nhö sau:
Bit YÙ nghóa
0 Hai bit naøy duøng ñeå xaùc ñònh chieàu daøi cuûa
moät töø
1
2 Soá bit Stop
3 Cho pheùp kieåm tra chaún leû
4 Choïn kieåm tra chaún leû
5 Choïn bit chaún leû
6 Ngaét
7 Bit truy xuaát vaø choát soá lieäu
Moâ taû :
- Bit 0 vaø 1 : chæ chieàu daøi cuûa moät töø nhö sau :
- Bit 2 : Xaùc ñònh soá STOP bit. Neáu Bit 2 laø 0, moät Stop bit ñöôïc
taïo ra. Neáu bit 2 laø 1, 2 Stop bit ñöôïc taïo ra tröø khi chieàu daøi kyù töï laø
5 (töùc laø bit 0 vaø bit 1 baèng 00), luùc naøy seõ taïo ra 1.5 Stop bit.
- Bit 3, 4, 5 laø nhöõng bit löïa choïn söï kieåm tra chaün leû (trong ñoà
aùn naøy khoâng söû duïng neân luoân ñöôïc Set baèng 0).
- Bit 6 : laø bit taïo ra moät leänh ngaét, khi ñöôïc Set leân 1 noù seõ treo
ngoõ ra OUT ôû möùc logic 0 (SPACING) cho tôùi khi ñöôïc SET trôû laïi
baèng 0 (Bit naøy khoâng ñöôïc duøng neân luoân luoân ñöôïc Set baèng 0).
- Bit 7 : laø bit duy nhaát vaø choát soá chia (DLAB : Division Latch
Access Bit). noù phaûi ñöôïc SET leân 1 khi truy xuaát vieäc choát soá chia,
töùc laø luùc caøi toác ñoä truyeàn theo BAUD_RATE. Khi SET trôû veà 0,
noù seõ cho pheùp caùc thao taùc ñoïc hoaëc ghi töø vuøng ñeäm thu, vuøng
ñeäm phaùt hoaëc thanh ghi cho pheùp ngaét.
a2. Thanh ghi ñieàu khieån modem: (Modem Control Register)
Thanh ghi naøy ñieàu khieån nhöõng tín hieäu baét tay gôùi ra ngoaøi töø
UART. Moãi bit cuûa thanh ghi naøy ñöôïc moâ taû nhö sau :
- Bit 0 : thöôøng duøng ñeå SET ngoõ ra DTR veà möùc logic 0, cho
pheùp caùc thieát bò töø xa gôûi tín hieäu ñeán chuùng ta hoaëc khi noù ñöôïc
SET trôû veà möùc logic 1 yeâu caàu thieát bò xa khoâng gôûi ñeán chuùng ta
nöõa. Trong ñoà aùn naøy ta söû duïng Bit naøy ñeå gôûi ra maïch khi nhaän
döôïc tín hieäu goïi keát noái töø ñoái phöông. Luùc ñoù, noù phaûi ñöôïc Set
leân 1 ñeå xem nhö baét tay phaàn cöùng vôùi ñoái phöông.
- Bit 1,2,3,4 : khoâng duøng neân luoân ñöôïc set baèng 0
- Bit 5,6,7 : luoân Set = 0
a3. Thanh ghi cho pheùp ngaét : (Interrupt Enable Register )
Taùm bit thanh ghi naøy cho pheùp 4 kieåu ñieàu khieån ngaét taùc ñoäng leân
"chip ngaét" baèng ngoõ ra INTRPT. Khi RESET caùc bit töø 0 ñeán 3 cuûa thanh
ghi naøy, ta coù theå boû kieåu ngaét heä thoáng cuûa noù. Khi SET caùc bit töø 0
ñeán 3, ta choïn kieåu ngaét cho pheùp.
Bit Kieåu ngaét
0 Cho pheùp ngaét ñeå thu döõ lieäu
1 Cho pheùp ngaét baùo vuøng ñeäm phaùt
roãng
2 Cho pheùp ngaét baùo traïng thaùi ñöôøng
daây
3 Cho pheùp ngaét baùo traïng thaùi Modem
4 Baèng 0
5 Baèng 0
6 Baèng 0
7 Baèng 0
a4. Thanh ghi choát soá chia BAUD_RATE:
BAUD_RATE ñöôïc caøi ñaët phuï thoäc vaøo 2 thanh ghi maø con soá
cuûa chuùng phaûi ñöôïc chia bôûi xung nhòp 1.8432 MHz. Keát quaû cho ra
taàn soá baèng 16 laàn BAUD_ RATE. Hai thanh ghi naøy mang 2 byte: 1 byte
choát soá chia coù nghóa thaáp nhaát (LSB), vaø 1 byte choát soá chia coù
nghóa cao nhaát (MSB). Nhöõng soá chia naøy duøng ñeå taïo ra nhöõng toác
ñoä theo BAUD_RATE khaùc nhau.
Toác ñoä daõy BAUD_RATE trong baûng khoâng phaûi laø coá ñònh.
Nhöõng giaù trò ôû khoaûng giöõa chuùng cuõng coù theå ñöôïc taïo ra baèng
caùch choïn soá chia töông öùng.
b. Caùc thanh ghi traïng thaùi:
Coù 3 thanh ghi traïng thaùi töôøng trình ñeán CPU nhöõng gì ñang xaûy
ra ôû nhöõng vuøng khaùc nhau cuûa UART.
b1. Thanh ghi traïng thaùi ñöôøng daây: (Line Status Register)
Taùm bit thanh ghi naøy töôøng trình ñeán CPU nhöõng thoâng tin traïng
thaùi veà söï chuyeån bieán döõ lieäu.
- Bit 0 : Ñaây laø bit thoâng baùo döõ lieäu thu ñaõ saün saøng. Noù SET
leân moät baát kyø khi naøo 1 kyù töï vöøa môùi ñöôïc nhaän vaø chuyeån
vaøo beân trong thanh ghi vuøng ñeäm thu. Bit 0 coù theå Reset trôû veà 0
baèng vieäc ñoïc döõ lieäu thu töø thanh ghi ñeäm thu hoaëc ghi möùc 0 leân
noù.
- Bit 1 : Bit naøy thoâng baùo loãi traøn. Noù thoâng baùo laø döõ lieäu
beân trong thanh ghi ñeäm thu chöa ñöôïc ñoïc tröôùc khi kyù töï keá tieáp
ñöôïc ñeán, vì vaäy noù seõ phaù hoûng kyù töï tröôùc.
- Bit 2 : laø bit baùo loãi cöïc tính, thoâng baùo ñaõ thu moät kyù töï
khoâng ñuùng chaún (hoaëc leû) nhö ñaõ ñöôïc choïn trong Bit choïn löïa trong
Bit choïn löïa chaún leû ôû thanh ghi ñieàu khieån ñöôøng daây.
- Bit 3 : Laø bit baùo loãi Frame, noù thoâng baùo ñaõ thu moät kyù töï
khoâng coù Stop bit.
- Bit 4 : laø moät ngaét cuûa phaàn thu, noù ñöôïc Set leân 1 baát kyø khi
naøo ngoõ vaøo thu döõ lieäu ôû möùc 0 laâu hôn thôøi gian chieàu daøi cuûa
1 töø.
- Bit 5 : Bit naøy thoâng baùo thanh ghi ñeäm phaùt roãng. Noù baùo cho
boä ñieàu khieån laø saün saøng nhaän moät kyù töï môùi ñeå phaùt ñi. Bit
naøy Set leân möùc 1 khi 1 kyù töï nöõa môùi ñöôïc chuyeån töø thanh ghi löu
giöõ phaàn phaùt. Noù ñöôïc Set trôû veà möùc 0 khi CPU naïp moät töø môùi
vaøo thanh ghi löu giöõ phaàn phaùt.
- Bit 6 : Bit naøy cuõng baùo phaàn ñeäm phaùt roãng. Noù ñöôïc Set
leân 1 baát kyø khi naøo maø caû hai thanh ghi ñeäm phaùt vaø thanh ghi dòch
chuyeån phaàn phaùt ñeàu roãng. Noù ñöôïc Reset trôû veà möùc 0 khi THR
vaø TSR ñöôïc chöùa kyù töï döõ lieäu.
- Bit 7 : khoâng duøng.
b2 . Thanh ghi traïng thaùi Modem: (Modem Control Register)
Thanh ghi naøy cho nhöõng thoâng tin veà traïng thaùi cuûa nhöõng
ñöôøng baét tay. Moâ taû nhö sau:
Bit Teân YÙ nghóa
0 Delta CTS CTS bò thay ñoåi traïng thaùi
1 Delta DSR DSR bò thay ñoåi traïng thaùi
2 TERI Ñöôøng daây ñoå chuoâng ñoåi töø ON leân
OFF
3 Delta RLSD Tín hieäu taùch soùng bò thay ñoåi
4 CTS Ngoõ vaøo xoùa ñeå gôûi ôû möùc cao
5 DSR Ngoõ vaøo döõ lieäu saün saøng ôû möùc
cao
6 RI Chæ thò chuoâng ôû möùc cao
7 RLSD Ñöôøng daây taùch soùng ôû möùc cao
Bit
2 1 0 Möùc öu Kieåu ngaét Nguyeân nhaân Reset laïo ngaét
tieân ngaét
0 0 1 - 0 0 -
1 1 0 Cao nhaát Traïng thaùi - Loãi traøn Ñoïc thanh ghi
ñöôøng daây - Loãi cöïc tính traïng thaùi
thu - Loãi khung ñöôøng daây
- Break interrup
1 0 0 Thöù hai Cho pheùp Cho pheùp thu döõ Ñoïc thanh ghi
thu döõ lieäu lieäu ñeäm thu
0 1 0 Thöù ba Thanh ghi Thanh ghi löu giöõ Ñoïc IIR hoaëc
löu giöõ phaàn phaùt roãng ghi vaøo thanh
phaàn phaùt ghi löu giöõ
roãng phaàn phaùt
0 0 0 Thöù tö Traïng thaùi - CTS Ñoïc thanh ghi
Modem - DSR traïng thaùi
- RI Modem
Ñaõ nhaän tin
Ñòa chæ cuûa caùc thanh ghi ñöôïc choïn nhö sau:
Trong ñoù : Chöõ X duøng ñeå choïn coång COM1 hoaëc COM2. X = 3
duøng cho COM1, X = 2 duøng cho COM2.
4. Giao tieáp giöõa 8251A vôùi boä vi xöû lyù:
Hình 12 trình baøy keát noái giao tieáp ñieån hình giöõa boä vi xöû lyù
vôùi USART 8251A.
A7
A0 CS TxC RxC
SERIAL
C/D TxD O/P
WR
RxD SERIAL
RD I/P
CLK 8251A
RxRDY
RTS
CTS
D0 - D7
Hình 12
Giao tieáp cuûa 8251A söû duïng ñaëc tính xuaát nhaäp boä tích luõy
cuûa Intel 8085. Chaân RxRDY leân möùc cao High seõ gaây ra moät ngaét
ñöa tôùi P baùo cho CPU bieát ñaõ thu moät kyù töï. Chaân TxRDY khoâng
ñöôïc duøng ñeå taïo ra ngaét CPU nhö treân. Trong tröôøng hôïp naøy P
phaûi hoûi voøng bit TxRDY cuûa thanh ghi traïng thaùi tröôùc khi moät kyù
töï môùi ñeå phaùt.
* Hoûi voøng (Polling) vaø söû duïng ngaét ñeå xuaát nhaäp:
Caùc chöông trình xuaát nhaäp trong heä thoáng maùy tính thöôøng ñöôïc
phaân loaïi nhö : hoûi voøng hoaëc ñieàu khieån ngaét. Hoûi voøng coù nghóa
laø P seõ ngöng caùc hoaït ñoäng khaùc moät caùch ñònh kyø vaø hoûi
UART ñaõ nhaän döõ lieäu môùi chöa hoaëc saün saøng phaùt kyù töï keá
tieáp chöa. Coâng vieäc naøy thöôøng ñoøi hoûi P phaûi ñoïc thanh ghi traïng
thaùi cuûa UART. Moät chöông trình ñieàu khieån ngaét bao haøm yù nghóa
P vaãn tieáp tuïc caùc hoaït ñoäng khaùc vaø chæ ngöng khi traû lôøi moät tín
hieäu ngaét ñöôïc gôûi tôùi tö ø UART.
Hoûi voøng ñeå quyeát ñònh traïng thaùi cuûa UART haïn cheá söï caàn
thieát phaûi coù ngaét phaàn cöùng nhöng hieäu quaû söû duïng thôøi gian
laøm vieäc cuûa P seõ thaáp hôn. Cuõng vaäy, khi söû duïng hoûi voøng ñeå
quyeát ñònh traïng thaùi thu phaûi heát söùc caån thaän ñeå ñaûm baûo raèng
loãi traøn khoâng xaûy ra. Söï quyeát ñònh duøng caùc ngaét hoaëc hoûi voøng
ñeå xuaát nhaäp ñeàu phaûi ñöôïc caân nhaéc chi töøng öùng duïng cuï theå,
ñieàu naøy döïa vaøo caùc yeáu toá nhö ñoä phöùc taïp cuûa phaàn cöùng,
phaàn meàm vaø caùc öu tieân cuûa nhieäm vuï heä thoáng.
Toùm laïi:
* Ñoái vôùi Teletype vì yeâu caàu truyeàn khoâng cao laém, hôn nöõa
maùy Teletype khoâng theå naøo phaùt ñi hoaëc thu nhaän caùc Parity bit
hoaëc kieåm tra caùc bit naøy ñöôïc, neân ta khoâng Set caùc bit parity.
* Nhö ñaõ neâu ôû phaàn tröôùc, vì Teletype coù moät söï baét tay phaàn
cöùng. Ñeå laøm coâng vieäc naøy ta choïn:
- DSR (Data Set Ready): duøng ñeã nhaän bieát tín hieäu keát noái gôûi
ñeán töø maùy Teletype töùc laø khi ñieän aùp ñöôøng thu cuûa maïch töø
+60V (logic 0) chuyeån thaønh -60V (logic 1) thì DSR seõ chæ thò.
- DTR (Data Terminal Ready): sau khi nhaän ñöôïc tín hieäu keát noái,
duøng DTR ñeå xuaát ra ñöôøng phaùt cuûa maïch töø logic 0 logic 1 ñeå
gôûi ñeán ñoái phöông hoaøn thaønh coâng vieäc baét tay phaàn cöùng.
CHÖÔNG V : GIÔÙI THIEÄU VEÀ NGAÉT CUÛA MAÙY VI
TÍNH
IRQ Thieát bò
NMI Ngaét khoâng che
0 Ngaét thôøi gian
1 Ngaét baøn phím
2 Döï tröõ
3 COM2
4 COM1
5 Ñóa cöùng
6 Ñóa meàm
7 LPT1
Nhöõng ñöôøng ngaét naøy khoâng noái ñöôïc tröïc tieáp tôùi chip CPU,
nhöng ñöôïc thoâng qua chip xöû lyù ngaét laø PIC_8259A (Programmable
Interrupt Controller). Trong maùy IBM PC_AT coù hai boä ñieàu khieån naøy.
Noù coù nhöõng möùc öu tieân cho caùc nhaát ñeå traùnh trình traïng loän
xoän xaûy ra khi nhieàu ngaét ñeán khoâng theo moät traät töï naøo caû. Caùc
möùc öu tieân naøy trong maùy IBM PC ñöôïc chæ ñònh ôû cao nhaát laø
IRQ0 vaø thaáp nhaát laø IRQ 7. Neáu nhieàu thieát bò ñeàu yeâu caàu söï chuù
yù baèng caùch naâng caùc ñöôøng ngaét cuûa noù leân, boä ñieàu khieån
ngaét seõ coù nhieàu ngoõ vaøo ôû möùc cao thì noù seõ gôûi chuùng ñeán
CPU vôùi traät töï cuûa möùc ñoä öu tieân.
Trong PIC coù moät thanh ghi cho pheùp ngaét töø thieát bò gôûi ñeán.
Maëc nhieân, IRQ4 vaø IRQ3 laø khoâng cho pheùp. Vì vaäy, neáu muoán
duøng ngaét cho vieäc lieân laïc thoâng tin thì phaûi chæ thò cho PIC cho
pheùp caùc ñöôøng ngaét töông öùng. Ñaây laø coâng vieäc ñoïc thanh ghi
baèng leänh IN vôùi ñòa chæ coång laø 21H vaø Set Off bit töông öùng (bit 4
cho IRQ3 vaø bit 5 cho IRQ4) vaø OUT trôû laïi giaù trò ra Port 21H. Nhö vaäy
thì PIC môùi coäng theâm caùc ngaét cuûa UART vaø cho noù gôûi ngaét tôùi.
Khi PIC nhaän ñöôïc moät ngaét, neáu ngaét ñoù laø cho pheùp vaø
khoâng coù moät ngaét naøo khaùc gôûi ñeán nöõa, noù seõ ñöa möùc ñieän
aùp döông leân ñöôøng ngaét ñoù ñeán CPU. Khi ñoù CPU seõ coâng nhaän
ngaét, nghóa laø traû moät tín hieäu veà PIC yeâu caàu PIC chæ thò xem ngaét
naøo vöøa môùi xaûy ra. Luùc ñoù PIC seõ gôûi moät con soá (thoâng qua
Data Bus) ñeán CPU (laø con soá IRQ + con soá 8). Noùi caùch khaùc, ñoái
vôùi IRQ4 noù gôûi con soá 12 (OCh), ñoái vôùi IRQ 3 noù gôûi con soá 11
(08h), luùc naøy CPU seõ thöïc hieän caùc phaàn muïc töông öùng laø caát ñòa
chæ chöông trình hieän haønh vaøo vuøng Stack vaø thöïc hieän leänh Call Far
ñeán boä nhôù ñöôïc troû bôûi vectô ngaét cuûa ngaét trong baûng vectô ngaét.
Vì vaäy, vôùi ngaét IRQ4 gôûi tôùi vieäc CPU thöïc hieän cuõng gioáng nhö
INT 0Ch cuûa phaàn meàm.
Neáu baïn khoâng muoán CPU bò phaân chia khi coù nhieàu ngaét, bôûi
vì noù can thieäp vaøo moät soá coâng vieäc xaáu laøm khoâng theå ngaét
ñöôïc, ta coù theå chæ thò ñeán noù khoâng quan taâm ñeán caùi ngaét ñoù
baèng leänh STI. Keát quaû cuûa leänh naøy laø chuyeåi ñoåi traïng thaùi côø
IF trong CPU.
Vieäc Set côø IF khoâng laøm thay ñoåi baát cöù caùi gì trong PIC maø
noù vaãn gôûi moät tín hieäu ngaét ñöôøng daây ñeán CPU khi noù nhaän
ñöôïc moät ngaét trong nhöõng ngaét ñöôøng daây. Ngaét ñöôøng daây seõ
treo leân möùc cao vaø CPU coù theå nhaän ra ñöôïc nguyeân nhaân cuûa
ngaét vaø thöïc hieän leänh STI moät laàn nöõa.
Nhöõng ngaét khaùc gôûi ñeán khoâng nhaát thieát seõ maát ñi. Nhöõng
thieát bò giöõ ñöôøng IRQ cuûa chuùng ôû möùc cao vaø PIC hieåu nhöõng
thieát bò ñoù ñang caàn söï chuù yù. Noù seõ chaáp nhaän gôûi caùc ngaét
trong thöù töï öu tieân cuûa chuùng.
Caùc ngaét coù theå bò treo, nhö vaäy keát quaû laø maát thoâng tin töø
khi thieát bò khoâng taïo ra ñöôïc ngaét thöù hai cho tôùi khi kyù töï thöù nhaát
vöøa ñöôïc coâng nhaän.
Coù hai lyù do taïi sao ngaét töø thieát bò khoâng ñöôïc CPU chuù yù
ngay laäp töùc. Thöù nhaát laø noù bò xung ñoät vôùi caùc thieát bò khaùc coù
möùc öu tieân cao hôn hoaëc coù nhöõng ngaét ñang bò treo. Tuy vaäy duøng
phöông phaùp ngaét thöôøng nhanh hôn so vôùi phöông phaùp hoûi voøng.
Trong chöông trình xöû lyù ngaét phaàn meàm phaûi traû lôøi ngaét ñeán
PIC baèng caùch gôûi giaù trò 20h ra port 20h. Neáu vieäc naøy khoâng ñöôïc
thöïc hieän PIC seõ khoâng gôûi theâm moät ngaét naøo nöõa ñeán CPU.
IV. Söû duïng ngaét cuûa ROM_BIOS:
ROM_BIOS cung caáp 4 haøm xöû lyù truyeàn thoâng tuaàn töï maø
chuùng ta coù theå truy xuaát chuùng qua ngaét 14h.
Ñeå söû duïng ngaét naøy, ta ñaëc giaù trò töø 0 - 3 trong thanh ghi AH
ñeå xaùc ñònh haøm naøo seõ ñöôïc söû duïng vaø ñaët soá thöù töï coång
caàn truy xuaát vaøo thanh ghi DX.
Soá thöù töï coång = 0 : COM1
Soá thöù töï coång = 1 : COM2
ÔÛ möùc ñoä chöông trình, ta coù theå choïn moät khoái gheùp noái noái
tieáp baèng caùch gaùn maõ töông öùng vaøo thanh ghi DX vôùi giaù trò:
- 00h cho COM1
- 01h cho COM2
- 02h cho COM3
- 03h cho COM4
Caùc haøm cuûa ngaét 14h nhö sau:
1. Haøm soá 0 (Phuïc vuï 00h)
Khôûi phaùt khoái gheùp noái noái tieáp, taïo tham soá cho coång noái
tieáp:
* Vaøo :
AH = 0
AL = Tham soá truyeàn
DX = Soá thöù töï coång noái tieáp
* Ra :
AX = Traïng thaùi ñöôøng daây truyeàn vaø Modem.
Phuïc vuï 00h aán ñònh nhöõng thoâng soá khaùc nhau cuûa khoái
gheùp noái noái tieáp cuõng nhö RS_232. Ñoù laø caùc thoâng soá:
- Soá BAUD : Töùc toác ñoä trao ñoåi tin.
- Tính chaün leû.
- Soá bit döøng.
- Kích thöôùc kyù töï hay soá bit tin noái tieáp. nhöõng thoâng soá naøy
ñöôïc toå hôïp trong maõ 8 bit, ñöôïc ñaët vaøo thanh ghi AL, theo thöù töï
caùc bit nhö hình sau :
D7 D6 D5 D4 D3 D2 D1 D0
I. Sô ñoà khoái:
KHOÁI KHOÁI
PC GIAO GIAO PC
TIEÁP TIEÁP
NGUOÀN NGUOÀN
CUNG CAÁP CUNG CAÁP
laïi töø (0 5)v 12v ñeå ñaùp öùng caùc ngoõ vaøo_ra cuûa IC soá vaø
caùc linh kieän khaùc. Ñeå ñaûm baûo khaû naêng chuyeån ñoåi ñieän aùp
ñöôïc chính xaùc, ñôn giaûn ta choïn IC chuyeån ñoåi ñeän aùp laø IC 1488
( chuyeån ñoåi töø (0 5)v 12v ) vaø IC 1489 (chuyeån ñoåi töø 12v
(0 5)v ). Vì 1488 vaø 1489 laø hai IC ñöôïc tích hôïp, chuyeân duøng vaø
khaû naêng chuyeån ñoåi ñieän aùp chính xaùc hôn caùc loaïi Op_Am vaø
caùc linh kieän rôøi khaùc.
Ñeå ñaûm baûo an toaøn cho maùy tính ñoàng thôøi traùnh gaây söï coá
ñöôøng truyeàn ñoái vôùi maùy tính ta duøng Opto caùch ly ñieän aùp 4N35.
Opto 4N35 laø loaïi Opto ñôn ñöôïc duøng trong maïch laø vì khaû naêng ít bò
nhieãu ñoái vôùi caùc linh kieän (chaúng haïn nhö caùc IC soá, caùc led ... ) so
vôùi Opto ñoâi.
- Vì doøng thu_phaùt cuûa maùy Teletype ñöôïc qui ñònh ôû möùc
20mA neân choïn doøng qua led laø:
Iled = ICQ = 20 mA
VCC - VCES - VLED 5 -0,2 - 1,2
R4 = = = 180
ILED 20 mA
Choïn R4 = 220
Ñeå Q1 daãn baõo hoøa choïn = (1/3 1/4 ) max
Thoâng thöôøng choïn = 30
IB = IC / = 20 / 30 = 0,6 mA
Transitor Q1 daãn thì VBE = 0,7 v
VCC - VBE 5 - 0,7
RBQ11 = = = 7 K
IB 0.6 mA
choïn R1 =6,8 K
Ñeå BJT giao hoaùn toát do aûnh höôûng doøng ræ ICBO ta choïn R3 =
(3,3 10) K.
choïn R3 = 10 K
Töông töï ñoái vôùi caùc BJT Q2 , Q3 , Q4 ta choïn :
R8 = R9 = R19 = 10 K
Vì caùc BJT cuûa Opto chæ hoaït ñoäng ôû cheá ñoä ngaét daãn
neân choïn doøng cöïc C laø:
IC = 1 mA
R5 = VCC / IC = 5 / 1mA = 5 K
Choïn R5 = 6,8 K
Töông töï ñoái vôùi caùc BJT cuûa caùc Opto U8 , U9 , U10 ,U11
ta cuõng choïn doøng:
IC = 1 mA Choïn R10 = R11 = R14 = R15 = 6,8 K
Vì caùc R2 , R12 , R16 , R17 laø caùc ñieän trôû haïn doøng cho
LED neân ta choïn baèng 330
Choïn R2 = R12 = R16 = R17 = 330
Vì doøng thu_phaùt laø 20mA vaø ñieàu kieän ñeå BJT oån
ñònh ñieåm laøm vieäc laø:
VCE = VCC / 2 = 60 / 2 = 30 v
VCC - VCE - 2VLED 60 - 30 - 2 ( 1,2 )
R13 = =
=1,37 K
IC 20 mA
Choïn R13 = 1,5 K
P = R13 . I2 = 1,5 . (0,02)2 = 0,6 w
Choïn P = 1w .
PHAÀN C : XAÂY DÖÏNG PHAÀN MEÀM
START
I. Löu ñoà :
Baét tay Y
Thu döõ lieäu
thu = 1
N N
N
Thoâng baùo Yeâu Caàu Y Phaùt file
maùy baän phaùt file
N Coù nhaán
ESC
END
LÖU ÑOÀ HAØM BAÉT TAY PHAÙT
START
DSR = 1 N
Y
Delay 50 ms
DSR = 1 N
Y
Ñoå chuoâng
Return 1 Return 0
END
START
LÖU ÑOÀ HAØM BAÉT TAY THU
DSR = 1 N
Y
Delay 50 ms
DSR = 1 N
Ñoå chuoâng
Return 1 Return 0
END
LÖU ÑOÀ HAØM PHAÙT TRÖÏC TIEÁP
START
Y
Gôûi ñi maõ 02
H
END
LÖU ÑOÀ HAØM PHAÙT FILE
START
Y
Kyù töï laø Ñoåi sang chöõ
chöõ hoa
thöôøng
N
Kyù töï laø Y
In leân maøn hình
chöõ hoa
N
N N Côø baûng N
Kyù töï laø Kyù töï laø
Kyù töï laø =1?
øcarrier return khoaûng
soá
traéng Y
Y Y Y
In kyù töï leân In kyù töï leân In kyù töï leân Gôûi ñi maõ
maøn hình maøn hình maøn hình 1F H
Y
Gôûi ñi maõ Gôûi ñi maõ N Côø baûng Ñaët côø
08 H 04 H =0? baûng = 0
Y
Ñoùng file ñaõ môû
Gôûi ñi maõ 02 H
Return 0 Return 1
END
START
LÖU ÑOÀ HAØM THU DÖÕ LIEÄU
Ñoïc thanh ghi traïng thaùi coång
COM
N Kyù töï
saün saøng
?Y
Y Kyù töï
laø 02 H ?
N
Kyù töï N Kyù töï N Kyù töï N
laø 08 H ? laø 1F H ? laø 1B H ?
Y Y Y
Côø N
baûng =
0?
Y
Tra baûng chöõ Tra baûng soá
END
II. Chöông trình:
#include<dos.h>
#include<graphics.h>
#include<stdlib.h>
#include<conio.h>
#include<stdio.h>
#include<ctype.h>
#include<time.h>
#include<c:\bc\bin\serial.h>
#ifndef TRUE
#define FALSE 0
#define ESC 27
#endif TRUE
void main(void)
{
int k=0;//,mh=0,mode=0;
char ky_tu;
void init(void);
int bat_tay_thu(void);
int bat_tay_phat(void);
int kiem_tra_RI(void);
void phat_truc_tiep(void);
void thu_du_lieu(void);
void phat_file(void);
void de_lay(int);
void demo(void);
// initgraph(&mh,&mode,"c:\\bc\\bgi");
// demo();
init();
printf("\n\n\n\t\t\t\tBam phim bat ky\r");
getch();
do
{
if((bat_tay_thu())==1) { thu_du_lieu(); }
if(kiem_tra_RI()==0)
{ clrscr();
printf("\n\n\n\DUONG THU_PHAT HO MACH\r");
printf("\n\n\n nhan ESC : thoat.");de_lay(100);goto tiep;
}
clrscr();
printf("\t\t\t nhan ESC : thoat. Nhan P: phat \n"); de_lay(100);
tiep:
if(kbhit())
{
ky_tu=getch();
if((ky_tu=='P') || (ky_tu=='p'))
{
if(bat_tay_phat()==0){clrscr();printf("\n\t\t\t\t May
ban !");de_lay(100);}
else
{ printf("\n\r\t\tphat FILE nhan F ,phat truc tiep nhan T");
k=(int)getch();
switch(k)
{case 116: { phat_truc_tiep(); break; } //nhan T
case 102: { phat_file(); break; } //nhan F
}//end switch
}// else
} // end if ky tu = p
} // end kbhit()
}// end do_while
while((int)ky_tu!=ESC);
}//end main
/*==========================================================*/
//init-- khoi tao cong noi tiep
void init(void)
{
disable();
//cho phep ngat nhan ky tu
outportb((int)&COM -> interrupt_enable,I_CHAR_IN);
//xac dinh kieu truyen va cai toc do truyen
outportb((int)&COM -> format,F_BAUD_LATCH|\
F_NO_BREAK|F_PARITY_NONE|F_STOP2|F_DATA5);
//toc do truyen byte thap
outportb((int)&COM -> baud_l,SPEED & 0xFF);
//toc do truyen byte cao
outportb((int)&COM -> baud_h,SPEED >> 8);
//tra lai truyen thu binh thuong
outportb((int)&COM -> format,F_NORMAL|\
F_NO_BREAK|F_PARITY_NONE|F_STOP2|F_DATA5);
outportb((int)&COM -> out_control,O_OUT1|\
O_OUT2|O_RTS|O_0DTR);
//doc thanh ghi dau vao de xoa co du lieu cua no
//xoa thanh ghi dem thu
(void)inportb((int)&COM -> data);
//xoa thanh ghi cho phep ngat
(void)inportb((int)&COM -> interrupt_enable);
//xoa ngat thanh ghi luu giu phan phat rong
(void)inportb((int)&COM -> interrupt_id);
//xoa thanh ghi trang thai duong day
(void)inportb((int)&COM -> status);
//xoa thanh ghi trang thai modem
(void)inportb((int)&COM -> i_status);
//tra loi ngat
outportb(0x20,0x20);//xoa ngat
enable();
}//end init
/*=========================================================*/
// ham bat tay phan cung
int bat_tay_thu(void)
{
void de_lay(int);
void do_chuong(void);
void phat_ho_hieu(void);
void thu_du_lieu(void);
int DSR =0;
DSR = inportb((int)&COM -> i_status);
if(DSR & I_DSR!=1) return(0);
else
{
de_lay(50);
DSR = inportb((int)&COM -> i_status);
}
if(DSR & I_DSR)
{
outportb((int)&COM -> out_control,O_DTR);de_lay(2);
do_chuong();
outportb((int)&COM -> out_control,O_0DTR);de_lay(2);
phat_ho_hieu();
// outportb((int)&COM -> data, 0x00);
thu_du_lieu();
return(1) ;
}
else return(0);
}//end bat_tay_thu
/*==========================================================*/
int bat_tay_phat(void)
{ void de_lay(int);
void do_chuong(void);
void phat_ho_hieu(void);
void thu_du_lieu(void);
int dem = 5,DSR=0,ch;
while(dem != 0)
{
outportb((int)&COM -> out_control, O_DTR); de_lay(100);
DSR=inportb((int)&COM -> i_status);
if(DSR&I_DSR)
{
de_lay(50);
DSR=inportb((int)&COM -> i_status);
if(DSR&I_DSR)
{
do_chuong();
thu_du_lieu();
outportb((int)&COM -> out_control,O_0DTR);
phat_ho_hieu();
// outportb((int)&COM -> data, 0x00);
return(1);
}
else return(0);
}
dem--;
}//end while
return(0);
}//end bat_tay_phat
/*==========================================================*/
//ham phat truc tiep
void phat_truc_tiep(void)
{ void de_lay(int);
char ch;
int ch1=0,*p1,*p2,co_bang2=0;
int bang_chu2[] =
{
0x03,0x19,0x0E,0x09,0x01,
0x0D,0x1A,0x14,0x06,0x0B,
0x0F,0x12,0x1C,0x0C,0x18,
0x16,0x17,0x0A,0x05,0x10,
0x07,0x1E,0x13,0x1D,0x15,
0x11,0x04,0x04,0x04,0x04,
0x04,0x04
};
int bang_so2[] =
{
0x0D,0x11,0x14,0x09,0x16,
0x1A,0x04,0x1F,0x12,0x04,
0x04,0x0C,0x03,0x1C,0x1D,
0x16,0x17,0x13,0x01,0x0A,
0x10,0x15,0x07,0x06,0x18,
0x0E,0x1E,0x04,0x0F,0x04,
0x19,0x04
};
p1 = bang_chu2; p2 = bang_so2;
clrscr();
do
{
ch = getch();
if((int)ch== 32) { outportb((int)&COM -> data,0x04);printf("%c",ch);}
if((int)ch == 13) { outportb((int)&COM -> data,0x08);printf("\n\r"); }
if((int)ch>=33 && (int)ch<=64)
{
if(co_bang2==0){outportb((int)&COM-
>data,0x1B);de_lay(10);co_bang2=1;}
printf("%c",ch);
ch1 = (int)ch - 33; outportb((int)&COM -> data, p2[ch1]);de_lay(2);
}
if((int)ch>=97 && (int)ch<=122) ch =toupper(ch);
if((int) ch>=65 && (int)ch<=90)
{
printf("%c",ch);
if(co_bang2==1){outportb((int)&COM ->
data,0x1F);de_lay(10);co_bang2=0;}
ch1=(int)ch - 65; outportb((int)&COM -> data, p1[ch1]);
}
} //end do while
while(ch !=ESC);
outportb((int)&COM -> data,0x02);de_lay(10);
return;
}//end phat_truc_tiep
/*=========================================================*/
void phat_file(void)
{
void de_lay(int);
int c,ch1,*p1,*p2,co_bang2=0;
char t1[14];
FILE *f1;
int bang_chu2[] =
{
0x03,0x19,0x0E,0x09,0x01,0x0D,
0x1A,0x14,0x06,0x0B,0x0F,0x12,
0x1C,0x0C,0x18,0x16,0x17,0x0A,
0x05,0x10,0x07,0x1E,0x13,0x1D,
0x15,0x11,0x04,0x04,0x04,0x04,
0x04,0x04
};
int bang_so2[] =
{
0x0D,0x11,0x14,0x09,0x16,0x1A,
0x04,0x0F,0x12,0x04,0x04,0x0C,
0x03,0x1C,0x1D,0x16,0x17,0x13,
0x01,0x0A,0x10,0x15,0x07,0x06,
0x18,0x0E,0x1E,0x04,0x0F,0x04,
0x19,0x04
};
p1=bang_chu2; p2=bang_so2;
clrscr();
printf("\n vao ten tep can phat : "); gets(t1);
f1=fopen(t1,"rt");
if(f1==NULL) { printf("\n KHONG MO DUOC TEP %s ",t1); de_lay(100); goto
thien; }
do
{
c=(int)fgetc(f1);
if(c==32) {printf("%c",c);outportb((int)&COM -> data,0x04);de_lay(2);}
if(c==10) {printf("\n\r");outportb((int)&COM -> data,0x08);de_lay(2);}
if(c >= 33 && c <= 64)
{
printf("%c",c);
if(co_bang2==0) {outportb((int)&COM ->
data,0x1B);de_lay(10);co_bang2=1;}
ch1=c-33;outportb((int)&COM -> data,p2[ch1]);de_lay(2);
}
if(c >= 97 && c <= 122) c = toupper(c);
if(c >= 65 && c <= 90)
{
printf("%c",c);
if(co_bang2==1){outportb((int)&COM -> data,0x1F);de_lay(10);
co_bang2=0;}
ch1 = c - 65;outportb((int)&COM -> data, p1[ch1]);de_lay(2);
}
de_lay(10);
} // end do
while(c!=EOF);
thien: fclose(f1);
outportb((int)&COM -> data,0x02);de_lay(10);
return;
} // end phat file
/*========================================================*/
unsigned long int tg_100(void)
{
static struct time ti;
unsigned long int t;
gettime(&ti);
t =((ti.ti_hour*60+ti.ti_min)*60+ti.ti_sec)*100+ti.ti_hund;
return t;
}
/*=========================================================*/
//Ham thu du lieu
void thu_du_lieu(void)
{
int co_bang=0,ch=0,status=0;
char chu;
char bang_chu[] = {' ','E',10,'A',' ','S',
'I','U',13,'D','R','J',
'N','F','C','K','T','Z',
'L','W','H','Y','P','Q',
'O','B','G',' ','M','X',
'V',' ','\0'};
char bang_so[] = {' ','3',10,'_',' ',' ',
'8','7',13,'$','4',' ',
',','!',':','(','5','"',
')','2','#','6','0','1',
'9','?','&',' ','.','/',
';',' '};
char *p1,*p2;
p1 = bang_chu;
p2 = bang_so;
clrscr();
// fprintf(stdprn,"\n\r");
do
{
status=inportb((int)&COM -> status);
if((status & S_RxRDY) != 0)
{
ch =inportb((int)&COM -> data);
if(ch==0x02) return;
if(ch== 0x1F){ co_bang = 0;goto tiep;}
if(ch== 0x1B){ co_bang = 1;goto tiep;}
if(ch== 0x08)
{
printf("\n\r");
// fprintf(stdprn," \n\r ");
goto tiep;
}
if(co_bang==0)
{
printf("%c",p1[ch]);
// fprintf(stdprn,"%c",p1[ch]);
}
else
{
printf("%c",p2[ch]);
// fprintf(stdprn,"%c",(int)p2[ch]);
}
}//end if((status & S_RxRDY) != 0)
tiep:
} while(ch!=0x02);//end while
return;
} //end thu du lieu
/*==========================================================*/
void demo(void)
{setbkcolor(BLUE);
setcolor(WHITE);
settextstyle(1,0,4);
settextjustify(0,0);
outtextxy(20,50,"TRUONG DAI HOC SU PHAM KY THUAT TP HCM ");
settextstyle(1,0,2);
settextjustify(0,0);
outtextxy(20,130,"LUAN VAN TOT NGHIEP : MAY TINH GIAO TIEP
TELETYPE ");
settextstyle(1,0,2);
settextjustify(0,0);
outtextxy(20,170,"SINH VIEN THUC HIEN : TRUONG VIET NAM -
PHAM HUNG PHONG ");
settextstyle(1,0,2);
settextjustify(0,0);
outtextxy(20,210,"GIAO VIEN HUONG DAN : QUACH THANH HAI");
settextstyle(1,0,2);
settextjustify(0,0);
outtextxy(20,250,"NIEN KHOA : 1995 _ 2000 ");
getch();
closegraph();
}
/*========================================================*/
void de_lay(int n)
{ int i;
unsigned long int t1,t2;
unsigned long int tg_100(void);
t1 = tg_100();
while(1)
{t2 = tg_100();
if(t2-t1>n) break;
}
return;
}
/*========================================================*/
void do_chuong(void)
{
int i ;
for(i=0;i<3;++i){ sound(825);de_lay(100);nosound();de_lay(100);}
return;
}
/*========================================================*/
void phat_ho_hieu(void)
{
void de_lay(int);
int c,ch1,*p1,*p2,co_bang2=0;
FILE *f1;
int bang_chu2[] =
{
0x03,0x19,0x0E,0x09,0x01,0x0D,
0x1A,0x14,0x06,0x0B,0x0F,0x12,
0x1C,0x0C,0x18,0x16,0x17,0x0A,
0x05,0x10,0x07,0x1E,0x13,0x1D,
0x15,0x11,0x04,0x04,0x04,0x04,
0x04,0x04
};
int bang_so2[] =
{
0x0D,0x11,0x14,0x09,0x16,0x1A,
0x04,0x0F,0x12,0x04,0x04,0x0C,
0x03,0x1C,0x1D,0x16,0x17,0x13,
0x01,0x0A,0x10,0x15,0x07,0x06,
0x18,0x0E,0x1E,0x04,0x0F,0x04,
0x19,0x04
};
p1=bang_chu2; p2=bang_so2;
// clrscr();
f1=fopen("ho_hieu.c","rt");
if(f1==NULL) {clrscr(); printf("\n KHONG MO DUOC TEP HO_HIEU.C ");
de_lay(100); goto thien; }
do
{
c=(int)fgetc(f1);
if(c==32) {outportb((int)&COM -> data,0x04);de_lay(2);}
if(c==10) {outportb((int)&COM -> data,0x08);de_lay(2);}
if(c >= 33 && c <= 64)
{
if(co_bang2==0) {outportb((int)&COM ->
data,0x1B);de_lay(10);co_bang2=1;}
ch1=c-33;outportb((int)&COM -> data,p2[ch1]);de_lay(2);
}
if(c >= 97 && c <= 122) c = toupper(c);
if(c >= 65 && c <= 90)
{
if(co_bang2==1){outportb((int)&COM -> data,0x1F);de_lay(10);
co_bang2=0;}
ch1 = c - 65;outportb((int)&COM -> data, p1[ch1]);de_lay(2);
}
de_lay(10);
} // end do
while(c!=EOF);
thien: fclose(f1);
outportb((int)&COM -> data,0x02);de_lay(10);
return;
} // end phat HO_HIEU
/*====================================================*/
int kiem_tra_RI(void)
{
int RI=0;
RI=inportb((int)&COM ->i_status);
if(RI==0)
return(1);
else return(0);
}
PHAÀN D
I. Toång quaùt:
Maïch giao tieáp laø moät thieát bò ñoäc laäp ñeå gheùp noái giöõa caùc
maùy vi tính vôùi nhau nhaèm truyeàn döõ lieäu töø nôi naøy ñeán nôi khaùc
moät caùch nhanh choùng. Ngoaøi ra, maïch giao tieáp coøn chuyeån ñoåi
möùc ñieän aùp ñeå khoaûng caùch truyeàn soá lieäu giöõa hai maùy ñöôïc xa
hôn. Maïch giao tieáp coù theå ñöôïc öùng duïng roäng raõi trong caùc coâng
ty, xí nghieäp . . .
II. Toå chöùc maïch:
- Taát caû caùc IC, caùc linh kieän ñieän töû ñöôïc laép raùp treân moät
board maïch.
- Caùc ngoõ vaøo ra giao tieáp vôùi maùy vi tính ñöôïc haøn vôùi caùc
Connecter gaén treân board.
III. Caùc böôùc thi coâng:
- Thieát keá vaø thi coâng thaønh coâng heä thoáng maïch giao tieáp.
- Maïch giao tieáp ñöôïc thieát keá ñeå truyeàn ôû khoaûng caùch xa,
neân trong maïch thi coâng toàn taïi caùc nhoùm linh kieän nhö :
+ Nhoùm chuyeån ñoåi töø -12V vaø +12V sang 0V vaø 5V.
+ Nhoùm chuyeån ñoåi töø 0V vaø 5V sang -12V vaø + 12V.
+ Nhoùm naâng ñieän aùp ñöôøng truyeàn leân 60 V ñeå thöïc hieän
truyeàn xa.
Ngoaøi ra maïch coøn söû duïng linh kieän Opto ñeå caùch ly ñieän aùp
vôùi maùy vi tính.
* Haïn cheá:
- Do phaân boá caùc linh kieän treân board maïch heïp neân bieán theá
vaø maïch nguoàn ñaët beân ngoaøi maïch chính.
- Kyõ thuaät laäp trình chöa vöõng vaøng neân coøn nhieàu thieáu soùt,
nhaát laø giao dieän vôùi ngöôøi söû duïng chöa ñeïp.
- Laàn ñaàu tieân tieán haønh thi coâng, nhöõng yeâu caàu toái öu ñeå
maïch hoaøn chænh vaãn chöa ñaït ñöôïc tuy nhieân maïch vaãn ñaït ñöôïc
nhöõng yeâu caàu nhaát ñònh
KEÁT LUAÄN
Qua 6 tuaàn tìm hieåu veà caáu taïo, nguyeân lyù truyeàn döõ lieäu maùy
Teletype vaø caáu truùc maùy tính ñaõ ñöôïc hoïc vôùi söï höôùng daãn cuûa thaày,
coâ ñeà taøi luaän vaên toát nghieäp ñaõ hoaøn thaønh .
Ñeå laøm ñöôïc ñieàu naøy. Chuùng em coá gaéng ñem nhöõng kieán thöùc ñaõ
hoïc vaän duïng vaøo coâng vieäc, thöïc hieän nhieäm vuï luaän vaên ñöôïc giao ñeå
coù theå ñaït keát quaû toát. Tuy thaønh quaû coâng vieäc khoâng coù gì to lôùn
nhöng ñoù laø quaù trình daãn daét chuùng em laøm quen vôùi vieäc öùng duïng
kieán thöùc ñaõ hoïc vaøo thöïc teá, laø thaønh quaû cuûa sinh vieân tröôùc khi ra
tröôøng
Vôùi nhöõng taâm tö nguyeän voïng nhö vaäy neân chuùng em heát söùc coá
gaéng ñeå thaønh luaän vaên ñuùng thôøi gian quy ñònh. Do vaäy trong quaù trình
laøm vieäc chuùng em khoâng theå traùnh khoûi sai soùt. Raát mong quyù thaày coâ
thoâng caûm vaø chæ baûo.
PHUÏ LUÏC
Boä ñieàu khieån ngaét laäp trình ñöôïc 8259A (PIC : Programable
Interrupt Controller) laø moät vi maïch tích hôïp ñöôïc thieát keá ñeå quaûn
lyù caùc ngaét beân ngoaøi trong moät heä maùy tính. Ñaây laø nhöõng keát
noái vaät lyù tôùi caùc thieát bò treân PC. Khi moät trong soá nhöõng thieát bò
naøy taùc ñoäng leân moât trong nhöõng ñöôøng ngaét cuûa PIC, PIC seõ gôûi
yeâu caàu ngaét cöùng cuøng vôùi chæ soá cuûa ngaét tôùi CPU, CPU laáy
chæ soá naøy ñeå truy nhaäp vaøo baûng vectô ngaét ñeå tìm ra thuû tuïc phuïc
vuï ngaét cöùng thích hôïp.
8259A coù 2 loaïi hình chöõ nhaät vaø hình vuoâng ñeàu coù 28 chaân.
Chöùc naêng caùc chaân cuûa 8259A hình vuoâng cuõng töông öùng nhö
8259A hình chöõ nhaät.
D7 D6 D5 D4 D3 D2 D1 D0
Yeâu caàu öu RS 1 1 A2 A1 A0 1 1 1
tieân T
Thaáp nhaát 0 7 1 1 1 1 1 1 1 1
1 6 1 1 1 1 0 1 1 1
2 5 1 1 1 0 1 1 1 1
3 4 1 1 1 0 0 1 1 1
4 3 1 1 0 1 1 1 1 1
5 2 1 1 0 1 0 1 1 1
6 1 1 1 0 0 1 1 1 1
Cao nhaát 7 0 1 1 0 0 0 1 1 1
RD
Logic ghi
W IR0
ñoïc
R
A0 Thanh Giaûi Thanh
ghi quyeát ghi
CS
phuïc öu tieân yeâu
CAS0 vuï (PR) caàu
CAS1 Logic (ISR) ngaét
ghi/ñoïc
CAS2 IR7
SP
Thanh ghi che ngaét (IMR)
Ñöôøng daây
noäi moät ngaét, bit mong muoán trong IMR seõ ñöôïc xoùa
Ñeå cho pheùp
veà 0 vaø ngöôïc laïi neáu khoâng cho pheùp moät ngaét, bit töông öùng seõ
baät leân 1.
Sô ñoà bit cuûa thanh ghi IMR ñaët taïi coång I/O 21h nhö sau :
- Truyeàn döõ lieäu .Toáng Vaên On - NXB Tröôøng ÑHBK TP.Hoà Chí Minh
- Kyõ thuaät gheùp noái maùy vi tính . Nguyeãn Maïnh Giang - NXB Giaùo duïc
1998
- Ño löôøng vaø ñieàu khieån baèng maùy tính - Ngoâ Dieân Taäp - NXB KHKT
HAØ NOÄI 1996
- AT Technical Reference
- XT Technical Reference
- Giaùo trình lyù thuyeát vaø baøi taäp ngoân ngöõ C. Nguyeãn Ñình Teâ -
Hoaøng Ñöùc Haûi - NXB Giaùo duïc 1996
- Caáu truùc maùy vi tính -Traàn Quang Vinh - NXB Giaùo duïc 1998
- Vaø moät soá taøi lieäu khaùc