Tải bản đầy đủ (.pptx) (16 trang)

Báo cáo bài tập lớn giao tiếp máy tính DÙNG i2c GIAO TIẾP 3 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 (438.68 KB, 16 trang )

ĐẠI HỌC BÁCH KHOA TP.HCM
KHOA CƠ KHI
BỘ MÔN CƠ ĐIỆN TƯ

BÁO CÁO KỸ THUẬT GIAO TIẾP MÁY TÍNH

Đề tài: DÙNG I2C GIAO TIẾP 3 VI ĐIỀU KHIỂN
GVHD:

TS. Lê Thanh Hải

z

Nhóm thực hiện:
1.Đỗ Ngọc Khỏe
2. Trương Thể Vượng
3. Lê Minh Chọn
1


Nội dung thuyết trình

1.
2.
3.

Giới thiệu về giao tiếp I2C
Modun I2C trong PIC
Cách dùng modun I2C trong CCS

z



2


1.

Giới thiệu về giao tiếp I2C



Mục tiêu ra đời chuẩn I2C: Đạt được hiệu quả cho phần cứng tốt nhất với
mạch điện đơn giản.



Chuẩn truyền I2C được Phillip phát triển, nhưng được rất nhiều nhà sản
xuất IC sử dụng.

3


1.

Giới thiệu về giao tiếp I2C

Giao tiếp I2C là loại giao tiếp nối tiếp được thực hiện trên 2 đường: Clock
(SCL) và Data (SDA)

Sơ đồ giao tiếp I2C


4


1.

Giới thiệu về giao tiếp I2C

Tại sao phải cần quan hệ chủ tớ ?

SDA

Master
Vì: Trong giao
tiếp cần có con master để đảm 2 nhiệm vụ:
SCL

Slave

+ Lựa chọn địa chỉ để truyền nhận với các ICs (slave).
+ Tạo xung clock kiểm soát quá trình giao tiếp

5


1.



Giới thiệu về giao tiếp I2C


Một bus I2C chuẩn truyền 8 bit dữ liệu.
Tốc độ truyền:
+ Chế độ chuẩn (Standard mode): 100Kbits/s
+ Chế độ nhanh (Fast mode): 400Kbits/s

:

+ Chế độ cao tốc (high- speed mode): 3,4Mbits/s

6


1.

Giới thiệu về giao tiếp I2C

Quá trình giao tiếp giữa Master & Slave
- Master xác định địa chỉ của slave cần giao tiếp
- Master quyết định quá trình truyền hay nhận
- Thiết bị Master gửi (nhận) dữ liệu từ thiết bị Slave
- Master đưa tín hiệu kết thúc.
+ Nếu truyền từ Master sang Slave: Master sẽ tạo tín hiệu STOP.
+Nếu truyền từ Slave sang Master: Master sẽ gởi xung NOT-ACK và tạo tín hiệu STOP.

7


1. Giới thiệu về giao tiếp I2C

Định dạng dữ liệu truyền


- Dữ liệu được truyền tại mỗi cạnh lên của xung clock
- Sự thay đổi xảy ra khi SCL đang ở mức thấp.
- Số lượng byte trong 1 lần truyền là tùy ý, tối đa là 128 byte

8


1. Giới thiệu về giao tiếp I2C

Điều kiện Start và Stop của bus I2C

9


1. Giới thiệu về giao tiếp I2C

- Sau mỗi 8 bit dữ liệu sẽ có 1 bit ACK để bao hiệu dữ liệu đã nhận được
- Xung ACK được tạo khi xung SDA được kéo xuống

10


1. Giới thiệu về giao tiếp I2C

11

Giải thuật truyền nhận I2C



1. Giới thiệu về giao tiếp I2C

- Độ dài địa chỉ là 7 bit, nên có thể kết nối tối đa 128 thiết bị.
- Bit thứ 8 chỉ chiều truyền nhận dữ liệu.
+ bit R/W=0: dữ liệu truyền từ master sang slave
+ bit R/W=1: dữ liệu truyền từ salve sang master
- Byte địa chỉ sẽ được ngay sau điều kiện START, sau đó là những byte dữ liệu.

12


2. Giới thiệu modun I2C trong Pic

Khối I2C có 6 thanh ghi điều khiển hoạt động, đó là:

‐ SSPCON: Thanh ghi điều khiển
‐ SSPCON2: Thanh ghi điều khiển thứ 2
‐ SSPSTAT: Thanh ghi trạng thái
‐ SSPBUF: Thanh ghi bộ đệm truyền nhận
‐ SSPSR: Thanh ghi dịch
‐ SSPADD: Thanh ghi địa chỉ

13


2. Giới thiệu modun I2C trong Pic

- Các thanh ghi SSPCON, SSPBUF, SSPADD và SSPSON2 có thể truy cập đọc/ghi được.
- Thanh ghi SSPSR không thể truy cập trực tiếp, là thanh ghi dich dữ liệu ra hay vào.
- Các thanh ghi SSPCON, SSPCON2 và SSPSTAT được định địa chỉ bit, mỗi bit có chức năng riêng


14


3. Cách dùng modun I2C trong CCS

-i2c_isr_state(): Thông báo trạng thái giao tiếp I2C
‐ i2c_start(): Tạo điều kiện START
‐ i2c_stop(): Tạo điều kiện STOP
‐ i2c_read(): Đọc giá trị từ thiết bị I2C, trả về giá trị 8 bit
‐ i2c_write(): Ghi giá trị 8 bit đến thiết bị I2C

Để sử dụng khối I2C ta sử dụng khai báo sau:
#use i2c(chế_độ, tốc độ, sda = PIN_C4, scl=PIN_C3)
‐ Chế độ: Master hay Slave
‐ Tốc độ: Slow (100KHz) hay Fast (400KHz)
‐ SDA và SCL là các chân i2c tương ứng của PIC
15


CẢM ƠN THẦY VÀ CÁC BẠN
CHÚC MỌI NGƯỜI
SỨC KHỎE VÀ THÀNH ĐẠT

16



×