<meter id="pryje"><nav id="pryje"><delect id="pryje"></delect></nav></meter>
          <label id="pryje"></label>

          新聞中心

          EEPW首頁 > 嵌入式系統(tǒng) > 設(shè)計應(yīng)用 > 結(jié)合單片機用匯編實現(xiàn)I2CBUS總線協(xié)議

          結(jié)合單片機用匯編實現(xiàn)I2CBUS總線協(xié)議

          作者: 時間:2013-02-16 來源:網(wǎng)絡(luò) 收藏
          I2C總線

          I2C(Inter-Integrated Circuit)總線是由PHILIPS公司開發(fā)的兩線式串行總線,用于連接微控制器及其外圍設(shè)備。是微電子通信控制領(lǐng)域廣泛采用的一種總線標準。它是同步通信的一種特殊形式,具有接口線少,控制方式簡單,器件封裝形式小,通信速率較高等優(yōu)點。PHILIPS公司早在十幾年前就推出了I2C串行總線,用于連接微控制器及其外圍設(shè)備。它具備多主機系統(tǒng)所需的包括裁決和高低速設(shè)備同步等功能高性能串行總線。

          I2C總線產(chǎn)生于在80年代,最初為音頻和視頻設(shè)備開發(fā),如今主要在服務(wù)器管理中使用,其中包括單個組件狀態(tài)的通信。例如管理員可對各個組件進行查詢,以管理系統(tǒng)的配置或掌握組件的功能狀態(tài),如電源和系統(tǒng)風(fēng)扇??呻S時監(jiān)控內(nèi)存、硬盤、網(wǎng)絡(luò)、系統(tǒng)溫度等多個參數(shù),增加了系統(tǒng)的安全性,方便了管理。

            I2C總線特征

            1、只要求兩條總線線路:一條串行數(shù)據(jù)線SDA,一條串行時鐘線SCL;

            2、每個連接到總線的器件都可以通過唯一的地址和一直存在的簡單的主機/從機關(guān)系軟件設(shè)定地址,主機可以作為主機發(fā)送器或主機接收器;

            3、它是一個真正的多主機總線,如果兩個或更多主機同時初始化,數(shù)據(jù)傳輸可以通過沖突檢測和仲裁防止數(shù)據(jù)被破壞;

            4、串行的8 位雙向數(shù)據(jù)傳輸位速率在標準模式下可達100kbit/s,快速模式下可達400kbit/s,高速模式下可達3.4Mbit/s;

            5、連接到相同總線的IC 數(shù)量只受到總線的最大電容400pF 限制。

            I2C總線硬件結(jié)構(gòu)

            I2C串行總線有兩根信號線,一根是雙向的數(shù)據(jù)線SDA,另一根是時鐘線SCL。所有接到I2C總線睥設(shè)備的串行數(shù)據(jù)SDA都接到總線的SDA線,各設(shè)備的時鐘線SCL接到總線的SCL。典型的I2C總線結(jié)構(gòu)如圖1。

            為了避免總線信號的混亂,要求各設(shè)備連接到總線的輸出端必須是開漏輸出或集電極開路輸出的電路結(jié)構(gòu)。設(shè)備與總線的接口電路如圖2所示。

            I2C總線數(shù)據(jù)傳送率可達每秒十萬位,高速方式可高達每秒四十萬位??偩€上允許連接設(shè)備數(shù)以總線上的電容量不超過400pF為限。


          上一頁 1 2 3 4 下一頁

          評論


          相關(guān)推薦

          技術(shù)專區(qū)

          關(guān)閉
          看屁屁www成人影院,亚洲人妻成人图片,亚洲精品成人午夜在线,日韩在线 欧美成人 (function(){ var bp = document.createElement('script'); var curProtocol = window.location.protocol.split(':')[0]; if (curProtocol === 'https') { bp.src = 'https://zz.bdstatic.com/linksubmit/push.js'; } else { bp.src = 'http://push.zhanzhang.baidu.com/push.js'; } var s = document.getElementsByTagName("script")[0]; s.parentNode.insertBefore(bp, s); })();