I2C viết tắt của từ Inter-Integrated Circuit là một chuẩn truyền thông do hãng điện tử Philips Semiconductor sáng lập cho phép giao tiếp một thiết bị chủ với nhiều thiết bị tớ với nhau như hình.
Chuẩn giao tiếp I2C có 2 đường tín hiệu tên là SDA (serial data) có chức năng truyền tải dữ liệu và tín hiệu SCL (serial clock) truyền tải xung clock để dịch chuyển dữ liệu.[16]
Trong hệ thống truyền dữ liệu IDC thì thiết bị nào cung cấp xung clock thì được gọi là chủ (master), thiết bị nhận xung clock được gọi là tớ (slave).
Thiết bị chủ chỉ có 1, thiết bị tớ thì có nhiều, mỗi thiết bị tớ sẽ có 1 địa chỉ độc lập, chuẩn truyền ban đầu dùng địa chỉ 7 bit nên có thể 1 chủ giao tiếp với 128 thiết bị tớ. Các thiết bị sau này tăng thêm số bit nên có thể giao tiếp nhiều hơn.
Giao diện I2C hỗ trợ tốc độ truyền chuẩn 100kHz hay tốc độ cao 400kHz. Ngoài ra còn hỗ trợ 7 hoặc 10 bit địa chỉ. Được thiết kế nhằm đơn giản hóa q trình trao đổi với 2 kênh DMA cho truyền và nhận dữ liệu
b) Quy trình truyền dữ liệu chuẩn I2C
Quá trình thiết bị chủ ghi dữ liệu vào thiết bị tớ:
• Bước 1: Thiết bị chủ tạo trạng thái START để bắt đầu quá trình truyền dữ liệu - các thiết bị tớ sẽ ở trạng thái sẵn sàng nhận địa chỉ từ thiết bị chủ. • Bước 2: Thiết bị chủ gởi địa chỉ của thiết bị tớ cần giao tiếp – khi đó tất
cả các thiết bị tớ đều nhận địa chỉ và so sánh với địa chỉ của mình, các thiết bị tớ sau khi phát hiện khơng phải địa chỉ của mình thì chờ cho đến khi nào nhận trạng thái START mới. - Trong dữ liệu 8 bit thì có 7 bit địa chỉ và 1 bit điều khiển đọc/ghi (R/W): thì bit này bằng 0 để báo cho thiết bị tớ sẽ nhận byte tiếp theo.
• Bước 3: Thiết bị chủ chờ nhận tín hiệu bắt tay từ thiết bị tớ. Thiết bị tố nào đúng địa chỉ thì phát 1 tín hiệu trả lời cho chủ biết.
• Bước 4: Thiết bị chủ tiến hành gởi địa chỉ của ô nhớ bắt đầu cần ghi dữ liệu, bit R/W ở trạng thái ghi.
• Bước 5: Thiết bị chủ chờ nhận tín hiệu trả lời từ thiết bị tớ.
• Bước 6: Thiết bị chủ tiến hành gởi dữ liệu để ghi vào thiết bị tớ, mỗi lần ghi 1 byte, sau khi gởi xong thì tiến hành chờ nhận tín hiệu trả lời từ thiết bị tớ, quá trình thực hiện cho đến byte cuối cùng xong rồi thì thiết bị chủ chuyển sang trạng thái STOP để chấm dứt quá trình giao tiếp với thiết bị tớ.