Xem mẫu

  1. 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
  2. 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
  3. 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
  4. 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
  5. 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
  6. 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
  7. 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
  8. 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