You are on page 1of 19

TRNG I HC LC HNG KHOA IN IN T

Bi Ging Truyn Thng Ni Tip


Cu Trc Cng Com Chun RS232 Truyn Thng Ni Tip Trn VB Truyn Thng Ni Tip Trn Vi iu Khin

Ks. L Tin Lc

Truyn Thng Ni Tip T PC n VK


1. Cu Trc Cng COM 2. Xc Lp Cc Thng S Cho Cng Truyn Thng Ni Tip Trn Visual Basic 6.0 3. Thit K Giao Din V Vit Code Serial Trn Visual Basic 6.0 4. Mch Chuyn Mc (IC Max232) 5. Truyn Nhn Ni Tip Trong 8051 6. Thit K Mch VK 8051 V Vit Code

Cu Trc Cng COM


Cng ni tip trn my tnh thng c gi l cng COM c cc u im sau: - Hiu in th gia 2 mc c th ln n 50V (mc 1 t: -3V -> -25V v mc 0 t: +3V -> 25V) nn dy cable c th truyn i xa hn, t b nhiu hn. - S lng dy cn t hn so vi truyn song song. - Mt ng dn dng truyn (TXD) cn mt ng dng nhn (RXD) d liu ring bit. - C th truyn khng dy. (dng tia hng ngoi) - Ghp ni d dng vi VK hay PLC.

S lc v chun RS232
- Tn hiu truyn ni tip theo dng xung chun RS232 ca EIA (Electronics Industry Associations) ch cho php s dng ng truyn ngn , vi tc bit thp (baudrate: 19.600 c khong cch cc i 20m) - Cc chun truyn thng ni tip ra i sau nh RS-422, RS-449 v RS-485 cho php truyn trn ng cp rt di vi tc bit cao hn. - Khun dng tn hiu truyn gia 2 dy TXD v GND nh sau:
-10V Mark Mc1
mc0 D0 D1 D2 D3 D4 D5 D6 D7 P Stop

+10V Space

- Cc thit b ghp ni ni tip chia lm 2 loi DTE (Data Terminal Equipment) v DCE (Data Communication Equipment)

Cng Com c 2 dng u ni c D-25 v D-9.


D-25 2 3 4 5 6 7 8 20 22 D-9 3 2 7 8 6 5 1 4 9 Tn Tn hiu TD, TXD, truyn d liu RD, RXD, nhn d liu RTS, Request to send CTS, Clear to send DSR, Data set ready SG, Signal grourd CD, Carrier detect, pht gic sng mang DTR, Data Teminal Ready RI, Ring Indicator Chiu Out In Out In in Mass In Out In Pht hin c tn hiu trn ng dy DTE sn sng kt ni Modem pht gic tn hiu chung Ngha Xut d liu ni tip Nhn d liu ni tip DTE sn sng trao i d liu Modem sn sng trao i d liu Modem sn sng kt ni

M hnh kt ni Thit b thu v pht trong truyn nhn ni tip:

DTE: thit b pht hoc nhn d liu (VK, PLC, Computer) DCE: thit b trung gian nh modem kt ni, chn TXD ca DCE ng vai tr nhn tn hiu cn RXD pht tn hiu

DTE1 TXD RXD


Tn Com1

DTE2 TXD RXD


a ch gc 3F8 Ngt 4

DTE TXD RXD


Vector 0000:0400

DCE TXD RXD

Com2
Com3 Com4

2F8
3E8 2E8

3
2 1

0000:0402
0000:0404 0000:0406

Xc Lp Cc Thng S Cho Cng Truyn Thng Ni Tip Trn Visual Basic 6.0
Visual Basic 6.0 h tr module phc v cho truyn thng ni tip l MSCOMM32.OCX a cng c truyn thng ni tip vo Form ta lm theo cc bc sau: Trong ca s VB chn Project Components sau chn Microsoft comm control 6.0 -> OK. (hay dng phm tt Ctr+T) Sau nhp chn biu tng Mscomm v a vo form Thuc tnh Commport c gi tr t 1->16, gi tr mc nh l 1 khi khi ng. Thuc tnh DTR Enabled = True (DTE sn sng kt ni) mc 1 khi m cng, cn ngc li DTR mc 0. * Thuc tnh Handshaking (giao thc bt tay) 0: khng bt tay 1: XON/XOFF 2: bt tay theo RTS/CTS 3: RTS/XON/XOFF` * Thuc tnh Inbuffersize t v tr li kch thc theo Byte b m thu, mc nh l 1024

Thuc tnh Index: Xc nh phn t th index ca mng (ch dng khi thit lp cc control theo kiu mng) Thuc tnh InputLen: Xc nh s k t s c t b m thu, nu =0 s c ton b b m. Thuc tnh InputMode: cho bit loi d liu l vn bn hay nh phn. Thuc tnh NullDiscard: cho php loi b k t rng.loai bo khoang trong khi truyen

Thuc tnh Outbuffersize t v tr li kch thc theo Byte b m truyn, mc nh l 512. Thuc tnh ParityReplace: thit lp k t s thay th khi khi bit kim tra chn l pht hin ra li. Thuc tnh Rthreshold: t s byte ti thiu ca b m thu bo s kin, bng 1 s gi s kin oncomm khi nhn c 1 k t, bng 0 s khng gi. Thuc tnh RTSEnabled: = True th RTS mc 1 khi m cng, v mc 0 khi ng cng. Nu False RTS mc 0.

Thuc tnh Sthreshold: t s byte c trong b m truyn bo s kin, bng 1 s gi s kin oncomm khi b m truyn rng, bng 0 s khng gi. Thuc tnh Settings: Thit lp tc baud, bit chn l, s bit truyn v bit stop. Cc gi tr cho php: Baud rate: 110, 300, 600, 1200, 2400, 9600, 14400, 19200,28800, 38400, 56000, 128000, 256000. Parity bit: E(even), M(mark), N(none), O(odd) Data bit: 4, 5, 6, 7, 8 Stop bit: 1, 1.5, 2 Gi tr mc nh khi khng thit lp l: 9600,n,8,1

Thit K Giao Din V Vit Code Serial Trn Visual Basic 6.0
Thit k giao din nh hnh sau:

u tin ta vit code cho s kin Form Load Private Sub Form_Load() 'Cac khai bao khi form hien len MSComm1.CommPort = 1 'Chon cong Com1 MSComm1.Settings = "9600,N,8,1" 'Toc do truyen 9600, no parity, du lieu 8bit 1bit stop MSComm1.InputLen = 0 'Khong gioi han ky tu truyen MSComm1.RThreshold = 1 'Cho phep oncomm khi nhn 1 du lieu MSComm1.PortOpen = True 'Lenh mo cong com End Sub ket thuc su kien Private Sub Command1_Click() 'Nut send tren chuong trinh MSComm1.Output = Text2.Text End Sub

By gi ta nhp double vo nut Stop v vit code sau: Private Sub Command2_Click() 'Khi nut Stop duoc nhan thi xoa tat ca cac text Text1.Text = Xa cc text box Text2.Text = "" End Sub

Private Sub MSComm1_OnComm() 'Co tin hieu vao cong com If (MSComm1.CommEvent = comEvReceive) Then Text1.Text = Text1.Text & MSComm1.Input 'Xuat tin hieu nhan duoc ra text1 End If End Sub

* Phn trn l chng trnh xut nhp d liu n gin

qua cng Com khng c bt tay bng phn cng cng nh phn mm. Ta c th kim tra chng trnh bng cch ni 2 chn TXD v RXD cng com li ri chy th chng trnh. Sau c th b sung thm th tc bt tay bng phn mm.

Mch Chuyn Mc (IC Max232)


Do mc in p khc nhau nn khi ghp cng Com my tnh vi VK cn phi c mch chuyn mc TTL -> 232 v ngc li. Ta thng dng vi mch Max232 v ch cn cp ngun 5V, ngun + -10V do mch dao ng 16KHz bn trong cung cp.

Truyn Nhn Ni Tip Trong 8051


Trong Vi iu khin c chc nng ngt truyn thng ni tip truyn v nhn d liu. Chn TXD(P3.1 pht) vo chn RXD(P3.0 thu). Thanh ghi iu khin ngt ni tip l SCON v thanh ghi m d liu l SBUF. a ch ngt ni tip l 023H, bit cho php ngt l ES bit 4 trong thanh ghi IE. Thanh ghi SCON co 8 bit:
Bit K hiu SM0 a Ch 9FH Ngha SCON.7 Quy nh ch hot ng

SCON.6
SCON.5

SM1
SM2

9EH
9DH

Quy nh ch hot ng
Kch hot giao tip nhiu VK

SCON.4
SCON.3 SCON.2 SCON.1

REN
TB8 RB8 TI

9CH
9BH 9AH 99H

Cho php nhn d liu


Bit th 9(bit kim tra) truyn i Bit th 9 nhn c Mc 1 khi truyn xong 1 Byte

SCON.0

RI

98H

Mc 1 khi nhn xong 1 Byte

Cc Mode truyn nhn ni tip ca 8051


SM0 0 SM1 0 MODE 0 M T Shift Regster BAUDRATE Tn s thch anh/12

0
1 1

1
0 1

1
2 3

8-bit UART
9-bit UART 9-bit UART

Quy nh bi Timer1
Tn s thch anh/12 or 64 Quy nh bi Timer1

Trong mode 1, baudrate c thit lp bi timer 1 c cng thc tnh nh sau: Baudrate = (timer 1 overflow)/n vi n=32 nu SMOD=0 Smod l bit7 trong thanh ghi PCON. vi n=16 nu SMOD=1

Nu s dng thch anh 12MHz th s tn ti sai s (26.04 ->26), sai s ny s tch ly v gy nn nhng sai lch d liu. Do mun truyn nhn vi chnh xc cao hn nn s dng thch anh 11.0592MHz
Baudrate 9600 2400 1200 19200 9600 2400 1200 Thch anh (MHz) 12.000 12.000 12.000 11.0592 11.0592 11.0592 11.0592 SMOD 1 0 0 1 0 0 0 TH1 -7 -13 -26 -3 -3 -12 -24 Baudrate tht 8923 2404 1202 19200 9600 2400 1200 Sai s 7% 0.16% 0.16% 0 0 0 0

Chng trnh mu truyn nhn ni tip trong 8051: Chng trnh ny khi nhn c mt k t trong ngt ni tip th trong main s pht li k t A
#include <REGX51.H> DATAS EQU 30H ORG 0000H LJMP MAIN ORG 0023H ;VECTOR NGAT PORT NOI TIEP LJMP NGAT_SERIAL ;NHAY DEN PHUC VU NGAT ORG 0030H MAIN: MOV PCON,#00000000B ;BIT 7 SMOD = 1 TANG TOC DO MOV SCON,#50H ;01010010B TI BIT1=1 SAN SANG PHAT MOV TMOD,#00100000B ;timer1 che o 8bit t ong nap lai MOV TH1,#-3 MOV IE,#10010000B ;bit4(ES) =1 cho phep ngat port noi tiep bit7=1cho phep ngat toan cuc SETB TR1 ;bt cho timer1 run SETB 00H ;bit nho nhn xong thi pht li

LOOP: JB 00H,$ ;nhy ti ch ch nhn c k t th pht A li MOV A,#"A" LCALL PHAT SETB 00H SJMP LOOP PHAT: MOV IE,#0 MOV SBUF,A ;dua gia tri thanh ghi A vao thanh ghi SBUF JNB TI,$ ;co TI duoc set ngay sau khi phat xong 1 ky tu CLR TI MOV IE,#10010000B RET NGAT_SERIAL: ;Trnh phuc vu ngat port noi tiep JNB RI,TRANF ;co RI duoc set ngay sau khi nhan xong 1 ky tu CPL P2.4 CLR 00H MOV A,SBUF ;a d lieu nhan c vao thanh ghi A CLR RI ;xoa c RETI ;ket thuc ngat TRANF: CLR TI RETI END

You might also like