IIC通信總結

原地址:IIC通信總結
這篇也可以看卡:IIC通信協議詳解

1.IIC簡介
IIC全稱Inter-Integrated Circuit。
是由PHILIPS公司在80年代開發的兩線式串行總線,用於連接微控制器及其外圍設備。IIC屬於半雙工同步通信方式。
2.IIC特點
(1)簡單性和有效性。
由於接口直接在組件之上,因此IIC總線佔用的空間非常小,減少了電路板的空間和芯片管腳的數量,降低了互聯成本。總線的長度可高達25英尺,並且能夠以10Kbps的最大傳輸速率支持40個組件。
(2)多主控(multimastering)
其中任何能夠進行發送和接收的設備都可以成爲主總線。一個主控能夠控制信號的傳輸和時鐘頻率。當然,在任何時間點上只能有一個主控。
3.IIC結構組成
IIC串行總線一般有兩根信號線,一根是雙向的數據線SDA,另一根是時鐘線SCL,其時鐘信號是由主控器件產生。所有接到IIC總線設備上的串行數據SDA都接到總線的SDA上,各設備的時鐘線SCL接到總線的SCL上。對於並聯在一條總線上的每個IC都有唯一的地址。


4.IIC協議
IIC總線在傳輸數據的過程中一共有三種類型信號,分別爲:開始信號、結束信號和應答信號。這些信號中,起始信號是必需的,結束信號和應答信號,都可以不要。同時我們還要介紹其空閒狀態、數據的有效性、數據傳輸。
(1)起始信號
當時鍾線SCL爲高期間,數據線SDA由高到低的跳變;
(2)停止信號
當時鍾線SCL爲高期間,數據線SDA由低到高的跳變;


(3)空閒狀態
當IIC總線的數據線SDA和時鐘線SCL兩條信號線同時處於高電平時,規定爲總線的空閒狀態。此時各個器件的輸出級場效應管均處在截止狀態,即釋放總線,由兩條信號線各自的上拉電阻把電平拉高。

(4)應答信號
發送器每發送一個字節(8個bit),就在時鐘脈衝9期間釋放數據線,由接收器反饋一個應答信號。 
應答信號爲低電平時,規定爲有效應答位(ACK,簡稱應答位),表示接收器已經成功地接收了該字節;
應答信號爲高電平時,規定爲非應答位(NACK),一般表示接收器接收該字節沒有成功。 

 

5.數據發送

IIC總線上掛在的每一個設備都可以作爲主設備或者從設備,而且每一個設備都會對應一個唯一的地址(地址通過物理接地或者拉高),主從設備之間就通過這個地址來確定與哪個器件進行通信,在通常的應用中,我們把CPU帶I2C總線接口的模塊作爲主設備,把掛接在總線上的其他設備都作爲從設備。
主設備在傳輸有效數據之前要先指定從設備的地址,地址指定的過程和上面數據傳輸的過程一樣,只不過大多數從設備的地址是7位的,然後協議規定再給地址添加一個最低位用來表示接下來數據傳輸的方向,0表示主設備向從設備寫數據1表示主設備向從設備讀數據。

紅色部分表示主機發送,藍色部分表示從機發送。A表示應答,NA表示非應答(高電平)。S表示起始信號,P表示終止信號。以實例說明。

(1)主機向從機寫入數據。

(2)主機向從機讀取數據。

(3)主機先寫在讀取數據。

關於IIC總線的更爲詳細分析和總結見以下博主鏈接:
https://blog.csdn.net/qq_38410730/article/details/80312357

https://blog.csdn.net/bluewhaletech/article/details/37876111

http://www.cnblogs.com/aaronLinux/p/6218660.html

 

 

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章