You are on page 1of 13

10/12/2012

Truyền thông qua RS232


DSPIC

om
.c
ng
co
an
th
ng

the dsPIC30F UART Module


o
du

• Dữ liệu truyền nối tiếp


– 8-bit or 9-bit data
u
cu

– Truyền song công


• Hỗ trợ truyền dữ liệu với
– Bộ đệm truyền nhân 4 bytes
– Ngắt nhận và gửi
– Cơ chế kiểm tra lỗi
• Hỗ trợ nhận địa chỉ gửi

CuuDuongThanCong.com https://fb.com/tailieudientucntt
10/12/2012

Cấu
hình
truyền
thống

om
.c
ng
co
3
an
th
ng

Phần cứng
o
du
u
cu

CuuDuongThanCong.com https://fb.com/tailieudientucntt
10/12/2012

Các thanh ghi

om
.c
ng
co
5
an
th
ng

Giải thích thanh ghi


o
du
u
cu

CuuDuongThanCong.com https://fb.com/tailieudientucntt
10/12/2012

Thanh ghi (tiếp)

om
.c
ng
co
7
an
th
ng

UART - Baud Rate Generator


o
du

• Thanh ghi xác định tốc độ truyền nhận


u

• UxBRG register với (x = 1 hoặc 2)


cu

–Baud Rate = Fcy / ( 16 * (UxBRG + 1) )


với Fcy = Tần số lệnh (Instruction Cycle
Frequency)
• Cả nhận và truyền đều sử dụng chung 1 tần
số

CuuDuongThanCong.com https://fb.com/tailieudientucntt
10/12/2012

Ví dụ
• Nếu FCY=8MHz, và tốc độ truyền là 9600
baud,
– UxBRG=(8•106/(16•9600))-1=51.083.
• UxBRG=51.

om
• Sai số truyền là UxBRG=51 is 9615.384, i.e.
the deviation is 0.16%

.c
ng
co
9
an
th
ng

Ví dụ (tiếp)
o
du
u
cu

10

CuuDuongThanCong.com https://fb.com/tailieudientucntt
10/12/2012

UART - Transmission

om
.c
ng
co
11
an
th
ng

UART - Transmission
o
du
u
cu

12

CuuDuongThanCong.com https://fb.com/tailieudientucntt
10/12/2012

UART - Transmit Buffers


• Bộ đệm truyền 4 byte
– Dữ liệu truyền sẽ được chuyển đến thành ghi
UxTSR
• Người dùng chỉ truy cập tới được byte đầu

om
tiên của bộ đệm
• UTXBF status bit thông báo bộ đệm đầy.

.c
ng
co
13
an
th
ng

UART – Ngắt truyền


o

• Cờ ngắt xác định bởi bit UxTXIF và cho


du

phép ngăt bởi bit UxTXIE


u

• Chế độ UTXISEL= 1
cu

Ngắt xảy ra khi bộ đệm hoàn toàn


trống
• Khi UTXISEL bit = 0
– Ngắt xảy ra khi mỗi byte được truyền
• UTXEN bit là bit cho phép truyền dữ liệu

14

CuuDuongThanCong.com https://fb.com/tailieudientucntt
10/12/2012

UART – nhận

om
.c
ng
co
15
an
th
ng

UART nhận
o
du

• Bộ đệm nhận 4 byte


– Dữ liệu truyền sẽ được chuyển từ thành ghi
u
cu

UxRSR, và người dùng đọc thanh ghi UxRXREG


• Người dùng chỉ truy cập tới được byte đầu
tiên của bộ đệm
• Khi bộ đệm 4 byte đầy và thanh ghi UxRSR
cũng nhận dữ liệu, thì bit OERR sẽ báo
• Việc xóa OERR sẽ xóa bộ đệm 4 byte này

CuuDuongThanCong.com https://fb.com/tailieudientucntt
10/12/2012

UART - Receive Interrupts


• Ngắt nhận xác định bởi cờ UxRXIF và cho
phép ngắt bới bit UxRXIE
• Có 3 chế độ ngắt khác nhau
• URXISEL = 11

om
– Ngắt xảy ra khi bộ đệm đầy, 4 bytes
• URXISEL bits = 10

.c
– Ngắt xảy ra khi bộ đệm có 3 bytes

ng
• When URXISEL bits = 01 or 00
– Ngắt xảy ra khi bộ đệm có dữ liệu
co
17
an
th
ng

UART - Error Detection


o

• Parity Error
du

– When received parity does not match the parity


calculated by module from received data
u

– Indicated by PERR bit in the UxSTA register set


cu

• Framing Error
– When a STOP bit is expected on UxRX pin but a low
logic level is detected
– Indicated by FERR bit in the UxSTA register set
• Receive Overrun Error
– When the Receive Buffer is full and a 5th character
is received
– Indicated by OERR bit in the UxSTA register set

18

CuuDuongThanCong.com https://fb.com/tailieudientucntt
10/12/2012

UART - Address Detection


• When the UART is operating in 9-bit mode
(PDSEL = 11), and the ADDEN bit in the UxSTA
register is set
– The module will wait for an Address word, i.e.,
a 9-bit word with the 9th bit set
• At this stage, the URXISEL bits in the UxSTA

om
register must be set to 00 or 01
– On receiving the Address word, the user inspects

.c
the lower byte to verify an address match
– If an address match occurred, the user should
clear the ADDEN bit, after which the module will

ng
wait for Data words (9-bit words with MSB clear)
co
19
an
th
ng

UART – Những đặc điểm phụ


o
du

• Alternate I/O
– Sử dụng cặp đôi chân TX/RX khác
u
cu

– Cho phép bơi bít ALTIO trong thanh ghiUxMODE


• Loopback Mode
– UxTX pin được nối ngầm với nhau UxRX pin
– Cho phép bởi bit LPBACK UxMODE
• Wake-up from SLEEP
– Device can be woken up from SLEEP by START bit
– Enabled by setting WAKE bit in UxMODE register
20

10

CuuDuongThanCong.com https://fb.com/tailieudientucntt
10/12/2012

Ví dụ

om
.c
ng
co
21
an
th
ng

Circular Buffer
o
du
u
cu

22

11

CuuDuongThanCong.com https://fb.com/tailieudientucntt
10/12/2012

Phương pháp hoạt động


• Difficulites

om
.c
ng
co
23
an
th
ng

Xử lý lỗi
o
du

• Always Keep One Slot Open


• Use a Fill Count
u
cu

• Read / Write Counts

24

12

CuuDuongThanCong.com https://fb.com/tailieudientucntt
10/12/2012

Ví dụ

om
.c
ng
co
25
an
th
o ng
du
u
cu

13

CuuDuongThanCong.com https://fb.com/tailieudientucntt

You might also like