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

          新聞中心

          I2C總線的基本操作

          作者: 時間:2011-07-23 來源:網(wǎng)絡(luò) 收藏
            上只具有SOL(時鐘)和SDA(數(shù)據(jù))2根信號線。如果是單純的串行傳輸,一旦因為某種原因造成引腳的偏差,則可能會造成不能區(qū)分總線上傳輸?shù)氖菙?shù)據(jù)還是地址信息的后果。解決上述問題的簡單辦法就是附加獨(dú)立于總線的Reset(復(fù)位)信號,由主機(jī)控制該信號。因為I2C至少利用2根線進(jìn)行所有的操作,因此在數(shù)據(jù)傳輸時,通常當(dāng)SCL為低電平時,設(shè)置下一個數(shù)據(jù);當(dāng)SDA變化后,SCI為高電平,這可以解釋為一連串操作的開始/結(jié)束。

          1. 起始條件

          始條件表示一系列操作的開始。圖1表示起始條件以及隨后數(shù)據(jù)傳輸?shù)拈_始操作。在的空閑狀態(tài)下,SDA及SCL通過上拉電阻都為高電平。在這樣的狀態(tài)下,如果SCL仍保持高電平,而SDA變?yōu)榈碗娖?則成為開始指令。

            

          圖1 的起始條件   

          由于該狀態(tài)并不出現(xiàn)于地址及數(shù)據(jù)的發(fā)送與接收過程中,因此,即使在途中發(fā)生異常,只要檢測出該狀態(tài),初始化內(nèi)部的狀態(tài)機(jī),就可以使其恢復(fù)。

          2. 結(jié)束條件

          在一系列操作的最后是結(jié)束條件。結(jié)束條件如圖2所示。當(dāng)SOL為高電平時,一旦SDA由低電平變化為高電平,即成為結(jié)束條件,主機(jī)與器件之間的通信將停止,器件恢復(fù)為空閑狀態(tài)。進(jìn)行寫操作時的結(jié)束狀態(tài)是開始進(jìn)行EEPROM內(nèi)部單元寫操作的指示標(biāo)志。

           

          圖2 I2C總線的結(jié)束條件   

          結(jié)束前所傳輸?shù)臄?shù)據(jù)是ACK/NoACK的狀態(tài)位,如果是ACK,則該狀態(tài)位為低電平。但如果發(fā)生某種錯誤時,則表示為NoACK的高電平。讀操作時的最后字節(jié)是主機(jī)向器件返回NoˉACK信息,所以SDA為高電平。這樣就不能形成結(jié)束條件所需要的SDA的上升沿,因此在結(jié)束之前需要加入啞元“0”數(shù)據(jù)位作為解決辦法。

          在最終數(shù)據(jù)的ACK NoACK之后,主機(jī)通過下述的流程,形成結(jié)束條件,如下所述:

          ①SCL變?yōu)榈碗娖剑?/P>

          ②SDA變?yōu)榈碗娖剑?/P>

          ③SOL變?yōu)楦唠娖剑òl(fā)送啞元數(shù)據(jù));

          ④SDA變?yōu)楦唠娖剑ńY(jié)束條件)。

          3. 數(shù)據(jù)傳輸

          數(shù)據(jù)傳輸?shù)牧鞒倘鐖D3所示。除去開始與結(jié)束條件,在傳輸包含地址指定等數(shù)據(jù)時,能夠使SDA發(fā)生變化的條件只能是在SOL為低電平時。因此,總線操作以如下的步驟進(jìn)行:

          ①SCL變?yōu)榈碗娖剑?/P>

          ②為SDA設(shè)置數(shù)據(jù)(主機(jī)或者器件);

          ③SCL變?yōu)楦唠娖健?/P>

          進(jìn)行數(shù)據(jù)讀操作時,主機(jī)在SOL恢復(fù)為高電平之前讀取數(shù)據(jù)。

          圖3 I2C總線的數(shù)據(jù)傳輸



          關(guān)鍵詞: I2C總線 基本操作

          評論


          相關(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); })();