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

          新聞中心

          EEPW首頁 > 嵌入式系統(tǒng) > 設(shè)計(jì)應(yīng)用 > I2C總線串行輸入輸出結(jié)構(gòu)

          I2C總線串行輸入輸出結(jié)構(gòu)

          作者: 時(shí)間:2016-11-22 來源:網(wǎng)絡(luò) 收藏
          本文章以8XC552(飛利浦的一款微控制器)的IIC總線串行串行輸入輸出結(jié)構(gòu)為例,深入理解IIC總線協(xié)議:
          IIC總線的串行輸入輸出結(jié)構(gòu)保證了IIC總線的數(shù)據(jù)寄存器中能保存總線上的最新數(shù)據(jù)。SDAT和ACK組成一個(gè)9為的移位寄存器,它組成一個(gè)環(huán)狀結(jié)構(gòu)。串行輸出的同時(shí)不斷采入總線上的數(shù)據(jù)。ACK標(biāo)志位由總線控制,并可以由CPU存取(存入1對(duì)應(yīng)的是非應(yīng)答,存入0對(duì)應(yīng)的應(yīng)答)。在SCL線上的時(shí)鐘脈沖的上升沿,串行數(shù)據(jù)通過ACK標(biāo)志位存入SDAT,串行數(shù)據(jù)在SCL時(shí)鐘脈沖下降沿沿BSD7移出當(dāng)一個(gè)字節(jié)數(shù)據(jù)移入SADT后,SDAT中的數(shù)據(jù)有效,控制邏輯在第9個(gè)時(shí)鐘脈沖周期送出應(yīng)答位。
          為什么IIC總線進(jìn)行數(shù)據(jù)發(fā)送時(shí),時(shí)鐘信號(hào)為高電平期間,數(shù)據(jù)線上的數(shù)據(jù)必須保持?jǐn)?shù)據(jù)穩(wěn)定???這是因?yàn)闀?huì)在高電平期間采集總線上的數(shù)據(jù),如果此時(shí)總線上的數(shù)據(jù)不穩(wěn)定,會(huì)導(dǎo)致采集的數(shù)據(jù)和發(fā)送的數(shù)據(jù)不一致,從而關(guān)閉發(fā)送(類似仲裁失敗)。協(xié)議規(guī)定只有在時(shí)鐘信號(hào)為低電平期間,數(shù)據(jù)線上的高電平或低電平才允許變化,這是因?yàn)锽SD7中的數(shù)據(jù)是在時(shí)鐘下降沿發(fā)出的,且不會(huì)在時(shí)鐘脈沖低電平期間采集總線上的數(shù)據(jù)。
          在CPU對(duì)SDAT寫入時(shí),SDAT7裝入BSD7,這是向SDA線上發(fā)送的第一位數(shù)據(jù),9個(gè)時(shí)鐘脈沖后SADT中的8位數(shù)據(jù)發(fā)送到SAD線上,應(yīng)答位出現(xiàn)在ACK中,這樣發(fā)送到總線上的數(shù)據(jù)又返回到SDAT中。
          SDA寄存器,包含個(gè)待發(fā)送的數(shù)據(jù)或一個(gè)剛收到的數(shù)據(jù)字節(jié),發(fā)送時(shí),數(shù)據(jù)總是從右向左移位。數(shù)據(jù)移出時(shí),總線上的數(shù)據(jù)同時(shí)移入,移位寄存器的這種結(jié)構(gòu)保證了總線競(jìng)爭(zhēng)失敗時(shí)數(shù)據(jù)不會(huì)丟失。它以并行的方式與內(nèi)部總線相連,以串行方式與SDA相連。發(fā)送數(shù)據(jù)時(shí),由內(nèi)部總線裝入到SDAT中,發(fā)送時(shí),數(shù)據(jù)以串行從串行通道返回SDAT中。接收時(shí),裝入新接收的SDA線上的數(shù)據(jù)。


          關(guān)鍵詞: I2C總線輸入輸出結(jié)

          評(píng)論


          技術(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); })();