Xem mẫu
- Thieát keá, cheá taïo vaø ñieàu khieån tay maùy Trang 67
9
ÑIEÀU KHIEÅN BAÈNG
COÅNG NOÁI TIEÁP
9.1 GIÔÙI THIEÄU
Gheùp noái duøng qua coång noái tieáp laø moät trong nhöõng kyõ thuaät ñöôïc duøng
roäng raõi nhaát ñeå gheùp noái, giao tieáp giöõa caùc thieát bò vôùi nhau. Qua coång noái tieáp
coù theå gheùp noái chuoät, modem, maùy in, boä bieán ñoåi A/D, caùc thieát bò ño löôøng
hoaëc ñeå giao tieáp giöõa caùc chip, … Caùch gheùp noái naøy söû duïng phöông phaùp
truyeàn thoâng theo kieåu noái tieáp, trong ñoù ôû moät thôøi ñieåm chæ coù 1 bit ñöôïc göûi
ñi/nhaän veà treân moät ñöôøng daãn. Ñaëc ñieåm naøy khaùc so vôùi phöông phaùp truyeàn
thoâng theo kieåu song song, trong ñoù nhieàu bit ñöôïc göûi ñi ñoàng thôøi.
Öu ñieåm chính cuûa kieåu truyeàn noái tieáp so vôùi kieåu truyeàn song song laø tieát
kieäm daây daãn, truyeàn ñi ñöôïc xa, khaû naêng choáng nhieãu toát hôn. Nhöng laïi coù
khuyeát ñieåm laø toác ñoä truyeàn chaäm hôn.
Luaän vaên naøy duøng truyeàn thoâng noái tieáp ñeå giao tieáp giöõa maùy PC vôùi boä
phaùt hoàng ngoaïi, vaø duøng ñeå giao tieáp giöõa AT89C2051 vaø AT90S2313 ñeå ñieàu
khieån ñoäng cô. Chöông naøy seõ trình baøy veà caùch thieát laäp vaø phöông phaùp ñieàu
khieån coång noái tieáp.
9.2 GIAO TIEÁP VÔÙI MAÙY VI TÍNH
Maùy tính ñöôïc giao tieáp vôùi vi xöû lyù AT89C2051 baèng chuaån RS-232.
GVHD: TS. NGUYEÃN VAÊN GIAÙP SVTH: Nguyeãn Nhaät Taân-Nguyeãn Leâ Tuøng
- Thieát keá, cheá taïo vaø ñieàu khieån tay maùy Trang 68
9.2.1 Chuaån giao tieáp RS-232
9.2.1.1 Caùc yeâu kyõ thuaät cuûa chuaån RS-232
Caùc yeâu caàu veà ñieän ñöôïc qui ñònh trong RS- 232C nhö sau:
+ Möùc logic 1: naèm trong khoaûng -3V÷ -12V.
+ Möùc logic 0: naèm trong khoaûng +3V ÷ +12V.
+ Trôû khaùng taûi veà phía boä nhaän cuûa maïch phaûi lôùn hôn 3000(Ω) vaø phaûi
nhoû hôn 7000(Ω).
+ Toác ñoä truyeàn / nhaän döõ lieäu cöïc ñaïi laø 100 Kbit/giaây.
+ Caùc loái vaøo cuûa boä nhaän phaûi coù ñieän dung nhoû hôn 2,500 pF.
+ Ñoä daøi cuûa caùp noái giöõa maùy tính vaø thieát bò gheùp noái qua coång noái tieáp
khoâng ñöôïc vöôït quaù 15m neáu khoâng söû duïng modem.
+ Caùc giaù trò toác ñoä truyeàn döõ lieäu chuaån laø : 50, 75, 110, 150, 300, 600,
1200, 2400, 4800, 9600, 19200, 28800,…,56600, 115200 BAUD.
9.2.1.2 Sô ñoà chaân ra treân PC
Haàu heát caùc maùy tính caù nhaân ñöôïc cheá taïo gaàn ñaây ñeàu coù hai coång noái
tieáp RS-232, ñoâi khi coù 3-4 coång. Coång ñaàu tieân coù teân laø COM1 tieáp theo laø
COM2, COM3, COM4.
Coù hai kieåu ñaàu noái ñöôïc söû duïng cho coång noái tieáp RS-232 laø loaïi 25 chaân
vaø 9 chaân.
1
14
2
TXD 15
3
RXD
16
4
RTS
17
5
CTS
18
6
DSR
19
7
GND
20
DTR
8
DCD
21 1
DCD
9 6
DSR
22 2
RI RXD
10 7
RTS
23 3
TXD
11 8
CTS
24 4
DTR
12 9
RI
25 5
GND
13
P1
P2
Hình 9.1 Sô ñoà chaân cuûa DB9 vaø DB25 cuûa RS-232
Ñoái vôùi ñaàu noái 25 chaân, trong moät soá tröôøng hôïp coù söû duïng chaân soá 1 ñeå
noái vôùi voû kim loaïi cuûa caùp truyeàn ñeå haïn cheá nhieãu, thoâng thöôøng thì caùp
truyeàn chæ boïc nhöïa. Khi ñoù chaân 1 seõ ñöôïc noái vôùi ñaát mass cuûa thieát bò, chaân
naøy khaùc vôùi chaân soá 7 laø chaân mass cuûa tín hieäu.
Tieâu chuaån RS- 232C qui ñònh roõ vieäc söû duïng ñaàu noái thoáng nhaát ñeå taát caû
caùc saûn phaåm ñeàu töông thích vôùi nhau. Cho neân thöù töï vaø chöùc naêng cuûa caùc
chaân ñaõ ñöôïc qui ñònh raát cuï theå vaø phaûi tuaân thuû moät caùch nghieâm ngaët.
GVHD: TS. NGUYEÃN VAÊN GIAÙP SVTH: Nguyeãn Nhaät Taân-Nguyeãn Leâ Tuøng
- Thieát keá, cheá taïo vaø ñieàu khieån tay maùy Trang 69
Baûng döôùi ñaây chæ ra taát caû caùc ñöôøng daãn ñöôïc noái vôùi caùc chaân treân DB9
vaø DB25.
Baûng 9.1 Caùc chaân vaø chöùc naêng
DB25 DB9 Teân goïi Vaøo/ra Chöùc naêng
Chaân naøy thöôøng ñöôïc noái vôùi voû
FG
- boïc kim cuûa daây caùp, vôùi voû maùy,
1 - Frame ground
vôùi ñai bao ngoaøi hoaëc ñaát thaät söï
(ñaát voû maùy)
TxD Truyeàn döõ lieäu
2 3 ⇐
Transmit data
RxD Nhaän döõ lieäu
3 2 ⇒
Receive Data
Yeâu caàu göûi; boä truyeàn ñaët ñöôøng
RTS naøy leân möùc hoaït ñoäng khi saün
4 7 ⇐
Request to send saøng truyeàn döõ lieäu.
Xoùa ñeå göûi; boä nhaän ñaët ñöôøng
CTS naøy leân möùc hoaït ñoäng ñeå thoâng
5 8 ⇒ baùo cho boä truyeàn laø noù saün saøng
Clear to send
nhaän döõ lieäu.
Döõ lieäu saün saøng; tính hoaït ñoäng
DSR gioáng nhö CTS, nhöng ñöôïc kích
6 6 ⇒
Data set ready hoaït bôûi boä truyeàn khi noù saün
saøng nhaän döõ lieäu.
SG Mass cuûa tín hieäu
7 5 -
Signal ground
DCD Phaùt hieän tín hieäu mang döõ lieäu
8 1 ⇒
Data carrier detect
Ñaàu cuoái döõ lieäu saün saøng; tính
DTR
hoaït ñoäng gioáng vôùi RTS nhöng
20 4 Data terminal ⇐
ñöôïc kích hoaït bôûi boä nhaän khi
ready
muoán truyeàn döõ lieäu.
RI Baùo chuoâng, cho bieát laø boä nhaän
22 9 ⇒ ñang nhaän tín hieäu rung chuoâng
Ring Indicate
+ Ghi chuù: ⇒ loái vaøo; ⇐ loái ra.
GVHD: TS. NGUYEÃN VAÊN GIAÙP SVTH: Nguyeãn Nhaät Taân-Nguyeãn Leâ Tuøng
- Thieát keá, cheá taïo vaø ñieàu khieån tay maùy Trang 70
9.2.2 Caùc thanh ghi vaø ñòa chæ
Chuùng ta caàn phaûi thieát laäp caùc thoâng soá cho coång noái tieáp tröôùc khi muoán
söû duïng noù. Nhöõng thieát laäp naøy ñöôïc thöïc hieän trong vuøng BIOS cuûa maùy tính
vaø tuøy vaøo coång noái tieáp söû duïng maø ta duøng caùc ñòa chæ cô sôû töông öùng. Caùc ñòa
chæ cô sôû naøy ñöôïc cho trong baûng döôùi.
Baûng 9.2 Ñòa chæ caùc coång COM
COM 1 COM 2 COM 3 COM 4
HEX 3F8 2F8 3E8 2E8
DEC 1016 760 1000 744
UART coù toång coäng laø 12 thanh ghi, qua ñoù taát caû caùc chöùc naêng nhaäp vaøo
vaø xuaát ra noái tieáp coù theå ñöôïc ñieàu khieån. Caùc thanh ghi ñöôïc trao ñoåi qua 7 ñòa
chæ, trong ñoù coù nhöõng ñòa chæ ñöôïc saép xeáp 2 laàn. Baûng sau ñaây giôùi thieäu taát caû
caùc thanh ghi. Nhöng trong luaän vaên naøy chuùng ta chæ söû duïng moät soá thanh ghi
trong soá naøy.
Baûng 9.3 Ñòa chæ offset caùc thanh ghi
Offset DLAB Ñoïc/Ghi Kyù hieäu Teân
=0 Ghi - Thanh ghi ñeäm truyeàn
+0 =0 Ñoïc - Thanh ghi ñeäm nhaän
=1 Ñoïc/Ghi - Thanh ghi toác ñoä BAUD (byte thaáp)
=0 Ñoïc/Ghi IER Thanh ghi cho pheùp ngaét
+1
=1 Ñoïc/Ghi - Thanh ghi toác ñoä BAUD (byte cao)
+2 - Ñoïc IIR Thanh ghi nhaän daïng ngaét
- Ghi FCR Thanh ghi ñieàu khieån FIFO
+3 - Ñoïc/Ghi LCR Thanh ghi ñieàu khieån ñöôøng daãn
+4 - Ñoïc/Ghi MCR Thanh ghi ñieàu khieån MODEM
+5 - Ñoïc LSR Thanh ghi traïng thaùi ñöôøng daãn
+6 - Ñoïc MSR Thanh ghi traïng thaùi MODEM
+7 - Ñoïc/Ghi - Thanh ghi Scratch
Vieäc truy nhaäp tröïc tieáp leân thanh ghi dieãn ra qua ñòa chæ thanh ghi, ñöôïc
tính baèng caùch laáy toång cuûa ñòa chæ cô sôû cuûa giao dieän vaø ñoä leäch Offset cuûa
thanh ghi trong UART, cuï theå laø:
Ñòa chæ cô sôû + Offset = Ñòa chæ thanh ghi
Nhö ñaõ noùi ôû treân, chuùng ta chæ söû duïng moät soá thanh ghi vaø seõ ñöôïc trình
baøy sau ñaây.
9.2.2.1 Thanh ghi cho pheùp ngaét (IER)
GVHD: TS. NGUYEÃN VAÊN GIAÙP SVTH: Nguyeãn Nhaät Taân-Nguyeãn Leâ Tuøng
- Thieát keá, cheá taïo vaø ñieàu khieån tay maùy Trang 71
Baûng 9.4 Chöùc naêng töøng bit cuûa thanh ghi IER
Bit Chöùc naêng
7 -
6 -
5 Cho pheùp cheá ñoä nguoàn giaûm
4 Cho pheùp cheá ñoä nghæ
3 Cho pheùp ngaét modem
2 Cho pheùp ngaét nhaän
1 Cho pheùp ngaét truyeàn
0 Cho pheùp nhaän döõ lieäu khi coù ngaét
Vì ta khoâng duøng ngaét noái tieáp neân chuùng ta ghi giaù trò 0 vaøo thanh ghi naøy.
9.2.2.2 Thanh ghi ñieàu khieån ñöôøng daãn (LCR)
Thanh ghi naøy ñöôïc duøng hai laàn ñeå thieát laäp thoâng soá truyeàn cuûa coång.
Vieäc naøy ñöôïc kieåm soaùt baèng bit DLAB. Thanh ghi naøy ñöôïc moâ taû nhö sau.
Baûng 9.5 Chöùc naêng töøng bit cuûa thanh ghi LCR
Bit 7 1 DLAB
0 Truy xuaát ñeán caùc boä ñeäm vaø caùc thanh ghi cho
pheùp ngaét
Bit 6 Cho pheùp Break
Bit 3,4 vaø 5 Bit 5 Bit 4 Bit 3 Choïn Parity
X X 0 No Parity
0 0 1 Parity leû
0 1 1 Parity chaún
1 0 1 Parity cao
1 1 1 Parity thaáp
Bit 2 Ñoä daøi cuûa stop-bit
0 1 stop-bit
2 stop bit ñoái vôùi khung truyeàn 6,7,8 bit hay1,5
1
stop bit vôùi khung truyeàn 5 bit
Bit 0 vaø bit 1 Bit 1 Bit 0 Khung döø lieäu
0 0 5 bit
0 1 6 bit
1 0 7 bit
1 1 8 bit
GVHD: TS. NGUYEÃN VAÊN GIAÙP SVTH: Nguyeãn Nhaät Taân-Nguyeãn Leâ Tuøng
- Thieát keá, cheá taïo vaø ñieàu khieån tay maùy Trang 72
Sau khi coù caùc hieåu bieát veà chuaån RS-232 vaø coång noái tieáp cuûa maùy PC,
phaàn tieáp theo seõ trình baøy phöông thöùc thieát laäp giao tieáp giöõa maùy PC vaø chip
AT89C2051.
9.2.3 Giao tieáp giöõa PC vôùi AT89C2051
9.2.3.1 Khung truyeàn döõ lieäu
Baûng döôùi chæ ra khung truyeàn moät byte döõ lieäu maø chuùng ta duøng ñeå giao
tieáp giöõa maùy tính vaø chip AT89C2051.
Baûng 9.6 Khung truyeàn döõ lieäu
Khung truyeàn döõ lieäu
19200 BAUD 1 stop bit No parity 8 bytes
9.2.3.2 Sô ñoà MAÏCH noái AT89C2051 vôùi RS232
Chuùng ta söû duïng moät IC MAX 232 ñeå gheùp möùc ñieän aùp. Chöông trình
ñieàu khieån ñôn giaûn coù theå ñöôïc vieát moät caùch deã daøng khi naém vöõng hoaït ñoäng
cuûa boä vi xöû lyù AT89C2051.
COM PC
19
8 9 2 P1.7 18
3 7 R2IN R2OUT 10 3 P3.0/RXD P1.6 17
2 T2OUT T2IN 6 P3.1/TXD P1.5 16
1 P3.2/INT0 P1.4
1
C1+
1uF 7
P3.3/INT1 P1.3
15
2 8 14
V+ 9 P3.4/T0 P1.2 13
1uF P3.5/T1 P1.1/AIN1
3 11 12
0 4 C1- 6 VCC P3.7 P1.0/AIN0 33p
C2+ V- 4
XTAL2
1uF 1uF
5 11.059M
C2-
10uF 1
0 RST/VPP 5
MAX232/SO XTAL1
10k 33p
AT89C2051
0 0
Hình 9.2 Gheùp noái tieáp AT89C2051 vôùi PC qua MAX2
Döõ lieäu ñöôïc maùy tính truyeàn qua coång COM laàn löôït theo ñònh daïng sau:
o Byte thöù nhaát + soá 13 - quy ñònh soá thöù töï ñoäng cô.
o Byte thöù hai + soá 13 – quy ñònh vò trí cuûa ñoäng cô ñoù.
o 255 - byte ñoàng boä hoùa.
Chaúng haïn ví duï neáu chuùng ta muoán ñieàu khieån ñoäng cô thöù 3 ñeán vò trí
goùc 500 (moãi ñoäng cô coù 560 vò trí goùc) thì ta phaûi truyeàn ñi laø: soá 3 + 13 + 500 +
13 + 255 + 13.
Do moãi laàn giao tieáp noái tieáp ta chæ coù theå göûi ñöôïc moät byte. Trong khi döõ
lieäu truyeàn caàn ñeå xaùc ñònh vò trí cuûa ñoäng cô phaûi laø word (2 byte). Do vaäy vieäc
göûi ñi kyù töï coù maõ ASCII 13 coù yù nghóa nhö laø moät “stop byte”.
GVHD: TS. NGUYEÃN VAÊN GIAÙP SVTH: Nguyeãn Nhaät Taân-Nguyeãn Leâ Tuøng
- Thieát keá, cheá taïo vaø ñieàu khieån tay maùy Trang 73
Byte “255”: ñöôïc göûi nhaèm ñoàng boä hoùa caùc döõ lieäu ñaõ göûi ñi. Khi nhaän
ñöôïc byte naøy thì chip AT90S2313 môùi göûi caùc vò trí môùi tôùi caùc ñoäng cô, coøn
khoâng thì caùc vò trí môùi naøy vaãn ñöôïc löu trong boä nhôù cuûa chip AT90S2313.
9.3 GIAO TIEÁP NOÁI TIEÁP GIÖÕA AT89C2051 VAØ AT90S2313
AT89C2051 vaø AT90S2313 gheùp noái tieáp vôùi nhau baèng 2 chaân RxD vaø
TxD ñöôïc noái cheùo vôùi nhau. Möùc ñieän aùp treân ñöôøng truyeàn laø möùc TTL. Tröôùc
khi giao tieáp noái tieáp giöõa hai chip, chuùng ta caàn phaûi thieát laäp toác ñoä BAUD
gioáng nhau ôû hai chip.
Trong luaän vaên naøy, chuùng ta duøng toác ñoä BAUD laø 9600 cho vieäc truyeàn
döõ lieäu giöõa hai chip. Do chip AT90S2313 vöøa thöïc hieän vieäc ñieàu khieån ñoäng cô
vöøa nhaän döõ lieäu noái tieáp, neân ñeå baûo ñaûm döõ lieäu khoâng bò maát, chuùng ta söû
duïng theâm moät chaân laøm côø baét tay trong vieäc truyeàn nhaän giöõa hai chip.
Döõ lieäu ñöôïc truyeàn moät chieàu töø AT89C2051 ñeán AT90S2313.
9.3.1 Thieát laäp toác ñoä BAUD 4800
9.3.1.1 Thieát laäp toác ñoä BAUD cho AT89C2051
MOV SCON,#52H ; Port noái tieáp cheá ñoä 1.
MOV TCON,#20H ; Boä ñònh thôøi 1, cheá ñoä 2.
MOV TH1,#-6 ; Giaù trò naïp ñeå coù toác ñoä BAUD laø 4800.
SETB TR1 ; Boä ñònh thôøi 1 hoaït ñoäng.
9.3.1.2 Thieát laäp toác ñoä BAUD cho AT90S2313
EQU BAUDR=143
EQU MYVAL =129
LDI UCR,MYVAL ;Naïp giaù trò vaøo thanh ghi cho pheùp söû duïng
RxD, TxD.
LDI UBBR,BAUDR ;Naïp giaù trò ñeå ñònh toác ñoä BAUD laø 4800.
9.3.2 Chöông trình truyeàn (AT89C2051) vaø nhaän (AT90S2313) döõ lieäu
9.3.2.1 Chöông trình con truyeàn döõ lieäu vieát cho AT89C2051
Transmit:
JNB TI,$
CLR TI
JB BUSY,$ ; Busy laø chaân baét tay phaàn cöùng.
MOV SBUF,{byte cao cuûa data}
JNB TI,$
CLR TI
JB BUSY,$
GVHD: TS. NGUYEÃN VAÊN GIAÙP SVTH: Nguyeãn Nhaät Taân-Nguyeãn Leâ Tuøng
- Thieát keá, cheá taïo vaø ñieàu khieån tay maùy Trang 74
MOV SBUF,{byte thaáp cuûa data}
JNB TI,$
CLR TI
JB BUSY,$
MOV SBUF,#13
RET
Côø Busy seõ ñöôïc set leân 1 trong AT90S2313 moãi khi chip naøy vaøo chöông
trình phuïc vuï ngaét ñeå ñieàu khieån ñoäng cô.
9.3.2.2 Chöông trình con nhaän döõ lieäu vieát cho AT90S2313
Receive:
L2:
Charin = 0
Again:
Portb = &B11000000
SBIS USR,7 ; Chôø cho RXEN ñöôïc set
RJMP Again
Portb = &B11110000
IN R17,UDR ; Ghi buffer vaøo thanh ghi R17
CPI R17,13 : So saùnh vôùi soá 13
BREQ Thoat
STS {temp},R17 ; Chuyeån noäi dung R17 vaøo bieán temp.
Shift Charin , Left , 8
Charin = Charin + Temp
RJMP Again
Thoat:
Ret
9.4 KEÁT LUAÄN
Chöông naøy chuùng ta ñaõ tìm hieåu khaù roõ veà vieäc söû duïng coång noái tieáp ñeå
giao tieáp vaø ñieàu khieån; vaø vôùi caùc taäp leänh cuûa caùc hoï vi xöû lyù ñaõ bieát chuùng ta
coù theå deã daøng vieát moät chöông trình con xöû lyù döõ lieäu theo khung truyeàn mong
muoán. Chöông tieáp chuùng ta seõ nghieân cöùu moät caùch truyeàn döõ lieäu khaùc cuõng
khaù phoå bieán hieän nay, ñoù laø vieäc truyeàn nhaän döõ lieäu khoâng daây baèng soùng
hoàng ngoaïi.
GVHD: TS. NGUYEÃN VAÊN GIAÙP SVTH: Nguyeãn Nhaät Taân-Nguyeãn Leâ Tuøng
nguon tai.lieu . vn