淺談I2C(Inter-Integrated Circuit Bus)

首頁 >> google協作平臺 >> 淺談I2C(Inter-Integrated Circuit Bus)

I2C

Inter-Integrated Circuit Bus 的簡稱,

最初由飛利浦公司制定用來讓CPU與週邊低速裝置溝通的協定,

後來產權都轉移給NXP公司,

這也是今天的主題

 

淺談I2C(Inter-Integrated Circuit Bus)

 

I2C匯流排很簡單,

只有兩條線SDA 與 SCL,

每一個I2C 裝置都有一個slave address,

slave address 通常以7 bit長度的十六進制表示,

也就是說除了保留的16的位址以外,

最多能夠連接112個裝置,

常見的I2C匯流排依照速率可分為

標準模式:

100K bit/s

低速模式:

10K bit/s

快速模式:

400K bit/s

高速模式:

3.4M bit/s

 

I2C 兩條訊號線 SDA與SCL,

通常有pull high 電阻,

用以讓其維持在高準位

一般狀況下,

SDA只有在SCL為LOW的時候才能改變資料,

SCL為HIGH時SDA必須維持訊號穩定,

只有在特殊情形時,

SDA會在SCL為HIGH時候改變

例如

訊號開始(START)與結束(STOP)

底下是一個標準的I2C 資料傳輸的簡圖

一個標準的I2C 封包除了start 與 stop 訊號以外,

由8個 bit 組成(1 byte),

加上一個ACK(low) /NACK (high) bit

才是一個完整的I2C封包

I2C傳輸的第一個byte最為重要,

因為前面提到的slave address 就在這個byte中,

最低位元為read /write 的控制bit

I2C的write傳輸如下圖:

I2C的read傳輸如下圖:

一個混合模式的I2C傳輸:



================================
分享與讚美,是我們繼續打拼的原動力.
若文章對您有幫助,望請不吝按讚或分享.
或者對影片有興趣可以訂閱頻道接收通知
================================
YouTube 頻道
FB 粉絲專頁
================================

guangyaw

重點主題: 程式設計: Python , Django,Android 工具與軟體: Open edX,Linux工具,Blender教學 分享各地美景與產品使用心得,遊戲實況,甚至影視戲劇等, 您的訂閱就是頻道成長的原動力。 YouTube 頻道: https://youtube.com/xyawli

You may also like...

發佈留言

發佈留言必須填寫的電子郵件地址不會公開。 必填欄位標示為 *