Professional Documents
Culture Documents
GII THIU TI
PHN I
C S L THUYT
Chng I: CH TRUYN TI
- Phng php truyn bit song song c dng ph bin trong cc bus ni
my tnh, bus gi liu, bus a ch, bus iu khin, tc truyn ti ph thuc vo
s cc knh dn hay chnh l rng ca bus song song.
1: Truyn ti di c s :
sau khi m ho bit. Mi thnh vin trong mng phi phn chia thi gian s
dng ng truyn v trong mt nhp ch c th truyn i mt bt .
2: Truyn ti di mang :
3: Truyn ti di rng :
Trunk-line/Drop-line
Daisy-chain
MASTER
1 2 1 2
8 3 8 3
7 4 7 4
6 5 6 5
R Repeater
Hnh 5 : Cu trc cy
- tm hiu kin trc ca giao thc trc ht ta cn hiu khi nim dch
v truyn thng l g.
- Vy dch v truyn thng l g: L mt dch v cha cc qui tt, qui c
m cc thnh vin tham gia ni mng cn c s dng, cc dch v c s
ti: NGHIN CU V THIT K MNG RS 485 Trang:11
thng gp phn rt quan trng trong vic s dng dch v dn n s tin li cho
ngi s dng.
X. Giao thc:
- Trong thc tin cuc sng s giao tip gia ngi vi ngi cng t ra
mt yu cu lm sao hiu c ngn ng ca nhau, nhn bit mc ch yu
cu cng nh hnh ng trong giao tip, m rng hn vn y ta ni n s
giao tip ca my mc thit b cng cn c mt ngn ng chung. Vy trong k
thut truyn thng cng nghip cng nh mt mng my tnh rng ln c s
giao tip nh vy th yu cu t ra l bn cung cp dch v cng nh bn s dng
dch v phi tun th nhng qui tc, th tc nht nh trong phn giao tip gia
cc phn t vi nhau. Vic tun th nhng qui tc qui c c gi l giao
thc. Vy giao thc chnh l c s cho vic s dng cc dch v truyn thng.
Mt qui nh chun giao thc bao gm cc thnh phn sau:
+ C php (Syntax): C php l mt tiu chun qui nh v cu trc ca
mt dng d liu c s dng khi trao i cho nhau trong cha ng y
cc qui nh to thnh mt gi d liu hp l, chng hn nh mt gi d liu
phi c phn thng tin hu ch gi l d liu, thng tin im n c gi l a
ch, thng tin iu khin, thng tin kim li .v.v
+ Ng ngha (Semantic): Qui nh ngha tng phn ca mt gi d liu,
nh phng php nh a ch, phng php bo ton d liu, th tc iu khin
thng tin, x l li.
+ nh thi (Timing): Qui nh v trnh t th tc giao tip, ch truyn
ng b hay bt ng b, tc truyn .v.v
+ Vic thc hin mt dch v truyn thng trn c s ca mt giao thc
tng ng gi l x l giao thc bn gi, v gii m x l giao thc bn nhn.
Vic thc hin tng giao thc tng ng cng ging nh vic x dng cc dch
ti: NGHIN CU V THIT K MNG RS 485 Trang:13
v truyn thng theo cc cp cng c s phn chia giao thc theo tng cp v s
h tr ca cc giao thc cho nhau.
+ Giao thc cp cao gn gi vi ngui s dng v thng c thc hin
bng phn mm, mt s v d giao thc cp cao l FTP (File Transfer Protocol)
dng trong trao i file t xa, HTTP (Hypertext Transfer Protocol) dng trao
i cc trang HTML trong cc ng dng Web, MMS (Manufactoring Message
Specification) dng trong t ng ha cng nghip.
+ Giao thc cp thp gn gi vi thit b phn cng thng c thc hin
trc tip trn cc mch in t, mt s v d v giao thc cp thp nh sau:
TCP/IP (Transmission Control Protocol/Internet Protocol) c dng ph bin
trong Internet, HART (Highway Adressable Remote Transducer) dng trong iu
khin qu trnh, HDLC (High Level Data-link Control) lm c s cho nhiu giao
thc khc v UART dng trong a s cc giao din vt l ca cc h thng bus.
Hai giao thc ni sau HDLC v UART c vai tr quan trng trong truyn thng
cng nghip do c gii thiu s lc y:
+ Giao thc HDLC:
HDLC cho php ch truyn ni tip ng b hoc khng ng b. Mt bc
in hay cn gi l mt khung (Frame) c cu trc sau:
1 2 3 4 5 6 7 8
U-Format 1 1 M P/F M
Start 0 1 2 3 4 5 6 7 p Stop
0 LSB MSB 1
- Bt khi u (Start bit) bao gi cng l 0 v bit Stop (Stop bit) bao gi
cng l 1. Cc bit trong mt k t bao gi cng c truyn th t t bit thp
LSB ti bit cao MSB. Gi tr ca bit chn l P ph thuc vo cch chn:
XI. M hnh lp :
Lp N+1 D lieu
D lieu
Lp N N D lieu D lieu
N
A B
Application Application
Presentation Presentation
Session Session
Transport Transport
Nerwort Nerwort
Data link Data link
Physical Physical
- ngha ca cc lp nh bn sau y:
ti: NGHIN CU V THIT K MNG RS 485 Trang:19
dung Read/Write
nh a ch cua mang
Lp mang Truyen thong
3 khac routing, ieu khien
(Network layer) gia hai mang
luon.
Lp lien ket d lieu Cac ky thuat truy cap cac Kiem tra CRC,
2
(Data link layer) bien gii khoi d lieu, taken passing
ti: NGHIN CU V THIT K MNG RS 485 Trang:20
Lp vt l (Physical layer):
+ Phng php m ha
+ Ch truyn ti
- thc hin chc nng bo ton d liu, thng tin nhn c t lp pha
trn c ng gi c chiu di hp l (frame). Cc khung d liu ny cha cc
thng tin b sung phc v mc ch kim li, kim sot lu thng v ng b ha.
Lp lin kt d liu bn pha nhn thng tin s da vo cc thng tin ny xc
nh tnh chnh xc ca d liu, sp xp cc khung li theo ng trnh t v khi
phc li thng tin chuyn tip ln lp trn n.
- Mt h thng truyn thng din rng nh mng Internet hay mng vin
thng, l s lin kt gia cc mng hon ton c lp, mi mng u c mt
khng gian a l ring v cch xc lp a ch khc nhau, s dng cng ngh
truyn thng khc nhau. Vy mt gi d liu i t i tc ny n i tc khc ca
hai mng khc nhau c th qua nhiu ng khc nhau, thi gian khc nhau,
qung ng vn chuyn v cht lng ng truyn cng khc nhau th lp
mng ny c trch nhim tm ng i ti u nht, gii phng s ph thuc ca
cc lp bn trn vo phng thc chuyn giao d liu v cng ngh chuyn mch
dng kt ni cc h thng khc nhau.
ti: NGHIN CU V THIT K MNG RS 485 Trang:22
Mt qu trnh truyn thng gia hai nt mng, chng hn nh vic trao i chng
trnh th c tin hnh qua nhiu giai on. Cng ging nh s giao tip gia hai
ngi th cng c s xp t trc. Vy gia hai i tc truyn thng cng cn c
s h tr t chc lin kt. Lp ny c chc nng kim sot mi lin kt truyn
thng gia cc chng trnh ng dng, bao gm cc vic to lp, qun l v kt
thc cc ng ni gia cc ng dng i tc. V mi lin kt gia cc chng
trnh ng dng mang tnh cht logic, thng qua mt mi lin kt vt l gia hai
ti: NGHIN CU V THIT K MNG RS 485 Trang:23
trm, gia hai nt mng c th tn ti song song nhiu mi lin kt logic. Thng
thng kim sot ni thuc chc nng h iu hnh. thc hin cc ng ni
gia hai ng dng i tc, h iu hnh c th to cc qu trnh tnh ton song
song. Nh vy, nhim v ng b ha cc qu trnh tnh ton ny i vi vic s
dng chung mt giao din mng cng thuc chc nng ca lp kim sot ni.
Trong cc h thng mng c kiu khc nhau, thng s dng cc ngn ng khc
nhau, nh s dng h iu hnh khc nhau do cch biu din d liu ca chng
cng rt khc nhau, hoc cch sp xp cc baye khc nhau trong mt kiu baye,
hoc s dng bn m khc nhau. Lp gii thiu s m nhim chc nng ny dch
nhng ngn ng khc nhau ny sang mt ngn ng chung c c php tru tng.
Vy chc nng chnh ca lp gii thiu l chuyn i cc dng d liu khc nhau
v c php thnh mt dng chun, nhm to iu kin cho cc i tc tham gia
truyn thng c th hiu c nhau mc d chng c th s dng ngn ng hon
ton khc nhau. Ni mt cch khc lp gii thiu gii phng s ph thuc ca lp
ng dng vo cc phng php biu din d liu khc nhau.
hay iu khin gim st, nhiu h thng cung cp dch v ny thng qua mt cc
khi hm i vi cc thit b trng thng minh , cc khi hm ny khng n
gin thun mang tnh cht dch v truyn thng, m cn tch hp c chc nng x
l thng tin thm ch c iu khin ti ch. y cng chnh l xu hng mi trong
vic chun ha lp ng dng cho cc h thng bus trng, hng ti kin trc
iu khin phn tn trit .
- i vi cu trc bus v mt k thut phn chia thi gian cho knh truyn
l mt yu cu cao, v trong mt khong thi gian no nht nh ch c mt
trm duy nht trn mng c php tham gia truy cp bus khng th c hai trm
cng tham gia mt lc, i vi tt c cc trm cn li phi ch cho ti khi n lt
mnh, v vy i hi phi c s phn chia ng truyn mt cch hp l trnh
lng ph thi gian cng nh kh nng p ng v mt x l iu khin ca c h
thng. Trong mt mng c cu trc bus cc trm i hi phi c s phn chia nhau
thi gian truy cp bus trnh hin tng xung t tn hiu xy ra trn ng dn,
dn n sai lch thng tin, ti mi thi im trn bus ch c php duy nht mt
dng d liu gi i tng ng vi iu ny cng c ngha l c mt trm c
php gi thng tin, cn s lng cc trm mun nhn tin th khng hn ch, y l
mt trong nhng vn nh hng n nng sut ca h thng.
ti: NGHIN CU V THIT K MNG RS 485 Trang:25
- i vi nhng cu trc dng khc nh dng mch vng, mch sao khng
phi khng c s xung t m vn xung t ny cng c th xy ra tuy khng
nh cu trc bus, v d mt cu trc vng mi trm khng phi bao gi cng
khng ch c dng d liu i qua n hon ton, hay cu trc sao phn t x l
trung tm khng ng vai tr ch ng m n c nhim v nh mt b chia tn
hiu th vn xung t vn c th xy ra, do nhng cu trc ny cng dng
phng php phn chia quyn truy cp nhng c phn n gin hn so vi mt
cu trc dng bus.
+ Phng php ngu nhin: trong phng php ny trnh t truy cp bus
khng c s qui nh trc m hon ton xy ra mt cch t pht theo tnh cht
nhu cu ring. Khi xy ra tnh hung yu cu ca tng trm, mi thnh vin t
gim st ng truyn nu thy ng truyn rnh lp tc chim ly truy cp.
Trong phng php ny c kh nng xy ra xung t, v vy loi tr tc hi
xung t c th s dng nhng phng php nhn bit xung t nh CSMA/CD
hoc CSMA/CA. Nguyn tt hot ng ca cc phng php ny l khi nhn bit
c xung t xy ra th t nht c mt trm ngng gi tn hiu. Ta i vo tm hiu
cc phng php c th nh sau.
Master
Receive -Request
Send-Request
Send-Data
- Di y minh ha cho phng php phn chia theo thi gian TDMA
cho mt chu k bus c v hnh 10 :
php kim sot phn tn. Do thi gian c quyn gi Token hn ch dn n vic
tnh ton c thi gian phn ng cng nh chu k bus ti a. Cc h thng s
dng phng php truy nhp ny cng c kh nng thi gian thc.
Tram 1
Driver No. 1 1 1 32
Receiver 1 10 10 32
>+25V
Cable/signal 1 2 2 2
R2 R1
4 120 2
DI 120 RE
3 6 7 1
DE A B RO
1 7 6 3
2 RO B A DE 4
RE DI
MAX485 MAX485
6
7
MAX485 MAX485
A
B
RO
RO
DE
RE
DE
RE
DI
DI
4
3
1
2
4
3
1
2
MAX489 MAX489
10
12
11
10
12
11
9
U4 U4
A
B
Z
Z
Y
MAX489
MAX489
RO
RO
DE
RE
DE
RE
DI
DI
4
2 12 R1
RO A
3 11 DATA IN
RE B 120
4 9 R2
DE Y
5 10 DATA OUT
DI Z 120
MAX491
9,6 Kbps,19,2 Kbps, 45,45 Kbps, 93,75 Kbps, 187,5 Kbps, 500 Kbps, 1,5 Mbps
Kt thc cp:
- Trc khi kch hot Bus Terminal ny th phi cung cp ngun cho cc
thnh phn mng ny. Vi cc bus Terminal v cc Bus Connecter th ngun in
ny c cung cp bi DTE c kt ni, tri li RS485 Repeater, ILM v
Terminal lun c ngun in ring cho mnh.
+ n cng:
- gii quyt vn trn, ngi ta pht trc tip mt bit Start ngay trc
mt k t v mt hoc hai Stop bit ngay sau mi k t c truyn i.
XI: M t cc chn :
XIII: Tc baud:
PHN II
THIT K V THI CNG
I: Mch ngun :
5V
7805
17 35 V 0,1
VCC
3
2 Q1A
R
1
R3
LED
Chan
Ten Chc nang
IP/SO MAX
RO Ngo ra bo thu :
1 3 Neu A > B la200mV, RO la cao.
Neu A < B la 200mV , RO la thap.
/RE Cho phep ngo ra bo thu :
2 4 RO c cho pheo khi /RE la thap.
RO la tr khang cao khi /RE la cao.
DE Cho phep ngo ra lai :
Cac ngo ra lai A va B c cho phep khi DE cao.
Cac ngo ra lai A va B la tr khang cao khi DE thap.
3 5 Neu nhng ngo ra lai c cho phep th tng ngo co chc
nang nh lacac ng lai.
Khi chung la tr khang cao, chc nang cua chung nh la
cac ng thu cua bo thu neu /RE la thap.
DI Ngo vao bo lai :
4 6 DI thap th A thap va B cao
DI cao th A cao va B thap.
Truyen :
/RE DE DI B A
X 1 1 0 1
X 1 0 1 0
0 0 X High Z High Z
1 0 X High Z High Z
Nhan:
/RE DE A-B RO
0 0 200mV 1
0 0 200mV 0
0 0 Ngo vao h 1
mach
1 0 X High Z
Phng php truy cp cho h thng mng ca ti ny. Theo hng php
Master/ Slave th: trm ch (Master) c trch nhim ch ng trong vic phn chia
ti: NGHIN CU V THIT K MNG RS 485 Trang:60
quyn truy cp bus cho h thng, c bit trnh s xung t khi c hai trm t
cng pht d liu ln ng truyn mt lc y l mt im yu c th lm mt d
liu c gi, hay c th lm sai lch ni dung .
+ Trm ch Master c trch nhim phn chia quyn truy cp bus cho trm
t.
MASTER
SALAVE SALAVE
. . .
Rs485
V: Trm ch (Master ) :
- Dng vi s l ATMega32 :
VCC
U2
10
VCC 40
VCC
C1 PA0 39
12 PA1 28
R4 XTAL2 PA2 37
PA3
R Y1 PA4
36
35
T N
PA5 34
13 PA6 33
.
XTAL1 PA7
C 9
RESE
C2 16 Q5 Q5 Q5 Q5 Q5
C 17 PD2 8
18 PD3 PB7 7
19 PD4 PB6 6
20 PD5 PB5 5
VCC VCC 21 PD6 PB4 4
VCC PD7 PB3 3
32 PB2 2
30 AREF PB1
AVCC
8
6 2 1 29
VCC
A RE 3 PB0 PC7 28
DE PC6
R
1 32
PD0(RXD) PC5
27
26
3 4 8
7 PC4 25
GND
B 4 15 PC3 24
D PD1(TXD) PC2 23
GND
GND
PC1
PC0
22 2 5 9
5
11
31
1 6 r s
MAX485 ATMega32
Enter
0 7
Bt u
Khi ng Port ni
tip.
t tc baud.
Qut Led.
Qut phm
4
Byte = 4
Gi khung d liu
gm 4 byte
Rx Counter < 4
Kim tra b m
nhn
Rx Counter = 4
Nhn khung d
liu gm 4 byte
X l khung d
liu
Kt thc
- Nu l lnh gi :
VII: Trm t 1( a ch 4 )
U2
10
VCC 8
C1 PB7 7
VCC
12 PB6 6
R4 XTAL2 PB5 5
PB4 4
R Y1 PB3 3
PB2 2
13 PB1
XTAL1 40
PA0 39
C 9 PA1 28
RESE PA2 37
C2 16 PA3 36
C 17 PD2 PA4 35
18 PD3 PA5 34
19 PD4 PA6 33
20 PD5 PA7
VCC 21 PD6
PD7 VCC
32
AREF
8
30
6 2 1 AVCC 29
A RE 3 PB0 PC7 28
VCC
DE 1 32 PC6 27
R PD0(RXD) PC5 26
7 PC4 25
B PC3
GND
4 15 24
D PD1(TXD) PC2 23
PC1
GND
GND
22
PC0
5
11
31
MAX485 ATMega32
ti: NGHIN CU V THIT K MNG RS 485 Trang:66
Bt u
Khi ng Port ni
tip.
Sai
Kim tra a ch
ng
Kim tra lnh
(2 lnh RS)
Gi khung d liu
Kt thc
VCC
U2
10
VCC
C1
VCC
40
12 PA0 39
R4 XTAL2 PA1 28
PA2 37
R Y1 PA3 36
PA4 35
13 PA5 34
XTAL1 PA6 33
PA7
C 9 8
RESE PB7 7
C2 16 PB6 6
C 17 PD2 PB5 5
18 PD3 PB4 4
19 PD4 PB3 3
20 PD5 PB2 2 VCC
21 PD6 PB1
VCC VCC
PD7 32
AREF 30
AVCC
R1 R2
A
8
29 R R
6 2 1 PC7 28
A RE PB0 PC6 27
VCC
3 Q3 Q2
R5 DE 1 32 PC5 26
R R PD0(RXD) PC4 25
7
B
PC3 24
PC2 23
B D2 D1
GND
4 15
D PD1(TXD) PC1 22 . DC .
PC0
GND
GND
DIODE DIODE
A B
5
Q2
31
Q1
11
R R
MAX485 ATMega32
Bt u
Khi ng Port ni
tip.
Sai
Kim tra a ch
ng
Kim tra lnh S (Lnh gi)
(2 lnh RS)
Nhn R
Nhn byte d liu
v byte ng c
Gi khung d liu
Kt thc
char rx_buffer[RX_BUFFER_SIZE];
#if RX_BUFFER_SIZE<256
unsigned char rx_wr_index,rx_rd_index,rx_counter;
#else
unsigned int rx_wr_index,rx_rd_index,rx_counter;
#endif
// This flag is set on USART Receiver buffer overflow
bit rx_buffer_overflow;
// USART Receiver interrupt service routine
interrupt [USART_RXC] void usart_rx_isr(void)
{
char status,data;
status=UCSRA;
data=UDR;
if ((status & (FRAMING_ERROR | PARITY_ERROR | DATA_OVERRUN))==0)
{
rx_buffer[rx_wr_index]=data;
if (++rx_wr_index == RX_BUFFER_SIZE) rx_wr_index=0;
if (++rx_counter == RX_BUFFER_SIZE)
{
rx_counter=0;
rx_buffer_overflow=1;
};
};
}
#ifndef _DEBUG_TERMINAL_IO_
// Get a character from the USART Receiver buffer
#define _ALTERNATE_GETCHAR_
#pragma used+
char getchar(void)
{
char data;
while (rx_counter==0);
data=rx_buffer[rx_rd_index];
if (++rx_rd_index == RX_BUFFER_SIZE) rx_rd_index=0;
#asm("cli")
--rx_counter;
#asm("sei")
return data;
}
#pragma used-
ti: NGHIN CU V THIT K MNG RS 485 Trang:72
#endif
// USART Transmitter buffer
#define TX_BUFFER_SIZE 8
char tx_buffer[TX_BUFFER_SIZE];
#if TX_BUFFER_SIZE<256
unsigned char tx_wr_index,tx_rd_index,tx_counter;
#else
unsigned int tx_wr_index,tx_rd_index,tx_counter;
#endif
// USART Transmitter interrupt service routine
interrupt [USART_TXC] void usart_tx_isr(void)
{
if (tx_counter)
{
--tx_counter;
UDR=tx_buffer[tx_rd_index];
if (++tx_rd_index == TX_BUFFER_SIZE) tx_rd_index=0;
};
}
#ifndef _DEBUG_TERMINAL_IO_
// Write a character to the USART Transmitter buffer
#define _ALTERNATE_PUTCHAR_
#pragma used+
void putchar(char c)
{
while (tx_counter == TX_BUFFER_SIZE);
#asm("cli")
if (tx_counter || ((UCSRA & DATA_REGISTER_EMPTY)==0))
{
tx_buffer[tx_wr_index]=c;
if (++tx_wr_index == TX_BUFFER_SIZE) tx_wr_index=0;
++tx_counter;
}
else
UDR=c;
#asm("sei")
}
#pragma used-
#endif
// Standard Input/Output functions
#include <stdio.h>
// Declare your global variables here
ti: NGHIN CU V THIT K MNG RS 485 Trang:73
UBRRL=0x19;
// Analog Comparator initialization
// Analog Comparator: Off
// Analog Comparator Input Capture by Timer/Counter 1: Off
ACSR=0x80;
SFIOR=0x00;
// Global enable interrupts
#asm("sei")
rx_counter=0;
rx_buffer[1]=0;
rx_buffer[2]=0;
rx_buffer[3]=0;
rx_buffer[4]=0;
rx_buffer[5]=0;
rx_buffer[6]=0;
rx_buffer[7]=0;
chuso[0]=32;
chuso[1]=32;
chuso[2]=32;
j=0;
k=0;
z=0;
while (1)
{
// Place your code here
delay_ms(10);
UCSRB=0x00;
if (truyen==1)
{
for ( i=0; i<=3; i++) //quet phim
{
x=1;
p=x<<i;
DDRC=0x0f;
PORTC=p;
delay_ms(5);
n=PINC;
if (n==129)
{
bd=1;
delay_ms(100);
}
ti: NGHIN CU V THIT K MNG RS 485 Trang:76
chuso[j]=126;
ma[j]=0;
delay_ms(100);
j++;
}
if ((z!=1) & (n==18))
{
chuso[j]=18;
ma[j]=1;
delay_ms(100);
j++;
}
if ((z!=1) & (n==20))
{
chuso[j]=61;
ma[j]=2;
delay_ms(100);
j++;
}
if ((z!=1) & (n==24))
{
chuso[j]=109;
ma[j]=3;
delay_ms(100);
j++;
}
if ((z!=1) & (n==40))
{
chuso[j]=75;
ma[j]=4;
delay_ms(100);
j++;
}
if ((z!=1) & (n==36))
{
chuso[j]=103;
ma[j]=5;
delay_ms(100);
ti: NGHIN CU V THIT K MNG RS 485 Trang:77
j++;
}
if ((z!=1) & (n==34))
{
chuso[j]=119;
ma[j]=6;
delay_ms(100);
j++;
}
if ((z!=1) & (n==33))
{
chuso[j]=76;
ma[j]=7 ;
delay_ms(100);
j++;
}
if ((z!=1) & (n==72))
{
chuso[j]=127;
ma[j]=8;
delay_ms(100);
j++;
}
if ((z!=1) & (n==68))
{
chuso[j]=111;
ma[j]=9;
delay_ms(100);
j++;
}
if ((z==1) & (n==130))
{
chuso[j]=103;
ma[j]=4;
delay_ms(100);
j++;
}
if ((z==1) & (n==66))
{
chuso[j]=95;
ma[j]=8;
delay_ms(100);
ti: NGHIN CU V THIT K MNG RS 485 Trang:78
j++;
}
tam1=chuso[0];
tam2=chuso[1];
tam3=chuso[2];
if (j==0); // QUET chu so 0;
{
DDRB=0xFF;
PORTB=0x04;
DDRA=0xff;
PORTA=chuso[0];
delay_ms(5);
}
if (j==1); // Quet chu so 1
{
DDRB=0xFF;
PORTB=0x08;
DDRA=0xff;
PORTA=chuso[1];
delay_ms(5);
}
if (j==2); // quet chu so thu 2
{
DDRB=0xFF;
PORTB=0x20;
DDRA=0xff;
PORTA=chuso[2];
delay_ms(5);
}
if(z==0)// dia chi DC.
{
PORTB=0x01;
DDRB=0xff;
PORTA=121;
delay_ms(5);
PORTB=0x02;
DDRB=0xff;
PORTA=177;
delay_ms(5);
ti: NGHIN CU V THIT K MNG RS 485 Trang:79
}
if (z==1)// chu lenh (L).
{
PORTB=0x01;
DDRB=0xff;
PORTA=178;
delay_ms(1);
}
if(z==2)//du lieu (DL)
{
PORTB=0x01;
DDRB=0xff;
PORTA=121;
delay_ms(5);
PORTB=0x02;
DDRB=0xff;
PORTA=50;
delay_ms(5);
}
if (z==3) //dong co (D)
{
PORTB=0x01;
DDRB=0xff;
PORTA=121;
delay_ms(1);
if ((chuso[0]==18)&&(chuso[1]==126))
bay[3]=1;
if ((chuso[0]==18)&&(chuso[1]==18))
bay[3]=2;
if ((chuso[0]==126)&&(chuso[1]==126))
bay[3]=0;
tr=1;
}
else
{
bay[3]=255;
tr=1;
}
// doan chuong trinh tinh gia tri cua bay.
if ((tam1!=32)&&(tam2==32)&&(tam3==32)&&(bd==1)&&(k<=2))
{
bay[k]=ma[0];
ti: NGHIN CU V THIT K MNG RS 485 Trang:80
chuso[0]=32;
chuso[1]=32;
chuso[2]=32;
j=0;
z++;
k++;
bd=0;
}
if ((tam1!=32)&&(tam2!=32)&&(tam3==32)&&(bd==1)&&(k<=2))
{
bay[k]=((ma[0]*10)+ma[1]);
chuso[0]=32;
chuso[1]=32;
chuso[2]=32;
j=0;
z++;
k++;
bd=0;
}
if ((tam1!=32)&&(tam2!=32)&&(tam3!=32)&&(bd==1)&&(k<=2))
{
bay[k]=(ma[0]*10+ma[1])*10+ma[2];
chuso[0]=32;
chuso[1]=32;
chuso[2]=32;
j=0;
z++;
k++;
bd=0;
}
//Ket thuc doan chuong trinh tinh gia tri cua bay.
// doan chuong trinh truyen
if ((tr==1)&&(bd==1))
{
PORTB=16;
DDRB=0xff;
chuso[0]=32;
chuso[1]=32;
chuso[2]=32;
j=0;
UCSRB=0x48;
putchar(bay[0]);
ti: NGHIN CU V THIT K MNG RS 485 Trang:81
putchar(bay[1]);
putchar(bay[2]);
putchar(bay[3]);
delay_ms(10);
UCSRB=0x00;
delay_ms(10);
UCSRB=0x90;
PORTB=0;
delay_ms(100);
z=0;
k=0;
tr=0;
bd=0;
truyen=0;
nhan=1;
nhan0=getchar();
nhan1=getchar();
nhan2=getchar();
nhan3=getchar();
nt=nhan2;
PORTA=nt;
DDRA=0xFF;
PORTB=2;
rx_counter=0;
rx_buffer[1]=0;
rx_buffer[2]=0;
rx_buffer[3]=0;
rx_buffer[4]=0;
rx_buffer[5]=0;
rx_buffer[6]=0;
rx_buffer[7]=0;
UCSRB=0x00;
if (nhan0==8)
{
PORTB=0x01;
DDRB=0xff;
PORTA=127;
delay_ms(5);
PORTB=0x02;
DDRB=0xff;
PORTA=1;
delay_ms(5);
}
if (nhan0==4)
{
PORTB=0x01;
DDRB=0xff;
PORTA=75;
delay_ms(5);
PORTB=0x02;
DDRB=0xff;
PORTA=1;
delay_ms(5);
}
if (nhan3==1)
{
PORTB=128;
delay_ms(5);
}
if (nhan3==2)
{
PORTB=64;
delay_ms(5);
}
if (nt>=100) // chuong trinh tinh gia tri nhan ve
{
A[0]=nt/100;
B=nt-A[0]*100;
A[1]=B/10;
ti: NGHIN CU V THIT K MNG RS 485 Trang:83
A[2]=B-A[1]*10;
i2=2;
}
if ((nt<100)&&(nt>=10))
{
A[0]=nt/10;
A[1]=nt-A[0]*10;
i2=1;
}
if (nt<10)
{
A[0]=nt;
i2=0;
}
// ket chuong trinh tinh gia tri nhan ve
if (A[i]==0)
{
chuso[j]=126;
j++;
}
if (A[i]==1)
{
chuso[j]=18;
j++;
}
if (A[i]==2)
{
chuso[j]=61;
j++;
}
if (A[i]==3)
{
chuso[j]=109;
j++;
}
if (A[i]==4)
{
ti: NGHIN CU V THIT K MNG RS 485 Trang:84
chuso[j]=75;
j++;
}
if (A[i]==5)
{
chuso[j]=103;
j++;
}
if (A[i]==6)
{
chuso[j]=119;
j++;
}
if (A[i]==7)
{
chuso[j]=76;
j++;
}
if (A[i]==8)
{
chuso[j]=127;
j++;
}
if (A[i]==9)
{
chuso[j]=111;
j++;
}
}
if (j==0); // QUET chu so 0;
{
DDRB=0xFF;
PORTB=0x04;
DDRA=0xff;
PORTA=chuso[0];
delay_ms(5);
}
if (j==1); // Quet chu so 1
{
DDRB=0xFF;
PORTB=0x08;
ti: NGHIN CU V THIT K MNG RS 485 Trang:85
DDRA=0xff;
PORTA=chuso[1];
delay_ms(5);
}
if (j==2); // quet chu so thu 2
{
DDRB=0xFF;
PORTB=0x20;
DDRA=0xff;
PORTA=chuso[2];
delay_ms(5);
}
// quay lai tu dau (thoat)
PORTC=1;
ks=PINC;
if (ks==65)
{
nhan=0;
truyen=1;
chuso[0]=32;
chuso[1]=32;
chuso[2]=32;
}
}// while (nhan==1)
};
}
Tram t 1 :
Project :
Version :
Date : 6/7/2006
Author : F4CG
Company : F4CG
Comments:
#include <mega32.h>
#include <delay.h>
#define RXB8 1
#define TXB8 0
#define UPE 2
#define OVR 3
#define FE 4
#define UDRE 5
#define RXC 7
#if RX_BUFFER_SIZE<256
unsigned char rx_wr_index,rx_rd_index,rx_counter;
#else
unsigned int rx_wr_index,rx_rd_index,rx_counter;
#endif
ti: NGHIN CU V THIT K MNG RS 485 Trang:87
#ifndef _DEBUG_TERMINAL_IO_
// Get a character from the USART Receiver buffer
#define _ALTERNATE_GETCHAR_
#pragma used+
char getchar(void)
{
char data;
while (rx_counter==0);
data=rx_buffer[rx_rd_index];
if (++rx_rd_index == RX_BUFFER_SIZE) rx_rd_index=0;
#asm("cli")
--rx_counter;
#asm("sei")
return data;
}
#pragma used-
#endif
char tx_buffer[TX_BUFFER_SIZE];
#if TX_BUFFER_SIZE<256
unsigned char tx_wr_index,tx_rd_index,tx_counter;
#else
unsigned int tx_wr_index,tx_rd_index,tx_counter;
#endif
#ifndef _DEBUG_TERMINAL_IO_
// Write a character to the USART Transmitter buffer
#define _ALTERNATE_PUTCHAR_
#pragma used+
void putchar(char c)
{
while (tx_counter == TX_BUFFER_SIZE);
#asm("cli")
if (tx_counter || ((UCSRA & DATA_REGISTER_EMPTY)==0))
{
tx_buffer[tx_wr_index]=c;
if (++tx_wr_index == TX_BUFFER_SIZE) tx_wr_index=0;
++tx_counter;
}
else
UDR=c;
#asm("sei")
}
#pragma used-
#endif
// Port B initialization
// Func7=In Func6=In Func5=In Func4=In Func3=In Func2=In Func1=In Func0=In
// State7=T State6=T State5=T State4=T State3=T State2=T State1=T State0=T
PORTB=0xFF;
DDRB=0xFF;
// Port C initialization
// Func7=In Func6=In Func5=In Func4=In Func3=In Func2=In Func1=In Func0=In
// State7=T State6=T State5=T State4=T State3=T State2=T State1=T State0=T
PORTC=0x00;
DDRC=0x00;
// Port D initialization
// Func7=In Func6=In Func5=In Func4=In Func3=In Func2=In Func1=In Func0=In
// State7=T State6=T State5=T State4=T State3=T State2=T State1=T State0=T
PORTD=0x00;
DDRD=0x00;
// Timer/Counter 0 initialization
// Clock source: System Clock
// Clock value: Timer 0 Stopped
// Mode: Normal top=FFh
// OC0 output: Disconnected
TCCR0=0x00;
TCNT0=0x00;
OCR0=0x00;
ti: NGHIN CU V THIT K MNG RS 485 Trang:90
// Timer/Counter 1 initialization
// Clock source: System Clock
// Clock value: Timer 1 Stopped
// Mode: Normal top=FFFFh
// OC1A output: Discon.
// OC1B output: Discon.
// Noise Canceler: Off
// Input Capture on Falling Edge
// Timer 1 Overflow Interrupt: Off
// Input Capture Interrupt: Off
// Compare A Match Interrupt: Off
// Compare B Match Interrupt: Off
TCCR1A=0x00;
TCCR1B=0x00;
TCNT1H=0x00;
TCNT1L=0x00;
ICR1H=0x00;
ICR1L=0x00;
OCR1AH=0x00;
OCR1AL=0x00;
OCR1BH=0x00;
OCR1BL=0x00;
// Timer/Counter 2 initialization
// Clock source: System Clock
// Clock value: Timer 2 Stopped
// Mode: Normal top=FFh
// OC2 output: Disconnected
ASSR=0x00;
TCCR2=0x00;
TCNT2=0x00;
OCR2=0x00;
// USART initialization
// Communication Parameters: 8 Data, 1 Stop, No Parity
// USART Receiver: On
// USART Transmitter: On
// USART Mode: Asynchronous
// USART Baud rate: 9600
UCSRA=0x00;
UCSRB=0xD8;
UCSRC=0x86;
UBRRH=0x00;
UBRRL=0x19;
delay_ms(10);
PORTB=0;
;
UCSRB=0x90;
UCSRB=0x90;
if (rx_counter>=4)
{
nhan1=getchar();
nhan2=getchar();
nhan3=getchar();
nhan4=getchar();
delay_ms(10);
UCSRB=0x00;
rx_counter=0;
rx_buffer[1]=0;
ti: NGHIN CU V THIT K MNG RS 485 Trang:92
rx_buffer[2]=0;
rx_buffer[3]=0;
rx_buffer[4]=0;
if ((nhan1==4)&(nhan2==4))
{
PORTA=nhan3;
DDRA=0xff;
}
if ((nhan1==4)&(nhan2==8))
{
UCSRB=0x00;
delay_ms(50);
PORTB=1;
delay_ms(50);
// dl100
tr1=4;
tr2=255;
tr3=PINA;
tr4=55;
UCSRB=0x48;
putchar(tr1);
putchar(tr2);
putchar(tr3);
putchar(tr4);
delay_ms(10);
PORTB=0;
UCSRB=0x00;
}
};
Tram t 2 :
Project :
Version :
Date : 6/3/2006
Author : F4CG
Company : F4CG
Comments:
#include <mega32.h>
#include <delay.h>
#define RXB8 1
#define TXB8 0
#define UPE 2
#define OVR 3
#define FE 4
#define UDRE 5
#define RXC 7
#if RX_BUFFER_SIZE<256
unsigned char rx_wr_index,rx_rd_index,rx_counter;
#else
unsigned int rx_wr_index,rx_rd_index,rx_counter;
ti: NGHIN CU V THIT K MNG RS 485 Trang:94
#endif
#ifndef _DEBUG_TERMINAL_IO_
// Get a character from the USART Receiver buffer
#define _ALTERNATE_GETCHAR_
#pragma used+
char getchar(void)
{
char data;
while (rx_counter==0);
data=rx_buffer[rx_rd_index];
if (++rx_rd_index == RX_BUFFER_SIZE) rx_rd_index=0;
#asm("cli")
--rx_counter;
#asm("sei")
return data;
}
#pragma used-
#endif
#define TX_BUFFER_SIZE 8
char tx_buffer[TX_BUFFER_SIZE];
#if TX_BUFFER_SIZE<256
unsigned char tx_wr_index,tx_rd_index,tx_counter;
#else
unsigned int tx_wr_index,tx_rd_index,tx_counter;
#endif
#ifndef _DEBUG_TERMINAL_IO_
// Write a character to the USART Transmitter buffer
#define _ALTERNATE_PUTCHAR_
#pragma used+
void putchar(char c)
{
while (tx_counter == TX_BUFFER_SIZE);
#asm("cli")
if (tx_counter || ((UCSRA & DATA_REGISTER_EMPTY)==0))
{
tx_buffer[tx_wr_index]=c;
if (++tx_wr_index == TX_BUFFER_SIZE) tx_wr_index=0;
++tx_counter;
}
else
UDR=c;
#asm("sei")
}
#pragma used-
#endif
#include <stdio.h>
// Port B initialization
// Func7=Out Func6=Out Func5=Out Func4=Out Func3=Out Func2=Out Func1=Out
Func0=Out
// State7=0 State6=0 State5=0 State4=0 State3=0 State2=0 State1=0 State0=0
PORTB=0x01;
DDRB=0xFF;
// Port C initialization
// Func7=In Func6=In Func5=In Func4=In Func3=In Func2=In Func1=In Func0=In
// State7=T State6=T State5=T State4=T State3=T State2=T State1=T State0=T
PORTC=0x00;
DDRC=0x00;
// Port D initialization
// Func7=In Func6=In Func5=In Func4=In Func3=In Func2=In Func1=In Func0=In
// State7=T State6=T State5=T State4=T State3=T State2=T State1=T State0=T
PORTD=0x00;
DDRD=0x00;
// Timer/Counter 0 initialization
// Clock source: System Clock
// Clock value: Timer 0 Stopped
// Mode: Normal top=FFh
// OC0 output: Disconnected
TCCR0=0x00;
TCNT0=0x00;
ti: NGHIN CU V THIT K MNG RS 485 Trang:97
OCR0=0x00;
// Timer/Counter 1 initialization
// Clock source: System Clock
// Clock value: Timer 1 Stopped
// Mode: Normal top=FFFFh
// OC1A output: Discon.
// OC1B output: Discon.
// Noise Canceler: Off
// Input Capture on Falling Edge
// Timer 1 Overflow Interrupt: Off
// Input Capture Interrupt: Off
// Compare A Match Interrupt: Off
// Compare B Match Interrupt: Off
TCCR1A=0x00;
TCCR1B=0x00;
TCNT1H=0x00;
TCNT1L=0x00;
ICR1H=0x00;
ICR1L=0x00;
OCR1AH=0x00;
OCR1AL=0x00;
OCR1BH=0x00;
OCR1BL=0x00;
// Timer/Counter 2 initialization
// Clock source: System Clock
// Clock value: Timer 2 Stopped
// Mode: Normal top=FFh
// OC2 output: Disconnected
ASSR=0x00;
TCCR2=0x00;
TCNT2=0x00;
OCR2=0x00;
// USART initialization
// Communication Parameters: 8 Data, 1 Stop, No Parity
// USART Receiver: On
// USART Transmitter: On
// USART Mode: Asynchronous
// USART Baud rate: 9600
UCSRA=0x00;
UCSRB=0xD8;
UCSRC=0x86;
UBRRH=0x00;
UBRRL=0x19;
nhan1=getchar();
nhan2=getchar();
nhan3=getchar();
nhan4=getchar();
delay_ms(10);
UCSRB=0x00;
rx_counter=0;
ti: NGHIN CU V THIT K MNG RS 485 Trang:99
rx_buffer[1]=0;
rx_buffer[2]=0;
rx_buffer[3]=0;
rx_buffer[4]=0;
if ((nhan1==8)&(nhan2==4))
{
PORTA=nhan3;
DDRA=0xff;
PORTC=nhan4;
DDRC=0xff;
}
if ((nhan1==8)&(nhan2==8))
{
UCSRB=0x00;
delay_ms(50);
PORTB=1;
delay_ms(50);
// dl100
tr1=8;
tr2=255;
tr3=PINA;
tr4=PINC;
UCSRB=0x48;
putchar(tr1);
putchar(tr2);
putchar(tr3);
putchar(tr4);
;
;
delay_ms(10);
PORTB=0;
UCSRB=0x00;
};
ti: NGHIN CU V THIT K MNG RS 485 Trang:100
MC LC
Trang
Nhim v lun vn tt nghip: ......................................................... 1
Lch trnh lm lun vn tt nghip: ................................................... 2
Phiu nh gi:................................................................................. 3
Li cm n: ...................................................................................... 4
Gii thiu ti: .............................................................................. 5
PHN I ....................................... 6
C S L THUYT...................... 6
Chng I: CH TRUYN DN: .................................................. 6
I: Truyn bt song song v truyn bt ni tip:........................................ 6
1: Truyn bt song song: ............................................................. 6
2: Truyn bt ni tip: ................................................................. 6
II: Truyn ng b v khng ng b: ................................................... 6
III: Truyn 1 chiu 2 chiu ton phn v gin on: .............................. 7
IV: Truyn ti di c s truyn ti di mang v truyn ti di rng: ...... 7
1: Truyn ti di c s : .............................................................. 7
2: Truyn ti di mang: ............................................................... 8
3: Truyn ti di rng: ................................................................ 8
V: Cu trc mng bus: ........................................................................... 8
VI: Cu trc mch vng :..................................................................... 10
VII: Cu trc sao: ................................................................................ 12
VIII: Cu trc cy: ............................................................................... 13
IX: Kin trc giao thc: ....................................................................... 14
X: Giao thc ....................................................................................... 16
XI: M hnh lp:.................................................................................. 20
XII: Kin trc tiu chun OSI: ............................................................. 21
XIII: Phng php truy cp bus: .......................................................... 28
XIV: Phng php truy cp Master/Slaver: ......................................... 30
XV: Phng php TDMA: .................................................................. 34
XIV: Phng phap token passing ................................................................. 35
Chng II: CHUN TRUYN DN ................................................. 38
I: Phng thc truyn dn tn hiu: ...................................................... 38
II: c im ca cc cng ngh truyn dn:......................................... 39
III: Chun RS 232: .............................................................................. 40
IV: RS 422 A....................................................................................... 41
V: RS 485 ............................................................................................ 41
VI: Cch lp t RS 485: ..................................................................... 43
VII: Topolgy ca mng RS 485: .......................................................... 45
VIII: Phng thc truyn thng: .......................................................... 46
IX: Truyn thng tun t: .................................................................... 47
ti: NGHIN CU V THIT K MNG RS 485 Trang:102