Một giao tiếp I2C gồm có hai dây: Serial Data (SDA) và Serial Clock (SCL). SDA là đường truyền dữ liệu hai hướng, còn SCL là đường truyền xung Clock để đồng bộ và chỉ theo một hướng. Như ta thấy trên hình 4-13, khi một thiết bị ngoại vi kết nối vào đường bus I2C thì chân SDA của nó sẽ nối dây SDA của bus, chân SCL sẽ nối dây SCL.
Hình 4-39 Sơ đồ kết nối chuẩn giao tiếp I2C
Nhiều thiết bị ( ICs) cùng được kết nối vào một bus I2C, tuy nhiên sẽ không xảy ra nhầm lẫn giữa các thiết bị, bởi mỗi thiết bị sẽ được nhận ra bởi một địa chỉ duy nhất với một quan hệ Master/Slave tồn tại trong suốt thời gian kết nối. Mỗi thiết bị có thể hoạt động như một thiết bị nhận hoặc truyền dữ liệu hay có thể vừa truyền
Thiết kế mô hình nhà thông minh
vừa nhận. Hoạt động truyền hay nhận còn tùy thuộc vào việc thiết bị đó là Master hay Slave.
Một thiết bị hay một IC khi kết nối với bus I2C, ngoài một địa chỉ (duy nhất) để phân biệt, nó còn được cấu hình là thiết bị Master hay Slave. Đó là vì trên một bus I2C thì quyền điều khiển thuộc về thiết bị Master. Thiết bị Master nắm vai trò tạo xung Clock cho toàn hệ thống, khi giữa hai thiết bị Master-Slave giao tiếp thì thiết bị Master có nhiệm vụ tạo xung Clock và quản lý địa chỉ của thiết bị Slave trong suốt quá trình giao tiếp. Nguyên lý của giao tiếp I2C sẽ được thực hiện như sau:
Thiết bị Master tạo một điều kiện START: chuyển từ trạng thái cao xuống thấp trên đường SDA trong khi đường SCL đang ở mức cao. Điều kiện này thông báo cho thiết bị Slave lắng nghe dữ liệu trên đường truyền. Sau đó thiết bị Master gửi địa chỉ mà thiết bị Master muốn kết nối với thiết bị Slave. Khi thiết bị Slave trên đường truyền I2C nhận ra đúng địa chỉ thì sẽ phản hồi cho thiết bị Master biết bằng một xung ACK.
Lúc này giao tiếp giữa thiết bị Master và Slave trên đường dữ liệu bắt đầu. Mỗi xung Clock từ đường SCL sẽ có một bit dữ liệu được truyền. Mức tín hiệu SDA chỉ thay đổi khi xung Clock đang ở mức thấp và ổn định khi ở mức cao. Cả thiết bị Master và Slave đều có thể truyền hoặc nhận dữ liệu tùy thuộc vào quá trình truyền thông là đọc hay viết. Bên truyền sẽ gửi dữ liệu 8 bit và bên nhận sẽ phản hồi với một bit ACK. Để kết thúc quá trình, thiết bị chủ tạo một điều kiện STOP: chuyển từ trạng thái cao sang thấp trên đường SDA trong khi đường SCL đang ở mức cao.