Tải bản đầy đủ (.pdf) (11 trang)

Tài liệu chương 5: Hoạt động của port nối tiếp (Serial Port) pptx

Bạn đang xem bản rút gọn của tài liệu. Xem và tải ngay bản đầy đủ của tài liệu tại đây (790.32 KB, 11 trang )

Chương 5: Ho t ñ ng c a port n i ti p (Serial Port).

Trư ng ðH Công nghi p Tp.HCM.

CHƯƠNG 5
HO T ð NG C A PORT N I TI P
(SERIAL PORT)
I. M

ð U:
Máy tính truy n d li u theo hai phương pháp: truy n d li u song song và truy n d li u n i

ti p.
• Truy n song song: S d ng nhi u dây d n ñ truy n d li u gi a các thi t b có kho ng cách
g n nhau (kho ng vài mét). Phương pháp này cho phép truy n d li u v i t c ñ cao nh s d ng
nhi u dây d n ñ truy n d li u ñ ng th i nên t i m t th i đi m có th truy n đư c nhi u bit thơng tin
nhưng kho ng cách truy n thì có nhi u h n ch .
• Truy n n i ti p: S d ng m t dây d n ñ truy n d li u (m t dây phát ñi và m t dây thu v )
gi a các thi t b có kho ng cách xa nhau (kho ng vài trăm mét tr lên). Phương pháp này s truy n d
li u v i t c ñ ch m hơn (so v i phương pháp truy n song song) vì ch s d ng m t dây d n ñ truy n
d li u nên t i m t th i ñi m ch có th truy n đư c m t bit thơng tin nhưng kho ng cách truy n thì
khơng b h n ch như phương pháp song song.
Chip 8051 có m t port n i ti p (serial port) v i các tính năng như sau:

• Lưu ý: trư ng h p đ c trưng th hai thì d li u th nh t s không b m t n u CPU ñ c xong
d li u th nh t trư c khi d li u th hai ñư c nh n ñ y ñ .
Các thanh ghi ch c năng ñ c bi t c a port n i ti p:

ð i lư ng ñ c trưng cho t c ñ truy n d li u nhanh hay ch m là t c đ baud (baud rate) hay
cịn g i là t n s ho t ñ ng c a port n i ti p có th là giá tr c ñ nh hay thay ñ i tùy theo yêu c u c a
ngư i l p trình. Khi ch ñ t c ñ baud thay ñ i ñư c s d ng, b ñ nh th i 1 cung c p xung clock t c


ñ baud và ta ph i l p trình sao cho phù h p. phiên b n chip 8031/8052, b ñ nh th i 2 cũng có th
đư c l p trình đ cung c p xung clock t c đ baud.
Giáo trình Vi x lý.

154

Biên so n: Ph m Quang Trí


Chương 5: Ho t ñ ng c a port n i ti p (Serial Port).

Trư ng ðH Công nghi p Tp.HCM.

II. THANH GHI ð M PORT N I TI P (SBUF):
Thanh ghi SBUF (Serial Buffer Register): ñư c dùng ñ lưu gi d li u c n phát ñi và d li u ñã
nh n ñư c. Vi c ghi d li u vào thanh ghi SBUF s n p d li u ñ phát ñi và vi c ñ c d li u t thanh
ghi SBUF s truy xu t d li u ñã thu ñư c.
Thanh ghi SBUF bao g m 2 thanh ghi:
⇒ Thanh ghi phát (b ñ m phát): dùng ñ lưu gi d li u c n phát ñi.
⇒ Thanh ghi thu (b ñ m thu): dùng ñ lưu gi d li u ñã nh n đư c.
C u trúc c a thanh ghi SBUF:



Ví d : Các l
MOV
MOV
MOV
MOV


Giáo trình Vi x lý.

nh ghi d li u vào SBUF và ñ c d li u t SBUF.
SBUF, #45H
;Phát giá tr 45H qua port n i ti
SBUF, #”D”
;Phát giá tr 44H qua port n i ti
SBUF, A
;Phát n i dung c a A qua port n
A, SBUF
;ð c d li u thu ñư c t port n

155

p.
p.
i ti p.
i ti p.

Biên so n: Ph m Quang Trí


Chương 5: Ho t ñ ng c a port n i ti p (Serial Port).

Trư ng ðH Công nghi p Tp.HCM.

III. THANH GHI ðI U KHI N PORT N I TI P (SCON):
Thanh ghi SCON (Serial Control Register): ch a các bit dùng ñ ñi u khi n ch ñ ho t ñ ng
và báo tr ng thái c a port n i ti p.
C u trúc c a thanh ghi SCON:

Bit
7

6

5

4

3

2

1

0

SCON: Serial Control Register
9F 9E 9D 9C 9B 9A 99 98
SM1
REN
RB8
RI
SM0
SM2
TB8
TI

Địa chỉ bit (HEX)
Ký hiệu


RI: Receive Interrupt Cờ ngắt thu. RI = 1 ngay khi kết
thúc việc thu một dữ liệu, RI được xóa bởi phần mềm.
TI: Transmit Interrupt Cờ ngắt phát. TI = 1 ngay khi kết
thúc việc phát một dữ liệu, TI được xóa bởi phần mềm.
RB8: Receive bit 8

Bit thứ 9 nhận được (chế độ 2 và 3).

TB8: Transmit bit 8
Bit thứ 9 được phát (chế độ 2 và 3).
Bit này được set (1) hoặc xóa (0) bởi phần mềm.
REN: Receive Enable
để nhận các dữ liệu.

Cho phép thu. Bit này phải được set

SM2: Serial Mode 2 Bit 2 chọn chế độ của port nối tiếp.
Bit này cho phép truyền thông đa xử lý ở chế độ 2 và 3; bit
RI sẽ không được tích cực nếu bit thứ 9 nhận được là 0.
SM1: Serial Mode 1

Bit 1 chọn chế độ của port nối tiếp.

SM0: Serial Mode 0

Bit 0 chọn chế độ của port nối tiếp.

Các ch ñ c a port n i ti p:


Trư c khi s d ng port n i ti p c n ph i:

Giáo trình Vi x lý.

156

Biên so n: Ph m Quang Trí


Chương 5: Ho t ñ ng c a port n i ti p (Serial Port).
Ví d : Kh i đ ng port n i ti p
li u t chân TxD.

Trư ng ðH Cơng nghi p Tp.HCM.

ch đ 1, cho phép port thu d li u t chân RxD và s n sàng phát d
Gi i

Ta dùng l nh:
MOV SCON, #52H
Gi i thích:

SM0 = 0, SM1 = 1 → cho phép port ho t ñ ng ch ñ 1.
REN = 1 → cho phép port n i ti p ñư c phép thu d li u.
TI = 1 → chu n b port n i ti p s n sàng phát d li u qua chân TxD.
RI = 0 → chu n b port n i ti p s n sàng thu d li u qua chân RxD.
IV. CÁC CH ð

HO T ð NG C A PORT N I TI P:


1. Ch ñ 0 – Thanh ghi d ch 8 bit:

Quá trình phát d li u:
• Q trình kh i đ ng: Ghi d li u c n phát vào SBUF ⇒ Vi c phát d li u b t ñ u: D li u t
SBUF ñư c d ch ra chân RxD ñ ng th i v i các xung clock d ch bit ñư c g i ra chân TxD (m i
bit ñư c truy n ñi trên chân RxD trong 1 chu kỳ máy).

W

Giáo trình Vi x lý.

ri t
e

157

Biên so n: Ph m Quang Trí


Chương 5: Ho t ñ ng c a port n i ti p (Serial Port).

Trư ng ðH Công nghi p Tp.HCM.

• Gi n đ th i gian phát d li u:

Q trình thu d li u:
• Q trình kh i ñ ng: Set bit cho phép thu (REN=1) → Xóa c ng t thu (RI=0) ⇒ Vi c thu d
li u b t ñ u: Các xung clock d ch bit ñư c g i ra chân TxD và d li u t thi t b bên ngồi
đư c d ch vào chân RxD b i các xung clock d ch bit này (vi c d ch d li u vào chân RxD x y ra
c nh lên c a xung clock d ch bit).


• Gi n đ th i gian thu d li u:

ng d ng: M t ng d ng kh thi c a ch ñ 0 (ch ñ thanh ghi d ch bit) là m r ng thêm các ngõ ra
cho chip 8051. M t vi m ch thanh ghi d ch n i ti p – song song có th đư c n i v i các chân TxD và
RxD c a chip 8051 ñ cung c p thêm 8 đư ng xu t (xem hình v bên dư i). Các thanh ghi d ch bit
khác có th ghép cascade v i thanh ghi d ch bit ñ u tiên ñ m r ng thêm n a.

Giáo trình Vi x lý.

158

Biên so n: Ph m Quang Trí


Chương 5: Ho t ñ ng c a port n i ti p (Serial Port).
8051

Data
A1H
W

Trư ng ðH Công nghi p Tp.HCM.

Shift register: Thanh ghi dịch bit.
8 extra outputs: 8 ngõ ra mở rộng.

8 Extra outputs
ri t
e


D7

SBUF 10100001B

RxD

Serial port

D0

Shift Register
Data

DATA

10100001
SHIFT CLOCK

Clock

TxD

Chế độ thanh ghi dịch bit của port nối tiếp.

2. Ch ñ 1 – UART 8 bit có t c ñ baud thay ñ i:
Trong ch ñ 1, port n i ti p c a 8051 ho t ñ ng như m t b thu phát khơng đ ng b 8 bit có
t c đ baud thay đ i (UART - Universal Asynchronous Receiver Transmitter).

UART là m t b thu phát d li u n i ti p v i m i ký t d li u ñư c ñ ng trư c b i m t bit

START (logic 0) và ñư c ñ ng sau b i m t bit STOP (logic 1). Th nh tho ng, m t bit ch n l (Parity
bit) ñư c chèn vào gi a bit d li u sau cùng và bit stop. Ho t ñ ng ch y u c a UART là bi n ñ i d
li u phát t song song thành n i ti p và bi n ñ i d li u thu t n i ti p thành song song.
Hình v khng d ng d li u khi đư c s d ng
[1]
[0]

D0
START
BIT
(Mức 0)

D1

D2

D3

D4

DATA BIT

ch đ UART:
D5

D6

D7

Bit này có thể

có hoặc không
có tùy theo yêu
cầu sử dụng

PARITY STOP
BIT
BIT
(Mức 1)

Khuông d ng c a m t d li u khi s d ng ch đ UART 8 bit:

Giáo trình Vi x lý.

159

Biên so n: Ph m Quang Trí


Chương 5: Ho t ñ ng c a port n i ti p (Serial Port).

Trư ng ðH Công nghi p Tp.HCM.

Q trình phát d li u:
• Q trình kh i ñ ng: Ghi d li u c n phát vào SBUF ⇒ Vi c phát d li u b t ñ u: D li u t
SBUF ñư c d ch ra chân TxD (theo th t : Start bit → 8 bit data (D0 .. D7) → Stop bit) → c
TI=1.

W

rit

e

• T c đ baud: do ngư i l p trình thi t l p và đư c qui đ nh b i t c ñ tràn c a Timer 1.
• Th i gian c a 1 bit trên đư ng truy n: b ng ngh ch ñ o c a t c đ baud (1 / Baud rate).
• C ng t phát TI = 1: khi bit stop ñư c xu t hi n trên chân TxD.
Qúa trình thu d li u:
• Q trình kh i đ ng: M t s chuy n tr ng thái t m c 1 xu ng m c 0 t i chân RxD (t c xu t
hi n bit Start) ⇒ Vi c thu d li u b t ñ u: 8 bit d li u ñư c d ch vào trong SBUF (theo th t :
D0→D1→…→D7) → Stop bit (bit th 9) ñư c ñưa vào bit RB8 (thu c thanh ghi SCON) → c
RI=1.

• T c đ baud: do ngư i l p trình thi t l p và đư c qui ñ nh b i t c ñ tràn c a Timer 1.
• Hai đi u ki n b t bu c đ th c hi n q trình thu d li u như trên:
o RI = 0 → Yêu c u này có nghĩa là chip 8051 đã đ c xong d li u trư c đó và xố c RI..
o (SM2 = 1 và Stop bit = 1) ho c SM2 = 0 → ch áp d ng trong ch đ truy n thơng đa x
lý. u c u này có nghĩa là khơng set c RI b ng 1 trong ch đ truy n thơng đa x lý
khi bit d li u th 9 là 0.
• C ng t thu RI = 1: khi 8 bit d li u ñã ñư c n p vào SBUF.
Lưu ý: Trư ng h p các tín hi u nhi u xu t hi n trên ñư ng truy n (làm cho ñư ng truy n xu t hi n
m c th p) d n ñ n làm cho b thu nh n d ng sai, cho đó là s xu t hi n c a START bit (logic 0) và
ti n hành th c hi n quá trình thu d li u, t đó d n đ n k t qu nh n vào s khơng đúng. ð tránh đi u
này x y ra thì khi đư ng truy n có s chuy n tr ng thái t 1 xu ng 0, b thu yêu c u m c 0 này ph i
Giáo trình Vi x lý.

160

Biên so n: Ph m Quang Trí


Chương 5: Ho t ñ ng c a port n i ti p (Serial Port).


Trư ng ðH Công nghi p Tp.HCM.

đư c duy trì trên đư ng truy n trong m t kho ng th i gian xác ñ nh. N u khơng đ m b o đư c như
th , b thu ñư c gi s r ng ñã nh n đư c nhi u thay vì nh n ñư c START bit h p l . Lúc ñó b thu s
ñư c thi t l p l i, quay v tr ng thái ngh và ch s chuy n tr ng thái t 1 xu ng 0 k ti p trên ñư ng
truy n.
3. Ch ñ 2 – UART 9 bit có t c đ baud c đ nh:
(Tương t như UART 8 bit, ch khác

s bit d li u là 9 bit)

Khuông d ng c a m t d li u khi s d ng ch ñ UART 9 bit:

4. Ch ñ 3 – UART 9 bit có t c đ baud thay đ i:
(Tương t như UART 9 bit, ch khác

Giáo trình Vi x lý.

161

t c ñ baud có th thay ñ i)

Biên so n: Ph m Quang Trí


Chương 5: Ho t ñ ng c a port n i ti p (Serial Port).

Trư ng ðH Công nghi p Tp.HCM.


Recei

Trans

Receive

Transmit

Khuông d ng c a m t d li u khi s d ng ch ñ UART 9 bit:

V. KH I ð NG VÀ TRUY XU T CÁC THANH GHI:
1. Bit cho phép thu (nh n) d li u (REN: Receive Enable):
• Cơng d ng: dùng đ cho phép (ho c không cho phép) nh n các ký t d li u.
REN = 1: Cho phép nh n d li u ⇒ l nh th c hi n: SETB REN
REN = 0: Không cho phép d li u ⇒ l nh th c hi n: CLR REN
2. Bit d li u th 9:
• Cơng d ng: tùy thu c vào ñ c tính k thu t c a thi t b n i ti p mà có th yêu c u ho c không
yêu c u bit d li u th 9.
Khi phát d li u: bit d li u th 9 ph i ñư c n p vào bit TB8 c a SCON trư c khi phát ñi.
Khi thu d li u: bit d li u th 9 s ñư c n p vào bit RB8 c a SCON sau khi thu xong.
3. Bit ki m tra ch n / l (P: Parity):
• Cơng d ng: Trong chip 8051 thì bit Parity đư c dùng đ thi t l p vi c ki m tra ch n cho 8 bit
d li u ch a trong thanh ghi A (thư ng dùng ñ ki m tra l i khi truy n d li u).
P = 1 ⇒ S lư ng bit 1 trong thanh ghi A là s l .
P = 0 ⇒ S lư ng bit 1 trong thanh ghi A là s ch n.
ho c
S lư ng bit 1 trong thanh ghi A và bit P là m t s ch n.
ch đ 1 (UART 8 bit) thì bit ch n/l do chip 8051 t o ra có th ñư c thêm vào t i bit th 8
(v trí D7) và khi đó ta ch có th truy n d li u ch có 7 bit.


Giáo trình Vi x lý.

162

Biên so n: Ph m Quang Trí


Chương 5: Ho t ñ ng c a port n i ti p (Serial Port).

Trư ng ðH Công nghi p Tp.HCM.

ch đ 2, 3 (UART 9 bit) thì bit ch n/l do chip 8051 t o ra có th đư c thêm vào t i bit th 9
(nghĩa là thêm vào bit TB8 c a SCON) và khi đó ta có th truy n d li u có 8 bit.
START D0 D1 D2 D3 D4 D5 D6 D7 PARITY

STOP

Bit thứ 9
DATA (8 bit)

Ví d : Truy n d li u (ch ñ 2, 3 – UART 9 bit) ch a trong thanh ghi A thông qua port n i ti p v i
yêu c u truy n 8 bit d li u + 1 bit ki m tra ch n (bit P).
Chu i l nh th c hi n:
MOV
C, P
;Chuy n bit ki m tra ch n (bit P) vào TB8 và
MOV
TB8, C
;bit này tr thành bit th 9.
MOV

SBUF, A
;Truy n 8 bit d li u trong A thông qua port.
Ví d : Truy n d li u (ch đ 2, 3 – UART 9 bit) ch a trong thanh ghi A thông qua port n i ti p v i
yêu c u truy n 8 bit d li u + 1 bit ki m tra l (l y bù bit P).
Chu i l nh th c hi n:
MOV
C, P
;Bi n ñ i bit ki m tra ch n (bit P) thành bit
CPL
C
;ki m tra l , chuy n bit ki m tra l vào TB8 và
MOV
TB8, C
;bit này tr thành bit th 9.
MOV
SBUF, A
;Truy n 8 bit d li u trong A thơng qua port.
Ví d : Truy n d li u (ch ñ 1 – UART 8 bit) ch a trong thanh ghi A thông qua port n i ti p v i yêu
c u truy n 7 bit d li u + 1 bit ki m tra ch n (bit P).
Chu i l nh th c hi n:
CLR
ACC.7
MOV
C, P
MOV
ACC.7, C
MOV
SBUF, A

;Xoá bit th 8 (D7) trong thanh ghi A.

;Sao chép bit ki m tra ch n vào C.
;ð t bit ki m tra ch n vào bit th 8 trong A.
;Truy n 7 bit d li u c ng bit ki m tra ch n.

4. Các c ng t c a port n i ti p:

T ph n trình bày trên đây, ta có th th y r ng:

Thơng qua vi c ki m tra c ng t TI có th bi t đư c chip 8051 ñã s n sàng ñ truy n m t
byte d li u hay chưa. C n chú ý r ng, ñây c TI ñư c ñ t (TI = 1) khi 8051 đã hồn t t vi c truy n
m t byte d li u, cịn đư c xố (TI=0) thì ph i do ngư i l p trình th c hi n b ng l nh (CLR TI). Cũng
nên nh r ng, n u ghi m t byte vào thanh ghi SBUF trư c khi c TI ñư c đ t (TI = 1) thì s có nguy
cơ b m t ph n d li u trư c đó do chưa k p truy n đi. C TI có th ñư c ki m tra b ng l nh (JNB
TI,…) ho c s d ng phương pháp ng t (s đư c trình bày trong chương ti p theo).

Giáo trình Vi x lý.

163

Biên so n: Ph m Quang Trí


Chương 5: Ho t ñ ng c a port n i ti p (Serial Port).

Trư ng ðH Công nghi p Tp.HCM.


Thơng qua vi c ki m tra c ng t RI có th bi t đư c chip 8051 đã nh n xong m t byte d
li u hay chưa. C n chú ý r ng, ñây c RI ñư c đ t (RI = 1) khi 8051 đã hồn t t vi c nh n m t byte
d li u, cịn đư c xố (RI=0) thì ph i do ngư i l p trình th c hi n b ng l nh (CLR RI). Cũng nên nh

r ng, n u không ti n hành c t n i dung c a thanh ghi SBUF vào nơi an tồn thì s có nguy cơ b m t
d li u v a nh n ñư c do d li u ti p theo đư c chuy n vào. C RI có th ñư c ki m tra b ng l nh
(JNB RI,…) ho c s d ng phương pháp ng t (s đư c trình bày trong chương ti p theo).
Lưu ñ và ño n l nh ñ ki m tra và thu m t d li u n i ti p t thi t b bên ngoài vào chip 8051
(ch a vào A):

Lưu ñ và ño n l nh ñ ki m tra và phát m t d li u n i ti p t chip 8051 (ch a trong A) ra thi t b
bên ngồi:

VI. TRUY N THƠNG ðA X

LÝ:

Các ch ñ 2 và 3 là các ch ñ d phịng cho vi c truy n thơng đa x lý. Trong các ch ñ này, 9
bit d li u ñư c thu và bit th 9 ñưa ñ n RB8. Port có th đư c l p trình sao cho khi bit stop ñư c
nh n, ng t do port n i ti p ch đư c tích c c n u RB8=1. ð c trưng này có th ñư c b ng cách set bit
SM2 trong thanh ghi SCON b ng 1. M t ng d ng cho ñi u này là m t môi trư ng m ng s d ng
nhi u 8051 ñư c s p x p theo mơ hình ch /t (master/slave) như hình dư i đây.

Giáo trình Vi x lý.

164

Biên so n: Ph m Quang Trí



×