I2C學習筆記

2021-10-07 13:14:03 字數 2001 閱讀 4103

i2c簡介:i2c ( inter- integrated circuit) 匯流排是由philips公司開發的兩線式序列匯流排,用於連線微控制器及其外圍裝置。是微電子通訊控制領域廣泛採用的一種匯流排標準。它是同步通訊的一種特殊形式,具有介面線少,控制方式簡單,器件封裝形式小,通訊速率較高等優點。i2c匯流排只有兩根雙向訊號線。一根是資料線sda,另一根是時鐘線scl。由於其管腳少,硬體實現簡單,可擴充套件性強等特點,因此被廣泛的使用在各大整合晶元內。

i2c特點

• 只要求兩條匯流排線路 一條序列資料線 sda 一條序列時鐘線 scl

• 每個連線到匯流排的器件都可以通過唯一的位址和一直存在的簡單的主機 從機關系軟體設定地 址 主機可以作為主機傳送器或主機接收器

• 它是乙個真正的多主機匯流排 如果兩個或更多主機同時初始化資料傳輸可以通過衝突檢測和仲裁 防止資料被破壞

• 序列的 8 位雙向資料傳輸位速率在標準模式下可達 100kbit/s 快速模式下可達 400kbit/s 高速 模式下可達 3.4mbit/s

• 片上的濾波器可以濾去匯流排資料線上的毛刺波 保證資料完整 • 連線到相同匯流排的 ic 數量只受到匯流排的大電容 400pf 限制

• sda 和 scl 都是雙向線路 都通過乙個電流源或上拉電阻連線到正的電源電壓,當匯流排空 閒時 這兩條線路都是高電平, 連線到匯流排的器件輸出級必須是漏極開路或集電極開路才能執行線與的功能

起始條件:當scl線是高電平時,sda線從高電平向低電平切換。

終止條件:當scl線是高電平時,sda線從低電平向高電平切換

應答響應

產生應答:sda輸出狀態。首先scl為低;sda為低;拉高scl;

無應答:sda輸出狀態。scl為低;sda拉高;拉高scl;

等待應答:sda為輸入模式。拉高sda=1;延時拉高scl=1;判斷sda輸入(gpio-idr)的電平,如果為高迴圈超過250次,超時未應答。如果為低,表示應答。

資料傳輸:每次資料傳輸以位元組為單位,每個位元組保證8位長度,每次傳輸的位元組數不受限制。資料傳輸時,先傳輸位元組最高位,每乙個被傳輸的位元組後跟乙個應答位。

sda 線上的資料必須在時鐘的高電平週期保持穩定 資料線的高或低電平狀態只有在 scl 線的時鐘訊號是低電平時才能改變。

每次資料傳輸總是由主機產生的總之訊號結束。若主機希望繼續占用匯流排進行新的資料傳輸,則可以不產生終止訊號,馬上發起起始訊號對另一從機定址。

iic傳送資料:sda輸出模式,scl=0;開始迴圈8次,可以通過高位與1的形式,記錄sda上資料為1或0,左移1位,拉低scl=0,迴圈8次。每次傳送完資料後等待應答。

iic讀資料:sda輸入模式。定義receive=0儲存資料.迴圈8次,令scl=1;判斷每次讀到的資料(gpio-idr)電平狀態,為高則將receive++。receive每次左移一位,迴圈8次。讀到最後乙個位元組或唯讀乙個位元組,傳送無應答,反之則傳送應答。

7位的位址格式:在起始條件 s 後 ,傳送了乙個從機位址 ,這個位址共有 7 位 緊接著的第 8 位是資料方向位 r/w,0 表示主機傳送(寫w)資料, 1 表示主機接收(讀r)資料。

仲裁:連線多於乙個微控制器到 i2c 匯流排的可能性意味著超過乙個主機可以同時嘗試初始化傳輸資料, 為了避免由此產生混亂 發展出乙個仲裁過程。它依靠線與連線所有 i2c 匯流排介面到 i2c 匯流排 ,如果兩個或多個主機嘗試傳送資訊到匯流排, 在其他主機都產生 0 的情況下, 首先產生乙個 1 的 主機將丟失仲裁 ,仲裁時的時鐘訊號是用線與連線到 scl 線的主機產生的時鐘的同步結合。

i2c學習筆記

1.1 i2c匯流排知識 1.1.1 i2c匯流排物理拓撲結構 i2c 匯流排在物理連線上非常簡單,分別由sda 序列資料線 和scl 序列時鐘線 及上拉電阻組成。通訊原理是通過對scl和sda線高低電平時序的控制,來產生i2c匯流排協議所需要的訊號進行資料的傳遞。在匯流排空閒狀態時,這兩根線一般被...

學習筆記 i2c驅動框架

i2c驅動框架 一一一一一一一一一一一一一一一一一一一一一一一一一 軟體層 open read write 一一一一一一一一一一一一一一一一一一一一 驅動 drv open drv read drv write i2c裝置驅動 知道資料含義 一一一一一一一一一一一一一一一一一一一一一一一一一一一一一...

I2C學習記錄

i2c inter integrated circuit 匯流排是由philips公司開發的兩線式序列匯流排,用於連線微控制器及其外圍裝置。是微電子通訊控制領域廣泛採用的一種匯流排標準。通過序列資料 sda 線和序列時鐘 scl 線在連線到匯流排的器件間傳遞資訊。通過序列資料 sda 線和序列時鐘 ...