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

Chuong 4 Truyền thông UART trên Vi điều khiển

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 (1.26 MB, 21 trang )

TRƯỜNG ĐẠI HỌC PHENIKAA
KHOA ĐIỆN ĐIỆN TỬ

KỸ THUẬT VI XỬ LÝ VÀ VI
ĐIỀU KHIỂN
Chương 4: Truyền thông UART trên Vi điều
khiển
GIẢNG VIÊN:

ThS. ĐÀO TÔ HIỆU

Hà Nội, 01/2022


NỘI DUNG

✓Giới thiệu
✓Cấu hình, thơng số điện áp, dịng của các port
✓Truy xuất port điều khiển của vi điều khiển 8 bit
✓Giao tiếp vi điều khiển 8 bit với LCD

2


GIỚI THIỆU
UART (Universal Asynchronous Receiver / Transmitter) là bộ
truyền nhận dữ liệu nối tiếp khơng đồng bộ.
•Baudrate : tốc độ truyền bit – số bit truyền đi trong 1 giây
(bps-Kbps).
•Data Frame: khung truyền dữ liệu, gồm các data bits
thường có độ dài 5-9 bits.


•Q trình truyền UART được điều khiển bởi 3 thành ghi:
thanh ghi TXSTA (truyền), RCSTA (nhận), BAUDCTL (tốc độ
truyền).

3


GIAO TIẾP UART

Giao tiếp giữa giữa 2 thiết bị
tương đồng về điện áp logic

Giao tiếp giữa 2 thiết bị khác
biệt về điện áp logic
4


UART VÀ CHUẨN RS232

5


UART VÀ CHUẨN RS232
- RS232 các mức logic được định nghĩa khác với logic
TTL. Mức 1: +3 đến +15 V, mức 0 từ -5 đến -15 V.
- Cổng COM này thường được chia thành 2 loại là 9
chân hoặc 25 chân

6



SƠ ĐỒ KHỐI BỘ TRUYỀN DỮ LIỆU

7


THANH GHI ĐIỀU KHIỂN UART (TRUYỀN)
❑ Bit 0: TX9D =>bit địa chỉ/dữ liệu hoặc bit chẵn lẻ.
❑ Bit 1: TRMT => bit trạng thái Thanh ghi dịch truyền (TSR). 1 =
TSR trống, 0 = TSR đủ
❑ Bit 2: BRGH => bit Chọn tốc độ truyền cao CHỈ CHO hoạt
động ở chế độ Không đồng bộ. BRGH=1 (tốc độ cao),
BRGH=0 (tốc độ thấp)
❑ Bit 3: SENDB Gửi ký tự ngừng truyền (chế độ không đồng bộ).
SENDB = 1: Gửi ngắt đồng bộ cho lần truyền tiếp theo
SENDB = 0: Hoàn thành gửi ngắt đồng bộ

8


THANH GHI ĐIỀU KHIỂN UART (TRUYỀN)

❑ Bit 4: SYNC là bit chọn chế độ EUSART
SYNC = 1: chế độ đồng bộ
SYNC = 0: chế độ bất đồng bộ
❑ Bit 5: TXEN=1/0 tương đương cho phép truyền/cấm truyền.
❑ Bit 6 TX9 : TX9=1 truyền data 9 bit, ngược lại truyền data 8 bit
được sử dụng. Bit thứ 9 trong chế độ truyền 9 bit thường được
sử dụng làm bit chẵn lẻ.
❑ Bit 7 CSRC : Bit chọn nguồn đồng hồ, không sử dụng ở chế độ

UART.

9


SƠ ĐỒ KHỐI BỘ NHẬN DỮ LIỆU

10


THANH GHI ĐIỀU KHIỂN UART (NHẬN)
❑ Bit 7: SPEN = 1/0: cho phép/cấm cổng nối tiếp (cấu hình
chân truyền và nhận dữ liệu là chân truyền dữ liệu nối tiếp)
Bit 6: RX9 = 1/0: nhận 9 data bit/8 bit
❑ Bit 5: SREN là bit nhận dữ liệu (chế độ đồng bộ)
❑ Bit 4: CREN là bit cho phép nhận dữ liệu liên tục
Chế độ bất đồng bộ: CREN = 1/0: cho phép/cấm
Chế độ đồng bộ: CREN=1: cho phép cho đến khi bit CREN bị
xóa, CREN=0 khơng cho phép.

11


THANH GHI ĐIỀU KHIỂN UART (NHẬN)
❑ Bit 3: ADDEN quan tâm khi ở chế độ không đồng bộ
truyền data 9 bits. ADDEN = 1: cho phép bộ xác định địa
chỉ, cho phép ngắt và nạp bộ đệm nhận dữ liệu khi bit
RSR<8> = 1. ADDEN = 0: không cho phép bộ xác định địa
chỉ, tất cả byte được nhận và bit thứ 9 có thể dùng như
parity bit.

❑ Bit 2: FERR=1 báo lỗi khung truyền. FERR=0 khơng có lỗi
❑ Bit 1: OERR = 1: có lỗi tràn/khơng lỗi.
❑ Bit 0: RX9D là bit thứ 9 của dữ liệu nhận được, cũng có
thể được dùng như parity bit.

12


THANH GHI TỐC ĐỘ TRUYỀN
❑ Bit 7: Quan tâm khi ở chế độ không đồng bộ. ABDOVF=1/0
tràn timer tạo tốc độ baud tự động/không tràn.
❑ Bit 6: Quan tâm khi ở chế độ không đồng bộ. RCIDL=1 bộ
nhận đang ngừng. RCIDL = 0 đã nhận start bit và bộ nhận
đang nhận.
❑ Bit 4: Chế độ đồng bộ:
SCKP=1: dữ liệu được dịch vào lúc sườn lên xung clock
SCKP=0: dữ liệu được dịch vào lúc sườn xuống xung clock
Chế độ bất đồng bộ:
SCKP = 1: truyền dữ liệu đảo đến chân RB7/TX/CK
SCKP = 0: truyền dữ liệu không đảo đến chân RB7/TX/CK

13


THANH GHI TỐC ĐỘ TRUYỀN
❑ Bit 3: BRG16=1/0: dùng bộ tạo tốc độ truyền 16bits/bits
❑ Bit 1: Quan tâm khi ở chế độ không đồng bộ.
WUE=1: bộ nhận chờ đến sườn xuống (không nhận ký tự
nếu RCIF=1), WUE sẽ tự động xóa sau khi RCIF = 1.
WUE = 0: bộ nhận hoạt động bình thường.

❑ Bit 0: ABDEN=1/0 cho phép/cấm hoạt động với tốc độ baud
tự động (chế độ bất đồng bộ).

14


TÍNH TỐN TỐC ĐỘ BAUD

Ví dụ: Truyền với 9600 baud ở chế độ không đồng bộ 8
bit, tần số thạch anh của PIC16F887 là 20MHz.
Giải: Cấu hình: SYNC=0 (chế độ không đồng bộ),
BGR16=0 (truyền data 8 bit), BGRH=1.
𝐹𝑜𝑠𝑐
20000000
n=
-1 =
-1 ≈ 129.02≈ 129
16∗𝑏𝑎𝑢𝑑𝑟𝑎𝑡𝑒

16∗9600

=> Calculated Baudrate =
=> Error =

9615−9600
9615

𝐹𝑜𝑠𝑐
16∗(𝑛+1)


≈0.16%

15

=

20000000
16∗(129+1)

≈9615


GHÉP NỐI PIC VỚI MAX232

16


GHÉP NỐI PIC VỚI CH340

17


GHÉP NỐI PIC VỚI PL2303

18


GHÉP NỐI PIC VỚI ESP8266

19



GHÉP NỐI PIC VỚI BLUETOOTH

20



×