Ch ng 10ươ
Truy n thông n i ti p c a 8051 ế
c y tính truy n d li u theo hai cách: Song song và n i ti p. Trong ế
truy n d li u song song th ng c n 8 ho c nhi u đ ng dây d n đ truy n d ườ ườ
li u đ n m t thi t b ch cách xa vài b c. d c a truy n d li u song song ế ế ướ
các y in các c ng, m i thi t b s d ng m t đ ng cáp v i nhi u dây d n. ế ườ
M c trong các tr ng h p nh v y thì nhi u d li u đ c truy n đi trong m t ườ ư ượ
kho ng th i gian ng n b ng cách dùng nhi u dây d n song song nh ng kho ng cách ư
thì không th l n đ c. Đ truy n d dx li u đi xa thì ph i s d ng ph ng pháp ượ ư ươ
truy n n i ti p. Trong truy n thông n i ti p d li u đ c g i đi t ng bít m t so v i ế ế ượ
truy n song song thì m t ho c nhi u byte đ c truy n đi ng m t lúc. Truy n ượ
thông n i ti p c a 8051 là ch đ c a ch ng này. 8051 đã đ c cài s n kh năng ế ươ ượ
truy n thông n i ti p, do v y có th truy n nhánh d li u v i ch m t s ít dây d n. ế
10.1 Các c s c a truy n thông n i ti p.ơ ế
Khi m t b vi x truy n thông v i th gi i n ngoài thì c p d li u ế
d i d ng t ng khúc 8 bít (byte) m t. Trong m t s tr ng h p ch ng h n nh cácướ ườ ư
y in thì thông tin đ n gi n đ c l y t đ ng bus d li u 8 bít và đ c g i đi t iơ ượ ườ ượ
bus d li u 8 bít c a máy in. Đi u này có th làm vi c ch khi đ ng cáp bus không ườ
quá dài các đ ng cáp dài làm suy gi m th m chí làm o n hi u. Ngoài ra,ườ
đ ng d li u 8 bít giá th ng đ t. nh ng lý do này, vi c truy n thông n i ti pườ ườ ế
đ c dùng đ truy n d li u gi a hai h th ng cách xa nhau hàng trăm đ n ngượ ế
tri u d m. Hình 10.1 s đ truy n n i ti p so v i s đ truy n song song. ơ ế ơ
nh 10.1: S đ truy n d li u n i ti p so v i s đ truy n song song.ơ ế ơ
Th c t trong truy n thông n i ti p m t đ ng d li u duy nh t đ c ế ế ườ ượ
ng thay cho m t đ ng d li u 8 bít c a truy n thông song song làm cho nó không ườ
ch r h n r t nhi u còn m ra kh năng đ hai máy tính cách xa nhau ơ
truy n thông qua đ ng tho i. ườ
Đ i v i truy n thông n i ti p thì đ làm đ c các byte d li u ph i đ c ế ượ ượ
chuy n đ i thành các bít n i ti p s d ng thanh ghi giao d ch vào - song song - ra - ế
n i ti p. Sau đó nó có th đ c truy n quan m t đ ng d li u đ n. Đi u này cũng ế ượ ườ ơ
nghĩa đ u thu cũng ph i m t thanh ghi vào - n i ti p - ra - song song đ ế
nh n d li u n i ti p sau đó gói chúng thành t ng byte m t. T t nhiên, n u d ế ế
li u đ c truy n qua đ ng tho i thì ph i đ c chuy n đ i t các s 0 1 ượ ườ ượ
sang âm thanh d ng sóng hình sin. Vi c chuy n đ i này th c thi b i m t thi t b ế
Serial Transfer Parallen
Transfer
Sender Receiver
Sender Receiver
D7
D0
tên g i Modem ch vi t t t c a “Modulator/ demodulator (đi u ch / gi i ế ế
đi u ch ). ế
Khi c ly truy n ng n thì tín hi u s có th đ c truy n nh nói trên, m t ượ ư
y d n đ n gi n và không c n đi u ch . Đây là cách các bàn PC và IBM truy n d ơ ế
li u đ n bo m ch m . Tuy nhiên, đ truy n d li u đi xa dùng các đ ng truy n ế ườ
ch ng h n nh đ ng tho i thì vi c truy n thông d li u n i ti p yêu c u m t ư ườ ế
modem đ đi u ch (chuy n các s 0 và 1 v tín hi u âm thanh) và sau đó gi i đi u ế
ch (chuy n tín hi u âm thanh v c s 0 và 1).ế
Truy n thông d li u n i ti p s d ng hai ph ng pháp đ ng b d b . ế ươ
Ph ng pháp đ ng b truy n m t kh i d li u (các ký t ) t i cùng th i đi m trongươ
khi đó truy n d b ch truy n t ng byte m t. th vi t ph n m m đ s d ng ế
m t trong hai ph ng pháp này, nh ng ch ng trình có th r t dài và bu n t . Vì lý ươ ươ
do này mà nhi u nhà s n xu t đã cho ra th tr ng nhi u lo i IC chuyên d ng ph c ườ
v cho truy n thông d li u n i ti p. Nh ng IC này ph c v nh các b thu - phát ế ư
d b t ng h p VART (Universal Asynchronous Receiver Transmitter) và các b thu -
phát đ ng - d b t ng h p UBART (Universal Asynchronous Receiver Transmitter).
B vi đi u khi n 8051 m t cài s n m t UART s đ c bàn kỳ m c ượ
10.3.
nh 10.2: Truy n d li u đ n công, bán công và songng. ơ
10.1.1 Truy n d li u bánng song công.
Trong truy n d li u n u d li u th đ c v a phát v a đ c thu thì ế ư ượ
g i truy n song công. Đi u này t ng ph n v i truy n đ n công ch ng h n nh ươ ơ ư
các máy in ch nh n d li u t máy tính. Truy n song công có th có hai lo i n
song công song công hoàn toàn ph thu c vào truy n d li u th x y ra đ ng
th i không? N u d li u đ c truy n theo m t đ ng t i m t th i đi m thì đ c ế ượ ườ ượ
g i truy n bán song công. N u d li u th đi theo c hai đ ng cùng m t lúc ế ườ
thì g i song công toàn ph n. T t nhiên, truy n song công đòi h i hai đ ng d ườ
li u (ngoài đ ng âm c a tín hi u), m t đ phát m t đ thu d li u ng m t ườ
lúc.
10.1.2 Truy n thông n i ti p d b đóng khung d li u. ế
D li u đi vào đ u thu c a đ ng d li u trong truy n d li u nói ti p ườ ế
toàn các s 0 1, th t khó làm cho d li u y nghĩa n u bên phát ế
B ptB thu
B pt
B thu
B thu
B pt
B pt
B thu
B thu
B pt
n đ n ơ
công
Song công
Đ n côngơ
n thu không cùng th ng nh t v m t t p các lu t, m t th t c, v cách d li u
đ c đóng gói, bao nhiêu bít t o n m t t khi nào d li u b t đ u k tượ ế
thúc.
10.1.3 Các bít b t đ u và d ng.
Truy n thông d li u n i ti p d b đ c s d ng r ng rãi cho c phép ế ượ
truy n h ng k t , còn các b truy n d li u theo kh i thì s d ng ph ng phát ướ ươ
đ ng b . Trong ph ng pháp d b , m i t đ c b trí gi a các bít b t đ u ươ ư
(start) bít d ng (stop). Công vi c này g i đóng gói d li u. Trong đóng gói d
li u đ i v i truy n thông d b thì d li u ch ng h n các t ASCII đ c ượ
đóng gói gi a m t bít b t đ um t bít d ng. Bít b t đ u luôn luôn ch là m t bít,
n bít d ng th m t ho c hai bít. Bít b t đ u luôn bít th p (0) các bít
d ng luôn là các bít cao (bít 1). Ví d , y xét ví d trên hình 10.3 trong đó ký t “A”
c aASCII (8 bít nh phân là 0100 0001) đóng i khung gi a m t bít b t đ u
m t bít d ng. L u ý r ng bít th p nh t LSB đ c g i ra đ u tiên. ư ượ
nh 10.3: Đóng khung m t t “A” c a ASCII (41H) tín hi u 1
(cao) đ c coi nh là m t d u (mark), còn không có tín hi u t c là 0 (th p) thì đ cượ ư ượ
coi là kho ng tr ng (space). L u ý r ng phép truy n b t đ u v i start sau đó bít D0, ư
bít th p nh t LSB, sau các bít còn l i cho đ n bít D7, bít cao nh t MSB và cu i cùng ế
là bít d ng stop đ o k t thúc ký t “A”. ế
Trong truy n thông n i ti p d b thì các chíp IC ngo i vi các modem ế
th đ c l p trình cho d li u v i kích th c theo 7 bít ho c 8 bít. Đây là ch a k ượ ướ ư
các bít d ng stop th 1 ho c 2 bít. Trong khi các h ASCII h n (tr c đây) ơ ướ
thì các ký t là 7 bít thì ngay nay do vi c m r ng các ký t ASCII nên d li u nhìn
chung là 8 bít. Trong các h h n do t c đ ch m c a các thi t b thu thì ph i s ơ ế
d ng hai bít d ng đ đ m b o th i gian t ch c truy n byte k ti p. Tuy nhiên, ế ế
trong các máy tính PC hi n t i ch s d ng 1t stop nh chu n. ư
Gi s r ng chúng ta đang truy n m t t p văn b n các ký t ASCII s d ng
1 bít stop thì ta t ng c ng 10 bít cho m i t g m: 8 bít cho t ASCII
chu n và 1 bít start cùng 1 bít stop. Do v y, đ i v i m i ký t 8 bít thì c n thêm 2 bí
v chi là m t 25% t ng phí.
Trong m t s h th ng đ nh m duy trì tính toàn v n c a d li u thì ng i ườ
ta n thêm m t bít l (parity bít). Đi u này có nghĩa là đ i v i m i ký t (7 ho c 8
bít tuỳ t ng h ) ta có thêm m t bít ngoài các bít start stop. t ch n l bít ch n
ho c bít l . N u là bít l s bít c a d li u bao g m c bít ch n l s m t s ế
l các 1. T ng t nh v y đ i v i tr ng h p bít ch n thì s bít c a d li u ươ ư ườ
bao g m c bít ch n - l s m t s ch n c a các s 1. d , t “A” c a
ASCII d ng nh phân 0100 0001, bít 0 bít ch n. Các chíp UART đ u cho
phép vi c l p trình bít ch n - l v ch n, l ho c không phân bi t ch n l .
d
1
1
Start
bít
Space
Stop
bít
Mar
d
Goes out
Goes out
10.1.4 T c đ truy n d li u.
T c đ truy n d li u trong truy n thông d li u n i ti p đ c g i bít ế ượ
trong giây bps (bít per second). Ngoài ra, còn đ c s d ng m t thu t ng r ng rãiượ
n a t c đ baud. Tuy nhiên, các t c baud bps hoàn toàn không b ng nhau.
Đi u này do t c baud thu t ng c a modem đ c đ nh nghĩa nh l n ượ ư
thay đ i c a tín hi u trong m t giây. Trong các modem nh ng tr ng h p khi ườ
m t s thay đ i c a tín hi u thì truy n vài bít d li u. Nh ng đ i v i m t dây ư
d n thì t c đ baud và bps là nh nhau nên trong cu n sách này cng ta có th dùng ư
thay đ i các thu t ng y cho nhau.
T c đ truy n d li u c a m t h y tính đã cho ph thu c vào các c ng
truy n thông k t n i vào trong h th ng đo. d , các máy tính PC/XT tr c đây ế ướ
c a IBM có th truy n d li u v i t c đ 100 đ n 9600 bps. Tuy nhiên, trong nh ng ế
năm g n đây thì c y tính PC d a trên Pentium truy n d li u v i t c đ lên t i
56kbps. C n ph i nói thêm r ng trong truy n thông d li u n i ti p d b thì t c đ ế
baud nn chung là b gi i h n 100.000 bps.
10.1.5 Các chu n RS232.
Đ cho phép t ng thích gi a các thi t b truy n thông d li u đ c s n ươ ế ượ
xu t b i các hãng khác nhau thì m t chu n giao di n đ c g i RS232 đã đ c ượ ượ
thi t l p b i hi p h i công nghi p đi n t EIA vào năm 19960. Năm 1963 nó đ cế ượ
s a ch nh đ c g i RS232A vào các năm 1965 1969 thì đ c đ i thành ượ ượ
RS232B và RS232C. đây chúng ta đ n gi n ch nói đ n RS232. Ny nay RS232 ơ ế
chu n giao di n I/O vào - ra n i ti p đ c s d ng r ng rãi nh t. Chu n y đ c ế ượ ượ
s d ng trong máy tính PC và hàng lo t các thi t b khác nhau. Tuy nhiên, vì nó đ c ế ượ
thi t l p tr c h lô-gíc TTL r t lâu do v y đi n áp đ u vào và đ u ra c a nó khôngế ướ
t ng thích v i m c TTL. Trong RS232 thì m c 1 đ c bi u di n b i - 3v đ n 25vươ ượ ế
trong khi đó m c 0 thì ng v i đi n áp + 3v đ n +25v làm cho đi n áp - 3v đ n + 3v ế ế
không xác đ nh. do này đ k t n i m t RS232 b t kỳ đ n m t h vi đi u ế ế
khi n thì ta ph i s d ng các b bi n đ i đi n áp nh MAX232 đ chuy n đ i các ế ư
m c lô-gíc TTL v m c đi n áp RS232 ng c l i. Các chíp IC MAX232 nhìn ượ
chung đ c coi nh b đi u khi n đ ng truy n. K t n i RS232 đ n MAX232ượ ư ườ ế ế
đ c tho thu n ph n 10.2.ượ
10.1.6 Các cn c a RS232.
B ng 10.1 cung c p s đ chân c a cáp RSE232 các tên g i c a chúng ơ
th ng đ c g i đ u n i DB - 25. Trong hi u thì đ u n i c m vào u đ c)ườ ượ
g i là DB - 25p và đ u n i cái đ c g i là DB - 25s. ượ
nh 10.4: Đ u n i DB - 25 c a RS232.
14
25
13
1
Vì không ph i t t c m i chân đ u đ c s d ng trong cáp c u máy tính PC, ượ
n IBM đ a ra phiên b n c a chu n vào/ra n i ti p ch s d ng 9 chân g i ư ế
DB - 9 nh trình bày b ng 10:2 hình 10.5.ư
B ng 10.1: Các cn c a RS232, 25 chân (DB - 25).
S chânMô t
1
2
3
4
5
6
7
8
9/10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
Đ t cách ly (Protective Cround)
D li u đ c truy n TxD (TráNsmitted data) ượ
D li u đ c phân RxD (Received data) ượ
Yêu c u g i RTS (Request To Send)
Xoá đ g i CIS (Clear To Send)
D li u s n sàng DSR (Data Set Ready)
Đ t c a tín hi u GND (Signal Cround)
Tách tín hi u m ng d li u DCD (Data Carrier Detect)
Nh n đ ki m tra d li u (Received for data testing)
Ch a dùngư
Tách tín hi u m ng d li u th c p (Secondary data carrier detect)
Xoá đ nh n d li u th c p (Secondary Clear to Send)
D li u đ c truy n th c p (Secondary Transmit Signal Element ượ
Timing)
Truy n phân chia th i gian ph n t tín hi u (Transmit Signal
Element Timing)
D li u đ c nh n th c p (Secondary Received data) ượ
Nh n phân chia th i gian ph n t tín hi u (Receiveo Signal
Element Timing)
Ch a dùngư
Yêu c u đ nh n th c p (Secondary Request to Send)
Đ u d li u s n sàng (Data Terminal Ready)
Phát hi n ch t l ng tín hi u (Signal Qualyty Detector) ượ
Báo chuông (Ring Indicator)
Ch n t c đ tín hi u d li u (Data Signal Rate Select)
Truy n phân chia th i gian tín hi u (Transmit Signal Element
Timing)
Ch a dùngư
10.1.7 Phân lo i truy n thông d li u.
Thu t ng hi n nay phân chia thi t b truy n thông d li u thành m t thi t b ế ế
đ u cu i d li u DTE (Data Terminal Equipment) ho c thi t b truy n thông d li u ế
DCE (Data Communication Equipment). DTE ch y u là các máy tính và các thi t b ế ế
đ u cu i g i nh n d li u, còn DCE là thi t b truy n thông ch ng h n nh các ế ư
modem ch u trách nhi m v truy n d li u. L u ý r ng t t c m i đ nh nghĩa v ư
ch c năng các chân RS232 trong các b ng 10.1 và 10.2 đ u xu t phát t g c đ c a
DTE.
K t n i đ n gi n nh t gi a m t PC và b vi đi u khi n yêu c u t i thi uế ơ
nh ng chân sau: TxD, RxD và đ t nh ch ra nh 10.6. Đ ý r ng trên hình này thì ư
các chân TxD và RxD đ c đ i cho nhau.ượ
nh 10.5: S đ đ u n i DB - 9 c a RS232.ơ
6
9
5
1