You are on page 1of 93

TRƯỜNG ĐẠI HỌC BÁCH KHOA

KHOA CƠ KHÍ
BỘ MÔN CƠ ĐIỆN TỬ

KỸ THUẬT
VI ĐIỀU KHIỂN PIC
Firma convenzione
Politecnico di Milano e Veneranda Fabbrica
TS. Đặng
del Duomo Phước Vinh
di Milano
Aula Magna – Rettorato
Mercoledì 27 maggio 2015
Email: dangphuocvinh@gmail.com
Phone: 0908 217 415
2
Nội dung (30 tiết)
1. Giới thiệu chung
2. Cấu trúc phần cứng
3. Tập lệnh, chỉ thị tiền xử lý
4. Bộ định thời
5. Hoạt động ngắt
6. Bộ chuyển đổi ADC
7. Giao tiếp nối tiếp
TS. Đặng Phước Vinh Khoa Cơ khí
CHƯƠNG 7

GIAO TIẾP NỐI TIẾP


Firma convenzione
Politecnico di Milano e Veneranda Fabbrica
del Duomo di Milano
Aula Magna – Rettorato
Mercoledì 27 maggio 2015
4
Các chuẩn giao tiếp nối tiếp
1. Giao diện đồng bộ nối tiếp
MSSP (Master Synchronous Serial Port)
❑SPI (Serial Peripheral Interface)
❑I2C (Inter-Intergrated Circuit)
o I2C Master Mode

2. Giao tiếp cổng nối tiếp


USART (Universal Synchronous Asynchronous Receiver Transmitter)

TS. Đặng Phước Vinh Khoa Cơ khí


GIAO TIẾP I2C
6
Giao tiếp I2C (Inter-Intergrated Circuit)

Định địa chỉ thiết bị: 7-bit hoặc 10 bit


+5V
Rkéo: 1.8 – 47kΩ 1 Master +3.3V
1.8kΩ , 4.7kΩ ,10kΩ 128 thiết bị
127 Slaves
VCC

Cần: 16 địa chỉ dự trữ 1 Master


Rp → Tối đa là 112 nút có thể 111 Slaves khác nhau Serial Clock
giao tiếp trên cùng một bus
SCL

SDA
I2C bus Serial
Data
MCU Sensor ADC EEPROM MCU Line
Master Slave Slave Slave Slave

TS. Đặng Phước Vinh Khoa Cơ khí


7
Chế độ hoạt động
Mode Speed
Standard Mode: 100 kbit/s
1 Master – 1 Slave
Low-speed Mode: 10 kbit/s

1 Master – multi-Slave Fast Mode: 400 kbit/s

Fast Mode Plus: 1 Mbit/s


Multi-Master – Multi-Slave
High-speed Mode : 3.4 Mbit/s

TS. Đặng Phước Vinh Khoa Cơ khí


8
Giản đồ thời gian
Idle Idle
Status Status

Start Stop
Transper data

Start sequence
TS. Đặng Phước Vinh Khoa Cơ khí
9
Đọc 1 byte ▪ Master gởi cho Slave
▪ Bằng phần mềm

Stop
Start Re-Start Sequence
Sequence Write Sequence Read
NAK

ST Device Add. (7 bit) W Register Add (8 bit) SR Device Add. (7 bit) R NAK SP
Master

AK AK AK Data (8 bit)
Slave
AK AK AK

▪ Slave gởi cho Master


AK (ACK) : Acknowledge = ‘0’ ▪ Tự động gởi
NAK (NACK) : Not Acknowledge = ‘1’
TS. Đặng Phước Vinh Khoa Cơ khí
10
Đọc nhiều byte
Start Write Re-Start Read AK

ST Device Add. (7 bit) W Register Add (8 bit) SR Device Add. (7 bit) R AK


Master

AK AK AK Data (8 bit)
Slave
AK AK AK
NAK Stop

AK AK NAK SP
Master

Data (8 bit) Data (8 bit) Data (8 bit)


Slave
TS. Đặng Phước Vinh Khoa Cơ khí
11
Ghi 1 byte
Start Stop
Sequence Write Sequence

Master ST Device Add. (7 bit) W Register Add (8 bit) Data (8 bit) SP

Slave AK AK AK

AK AK AK

AK (ACK) : Acknowledge = ‘0’


NAK (NACK) : Not Acknowledge = ‘1’
TS. Đặng Phước Vinh Khoa Cơ khí
12
Ghi nhiều byte
Start Stop
Sequence Write Sequence

ST Device Add. (7 bit) W Register Add (8 bit) Data (8 bit) Data (8 bit) SP
Master

AK AK AK AK
Slave
AK AK AK AK

AK (ACK) : Acknowledge = ‘0’


NAK (NACK) : Not Acknowledge = ‘1’
TS. Đặng Phước Vinh Khoa Cơ khí
13
Module I2C cho LCD

TS. Đặng Phước Vinh Khoa Cơ khí


14
Module I2C cho LCD

TS. Đặng Phước Vinh Khoa Cơ khí


15
Module I2C cho LCD

TS. Đặng Phước Vinh Khoa Cơ khí


16
I2C – Các thanh ghi liên quan
1. SSPCON1, SSPCON2
❑ Điều khiển MSSP
❑ Cho phép đọc ghi
2. SSPSTAT
❑ Chứa các trạng thái hoạt động của MSSP
❑ Chỉ cho phép đọc & ghi ở 2 bit đầu, 6 bit còn lại chỉ đọc
3. SSPBUF: chứa dữ liệu truyền nhận nối tiếp
4. SSPSR: thanh ghi dịch dùng để truyền nhận dữ liệu
5. SSPADD: chứa giá trị tạo ra tốc độ baud cho xung clock dùng để truyền
nhận dữ liệu tại chân SCL

TS. Đặng Phước Vinh Khoa Cơ khí


17
SSPCON - MSSP CONTROL REGISTER 1

WCOL SSPOV SSPEN CKP SSPM3 SSPM2 SSPM1 SSPM0

bit 7 WCOL: Write Collision Detect Bit


1: đưa dữ liệu truyền đi vào thanh ghi SSPBUF trong khi chế độ
truyền dữ liệu của I2C chưa sẵn sàng
0: không có hiện tượng trên diễn ra

bit 6: SSPOV: Receive Overflow Indicator bit


Bit này chỉ có tác dụng khi nhận dữ liệu
1: dữ liệu mới được đưa vào SSPBUF trong khi dữ liệu cũ chưa
được đọc
0: không có hiện tượng trên xảy ra

TS. Đặng Phước Vinh Khoa Cơ khí


18
SSPCON1 - MSSP CONTROL REGISTER 1

WCOL SSPOV SSPEN CKP SSPM3 SSPM2 SSPM1 SSPM0

bit 5: SSPEN: Synchronous Serial Port Enable bit


1: cho phép cổng giao tiếp nối tiếp MSSP (chân SDA và SCL)
0: không cho phép cổng giao tiếp nối tiếp MSSP

bit 4: CKP: không có tác dụng trong chế độ I2C Master Mode

bit 3:0 SSPM<3:0>: Synchronous Serial Port Mode Select bits


1000 I2C Master mode, xung clock = FOSC/(4*(SSPADD + 1))

TS. Đặng Phước Vinh Khoa Cơ khí


19
SSPCON2 - MSSP CONTROL REGISTER 2

GCEN ACKSTAT ACKDT ACKEN RCEN PEN RSEN SEN

bit 7: GCEN: General Call Enable bit


1: cho phép ngắt khi địa chỉ 0000h được nhận vào SSPSR
0: không cho phép chế độ địa chỉ trên

bit 6: ACKSTAT: Acknowledge Status bit (chỉ có tác dụng khi truyền
dữ liệu ở chế độ I2C Master Mode)
1: chưa nhận được xung ACK từ I2C Slave
0: nhận được xung ACK từ I2C Slave

TS. Đặng Phước Vinh Khoa Cơ khí


20
SSPCON2 - MSSP CONTROL REGISTER 2

GCEN ACKSTAT ACKDT ACKEN RCEN PEN RSEN SEN

bit 5: ACKDT: Acknowledge Data bit (chỉ có tác dụng khi nhận dữ
liệu ở chế độ I2C Master Mode)
1: Not Acknowledge
0: Acknowledge

bit 4: ACKEN: Acknowledge Sequency Enable bit (chỉ có tác dụng khi
nhận dữ liệu ở chế độ I2C Master Mode)
1: Cho phép xung ACK xuất hiện ở chân SDA và SCL khi kết
thúc quá trình nhận dữ liệu. Tự động xóa bởi phần cứng
0: không cho phép chế độ trên
TS. Đặng Phước Vinh Khoa Cơ khí
21
SSPCON2 - MSSP CONTROL REGISTER 2

GCEN ACKSTAT ACKDT ACKEN RCEN PEN RSEN SEN

bit 3: RCEN: Receive Enable bit (chỉ có tác dụng khi ở chế độ Master)
1: cho phép nhận dữ liệu ở chế độ I2C
0: không cho phép

bit 2: PEN: Stop Condition Enable bit


1: Cho phép thiết lập điều kiện STOP ở 2 chân SDA và SCL
0: không cho phép chế độ trên

TS. Đặng Phước Vinh Khoa Cơ khí


22
SSPCON2 - MSSP CONTROL REGISTER 2

GCEN ACKSTAT ACKDT ACKEN RCEN PEN RSEN SEN

bit 1: RSEN: Repeated Start Condition Enable bit


1: cho phép thiết lập điều kiện START lặp lại liên tục trên 2
chân SDA và SCL
0: không cho phép

bit 0: SEN: Start Condition Enable bit


1: Cho phép thiết lập điều kiện START ở 2 chân SDA và SCL
0: không cho phép chế độ trên

TS. Đặng Phước Vinh Khoa Cơ khí


23
SSPSTAT - MSSP STATUS REGISTER

SMP CKE D/A P S R/W UA BF

bit 7: SMP: Slew Rate Control bit


1: dùng tốc độ chuẩn (100 kHz and 1 MHz)
0: dùng tốc độ cao (400 kHz)

bit 4: P: Stop bit


1: vừa nhận được bit STOP
0: chưa nhận được bit STOP

bit 3: S: Start bit


1: vừa nhận được bit START
0: chưa nhận được bit START
TS. Đặng Phước Vinh Khoa Cơ khí
24
SSPSTAT - MSSP STATUS REGISTER

SMP CKE D/A P S R/W UA BF

bit 2: R/W: Read/Write bit information


1: đang truyền dữ liệu
0: không truyền dữ liệu

bit 0: BF: Buffer Full Status bit


1: thanh ghi SSPBUF đang chứa dữ liệu truyền đi hoặc nhận
được
0: thanh ghi SSPBUF không có dữ liệu

TS. Đặng Phước Vinh Khoa Cơ khí


25

RC4

RC3

TS. Đặng Phước Vinh Khoa Cơ khí


26
Sơ đồ khối BRG (Baud Rate Generator)

TS. Đặng Phước Vinh Khoa Cơ khí


27
Quá trình START

Điều kiện START sẽ không được hình thành nếu


▪ Chân SCL và SDA ở mức thấp hoặc
▪ Trong quá trình tạo điều kiện START, chân SCL được đưa về trạng thái
logic thấp trước khi chân SDA được đưa về mức logic thấp
TS. Đặng Phước Vinh Khoa Cơ khí
28
Quá trình START LIÊN TỤC
RSEN = 1

TS. Đặng Phước Vinh Khoa Cơ khí


29
Quá trình STOP

TS. Đặng Phước Vinh Khoa Cơ khí


30
Lịch vạn niên

TS. Đặng Phước Vinh Khoa Cơ khí


31
DS1307

TS. Đặng Phước Vinh Khoa Cơ khí


32
DS1307

TS. Đặng Phước Vinh Khoa Cơ khí


33
DS1307

TS. Đặng Phước Vinh Khoa Cơ khí


34
Mạch đồng hồ - LED

TS. Đặng Phước Vinh Khoa Cơ khí


35
Mạch đồng hồ - LCD

TS. Đặng Phước Vinh Khoa Cơ khí


GIAO TIẾP USART
37
Giao tiếp USART
✓ USART (Universal Synchronous Asynchronous Receiver Transmitter)
là một trong hai module I/O nối tiếp

✓ Còn được gọi là giao tiếp truyền thông nối tiếp (Serial
Communications Interface - SCI)

✓ Hai chân dùng cho USART:


▪ RC6/TX/CK
▪ RC7/RX/DT

✓ Chế độ:
▪ Bất đồng bộ (Asynchronous)
▪ Đồng bộ (Master mode)
▪ Đồng bộ (Slave mode)
TS. Đặng Phước Vinh Khoa Cơ khí
38
Các dạng giao tiếp nối tiếp
Chỉ giao tiếp
theo 1 chiều

Giao tiếp 2 chiều


Có thể giao tiếp
cùng thời điểm

Giao tiếp 2 chiều


Không thể giao tiếp
cùng thời điểm
TS. Đặng Phước Vinh Khoa Cơ khí
39
Tốc độ giao tiếp
✓ Tốc độ bit (Bit rate)
▪ Số lượng bit được gởi đi trong một giây (bps)

✓ Tốc độ baud (baud rate)


▪ Số lượng ký tự được gởi trong một giây
▪ Ký tự có thể 1 hoặc nhiều bit
▪ Với USART trong PIC 16F877A, 1 ký tự = 1 bit

Bit rate ≡ baud rate

TS. Đặng Phước Vinh Khoa Cơ khí


40
USART đồng bộ & bất đồng bộ
Đồng bộ TX RX
✓ Truyền một khối dữ liệu (ký tự) trong cùng một
thời điểm RX TX
✓ Giao tiếp theo chế độ half-duplex
CLK
✓ Một chân tạo xung clock ngoại từ master đến slave
✓ Chỉ sử dụng trong phạm vi ngắn
✓ Có thể thêm bit START, STOP, và tín hiệu chọn chip

TX RX
Bất đồng bộ
✓ Truyền một byte dữ liệu trong một thời điểm RX TX
✓ Giao tiếp theo chế độ full-duplex
✓ Không có chân tạo xung clock
✓ Có bit START và bit STOP, bit chẵn lẻ…

TS. Đặng Phước Vinh Khoa Cơ khí


41
Bit chẵn lẻ (Parity bit)
✓ Bit chẵn lẻ (parity bit) là một bit dùng để báo hiệu số
lượng bit có giá trị bằng 1 trong một nhóm bit cho trước
là một số chẵn hay là một số lẻ.

✓ Bit chẵn lẻ được sử dụng như là một mã phát hiện


lỗi đơn giản nhất.
✓ Có hai loại mã chẵn lẻ:
▪ bit chẵn lẻ dùng quy tắc số chẵn (even parity bit)
▪ bit chẵn lẻ dùng quy tắc số lẻ (odd parity bit)

TS. Đặng Phước Vinh Khoa Cơ khí


42
Bit chẵn lẻ (Parity bit)
8 bits including parity
7 bits of data (count of 1-bits)
even odd
0000000 0 00000000 10000000
1010001 3 11010001 01010001
1101001 4 01101001 11101001
1111111 7 11111111 01111111

Trong truyền dữ liệu nối tiếp, dạng thức dữ liệu được


dùng phổ thông nhất là dạng thức

1 bit START + 7 bit DATA + 1 bit Parity + 1 bit STOP

TS. Đặng Phước Vinh Khoa Cơ khí


43
Bảng mã ASCII

TS. Đặng Phước Vinh Khoa Cơ khí


44
Chế độ USART bất đồng bộ
✓ Hoạt động theo chuẩn NRZ (None-Return-to-Zero)
→1 bit START (0) + 8 bit DATA + 1 bit STOP (1)

✓ Bit LSB được truyền đi trước

✓ Các khối truyền và nhận dữ liệu độc lập với nhau sẽ


dùng chung tần số tương ứng với tốc độ baud

✓ Khối truyền và nhận phải dùng chung một định dạng


dữ liệu
TS. Đặng Phước Vinh Khoa Cơ khí
45
Sơ đồ khối TRUYỀN trong USART

TXSTA

RCSTA

TS. Đặng Phước Vinh Khoa Cơ khí


46
TXSTA: Transmit status and control register

CSRC TX9 TXEN SYNC - BRGH TRMT TX9D

bit 5 TXEN: Transmit Enable Bit


1: cho phép truyền
0: không cho phép truyền

bit 4: SYNC: USART Mode Select bit


1: dạng đồng bộ
0: dạng bất đồng bộ

TS. Đặng Phước Vinh Khoa Cơ khí


47
TXSTA: Transmit status and control register

CSRC TX9 TXEN SYNC - BRGH TRMT TX9D

bit 2 BRGH: High Baud Rate Select Bit


chỉ có tác dụng ở chế độ bất đồng bộ
1: tốc độ cao
0: tốc độ thấp

bit 1: TRMT: Transmit Shift Register Status bit


1: thanh ghi TSR không có dữ liệu
0: thanh ghi TSR có dữ liệu

TS. Đặng Phước Vinh Khoa Cơ khí


48
RCSTA: Receive status and control register

SPEN RX9 SREN CREN ADDEN FERR OERR RX9D

bit 7 SPEN: Serial Port Enable Bit


1: cho phép cổng nối tiếp hoạt động
0: không cho phép cổng nối tiếp hoạt động

TS. Đặng Phước Vinh Khoa Cơ khí


49
Truyền dữ liệu
✓ Thành phần quan trọng nhất: thanh ghi dịch TSR (Transmit
Shift Register)

✓ Dữ liệu cần truyền sẽ được đưa trước vào thanh ghi TXREG

✓ TSR sẽ lấy dữ liệu từ thanh ghi đệm TXREG


▪ Thanh ghi TXREG bị rỗng
▪ Cờ TXIF (PIR1<4>) sẽ được set lên 1
▪ Cờ TXIF không xóa được bằng phần mềm
▪ Cờ TXIF chỉ được xóa khi có dữ liệu mới được đưa vào
TXREG
TS. Đặng Phước Vinh Khoa Cơ khí
50
Truyền dữ liệu
✓ Trạng thái thanh ghi TSR → cờ TRMT (TXSTA<1>)

✓ TMRT = 1 → thanh ghi TSR rỗng


▪ Bit này chỉ đọc

✓ Thanh ghi TSR không có trong bộ nhớ dữ liệu và chỉ được điều
khiển bởi CPU

✓ TXEN = 1: cho phép khối truyền dữ liệu hoạt động

✓ Quá trình truyền chỉ bắt đầu khi


▪ Có dữ liệu trong thanh ghi TXREG
▪ Xung truyền baud được tạo ra

TS. Đặng Phước Vinh Khoa Cơ khí


51
Sơ đồ khối TRUYỀN trong USART

TS. Đặng Phước Vinh Khoa Cơ khí


52
Các bước thực hiện khi TRUYỀN
1. Tạo xung truyền tốc độ baud (đưa giá trị vào thanh ghi SPBRG)
2. Cho phép cổng giao tiếp nối tiếp bất đồng bộ hoạt động →
SYNC = 0 & SPEN = 1
3. Set bit TXIE nếu cần sử dụng ngắt
4. Set bit TX9 nếu cần truyền 9 bit dữ liệu
5. Set bit TXEN để cho phép truyền dữ liệu
6. Đưa bit thứ 9 vào TX9D (nếu truyền dữ liệu 9 bit)
7. Đưa 8 bit dữ liệu cần truyền vào thanh ghi TXREG
8. Kiểm tra bit GIE và PEIE nếu sử dụng ngắt truyền

TS. Đặng Phước Vinh Khoa Cơ khí


53
Sơ đồ khối NHẬN trong USART

TS. Đặng Phước Vinh Khoa Cơ khí


54
RCSTA: Receive status and control register

SPEN RX9 SREN CREN ADDEN FERR OERR RX9D

bit 7 SPEN: Serial Port Enable Bit


1: cho phép cổng nối tiếp hoạt động
0: không cho phép cổng nối tiếp hoạt động

bit 4 CREN: Continuous Receive Enable bit


1: cho phép nhận một chuỗi dữ liệu liên tục
0: không cho phép nhận

TS. Đặng Phước Vinh Khoa Cơ khí


55
RCSTA: Receive status and control register

SPEN RX9 SREN CREN ADDEN FERR OERR RX9D

bit 2 FERR: Framing Error Bit


1: xuất hiện lỗi “framing” trong quá trình nhận dữ liệu
0: không xuất hiện lỗi

bit 1 OERR: Overrun Error bit


1: lỗi tràn dữ liệu (có thể xóa bằng cách xóa bit CREN)
0: không có lỗi tràn dữ liệu

TS. Đặng Phước Vinh Khoa Cơ khí


56
Lỗi “Framing”: lỗi khung truyền
✓ Xuất hiện khi khối nhận (thanh ghi RSR) không nhận được bit
STOP đúng thời điểm
→ Khối truyền và nhận hoạt động với tốc độ baud khác nhau

✓ Khi xuất hiện lỗi → FERR = 1


✓ Dữ liệu mới vẫn có thể được truyền đi khi xảy ra lỗi “framing”
✓ Khi dữ liệu mới được truyền → FERR = 0
✓ Phải kiểm tra bit FERR trước khi đọc dữ liệu mới
✓ Bit FERR không thể xóa bằng phần mềm.
✓ Xóa bit FERR bằng cách xóa bit SPEN (RCSTA<7>)
TS. Đặng Phước Vinh Khoa Cơ khí
57
Sơ đồ khối NHẬN trong USART

TS. Đặng Phước Vinh Khoa Cơ khí


58
Nhận dữ liệu
✓ Dữ liệu được nhận từ chân RC7/RX/DT và đi qua khối phục hồi
dữ liệu
✓ Thực chất là một thanh ghi dịch tốc độ cao (gấp 16 hoặc 64
lần tốc độ baud)

✓ Thành phần quan trọng nhất: thanh ghi dịch RSR (Receive Shift
Register)

✓ Bit điều khiển cho phép nhận dữ liệu: CREN (RCSTA<4>)

✓ Dữ liệu nhận được trong thanh ghi RSR sẽ được đưa vào thanh
ghi RCREG → cờ RCIF = 1 (RCIF = 0 khi dữ liệu tại RCREG đã
được đọc)
TS. Đặng Phước Vinh Khoa Cơ khí
59
Nhận dữ liệu
✓ RCREG là thanh ghi có bộ đệm kép hoạt động theo cơ chế FIFO (First
In First Out)
▪ RCREG có thể nhận 2 byte dữ liệu
▪ Byte thứ 3 tiếp tục đưa vào thanh ghi RSR

✓ Nếu bit STOP của byte thứ 3 đã được nhận mà thanh ghi RCREG vẫn
đầy:
▪ Cờ báo tràn OERR sẽ được set
▪ Dữ liệu trong thanh ghi RSR sẽ bị mất
▪ Quá trình đưa dữ liệu từ RSR đến RCREG sẽ bị gián đoạn

→ Phải lấy hết dữ liệu của thanh ghi RCREG trước khi nhận dữ liệu
tiếp theo
TS. Đặng Phước Vinh Khoa Cơ khí
60
Nhận dữ liệu
✓ Nếu OERR = 1 → quá trình chuyển dữ liệu từ RSR đến RCREG sẽ
bị cấm

✓ Bit OERR phải được xóa bằng phần mềm: xóa bit CREN rồi set lại

✓ Bit FERR và bit dữ liệu thứ 9 (RX9D) được đưa vào bộ đệm như 8
bit dữ liệu

✓ Đọc thanh ghi RCREG → cập nhật giá trị mới cho FERR và RX9D
→ Đọc thanh ghi RCSTA trước khi đọc thanh ghi RCREG
TS. Đặng Phước Vinh Khoa Cơ khí
61
Các bước thực hiện khi NHẬN
1. Tạo xung truyền tốc độ baud (đưa giá trị vào thanh ghi SPBRG)
2. Cho phép cổng giao tiếp nối tiếp bất đồng bộ hoạt động → SYNC = 0 &
SPEN = 1
3. Set bit RCIE nếu cần sử dụng ngắt
4. Set bit RX9 nếu cần truyền 9 bit dữ liệu
5. Set bit CREN để cho phép truyền dữ liệu
6. Cờ RCIF được set sau khi nhận được dữ liệu
7. Đọc thanh ghi RCSTA để đọc bit dữ liệu thứ 9 và kiểm tra xem quá trình
nhận dữ liệu có bị lỗi hay không
8. Đọc dữ liệu 8 bit từ thanh ghi RCREG
9. Nếu quá trình nhận dữ liệu bị lỗi → xóa bit CREN
TS. Đặng
10. KiểmPhước
tra bitVinh
GIE và PEIE nếu sử dụng ngắt nhận Khoa Cơ khí
62
Giao tiếp nối tiếp UART – RS232
✓ Các chip vi điều khiển: chuẩn UART (hay chuẩn TTL)
▪ Chuyển 1 bit trong một đơn vị thời gian theo một tốc độ truyền
nhận dữ liệu quy định (tốc độ baud)
▪ Mức “0” → 0V
▪ Mức “1” → từ 3.3V tới 5V

✓ Máy tính: chuẩn RS232 (Recommeded Standard 232)


▪ Chuyển 1 bit trong một đơn vị thời gian theo một tốc độ truyền
nhận dữ liệu quy định (tốc độ baud)
▪ Cổng COM của máy tính
▪ Mức “0” → từ +3.5V tới +25V
▪ Mức “1” → từ –3.5V tới –25V
Dùng IC MAX232
TS. Đặng Phước Vinh Khoa Cơ khí
63
Cổng COM 9 chân

TS. Đặng Phước Vinh Khoa Cơ khí


64
Cổng COM 9 chân - Male

TS. Đặng Phước Vinh Khoa Cơ khí


65
Cổng COM 9 chân - Female

TS. Đặng Phước Vinh Khoa Cơ khí


66
Cổng COM 9 chân

TS. Đặng Phước Vinh Khoa Cơ khí


67
Cổng COM 25 chân
1 13

14 25

13 1

25 14

TS. Đặng Phước Vinh Khoa Cơ khí


68
MAX 232

TS. Đặng Phước Vinh Khoa Cơ khí


69
Đặc điểm & Ứng dụng
✓ Các PCs sử dụng chuẩn RS232 (cổng COM)
✓ Không yêu cầu tốc độ cao
✓ Giá thành rẻ
✓ Phần cứng đơn giản
✓ Tốc độ truyền nhận tối đa: 20kbit/s
✓ Khoảng cách truyền nhận tối đa: 15m
✓ Tuy nhiên ít phổ biến với các ứng dụng hiện nay
→ Thay thế bằng các chuẩn tốc độ cao hơn, giao diện tinh
vi hơn: USB, Ethernet

TS. Đặng Phước Vinh Khoa Cơ khí


70
MAX 232

TS. Đặng Phước Vinh Khoa Cơ khí


71
MAX 232

TS. Đặng Phước Vinh Khoa Cơ khí


72
MAX 232

TS. Đặng Phước Vinh Khoa Cơ khí


73
Ứng dụng cổng COM

TS. Đặng Phước Vinh Khoa Cơ khí


74

TS. Đặng Phước Vinh Khoa Cơ khí


75
Ứng dụng cổng COM

TS. Đặng Phước Vinh Khoa Cơ khí


76
Đầu đọc thẻ UHF201

TS. Đặng Phước Vinh Khoa Cơ khí


77
Tạo cổng COM ảo

TS. Đặng Phước Vinh Khoa Cơ khí


78
Giao tiếp nối tiếp UART – RS232

RS232 cable

TS. Đặng Phước Vinh Khoa Cơ khí


79
USB to COM

TS. Đặng Phước Vinh Khoa Cơ khí


USB to COM 80

TS. Đặng Phước Vinh Khoa Cơ khí


81
USB to COM

TS. Đặng Phước Vinh Khoa Cơ khí


82
Giao tiếp nối tiếp UART – RS232

C1 10uF
U4
1 15 1 3 P1
RE3/MCLR/VPP RC0/T1OSO/T1CKI
16
RC1/T1OSI/CCP2
2 17 1
RA0/AN0/ULPWU/C12IN0- RC2/P1A/CCP1 C1+ C1- DCD
3 18 6
RA1/AN1/C12IN1- RC3/SCK/SCL DSR
4 23 11 14 2
RA2/AN2/VREF-/CVREF/C2IN+ RC4/SDI/SDA T1IN T1OUT RXD
5 24 12 13 7
RA3/AN3/VREF+/C1IN+ RC5/SDO R1OUT R1IN RTS
6 25 10 7 3
RA4/T0CKI/C1OUT RC6/TX/CK T2IN T2OUT TXD
7 26 9 8 8
RA5/AN4/SS/C2OUT RC7/RX/DT R2OUT R2IN CTS
14 4
RA6/OSC2/CLKOUT DTR
13 19 2 9
RA7/OSC1/CLKIN RD0 VS+ RI
20 6
RD1 VS-
33 21
RB0/AN12/INT RD2
34
RB1/AN10/C12IN3- RD3
22
C2+ C2- C4 C3 ERROR
35 27 10uF 10uF
RB2/AN8 RD4
36 28 COMPIM
RB3/AN9/PGM/C12IN2- RD5/P1B
37 29 4 5
RB4/AN11 RD6/P1C
38 30
RB5/AN13/T1G RD7/P1D C2
39 10uF
RB6/ICSPCLK
40 8
RB7/ICSPDAT RE0/AN5
9 D9
RE1/AN6
10
R9
RE2/AN7
270R
PIC16F877A LED

TS. Đặng Phước Vinh Khoa Cơ khí


83
Trong CCS
#use rs232(baud = 9600, parity = N, xmit = PIN_C6, rcv = PIN_C7)

▪ #use rs232: cung cấp cho trình biên dịch thông tin về các tham
số cấu hình RS232 sẽ sử dụng để giao tiếp

▪ baud = 9600: khai báo tốc độ baud sử dụng là 9600

▪ parity = N: khai báo có sử dụng bit kiểm tra chẳn lẻ hay không, ở
đây ta không kiểm tra nên thiết lập parity = N

▪ xmit = PIN_C6: Chân truyền dữ liệu là PIN C6

▪ rcv = PIN_C7: Chân nhận dữ liệu là PIN C7


TS. Đặng Phước Vinh Khoa Cơ khí
84
Trong CCS
Để nhận dữ liệu từ máy
tính thông qua truyền
thông nối tiếp RS232, ta
sử dụng lệnh getch()

char c;
c = getch();

TS. Đặng Phước Vinh Khoa Cơ khí


85
MATLAB
✓ Matlab: MATrix LABoratory
✓ Công ty MathWorks thiết kế.
✓ Matlab cho phép tính toán số
với ma trận, vẽ đồ thị, xử lý
tín hiệu số, tối ưu hóa, xử lý
ảnh, tạo các giao diện người
dùng …
✓ Các phiên bản của Matlab
được ký hiệu theo năm mà
chúng được giới thiệu đi
kèm với chữ “a” hoặc “b”.

TS. Đặng Phước Vinh Khoa Cơ khí


86
MATLAB Cost

TS. Đặng Phước Vinh Khoa Cơ khí


87
MATLAB

Tab chức
năng

Vùng thực hiện lệnh Vùng chứa


các biến
được tạo ra

Thư mục
hiện hành

TS. Đặng Phước Vinh Khoa Cơ khí


88
MATLAB - Script

TS. Đặng Phước Vinh Khoa Cơ khí


89
MATLAB - GUIDE
Tạo giao diện đồ họa người dùng GUI (Graphical User Interface) để
kết nối với vi điều khiển PIC thông qua cổng COM

TS. Đặng Phước Vinh Khoa Cơ khí


90
MATLAB – Cổng COM
Tạo một biến cổng COM
ten_bien = serial(‘ten_cong_com’);
s = serial(‘COM1’);

Xem các thông số của cổng COM


get(tenbien);
get(s);

Chỉnh sửa các thông số cơ bản


set(ten_bien, ‘ten_thong_so’, gia_tri);
set(s,‘BaudRate’, 9600);

TS. Đặng Phước Vinh Khoa Cơ khí


91
MATLAB – Cổng COM
Mở cổng COM
fopen(ten_bien);
fopen(s);

Đóng cổng COM


fclose(ten_bien);
fclose(s);

Đọc các cổng COM trong bộ nhớ đến vùng làm việc của Matlab
(workspace)
object = instrfind;

Gửi dữ liệu
fwrite(tenbien, gia_tri gia_tri);
fwrite(s,
TS. 1);
Đặng Phước Vinh Khoa Cơ khí
92
MATLAB GUI – Ví dụ

TS. Đặng Phước Vinh Khoa Cơ khí


the END !
Firma convenzione
Politecnico di Milano e Veneranda Fabbrica
del Duomo di Milano
Aula Magna – Rettorato
Mercoledì 27 maggio 2015

You might also like