I2C協議研讀(二) 位傳輸和資料傳輸

2021-10-05 04:48:15 字數 2068 閱讀 1899

sda和scl均為雙向線路,通過電流源或上拉電阻連線到正電源電壓(見圖3)。 匯流排空閒時,兩條線均為高電平。 連線到匯流排的裝置的輸出級必須具有漏極開路或集電極開路才能執行線與功能。 i2c匯流排上的資料在標準模式下可以高達100 kbit / s的速率傳輸,在快速模式下可以高達400 kbit / s的速率傳輸,在高速模式下可以高達3.4 mbit / s的速率傳輸。 連線到匯流排的介面數量僅取決於400 pf的匯流排電容極限。

標準模式和快速模式

由於可以連線到i2c匯流排的各種不同的技術裝置(cmos,nmos,雙極性),邏輯0低和1高的電平並不固定,並且取決於相關的vdd電平。 每個傳輸的資料位產生乙個時鐘脈衝。

(1)資料有效性data validity

sda線上的資料必須在時鐘的高電平期間保持穩定。 僅當scl線上的時鐘訊號為低電平時,資料線的高或低狀態才能改變。

(2)開始停止條件:start and stop conditions

在i2c匯流排的過程中,會出現特殊情況,這些情況被定義為start(s)和stop(p)條件。

scl為高電平時,sda線上從高電平到低電平的過渡就是這樣一種獨特的情況。 這種情況表明啟動條件。

scl為高電平時,sda線上的由低到高的跳變定義了乙個停止條件。

啟動和停止條件始終由主機生成。 start條件後,匯流排被視為繁忙。 在停止條件之後的某個時間,匯流排被視為再次空閒。

如果產生重複的start(sr)而不是stop條件,則匯流排將保持繁忙狀態。 在這方面,start(s)和重複的start(sr)條件在功能上是相同的(請參見圖10)。

如果它們包含必要的介面硬體,則通過連線到匯流排的裝置檢測啟動和停止條件很容易。 但是,沒有這種介面的微控制器必須在每個時鐘週期內至少對sda線取樣兩次,以檢測過渡情況。

(1)位元組格式

sda線上的每個位元組必須是8位長,每次傳輸的位元組數量沒有限制。每個位元組前必須有確認位。首先以最高有效位(msb)傳輸資料(參見圖6)。如果從機在執行其他功能(例如,服務內部中斷)之前無法接收或傳送另乙個完整的資料位元組,則可以將時鐘線scl保持為低電平以強制主機進入等待狀態。 當從機準備好接收另乙個資料位元組時,資料傳輸將繼續,並釋放時鐘線scl。

在某些情況下,允許使用與i2c匯流排格式不同的格式(例如,用於cbus相容裝置)。 以這樣的位址開頭的訊息即使在傳輸位元組期間也可以通過產生stop條件來終止。 在這種情況下,不會產生任何確認(請參見第10.1.3節)。

(2)確認

資料傳輸必須要有確認,主機生成確認時鐘脈衝,傳送器在確認時鐘脈衝期間釋放sda線(high)

接收器必須在確認時鐘脈衝期間拉低sda線,以使其在此時鐘脈衝的高電平期間保持穩定的低電平(見圖7)。 當然,還必須考慮設定和保持時間(在第15節中指定)。

通常,已定址的接收器有義務在接收到每個位元組後生成確認,除非訊息以cbus位址開頭(請參見10.1.3節)。

當從機沒有確認從機位址(例如,由於它正在執行某些實時功能而無法接收或傳送位址)時,從機必須將資料線保持為高電平。 然後,主機可以產生停止條件以中止傳輸,或產生重複的開始條件以開始新的傳輸。

如果從機接收器確實確認了從機位址,但是在傳輸之後的某個時間不能再接收任何資料位元組,則主機必須再次中止傳輸。 由從機在隨後的第乙個位元組上產生不應答表示。 從機將資料線置於高電平,而主機則產生stop或重複的start條件。

如果主機接收器參與傳輸,則它必須通過不對從機時鐘輸出的最後乙個位元組生成確認來向從機傳送器發訊號通知資料結束。 從機傳送器必須釋放資料線以允許主機產生stop或重複的start條件。

I2C協議研讀(八)

11.4 低速模式下的高速模式裝置 hs mode devices at lower speed modes 高速模式的裝置全部向下相容,並且可以連線到f s模式的i2c匯流排系統中。這樣的配置下,任何主機碼不能傳輸,所有hs模式主機均保持f s模式,並且在禁用電流源的情況下以f s模式速度進行通訊...

I2C協議解析

1 基本概念 主機 初始化傳送,產生時鐘訊號和終止傳送的器件 從機 被主機定址的器件 傳送器 傳送資料到匯流排的器件 接收器 從匯流排接收資料的器件 多主機 同時有多於乙個主機嘗試控制匯流排 但不破壞報文 仲裁 是乙個在有多個主機同時嘗試控制匯流排,但只允許其中乙個控制匯流排並使報文不被破壞的過程 ...

i2c 協議解析

1 基本概念 主機 初始化傳送,產生時鐘訊號和終止傳送的器件 從機 被主機定址的器件 傳送器 傳送資料到匯流排的器件 接收器 從匯流排接收資料的器件 多主機 同時有多於乙個主機嘗試控制匯流排 但不破壞報文 仲裁 是乙個在有多個主機同時嘗試控制匯流排,但只允許其中乙個控制匯流排並使報文不被破壞的過程 ...