第四季-專題19-I2C驅動程序設計

專題19-I2C驅動程序設計

第1課-I2C總線介紹

  1. I2C硬件結構

(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. 總線時序

(1)     空閒系統架構

I2C總線總線的SDA和SCL兩條信號線同時處於高電平時,規定爲總線的空閒狀態。程序設計

 

(2)     起始信號

在時鐘線SCL保持高電平期間,數據線SDA上的電平被拉低(即負跳變),定義爲I2C總線總線的啓動信號,它標誌着一次數據傳輸的開始

(3)     結束信號

在時鐘線SCL保持高電平時,數據線SDA被釋放,使得SDA返回高電平(即正跳變),稱爲I2C總線的中止信號

(4)     數據位傳送

I2C總線上的全部數據(地址和數據)都是以8位一個字節爲單位傳送的。

(5)     ACK信號

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

第2課-2440裸機I2C驅動設計

  1. EEPROM

EEPROM(Electrically Erasable Programmable Read-Only Memory),電可擦可編程只讀存儲器,是一種相似於flash的固態存儲器,可是與flash相比又存在一些區別:

l  EEPROM 能夠按位擦寫,而FLASH只能大片擦除

l  EEPROM 通常容量都不大,通常都在64Kbit如下

  1. I2C初始化
  2. 寫數據設計
  3. 讀數據設計
  4. EEPROM驅動綜合測試

 

第3課-210裸機I2C驅動設計

第4課-Linux-I2C子系統架構

  1. I2C子系統架構

 

l  I2C核心

I2C 總線和I2C 設備驅動的中間樞紐,它提供了I2C 總線驅動和設備驅動的註冊、註銷方法等。

l  I2C控制器驅動

對I2C控制器的驅動實現,控制器可在CPU 外部,也能夠集成在CPU 內部。

l  I2C設備驅動

對I2C從設備的驅動實現,如AT24C02的驅動

  1. I2C總線驅動

 

 

第5課-I2C用戶態驅動設計

  1. 通用設備驅動分析

 

  1. 用戶態驅動設計

 

第6課-Linux-I2C自編設備驅動設計

  1. 驅動程序分析

 

  1. 驅動程序移植
  2. 驅動程序測試
相關文章
相關標籤/搜索