一、前言
I2C總線是由Philips公司開發的一種簡單、雙向二線制同步串行總線。它只需要兩根線即可在連接于總線上的器件之間傳送信息。
二、I2C總線開發設計需要注意點
1、總線容量及驅動能力
I2C總線的外圍擴展器件都是CMOS器件,總線有足夠的電流驅動能力,因此總線上擴展的節點數不由電流負載能力決定,而由電容負載確定。
總線上每個實際節點器件的總線接口都有一定的等效電容,等效電容的存在會造成總線傳輸的延遲,導致數據傳輸出錯。
通常總線負載能力為400pF,通常各個I2C器件都會有它自己的電容值,一般為不大于20pF,據此可計算出總線長度及節點數目的限制數量。總線上的每個外圍器件都有一個器件地址,因此總線上擴展外圍器件時也要受器件地址限制。
2、I2C總線的電氣結構
I2C總線為雙向同步串行總線,因此I2C總線接口內部為雙向傳輸電路,如圖。所示。總線端口輸出為開漏結構,故總線上必須有上拉電阻,上拉電阻與電源電壓、SDA、SCL以及總線串接電阻有關,可參考有關數據手冊進行選擇,通常可選4.7K到10K。
3、每個節點都有一個固定的節點地址。
I2C總線為雙向同步串行總線,因此總線上的單片機都可以成為主節點,其器件地址由軟件給定,存放在總線的地址寄存器件中,稱為主器件的從地址。在總線的多主系統中,單片機作為從節點時,其從地址才有意義,所以總線上所有的外圍器件都有規范的器件地址。
4、I2C總線時序
I2C總線上數據傳遞時,總線上傳送的每一幀數據均為一個字節。但啟動總線后,傳送的字節數沒有限制,只要求每傳送一個字節后,對方回應一個應答位。在發送時,首先發送的是數據的最高位。每次傳送開始有起始信號,結束時有停止信號。在總線傳送完一個字節后,可以通過對時鐘線的控制使傳送暫停。
①時鐘和數據發送:
SDA引腳通常使用外部設備拉高。SDA引腳上的數據只能在SCL為低電平時進行更改,SCL為高電平時數據更改將指示開始或停止條件。如圖所示。
②起止條件:
SDA由高到低且SCL為高是啟動條件,必須先于任何其他命令。SDA由低到高且SCL為高是停止條件,在一個讀序列后,停止命令會使EEPROM進入待機模式。如圖所示。
③應答:
所有地址和數據字均以8bit字連續傳輸到EEPROM,EEPROM發送一個“0”來應答,以確認它已收到每個字。應答發生在第九個時鐘周期如圖所示。
三、設計實例
我們對于AT24C256肯定不會陌生,這是ATMEL公司256kbit串行電可擦的可編程只讀存儲器,8引腳雙排直插式封裝,具有結構緊湊、存儲容量大等特點,可以在2線總線上并接4片該IC,特別適用于具有高容量數據儲存要求的數據采集系統。
EEPROM存儲器設備既可以接收又可以發送數據。每個掛接在總線上的器件都有唯一一個地址識別。
主機訪問EEPROM時,主機在向EEPROM發送完控制字節和地址信息后,緊接著向EEPROM存儲器發送起始條件和控制信號并發送讀標志位信號,切換數據的收發方向。接著在收到EEPROM的響應信號后便可以讀出需要的數據了。
四、總結
通過以上實例,我們可以知道I2C優點主要表現在:
1、簡化了硬件電路。在這種總線中只需要兩根線,即串行數據線(SDA)和串行的時鐘線(SCL)。
2、每個掛在總線上的I2C器件都有一個唯一的地址,并可以通過軟件尋址。
3、因為在總線上可能有多個主I2C器件,因此I2C總線接口協議中有沖突監測和仲裁機制,以防止通信中的數據丟失或發生錯誤。
4、這種串行的兩線雙向的總線在標準模式下的速率為100kbit/s,在快速模式下的速率為400kbit/s,在高速模式下為3.4Mbit/s。
5、I2C器件中有濾波抗擾措施來保證數據的完整性。
6、在總線上掛接的器件數目是有限的,即總線上的容抗不能超過400pF。
編輯:jq
-
存儲器
+關注
關注
38文章
7492瀏覽量
163836 -
傳輸電路
+關注
關注
0文章
10瀏覽量
10707 -
I2C總線
+關注
關注
8文章
391瀏覽量
60936 -
SDA
+關注
關注
0文章
124瀏覽量
28134
原文標題:什么是I2C總線,它有著哪些特點,設計時需要哪些細節呢?
文章出處:【微信號:eda365wx,微信公眾號:EDA365電子論壇】歡迎添加關注!文章轉載請注明出處。
發布評論請先 登錄
相關推薦
評論