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

          新聞中心

          EEPW首頁 > 嵌入式系統(tǒng) > 設(shè)計應(yīng)用 > I2C控制lP在成像系統(tǒng)中的應(yīng)用

          I2C控制lP在成像系統(tǒng)中的應(yīng)用

          作者: 時間:2010-08-10 來源:網(wǎng)絡(luò) 收藏

          1 IP的硬件結(jié)構(gòu)及寄存器

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

          1.1 IP硬件結(jié)構(gòu)

          IP內(nèi)部結(jié)構(gòu)如圖1所示。主要由波特率時鐘寄存器、寄存器組器、并行I/O接口、可編程接口、接口引擎5個模塊組成。

          波特率時鐘產(chǎn)生器用來產(chǎn)生 IP工作的基本時鐘頻率;寄存器組器用來對寄存器進行設(shè)置,設(shè)置數(shù)據(jù)通過并行I/O接口傳送到該模塊中;并行I/O接口模塊用來處理可編程接口模塊傳送過來的命令;I2C可編程接口模塊用來設(shè)置IP各個寄存器的地址;I2C接口引擎模塊執(zhí)行I2C總線上數(shù)據(jù)的傳輸。

          1.2 寄存器結(jié)構(gòu)

          I2CIP主要由6個寄存器構(gòu)成,如表1所列。通過對寄存器的讀寫可以方便地控制I2C總線數(shù)據(jù)的傳輸,從而實現(xiàn)NiosII處理器與設(shè)備之間的通信。數(shù)據(jù)寄存器用來存放I2C總線上要傳送的數(shù)據(jù);波特率產(chǎn)生模塊,波特率時鐘寄存器和時鐘寄存器共同決定I2C總線上SCL的頻率。SCL的計算公式為其中System_clk是時鐘;Value是時鐘寄存器的值;divider是波特率時鐘寄存器的值所對應(yīng)的分頻數(shù)(寄存器的值與分頻數(shù)相差為1,如寄存器設(shè)置為0,則分頻數(shù)為1;寄存器設(shè)置為1,則分頻數(shù)值為2)。

          本地地址寄存器、控制寄存器、狀態(tài)寄存器的詳細介紹略――編者注。

          2 I2C控制中的

          中,CMOS傳感器非常普遍。這些傳感器大多數(shù)都自帶I2C串行通信接口,本文以MT9M011為例介紹I2C控制IP在系統(tǒng)中的。MT9M011傳感器根據(jù)讀寫位數(shù)可分為兩種方式:16位數(shù)據(jù)讀寫方式和8位數(shù)據(jù)讀寫方式。這里選用曝光寄存器,采用16位讀寫方式進行操作,時序如圖2所示。

          從設(shè)備地址(寫模式)與從設(shè)備地址(讀模式)高7位為從器件地址,第8位是讀寫控制位(R/W),它控制數(shù)據(jù)的傳輸方向。

          向曝光寄存器0x09寫入數(shù)據(jù):主器件啟動傳輸,然后發(fā)送它所要尋址的從設(shè)備地址(寫模式)。MT9M011監(jiān)視總線,當其地址與傳送的從器件地址相符時,響應(yīng)一位應(yīng)答信號,接著主器件發(fā)送曝光寄存器地址,MT9M011再次應(yīng)答,在向曝光寄存器中寫入16位數(shù)據(jù)后主器件停止寫數(shù)據(jù)。每傳送8位數(shù)據(jù),從器件MT9M011都會產(chǎn)生一位應(yīng)答信號。


          上一頁 1 2 3 下一頁

          評論


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