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

          關(guān) 閉

          新聞中心

          EEPW首頁 > 工控自動(dòng)化 > 設(shè)計(jì)應(yīng)用 > 基于VHDL/CPLD的I2C串行總線控制器設(shè)計(jì)及實(shí)現(xiàn)

          基于VHDL/CPLD的I2C串行總線控制器設(shè)計(jì)及實(shí)現(xiàn)

          作者: 時(shí)間:2010-05-25 來源:網(wǎng)絡(luò) 收藏
          和并行相比具有結(jié)構(gòu)簡單、占用引腳少、成本低的優(yōu)點(diǎn)。常見的有USB、IEEE1394、等,其中總線具有使用簡單的特點(diǎn),在單片機(jī)、E2PROM、LCD等器件中具有廣泛的應(yīng)用。

            (Inter IC BUS)是Philips公司開發(fā)的用于芯片之間連接的總線。 I2C總線用兩根信號(hào)線進(jìn)行數(shù)據(jù)傳輸,一根為串行數(shù)據(jù)線(SDA),另一根為串行時(shí)鐘線(SCL)。I2C總線允許若干兼容器件(如存儲(chǔ)器、A/D轉(zhuǎn)換器、D/A轉(zhuǎn)換器、LCD驅(qū)動(dòng)器等)共享總線。I2C總線理論上可以允許的最大設(shè)備數(shù),是以總線上所有器件的總電容(其中包括連線本身的電容和連接端的引出電容)不超過400pF為限,總線上所有器件依靠SDA線發(fā)送的地址信號(hào)尋址,不需要片選線。任何時(shí)刻總線只能由一個(gè)主器件控制,各從器件在總線空閑時(shí)啟動(dòng)數(shù)據(jù)傳輸。I2C總線數(shù)據(jù)傳輸?shù)臉?biāo)準(zhǔn)模式速率為100kbps,快速模式速率為400kbps,高速模式速率為3.4Mbps。

          本文引用地址:http://www.ex-cimer.com/article/163062.htm

            用VHDL和CPLD數(shù)字系統(tǒng)具有傳統(tǒng)方法無可比擬的優(yōu)越性,它已經(jīng)成為大規(guī)模集成電路最為有效的一種手段。為簡單起見,本文采用VHDL標(biāo)準(zhǔn)模式的I2C總線控制電路。

            1 I2C總線上的數(shù)據(jù)傳輸

            I2C總線包含時(shí)鐘線SCL和數(shù)據(jù)線SDA兩條連線,SCL由主機(jī)產(chǎn)生。I2C總線的數(shù)據(jù)傳輸流程如圖1所示。其傳輸過程為:首先主機(jī)產(chǎn)生起始位,然后傳送第一個(gè)字節(jié)。8位數(shù)據(jù)中首先傳送的是數(shù)據(jù)的最高位MSB,最低位LSB為讀寫指示位,1表示主機(jī)讀,0表示主機(jī)寫,高7位地址可使主機(jī)尋址128個(gè)從器件。

          基于VHDL/CPLD的I2C串行總線控制器設(shè)計(jì)及實(shí)現(xiàn)

            從機(jī)收到第一字節(jié)數(shù)據(jù)后發(fā)響應(yīng)位,主機(jī)收到響應(yīng)位后接著發(fā)送第二個(gè)字節(jié)的數(shù)據(jù)。數(shù)據(jù)發(fā)送完畢后產(chǎn)生結(jié)束位,數(shù)據(jù)傳送結(jié)束。數(shù)據(jù)傳送時(shí),只有時(shí)鐘SCL為低電平時(shí)SDA才允許切換,SCL為高電平時(shí)SDA必須穩(wěn)定,此時(shí)SDA的電平就是總線轉(zhuǎn)送的數(shù)值。

          在SCL為高電平時(shí),SDA線由高到低切換表示起始位,SDA線由低到高切換表示停止位。起始位和停止位由主機(jī)產(chǎn)生,在起始位產(chǎn)生后總線處于忙狀態(tài),停止位出現(xiàn)并經(jīng)過一定時(shí)間后總線進(jìn)入空閑狀態(tài)。發(fā)送器每發(fā)送一個(gè)字節(jié)后,接收器必須產(chǎn)生一個(gè)響應(yīng)位。響應(yīng)位的驅(qū)動(dòng)時(shí)鐘由主機(jī)產(chǎn)生則接收器將SDA線拉低產(chǎn)生響應(yīng)位。如果主機(jī)是接收器,則接收最后一個(gè)字節(jié)時(shí),響應(yīng)位為1,通知從機(jī)結(jié)束發(fā)送,否則響應(yīng)位為0。當(dāng)從機(jī)不能響應(yīng)從機(jī)地址(例如它正在執(zhí)行一些實(shí)時(shí)函數(shù),不能接收或發(fā)送)時(shí),或響應(yīng)了從機(jī)地址但在傳輸一段時(shí)間后不能接收更多的數(shù)據(jù)字節(jié),此時(shí)從機(jī)可以通過響應(yīng)位為1通知主機(jī)終止當(dāng)前的傳輸,于是主機(jī)產(chǎn)生一個(gè)停止位終止傳輸,或者產(chǎn)生重復(fù)開始位開始新的傳輸。

            SDA線上傳送的數(shù)據(jù)必須為8位,每次傳送可以發(fā)送的字節(jié)數(shù)量不受限制。如果從機(jī)要完成一些其他功能(例如執(zhí)行一個(gè)內(nèi)部中斷服務(wù)程序)才能接收或發(fā)送下一個(gè)數(shù)據(jù)字節(jié),則從機(jī)可以使SCL維持低電位,迫使主機(jī)進(jìn)入等待狀態(tài)。從機(jī)準(zhǔn)備好接收或發(fā)送下一個(gè)數(shù)據(jù)字節(jié)時(shí),釋放SCL,數(shù)據(jù)傳輸繼續(xù)。

            SDA和SCL都是雙向線路,使用時(shí)通過上拉電阻連接到電源??偩€空閑時(shí)這兩條線路都是高電平,連接到總線的器件的輸出級(jí)必須是漏極開路或集電極開路,這樣總線才能執(zhí)行“線與”的功能。


          上一頁 1 2 3 下一頁

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