I2C通信協議(二)-數據讀寫

一、I2C寫時序

上圖就是 I2C 的寫時序,我們來看一下寫時序的具體步驟:
1、開始信號。
2、發送 I2C 設備地址,每個 I2C 器件都有一個設備地址,通過發送具體的設備地址來決
定訪問哪個 I2C 器件。這是一個 8 位的數據,其中高 7 位是設備地址,最後 1 位是讀寫位,爲
1 的話表示這是一個讀操作,爲 0 的話表示這是一個寫操作。
3、 I2C 器件地址後面跟着一個讀寫位,爲 0 表示寫操作,爲 1 表示讀操作。
4、從機發送的 ACK 應答信號。
5、重新發送開始信號。
6、發送要寫寫入數據的寄存器地址。
7、從機發送的 ACK 應答信號。
8、發送要寫入寄存器的數據。
9、從機發送的 ACK 應答信號。
10、停止信號。

二、I2C 讀時序

1、主機發送起始信號。
2、主機發送要讀取的 I2C 從設備地址。
3、讀寫控制位,因爲是向 I2C 從設備發送數據,因此是寫信號。
4、從機發送的 ACK 應答信號。
5、重新發送 START 信號。
6、主機發送要讀取的寄存器地址。
7、從機發送的 ACK 應答信號。
8、重新發送 START 信號。
9、重新發送要讀取的 I2C 從設備地址。
10、讀寫控制位,這裏是讀信號,表示接下來是從 I2C 從設備裏面讀取數據。
11、從機發送的 ACK 應答信號。
12、從 I2C 器件裏面讀取到的數據。
13、主機發出 NO ACK 信號,表示讀取完成,不需要從機再發送 ACK 信號了。
14、主機發出 STOP 信號,停止 I2C 通信。

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章