Lập trình PLC S7 1200 tiếng Việt-Chuong 7 truyền thông điểm điểm
Bai 6
1. USART
Universal Synchronous Asynchronous Receiver
Transmitter
Synchronous:
giao tiếp với các thiết bị ngoại vi như các IC A/D, D/A,
EEPROMs
Asynchronous:
giao tiếp với máy tính PC
2. USART trong PIC16F877A
5 thanh ghi quan trọng:
2 thanh ghi chức năng TXSTA, RCSTA
2 thanh ghi dữ liệu RCREG, TXREG
Thanh ghi tốc độ Baud: SPBRG
3. TXSTA
CSRC: Clock Source Select bit
Chế độ bất đồng bộ: không quan tâm
Chế độ đồng bộ: 1->chế độ Master( clock từ BRG)
0->chế độ Slave( clock từ bên ngoài)
TX9 : 9-bit Transmit Enable bit: chọn chế độ truyền 9 bit: ( =1: 9 bit, =0: 8 bit )
TXEN : Transmit Enable bit
=1: cho phép truyền , =0: cấm
SYNC : USART Mode Select bit
Chọn chế độ truyền đồng bộ hay không đồng bộ( =1: đồng bộ, =0: không đồng bộ )
BRGH : High Baud Rate Select bit
Chỉ hoạt động ở chế độ bất đồng bộ: chọn tốc độ cao hay thấp ( =1 HIGH, =0: LOW )
TRMT : Transmit Shift Register Status bit
bít báo trạng thái của bộ đệm: =1: TSR rỗng( dữ liệu đã được truyền xong ), =0: TSR đầy
( dữ liệu còn trong bộ đệm của UART )
TX9D : 9th bit of Transmit Data, can be Parity bit
giá trị của bít thứ 9 trong chế độ truyền 9 bit.
4. RCSTA
Bit 7 SPEN Serial Port Enable bit( = 1 Cho phép cổng giao tiếp USART )
Bit 6 RX9 9-bit Receive Enable bit( = 1 nhận 9 bit dữ liệu, = 0 nhận 8 bit dữ liệu)
Bit 5 SREN Single Receive Enable bit
Ỡ chế độ USART bất đồng bộ: bit này không cần quan tâm.
Ở chế độ USART Master đồng bộ:( = 1 cho phép chức năng nhận 1 byte dữ liệu (8 bit hoặc 9 bit))
Bit 4 CREN Continous Receive Enable bit
Ở chế độ bất đồng bộ:( = 1 cho phép nhận 1 chuỗi dữ liệu liên tục)
Ở chế độ đồng bộ:(= 1 cho phép nhận dữ liệu cho tới khi xóa bit CREN, = 0 không cho phép nhận
chuỗi dữ liệu)
Bit 3 ADDEN Address Detect Enable bit
Ở chế độ USART bất đồng bộ 9 bit
ADDEN = 1 cho phép xác nhận địa chỉ, khi bit RSR<8> được set thì ngắt được cho phép thực
thi và giá trị trong buffer được nhận vào.
ADDEN = 0 không cho phép xác nhận địa chỉ, các byte dữ liệu được nhận vào và bit thứ 9 có
thể được sử dụng như là bit parity.
Bit 2 FERR Framing Eror bit( = 1 xuất hiện lỗi “Framing- sai bit Stop” trong quá trình truyền nhận dữ
liệu
Bit 1 OERR Overrun Error bit(= 1 xuất hiện lỗi “Overrun- tràn”)
Bit 0 RX9D
Bit này chứa bit dữ liệu thứ 9 của dữ liệu truyền nhận
5. TXREG , RCREG , SPBRG
TXREG: chứa dữ liệu truyền đi trong quá trình truyền
RCREG: lưu dữ liệu từ ngoài vào trong quá trình nhận
SPBRG: thiết lập tốc độ baud
(BRGH=0) ( BRGH=1 )
6. Quá trình truyền và nhận
Quá trình nhận dữ liệu :
Nhận biết lúc nào có dữ liệu truyền tới:
Kiểu Polling: liên tục kiểm tra cờ RCIF( thanh ghi
PIR1) nếu =1 thì đọc dữ liệu
Kiểu dùng ngắt: được thiết lập bằng cách cho RCIE=
1 để cho phép ngắt. Tức là mỗi khi có dữ liệu truyền tới
RCREG thì sinh ra một ngắt
7. 1. Khởi tạo tốc độ baud: ở thanh ghi SPBRG.
2. Cho phép quá trình truyền không đồng bộ bắng cách
thiết lập SPEN = 1, SYNC= 0
3. Cho phép ngắt quá trình nhận dữ liệu: RCIE=1
4. Cho phép nhận dữ liệu : CREN = 1
5. Cho phép ngắt toàn cục băng việc GIE =1, PEIE = 1
( GIE, PEIE trong thanh ghi INTCON )
6. Xử lý các phần khác chương trình khi có ngắt xảy ra
thì xử lý dữ liệu
8. Quá trình truyền và nhận
1. Khởi tạo tốc độ baud: ở thanh ghi SPBRG
2. Cho phép quá trình truyền không đồng bộ bắng
cách thiết lập SPEN = 1, SYNC= 0
3. Cho phép truyền dữ liệu bằng cách thiết lập bít
TXEN = 1
4. Khi cần truyền dữ liệu chỉ cần Load dữ liệu đó lên
TXREG
Quá trình truyền dữ liệu