I2C總線通信——時序/示波器分析

I2C總線通信——時序/示波器分析

通信概述

  • I2C是一種芯片間的雙向數據傳輸協議。
  • 只需要2根信號線:SCL:串行時鐘線;SDA:串行數據線。

時序分析

這裏以TM4C123GXL核心板及DY-Tiva-PB 擴展板板上的TMP75數字溫度傳感器之間的I2C通訊爲例,如下圖:
在這裏插入圖片描述

總體預覽

  • 理論:
    圖1 ------------------------------------ 圖1.針對讀取字格式的兩線制時序 --------------------------------------------
  • 實際:
    黃色爲SDA,綠色爲SCL。
    在這裏插入圖片描述

局部分析

Frame 1和Frame 2

在這裏插入圖片描述在這裏插入圖片描述
在SCL脈衝爲1時,讀取SDA信號。

通訊開始與結束標誌

必須滿足下圖信號形式:
在這裏插入圖片描述

SDA信號分析
接收設備地址 讀/寫 標識符 應答位 TMP75內的寄存器位 應答位
1001 000 0 0 000000 00 0
  • 接收設備地址:這是I2C聯盟分配的地址。

  • 讀/寫 標識位:1爲讀;0位寫。

  • 應答位:進行I2C通信時要求每發送8位信號後,接受信號一方必須給出1個應答信號,0表示數據傳輸正常。

  • TMP75內的寄存器位:前6位000000是固定的,最後兩位P1 P0按照表1給出。

在這裏插入圖片描述
-------------------------------------------------- 表1.TMP75的指針地址 --------------------------------------------------

================================ 我是分界線 ==================================

Frame 3和Frame 4

在這裏插入圖片描述
在這裏插入圖片描述

SDA信號分析
接收設備地址 讀/寫 標識符 應答位 數據位 應答位
1001 000 1 0 0010 1000 0
  • 接收設備地址:這是I2C聯盟分配的地址。

  • 讀/寫 標識位:1爲讀;0位寫。

  • 應答位:進行I2C通信時要求每發送8位信號後,接受信號一方必須給出1個應答信號,0表示數據傳輸正常。

  • 數據位:通信中真正需要傳輸的數據內容。

  • 可以看到,在同一設備連續傳輸數據時,傳完8位數據後,數據傳輸並不結束,SCL和SDA都維持在0,等下一個數據位(Frame 5)。

================================ 我是分界線 ==================================

Frame 5

在這裏插入圖片描述
在這裏插入圖片描述

SDA信號分析
數據位 應答位
0000 0000 1
  • 應答位爲1,傳輸出現異常??後面通信結束。

================================ 我是分界線 =================================

我是Jesse-zwj,廈門大學本科生一枚,以上是我的日常學習心得
歡迎大家在評論區留言交流

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