1. 協議簡介
I2C,inter-IC control。該協議是由Philips公司提出的一種兩線式通信方案,有如下特點:
-
只需要兩線,SDA和SCL
-
連接到總線的設備有唯一地址,master-slave工作模式
-
multi-master,需要arbitration來確定通信關係
-
串行,半雙工,standard mode最高100kb/s,fast mode最高400kb/s,high spedd mode最高3.4Mb/s
-
On-chip filtering保護數據的完整性
2. 工作原理
master和slave同時連接在SDA和SCL上,master需根據唯一的slave地址實現與對應設備間的通信
上圖是一個實際的原理圖,SDA和SCL與VDD間需要連接一個上拉電阻,電路中常見Rp爲400k歐,SDA和SCL在非工作狀態下都爲高電平。
上圖是一次I2C transaction的完整時序,需要注意sda在scl爲高電平時有效
(1)start, 即起始信號,SCL爲高,SDA拉低
(2)stop, 即結束信號,SCL爲高,SDA拉高
(3)8-bit transfer,由高到低
(4)ACK,8-bit傳輸結束,master等待slave拉低SDA進行ack
3. 數據傳輸
常見的傳輸方式有如下三種:
(1)數據方向master–>slave
(2)數據方向master<–slave
(3)數據方向可轉換,如圖所示,Sr之前master–>slave,Sr和Slave Address後數據方向可調換