久久ER99热精品一区二区-久久精品99国产精品日本-久久精品免费一区二区三区-久久综合九色综合欧美狠狠

新聞中心

EEPW首頁 > 嵌入式系統 > 設計應用 > 嵌入式系統中的I2C總線時序

嵌入式系統中的I2C總線時序

作者: 時間:2026-04-30 來源: 收藏

中非常常見,本文詳細講解 規則。

許多電子工程師第一次接觸 ,都是通過 EEPROM 或 ROM 通信。實際上,I2C 的應用遠不止存儲芯片,其使用場景與 RS?485、SPI 等總線類似。

wKgaomXX-WmAHq5CAAGINCnUWgg407.jpg

EEPROM內存系統架構圖

1. 位傳輸

I2C 是由飛利浦公司開發的雙向兩線同步串行總線,只需要 SCL(時鐘線)SDA(數據線) 兩根線,就能實現總線上多個芯片之間的控制與數據傳輸。

wKgZomXX-WmALo44AAB81B1QOmo106.jpg

I2C 總線位傳輸

I2C 總線上的數據是逐位傳輸的:

  • SCL 為高電平時:SDA 上的數據必須保持穩定,不允許變化。

  • SCL 為低電平時:SDA 可以改變電平狀態。

關鍵條件

  • 起始條件:SCL 為高電平時,SDA 從高電平變為低電平 → 表示傳輸開始。

  • 停止條件:SCL 為高電平時,SDA 從低電平變為高電平 → 表示傳輸結束。

  • 空閑狀態:SDA 與 SCL 均保持高電平 → 表示總線空閑。

2. 數據傳輸

字節傳輸

主機發送數據時,先發出起始信號,然后將 SDA 設為輸出模式,先發送最高位(MSB),依次發送 8 位數據。

發送完 8 位后,主機會將 SDA 切換為輸入模式,等待從機回復 ACK(應答)NAK(非應答),之后再發送下一個字節。

從機地址

I2C 總線上的每個設備都有固定地址,通常由芯片上的 A0、A1、A2 引腳配置。

地址字節包含:

  • 7 位地址位(D7~D1)

  • 1 位讀寫方向位(D0)

設備地址的高 4 位(D7~D4)通常由廠商固定為 1111,低 3 位(D3~D1)由 A2、A1、A0 引腳設置。

  • D0 = 0:寫操作

  • D0 = 1:讀操作

這就是常見地址如 0xA0、0xA1 的由來。

wKgZomXX-WqAMFnaAAAXBGZc_XA953.jpg

EEPROM設備地址

3. 讀 / 寫流程

① 寫操作流程

  1. 主機發送停止信號,避免總線忙碌導致寫入失敗。

  2. 主機發送總線復位信號,確保總線空閑。

  3. 主機發送起始信號,啟動寫操作。

  4. 主機發送從機地址 + 寫位(W/R=0),等待從機 ACK。

  5. 收到 ACK 后,主機連續寫入多個字節,每寫完 1 字節等待從機 ACK。

  6. 收到最后一次 ACK 后,主機發送停止信號,釋放總線。

② 讀操作流程

  1. 主機發送停止信號,避免總線忙碌導致讀取失敗。

  2. 主機發送總線復位信號,確保總線空閑。

  3. 主機發送起始信號,啟動讀操作。

  4. 主機發送從機地址 + 讀位(W/R=1),等待從機 ACK。

  5. 收到 ACK 后,主機連續讀取多個字節,每讀完 1 字節向從機回復 ACK。

  6. 讀完最后 1 字節并回復 ACK 后,主機發送停止信號,釋放總線。

I2C 在嵌入式領域應用廣泛,在各類電源、工控、消費電子設備中都十分常見。



評論


相關推薦

技術專區

關閉