Tröôøng ÑH SPKT Luaän vaên toát nghieäp
Chieàu cuûa doøng kyù töï Luoân ôû möùc cao Luoân ôû möùc thaáp Start D0 D1 D2 D3 D4 D5 D6 Parity Stop Stop Maõ cuûa kyù töï caàn truyeàn HÌNH 5.2 : Khung cuûa moät kyù töï ñeå truyeàn khoâng ñoàng boä
Tuyø theo loaïi maõ ñöôïc choïn duøng trong khi truyeàn (Baudot, Ascii,… ) ñoä daøi cho maõ kyù töï coù theå laø 5 , 6 , 7, 8 bit. Tuyø theo heä thoáng truyeàn tin, beân caïnh caùc bit döõ lieäu coøn coù theå tuyø choïn coù hay khoâng coù 1 bit parity ñeå kieåm tra loãi khi truyeàn coù theå tuyø choïn 1 hoaêc 2 bit stop, nhöng baét buoäc phaûi coù moät bit start. Nhö vaäy ñeå truyeàn moät kyù töï theo phöông phaùp khoâng ñoàng boä, ngoaøi kyù töï mang tin ta buoäc phaûi truyeàn theâm ít nhaát 2 vaø nhieàu nhaát laø 4 bit phuï ñeå taïo ra khung cho kyù töï ñoù, vì theá phöông phaùp naày tuy ñôn giaûn nhöng coù hieäu suaát khoâng cao.
Toác ñoä truyeàn döõ lieäu theo phöông phaùp noái tieáp ñöôïc ño baèng bit/s. Ngoaøi ra ngöôøi ta cuõng hay duøng ñôn vò baud, ñoù laø giaù trò ngòch ñaûo cuûa thôøi gian giöõa caùc laàn thay ñoåi möùc tín hieäu, vôùi döõ lieäu chæ coù hai möùc (0 vaø 1)ø vaø moãi thay ñoåi möùc tín hieäu chæ maõ hoùa moät bit thì coù theå hieåu baud = bit/s, caùc toác ñoä truyeàn thöôøng gaëp trong thöïc teá laø 11, 300, 600, 1200, 2400, 4800, 9600, 19200 baud.
Ñeå taïo ñieàu kieän deå daøng cho vieäc phoái gheùp ñöôøng truyeàn noái tieáp vôùi heä vi xöû lyù vaø ñeå giaûm toái ña caùc maïch phuï theâm ôû beân ngoaøi ngöôøi ta ñaõ cheá taïo ra caùc vi maïch toå hôïp côõ lôùn laäp trình ñöôïc coù khaû naêng hoaøn thaønh phaàn lôùn caùc coâng vieäc caàn thieát trong khi phoái gheùp. Ñoù laø caùc maïch thu phaùt di boä vaïn naêng IN8250/16450 cuûa National vaø maïch thu phaùt ñoàng boä – dò boä vaïn naêng 8251 cuûa Intel.
II. VI MAÏCH USART 8251: Trong phaàn naøy ta seõ giôùi thieäu maïch 8251A ñoù laø vi maïch USART coù theå duøng cho caû hai kieåu truyeàn thoâng tin noái tieáp ñoàng boä, dò boä. Sô ñoà chaân vaø sô ñoà thanh ghi ñöôïc trình baøy ôû hình 5.3
1. Sô ñoà chaân vaø sô ñoà khoái a. nhoùm tín hieäu gheùp noái vôùi vi xöû lyù goàm: - /CS noái vôùi boä giaûi maõ ñòa chæ A1.. An ñeå choïn 2 thanh ghi. (A0 = 1ñieàu khieån traïng thaùi, A0 = 0 ñeäm soá lieäu). - C/D noái vôùi ñöôøng daây ñòa chæ A0 ñeå moät trong 2 caëp thanh ghi treân. - /WR noái vôùi chaân /WR cuûa vi xöû lyù. - /RD noái vôùi chaân /RD cuûa vi xöû lyù. - CLK noái vôùi ñöôøng daây CLK cuûa vi xöû lyù.
GVHD: Nguyeãn Ñình Phuù SVTH: Nguyeãn Trung Duõng
Tröôøng ÑH SPKT Luaän vaên toát nghieäp
- Reset noái vôùi ñöôøng daây reset cuûa vi xöû lyù. - D0 … D7 noái vôùi caùc ñöôøng daãn D0…D7 cuûa VXL. b. Nhoùm tín hieäu gheùp noái voái Modem - /DTR - /DSR - /RTS - /CTS c. Nhoùm tín hieäu geùp noái vôùi ñöôøng daây truyeàn – nhaän vaø KGN: - TxEMTY thanh ghi ñeäm truyeàn roãng. - TxR cho soá lieäu truyeàn. - TxRDy baùo soá lieäu truyeàn ñaõ saün saøng. - RxRDy baùo soá lieäu nhaän ñaõ saün saøng. - Syn det/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. - TxD : nhòp truyeàn. - RxC : nhòp nhaän.
GVHD: Nguyeãn Ñình Phuù SVTH: Nguyeãn Trung Duõng
Tröôøng ÑH SPKT Luaän vaên toát nghieäp
8251A
D1 D0 Vcc /RxC /DTR /RTS /DSR Reset CLK TxD TxEMPTY /CTS Syndet/BR TxRDY
28 27 26 25 24 23 22 21 20 19 18 17 16 15
D2 D3 RxD GND D4 D5 D6 D7 /TxC /WR /CS C/D /RD RxRDY
1 2 3 4 5 6 7 8 9 10 11 12 13 14
(a)
/CS chíp choïn vi maïch /RD read – ñoïc /WR write – vieát C/D control/data - ñieàu khieån soá lieäu CLK – clock – nhòp D0..D7 data O/I – bus döõ lieäu vaøo ra /TxC – transmit clock - nhòp truyeàn RxC – receiver clock RST – reset /DTR dada terminal ready /DSR – data set ready /RTS request to send /CTS clear to send TxD – transmit data RxD – receiver data TxRDy – transmit ready RxRDy – receiver ready TxEMTY – transmist register empty Syn/BRK- Break detect TxD
Thanh ghi truyeàn
Thanh ghi ñeäm truyeàn
RxD Thanh ghi nhaän
Thanh ghi ñeäm nhaän
Thanh ghi cheá ñoä
Thanh ghi leänh Hình 5.3 : Sô ñoà chaân (a) vaø caùc thanh ghi (b) cuûa 8251A
Thanh ghi traïng thaùi
(b) /CS /RD /WR C/D D0 D1 D2 D3 D4 D5 D6 D7 CLK RST RxRDY TxRDY TxEMTy Vcc GND /DSR /DTR /CTS /RTS Syn/BRK TxC RxC
GVHD: Nguyeãn Ñình Phuù SVTH: Nguyeãn Trung Duõng
Tröôøng ÑH SPKT Luaän vaên toát nghieäp
2. Caùc thanh ghi: ÔÛ hình 5.4a vaø hình 5.4b moâ taû boä thanh ghi cuûa 8251, goàm: thanh ghi traïng thaùi vaø thanh ghi ñieàu khieån.
Hai thanh ghi treân coù cuøng moät ñòa chæ vôùi A0 = 1, moät duøng ñeå ghi (/WR) leänh ñieàu khieån vaø moät ñeå ñoïc (/RD) traïng thaùi. Hai thanh ghi ñeäm soá lieäu ghi vaø ñoïc coù cuøng moät ñòa chæ (A0 = 0) vaø duøng ñeå ghi vaø ñoïc soá lieäu caàn truyeàn vaø nhaän cuûa KGN. Caùc leänh cho caùc thanh ghi treân nhö baûng sau:
/CE C/D 0 0 0 0 1
1 1 0 0 x /WR 0 1 0 1 x /RD LEÄNH 1 0 1 0 x Ghi vaøo thanh ghi ñieàu khieån (cheá ñoä, leänh). Ñoïc thanh ghi traïng thaùi. Ghi soá lieäu vaøo thanh ghi ñeäm truyeàn. Ñoïc soá lieäu töø thanh ghi ñeäm nhaän. Trôû khaùng cao (khoâng duøng).
- Thanh ghi ñieàu khieån - Thanh ghi traïng thaùi
GVHD: Nguyeãn Ñình Phuù SVTH: Nguyeãn Trung Duõng
Tröôøng ÑH SPKT Luaän vaên toát nghieäp a. Thanh ghi ñieàu khieån:
- duøng ñeå ghi: + lôøi ñieàu khieån cheá ñoä.
D7 D6 D5 D4 D3 D2 D1 D0
Toác ñoä truyeàn
Bit chaün leû X0 khoâng kieåm tra chaún leû
01 kieåm tra leû 10 kieåm tra chaün 00 ñoàng boä 01 khoâng ñoàng boä x1 10 khoâng ñoàng boä x 16 11 khoâng ñoàng boä x64
Ñoä daøi kyù töï 00 5 bit 01 6bit 10 7bit 11 8 bit
Hình 5.4a Ñieàu khieån khung. 00 khoâng giaù trò 01 moät bit döøng 10 1.5 bit döøng 11 2 bit döøng
GVHD: Nguyeãn Ñình Phuù SVTH: Nguyeãn Trung Duõng
D7 D6 D5 D4 D3 D2
EH IR RTS ER SBRK RxEN DTR TxEN
Cho pheùp phaùt 1= cho pheùp
Soá lieäu ñaàu cuoái Saün saøng, DTR\ =1
Cho pheùp thu 1= cho pheùp RxRDy
Göûi tín hieäu caét 1= ñöa TxD = 0
Xoaù côø baùo loãi 1= xoaù côø
Yeâu caàu phaùt 1= ñöa tín hieäu
Ngaét meàm 1= xoaù caùc thanh ghi
Cheá ñoä baát ñoàng boä 1= tìm kyù töï ñoàng boä
HÌNH 5.4b
Tröôøng ÑH SPKT Luaän vaên toát nghieäp b. Lôøi leänh:
GVHD: Nguyeãn Ñình Phuù SVTH: Nguyeãn Trung Duõng
Tröôøng ÑH SPKT Luaän vaên toát nghieäp c. thanh ghi traïng thaùi.
D7 D6 D5 D4 D3 D2
D1
D0
Duøng ñeå ñoïc lôøi traïng thaùi:
DSR SYNDET FE OE PE TxEM RxRDy TxRDy
Chæ 8251 saün saøng nhaän 1 chöõ hay leänh ñeå truyeàn
Chæ thanh ghi bieán ñoåi song song - noái tieáp roãng
Chæ modem ñaõ Saün saøng ñeå truyeàn soá lieïäu Chæ saün saøng nhaän soá lieäu ñeå truyeàn cho VXL
Chæ chöõ ñoàng boä ñaõ ñöôïc 8251 nhaän
Bit baùo sai chaún leû Pe= 1 khi coù sai xoùa baèng ER cuûa leänh
Bit chæ loãi traøn Khi VXL chöa ñoïc lôøi tröôùc, lôøi sau ñaõ tôùi thì OE =1 xoaù baèng ER cuûa leänh
Hình 5.4c Bit chæ sai khung (khoâng ñoàng boä) khi soá bit döøng bò sai FE= 1 xoaù baèng ER =1
GVHD: Nguyeãn Ñình Phuù SVTH: Nguyeãn Trung Duõng
Tröôøng ÑH SPKT Luaän vaên toát nghieäp
* Vôùùi lôøi ñieàu khieån cheá ñoä: hình 5.4a - Cheá ñoä ñoàng boä: (trong, ngoaøi hai hay moät kyù töï ñoàng boä SYNC) bôûi noäi dung ghi vaøo D7, D6. - Toác ñoä truyeàn vôùi giaù trò: + D1D0 = 00: Duøng cho cheá ñoä ñoàng boä, toác ñoä nôi thu baèng toác ñoä nôi phaùt, khoâng coù söï thay ñoåi taàn soá xung nhòp. + D1D0=01 : duøng cho cheá ñoä khoâng ñoàng boä, toác ñoä giöõa nôi thu vaø nôi phaùt khoâng ñoåi.
+ D1D0=01: toác ñoä thu = toác ñoä truyeàn X1, töùc toác ñoä thu = toác ñoä truyeàn. +D1D0=10: toác ñoä thu =16x toác ñoä truyeàn. + D1D0=11: toác ñoä thu =64x toác ñoä truyeàn. - Ñoä daøi kyù töï, töùc ñoä daøi moät ñôn vò tin SDU vôùi caùc giaù trò D3d2 = 00 (5bit), 01(6bit), 10(7bit) vaø 11(8bit)
- Kieån tra chaün leû D5D4 =00 (khoâng kieåm tra), 01 (kieåm tra leû), 11 (kieåm tra chaün) - Ñieàu khieån khung, xaùc ñònh soá bit döøng. Vôùi D7D6 = 01 – moät bit döøng D7D6 = 10 – moät bit röôõi döøng D7D6 = 11 – hai bit döøng Vôùi lôøi leänh (hình5.4b) ta coù theå ghi leänh ñeå:
- Ñieàu khieån modem: DTR(D1=1), RTS(D5=1) - Xoaù meàm( baèng chöông trình coù IR (D6=1) ñeå xoaù veà 0 caùc thanh ghi noäi - Xoùa côø baùo loãi ER (D4=1) - Ghi cho pheùp truyeàn TxEN (D0=1) cho pheùp nhaän RxE(D2=1) - Göûi tín hieäu caét ( caùc bit baèng 0-Break) ñeå caét doøng tin lieân tuïc ñang truyeàn. - Tìm kyù töï ñoàng boä EH(D7=1) trong cheá ñoä ñoàng boä Thanh ghi traïng thaùi (hình 5.4c): duøng ñeå ñoïc.
- Saün saøng truyeàn TxRDY (D0=1), saün saøng nhaän RXRDY( D1=1) - Thanh ghi ñeäm soá lieäu roãng TxE (D2=1) - Tuy chæ coù moät ñòa chæ (CS\=0, A1=1) nhöng ta coù theå ghi ñöôïc 2 lôøi ñieàu khieån cheá ñoä vaø lôøi leänh ôû 2 thanh ghi ñieàu khieån khaùc nhau vì coøn coù chung moät flip flop noäi ñieàu khieån laàn löôït vaøo hai thanh ghi treân
GVHD: Nguyeãn Ñình Phuù SVTH: Nguyeãn Trung Duõng
Tröôøng ÑH SPKT Luaän vaên toát nghieäp
III. ÖÙNG DUÏNG 8251A ÑEÅ TRUYEÀN THOÂNG TIN NOÁI TIEÁP:
1. Truyeàn thoâng tin noái tieáp giöõa 2 kit VXL:
TxD RxD DTR\ TxD RxD DTR\ VXL2 8251 8251 VXL1
DSR\ RTS\ CTS\ DSR\ RTS\ CTS\
HÌNH 5.5
a. Khôûi phaùt 8251A:
Muoán 8251 hoaït ñoäng ñuùng cheá ñoä (khoâng ñoàng boä), tgác ñoä (300, 600, 1200, 2400, 4800, 9600bps hoaëc lôùn hôn), soá bit tin (5, 6, 7, 8) coù kieåm tra chaün hoaëc leû vaø xaùc ñinh soá bit döøng (1; 1,5; 2 bit) ta phaûi ghi lôøi ñieàu khieån cheá ñoä vaøo thanh ghi ñieàu khieån cuaû 8251.
Ví duï:
Moät 8251 coù ñiaï chæ goác CS\ vôùi 0FFF0h, caàn trao ñoåi thoâng tin 8 bit, toác ñoä x16 khoâng
coù kieåm tra Parity chaün leû, 2bit stop. Lôøi ñieàu khieån laø: 1 1 0 0 1 1 1 0
GVHD: Nguyeãn Ñình Phuù SVTH: Nguyeãn Trung Duõng
Tröôøng ÑH SPKT Luaän vaên toát nghieäp
Löu ñoà khôûi taïo 8251A
Begin
00h thanh ghi ñieàu khieån
03h AH
AH - 1
Delay
sai AH = 0 ?
Ñuùng
Naïp töø cheá ñoä caøo thanh ghi cheá ñoä
Delay
End
HÌNH 5.5
GVHD: Nguyeãn Ñình Phuù SVTH: Nguyeãn Trung Duõng
Tröôøng ÑH SPKT Luaän vaên toát nghieäp
chöông trình khôûi phaùt:
2h
D0 :
DX, 0FFF2h AL,00h DX,AL CX D0 DX, AL CX,2h D1 DX, AL CX,2h D2 AL, 40h DX, AL CX, 2h D3 AL, 11001110B DX, AL CX, 2h D4
MOV MOV OUT MOV LOOP OUT D1: MOV LOOP OUT MOV LOOP MOV OUT MOV LOOP MOV OUT MOV LOOP END
D2: D3: D4:
GVHD: Nguyeãn Ñình Phuù SVTH: Nguyeãn Trung Duõng
Tröôøng ÑH SPKT Luaän vaên toát nghieäp
2. Truyeàn thoâng tin noái tieáp giöõa kit VXL vaø maùy tính:
Giaûi maõ ñiaï chæ
TxD
RxD
DTR 5
O O O O O O O O O
DSR\ 1 6 9
RTS \
Coång COM cuûa maùy tính Xöû lyù (8259A ngaét hai möùc)
CTS\
A 1 – A 11 D 0 –D 7 Reset CLK A 0 RD \ WR \ INTR INTA \ CS \ GND D 0 – D7 Rest CLK C/D\ RD \ WR\ TxD RxRDy
VXL 8251
HÌNH 5.6