Dữ liệu được truyền giữa thiết bị Master và các thiết bị Slave thông qua một đường dữ liệu SDA duy nhất, thông qua các chuỗi có cấu trúc gồm các số 0 và 1 (các bit) .Mỗi chuỗi số 0 và 1 được gọi là giao dịch(transaction) và dữ liệu trong mỗi giao dịch có cấu trúc như sau:
Nguồn:Internet
Hình 3. 35 Kết nối của Slave và Master trên bus I2C
57 • Điều kiện bắt đầu (Start Condition)
Ngay khi thiết bị chủ quyết định bắt đầu giao dịch, tín hiệu từ bus SDA sẽ được chuyển từ trạng thái HIGH xuống LOW khi bus SCL chuyển từ HIGH xuống LOW. Khi điều kiện bắt đầu được gửi bởi Master, tất cả các thiết bị Slave đều hoạt động ngay cả khi chúng ở chế độ ngủ (sleep mode) và đợi bit địa chỉ.
Nguồn:Internet
• Khối địa chỉ
Khối địa chỉ bao gồm 7 bit và được điền đầy bởi địa chỉ của các Slave. Tất cả Slave trên bus I2C sẽ so sánh địa chỉ của chúng với địa chỉ mà Master yêu cầu.
• Bit Read / Write
Bit này xác định hướng truyền dữ liệu. Nếu thiết bị Master / IC cần gửi dữ liệu đến thiết bị Slave, bit này được thiết lập bằng “0”. Ngược lại, bit này được thiết lập bằng “1”.
• Bit ACK / NACK
ACK hay NACK là cách viết tắt của Acknowledge và Not-Acknowledge. Nếu có bất kì địa chị Slave nào trùng với địa chị mà Master phát thì giá trị của bit này được thiết lập bằng “0”. Ngược lại, nếu địa chỉ mà Master phát không trùng với địa chỉ nào của các Slave, giá trị của bit này được thiết lập bằng 1.
• Khối dữ liệu
Khối dữ liệu bao gồm 8 bit và được thiết lập bởi bên gửi. Khối này được theo sau bởi một bit ACK/NACK. Nếu dữ liệu được truyền thành công thì bit ACK có giá trị bằng “0”, Ngược lại, bit theo sao có giá trị là “1”.
Sự kết hợp của khối dữ liệu và theo sao là bit ACK/NACK được lặp lại đến khi quá trình truyền – nhận dữ liệu hoàn tất.
58 • Điều kiện kết thúc (Stop Condition)
Sau khi các khung dữ liệu cần thiết được truyền qua đường SDA, thiết bị Master chuyển đường SDA từ mức LOW sang mức HIGH trước khi đường SCL chuyển từ HIGH sang LOW.
Nguồn:Internet
Hình dưới đây thể hiện toàn bộ các bit dữ liệu được gửi trên đường SDA và thiết bị điều khiển chúng khi thiết bị Master gửi dữ liệu đến thiết bị Slave.
Nguồn:Internet
Hình dưới đây thể hiện toàn bộ các bit dữ liệu đước gửi trên đường SDA và thiết bị điều khiển chúng khi Master nhận dữ liệu từ thiết bị Slave.
Hình 3. 38 Điều kiện kết thúc giao thức
Hình 3. 39 Giao thức I2C Master gửi dữ liệu đến Slave
59
Nguồn:Internet