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

          新聞中心

          EEPW首頁 > 嵌入式系統(tǒng) > 設(shè)計(jì)應(yīng)用 > CoolRunner-Ⅱ器件的I2C接口主狀態(tài)機(jī)

          CoolRunner-Ⅱ器件的I2C接口主狀態(tài)機(jī)

          作者: 時(shí)間:2011-12-22 來源:網(wǎng)絡(luò) 收藏
          I2C接口如圖所示。

          I2C接口主狀態(tài)機(jī)



            如圖 I2C接口
            無論是主模式,還是從模式,狀態(tài)機(jī)都是相同的。在每個(gè)狀態(tài),模式都會(huì)被檢測(cè),以決定輸出和下一個(gè)狀態(tài)。如果仲裁失敗或 I2C控制器被確定為從模式,控制器會(huì)自動(dòng)由主模式切換到從模式。

            此狀態(tài)機(jī)用到一個(gè)位計(jì)數(shù)器和兩個(gè)移位寄存器,位計(jì)數(shù)器對(duì)從總線上接收到的位進(jìn)行計(jì)數(shù),其中一個(gè)移位寄存器用來存儲(chǔ)I2C的HEADER;另一個(gè)用來存儲(chǔ)接收到的數(shù)據(jù)或待發(fā)送的數(shù)據(jù)。

            當(dāng)檢測(cè)到START信號(hào)時(shí),狀態(tài)機(jī)進(jìn)入HEADER狀態(tài)。在HEADER狀態(tài),如果是主模式,MBDR寄存器中的HEADER被發(fā)送。當(dāng)所有8位數(shù)據(jù)發(fā)送完畢時(shí),狀態(tài)機(jī)轉(zhuǎn)入ACK HEADER。

            在ACK_HEADER狀態(tài),如果CoolRunner-II I2C控制器工作在主模式,將會(huì)采樣SDA,以確認(rèn)從設(shè)備是否有應(yīng)答。如果沒有應(yīng)答,狀態(tài)轉(zhuǎn)入STOP;如果有應(yīng)答,LSB=1時(shí)進(jìn)入RCV_DATA, LSB=0時(shí)進(jìn)入XMIT_DATA。

            I2C Header移位寄存器與MADR進(jìn)行比較,如果匹配,則CoolRunner-II I2C為被尋址的從設(shè)備。模式立刻切換到從模式,狀態(tài)寄存器MBSR中MAAS位被置位,SDA線將會(huì)按照TXAK中的設(shè)置應(yīng)答當(dāng)前主設(shè)備。
          在RCV_DAT狀態(tài),SDA數(shù)據(jù)被入I2C移位寄存器,以供uC讀取。當(dāng)所有數(shù)據(jù)位被接收到,狀態(tài)機(jī)轉(zhuǎn)入ACK_DATA,TXAK被輸出到SDA。

            在XMIT_DATA狀態(tài),MBDR寄存器中數(shù)據(jù)被送到SDA.當(dāng)發(fā)送整的字節(jié)后,狀態(tài)轉(zhuǎn)入WAIT_ACK.如果檢測(cè)到ACK,則狀態(tài)再次進(jìn)入XMIT_DATA,直到產(chǎn)生STOP條件或沒有收到ACK條件.必須注意提,在數(shù)據(jù)傳輸過程中uC速率必須跟上I2C控制器收發(fā)數(shù)據(jù)的速率.如果中斷使能,則當(dāng)一個(gè)字節(jié)的數(shù)據(jù)發(fā)送或接由結(jié)束時(shí)就會(huì)產(chǎn)生一個(gè)中斷,MCF位將會(huì)被置位.在ACK狀態(tài),數(shù)據(jù)在uC和控制器之間轉(zhuǎn)輸。在此過程中,I2C控制器不會(huì)等待uC操作。

            如果Coo1Runner-ⅡI2C工作在主模式,在STOP狀態(tài)告知SCL/START/STOP發(fā)生器產(chǎn)生一個(gè)STOP條件,最后狀態(tài)進(jìn)入IDLE。



          評(píng)論


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