1 I2C匯流排 IIC匯流排由數據線SDA和時鐘線SCL兩條線構成通信線,既可以發送數據,又可以接收數據。 IIC匯流排典型電路:SDA和SCL連接線上有兩個上拉電阻,所有的IIC設備並聯在匯流排上。 2 I2C信號 IIC匯流排通信有著嚴格的時序,如果時序錯誤將會無法通信。IIC匯流排在傳送數據的過程中,有 ...
1 I2C匯流排
IIC匯流排由數據線SDA和時鐘線SCL兩條線構成通信線,既可以發送數據,又可以接收數據。
IIC匯流排典型電路:SDA和SCL連接線上有兩個上拉電阻,所有的IIC設備並聯在匯流排上。
2 I2C信號
IIC匯流排通信有著嚴格的時序,如果時序錯誤將會無法通信。IIC匯流排在傳送數據的過程中,有三種信號。分別是開始信號、結束信號和應答信號。
(1)開始信號
SCL為高電平時,SDA由高電平向低電平跳變,時序圖:
(2)結束信號
SCL為高電平時,SDA由低電平向高電平跳變,時序圖:
(3)應答信號
發送器每發送一個位元組,就在時鐘信號脈衝第9位釋放數據線,由接收器反饋一個應答信號。應答信號為低電平時,認為有效應答ACK,表示接收器已經成功接收了該位元組,應答信號為高電平時,認為無效應答ACK,表示接收器沒有成功接收該位元組。
(4)空閑信號
SDA和SCL兩條信號線同時處於高電平時,規定匯流排為空閑狀態。
3 數據傳輸
所有數據(地址和數據)都是以8位一個位元組為單位傳送的。
按照IIC匯流排規範約定,傳送的消息由開始信號、定址位元組、數據位元組、應答信號及停止信號組成。
主機發送開始信號後,就發出定址信號。器件地址由7位和10位兩種,這裡只介紹7位地址定址。定址信息由一個位元組構成,高7位為地址位,最低位為傳輸方向位(R/W)。方向位(R/W)為0時,表明主機對從機寫操作。方向為(R/W)為1時,表明主機對從機讀操作。
定址位元組位定義:
Bit7 |
Bit6 |
Bit5 |
Bit4 |
Bit3 |
Bit2 |
Bit1 |
Bit0 |
從機地址 |
R/W |
主設備發送地址時,匯流排上的每個從設備都將這7位地址碼與自己的地址進行比較,如果相同,則認為自己被主設備定址,根據R/W位將自己確認為發送器或接收器。
從設備的地址由固定部分和用戶自定義部分組成:
1、固定部分:位7-4共4位決定。這是由從設備的生產廠商生產時就已經確定的值。
2、用戶自定義部分:位3-1共3位決定。這三位通常對應設備的3個引腳(A0-A2)。把3個引腳接到不同的電平上,就可以形成一個3位的數值。
數據位的有效性規定:IIC匯流排進行數據傳送時,時鐘信號SCL為高電平期間,數據線上的信號SDA必須保持穩定。只有SCL為低電平期間SDA上的電平才允許變化。因此在寫數據時,要在SCL為低的時候改變SDA。讀數據時要在SCL為高的時候讀SDA。