Professional Documents
Culture Documents
Ñ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Ï
Thieát bò ngoaøi
song song , ra
song song
Vi xöû
lyù
SOD,SID
D Thanh ghi
C
D1 dòch
Hình 1:
b. Maïch caàn khoái gheùp noái song song noái
tieáp (Hình 2):
Ngöôøi ta duøng khoái gheùp noái song song noái tieáp
ñeå bieán ñoåi tin song song cuûa vi xöû lyù (ñöa ra moät laàn)
thaønh tín hieäu noái tieáp truyeàn cho thieát bò ngoaøi noái
tieáp.
KGN TBN
Vi song (VXL)
Xöû song noái
lyù noái tieáp
tieáp
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á.
KGN KGN
TBN
song song
Vi (VXL)
song song
Xöû song
noái noái
lyù song
tieáp tieáp
Hình 3
d. Maïch caàn khoái gheùp noái, Modem vaø
khoái gheùp noái RS_232C (Hình 4):
Ñaây laø tröôøng hôïp toång quaùt vaø thoâng duïng cuûa
trao ñoåi tin giöõa maùy tính (song song) vôùi thieát bò ngoaøi
(song song) ñaët ôû khoaûng caùch xa (caàn modem) vaø söû
duïng chính ñöôøng daây ñieän thoaïi ñeå trao ñoåi tin (KGN
RS_232C) bieán ñoåi möùc tín hieäu TTL thaønh möùc tín hieäu
treân ñöôøng daây ñieän thoaïi (± 12 V).
KGN KGN
Vi song song TBN
Xö song RS Mo Mo RS song (VXL)
û noái 23 de de 23 noái song
Ly tieá 2C m m 2C tieá song
ù p p
Hình 4
6. Thuû tuïc tao ñoåi tin noái tieáp:
Thuû tuïc trao ñoåi tin giöõa moät maùy vi tính vaø moät
thieát bò nhaän tin song song (thieát bò ñaàu cuoái, maùy in
song song, ñuïc baêng, ...) thoâng qua caùc khoái gheùp noái
song song - noái tieáp vaø noái tieáp - song song vaø Modem
(Hình 4) theo trình töï sau:
a. Thuû tuïc phaùt tin TxD:
- Thieát bò ñaàu cuoái (hay maùy vi tính) gôûi tín hieäu
DTR (Data Terminal Ready - Söï saün saøng cuûa thieát bò ñaàu
cuoái coù soá lieäu) möùc thaáp cho Modem baùo noù saün
saøng.
- Modem gôûi traû lôøi thieát bò ñaàu cuoái (TBÑC) baèng
tín hieäu DSR (Data Set Ready) möùc thaáp. Thoâng thöôøng,
modem ñöôïc ñoùng maïch nguoàn nuoâi bôûi DTR vaø baùo
hieäu ñaõ ñoùng maïch bôûi DSR.
- Neáu thieát bò ñaàu cuoái coù moät kyù töï (Character)
saün saøng gôûi ñi, noù gôûi RTS (Request To Send - yeâu caàu
gôûi) möùc thaáp cho Modem.
- Modem gôûi tín hieäu CD (Carrier Detect - phaùt hieän
soùng mang) cho TBÑC ñeå baùo raèng noù ñaõ lieân laïc ñöôïc
vôùi maùy vi tính.
- Khi Modem ñaõ hoaøn toaøn saün saøng phaùt soá lieäu
leân ñöôøng daây, noù phaùt xung nhòp (Modem Clock) vaø tín
hieäu CTR (Clear To Send) tôùi thieát bò ñaàu cuoái.
- TBÑC gôûi caùc kyù töï soá lieäu (SUD) TxD cho Modem.
- Khi thieát bò ñaàu cuoái gôûi xong soá lieäu, noù naâng
möùc RTS leân cao baùo cho Modem laø ñaõ phaùt xong .
- Modem traû lôøi thieát bò ñaàu cuoái baèng caùch keát
thuùc tín hieäu CTS veà möùc cao, baùo ñaõ hoaøn thaønh
vieäc truyeàn tin TxD.
b. Thuû tuïc nhaän tin RxD:
Khi moät thieát bò ñaàu cuoái nhaän tin noái tieáp töø
ñöôøng daây, trình töï dieãn ra nhö sau:
- TBÑC thu gôûi DTR möùc thaáp cho modem baùo saün
saøng.
- Modem thu giöõ traû lôøi bôûi DSR.
- Modem thu nhaän tín hieäu CD töø ñöôøng daây vaø kích
thích phaùt tín hieäu nhòp modem (Modem Clock) cho tín hieäu
thu.
- TBÑC phaùt tín hieäu RTS möùc thaáp cho modem bieát
laø saün saøng thu.
- Modem nhaän tín hieäu RTS vaø phaùt CTS möùc thaáp
cho thieát bò ñaàu cuoái thu bieát modem saün saøng nhaän
tin.
- Modem nhaän tín hieäu TxD ñaõ ñieàu cheá ôû treân
ñöôøng daây ñöa vaøo boä giaûi ñieàu cheá vaø truyeàn chuoãi
tín hieäu RxD cho thieát bò ñaàu cuoái thu.
- Khi thu xong, TBÑC thu naâng RTS leân cao baùo cho
modem bieát vieäc thu moät lôøi tin ñaõ xong.
- Modem thu naâng möùc CTS leân cao ñeå baùo ñaõ keát
thuùc vieäc thu caùc tín hieäu RxD.
IV. Chuaån giao tieáp RS_232C:
1. Vaøi neùt cô baûn veà coång noái tieáp:
Coång noái tieáp RS_232C laø giao dieän phoå bieán roäng
raõi nhaát. Ngöôøi duøng maùy tính PC coøn goïi caùc coång
naøy laø COM1, COM2. Gioáng nhö coång maùy in, coång noái
tieáp RS_232C cuõng ñöôïc söû duïng moät caùch raát thuaän
tieän cho muïc ñích ño löôøng vaø ñieàu khieån .
Chuaån RS_232C duøng vôùi toác ñoä truyeàn döõ lieäu
laø 20 Kbps vôùi khoaûng caùch truyeàn lôùn nhaát gaàn 15 m.
Ñaây laø moät daïng giao tieáp daïng TTL vaø boä kích ñöôøng
daây khoâng caân baèng.
Vieäc truyeàn döõ lieäu qua coång RS_232C ñöôïc tieán
haønh theo caùch noái tieáp, nghóa laø caùc bit döõ lieäu ñöôïc
gôûi ñi noái tieáp nhau treân moät ñöôøng daãn.
Treân hình 5 laø söï boá trí chaân cuûa phích caém
RS_232C ôû maùy tính PC.
1 1
1
Hình 5a : Boä 2
noái 25 chaân (DB_25)
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
+5 1
V TxCLK
488
-12V
CS0 RxCLK RxD
TxD 1
CS1
SELACIA 489
A0 CS2 RxD
1 CD
DATA BUS RS
489
D0 - D7 CD
R/W
R/W 1 CTS
IRQ IRQ RTS CTS 489
+12V
Φ2 1
RTS
488
-12V
Logic1 -60V
(MARK)
Logic 0 +
(SPACE) 60V
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: E2 ñöôï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 Q4 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 D2 → 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 D3
Teletype R3
Q3
R6 R9
- 60V
R10 M2
Töø Tx cuûa
maùy R7 R8
Q4
Teletype
R25
D4 D5
Hình 7 : Ground
TxC RxC
Hình 10 :
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
D1
D3
D0
RxD Vcc
GND RxC
D4 DTR
D5
RT
D6 1 8251 S
DS
D7 28 A R
Rese
Tx tCLK
C
WR TxD
CS TxEMPTY
C/D CTS
RD Syndet/B
R
RxRDY 14 15 TxRDY
Hình 11a
D 0 - D7
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 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
2 1 0 Möùc öu Kieåu Nguyeân Reset laïo
tieân ngaét nhaân ngaét ngaét
0 0 1 - 0 0 -
1 1 0 Cao Traïng - Loãi traøn Ñoïc thanh
nhaát thaùi - Loãi cöïc tính ghi traïng
ñöôøng - Loãi khung thaùi ñöôøng
daây thu - Break interrup daây
1 0 0 Thöù hai Cho pheùp Cho pheùp thu Ñoïc thanh
thu döõ döõ lieäu ghi ñeäm
lieäu thu
0 1 0 Thöù ba Thanh ghi Thanh ghi löu Ñoïc IIR
löu giöõ giöõ phaàn hoaëc ghi
phaàn phaùt roãng vaøo thanh
phaùt ghi löu giöõ
roãng phaàn phaùt
0 0 0 Thöù tö Traïng - CTS Ñoïc thanh
thaùi - DSR ghi traïng
Modem - RI thaùi Modem
Ñaõ nhaän tin
c. Caùc thanh ghi ñeäm:
Kieåu thanh ghi thöù 3 trong UART laø caùc thanh ghi
ñeäm, coù hai thanh ghi ñeäm: Thanh ghi löu giöõ phaàn phaùt
(Transmitter Holding Register) vaø thanh ghi ñeäm thu
(Receiver Buffer Register).
c1. Thanh ghi ñeäm thu:
Thanh ghi naøy löu giöõ kyù töï sau cuøng vöøa môùi
nhaän ñöôïc. Moãi laàn noù ñöôïc ñoïc, thanh ghi traïng thaùi
ñöôøng daây seõ chæ thò vuøng ñeäm thu roãng cho tôùi khi
nhaän ñöôïc moät kyù töï khaùc. Neáu kyù töï thöù hai nhaän
ñöôïc tröôùc kyù töï thöù nhaát ñoïc xong, moãi loãi traøn seõ
ñöôïc thoâng baùo.
c2. Thanh ghi löu giöõ phaàn phaùt:
Thanh ghi löu giöõ phaàn phaùt löu laïi kyù töï keá tieáp
ñeå chuaån bò phaùt ñi. Kyù töï ñöôïc ñaët vaøo baèng chöông
trình cuûa ngöôøi vieát. Thanh ghi traïng thaùi ñöôøng daây
seõ thoâng baùo khi moät kyù töï vöøa ñöôïc phaùt ñi.
Ñòa chæ cuûa caùc thanh ghi ñöôïc choïn nhö sau:
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:
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
D7 D6 D5 D4 D3 D2 D1 D0
D7 D6 D5 Vaän toác
(bps)
0 0 0 110
0 0 1 150
0 1 0 300
0 1 1 600
1 0 0 1200
1 0 1 2400
1 1 0 4800
D4 D3 Tính chaún
leû
0 0 Khoâng coù
0 1 Tính chaún
leû
1 0 Khoâng coù
1 1 Tính chaún
D1 D2 Kích thöôùc
kyù töï
0 0 Khoâng duøng
0 1 Khoâng duøng
1 0 7 bit
1 1 8 bit
2. Haøm soá 1 (Phuïc vuï 01h)
Haøm naøy gôûi moät kyù töï ñeán coång ñöôïc chæ ñònh.
* Vaøo :
AH = 01h
AL = Kyù töï gôûi
DX = Soá thöù töï coång noái tieáp
* Ra :
AH = Traïng thaùi ñöôøng truyeàn
AL = Traïng thaùi Modem
* Goïi INT 14h
Neáu coù loãi xaûy ra, bit D7 seõ ñöôïc baät leân 1, caùc bit
coøn laïi chæ noäi dung loãi theo moâ taû sau ñaây:
Bit D1 : Loãi Overrun
Bit D2 : Loãi Parity
Bit D3 : Loãi Framing
Bit D4 : Moät Break daõ xaûy ra
Bit D5 : THR roãng
Bit D6 : THR vaø Transmitter Shift Register roãng
Bit D7 : Quaù thôøi gian
Chuù yù :
Kyù töï seõ khoâng gôûi ñeán khi ñöôøng tín hieäu baét tay
(Handshaking Line) ôû traïng thaùi cao.
3. Haøm soá 2 : (Phuïc vuï 02h)
Nhaän moät kyù töï töø coång chæ ñònh:
* Vaøo :
AH = 02h
DX = Soá thöù töï coång noái tieáp
* Ra :
AL = Kyù töï nhaän
AH = Maõ traïng thaùi
* Goïi INT 14h
Chuù yù :
Haøm naøy seõ chôø moät kyù töï töø coång cho ñeán khi
nhaän ñöôïc hoaëc quaù thôøi haïn chôø. Neáu khoâng coù kyù
töï naøo ñöôïc nhaän hoaëc vieäc nhaän coù loãi thì bit D7 cuûa
AH leân 1.
4. Haøm soá 3 (Phuïc vuï 03h)
Laáy traïng thaùi cuûa coång noái tieáp.
Haøm naøy traû ra thoâng tin cuï theå vaø traïng thaùi
cuûa Modem vaø traïng thaùi cuûa ñöôøng truyeàn cuûa coång
chæ ñònh.
* Vaøo :
AH = 03h
DX = Soá thöù töï cuûa coång noái tieáp
* Ra :
AH = Traïng thaùi ñöôøng truyeàn
AL = Traïng thaùi Modem
* Goïi INT 14h.
Keát quaû cuûa chöông trình laø :
- Traïng thaùi cuûa ñöôøng daây ñöôïc ñaët trong thanh ghi
AH, coù caùc bit nhö hình döôùi.
- Traïng thaùi cuûa Modem ñöôïc ñaët trong thanh ghi AL.
AH
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
Baét tay Y
Thu döõ lieäu
thu = 1
N N
N
Thoâng Yeâu Y Phaùt
baùo maùy Caàu file
baän phaùt
N Coù
nhaán
ESC
Y
END
LÖU ÑOÀ HAØM BAÉT TAY PHAÙT
START
N
DSR = 1
Y
Delay 50 ms
N
DSR = 1
Y
Ñoå chuoâng
Return 1 Return 0
END
START
LÖU ÑOÀ HAØM BAÉT TAY THU
N
DSR = 1
Y
Delay 50 ms
N
DSR = 1
Ñoå chuoâng
Return 1 Return 0
END
LÖU ÑOÀ HAØM PHAÙT TRÖÏC TIEÁP
START
END
LÖU ÑOÀ HAØM PHAÙT FILE
START
Môû file caàn
phaùt
Thoâng baùo N Môû
môû ñöôïc file ñöôïc file
?
Y
Ñoïc kyù töï
treân file
Kyù töï Y
Ñoåi sang
laø chöõ chöõ hoa
thöôøng
N
Kyù töï Y In leân maøn
laø chöõ
hình
hoa
N
Kyù töï laø N Kyù töï laø N Côø N
Kyù töï baûng
øcarrier khoaûng
laø soá =1?
return traéng
Y Y Y Y
In kyù töï In kyù töï In kyù töï Gôûi ñi
leân maøn leân maøn leân maøn maõ 1F H
hình hình hình
Y
N Côø Ñaët côø
Gôûi ñi Gôûi ñi baûng =
baûng
maõ 08 H maõ 04 H 0
=0?
N
Ñoïc kyù töï töø
file laø EOF
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
Ñoïc thanh ghi traïng thaùi
coång COM
Y Kyù töï
laø 02
H?
N
Kyù töï N Kyù töï N Kyù töï N
laø 08 laø 1F laø 1B
H? H? H?
Y Y Y
Côø N
baûng =
0?
Y
Tra baûng Tra baûng soá
chöõ
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
INTA INT
Sô ñoà khoái cuûa 8259A :
D 0 - D7 Thanh
ghi soá Logic ñieàu khieån
lieäu
RD
W Logic
ghi ñoïc IR0
R
A0
Thanh Giaûi Thanh
CS ghi quyeá ghi
phuïc t öu yeâu
CAS0
vuï tieân caàu
CAS1 Logic (ISR) (PR) ngaét
CAS2 ghi/ñoïc IR7
SP
Thanh ghi che ngaét (IMR)
Ñöôøng daây
noäi moät ngaét, bit mong muoán trong IMR seõ
Ñeå cho pheùp
ñöôïc xoùa 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 :
- AT Technical Reference
- XT Technical Reference