(1) 電氣特性編程
I2C(Inter-Integrated Circuit)總線是由PHILIPS公司開發的兩線式串行總線,用於鏈接微控制器及其外圍設備。架構
I2C總線只有兩根雙向信號線。SDA: Serial Data Line-數據線SCL :Serial Clock-時鐘線。測試
(2) 總線尋址ui
I2C總線協議規定:從設備採用7位的地址。D7~D1:從設備地址。D0位:數據傳送方向位,爲「0」時表示主設備向從設備寫數據,爲「1」時表示主機由從設備讀數據。主設備發送地址時,總線上的每一個從設備都將這7位地址碼與本身的地址進行比較,若是相同,則認爲本身正被主設備尋址,根據R/W位將本身肯定爲發送器或接收器。設計
從設備的地址由固定部分和用戶自定義部分組成。開發
l 固定部分:D7-D4 共4位決定的。這是由從設備的生產廠商生產時就已肯定的值。flash
l 用戶自定義部分:D3-D1共3位。這3位一般對應設備的3個引腳(A0~A2)。把3個引腳接到不一樣的電平上,就能夠造成一個3位的數值。it
(1) 空閒系統架構
I2C總線總線的SDA和SCL兩條信號線同時處於高電平時,規定爲總線的空閒狀態。程序設計
(2) 起始信號
在時鐘線SCL保持高電平期間,數據線SDA上的電平被拉低(即負跳變),定義爲I2C總線總線的啓動信號,它標誌着一次數據傳輸的開始
(3) 結束信號
在時鐘線SCL保持高電平時,數據線SDA被釋放,使得SDA返回高電平(即正跳變),稱爲I2C總線的中止信號
(4) 數據位傳送
I2C總線上的全部數據(地址和數據)都是以8位一個字節爲單位傳送的。
(5) ACK信號
發送器每發送一個字節,就在時鐘脈衝第9位釋放數據線,由接收器反饋一個應答信號。應答信號爲低電平時,定爲有效應答位ACK,表示接收器已經成功地接收了該字節;應答信號爲高電平時,定爲非應答位(NACK),表示接收器沒有成功接收該字節
EEPROM(Electrically Erasable Programmable Read-Only Memory),電可擦可編程只讀存儲器,是一種相似於flash的固態存儲器,可是與flash相比又存在一些區別:
l EEPROM 能夠按位擦寫,而FLASH只能大片擦除
l EEPROM 通常容量都不大,通常都在64Kbit如下
l I2C核心
I2C 總線和I2C 設備驅動的中間樞紐,它提供了I2C 總線驅動和設備驅動的註冊、註銷方法等。
l I2C控制器驅動
對I2C控制器的驅動實現,控制器可在CPU 外部,也能夠集成在CPU 內部。
l I2C設備驅動
對I2C從設備的驅動實現,如AT24C02的驅動