I2C信號的原理與解碼

一.前言

I2C 是由荷蘭Philips半導體所提出,I2C 全名為 Inter-IC,它是一種半雙工同 步多組設備匯流排,只需要兩條信號線:串列資料線 (SDA) 及串列時脈線 (SCL)。I2C 1.0 即提供兩種定址模式與三種傳輸模式,定址方面分成10-bit 長定址與 7-bit 短定址,表示在同一個 I2C-bus 上能允許的晶片連接數(長 定址為1,024個,短定址為128個),傳輸方面則有10kbps 的低速模式、 100kbps 的標準模式、及 400kbps 的快速模式。

I2C 在硬體連接上相當簡單,僅有兩條線路:SDA(Serial Data Line)資料 線、SCL(Serial Clock Line,有些也寫成 SCK )時脈線,所有 I2C 裝置 都並接這兩條線路,連接的都是開汲極(Open Drain)的 I/O 接腳,亦即接 腳內部的開關在導通時為接地的邏輯低準位(Low),而不導通時則形同斷 線浮接,不過 I2C 並不是要使用浮接狀態,而是要使用真正的邏輯高準位, 所以在 SDA、SCL 兩線上都加入提升電阻(Pull-high resister),使未導通 狀態下線路會處於邏輯高準位(High)狀態。

二.測試架構與量測方式

介面時序圖如下

從圖中我們得知 I2C 在傳送資料過程中共有三種類型信號,它們分別是: 開始信號、結束信號和應答信號。 開始信號:SCL為高電位時,SDA由高電位降為低電位,開始傳送資料。 結束信號:SCL為高電位時,SDA由低電位升為高電位,結束傳送資料。 應答信號:接收資料的 IC 在接收到 8bit 資料後,向發送資料的IC發出特定 的低電位脈衝,表示已收到資料;CPU 向受控單元發出一個信號後,等待受 控單元發出一個應答信號,CPU 接收到應答信號後,根據實際情況判斷是否 繼續傳遞信號,若未收到應答信號,則判斷受控單元故障。 資料讀取方式:當 SCL 由低電位升為高電位時,讀取 SDA 的資料。




三.I2C波形解碼

S: 開始信號
P: 結束信號
Address Byte: 選擇欲傳輸資料的Chip Command Byte: 選擇欲讀取資料的Register ACK: 應答信號
W: Write Command
R: Read Data
Data Byte: Data




★博文內容均由個人提供,與平台無關,如有違法或侵權,請與網站管理員聯繫。

★博文作者未開放評論功能