0
  • 聊天消息
  • 系統(tǒng)消息
  • 評論與回復
登錄后你可以
  • 下載海量資料
  • 學習在線課程
  • 觀看技術視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會員中心
創(chuàng)作中心

完善資料讓更多小伙伴認識你,還能領取20積分哦,立即完善>

3天內不再提示

I2C總線的同步、仲裁介紹

麥辣雞腿堡 ? 來源:嵌入式Linux系統(tǒng)開發(fā) ? 作者:嵌入式Linux系統(tǒng)開 ? 2023-07-22 16:36 ? 次閱讀

Synchronization And Arbitration

在多主的通信系統(tǒng)中??偩€上有多個節(jié)點,它們都有自己的尋址地址,可以作為從節(jié)點被別的節(jié)點訪問,同時它們都可以作為主節(jié)點向其他的節(jié)點發(fā)送控制字節(jié)和傳送數(shù)據(jù)。

但是如果有兩個或兩個以上的節(jié)點都向總線上發(fā)送啟動信號并開始傳送數(shù)據(jù),這樣就形成了沖突。要解決這種沖突,就要進行仲裁的判決,這就是 I2C
總線上的仲裁。

I2C 總線上的仲裁分兩部分:SCL 線的同步和 SDA 線的仲裁,這兩部分沒有先后關系,同時進行。

SCL Synchronization

SCL
同步是由于總線具有線“與”的邏輯功能,即只要有一個節(jié)點發(fā)送低電平時,總線上就表現(xiàn)為低電平。當所有的節(jié)點都發(fā)送高電平時,總線才能表現(xiàn)為高電平。正是由于線“與”邏輯功能的原理,當多個節(jié)點同時發(fā)送時鐘信號時,在總線上表現(xiàn)的是統(tǒng)一的時鐘信號。這就是
SCL 的同步原理。

同步過程如下圖:

圖片

SDA Arbitration

SDA線的仲裁也是建立在總線具有線“與”邏輯功能的原理上的。節(jié)點在發(fā)送1位數(shù)據(jù)后,比較總線上所呈現(xiàn)的數(shù)據(jù)與自己發(fā)送的是否一致。是,繼續(xù)發(fā)送;否則,退出競爭。

SDA 線的仲裁可以保證 I2C
總線系統(tǒng)在多個主節(jié)點同時企圖控制總線時通信正常進行并且數(shù)據(jù)不丟失??偩€系統(tǒng)通過仲裁只允許一個主節(jié)點可以繼續(xù)占據(jù)總線。

仲裁在 SDA 上進行,此時 SCL 為高電平。

A 主機傳輸高電平,B 主機傳輸?shù)碗娖?,A 失去仲裁。

丟失仲裁的主機將生成時鐘脈沖,直到丟失仲裁的字節(jié)結束。

仲裁過程:

圖片

DATA1 和 DATA2 分別是主節(jié)點向總線所發(fā)送的數(shù)據(jù)信號,SDA 為總線上所呈現(xiàn)的數(shù)據(jù)信號,SCL 是總線上所呈現(xiàn)的時鐘信號。

當主節(jié)點 1、2
同時發(fā)送起始信號時,兩個主節(jié)點都發(fā)送了高電平信號。這時總線上呈現(xiàn)的信號為高電平,兩個主節(jié)點都檢測到總線上的信號與自己發(fā)送的信號相同,繼續(xù)發(fā)送數(shù)據(jù)。

第2個時鐘周期,2個主節(jié)點都發(fā)送低電平信號,在總線上呈現(xiàn)的信號為低電平,仍繼續(xù)發(fā)送數(shù)據(jù)。

在第3個時鐘周期,主節(jié)點1發(fā)送高電平信號,而主節(jié)點2發(fā)送低電平信號。根據(jù)總線的線“與”的邏輯功能,總線上的信號為低電平,這時主節(jié)點1檢測到總線上的數(shù)據(jù)和自己所發(fā)送的數(shù)據(jù)不一樣,就斷開數(shù)據(jù)的輸出級,轉為從機接收狀態(tài)。這樣主節(jié)點2就贏得了總線,而且數(shù)據(jù)沒有丟失,即總線的數(shù)據(jù)與主節(jié)點2所發(fā)送的數(shù)據(jù)一樣,而主節(jié)點1在轉為從節(jié)點后繼續(xù)接收數(shù)據(jù),同樣也沒有丟掉
SDA 線上的數(shù)據(jù)。因此在仲裁過程中數(shù)據(jù)沒有丟失。

再次提醒:SDA仲裁和SCL時鐘同步處理過程沒有先后關系,而是同時進行的。

聲明:本文內容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權轉載。文章觀點僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場。文章及其配圖僅供工程師學習之用,如有內容侵權或者其他違規(guī)問題,請聯(lián)系本站處理。 舉報投訴
  • 總線
    +關注

    關注

    10

    文章

    2881

    瀏覽量

    88095
  • 同步
    +關注

    關注

    0

    文章

    89

    瀏覽量

    19174
  • I2C
    I2C
    +關注

    關注

    28

    文章

    1487

    瀏覽量

    123787
收藏 人收藏

    評論

    相關推薦

    i2c總線協(xié)議pdf

    介紹I2C 總線
    發(fā)表于 08-13 17:16

    I2C規(guī)范,I2C總線原理

    介紹I2C 總線
    發(fā)表于 04-09 18:34

    I2C協(xié)議介紹

    多個寄存器I2C 連續(xù)讀多個寄存器I2C數(shù)據(jù)仲裁介紹I2C 調查標準I2C協(xié)議
    發(fā)表于 01-20 08:04

    i2c總線介紹

    I2C介紹   I2C總線是兩線式串行總線。    I2C
    發(fā)表于 08-13 17:29 ?0次下載

    i2c總線ppt(I2C總線器件應用)

    I2C總線器件應用第一節(jié) I2C總線器件應用概述I2C總線工作原理
    發(fā)表于 08-13 17:34 ?0次下載

    i2c總線的特點

    i2c總線的特點:2 I2C 總線使設計人員和廠商都得益.. 3 2.1 設計人員的得益.. 4 2.2 廠商的得益. 5
    發(fā)表于 08-05 09:05 ?26次下載

    I2C總線規(guī)范與I2C器件C51讀寫程序

    I2C總線規(guī)范與I2C器件C51讀寫程序:本文簡要介紹I2C
    發(fā)表于 08-22 17:51 ?93次下載

    I2C總線

    I2C BUS(Inter IC BUS)是NXP 推出的芯片間串行傳輸總線,它以2 根連線實現(xiàn)了完善的雙向同步數(shù)據(jù)傳送,可以極方便地構成多機系統(tǒng)和外圍器件擴展系統(tǒng)。
    發(fā)表于 11-03 11:26 ?49次下載

    一種I2C總線競爭與仲裁電路的設計

    摘要:文章提出了一種新的基于I2c總線的競爭與仲裁電路的結構,不僅簡化了總線競爭的操作,而且也加快了仲裁的速度。采用該結構的電路可以方便地在
    發(fā)表于 05-06 09:06 ?17次下載

    基于I2C總線的EEPROM驅動程序

     I2C總線是由Philips公司開發(fā)的用于器件之間連接的2線式雙向同步串行總線。Linux內核中針對
    發(fā)表于 12-07 13:58 ?55次下載

    I2C總線在Linux系統(tǒng)中的驅動設計

    介紹I2C總線的基本概念和工作原理,敘述I2C總線擴展器件ZLG7290的功能特點。在以S3C2
    發(fā)表于 12-29 16:52 ?40次下載

    什么是i2c總線

    什么是i2c總線  下載請點擊: i2c總線協(xié)議中文版 
    發(fā)表于 11-05 09:26 ?2922次閱讀

    SPI總線I2C總線工作原理

    SPI總線I2C總線工作原理,本內容詳細介紹了SPI總線I2C
    發(fā)表于 12-08 16:55 ?0次下載

    I2C總線的結構介紹

    內容摘要:介紹I2C總線的結構、工作原理、數(shù)據(jù)傳輸方式,討論了基于I2C總線的多機通信軟硬件設計,實現(xiàn)了程控交換多機通信調度指揮系統(tǒng)。
    發(fā)表于 02-29 15:44 ?6次下載

    i2c總線用來做什么_i2c總線數(shù)據(jù)傳輸過程

    I2C總線控制器為微控制器或微處理器提供控制I2C總線的接口,它控制所有I2C總線的特殊序列、協(xié)
    發(fā)表于 11-24 14:16 ?7278次閱讀