Linux 中的 I2C 協議

來源:互聯網
上載者:User

標籤:linux   i2c   protocol   bus   

i2c匯流排協議:

撰寫不易,轉載需註明出處:http://blog.csdn.net/jscese/article/details/44001185 本文來自 【jscese】的部落格!

I2C 匯流排的概念:

I2C (Inter-Integrated Circuit)匯流排是一種由PHILIPS公司開發的兩線式串列匯流排,用於串連微控制器及其外圍裝置。I2C匯流排最主要的優點就是簡單性和有效性。

I2C匯流排是由資料線SDA和時鐘SCL構成的串列匯流排,各種被控制器件均並聯在這條匯流排上,每個器件都有一個唯一的地址識別,可以作為匯流排上的一個發送器件或接收器件(具體由器件的功能決定) 。I2C匯流排上傳輸控制情況見:

I2C匯流排的幾種訊號狀態:
  1. 空閑狀態:SDA和SCL都為高電平。
  2. 開始條件(S):SCL為高電平時,SDA由高電平向低電平跳變,開始傳送資料。
  3. 結束條件(P):SCL為低電平時,SDA由低電平向高電平跳變,結束傳送資料。

開始結束時序圖如下:

I2C匯流排傳輸特徵:
  • 資料有效:在SCL的高電平期間, SDA保持穩定,資料有效。SDA的改變只能發生在SCL的底電平期間。

  • 資料轉送:發送到 SDA 線上的每個位元組必須為 8 位 每次傳輸可以發送的位元組數量不受限制 每個位元組後必須跟一個響應位,首先傳輸的是資料的最高位。

  • ACK訊號: 資料轉送的過程中,接收器件每接收一個位元組資料要產生一個ACK訊號,在第九個SCL時鐘脈衝的高電平期間,持續拉低SDA,向發送器件發出特定的低電平脈衝,表示已經收到資料。

  • 地址位元組:在起始條件(S)後,第一個位元組中的前7位代表從機地址,第8位代表讀寫,0 表示發送(寫),1 表示接收(讀)。

    一次資料轉送的完整波形如下:

Linux 中的 I2C 協議

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.