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

          新聞中心

          EEPW首頁 > 嵌入式系統(tǒng) > 設(shè)計(jì)應(yīng)用 > I2C總線在單片機(jī)上的實(shí)現(xiàn)

          I2C總線在單片機(jī)上的實(shí)現(xiàn)

          作者: 時(shí)間:2012-03-07 來源:網(wǎng)絡(luò) 收藏

          總線的運(yùn)行()由主機(jī)控制。所謂主機(jī)是指啟動數(shù)據(jù)的傳送(發(fā)出啟動信號)、發(fā)出時(shí)鐘信號以及傳送結(jié)束時(shí)發(fā)出停止信號的設(shè)備,通常主機(jī)都是微處理器。被主機(jī)尋訪的設(shè)備稱為從機(jī)。為了進(jìn)行通訊,每個(gè)接到的設(shè)備都有一個(gè)唯一的地址,以便于主機(jī)尋訪。主機(jī)和從機(jī)的數(shù)據(jù)傳送,可以由主機(jī)發(fā)送數(shù)據(jù)到從機(jī),也可以由從機(jī)發(fā)到主機(jī)。凡是發(fā)送數(shù)據(jù)到總線的設(shè)備稱為發(fā)送器,從總線上接收數(shù)據(jù)的設(shè)備被稱為接受器。

          I2C 總線上允許連接多個(gè)微處理器以及各種外圍設(shè)備,如存儲器、LED及LCD驅(qū)動器、A/D及D/A轉(zhuǎn)換器等。為了保證數(shù)據(jù)可靠地傳送,任一時(shí)刻總線只能由某一臺主機(jī)控制,各微處理器應(yīng)該在總線空閑時(shí)發(fā)送啟動數(shù)據(jù),為了妥善解決多臺微處理器同時(shí)發(fā)送啟動數(shù)據(jù)的傳送(總線控制權(quán))沖突,以及決定由哪一臺微處理器控制總線的問題,允許連接不同傳送速率的設(shè)備。多臺設(shè)備之間時(shí)鐘信號的同步過程稱為同步化。

          2 I2C

          在I2C 總線傳輸過程中,將兩種特定的情況定義為開始和停止條件(見圖3):當(dāng)SCL保持“高”時(shí),SDA由“高”變?yōu)椤暗汀睘殚_始條件;當(dāng)SCL保持“高”且 SDA由“低”變?yōu)椤案摺睍r(shí)為停止條件。開始和停止條件均由主控制器產(chǎn)生。使用硬件接口可以很容易地檢測到開始和停止條件,沒有這種接口的微機(jī)必須以每時(shí)鐘周期至少兩次對SDA取樣,以檢測這種變化。

          SDA線上的數(shù)據(jù)在時(shí)鐘“高”期間必須是穩(wěn)定的,只有當(dāng)SCL線上的時(shí)鐘信號為低時(shí),數(shù)據(jù)線上的“高”或“低”狀態(tài)才可以改變。輸出到SDA線上的每個(gè)字節(jié)必須是8 位,每次傳輸?shù)淖止?jié)不受限制,但每個(gè)字節(jié)必須要有一個(gè)應(yīng)答ACK。如果一接收器件在完成其他功能(如一內(nèi)部中斷)前不能接收另一數(shù)據(jù)的完整字節(jié)時(shí),它可以保持時(shí)鐘線SCL為低,以促使發(fā)送器進(jìn)入等待狀態(tài);當(dāng)接收器準(zhǔn)備好接受數(shù)據(jù)的其它字節(jié)并釋放時(shí)鐘SCL后,繼續(xù)進(jìn)行。I2C數(shù)據(jù)總線傳送時(shí)序如圖 4所示。

          數(shù)據(jù)傳送具有應(yīng)答是必須的。與應(yīng)答對應(yīng)的時(shí)鐘脈沖由主控制器產(chǎn)生,發(fā)送器在應(yīng)答期間必須下拉SDA線。當(dāng)尋址的被控器件不能應(yīng)答時(shí),數(shù)據(jù)保持為高并使主控器產(chǎn)生停止條件而終止傳輸。在傳輸?shù)倪^程中,在用到主控接收器的情況下,主控接收器必須發(fā)出一數(shù)據(jù)結(jié)束信號給被控發(fā)送器,從而使被控發(fā)送器釋放數(shù)據(jù)線,以允許主控器產(chǎn)生停止條件。合法的數(shù)據(jù)傳輸格式如下:



          評論


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