I2C控制lP在成像系統(tǒng)中的應(yīng)用
1 IP的硬件結(jié)構(gòu)及寄存器
本文引用地址:http://m.butianyuan.cn/article/151684.htm1.1 IP硬件結(jié)構(gòu)
IP內(nèi)部結(jié)構(gòu)如圖1所示。主要由波特率時鐘寄存器、寄存器組控制器、并行I/O接口、I2C可編程接口、I2C接口引擎5個模塊組成。
波特率時鐘產(chǎn)生器用來產(chǎn)生I2C IP工作的基本時鐘頻率;寄存器組控制器用來對寄存器進(jìn)行設(shè)置,設(shè)置數(shù)據(jù)通過并行I/O接口傳送到該模塊中;并行I/O接口模塊用來處理可編程接口模塊傳送過來的命令;I2C可編程接口模塊用來設(shè)置IP各個寄存器的地址;I2C接口引擎模塊執(zhí)行I2C總線上數(shù)據(jù)的傳輸。
1.2 寄存器結(jié)構(gòu)
I2C控制IP主要由6個寄存器構(gòu)成,如表1所列。通過對寄存器的讀寫可以方便地控制I2C總線數(shù)據(jù)的傳輸,從而實現(xiàn)NiosII處理器與設(shè)備之間的通信。數(shù)據(jù)寄存器用來存放I2C總線上要傳送的數(shù)據(jù);波特率產(chǎn)生模塊,波特率時鐘寄存器和時鐘寄存器共同決定I2C總線上SCL的頻率。SCL的計算公式為其中System_clk是系統(tǒng)時鐘;Value是時鐘寄存器的值;divider是波特率時鐘寄存器的值所對應(yīng)的分頻數(shù)(寄存器的值與分頻數(shù)相差為1,如寄存器設(shè)置為0,則分頻數(shù)為1;寄存器設(shè)置為1,則分頻數(shù)值為2)。
本地地址寄存器、控制寄存器、狀態(tài)寄存器的詳細(xì)介紹略――編者注。
2 I2C控制lP在成像系統(tǒng)中的應(yīng)用
在成像系統(tǒng)中,CMOS傳感器應(yīng)用非常普遍。這些傳感器大多數(shù)都自帶I2C串行通信接口,本文以MT9M011為例介紹I2C控制IP在成像系統(tǒng)中的應(yīng)用。MT9M011傳感器根據(jù)讀寫位數(shù)可分為兩種方式:16位數(shù)據(jù)讀寫方式和8位數(shù)據(jù)讀寫方式。這里選用曝光寄存器,采用16位讀寫方式進(jìn)行操作,時序如圖2所示。
從設(shè)備地址(寫模式)與從設(shè)備地址(讀模式)高7位為從器件地址,第8位是讀寫控制位(R/W),它控制數(shù)據(jù)的傳輸方向。
向曝光寄存器0x09寫入數(shù)據(jù):主器件啟動傳輸,然后發(fā)送它所要尋址的從設(shè)備地址(寫模式)。MT9M011監(jiān)視總線,當(dāng)其地址與傳送的從器件地址相符時,響應(yīng)一位應(yīng)答信號,接著主器件發(fā)送曝光寄存器地址,MT9M011再次應(yīng)答,在向曝光寄存器中寫入16位數(shù)據(jù)后主器件停止寫數(shù)據(jù)。每傳送8位數(shù)據(jù),從器件MT9M011都會產(chǎn)生一位應(yīng)答信號。
評論