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

Báo cáo bài tập lớn giao tiếp máy tính GIAO TIẾP i2c GIỮA máy TÍNH và 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 (2.23 MB, 32 trang )

GIAO TIẾP I2C GIỮA MÁY TÍNH
VÀ VI ĐIỀU KHIỂN
Group 4 – Elite
CBGD: TS. LÊ THANH HẢI


Mục lục
1.
2.
3.
4.
5.

Giới thiệu tổng quan
Chuẩn truyền I2C
Giải thuật điều khiển
Ứng dụng và mô phỏng
Đánh giá và hướng phát triển


Tổng quan
• Mục tiêu đề tài: Sử dụng chuẩn truyền I2C giao tiếp giữa máy tính và vi điều
khiển, máy tính đóng vai trò là Master và 2 vi điều khiển đóng vai trò là
Slaver.
• Các chuẩn giao tiếp có thể thực hiện yêu cầu: I2C, SPI, RS232….
I2C

Slaver 1

I2C


Slaver 2

PC


Chuẩn giao tiếp I2C
• Để tạo ra sự giao tiếp giữa các vi điều khiển hoặc giữa vi điều khiển và các
thiết bị ngoại vi các phương thức truyền thông đã ra đời.
• I2C: Inter-Integrated Circuit do Philips phát triển
cung cấp một phương thức truyền đạt hiệu
quả cao với phần cứng đơn giản.


Chuẩn giao tiếp I2C
• Giao thức I2C được tích hợp trong một số loại thiết bị:
+ Các bộ chuyển đổi (ADC và DAC).
+ Bộ nhớ EEPROM.
+ Các loại IC điều khiển LCD, LED


Bus giao tiếp I2C

Master

SCL

Serial Clock

SDA


Slaver
Receiver

Transmitter
SCL
Master

SDA

Serial Data

SDA

Slaver
Transmitter

Receiver
SCL


Chuẩn giao tiếp I2C

• Mỗi thiết bị kết nối với bus I2C sẽ được cấu hình là Master hay
Slaver đồng thời nhận một địa chỉ để phân biệt các thiết bị với nhau.
• Master đóng vai trò tạo xung clock và quản lý địa chỉ của các Slaver
trong quá trình giao tiếp.


Chuẩn giao tiếp I2C
• Một bus I2C có thể hoạt động ở các chế độ:

- Một chủ - một tớ (one master – one slaver).
- Một chủ - nhiều tớ (one master – multi slaver).
- Nhiều chủ - nhiều tớ (multi master – multi slaver).
• Quá trình truyền nhận dữ liệu: Master xác định địa chỉ của slaver và
quyết định đọc – ghi đối với slaver  Master đọc – gửi dữ liệu tới
slaver  Master kết thúc quá trình đọc – ghi dữ liệu.


Chuẩn giao tiếp I2C
• Tốc độ truyền của I2C:
– Standard mode: 100 Kbit/s.
– Fast mode: 400 Kbit/s.
– High speed mode: 3,4 Mbit/s.


I2C trên Pic
Thanh ghi và tập lệnh
Thanh ghi điều khiển SSPCON

Bit 7 WCOL Write Collition Detect bit
I2C master mode
WCOL = 1 đưa dữ liệu truyền đi vào thanh ghi SSPBUF trong khi chế độ truyền I2C
chưa sẵn sang
WCOL=1 không hiện tượng
I2C slave mode
WCOL = 1 dữ liệu mới được đưa vào thanh ghi SSPBUF trong khi dữ liệu cũ chưa
được truyền đi
Ở chế độ nhận bit này không set



I2C trên Pic
Thanh ghi và tập lệnh
Bit 6 SSPOV Receive Overflow Indicator Flag bit
SSPOV = 1 dữ liệu mới được nhận vào thanh ghi SSPBUF trong khi dữ liệu cũ
chưa được đọc
SSPOV = 0 không hiện tượng
bit này chỉ set cho nhận dữ liệu
Bit 5 SSPEN Synchronous Serial Port Enable bit
SSPEN = 1 cho phép cổng giao tiếp MSSP (pin SDA và SCL).
SSPEN = 0 không cho phép cổng giao tiếp
Bit 4 CKP SCK Release Control (Slave mode)
CKP = 1 cho xung clock tác động
CKP = 0 giữ xung clock ở mức thấp


I2C trên Pic
Thanh ghi và tập lệnh
bit 3-0 SSPM<3:0>: Synchronous Serial Port Mode Select bits
0110 = I2C Slave mode, 7-bit address
0111 = I2C Slave mode, 10-bit address
1000 = I2C Master mode, clock = FOSC / (4 * (SSPADD+1))
1011 = I2C firmware controlled Master mode (Slave idle)
1110 = I2C Slave mode, 7-bit address with Start and Stop bit interrupts enabled
1111 = I2C Slave mode, 10-bit address with Start and Stop bit interrupts enabled


I2C trên Pic
Thanh ghi và tập lệnh
Thanh ghi điều khiển SSPCON2


Bit 7 GCEN General Call Enable bit
GCEN = 1 Cho phép ngắt khi địa chỉ 0000h đưa vào thanh ghi SSPSR
GCEN = 0 không cho phép
Bit 6 ACKSTAT Acknowledge Status bit (truyền dữ liệu trên I2C Master mode)
ACKSTAT = 1 nhận được xung ACK từ I2C Slave
ACKSTAT=0 chưa nhận được xung ACK


I2C trên Pic
Thanh ghi và tập lệnh
Bit 5 ACKDT Acknowledge Data bit (nhận dữ liệu trên I2C Master mode)
ACKDT = 1 chưa nhận được xung ACK
ACKDT = 0 đã nhận được xung ACK
Bit 4 ACKEN Acknowledge Sequence Enable bit (nhận dữ liệu trên I2C Master mode)
ACKEN = 1 cho phép xung ACK xuất hiện trên 2 pin SDA và SCL khi kết thúc
quá trình truyền nhận.
ACKEN = 0 không cho phép tác dụng
Bit 3 RCEN Receive Enable bit (I2C Master mode).
RCEN = 1 Cho phép nhận dữ liệu trên I2C Master mode.
RCEN = 0 không cho nhận


I2C trên Pic
Thanh ghi và tập lệnh


I2C trên Pic
Thanh ghi và tập lệnh



I2C trên Pic

Thanh ghi và tập lệnh


Hoạt động I2C trên Pic
Điều kiện Start và stops


Hoạt động I2C trên Pic
Điều kiện Start và stop


Hoạt động I2C trên Pic
Định dạng dữ liệu


Hoạt động I2C trên Pic
Định dạng dữ liệu


Hoạt động I2C trên Pic
Giải thuật truyền nhận


Hoạt động I2C trên Pic
Truyền nhận Master - Slave


Hoạt động I2C trên Pic

Truyền nhận Master - Slave


Hoạt động I2C trên Pic
Truyền nhận Master - Slave


×