ự nhiên nghe bài này xong muốn khóc nhớ lúc sinh nhật , cha k có gì tặng mình , mình lại bắt ba mua đồ chơi , lúc đó cha nói : cha k có tiền lúc đó mình bực lắm vào phòng úp mặt vào gối khóa phòng lại, tới ngày sau , mình tính lại xl cha mình nhưng k có đủ can đảm
Trang 1HCM City Univ of Technology, Faculty of Mechanical Engineering Phung Tri Cong
(RS232 - EUSART)
Trang 2HCM City Univ of Technology, Faculty of Mechanical Engineering Phung Tri Cong
GIỚI THIỆU EUSART
Module EUSART (Enhanced Universal Synchronous Asynchronous
Receiver Transmitter ) là module giao tiếp nối tiếp với thiết bị ngoại vi
có các tính năng sau
● Truyền nhận dữ liệu bất đồng bộ ở chế độ full-duplex
● Bộ đệm vào 1 ký tự, bộ đệm ra 2 ký tự
● Chiều dài ký tự có thể lập trình là 8-bit hoặc 9-bit
● Phát hiện lỗi khi truyền nhận
● Có khả năng truyền nhận đồng bộ ở chế độ half-duplex
Trang 3HCM City Univ of Technology, Faculty of Mechanical Engineering Phung Tri Cong
TRUYỀN DỮ LIỆU NỐI TIẾP (1)
● Truyền dữ liệu ở khoảng cách xa
● Tốc độ truyền dữ liệu thấp
● Truyền dữ liệu nối tiếp đồng bộ
● Truyền dữ liệu nối tiếp bất đồng bộ
Trang 4HCM City Univ of Technology, Faculty of Mechanical Engineering Phung Tri Cong
TRUYỀN DỮ LIỆU NỐI TIẾP (2)
Truyền dữ liệu nối tiếp đồng bộ
● Dùng tín hiệu clock riêng để đồng bộ hóa mạch thu và mạch phát
● Thường dùng khung dữ liệu lớn hơn và truyền nhanh hơn (so với truyền dữ liệu nối tiếp bất đồng bộ)
Trang 5HCM City Univ of Technology, Faculty of Mechanical Engineering Phung Tri Cong
TRUYỀN DỮ LIỆU NỐI TIẾP (3)
Truyền dữ liệu nối tiếp bất đồng bộ
● Không cần tín hiệu clock riêng để đồng bộ hóa truyền dữ liệu
● Mỗi ký tự được đóng khung bằng “start bit” và “stop bit”
● Bên thu cần nhận dạng “start bit” và “stop bit” để nhận đúng
ký tự dữ liệu
Trang 6HCM City Univ of Technology, Faculty of Mechanical Engineering Phung Tri Cong
TRUYỀN DỮ LIỆU NỐI TIẾP (4)
Trang 7HCM City Univ of Technology, Faculty of Mechanical Engineering Phung Tri Cong
CÁC KIỂU ĐƯỜNG TRUYỀN
● Đơn công (simplex): đường dây dành riêng cho hoạt động truyền hoặc
nhận dữ liệu chứ không dùng cho cả hai
● Bán song công (Half-duplex): đường dây có thể dùng cho hoạt động
truyền hoặc nhận dữ liệu nhưng mỗi lần dùng chỉ có 1 chiều
● Song công (Full-duplex): hoạt động truyền và nhận có thể tiến hành
đồng thời
Trang 8HCM City Univ of Technology, Faculty of Mechanical Engineering Phung Tri Cong
CÁC THANH GHI ĐIỀU KHIỂN
● Transmit Status and Control (TXSTA)
● Receive Status and Control (RCSTA)
● Baud Rate Control (BAUDCTL)
Trang 9HCM City Univ of Technology, Faculty of Mechanical Engineering Phung Tri Cong
ASYNCHRONOUS TRANSMISSION SETUP
● Khởi động các cặp thanh ghi (SPBRGH, SPBRG) và các bit (BRGH,
BRG16) để thiết lập tốc độ truyền baudrate
● Cho phép sử dụng cổng nối tiếp bất đồng bộ bằng cách clear bit
SYNC và set bit SPEN
● Cho phép truyền bằng cách set bit điều khiển TXEN
● Nếu sử dụng ngắt thì set bit TXIE và kiểm tra bit TXIF, sau đó kích
khởi bit cho phép ngắt GIE và PEIE
● Đưa dữ liệu cần truyền vào thanh ghi TXREG Lúc này VĐK sẽ bắt
đầu truyền tín hiệu
Trang 10HCM City Univ of Technology, Faculty of Mechanical Engineering Phung Tri Cong
ASYNCHRONOUS RECEPTION SETUP
● Khởi động các cặp thanh ghi (SPBRGH, SPBRG) và các bit (BRGH,
BRG16) để thiết lập tốc độ truyền baudrate
● Cho phép sử dụng cổng nối tiếp bất đồng bộ bằng cách clear bit
SYNC và set bit SPEN
● Nếu sử dụng ngắt thì set bit RCIE và kiểm tra bit RCIF, sau đó kích
khởi bit cho phép ngắt GIE và PEIE
● Cho phép nhận bằng cách set bit CREN
● Bit cờ ngắt RCIF sẽ được set khi 1 ký tự được truyền đến bộ đệm
nhận
● Lấy giá trị dữ liệu 8-bit bằng cách đọc thanh ghi RCREG
Trang 11HCM City Univ of Technology, Faculty of Mechanical Engineering Phung Tri Cong
SƠ ĐỒ CHÂN MAX232
RX
TX
Trang 12HCM City Univ of Technology, Faculty of Mechanical Engineering Phung Tri Cong
VÍ DỤ 1: TRUYỀN TÍN HIỆU (1)
Thiết kế và mô phỏng việc truyền tín hiệu bằng VĐK sử dụng
module EUSART và thiết bị Virtual Terminal?
RE3/MCLR/VPP 1
RA1/AN1/C12IN1-3
RA2/AN2/VREF-/CVREF/C2IN+
4
RA4/T0CKI/C1OUT 6
RA5/AN4/SS/C2OUT 7
RB0/AN12/INT 33
RB1/AN10/C12IN3-34
RB2/AN8 35
RA7/OSC1/CLKIN
13 RA6/OSC2/CLKOUT 14
RD5/P1B 28 RD6/P1C 29 RD7/P1D 30
RC4/SDI/SDA 23 RC5/SDO 24 RC3/SCK/SCL 18 RC2/P1A/CCP1 17 RC1/T1OSI/CCP2 16 RC0/T1OSO/T1CKI 15
RB7/ICSPDAT
40 RB6/ICSPCLK
39 RB5/AN13/T1G
38 RB4/AN11 37
RD3 22 RD2 21 RD1 20 RD0 19 RC7/RX/DT 26 RC6/TX/CK 25
RE2/AN7 10 RE1/AN6 9 RE0/AN5 8
RA3/AN3/VREF+/C1IN+
5
RD4 27
RB3/AN9/PGM/C12IN2-36
RA0/AN0/ULPW U/C12IN0-2
U1
PIC16F887
R1
1k
R2
10k
D1
DIODE-LED VCC
C1
22p
C2
22p
X1
CRYSTAL FREQ=20MHz
D2
LED-RED
D3
LED-GREEN
R3
330R
R4
330R
RXD
RTS TXD
CTS
Trang 13HCM City Univ of Technology, Faculty of Mechanical Engineering Phung Tri Cong
VÍ DỤ 1: TRUYỀN TÍN HIỆU (2)
Thiết kế và mô phỏng việc truyền tín hiệu bằng VĐK sử dụng
module EUSART và thiết bị Virtual Terminal?
#include <16f887.h>
#FUSES NOWDT, HS, NOPUT,
NOPROTECT, NODEBUG
#use delay(clock=20000000)
#use rs232(baud=9600, parity=N,
xmit=PIN_C6, rcv=PIN_C7)
#use fast_io(b)
#byte PORTD = 0x8
int8 i=0;
void main() {
enable_interrupts(GLOBAL);
enable_interrupts(INT_RDA);
set_tris_d(0);
while (1) {
PORTD = i;
putc('1');
i = i+1;
delay_ms(1000);
} }
Trang 14HCM City Univ of Technology, Faculty of Mechanical Engineering Phung Tri Cong
VÍ DỤ 2: TRUYỀN NHẬN TÍN HIỆU
Thiết kế và mô phỏng việc truyền nhận tín hiệu bằng 2 VĐK sử
dụng module EUSART và thiết bị Virtual Terminal?