Giới thiệu về giao tiếp I2C 2.. Giới thiệu về giao tiếp I2C 3... Tại sao phải cần quan hệ chủ tớ ?Vì: Trong giao tiếp cần có con master để đảm 2 nhiệm vụ: + Lựa chọn địa chỉ để truyền nh
Trang 1ĐẠI HỌC BÁCH KHOA TP.HCM
KHOA CƠ KHÍ
BỘ MÔN CƠ ĐIỆN TỬ
z
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
Nhóm thực hiện:
1.Đỗ Ngọc Khỏe
2 Trương Thể Vượng
3 Lê Minh Chọn1
Trang 2Nội dung thuyết trình
1 Giới thiệu về giao tiếp I2C
2 Modun I2C trong PIC
3 Cách dùng modun I2C trong CCS
2
Trang 3 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
nhưng được rất nhiều nhà sản xuất IC sử
dụng
1 Giới thiệu về giao tiếp I2C
3
Trang 4Giao tiếp I2C là loại giao tiếp nối tiếp được
Sơ đồ giao tiếp I2C
1 Giới thiệu về giao tiếp I2C
4
Trang 5Tại sao phải cần quan hệ chủ tớ ?
Vì: Trong giao tiếp cần có con master để đảm
2 nhiệm vụ:
+ 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
1 Giới thiệu về giao tiếp I2C
5
Trang 6 Một bus I2C chuẩn truyền 8 bit dữ liệu.
+ Chế độ chuẩn (Standard mode): 100Kbits/s + Chế độ nhanh (Fast mode): 400Kbits/s
1 Giới thiệu về giao tiếp I2C
6
Trang 7Quá 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.
1 Giới thiệu về giao tiếp I2C
7
Trang 8Đị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
1 Giới thiệu về giao tiếp I2C
8
Trang 9Điều kiện Start và Stop của bus I2C
1 Giới thiệu về giao tiếp I2C
9
Trang 10- 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
1 Giới thiệu về giao tiếp I2C
10
Trang 11Giải thuật truyền nhận I2C
1 Giới thiệu về giao tiếp I2C
11
Trang 12- Độ 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.
1 Giới thiệu về giao tiếp I2C
12
Trang 13Khố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ỉ
2 Giới thiệu modun I2C trong
Pic
13
Trang 14- 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
2 Giới thiệu modun I2C trong
Pic
14
Trang 15-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
3 Cách dùng modun I2C trong CCS
15
Để 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
Trang 16CẢM ƠN THẦY VÀ CÁC BẠN
CHÚC MỌI NGƯỜI SỨC KHỎE VÀ THÀNH ĐẠT
16