I2C总线CMOS型PB-0300数字图像传感器
图2 信号输出时序
*增益设置寄存器(R43,R44,R45,R46,R53)
设置输出像素的各种颜色的增益值。像素信号在模数转换前经过增益放大电路,分别对各种颜色进行处理,R43、R46分别对应蓝色和红色,R44、R45都对应绿色,R53是全局设置。一般的照明情况下(100~1000lx),增益值为1~8,编程的值是多少,对应的增益值就是多少。从R53可以读出自动曝光模式下的增益值。
*模数转换参考(ADC)控制寄存器(R25)
通过改变模数转换参考值,改变图像的数字输出,从而调节图像亮度。当图像亮度大时,增加ADC值,得到的图像将变暗;当图像较暗时,减小ADC值,得到的图像将变亮。在非自动曝光模式下,R25控制ADC的最大参考值(最小参考值为0),其典型值在24~38之间。在自动曝光模式下,ADC参考值不能改变。
*信号漂移值设置寄存器(R32)
设置信号漂移值,调节图像的亮度,可以设置正负两种值。当图像太暗时,给R32加一个正值,像素信号变大,使得图像变亮;当图像太亮时,给R32加一个负值,使图像变暗。
4 PB-0300与单片机的接口
当PB-0300复位至默认状态下时,能够自动工作,此时采用自动曝光功能,输出的图像为640×480像素,输出速率为30帧/s。也可以通过修改寄存器的值来改变传感器的工作方式和提高图像的输出质量。在MCS-51系列单片上,可以使用虚拟I2C总线软件包VIIC模拟I2C总线,对PB-0300的寄存器进行读写。接口电路如图3所示。
PB-0300采用16位寄存器,需要写入2个字节,写满之后寄存器地址自动增加。所以对连接寄存器进行写操作时,只需写入第一个寄存器的地址;进行读操作时,先对控制寄存器空写一次,以明确操作对象,然后进行读数。子程序WRITE是将默认状态下R5的值(510)修改为340(0214H),使图像输出为VGA(640×480),输出速率为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 ;写入字节数
LCALL WRNBYT
RET
READ:MOV 30H,#09H ;寄存器的R9地址
MOV NUMBYT,#01H ;写入字节数
MOV SLA,#0BAH ;寻址并为写操作
LCALL WRNBYT
MOV SLA,#0BBH ;寻址并为读操作
MOV NUMBYT,#04H;读出字节数
LCALL RDNBYT
RET
javascript:window.open(this.src);" style="cursor:pointer;"/>
PB-0300具有体积小、功耗低、接口简单的特点,而且编程操作灵活,可以不用编程在默认方式下工作,也可以通过编程来改变输出图像的质量、大小和速度等,特别适合于现场应用中。PB-0300系列目前流行使用的是PB-0330。