• 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à... Chuẩn giao tiếp I2C• Để tạo ra
Trang 1GIAO TIẾP I2C GIỮA MÁY TÍNH
VÀ VI ĐIỀU KHIỂN
Group 4 – Elite
CBGD: TS LÊ THANH HẢI
Trang 2Mục lục
1 Giới thiệu tổng quan
2 Chuẩn truyền I2C
3 Giải thuật điều khiển
4 Ứng dụng và mô phỏng
5 Đánh giá và hướng phát triển
Trang 3• 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à
Trang 4Chuẩ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.
Trang 5Chuẩ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
Trang 6Bus giao tiếp I2C
Receiver Transmitter
SCL SDA
Trang 7Chuẩ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.
Trang 8Chuẩ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.
Trang 9Chuẩ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.
Trang 10Thanh 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
Trang 11Bit 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ượngbit này chỉ set cho nhận dữ liệuBit 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ếpBit 4 CKP SCK Release Control (Slave mode)
CKP = 1 cho xung clock tác độngCKP = 0 giữ xung clock ở mức thấp
I2C trên Pic
Thanh ghi và tập lệnh
Trang 12bit 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
Trang 13Thanh 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 SSPSRGCEN = 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 SlaveACKSTAT=0 chưa nhận được xung ACK
I2C trên Pic
Thanh ghi và tập lệnh
Trang 14Bit 5 ACKDT Acknowledge Data bit (nhận dữ liệu trên I2C Master mode)
ACKDT = 1 chưa nhận được xung ACKACKDT = 0 đã nhận được xung ACKBit 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úcquá trình truyền nhận
ACKEN = 0 không cho phép tác dụngBit 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
Trang 15I2C trên Pic
Thanh ghi và tập lệnh
Trang 16I2C trên Pic
Thanh ghi và tập lệnh
Trang 17I2C trên Pic
Thanh ghi và tập lệnh
Trang 18Hoạt động I2C trên Pic
Điều kiện Start và stops
Trang 19Hoạt động I2C trên Pic
Điều kiện Start và stop
Trang 20Hoạt động I2C trên Pic
Định dạng dữ liệu
Trang 21Hoạt động I2C trên Pic
Trang 22Giải thuật truyền nhận
Trang 23Hoạt động I2C trên Pic
Truyền nhận Master - Slave
Trang 24Hoạt động I2C trên Pic
Truyền nhận Master - Slave
Trang 25Hoạt động I2C trên Pic
Trang 26Truyền nhận Master - Slave
Hoạt động I2C trên Pic
Trang 27Truyền nhận Master - Slave
Hoạt động I2C trên Pic
Trang 28Truyền nhận Master - Slave
Hoạt động I2C trên Pic
Trang 29• Phương án 1: Sử dụng máy vi tính làm main controller
– Sử dụng các chân RTS, CTS và DTR của cổng COM để biến thành chuẩn I2C
– Đánh giá: Hơi phức tạp, Tiết kiệm
Trang 30CẤU TẠO CỔNG COM
Trang 31` TÀI LIỆU THAM KHẢO:
[1] TS Lê Thanh Hải, Slide bài giảng kỹ
thuật giao tiếp với máy tính, 2013
[2] www.hocavr.com
12
Trang 3213