I2C總線CMOS型PB-0300數字圖像傳感器
摘要:介紹CMOS型數字圖像傳感器PB-0300的性能特點、功能設置、與MCS-51系列單片機的接口電路及編程技術。 1 功能描述 1.1 性能特點 PB-0300系列CMOS型有源像素數字圖像傳感器,內置模數轉換8、位并行數據輸出、64個內部寄存器,采用I2C總線控制,可編程控制;可以在彩色和黑白兩種模式下工作。當外接24MHz時鐘晶振時,可以獲得30幀/s的圖像輸出。在上電期間,自動調入缺省參數設置,包括自動曝光功能,所以可以不編程情況下使用傳感器。主要性能指標如表1。
1.2 內部結構 PB-0300由五大部分組成:數字邏輯模塊、像素陣列、列平行的增益電路和讀出電路、8位ADC、偏置DACs,如圖1所示。 主要引腳功能如表2。
PB-0300有三種分開的供電電源:數字電源、模擬電源和傳感器陣列電源。使用時要特別注意各電源間的相互影響。 2 圖像輸出格式與時序 PB-0300控制像素數據輸出的信號有:幀有效(FRAME-VALID)信號、行有效(LINE-VALID)信號、像素時鐘(PIXCLK)信號。FRAME-VALID信號控制一幀有效圖像的輸出,高電平有效;LINE-VALID信號控制每行有效信號的輸出,高電平有效;PIXCLK信號控制每個像素的輸出,當FRAME-VALID和LINE-VALID均為高電平時,每個像素時鐘周期輸出一個8位像素信號;并行的DOUT0~DOUT7是像素數據的8位輸出,它們始終和像素時鐘同步。在PIXCLK處于下降沿時,數據輸出和LINE-VALID都不能改變。在默認的VGA(640480)下,當每行640個有效像素信號輸出之后,LINE-VALID變?yōu)榈碗娖?,PB-0300按一定編碼方式向外輸出982個無效信號,然后再輸出像素信號。當480行有效像素和無效信號完全輸出之后,傳感器再輸出9行空白信號。這期間FRAME-VALID為低電平,標志著當前幀的結構和下一幀的開始;同時,讀入寄存器的最新值,通過對寄存器編程而改變的圖像參數在下一幀生效。信號輸出時序如圖2所示。 3 寄存器設置 PB-0300共有64個寄存器(R0-R63),地址依次為00H~3FH,在缺省情況下有自動曝光功能;可以改變輸出圖像的大小、位置和速度;通過調節(jié)像素累積時間、ADC參考和增益值可以控制采集到的圖像亮度。下面介紹幾個主要寄存器的功能。 *復位控制寄存器(R13) R13能夠使PB-0300復位到上電后的缺省狀態(tài)。首先向R13的最低位寫入“1”,使PB-0300處于復位狀態(tài),然后再寫入“0”繼續(xù)工作。 *窗口位置與大小控制寄存器(R1,R2,R3,R4) 控制采集圖像窗口的位置與大小。只有在此窗口內的像素才能有效地讀出。窗口的像素個數最大值為640480。R1為行起始坐標,R2為列起始坐標,(1024-R3)為有效行數,(1024-R4)為有效列數;窗口大小的默認值為VGA(640480),右上角坐標為(0,0),左下角坐標為(639,479)。 *像素累積控制寄存器(R8,R9) 控制像素的采光時間,R8為累積幀數,R9為累積行數,實際總的累積時間,即實際處理完一幀圖像的時間為:Tint=[(R8(1024-R3)+R9)Trow,其中,Trow為處理完一行有效像素所用的時間。一般的R8設置為0,R9的最大值為有效圖像窗口的行數。Tint的值應該能信號避免由于光閃爍使圖像產生條紋。在60Hz光閃爍頻率下,Tint必須為1/120s的整數倍;50Hz頻率下,Tint必須為1/100的整數倍。 *幀速率控制寄存器(R5,R6,R10) 控制每行和每幀有效像素信號之間的無效信號時間。當其它圖像參數改變時,通過改變上幀速度控制寄存器的值為調節(jié)幀速率。若通過R4減小有效像素列數后,處理一行有效像素的時間將變短,幀速率將增加。這時可以調節(jié)R5的值來增加每行元效信號的輸出數量和時間,從而使幀速率保持不變;同理,若改變有效像素行數時,調節(jié)R6來保持幀速率。R10是通過控制PIXCLK的輸出來改變像素輸出時間的。 設置輸出像素的各種顏色的增益值。像素信號在模數轉換前經過增益放大電路,分別對各種顏色進行處理,R43、R46分別對應藍色和紅色,R44、R45都對應綠色,R53是全局設置。一般的照明情況下(100~1000lx),增益值為1~8,編程的值是多少,對應的增益值就是多少。從R53可以讀出自動曝光模式下的增益值。 *模數轉換參考(ADC)控制寄存器(R25) 通過改變模數轉換參考值,改變圖像的數字輸出,從而調節(jié)圖像亮度。當圖像亮度大時,增加ADC值,得到的圖像將變暗;當圖像較暗時,減小ADC值,得到的圖像將變亮。在非自動曝光模式下,R25控制ADC的最大參考值(最小參考值為0),其典型值在24~38之間。在自動曝光模式下,ADC參考值不能改變。 *信號漂移值設置寄存器(R32) 設置信號漂移值,調節(jié)圖像的亮度,可以設置正負兩種值。當圖像太暗時,給R32加一個正值,像素信號變大,使得圖像變亮;當圖像太亮時,給R32加一個負值,使圖像變暗。 4 PB-0300與單片機的接口 當PB-0300復位至默認狀態(tài)下時,能夠自動工作,此時采用自動曝光功能,輸出的圖像為640480像素,輸出速率為30幀/s。也可以通過修改寄存器的值來改變傳感器的工作方式和提高圖像的輸出質量。在MCS-51系列單片上,可以使用虛擬I2C總線軟件包VIIC模擬I2C總線,對PB-0300的寄存器進行讀寫。接口電路如圖3所示。 PB-0300采用16位寄存器,需要寫入2個字節(jié),寫滿之后寄存器地址自動增加。所以對連接寄存器進行寫操作時,只需寫入第一個寄存器的地址;進行讀操作時,先對控制寄存器空寫一次,以明確操作對象,然后進行讀數。子程序WRITE是將默認狀態(tài)下R5的值(510)修改為340(0214H),使圖像輸出為VGA(640480),輸出速率為25幀/s。子程序READ是以讀R9、R10為例的典型程序。子程序清單如下: VSDA EQU P1.7 VSCL EQU P1.6 SLA EQU 50H NUMBYT EQU 51H MTD EQU 30H MRD EQU 40H WRITE:MOV 30H,#05H ;寄存器R5地址 MOV 31H,#02H ;寄存器值(0214H) MOV 32H,#14H MOV SLA,#0BAH ;尋址并為寫操作 MOV NUMBYT,#03H ;寫入字節(jié)數 LCALL WRNBYT RET READ:MOV 30H,#09H ;寄存器的R9地址 MOV NUMBYT,#01H ;寫入字節(jié)數 MOV SLA,#0BAH ;尋址并為寫操作 LCALL WRNBYT MOV SLA,#0BBH ;尋址并為讀操作 MOV NUMBYT,#04H;讀出字節(jié)數 LCALL RDNBYT RET PB-0300具有體積小、功耗低、接口簡單的特點,而且編程操作靈活,可以不用編程在默認方式下工作,也可以通過編程來改變輸出圖像的質量、大小和速度等,特別適合于現場應用中。PB-0300系列目前流行使用的是PB-0330。 | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
評論